diff --git a/CMakeLists.txt b/CMakeLists.txt index f7dd1cba1..a90ac7842 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,6 @@ cmake_minimum_required (VERSION 2.8.6) cmake_policy(VERSION 3.2) + # Set project name project (storm CXX C) @@ -7,28 +8,26 @@ project (storm CXX C) include_directories("${PROJECT_SOURCE_DIR}") include_directories("${PROJECT_SOURCE_DIR}/src") - # Add the resources/cmake folder to Module Search Path for FindTBB.cmake set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/resources/cmake/find_modules" "${PROJECT_SOURCE_DIR}/resources/cmake/macros") include(ExternalProject) - - include(RegisterSourceGroup) + ############################################################# ## -## CMake options of StoRM +## CMake options of Storm ## ############################################################# -option(STORM_DEVELOPER "Sets whether the development mode is used" OFF) +option(STORM_DEVELOPER "Sets whether the development mode is used." OFF) +option(STORM_ALLWARNINGS "Compile with even more warnings" OFF) +option(STORM_PORTABLE_RELEASE "Sets whether a release build needs to be portable to another machine. This is only effective for release builds in non-development mode." OFF) +MARK_AS_ADVANCED(STORM_PORTABLE_RELEASE) option(STORM_USE_POPCNT "Sets whether the popcnt instruction is going to be used." ON) MARK_AS_ADVANCED(STORM_USE_POPCNT) option(USE_BOOST_STATIC_LIBRARIES "Sets whether the Boost libraries should be linked statically." OFF) option(STORM_USE_INTELTBB "Sets whether the Intel TBB libraries should be used." OFF) option(STORM_USE_GUROBI "Sets whether Gurobi should be used." OFF) -option(STORM_USE_COTIRE "Sets whether Cotire should be used (for building precompiled headers)." OFF) -option(LINK_LIBCXXABI "Sets whether libc++abi should be linked." OFF) -option(USE_LIBCXX "Sets whether the standard library is libc++." OFF) option(USE_CARL "Sets whether carl should be included." ON) option(USE_XERCES "Sets whether xerces should be used." OFF) option(FORCE_COLOR "Force color output" OFF) @@ -45,29 +44,32 @@ set(MSAT_ROOT "" CACHE STRING "The hint to the root directory of MathSAT (option set(ADDITIONAL_INCLUDE_DIRS "" CACHE STRING "Additional directories added to the include directories.") set(ADDITIONAL_LINK_DIRS "" CACHE STRING "Additional directories added to the link directories.") - # Set some CMAKE Variables as advanced mark_as_advanced(CMAKE_OSX_ARCHITECTURES) mark_as_advanced(CMAKE_OSX_SYSROOT) mark_as_advanced(CMAKE_OSX_DEPLOYMENT_TARGET) -# If the STORM_DEVELOPER option was turned on, we will target a debug version. +# By default, we build a release version. +if (NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE "RELEASE") +endif() + +# If the STORM_DEVELOPER option was turned on, we target a debug version. if (STORM_DEVELOPER) - message(STATUS "StoRM - Using development mode") - set(CMAKE_BUILD_TYPE "DEBUG" CACHE STRING "Set the build type" FORCE) + set(CMAKE_BUILD_TYPE "DEBUG") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DSTORM_DEV") endif() -message(STATUS "StoRM - Building ${CMAKE_BUILD_TYPE} version.") +message(STATUS "Storm - Building ${CMAKE_BUILD_TYPE} version.") if(STORM_COMPILE_WITH_CCACHE) find_program(CCACHE_FOUND ccache) mark_as_advanced(CCACHE_FOUND) if(CCACHE_FOUND) - message(STATUS "StoRM - Using ccache") + message(STATUS "Storm - Using ccache") set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache) set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache) else() - message(STATUS "Could not find ccache") + message(STATUS "Storm - Could not find ccache.") endif() endif() @@ -96,8 +98,7 @@ else() set(OPERATING_SYSTEM "Linux") set(LINUX 1) ENDIF() -message(STATUS "Operating system: ${OPERATING_SYSTEM}") - +message(STATUS "Storm - Detected operating system ${OPERATING_SYSTEM}.") set(DYNAMIC_EXT ".so") set(STATIC_EXT ".a") @@ -111,114 +112,142 @@ endif() message(STATUS "Assuming extension for shared libraries: ${DYNAMIC_EXT}") message(STATUS "Assuming extension for static libraries: ${STATIC_EXT}") - ############################################################# ## -## Compiler specific settings and definitions +## Compiler detection and initial configuration ## ############################################################# -# Path to the no-strict-aliasing target -set(CONVERSIONHELPER_TARGET "${PROJECT_SOURCE_DIR}/src/utility/ConversionHelper.cpp") - -if(CMAKE_COMPILER_IS_GNUCC) - set(STORM_COMPILED_BY "GCC") +if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + # using Clang + if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.2) + message(FATAL_ERROR "Clang version must be at least 3.2.") + endif() - # TODO: remove forcing the old version of optional as soon as the related Spirit bug is fixed: - # https://svn.boost.org/trac/boost/ticket/12349 - # Fix thanks to: https://github.com/freeorion/freeorion/issues/777 - add_definitions(-DBOOST_RESULT_OF_USE_DECLTYPE -DBOOST_OPTIONAL_CONFIG_USE_OLD_IMPLEMENTATION_OF_OPTIONAL) + set(STORM_COMPILER_CLANG ON) + set(CLANG ON) + set(STORM_COMPILER_ID "clang") +elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang") + # using GCC + if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.3) + message(FATAL_ERROR "AppleClang version must be at least 7.3.") + endif() - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -Wall -pedantic -Wno-deprecated-declarations -Wno-unused-local-typedefs -Wno-unknown-pragmas") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -pedantic -Wno-deprecated-declarations") - set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -flto -fprefetch-loop-arrays -ffast-math -fno-finite-math-only") - set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -rdynamic") - + set(STORM_COMPILER_APPLECLANG ON) + set(CLANG ON) + set(STORM_COMPILER_ID "AppleClang") + set(CMAKE_MACOSX_RPATH ON) +elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") + # using GCC if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0) - message(FATAL_ERROR "GCC version must be at least 5.0.") + message(FATAL_ERROR "gcc version must be at least 5.0.") endif() - # Turn on popcnt instruction if desired (yes by default) - if (STORM_USE_POPCNT) - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mpopcnt") - endif(STORM_USE_POPCNT) - - # Set the no-strict-aliasing target for GCC - set_source_files_properties(${CONVERSIONHELPER_TARGET} PROPERTIES COMPILE_FLAGS " -fno-strict-aliasing") -elseif(MSVC) - set(STORM_COMPILED_BY "MSVC") - # required for GMM to compile, ugly error directive in their code - add_definitions(/D_SCL_SECURE_NO_DEPRECATE /D_CRT_SECURE_NO_WARNINGS) - # required as the PRCTL Parser bloats object files (COFF) beyond their maximum size (see http://msdn.microsoft.com/en-us/library/8578y171(v=vs.110).aspx) - add_definitions(/bigobj) - # required by GTest and PrismGrammar::createIntegerVariable - add_definitions(/D_VARIADIC_MAX=10) - # Windows.h breaks GMM in gmm_except.h because of its macro definition for min and max - add_definitions(/DNOMINMAX) - # Boost Defs, required for using boost's transform iterator - add_definitions(/DBOOST_RESULT_OF_USE_DECLTYPE) - - # since nobody cares at the moment - add_definitions(/wd4250) - - # MSVC does not do strict-aliasing, so no option needed -else(CLANG) - set(STORM_COMPILED_BY "Clang (LLVM)") - # As CLANG is not set as a variable, we need to set it in case we have not matched another compiler. - set (CLANG ON) - # Set standard flags for clang - set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -flto -ffast-math -fno-finite-math-only") - set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-export_dynamic") - set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-export_dynamic") - if(UNIX AND NOT APPLE) - if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.2) - message(FATAL_ERROR "Clang version must be at least 3.2!") - endif() - endif() + set(STORM_COMPILER_GCC ON) + set(STORM_COMPILER_ID "gcc") +elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel") + message(FATAL_ERROR "Intel compiler is currently not supported.") +elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") + message(FATAL_ERROR "Visual Studio compiler is currently not supported.") +endif() - if(UNIX AND APPLE) - if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.3) - message(FATAL_ERROR "Clang version must be at least 7.3!") - endif() - endif() +if(CCACHE_FOUND) + set(STORM_COMPILER_ID "${STORM_COMPILER_ID} (ccache)") +endif() - if(UNIX AND NOT APPLE AND NOT USE_LIBCXX) - set(CLANG_STDLIB libstdc++) - message(STATUS "StoRM - Linking against libstdc++") - else() - set(CLANG_STDLIB libc++) - message(STATUS "StoRM - Linking against libc++") - # Disable Cotire - set(STORM_USE_COTIRE OFF) - # Set up some Xcode specific settings - set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++11") - set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++") - endif() +############################################################# +## +## Compiler independent settings +## +############################################################# +if (STORM_USE_POPCNT) + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mpopcnt") +endif() - # TODO: remove forcing the old version of optional as soon as the related Spirit bug is fixed: - # https://svn.boost.org/trac/boost/ticket/12349 - # Fix thanks to: https://github.com/freeorion/freeorion/issues/777 - add_definitions(-DBOOST_RESULT_OF_USE_DECLTYPE -DBOOST_OPTIONAL_CONFIG_USE_OLD_IMPLEMENTATION_OF_OPTIONAL) - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -stdlib=${CLANG_STDLIB} -Wall -pedantic -Wno-newline-eof -Wno-mismatched-tags -Wno-unused-local-typedefs -ftemplate-depth=1024 -Wno-parentheses-equality") +# TODO: remove forcing the old version of optional as soon as the related Spirit bug is fixed: +# https://svn.boost.org/trac/boost/ticket/12349 +# Fix thanks to: https://github.com/freeorion/freeorion/issues/777 +add_definitions(-DBOOST_RESULT_OF_USE_DECLTYPE -DBOOST_OPTIONAL_CONFIG_USE_OLD_IMPLEMENTATION_OF_OPTIONAL) +############################################################# +## +## Compiler specific settings +## +############################################################# +if (STORM_COMPILER_CLANG OR STORM_COMPILER_APPLECLANG) if(FORCE_COLOR) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fcolor-diagnostics") endif() + + if (LINUX) + set(CLANG_STDLIB libstdc++) + else() + set(CLANG_STDLIB libc++) + endif() + + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -stdlib=${CLANG_STDLIB} -ftemplate-depth=1024") + set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -flto -ffast-math -fno-finite-math-only") + set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-export_dynamic") + set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-export_dynamic") +elseif (STORM_COMPILER_GCC) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -flto -fprefetch-loop-arrays -ffast-math -fno-finite-math-only") + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -rdynamic") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -rdynamic") +endif () - # Turn on popcnt instruction if desired (yes by default) - if (STORM_USE_POPCNT) - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mpopcnt") - endif(STORM_USE_POPCNT) +# In release mode, we turn on even more optimizations if we do not have to provide a portable binary. +if (NOT STORM_PORTABLE_RELEASE) + set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -march=native") +endif () - # Set the no-strict-aliasing target for Clang - set_source_files_properties(${CONVERSIONHELPER_TARGET} PROPERTIES COMPILE_FLAGS " -fno-strict-aliasing ") +if (STORM_DEVELOPER) + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic") + if (STORM_ALLWARNINGS) + if (CLANG) + # Enable strictly every warning and then disable selected ones. + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Weverything") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-c++98-compat -Wno-c++98-compat-pedantic") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-old-style-cast") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-reserved-id-macro") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-newline-eof") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-documentation") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-weak-vtables") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-global-constructors") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-exit-time-destructors") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-switch-enum") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-covered-switch-default") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-padded") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-float-equal") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-local-typedef") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-missing-variable-declarations") + endif () + else () + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra") + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unknown-pragmas") + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-local-typedefs") + endif () +else() + set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fomit-frame-pointer") endif() - -if(CCACHE_FOUND) - set(STORM_COMPILED_BY "${STORM_COMPILED_BY} (ccache)") +############################################################# +## +## Generator specific settings +## +############################################################# +if ("${CMAKE_GENERATOR}" STREQUAL "Xcode") + set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++11") + set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++") endif() -message(STATUS "StoRM - Using Compiler Configuration: ${STORM_COMPILED_BY}") +# Display information about build configuration. +message(STATUS "Storm - Using compiler configuration ${STORM_COMPILER_ID}.") +if (STORM_DEVELOPER) + message(STATUS "Storm - CXX Flags: ${CMAKE_CXX_FLAGS}") + message(STATUS "Storm - CXX Debug Flags: ${CMAKE_CXX_FLAGS_DEBUG}") + message(STATUS "Storm - CXX Release Flags: ${CMAKE_CXX_FLAGS_RELEASE}") + message(STATUS "Storm - Build type: ${CMAKE_BUILD_TYPE}") +endif() ############################################################# ############################################################# @@ -238,37 +267,6 @@ message(STATUS "StoRM - Using Compiler Configuration: ${STORM_COMPILED_BY}") # in the the system does not have a library include(resources/3rdparty/CMakeLists.txt) - -############################################################# -## -## Cotire -## -############################################################# -message (STATUS "StoRM - Using Cotire: ${STORM_USE_COTIRE}") - -if (STORM_USE_COTIRE) - # Include Cotire for PCH Generation - set (CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/resources/cmake") - include(cotire) - - cotire(storm) - target_link_libraries(storm_unity ${Boost_LIBRARIES}) - #cotire(storm-functional-tests) - #cotire(storm-performance-tests) -endif() - -############################################################# -## -## libc++abi -## -############################################################# -# Link against libc++abi if requested. May be needed to build on Linux systems using clang. -if (LINK_LIBCXXABI) - message (STATUS "StoRM - Linking against libc++abi.") - target_link_libraries(storm "c++abi") -endif(LINK_LIBCXXABI) - - ############################################################# ## ## Doxygen @@ -288,16 +286,14 @@ endif(DOXYGEN_FOUND) ############################################################# ## -## CMake-generated Config File for StoRM +## CMake-generated Config File for Storm ## ############################################################# -# # Make a version file containing the current version from git. -# include(GetGitRevisionDescription) git_describe_checkout(STORM_GIT_VERSION_STRING) -message(STATUS "STORM_GIT_VERSION_STRING: ${STORM_GIT_VERSION_STRING}") +message(STATUS "Storm -- Git version string is ${STORM_GIT_VERSION_STRING}.") # Parse the git Tag into variables string(REGEX REPLACE "^([0-9]+)\\..*" "\\1" STORM_CPP_VERSION_MAJOR "${STORM_GIT_VERSION_STRING}") string(REGEX REPLACE "^[0-9]+\\.([0-9]+).*" "\\1" STORM_CPP_VERSION_MINOR "${STORM_GIT_VERSION_STRING}") @@ -310,7 +306,7 @@ if ("${STORM_CPP_VERSION_APPENDIX}" MATCHES "^.*dirty.*$") else() set(STORM_CPP_VERSION_DIRTY 0) endif() -message(STATUS "StoRM - Version information: ${STORM_CPP_VERSION_MAJOR}.${STORM_CPP_VERSION_MINOR}.${STORM_CPP_VERSION_PATCH} (${STORM_CPP_VERSION_COMMITS_AHEAD} commits ahead of Tag) build from ${STORM_CPP_VERSION_HASH} (Dirty: ${STORM_CPP_VERSION_DIRTY})") +message(STATUS "Storm - Version is ${STORM_CPP_VERSION_MAJOR}.${STORM_CPP_VERSION_MINOR}.${STORM_CPP_VERSION_PATCH} (${STORM_CPP_VERSION_COMMITS_AHEAD} commits ahead of Tag) build from ${STORM_CPP_VERSION_HASH} (Dirty: ${STORM_CPP_VERSION_DIRTY}).") # Configure a header file to pass some of the CMake settings to the source code configure_file ( @@ -332,18 +328,4 @@ include_directories("${PROJECT_BINARY_DIR}/include") add_subdirectory(src) add_subdirectory(test) - - -############################################################# -## -## memcheck targets -## -############################################################# -add_custom_target(memcheck valgrind --leak-check=full --show-reachable=yes ${PROJECT_BINARY_DIR}/storm -v --fix-deadlocks ${PROJECT_SOURCE_DIR}/examples/dtmc/crowds/crowds5_5.tra examples/dtmc/crowds/crowds5_5.lab DEPENDS storm) -add_custom_target(memcheck-functional-tests valgrind --leak-check=full --show-reachable=yes ${PROJECT_BINARY_DIR}/storm-functional-tests -v --fix-deadlocks DEPENDS storm-functional-tests) -add_custom_target(memcheck-performance-tests valgrind --leak-check=full --show-reachable=yes ${PROJECT_BINARY_DIR}/storm-performance-tests -v --fix-deadlocks DEPENDS storm-performance-tests) - -set(CPPLINT_ARGS --filter=-whitespace/tab,-whitespace/line_length,-legal/copyright,-readability/streams) -add_custom_target(style python resources/3rdparty/cpplint/cpplint.py ${CPPLINT_ARGS} `find ./src/ -iname "*.h" -or -iname "*.cpp" `) - include(StormCPackConfig.cmake) diff --git a/resources/3rdparty/CMakeLists.txt b/resources/3rdparty/CMakeLists.txt index 2b73ba22f..f9d422482 100644 --- a/resources/3rdparty/CMakeLists.txt +++ b/resources/3rdparty/CMakeLists.txt @@ -15,7 +15,6 @@ mark_as_advanced(AUTORECONF) ## ############################################################# - # Do not take a branch, needs internet connection. ExternalProject_Add( l3pp @@ -73,7 +72,7 @@ link_directories(${Boost_LIBRARY_DIRS}) include_directories(${Boost_INCLUDE_DIRS}) list(APPEND STORM_LINK_LIBRARIES ${Boost_LIBRARIES}) -message(STATUS "StoRM - Using Boost ${Boost_VERSION} (lib ${Boost_LIB_VERSION})") +message(STATUS "Storm - Using boost ${Boost_VERSION} (library version ${Boost_LIB_VERSION}).") # set the information for the config header set(STORM_BOOST_INCLUDE_DIR "${Boost_INCLUDE_DIRS}") @@ -84,7 +83,7 @@ set(STORM_BOOST_INCLUDE_DIR "${Boost_INCLUDE_DIRS}") ############################################################# # Use the shipped version of ExprTK -message (STATUS "StoRM - Including ExprTk") +message (STATUS "Storm - Including ExprTk.") include_directories("${PROJECT_SOURCE_DIR}/resources/3rdparty/exprtk") ############################################################# @@ -94,7 +93,7 @@ include_directories("${PROJECT_SOURCE_DIR}/resources/3rdparty/exprtk") ############################################################# # Use the shipped version of Sparsepp -message (STATUS "StoRM - Including Sparsepp") +message (STATUS "Storm - Including Sparsepp.") include_directories("${PROJECT_SOURCE_DIR}/resources/3rdparty/sparsepp") ############################################################# @@ -104,7 +103,7 @@ include_directories("${PROJECT_SOURCE_DIR}/resources/3rdparty/sparsepp") ############################################################# # Use the shipped version of utf8cpp -message (STATUS "StoRM - Including utf8cpp") +message (STATUS "Storm - Including utf8cpp.") include_directories("${PROJECT_SOURCE_DIR}/resources/3rdparty/utf8_v2_3_4/source") ############################################################# @@ -114,7 +113,7 @@ include_directories("${PROJECT_SOURCE_DIR}/resources/3rdparty/utf8_v2_3_4/source ############################################################# #use the shipped version of modernjson -message (STATUS "StoRM - Including ModernJSON") +message (STATUS "Storm - Including ModernJSON.") include_directories("${PROJECT_SOURCE_DIR}/resources/3rdparty/modernjson/src/") ############################################################# @@ -129,7 +128,7 @@ find_package(Z3 QUIET) set(STORM_HAVE_Z3 ${Z3_FOUND}) if(Z3_FOUND) - message (STATUS "StoRM - Linking with Z3") + message (STATUS "Storm - Linking with Z3.") include_directories(${Z3_INCLUDE_DIRS}) list(APPEND STORM_LINK_LIBRARIES ${Z3_LIBRARIES}) endif(Z3_FOUND) @@ -152,12 +151,10 @@ if (STORM_USE_GUROBI) find_package(Gurobi QUIET REQUIRED) set(STORM_HAVE_GUROBI ${GUROBI_FOUND}) if (GUROBI_FOUND) - message (STATUS "StoRM - Linking with Gurobi") + message (STATUS "Storm - Linking with Gurobi.") include_directories(${GUROBI_INCLUDE_DIRS}) list(APPEND STORM_LINK_LIBRARIES ${GUROBI_LIBRARY}) #link_directories("${GUROBI_ROOT}/lib") - else() - #message(FATAL_ERROR "StoRM - Gurobi was requested, but not found!") endif() else() set(STORM_HAVE_GUROBI OFF) @@ -187,13 +184,13 @@ find_package(CLN QUIET) if(CLN_FOUND) set(STORM_HAVE_CLN ON) - message(STATUS "StoRM - Linking with CLN ${CLN_VERSION_STRING}") + message(STATUS "Storm - Linking with CLN ${CLN_VERSION_STRING}.") include_directories("${CLN_INCLUDE_DIR}") list(APPEND STORM_LINK_LIBRARIES ${CLN_LIBRARIES}) else() set(STORM_HAVE_CLN OFF) if(NOT GMP_FOUND) - message(FATAL_ERROR "StoRM - Neither CLN nor GMP found") + message(FATAL_ERROR "Storm - Neither CLN nor GMP found.") endif() endif() @@ -208,12 +205,12 @@ if(USE_CARL) find_package(carl QUIET) if(carl_FOUND) set(STORM_HAVE_CARL ON) - message(STATUS "StoRM - Use system version of carl") - message(STATUS "StoRM - Linking with carl ${carl_VERSION_STRING}") + message(STATUS "Storm - Use system version of carl.") + message(STATUS "Storm - Linking with carl ${carl_VERSION_STRING}.") include_directories("${carl_INCLUDE_DIR}") list(APPEND STORM_LINK_LIBRARIES ${carl_LIBRARIES}) else() - message(STATUS "StoRM - Using shipped version of carl") + message(STATUS "Storm - Using shipped version of carl.") # ExternalProject_Add( carl @@ -253,7 +250,7 @@ set(smtrat_FOUND OFF) set(STORM_HAVE_SMTRAT OFF) if(smtrat_FOUND) set(STORM_HAVE_SMTRAT ON) - message(STATUS "StoRM - Linking with smtrat.") + message(STATUS "Storm - Linking with smtrat.") include_directories("${smtrat_INCLUDE_DIR}") list(APPEND STORM_LINK_LIBRARIES ${smtrat_LIBRARIES}) endif() @@ -268,7 +265,7 @@ find_package(GiNaC QUIET) if(GINAC_FOUND) set(STORM_HAVE_GINAC ON) - message(STATUS "StoRM - Linking with GiNaC ${GINAC_VERSION_STRING}") + message(STATUS "Storm - Linking with GiNaC ${GINAC_VERSION_STRING}.") # Right now only link with GiNaC for carl #include_directories("${GINAC_INCLUDE_DIR}") list(APPEND STORM_LINK_LIBRARIES ${GINAC_LIBRARIES}) @@ -302,7 +299,7 @@ endif() # MathSAT Defines set(STORM_HAVE_MSAT ${ENABLE_MSAT}) if (ENABLE_MSAT) - message (STATUS "StoRM - Linking with MathSAT") + message (STATUS "Storm - Linking with MathSAT.") link_directories("${MSAT_ROOT}/lib") include_directories("${MSAT_ROOT}/include") list(APPEND STORM_LINK_LIBRARIES "mathsat") @@ -348,11 +345,8 @@ ExternalProject_Get_Property(sylvan source_dir) ExternalProject_Get_Property(sylvan binary_dir) set(Sylvan_INCLUDE_DIR "${source_dir}/src") set(Sylvan_LIBRARY "${binary_dir}/src/libsylvan.a") - - - -message(STATUS "StoRM - Using shipped version of sylvan") -message(STATUS "StoRM - Linking with sylvan") +message(STATUS "Storm - Using shipped version of sylvan.") +message(STATUS "Storm - Linking with sylvan.") include_directories("${Sylvan_INCLUDE_DIR}") list(APPEND STORM_LINK_LIBRARIES ${Sylvan_LIBRARY}) add_dependencies(resources sylvan) @@ -360,7 +354,7 @@ add_dependencies(resources sylvan) if(${OPERATING_SYSTEM} MATCHES "Linux") find_package(Hwloc QUIET REQUIRED) if(HWLOC_FOUND) - message(STATUS "StoRM - Linking with hwloc ${HWLOC_VERSION}") + message(STATUS "Storm - Linking with hwloc ${HWLOC_VERSION}.") list(APPEND STORM_LINK_LIBRARIES ${HWLOC_LIBRARIES}) else() message(FATAL_ERROR "HWLOC is required but was not found.") @@ -408,19 +402,17 @@ list(APPEND STORM_TEST_LINK_LIBRARIES ${GTEST_LIBRARIES}) set(STORM_HAVE_INTELTBB OFF) if (STORM_USE_INTELTBB) - # Point to shipped TBB directory - set(TBB_INSTALL_DIR "${PROJECT_SOURCE_DIR}/resources/3rdparty/tbb42_20140122_merged-win-lin-mac") find_package(TBB QUIET REQUIRED) if (TBB_FOUND) - message(STATUS "StoRM - Found Intel TBB with interface version ${TBB_INTERFACE_VERSION}.") - message(STATUS "StoRM - Linking with Intel TBB in ${TBB_LIBRARY_DIRS}.") + message(STATUS "Storm - Found Intel TBB with interface version ${TBB_INTERFACE_VERSION}.") + message(STATUS "Storm - Linking with Intel TBB in ${TBB_LIBRARY_DIRS}.") set(STORM_HAVE_INTELTBB ON) link_directories(${TBB_LIBRARY_DIRS}) include_directories(${TBB_INCLUDE_DIRS}) list(APPEND STORM_LINK_LIBRARIES tbb tbbmalloc) else(TBB_FOUND) - message(FATAL_ERROR "StoRM - TBB was requested, but not found!") + message(FATAL_ERROR "Storm - TBB was requested, but not found.") endif(TBB_FOUND) endif(STORM_USE_INTELTBB) @@ -432,7 +424,7 @@ endif(STORM_USE_INTELTBB) find_package(Threads QUIET REQUIRED) if (NOT Threads_FOUND) - message(FATAL_ERROR "StoRM - Threads was requested, but not found!") + message(FATAL_ERROR "Storm - Threads was requested, but not found.") endif() include_directories(${THREADS_INCLUDE_DIRS}) list(APPEND STORM_LINK_LIBRARIES ${CMAKE_THREAD_LIBS_INIT}) @@ -440,12 +432,6 @@ if (STORM_USE_COTIRE) target_link_libraries(storm_unity ${CMAKE_THREAD_LIBS_INIT}) endif(STORM_USE_COTIRE) -if (MSVC) - # Add the DebugHelper DLL - set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} Dbghelp.lib") - target_link_libraries(storm "Dbghelp.lib") -endif(MSVC) - ############################################################# ## ## CUDA Library generation @@ -472,18 +458,17 @@ set(STORM_CPP_CUDAFORSTORM_DEF "undef") if(ENABLE_CUDA) - # Test for type alignment try_run(STORM_CUDA_RUN_RESULT_TYPEALIGNMENT STORM_CUDA_COMPILE_RESULT_TYPEALIGNMENT ${PROJECT_BINARY_DIR} "${PROJECT_SOURCE_DIR}/cuda/CMakeAlignmentCheck.cpp" COMPILE_OUTPUT_VARIABLE OUTPUT_TEST_VAR ) if(NOT STORM_CUDA_COMPILE_RESULT_TYPEALIGNMENT) - message(FATAL_ERROR "StoRM (CudaPlugin) - Could not test type alignment, there was an Error while compiling the file ${PROJECT_SOURCE_DIR}/cuda/CMakeAlignmentCheck.cpp: ${OUTPUT_TEST_VAR}") + message(FATAL_ERROR "Storm (CudaPlugin) - Could not test type alignment, there was an Error while compiling the file ${PROJECT_SOURCE_DIR}/cuda/CMakeAlignmentCheck.cpp: ${OUTPUT_TEST_VAR}") elseif(STORM_CUDA_RUN_RESULT_TYPEALIGNMENT EQUAL 0) message(STATUS "StoRM (CudaPlugin) - Result of Type Alignment Check: OK.") else() - message(FATAL_ERROR "StoRM (CudaPlugin) - Result of Type Alignment Check: FAILED (Code ${STORM_CUDA_RUN_RESULT_TYPEALIGNMENT})") + message(FATAL_ERROR "Storm (CudaPlugin) - Result of Type Alignment Check: FAILED (Code ${STORM_CUDA_RUN_RESULT_TYPEALIGNMENT})") endif() # Test for Float 64bit Alignment @@ -492,15 +477,15 @@ if(ENABLE_CUDA) COMPILE_OUTPUT_VARIABLE OUTPUT_TEST_VAR ) if(NOT STORM_CUDA_COMPILE_RESULT_FLOATALIGNMENT) - message(FATAL_ERROR "StoRM (CudaPlugin) - Could not test float type alignment, there was an Error while compiling the file ${PROJECT_SOURCE_DIR}/cuda/CMakeFloatAlignmentCheck.cpp: ${OUTPUT_TEST_VAR}") + message(FATAL_ERROR "Storm (CudaPlugin) - Could not test float type alignment, there was an Error while compiling the file ${PROJECT_SOURCE_DIR}/cuda/CMakeFloatAlignmentCheck.cpp: ${OUTPUT_TEST_VAR}") elseif(STORM_CUDA_RUN_RESULT_FLOATALIGNMENT EQUAL 2) - message(STATUS "StoRM (CudaPlugin) - Result of Float Type Alignment Check: 64bit alignment active.") + message(STATUS "Storm (CudaPlugin) - Result of Float Type Alignment Check: 64bit alignment active.") set(STORM_CUDAPLUGIN_FLOAT_64BIT_ALIGN_DEF "define") elseif(STORM_CUDA_RUN_RESULT_FLOATALIGNMENT EQUAL 3) - message(STATUS "StoRM (CudaPlugin) - Result of Float Type Alignment Check: 64bit alignment disabled.") + message(STATUS "Storm (CudaPlugin) - Result of Float Type Alignment Check: 64bit alignment disabled.") set(STORM_CUDAPLUGIN_FLOAT_64BIT_ALIGN_DEF "undef") else() - message(FATAL_ERROR "StoRM (CudaPlugin) - Result of Float Type Alignment Check: FAILED (Code ${STORM_CUDA_RUN_RESULT_FLOATALIGNMENT})") + message(FATAL_ERROR "Storm (CudaPlugin) - Result of Float Type Alignment Check: FAILED (Code ${STORM_CUDA_RUN_RESULT_FLOATALIGNMENT})") endif() # # Make a version file containing the current version from git. @@ -519,7 +504,7 @@ if(ENABLE_CUDA) else() set(STORM_CUDAPLUGIN_VERSION_DIRTY 0) endif() - message(STATUS "StoRM (CudaPlugin) - Version information: ${STORM_CUDAPLUGIN_VERSION_MAJOR}.${STORM_CUDAPLUGIN_VERSION_MINOR}.${STORM_CUDAPLUGIN_VERSION_PATCH} (${STORM_CUDAPLUGIN_VERSION_COMMITS_AHEAD} commits ahead of Tag) build from ${STORM_CUDAPLUGIN_VERSION_HASH} (Dirty: ${STORM_CUDAPLUGIN_VERSION_DIRTY})") + message(STATUS "Storm (CudaPlugin) - Version information: ${STORM_CUDAPLUGIN_VERSION_MAJOR}.${STORM_CUDAPLUGIN_VERSION_MINOR}.${STORM_CUDAPLUGIN_VERSION_PATCH} (${STORM_CUDAPLUGIN_VERSION_COMMITS_AHEAD} commits ahead of Tag) build from ${STORM_CUDAPLUGIN_VERSION_HASH} (Dirty: ${STORM_CUDAPLUGIN_VERSION_DIRTY})") # Configure a header file to pass some of the CMake settings to the source code @@ -553,9 +538,9 @@ if(ENABLE_CUDA) if(CUSP_FOUND) include_directories(${CUSP_INCLUDE_DIR}) cuda_include_directories(${CUSP_INCLUDE_DIR}) - message(STATUS "StoRM (CudaPlugin) - Found CUSP Version ${CUSP_VERSION} in location ${CUSP_INCLUDE_DIR}") + message(STATUS "Storm (CudaPlugin) - Found CUSP Version ${CUSP_VERSION} in location ${CUSP_INCLUDE_DIR}.") else() - message(FATAL_ERROR "StoRM (CudaPlugin) - Could not find CUSP!") + message(FATAL_ERROR "Storm (CudaPlugin) - Could not find CUSP.") endif() ############################################################# @@ -566,9 +551,9 @@ if(ENABLE_CUDA) if(THRUST_FOUND) include_directories(${THRUST_INCLUDE_DIR}) cuda_include_directories(${THRUST_INCLUDE_DIR}) - message(STATUS "StoRM (CudaPlugin) - Found Thrust Version ${THRUST_VERSION} in location ${THRUST_INCLUDE_DIR}") + message(STATUS "Storm (CudaPlugin) - Found Thrust Version ${THRUST_VERSION} in location ${THRUST_INCLUDE_DIR}.") else() - message(FATAL_ERROR "StoRM (CudaPlugin) - Could not find Thrust! Check your CUDA installation.") + message(FATAL_ERROR "Storm (CudaPlugin) - Could not find Thrust. Check your CUDA installation.") endif() include_directories(${CUDA_INCLUDE_DIRS}) @@ -578,7 +563,7 @@ if(ENABLE_CUDA) ${STORM_CUDA_KERNEL_FILES} ${STORM_CUDA_HEADER_FILES} ) - message (STATUS "StoRM - Linking with CUDA") + message (STATUS "Storm - Linking with CUDA.") list(APPEND STORM_LINK_LIBRARIES ${STORM_CUDA_LIB_NAME}) include_directories("${PROJECT_SOURCE_DIR}/cuda/kernels/") endif() diff --git a/resources/3rdparty/cpplint/cpplint.py b/resources/3rdparty/cpplint/cpplint.py deleted file mode 100644 index 526b9556d..000000000 --- a/resources/3rdparty/cpplint/cpplint.py +++ /dev/null @@ -1,3361 +0,0 @@ -#!/usr/bin/python -# -# Copyright (c) 2009 Google Inc. All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * 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. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# 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. - -# Here are some issues that I've had people identify in my code during reviews, -# that I think are possible to flag automatically in a lint tool. If these were -# caught by lint, it would save time both for myself and that of my reviewers. -# Most likely, some of these are beyond the scope of the current lint framework, -# but I think it is valuable to retain these wish-list items even if they cannot -# be immediately implemented. -# -# Suggestions -# ----------- -# - Check for no 'explicit' for multi-arg ctor -# - Check for boolean assign RHS in parens -# - Check for ctor initializer-list colon position and spacing -# - Check that if there's a ctor, there should be a dtor -# - Check accessors that return non-pointer member variables are -# declared const -# - Check accessors that return non-const pointer member vars are -# *not* declared const -# - Check for using public includes for testing -# - Check for spaces between brackets in one-line inline method -# - Check for no assert() -# - Check for spaces surrounding operators -# - Check for 0 in pointer context (should be NULL) -# - Check for 0 in char context (should be '\0') -# - Check for camel-case method name conventions for methods -# that are not simple inline getters and setters -# - Check that base classes have virtual destructors -# put " // namespace" after } that closes a namespace, with -# namespace's name after 'namespace' if it is named. -# - Do not indent namespace contents -# - Avoid inlining non-trivial constructors in header files -# include base/basictypes.h if DISALLOW_EVIL_CONSTRUCTORS is used -# - Check for old-school (void) cast for call-sites of functions -# ignored return value -# - Check gUnit usage of anonymous namespace -# - Check for class declaration order (typedefs, consts, enums, -# ctor(s?), dtor, friend declarations, methods, member vars) -# - -"""Does google-lint on c++ files. - -The goal of this script is to identify places in the code that *may* -be in non-compliance with google style. It does not attempt to fix -up these problems -- the point is to educate. It does also not -attempt to find all problems, or to ensure that everything it does -find is legitimately a problem. - -In particular, we can get very confused by /* and // inside strings! -We do a small hack, which is to ignore //'s with "'s after them on the -same line, but it is far from perfect (in either direction). -""" - -import codecs -import getopt -import math # for log -import os -import re -import sre_compile -import string -import sys -import unicodedata - - -_USAGE = """ -Syntax: cpplint.py [--verbose=#] [--output=vs7] [--filter=-x,+y,...] - [--counting=total|toplevel|detailed] - [file] ... - - The style guidelines this tries to follow are those in - http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml - - Every problem is given a confidence score from 1-5, with 5 meaning we are - certain of the problem, and 1 meaning it could be a legitimate construct. - This will miss some errors, and is not a substitute for a code review. - - To suppress false-positive errors of a certain category, add a - 'NOLINT(category)' comment to the line. NOLINT or NOLINT(*) - suppresses errors of all categories on that line. - - The files passed in will be linted; at least one file must be provided. - Linted extensions are .cc, .cpp, and .h. Other file types will be ignored. - - Flags: - - output=vs7 - By default, the output is formatted to ease emacs parsing. Visual Studio - compatible output (vs7) may also be used. Other formats are unsupported. - - verbose=# - Specify a number 0-5 to restrict errors to certain verbosity levels. - - filter=-x,+y,... - Specify a comma-separated list of category-filters to apply: only - error messages whose category names pass the filters will be printed. - (Category names are printed with the message and look like - "[whitespace/indent]".) Filters are evaluated left to right. - "-FOO" and "FOO" means "do not print categories that start with FOO". - "+FOO" means "do print categories that start with FOO". - - Examples: --filter=-whitespace,+whitespace/braces - --filter=whitespace,runtime/printf,+runtime/printf_format - --filter=-,+build/include_what_you_use - - To see a list of all the categories used in cpplint, pass no arg: - --filter= - - counting=total|toplevel|detailed - The total number of errors found is always printed. If - 'toplevel' is provided, then the count of errors in each of - the top-level categories like 'build' and 'whitespace' will - also be printed. If 'detailed' is provided, then a count - is provided for each category like 'build/class'. -""" - -# We categorize each error message we print. Here are the categories. -# We want an explicit list so we can list them all in cpplint --filter=. -# If you add a new error message with a new category, add it to the list -# here! cpplint_unittest.py should tell you if you forget to do this. -# \ used for clearer layout -- pylint: disable-msg=C6013 -_ERROR_CATEGORIES = [ - 'build/class', - 'build/deprecated', - 'build/endif_comment', - 'build/explicit_make_pair', - 'build/forward_decl', - 'build/header_guard', - 'build/include', - 'build/include_alpha', - 'build/include_order', - 'build/include_what_you_use', - 'build/namespaces', - 'build/printf_format', - 'build/storage_class', - 'legal/copyright', - 'readability/braces', - 'readability/casting', - 'readability/check', - 'readability/constructors', - 'readability/fn_size', - 'readability/function', - 'readability/multiline_comment', - 'readability/multiline_string', - 'readability/nolint', - 'readability/streams', - 'readability/todo', - 'readability/utf8', - 'runtime/arrays', - 'runtime/casting', - 'runtime/explicit', - 'runtime/int', - 'runtime/init', - 'runtime/invalid_increment', - 'runtime/member_string_references', - 'runtime/memset', - 'runtime/operator', - 'runtime/printf', - 'runtime/printf_format', - 'runtime/references', - 'runtime/rtti', - 'runtime/sizeof', - 'runtime/string', - 'runtime/threadsafe_fn', - 'runtime/virtual', - 'whitespace/blank_line', - 'whitespace/braces', - 'whitespace/comma', - 'whitespace/comments', - 'whitespace/end_of_line', - 'whitespace/ending_newline', - 'whitespace/indent', - 'whitespace/labels', - 'whitespace/line_length', - 'whitespace/newline', - 'whitespace/operators', - 'whitespace/parens', - 'whitespace/semicolon', - 'whitespace/tab', - 'whitespace/todo' - ] - -# The default state of the category filter. This is overrided by the --filter= -# flag. By default all errors are on, so only add here categories that should be -# off by default (i.e., categories that must be enabled by the --filter= flags). -# All entries here should start with a '-' or '+', as in the --filter= flag. -_DEFAULT_FILTERS = ['-build/include_alpha'] - -# We used to check for high-bit characters, but after much discussion we -# decided those were OK, as long as they were in UTF-8 and didn't represent -# hard-coded international strings, which belong in a separate i18n file. - -# Headers that we consider STL headers. -_STL_HEADERS = frozenset([ - 'algobase.h', 'algorithm', 'alloc.h', 'bitset', 'deque', 'exception', - 'function.h', 'functional', 'hash_map', 'hash_map.h', 'hash_set', - 'hash_set.h', 'iterator', 'list', 'list.h', 'map', 'memory', 'new', - 'pair.h', 'pthread_alloc', 'queue', 'set', 'set.h', 'sstream', 'stack', - 'stl_alloc.h', 'stl_relops.h', 'type_traits.h', - 'utility', 'vector', 'vector.h', - ]) - - -# Non-STL C++ system headers. -_CPP_HEADERS = frozenset([ - 'algo.h', 'builtinbuf.h', 'bvector.h', 'cassert', 'cctype', - 'cerrno', 'cfloat', 'ciso646', 'climits', 'clocale', 'cmath', - 'complex', 'complex.h', 'csetjmp', 'csignal', 'cstdarg', 'cstddef', - 'cstdio', 'cstdlib', 'cstring', 'ctime', 'cwchar', 'cwctype', - 'defalloc.h', 'deque.h', 'editbuf.h', 'exception', 'fstream', - 'fstream.h', 'hashtable.h', 'heap.h', 'indstream.h', 'iomanip', - 'iomanip.h', 'ios', 'iosfwd', 'iostream', 'iostream.h', 'istream', - 'istream.h', 'iterator.h', 'limits', 'map.h', 'multimap.h', 'multiset.h', - 'numeric', 'ostream', 'ostream.h', 'parsestream.h', 'pfstream.h', - 'PlotFile.h', 'procbuf.h', 'pthread_alloc.h', 'rope', 'rope.h', - 'ropeimpl.h', 'SFile.h', 'slist', 'slist.h', 'stack.h', 'stdexcept', - 'stdiostream.h', 'streambuf.h', 'stream.h', 'strfile.h', 'string', - 'strstream', 'strstream.h', 'tempbuf.h', 'tree.h', 'typeinfo', 'valarray', - ]) - - -# Assertion macros. These are defined in base/logging.h and -# testing/base/gunit.h. Note that the _M versions need to come first -# for substring matching to work. -_CHECK_MACROS = [ - 'DCHECK', 'CHECK', - 'EXPECT_TRUE_M', 'EXPECT_TRUE', - 'ASSERT_TRUE_M', 'ASSERT_TRUE', - 'EXPECT_FALSE_M', 'EXPECT_FALSE', - 'ASSERT_FALSE_M', 'ASSERT_FALSE', - ] - -# Replacement macros for CHECK/DCHECK/EXPECT_TRUE/EXPECT_FALSE -_CHECK_REPLACEMENT = dict([(m, {}) for m in _CHECK_MACROS]) - -for op, replacement in [('==', 'EQ'), ('!=', 'NE'), - ('>=', 'GE'), ('>', 'GT'), - ('<=', 'LE'), ('<', 'LT')]: - _CHECK_REPLACEMENT['DCHECK'][op] = 'DCHECK_%s' % replacement - _CHECK_REPLACEMENT['CHECK'][op] = 'CHECK_%s' % replacement - _CHECK_REPLACEMENT['EXPECT_TRUE'][op] = 'EXPECT_%s' % replacement - _CHECK_REPLACEMENT['ASSERT_TRUE'][op] = 'ASSERT_%s' % replacement - _CHECK_REPLACEMENT['EXPECT_TRUE_M'][op] = 'EXPECT_%s_M' % replacement - _CHECK_REPLACEMENT['ASSERT_TRUE_M'][op] = 'ASSERT_%s_M' % replacement - -for op, inv_replacement in [('==', 'NE'), ('!=', 'EQ'), - ('>=', 'LT'), ('>', 'LE'), - ('<=', 'GT'), ('<', 'GE')]: - _CHECK_REPLACEMENT['EXPECT_FALSE'][op] = 'EXPECT_%s' % inv_replacement - _CHECK_REPLACEMENT['ASSERT_FALSE'][op] = 'ASSERT_%s' % inv_replacement - _CHECK_REPLACEMENT['EXPECT_FALSE_M'][op] = 'EXPECT_%s_M' % inv_replacement - _CHECK_REPLACEMENT['ASSERT_FALSE_M'][op] = 'ASSERT_%s_M' % inv_replacement - - -# These constants define types of headers for use with -# _IncludeState.CheckNextIncludeOrder(). -_C_SYS_HEADER = 1 -_CPP_SYS_HEADER = 2 -_LIKELY_MY_HEADER = 3 -_POSSIBLE_MY_HEADER = 4 -_OTHER_HEADER = 5 - - -_regexp_compile_cache = {} - -# Finds occurrences of NOLINT or NOLINT(...). -_RE_SUPPRESSION = re.compile(r'\bNOLINT\b(\([^)]*\))?') - -# {str, set(int)}: a map from error categories to sets of linenumbers -# on which those errors are expected and should be suppressed. -_error_suppressions = {} - -def ParseNolintSuppressions(filename, raw_line, linenum, error): - """Updates the global list of error-suppressions. - - Parses any NOLINT comments on the current line, updating the global - error_suppressions store. Reports an error if the NOLINT comment - was malformed. - - Args: - filename: str, the name of the input file. - raw_line: str, the line of input text, with comments. - linenum: int, the number of the current line. - error: function, an error handler. - """ - # FIXME(adonovan): "NOLINT(" is misparsed as NOLINT(*). - matched = _RE_SUPPRESSION.search(raw_line) - if matched: - category = matched.group(1) - if category in (None, '(*)'): # => "suppress all" - _error_suppressions.setdefault(None, set()).add(linenum) - else: - if category.startswith('(') and category.endswith(')'): - category = category[1:-1] - if category in _ERROR_CATEGORIES: - _error_suppressions.setdefault(category, set()).add(linenum) - else: - error(filename, linenum, 'readability/nolint', 5, - 'Unknown NOLINT error category: %s' % category) - - -def ResetNolintSuppressions(): - "Resets the set of NOLINT suppressions to empty." - _error_suppressions.clear() - - -def IsErrorSuppressedByNolint(category, linenum): - """Returns true if the specified error category is suppressed on this line. - - Consults the global error_suppressions map populated by - ParseNolintSuppressions/ResetNolintSuppressions. - - Args: - category: str, the category of the error. - linenum: int, the current line number. - Returns: - bool, True iff the error should be suppressed due to a NOLINT comment. - """ - return (linenum in _error_suppressions.get(category, set()) or - linenum in _error_suppressions.get(None, set())) - -def Match(pattern, s): - """Matches the string with the pattern, caching the compiled regexp.""" - # The regexp compilation caching is inlined in both Match and Search for - # performance reasons; factoring it out into a separate function turns out - # to be noticeably expensive. - if not pattern in _regexp_compile_cache: - _regexp_compile_cache[pattern] = sre_compile.compile(pattern) - return _regexp_compile_cache[pattern].match(s) - - -def Search(pattern, s): - """Searches the string for the pattern, caching the compiled regexp.""" - if not pattern in _regexp_compile_cache: - _regexp_compile_cache[pattern] = sre_compile.compile(pattern) - return _regexp_compile_cache[pattern].search(s) - - -class _IncludeState(dict): - """Tracks line numbers for includes, and the order in which includes appear. - - As a dict, an _IncludeState object serves as a mapping between include - filename and line number on which that file was included. - - Call CheckNextIncludeOrder() once for each header in the file, passing - in the type constants defined above. Calls in an illegal order will - raise an _IncludeError with an appropriate error message. - - """ - # self._section will move monotonically through this set. If it ever - # needs to move backwards, CheckNextIncludeOrder will raise an error. - _INITIAL_SECTION = 0 - _MY_H_SECTION = 1 - _C_SECTION = 2 - _CPP_SECTION = 3 - _OTHER_H_SECTION = 4 - - _TYPE_NAMES = { - _C_SYS_HEADER: 'C system header', - _CPP_SYS_HEADER: 'C++ system header', - _LIKELY_MY_HEADER: 'header this file implements', - _POSSIBLE_MY_HEADER: 'header this file may implement', - _OTHER_HEADER: 'other header', - } - _SECTION_NAMES = { - _INITIAL_SECTION: "... nothing. (This can't be an error.)", - _MY_H_SECTION: 'a header this file implements', - _C_SECTION: 'C system header', - _CPP_SECTION: 'C++ system header', - _OTHER_H_SECTION: 'other header', - } - - def __init__(self): - dict.__init__(self) - # The name of the current section. - self._section = self._INITIAL_SECTION - # The path of last found header. - self._last_header = '' - - def CanonicalizeAlphabeticalOrder(self, header_path): - """Returns a path canonicalized for alphabetical comparison. - - - replaces "-" with "_" so they both cmp the same. - - removes '-inl' since we don't require them to be after the main header. - - lowercase everything, just in case. - - Args: - header_path: Path to be canonicalized. - - Returns: - Canonicalized path. - """ - return header_path.replace('-inl.h', '.h').replace('-', '_').lower() - - def IsInAlphabeticalOrder(self, header_path): - """Check if a header is in alphabetical order with the previous header. - - Args: - header_path: Header to be checked. - - Returns: - Returns true if the header is in alphabetical order. - """ - canonical_header = self.CanonicalizeAlphabeticalOrder(header_path) - if self._last_header > canonical_header: - return False - self._last_header = canonical_header - return True - - def CheckNextIncludeOrder(self, header_type): - """Returns a non-empty error message if the next header is out of order. - - This function also updates the internal state to be ready to check - the next include. - - Args: - header_type: One of the _XXX_HEADER constants defined above. - - Returns: - The empty string if the header is in the right order, or an - error message describing what's wrong. - - """ - error_message = ('Found %s after %s' % - (self._TYPE_NAMES[header_type], - self._SECTION_NAMES[self._section])) - - last_section = self._section - - if header_type == _C_SYS_HEADER: - if self._section <= self._C_SECTION: - self._section = self._C_SECTION - else: - self._last_header = '' - return error_message - elif header_type == _CPP_SYS_HEADER: - if self._section <= self._CPP_SECTION: - self._section = self._CPP_SECTION - else: - self._last_header = '' - return error_message - elif header_type == _LIKELY_MY_HEADER: - if self._section <= self._MY_H_SECTION: - self._section = self._MY_H_SECTION - else: - self._section = self._OTHER_H_SECTION - elif header_type == _POSSIBLE_MY_HEADER: - if self._section <= self._MY_H_SECTION: - self._section = self._MY_H_SECTION - else: - # This will always be the fallback because we're not sure - # enough that the header is associated with this file. - self._section = self._OTHER_H_SECTION - else: - assert header_type == _OTHER_HEADER - self._section = self._OTHER_H_SECTION - - if last_section != self._section: - self._last_header = '' - - return '' - - -class _CppLintState(object): - """Maintains module-wide state..""" - - def __init__(self): - self.verbose_level = 1 # global setting. - self.error_count = 0 # global count of reported errors - # filters to apply when emitting error messages - self.filters = _DEFAULT_FILTERS[:] - self.counting = 'total' # In what way are we counting errors? - self.errors_by_category = {} # string to int dict storing error counts - - # output format: - # "emacs" - format that emacs can parse (default) - # "vs7" - format that Microsoft Visual Studio 7 can parse - self.output_format = 'emacs' - - def SetOutputFormat(self, output_format): - """Sets the output format for errors.""" - self.output_format = output_format - - def SetVerboseLevel(self, level): - """Sets the module's verbosity, and returns the previous setting.""" - last_verbose_level = self.verbose_level - self.verbose_level = level - return last_verbose_level - - def SetCountingStyle(self, counting_style): - """Sets the module's counting options.""" - self.counting = counting_style - - def SetFilters(self, filters): - """Sets the error-message filters. - - These filters are applied when deciding whether to emit a given - error message. - - Args: - filters: A string of comma-separated filters (eg "+whitespace/indent"). - Each filter should start with + or -; else we die. - - Raises: - ValueError: The comma-separated filters did not all start with '+' or '-'. - E.g. "-,+whitespace,-whitespace/indent,whitespace/badfilter" - """ - # Default filters always have less priority than the flag ones. - self.filters = _DEFAULT_FILTERS[:] - for filt in filters.split(','): - clean_filt = filt.strip() - if clean_filt: - self.filters.append(clean_filt) - for filt in self.filters: - if not (filt.startswith('+') or filt.startswith('-')): - raise ValueError('Every filter in --filters must start with + or -' - ' (%s does not)' % filt) - - def ResetErrorCounts(self): - """Sets the module's error statistic back to zero.""" - self.error_count = 0 - self.errors_by_category = {} - - def IncrementErrorCount(self, category): - """Bumps the module's error statistic.""" - self.error_count += 1 - if self.counting in ('toplevel', 'detailed'): - if self.counting != 'detailed': - category = category.split('/')[0] - if category not in self.errors_by_category: - self.errors_by_category[category] = 0 - self.errors_by_category[category] += 1 - - def PrintErrorCounts(self): - """Print a summary of errors by category, and the total.""" - for category, count in self.errors_by_category.iteritems(): - sys.stderr.write('Category \'%s\' errors found: %d\n' % - (category, count)) - sys.stderr.write('Total errors found: %d\n' % self.error_count) - -_cpplint_state = _CppLintState() - - -def _OutputFormat(): - """Gets the module's output format.""" - return _cpplint_state.output_format - - -def _SetOutputFormat(output_format): - """Sets the module's output format.""" - _cpplint_state.SetOutputFormat(output_format) - - -def _VerboseLevel(): - """Returns the module's verbosity setting.""" - return _cpplint_state.verbose_level - - -def _SetVerboseLevel(level): - """Sets the module's verbosity, and returns the previous setting.""" - return _cpplint_state.SetVerboseLevel(level) - - -def _SetCountingStyle(level): - """Sets the module's counting options.""" - _cpplint_state.SetCountingStyle(level) - - -def _Filters(): - """Returns the module's list of output filters, as a list.""" - return _cpplint_state.filters - - -def _SetFilters(filters): - """Sets the module's error-message filters. - - These filters are applied when deciding whether to emit a given - error message. - - Args: - filters: A string of comma-separated filters (eg "whitespace/indent"). - Each filter should start with + or -; else we die. - """ - _cpplint_state.SetFilters(filters) - - -class _FunctionState(object): - """Tracks current function name and the number of lines in its body.""" - - _NORMAL_TRIGGER = 250 # for --v=0, 500 for --v=1, etc. - _TEST_TRIGGER = 400 # about 50% more than _NORMAL_TRIGGER. - - def __init__(self): - self.in_a_function = False - self.lines_in_function = 0 - self.current_function = '' - - def Begin(self, function_name): - """Start analyzing function body. - - Args: - function_name: The name of the function being tracked. - """ - self.in_a_function = True - self.lines_in_function = 0 - self.current_function = function_name - - def Count(self): - """Count line in current function body.""" - if self.in_a_function: - self.lines_in_function += 1 - - def Check(self, error, filename, linenum): - """Report if too many lines in function body. - - Args: - error: The function to call with any errors found. - filename: The name of the current file. - linenum: The number of the line to check. - """ - if Match(r'T(EST|est)', self.current_function): - base_trigger = self._TEST_TRIGGER - else: - base_trigger = self._NORMAL_TRIGGER - trigger = base_trigger * 2**_VerboseLevel() - - if self.lines_in_function > trigger: - error_level = int(math.log(self.lines_in_function / base_trigger, 2)) - # 50 => 0, 100 => 1, 200 => 2, 400 => 3, 800 => 4, 1600 => 5, ... - if error_level > 5: - error_level = 5 - error(filename, linenum, 'readability/fn_size', error_level, - 'Small and focused functions are preferred:' - ' %s has %d non-comment lines' - ' (error triggered by exceeding %d lines).' % ( - self.current_function, self.lines_in_function, trigger)) - - def End(self): - """Stop analyzing function body.""" - self.in_a_function = False - - -class _IncludeError(Exception): - """Indicates a problem with the include order in a file.""" - pass - - -class FileInfo: - """Provides utility functions for filenames. - - FileInfo provides easy access to the components of a file's path - relative to the project root. - """ - - def __init__(self, filename): - self._filename = filename - - def FullName(self): - """Make Windows paths like Unix.""" - return os.path.abspath(self._filename).replace('\\', '/') - - def RepositoryName(self): - """FullName after removing the local path to the repository. - - If we have a real absolute path name here we can try to do something smart: - detecting the root of the checkout and truncating /path/to/checkout from - the name so that we get header guards that don't include things like - "C:\Documents and Settings\..." or "/home/username/..." in them and thus - people on different computers who have checked the source out to different - locations won't see bogus errors. - """ - fullname = self.FullName() - - if os.path.exists(fullname): - project_dir = os.path.dirname(fullname) - - if os.path.exists(os.path.join(project_dir, ".svn")): - # If there's a .svn file in the current directory, we recursively look - # up the directory tree for the top of the SVN checkout - root_dir = project_dir - one_up_dir = os.path.dirname(root_dir) - while os.path.exists(os.path.join(one_up_dir, ".svn")): - root_dir = os.path.dirname(root_dir) - one_up_dir = os.path.dirname(one_up_dir) - - prefix = os.path.commonprefix([root_dir, project_dir]) - return fullname[len(prefix) + 1:] - - # Not SVN <= 1.6? Try to find a git, hg, or svn top level directory by - # searching up from the current path. - root_dir = os.path.dirname(fullname) - while (root_dir != os.path.dirname(root_dir) and - not os.path.exists(os.path.join(root_dir, ".git")) and - not os.path.exists(os.path.join(root_dir, ".hg")) and - not os.path.exists(os.path.join(root_dir, ".svn"))): - root_dir = os.path.dirname(root_dir) - - if (os.path.exists(os.path.join(root_dir, ".git")) or - os.path.exists(os.path.join(root_dir, ".hg")) or - os.path.exists(os.path.join(root_dir, ".svn"))): - prefix = os.path.commonprefix([root_dir, project_dir]) - return fullname[len(prefix) + 1:] - - # Don't know what to do; header guard warnings may be wrong... - return fullname - - def Split(self): - """Splits the file into the directory, basename, and extension. - - For 'chrome/browser/browser.cc', Split() would - return ('chrome/browser', 'browser', '.cc') - - Returns: - A tuple of (directory, basename, extension). - """ - - googlename = self.RepositoryName() - project, rest = os.path.split(googlename) - return (project,) + os.path.splitext(rest) - - def BaseName(self): - """File base name - text after the final slash, before the final period.""" - return self.Split()[1] - - def Extension(self): - """File extension - text following the final period.""" - return self.Split()[2] - - def NoExtension(self): - """File has no source file extension.""" - return '/'.join(self.Split()[0:2]) - - def IsSource(self): - """File has a source file extension.""" - return self.Extension()[1:] in ('c', 'cc', 'cpp', 'cxx') - - -def _ShouldPrintError(category, confidence, linenum): - """If confidence >= verbose, category passes filter and is not suppressed.""" - - # There are three ways we might decide not to print an error message: - # a "NOLINT(category)" comment appears in the source, - # the verbosity level isn't high enough, or the filters filter it out. - if IsErrorSuppressedByNolint(category, linenum): - return False - if confidence < _cpplint_state.verbose_level: - return False - - is_filtered = False - for one_filter in _Filters(): - if one_filter.startswith('-'): - if category.startswith(one_filter[1:]): - is_filtered = True - elif one_filter.startswith('+'): - if category.startswith(one_filter[1:]): - is_filtered = False - else: - assert False # should have been checked for in SetFilter. - if is_filtered: - return False - - return True - - -def Error(filename, linenum, category, confidence, message): - """Logs the fact we've found a lint error. - - We log where the error was found, and also our confidence in the error, - that is, how certain we are this is a legitimate style regression, and - not a misidentification or a use that's sometimes justified. - - False positives can be suppressed by the use of - "cpplint(category)" comments on the offending line. These are - parsed into _error_suppressions. - - Args: - filename: The name of the file containing the error. - linenum: The number of the line containing the error. - category: A string used to describe the "category" this bug - falls under: "whitespace", say, or "runtime". Categories - may have a hierarchy separated by slashes: "whitespace/indent". - confidence: A number from 1-5 representing a confidence score for - the error, with 5 meaning that we are certain of the problem, - and 1 meaning that it could be a legitimate construct. - message: The error message. - """ - if _ShouldPrintError(category, confidence, linenum): - _cpplint_state.IncrementErrorCount(category) - if _cpplint_state.output_format == 'vs7': - sys.stderr.write('%s(%s): %s [%s] [%d]\n' % ( - filename, linenum, message, category, confidence)) - else: - sys.stderr.write('%s:%s: %s [%s] [%d]\n' % ( - filename, linenum, message, category, confidence)) - - -# Matches standard C++ escape esequences per 2.13.2.3 of the C++ standard. -_RE_PATTERN_CLEANSE_LINE_ESCAPES = re.compile( - r'\\([abfnrtv?"\\\']|\d+|x[0-9a-fA-F]+)') -# Matches strings. Escape codes should already be removed by ESCAPES. -_RE_PATTERN_CLEANSE_LINE_DOUBLE_QUOTES = re.compile(r'"[^"]*"') -# Matches characters. Escape codes should already be removed by ESCAPES. -_RE_PATTERN_CLEANSE_LINE_SINGLE_QUOTES = re.compile(r"'.'") -# Matches multi-line C++ comments. -# This RE is a little bit more complicated than one might expect, because we -# have to take care of space removals tools so we can handle comments inside -# statements better. -# The current rule is: We only clear spaces from both sides when we're at the -# end of the line. Otherwise, we try to remove spaces from the right side, -# if this doesn't work we try on left side but only if there's a non-character -# on the right. -_RE_PATTERN_CLEANSE_LINE_C_COMMENTS = re.compile( - r"""(\s*/\*.*\*/\s*$| - /\*.*\*/\s+| - \s+/\*.*\*/(?=\W)| - /\*.*\*/)""", re.VERBOSE) - - -def IsCppString(line): - """Does line terminate so, that the next symbol is in string constant. - - This function does not consider single-line nor multi-line comments. - - Args: - line: is a partial line of code starting from the 0..n. - - Returns: - True, if next character appended to 'line' is inside a - string constant. - """ - - line = line.replace(r'\\', 'XX') # after this, \\" does not match to \" - return ((line.count('"') - line.count(r'\"') - line.count("'\"'")) & 1) == 1 - - -def FindNextMultiLineCommentStart(lines, lineix): - """Find the beginning marker for a multiline comment.""" - while lineix < len(lines): - if lines[lineix].strip().startswith('/*'): - # Only return this marker if the comment goes beyond this line - if lines[lineix].strip().find('*/', 2) < 0: - return lineix - lineix += 1 - return len(lines) - - -def FindNextMultiLineCommentEnd(lines, lineix): - """We are inside a comment, find the end marker.""" - while lineix < len(lines): - if lines[lineix].strip().endswith('*/'): - return lineix - lineix += 1 - return len(lines) - - -def RemoveMultiLineCommentsFromRange(lines, begin, end): - """Clears a range of lines for multi-line comments.""" - # Having // dummy comments makes the lines non-empty, so we will not get - # unnecessary blank line warnings later in the code. - for i in range(begin, end): - lines[i] = '// dummy' - - -def RemoveMultiLineComments(filename, lines, error): - """Removes multiline (c-style) comments from lines.""" - lineix = 0 - while lineix < len(lines): - lineix_begin = FindNextMultiLineCommentStart(lines, lineix) - if lineix_begin >= len(lines): - return - lineix_end = FindNextMultiLineCommentEnd(lines, lineix_begin) - if lineix_end >= len(lines): - error(filename, lineix_begin + 1, 'readability/multiline_comment', 5, - 'Could not find end of multi-line comment') - return - RemoveMultiLineCommentsFromRange(lines, lineix_begin, lineix_end + 1) - lineix = lineix_end + 1 - - -def CleanseComments(line): - """Removes //-comments and single-line C-style /* */ comments. - - Args: - line: A line of C++ source. - - Returns: - The line with single-line comments removed. - """ - commentpos = line.find('//') - if commentpos != -1 and not IsCppString(line[:commentpos]): - line = line[:commentpos].rstrip() - # get rid of /* ... */ - return _RE_PATTERN_CLEANSE_LINE_C_COMMENTS.sub('', line) - - -class CleansedLines(object): - """Holds 3 copies of all lines with different preprocessing applied to them. - - 1) elided member contains lines without strings and comments, - 2) lines member contains lines without comments, and - 3) raw member contains all the lines without processing. - All these three members are of , and of the same length. - """ - - def __init__(self, lines): - self.elided = [] - self.lines = [] - self.raw_lines = lines - self.num_lines = len(lines) - for linenum in range(len(lines)): - self.lines.append(CleanseComments(lines[linenum])) - elided = self._CollapseStrings(lines[linenum]) - self.elided.append(CleanseComments(elided)) - - def NumLines(self): - """Returns the number of lines represented.""" - return self.num_lines - - @staticmethod - def _CollapseStrings(elided): - """Collapses strings and chars on a line to simple "" or '' blocks. - - We nix strings first so we're not fooled by text like '"http://"' - - Args: - elided: The line being processed. - - Returns: - The line with collapsed strings. - """ - if not _RE_PATTERN_INCLUDE.match(elided): - # Remove escaped characters first to make quote/single quote collapsing - # basic. Things that look like escaped characters shouldn't occur - # outside of strings and chars. - elided = _RE_PATTERN_CLEANSE_LINE_ESCAPES.sub('', elided) - elided = _RE_PATTERN_CLEANSE_LINE_SINGLE_QUOTES.sub("''", elided) - elided = _RE_PATTERN_CLEANSE_LINE_DOUBLE_QUOTES.sub('""', elided) - return elided - - -def CloseExpression(clean_lines, linenum, pos): - """If input points to ( or { or [, finds the position that closes it. - - If lines[linenum][pos] points to a '(' or '{' or '[', finds the - linenum/pos that correspond to the closing of the expression. - - Args: - clean_lines: A CleansedLines instance containing the file. - linenum: The number of the line to check. - pos: A position on the line. - - Returns: - A tuple (line, linenum, pos) pointer *past* the closing brace, or - (line, len(lines), -1) if we never find a close. Note we ignore - strings and comments when matching; and the line we return is the - 'cleansed' line at linenum. - """ - - line = clean_lines.elided[linenum] - startchar = line[pos] - if startchar not in '({[': - return (line, clean_lines.NumLines(), -1) - if startchar == '(': endchar = ')' - if startchar == '[': endchar = ']' - if startchar == '{': endchar = '}' - - num_open = line.count(startchar) - line.count(endchar) - while linenum < clean_lines.NumLines() and num_open > 0: - linenum += 1 - line = clean_lines.elided[linenum] - num_open += line.count(startchar) - line.count(endchar) - # OK, now find the endchar that actually got us back to even - endpos = len(line) - while num_open >= 0: - endpos = line.rfind(')', 0, endpos) - num_open -= 1 # chopped off another ) - return (line, linenum, endpos + 1) - - -def CheckForCopyright(filename, lines, error): - """Logs an error if no Copyright message appears at the top of the file.""" - - # We'll say it should occur by line 10. Don't forget there's a - # dummy line at the front. - for line in xrange(1, min(len(lines), 11)): - if re.search(r'Copyright', lines[line], re.I): break - else: # means no copyright line was found - error(filename, 0, 'legal/copyright', 5, - 'No copyright message found. ' - 'You should have a line: "Copyright [year] "') - - -def GetHeaderGuardCPPVariable(filename): - """Returns the CPP variable that should be used as a header guard. - - Args: - filename: The name of a C++ header file. - - Returns: - The CPP variable that should be used as a header guard in the - named file. - - """ - - # Restores original filename in case that cpplint is invoked from Emacs's - # flymake. - filename = re.sub(r'_flymake\.h$', '.h', filename) - - fileinfo = FileInfo(filename) - return re.sub(r'[-./\s]', '_', fileinfo.RepositoryName()).upper() + '_' - - -def CheckForHeaderGuard(filename, lines, error): - """Checks that the file contains a header guard. - - Logs an error if no #ifndef header guard is present. For other - headers, checks that the full pathname is used. - - Args: - filename: The name of the C++ header file. - lines: An array of strings, each representing a line of the file. - error: The function to call with any errors found. - """ - - cppvar = GetHeaderGuardCPPVariable(filename) - - ifndef = None - ifndef_linenum = 0 - define = None - endif = None - endif_linenum = 0 - for linenum, line in enumerate(lines): - linesplit = line.split() - if len(linesplit) >= 2: - # find the first occurrence of #ifndef and #define, save arg - if not ifndef and linesplit[0] == '#ifndef': - # set ifndef to the header guard presented on the #ifndef line. - ifndef = linesplit[1] - ifndef_linenum = linenum - if not define and linesplit[0] == '#define': - define = linesplit[1] - # find the last occurrence of #endif, save entire line - if line.startswith('#endif'): - endif = line - endif_linenum = linenum - - if not ifndef: - error(filename, 0, 'build/header_guard', 5, - 'No #ifndef header guard found, suggested CPP variable is: %s' % - cppvar) - return - - if not define: - error(filename, 0, 'build/header_guard', 5, - 'No #define header guard found, suggested CPP variable is: %s' % - cppvar) - return - - # The guard should be PATH_FILE_H_, but we also allow PATH_FILE_H__ - # for backward compatibility. - if ifndef != cppvar: - error_level = 0 - if ifndef != cppvar + '_': - error_level = 5 - - ParseNolintSuppressions(filename, lines[ifndef_linenum], ifndef_linenum, - error) - error(filename, ifndef_linenum, 'build/header_guard', error_level, - '#ifndef header guard has wrong style, please use: %s' % cppvar) - - if define != ifndef: - error(filename, 0, 'build/header_guard', 5, - '#ifndef and #define don\'t match, suggested CPP variable is: %s' % - cppvar) - return - - if endif != ('#endif // %s' % cppvar): - error_level = 0 - if endif != ('#endif // %s' % (cppvar + '_')): - error_level = 5 - - ParseNolintSuppressions(filename, lines[endif_linenum], endif_linenum, - error) - error(filename, endif_linenum, 'build/header_guard', error_level, - '#endif line should be "#endif // %s"' % cppvar) - - -def CheckForUnicodeReplacementCharacters(filename, lines, error): - """Logs an error for each line containing Unicode replacement characters. - - These indicate that either the file contained invalid UTF-8 (likely) - or Unicode replacement characters (which it shouldn't). Note that - it's possible for this to throw off line numbering if the invalid - UTF-8 occurred adjacent to a newline. - - Args: - filename: The name of the current file. - lines: An array of strings, each representing a line of the file. - error: The function to call with any errors found. - """ - for linenum, line in enumerate(lines): - if u'\ufffd' in line: - error(filename, linenum, 'readability/utf8', 5, - 'Line contains invalid UTF-8 (or Unicode replacement character).') - - -def CheckForNewlineAtEOF(filename, lines, error): - """Logs an error if there is no newline char at the end of the file. - - Args: - filename: The name of the current file. - lines: An array of strings, each representing a line of the file. - error: The function to call with any errors found. - """ - - # The array lines() was created by adding two newlines to the - # original file (go figure), then splitting on \n. - # To verify that the file ends in \n, we just have to make sure the - # last-but-two element of lines() exists and is empty. - if len(lines) < 3 or lines[-2]: - error(filename, len(lines) - 2, 'whitespace/ending_newline', 5, - 'Could not find a newline character at the end of the file.') - - -def CheckForMultilineCommentsAndStrings(filename, clean_lines, linenum, error): - """Logs an error if we see /* ... */ or "..." that extend past one line. - - /* ... */ comments are legit inside macros, for one line. - Otherwise, we prefer // comments, so it's ok to warn about the - other. Likewise, it's ok for strings to extend across multiple - lines, as long as a line continuation character (backslash) - terminates each line. Although not currently prohibited by the C++ - style guide, it's ugly and unnecessary. We don't do well with either - in this lint program, so we warn about both. - - Args: - filename: The name of the current file. - clean_lines: A CleansedLines instance containing the file. - linenum: The number of the line to check. - error: The function to call with any errors found. - """ - line = clean_lines.elided[linenum] - - # Remove all \\ (escaped backslashes) from the line. They are OK, and the - # second (escaped) slash may trigger later \" detection erroneously. - line = line.replace('\\\\', '') - - if line.count('/*') > line.count('*/'): - error(filename, linenum, 'readability/multiline_comment', 5, - 'Complex multi-line /*...*/-style comment found. ' - 'Lint may give bogus warnings. ' - 'Consider replacing these with //-style comments, ' - 'with #if 0...#endif, ' - 'or with more clearly structured multi-line comments.') - - if (line.count('"') - line.count('\\"')) % 2: - error(filename, linenum, 'readability/multiline_string', 5, - 'Multi-line string ("...") found. This lint script doesn\'t ' - 'do well with such strings, and may give bogus warnings. They\'re ' - 'ugly and unnecessary, and you should use concatenation instead".') - - -threading_list = ( - ('asctime(', 'asctime_r('), - ('ctime(', 'ctime_r('), - ('getgrgid(', 'getgrgid_r('), - ('getgrnam(', 'getgrnam_r('), - ('getlogin(', 'getlogin_r('), - ('getpwnam(', 'getpwnam_r('), - ('getpwuid(', 'getpwuid_r('), - ('gmtime(', 'gmtime_r('), - ('localtime(', 'localtime_r('), - ('rand(', 'rand_r('), - ('readdir(', 'readdir_r('), - ('strtok(', 'strtok_r('), - ('ttyname(', 'ttyname_r('), - ) - - -def CheckPosixThreading(filename, clean_lines, linenum, error): - """Checks for calls to thread-unsafe functions. - - Much code has been originally written without consideration of - multi-threading. Also, engineers are relying on their old experience; - they have learned posix before threading extensions were added. These - tests guide the engineers to use thread-safe functions (when using - posix directly). - - Args: - filename: The name of the current file. - clean_lines: A CleansedLines instance containing the file. - linenum: The number of the line to check. - error: The function to call with any errors found. - """ - line = clean_lines.elided[linenum] - for single_thread_function, multithread_safe_function in threading_list: - ix = line.find(single_thread_function) - # Comparisons made explicit for clarity -- pylint: disable-msg=C6403 - if ix >= 0 and (ix == 0 or (not line[ix - 1].isalnum() and - line[ix - 1] not in ('_', '.', '>'))): - error(filename, linenum, 'runtime/threadsafe_fn', 2, - 'Consider using ' + multithread_safe_function + - '...) instead of ' + single_thread_function + - '...) for improved thread safety.') - - -# Matches invalid increment: *count++, which moves pointer instead of -# incrementing a value. -_RE_PATTERN_INVALID_INCREMENT = re.compile( - r'^\s*\*\w+(\+\+|--);') - - -def CheckInvalidIncrement(filename, clean_lines, linenum, error): - """Checks for invalid increment *count++. - - For example following function: - void increment_counter(int* count) { - *count++; - } - is invalid, because it effectively does count++, moving pointer, and should - be replaced with ++*count, (*count)++ or *count += 1. - - Args: - filename: The name of the current file. - clean_lines: A CleansedLines instance containing the file. - linenum: The number of the line to check. - error: The function to call with any errors found. - """ - line = clean_lines.elided[linenum] - if _RE_PATTERN_INVALID_INCREMENT.match(line): - error(filename, linenum, 'runtime/invalid_increment', 5, - 'Changing pointer instead of value (or unused value of operator*).') - - -class _ClassInfo(object): - """Stores information about a class.""" - - def __init__(self, name, clean_lines, linenum): - self.name = name - self.linenum = linenum - self.seen_open_brace = False - self.is_derived = False - self.virtual_method_linenumber = None - self.has_virtual_destructor = False - self.brace_depth = 0 - - # Try to find the end of the class. This will be confused by things like: - # class A { - # } *x = { ... - # - # But it's still good enough for CheckSectionSpacing. - self.last_line = 0 - depth = 0 - for i in range(linenum, clean_lines.NumLines()): - line = clean_lines.lines[i] - depth += line.count('{') - line.count('}') - if not depth: - self.last_line = i - break - - -class _ClassState(object): - """Holds the current state of the parse relating to class declarations. - - It maintains a stack of _ClassInfos representing the parser's guess - as to the current nesting of class declarations. The innermost class - is at the top (back) of the stack. Typically, the stack will either - be empty or have exactly one entry. - """ - - def __init__(self): - self.classinfo_stack = [] - - def CheckFinished(self, filename, error): - """Checks that all classes have been completely parsed. - - Call this when all lines in a file have been processed. - Args: - filename: The name of the current file. - error: The function to call with any errors found. - """ - if self.classinfo_stack: - # Note: This test can result in false positives if #ifdef constructs - # get in the way of brace matching. See the testBuildClass test in - # cpplint_unittest.py for an example of this. - error(filename, self.classinfo_stack[0].linenum, 'build/class', 5, - 'Failed to find complete declaration of class %s' % - self.classinfo_stack[0].name) - - -def CheckForNonStandardConstructs(filename, clean_lines, linenum, - class_state, error): - """Logs an error if we see certain non-ANSI constructs ignored by gcc-2. - - Complain about several constructs which gcc-2 accepts, but which are - not standard C++. Warning about these in lint is one way to ease the - transition to new compilers. - - put storage class first (e.g. "static const" instead of "const static"). - - "%lld" instead of %qd" in printf-type functions. - - "%1$d" is non-standard in printf-type functions. - - "\%" is an undefined character escape sequence. - - text after #endif is not allowed. - - invalid inner-style forward declaration. - - >? and ?= and )\?=?\s*(\w+|[+-]?\d+)(\.\d*)?', - line): - error(filename, linenum, 'build/deprecated', 3, - '>? and ))?' - # r'\s*const\s*' + type_name + '\s*&\s*\w+\s*;' - error(filename, linenum, 'runtime/member_string_references', 2, - 'const string& members are dangerous. It is much better to use ' - 'alternatives, such as pointers or simple constants.') - - # Track class entry and exit, and attempt to find cases within the - # class declaration that don't meet the C++ style - # guidelines. Tracking is very dependent on the code matching Google - # style guidelines, but it seems to perform well enough in testing - # to be a worthwhile addition to the checks. - classinfo_stack = class_state.classinfo_stack - # Look for a class declaration. The regexp accounts for decorated classes - # such as in: - # class LOCKABLE API Object { - # }; - class_decl_match = Match( - r'\s*(template\s*<[\w\s<>,:]*>\s*)?' - '(class|struct)\s+([A-Z_]+\s+)*(\w+(::\w+)*)', line) - if class_decl_match: - classinfo_stack.append(_ClassInfo( - class_decl_match.group(4), clean_lines, linenum)) - - # Everything else in this function uses the top of the stack if it's - # not empty. - if not classinfo_stack: - return - - classinfo = classinfo_stack[-1] - - # If the opening brace hasn't been seen look for it and also - # parent class declarations. - if not classinfo.seen_open_brace: - # If the line has a ';' in it, assume it's a forward declaration or - # a single-line class declaration, which we won't process. - if line.find(';') != -1: - classinfo_stack.pop() - return - classinfo.seen_open_brace = (line.find('{') != -1) - # Look for a bare ':' - if Search('(^|[^:]):($|[^:])', line): - classinfo.is_derived = True - if not classinfo.seen_open_brace: - return # Everything else in this function is for after open brace - - # The class may have been declared with namespace or classname qualifiers. - # The constructor and destructor will not have those qualifiers. - base_classname = classinfo.name.split('::')[-1] - - # Look for single-argument constructors that aren't marked explicit. - # Technically a valid construct, but against style. - args = Match(r'\s+(?:inline\s+)?%s\s*\(([^,()]+)\)' - % re.escape(base_classname), - line) - if (args and - args.group(1) != 'void' and - not Match(r'(const\s+)?%s\s*(?:<\w+>\s*)?&' % re.escape(base_classname), - args.group(1).strip())): - error(filename, linenum, 'runtime/explicit', 5, - 'Single-argument constructors should be marked explicit.') - - # Look for methods declared virtual. - if Search(r'\bvirtual\b', line): - classinfo.virtual_method_linenumber = linenum - # Only look for a destructor declaration on the same line. It would - # be extremely unlikely for the destructor declaration to occupy - # more than one line. - if Search(r'~%s\s*\(' % base_classname, line): - classinfo.has_virtual_destructor = True - - # Look for class end. - brace_depth = classinfo.brace_depth - brace_depth = brace_depth + line.count('{') - line.count('}') - if brace_depth <= 0: - classinfo = classinfo_stack.pop() - # Try to detect missing virtual destructor declarations. - # For now, only warn if a non-derived class with virtual methods lacks - # a virtual destructor. This is to make it less likely that people will - # declare derived virtual destructors without declaring the base - # destructor virtual. - if ((classinfo.virtual_method_linenumber is not None) and - (not classinfo.has_virtual_destructor) and - (not classinfo.is_derived)): # Only warn for base classes - error(filename, classinfo.linenum, 'runtime/virtual', 4, - 'The class %s probably needs a virtual destructor due to ' - 'having virtual method(s), one declared at line %d.' - % (classinfo.name, classinfo.virtual_method_linenumber)) - else: - classinfo.brace_depth = brace_depth - - -def CheckSpacingForFunctionCall(filename, line, linenum, error): - """Checks for the correctness of various spacing around function calls. - - Args: - filename: The name of the current file. - line: The text of the line to check. - linenum: The number of the line to check. - error: The function to call with any errors found. - """ - - # Since function calls often occur inside if/for/while/switch - # expressions - which have their own, more liberal conventions - we - # first see if we should be looking inside such an expression for a - # function call, to which we can apply more strict standards. - fncall = line # if there's no control flow construct, look at whole line - for pattern in (r'\bif\s*\((.*)\)\s*{', - r'\bfor\s*\((.*)\)\s*{', - r'\bwhile\s*\((.*)\)\s*[{;]', - r'\bswitch\s*\((.*)\)\s*{'): - match = Search(pattern, line) - if match: - fncall = match.group(1) # look inside the parens for function calls - break - - # Except in if/for/while/switch, there should never be space - # immediately inside parens (eg "f( 3, 4 )"). We make an exception - # for nested parens ( (a+b) + c ). Likewise, there should never be - # a space before a ( when it's a function argument. I assume it's a - # function argument when the char before the whitespace is legal in - # a function name (alnum + _) and we're not starting a macro. Also ignore - # pointers and references to arrays and functions coz they're too tricky: - # we use a very simple way to recognize these: - # " (something)(maybe-something)" or - # " (something)(maybe-something," or - # " (something)[something]" - # Note that we assume the contents of [] to be short enough that - # they'll never need to wrap. - if ( # Ignore control structures. - not Search(r'\b(if|for|while|switch|return|delete)\b', fncall) and - # Ignore pointers/references to functions. - not Search(r' \([^)]+\)\([^)]*(\)|,$)', fncall) and - # Ignore pointers/references to arrays. - not Search(r' \([^)]+\)\[[^\]]+\]', fncall)): - if Search(r'\w\s*\(\s(?!\s*\\$)', fncall): # a ( used for a fn call - error(filename, linenum, 'whitespace/parens', 4, - 'Extra space after ( in function call') - elif Search(r'\(\s+(?!(\s*\\)|\()', fncall): - error(filename, linenum, 'whitespace/parens', 2, - 'Extra space after (') - if (Search(r'\w\s+\(', fncall) and - not Search(r'#\s*define|typedef', fncall)): - error(filename, linenum, 'whitespace/parens', 4, - 'Extra space before ( in function call') - # If the ) is followed only by a newline or a { + newline, assume it's - # part of a control statement (if/while/etc), and don't complain - if Search(r'[^)]\s+\)\s*[^{\s]', fncall): - # If the closing parenthesis is preceded by only whitespaces, - # try to give a more descriptive error message. - if Search(r'^\s+\)', fncall): - error(filename, linenum, 'whitespace/parens', 2, - 'Closing ) should be moved to the previous line') - else: - error(filename, linenum, 'whitespace/parens', 2, - 'Extra space before )') - - -def IsBlankLine(line): - """Returns true if the given line is blank. - - We consider a line to be blank if the line is empty or consists of - only white spaces. - - Args: - line: A line of a string. - - Returns: - True, if the given line is blank. - """ - return not line or line.isspace() - - -def CheckForFunctionLengths(filename, clean_lines, linenum, - function_state, error): - """Reports for long function bodies. - - For an overview why this is done, see: - http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Write_Short_Functions - - Uses a simplistic algorithm assuming other style guidelines - (especially spacing) are followed. - Only checks unindented functions, so class members are unchecked. - Trivial bodies are unchecked, so constructors with huge initializer lists - may be missed. - Blank/comment lines are not counted so as to avoid encouraging the removal - of vertical space and comments just to get through a lint check. - NOLINT *on the last line of a function* disables this check. - - Args: - filename: The name of the current file. - clean_lines: A CleansedLines instance containing the file. - linenum: The number of the line to check. - function_state: Current function name and lines in body so far. - error: The function to call with any errors found. - """ - lines = clean_lines.lines - line = lines[linenum] - raw = clean_lines.raw_lines - raw_line = raw[linenum] - joined_line = '' - - starting_func = False - regexp = r'(\w(\w|::|\*|\&|\s)*)\(' # decls * & space::name( ... - match_result = Match(regexp, line) - if match_result: - # If the name is all caps and underscores, figure it's a macro and - # ignore it, unless it's TEST or TEST_F. - function_name = match_result.group(1).split()[-1] - if function_name == 'TEST' or function_name == 'TEST_F' or ( - not Match(r'[A-Z_]+$', function_name)): - starting_func = True - - if starting_func: - body_found = False - for start_linenum in xrange(linenum, clean_lines.NumLines()): - start_line = lines[start_linenum] - joined_line += ' ' + start_line.lstrip() - if Search(r'(;|})', start_line): # Declarations and trivial functions - body_found = True - break # ... ignore - elif Search(r'{', start_line): - body_found = True - function = Search(r'((\w|:)*)\(', line).group(1) - if Match(r'TEST', function): # Handle TEST... macros - parameter_regexp = Search(r'(\(.*\))', joined_line) - if parameter_regexp: # Ignore bad syntax - function += parameter_regexp.group(1) - else: - function += '()' - function_state.Begin(function) - break - if not body_found: - # No body for the function (or evidence of a non-function) was found. - error(filename, linenum, 'readability/fn_size', 5, - 'Lint failed to find start of function body.') - elif Match(r'^\}\s*$', line): # function end - function_state.Check(error, filename, linenum) - function_state.End() - elif not Match(r'^\s*$', line): - function_state.Count() # Count non-blank/non-comment lines. - - -_RE_PATTERN_TODO = re.compile(r'^//(\s*)TODO(\(.+?\))?:?(\s|$)?') - - -def CheckComment(comment, filename, linenum, error): - """Checks for common mistakes in TODO comments. - - Args: - comment: The text of the comment from the line in question. - filename: The name of the current file. - linenum: The number of the line to check. - error: The function to call with any errors found. - """ - match = _RE_PATTERN_TODO.match(comment) - if match: - # One whitespace is correct; zero whitespace is handled elsewhere. - leading_whitespace = match.group(1) - if len(leading_whitespace) > 1: - error(filename, linenum, 'whitespace/todo', 2, - 'Too many spaces before TODO') - - username = match.group(2) - if not username: - error(filename, linenum, 'readability/todo', 2, - 'Missing username in TODO; it should look like ' - '"// TODO(my_username): Stuff."') - - middle_whitespace = match.group(3) - # Comparisons made explicit for correctness -- pylint: disable-msg=C6403 - if middle_whitespace != ' ' and middle_whitespace != '': - error(filename, linenum, 'whitespace/todo', 2, - 'TODO(my_username) should be followed by a space') - - -def CheckSpacing(filename, clean_lines, linenum, error): - """Checks for the correctness of various spacing issues in the code. - - Things we check for: spaces around operators, spaces after - if/for/while/switch, no spaces around parens in function calls, two - spaces between code and comment, don't start a block with a blank - line, don't end a function with a blank line, don't add a blank line - after public/protected/private, don't have too many blank lines in a row. - - Args: - filename: The name of the current file. - clean_lines: A CleansedLines instance containing the file. - linenum: The number of the line to check. - error: The function to call with any errors found. - """ - - raw = clean_lines.raw_lines - line = raw[linenum] - - # Before nixing comments, check if the line is blank for no good - # reason. This includes the first line after a block is opened, and - # blank lines at the end of a function (ie, right before a line like '}' - if IsBlankLine(line): - elided = clean_lines.elided - prev_line = elided[linenum - 1] - prevbrace = prev_line.rfind('{') - # TODO(unknown): Don't complain if line before blank line, and line after, - # both start with alnums and are indented the same amount. - # This ignores whitespace at the start of a namespace block - # because those are not usually indented. - if (prevbrace != -1 and prev_line[prevbrace:].find('}') == -1 - and prev_line[:prevbrace].find('namespace') == -1): - # OK, we have a blank line at the start of a code block. Before we - # complain, we check if it is an exception to the rule: The previous - # non-empty line has the parameters of a function header that are indented - # 4 spaces (because they did not fit in a 80 column line when placed on - # the same line as the function name). We also check for the case where - # the previous line is indented 6 spaces, which may happen when the - # initializers of a constructor do not fit into a 80 column line. - exception = False - if Match(r' {6}\w', prev_line): # Initializer list? - # We are looking for the opening column of initializer list, which - # should be indented 4 spaces to cause 6 space indentation afterwards. - search_position = linenum-2 - while (search_position >= 0 - and Match(r' {6}\w', elided[search_position])): - search_position -= 1 - exception = (search_position >= 0 - and elided[search_position][:5] == ' :') - else: - # Search for the function arguments or an initializer list. We use a - # simple heuristic here: If the line is indented 4 spaces; and we have a - # closing paren, without the opening paren, followed by an opening brace - # or colon (for initializer lists) we assume that it is the last line of - # a function header. If we have a colon indented 4 spaces, it is an - # initializer list. - exception = (Match(r' {4}\w[^\(]*\)\s*(const\s*)?(\{\s*$|:)', - prev_line) - or Match(r' {4}:', prev_line)) - - if not exception: - error(filename, linenum, 'whitespace/blank_line', 2, - 'Blank line at the start of a code block. Is this needed?') - # This doesn't ignore whitespace at the end of a namespace block - # because that is too hard without pairing open/close braces; - # however, a special exception is made for namespace closing - # brackets which have a comment containing "namespace". - # - # Also, ignore blank lines at the end of a block in a long if-else - # chain, like this: - # if (condition1) { - # // Something followed by a blank line - # - # } else if (condition2) { - # // Something else - # } - if linenum + 1 < clean_lines.NumLines(): - next_line = raw[linenum + 1] - if (next_line - and Match(r'\s*}', next_line) - and next_line.find('namespace') == -1 - and next_line.find('} else ') == -1): - error(filename, linenum, 'whitespace/blank_line', 3, - 'Blank line at the end of a code block. Is this needed?') - - matched = Match(r'\s*(public|protected|private):', prev_line) - if matched: - error(filename, linenum, 'whitespace/blank_line', 3, - 'Do not leave a blank line after "%s:"' % matched.group(1)) - - # Next, we complain if there's a comment too near the text - commentpos = line.find('//') - if commentpos != -1: - # Check if the // may be in quotes. If so, ignore it - # Comparisons made explicit for clarity -- pylint: disable-msg=C6403 - if (line.count('"', 0, commentpos) - - line.count('\\"', 0, commentpos)) % 2 == 0: # not in quotes - # Allow one space for new scopes, two spaces otherwise: - if (not Match(r'^\s*{ //', line) and - ((commentpos >= 1 and - line[commentpos-1] not in string.whitespace) or - (commentpos >= 2 and - line[commentpos-2] not in string.whitespace))): - error(filename, linenum, 'whitespace/comments', 2, - 'At least two spaces is best between code and comments') - # There should always be a space between the // and the comment - commentend = commentpos + 2 - if commentend < len(line) and not line[commentend] == ' ': - # but some lines are exceptions -- e.g. if they're big - # comment delimiters like: - # //---------------------------------------------------------- - # or are an empty C++ style Doxygen comment, like: - # /// - # or they begin with multiple slashes followed by a space: - # //////// Header comment - match = (Search(r'[=/-]{4,}\s*$', line[commentend:]) or - Search(r'^/$', line[commentend:]) or - Search(r'^/+ ', line[commentend:])) - if not match: - error(filename, linenum, 'whitespace/comments', 4, - 'Should have a space between // and comment') - CheckComment(line[commentpos:], filename, linenum, error) - - line = clean_lines.elided[linenum] # get rid of comments and strings - - # Don't try to do spacing checks for operator methods - line = re.sub(r'operator(==|!=|<|<<|<=|>=|>>|>)\(', 'operator\(', line) - - # We allow no-spaces around = within an if: "if ( (a=Foo()) == 0 )". - # Otherwise not. Note we only check for non-spaces on *both* sides; - # sometimes people put non-spaces on one side when aligning ='s among - # many lines (not that this is behavior that I approve of...) - if Search(r'[\w.]=[\w.]', line) and not Search(r'\b(if|while) ', line): - error(filename, linenum, 'whitespace/operators', 4, - 'Missing spaces around =') - - # It's ok not to have spaces around binary operators like + - * /, but if - # there's too little whitespace, we get concerned. It's hard to tell, - # though, so we punt on this one for now. TODO. - - # You should always have whitespace around binary operators. - # Alas, we can't test < or > because they're legitimately used sans spaces - # (a->b, vector a). The only time we can tell is a < with no >, and - # only if it's not template params list spilling into the next line. - match = Search(r'[^<>=!\s](==|!=|<=|>=)[^<>=!\s]', line) - if not match: - # Note that while it seems that the '<[^<]*' term in the following - # regexp could be simplified to '<.*', which would indeed match - # the same class of strings, the [^<] means that searching for the - # regexp takes linear rather than quadratic time. - if not Search(r'<[^<]*,\s*$', line): # template params spill - match = Search(r'[^<>=!\s](<)[^<>=!\s]([^>]|->)*$', line) - if match: - error(filename, linenum, 'whitespace/operators', 3, - 'Missing spaces around %s' % match.group(1)) - # We allow no-spaces around << and >> when used like this: 10<<20, but - # not otherwise (particularly, not when used as streams) - match = Search(r'[^0-9\s](<<|>>)[^0-9\s]', line) - if match: - error(filename, linenum, 'whitespace/operators', 3, - 'Missing spaces around %s' % match.group(1)) - - # There shouldn't be space around unary operators - match = Search(r'(!\s|~\s|[\s]--[\s;]|[\s]\+\+[\s;])', line) - if match: - error(filename, linenum, 'whitespace/operators', 4, - 'Extra space for operator %s' % match.group(1)) - - # A pet peeve of mine: no spaces after an if, while, switch, or for - match = Search(r' (if\(|for\(|while\(|switch\()', line) - if match: - error(filename, linenum, 'whitespace/parens', 5, - 'Missing space before ( in %s' % match.group(1)) - - # For if/for/while/switch, the left and right parens should be - # consistent about how many spaces are inside the parens, and - # there should either be zero or one spaces inside the parens. - # We don't want: "if ( foo)" or "if ( foo )". - # Exception: "for ( ; foo; bar)" and "for (foo; bar; )" are allowed. - match = Search(r'\b(if|for|while|switch)\s*' - r'\(([ ]*)(.).*[^ ]+([ ]*)\)\s*{\s*$', - line) - if match: - if len(match.group(2)) != len(match.group(4)): - if not (match.group(3) == ';' and - len(match.group(2)) == 1 + len(match.group(4)) or - not match.group(2) and Search(r'\bfor\s*\(.*; \)', line)): - error(filename, linenum, 'whitespace/parens', 5, - 'Mismatching spaces inside () in %s' % match.group(1)) - if not len(match.group(2)) in [0, 1]: - error(filename, linenum, 'whitespace/parens', 5, - 'Should have zero or one spaces inside ( and ) in %s' % - match.group(1)) - - # You should always have a space after a comma (either as fn arg or operator) - if Search(r',[^\s]', line): - error(filename, linenum, 'whitespace/comma', 3, - 'Missing space after ,') - - # You should always have a space after a semicolon - # except for few corner cases - # TODO(unknown): clarify if 'if (1) { return 1;}' is requires one more - # space after ; - if Search(r';[^\s};\\)/]', line): - error(filename, linenum, 'whitespace/semicolon', 3, - 'Missing space after ;') - - # Next we will look for issues with function calls. - CheckSpacingForFunctionCall(filename, line, linenum, error) - - # Except after an opening paren, or after another opening brace (in case of - # an initializer list, for instance), you should have spaces before your - # braces. And since you should never have braces at the beginning of a line, - # this is an easy test. - if Search(r'[^ ({]{', line): - error(filename, linenum, 'whitespace/braces', 5, - 'Missing space before {') - - # Make sure '} else {' has spaces. - if Search(r'}else', line): - error(filename, linenum, 'whitespace/braces', 5, - 'Missing space before else') - - # You shouldn't have spaces before your brackets, except maybe after - # 'delete []' or 'new char * []'. - if Search(r'\w\s+\[', line) and not Search(r'delete\s+\[', line): - error(filename, linenum, 'whitespace/braces', 5, - 'Extra space before [') - - # You shouldn't have a space before a semicolon at the end of the line. - # There's a special case for "for" since the style guide allows space before - # the semicolon there. - if Search(r':\s*;\s*$', line): - error(filename, linenum, 'whitespace/semicolon', 5, - 'Semicolon defining empty statement. Use { } instead.') - elif Search(r'^\s*;\s*$', line): - error(filename, linenum, 'whitespace/semicolon', 5, - 'Line contains only semicolon. If this should be an empty statement, ' - 'use { } instead.') - elif (Search(r'\s+;\s*$', line) and - not Search(r'\bfor\b', line)): - error(filename, linenum, 'whitespace/semicolon', 5, - 'Extra space before last semicolon. If this should be an empty ' - 'statement, use { } instead.') - - -def CheckSectionSpacing(filename, clean_lines, class_info, linenum, error): - """Checks for additional blank line issues related to sections. - - Currently the only thing checked here is blank line before protected/private. - - Args: - filename: The name of the current file. - clean_lines: A CleansedLines instance containing the file. - class_info: A _ClassInfo objects. - linenum: The number of the line to check. - error: The function to call with any errors found. - """ - # Skip checks if the class is small, where small means 25 lines or less. - # 25 lines seems like a good cutoff since that's the usual height of - # terminals, and any class that can't fit in one screen can't really - # be considered "small". - # - # Also skip checks if we are on the first line. This accounts for - # classes that look like - # class Foo { public: ... }; - # - # If we didn't find the end of the class, last_line would be zero, - # and the check will be skipped by the first condition. - if (class_info.last_line - class_info.linenum <= 24 or - linenum <= class_info.linenum): - return - - matched = Match(r'\s*(public|protected|private):', clean_lines.lines[linenum]) - if matched: - # Issue warning if the line before public/protected/private was - # not a blank line, but don't do this if the previous line contains - # "class" or "struct". This can happen two ways: - # - We are at the beginning of the class. - # - We are forward-declaring an inner class that is semantically - # private, but needed to be public for implementation reasons. - prev_line = clean_lines.lines[linenum - 1] - if (not IsBlankLine(prev_line) and - not Search(r'\b(class|struct)\b', prev_line)): - # Try a bit harder to find the beginning of the class. This is to - # account for multi-line base-specifier lists, e.g.: - # class Derived - # : public Base { - end_class_head = class_info.linenum - for i in range(class_info.linenum, linenum): - if Search(r'\{\s*$', clean_lines.lines[i]): - end_class_head = i - break - if end_class_head < linenum - 1: - error(filename, linenum, 'whitespace/blank_line', 3, - '"%s:" should be preceded by a blank line' % matched.group(1)) - - -def GetPreviousNonBlankLine(clean_lines, linenum): - """Return the most recent non-blank line and its line number. - - Args: - clean_lines: A CleansedLines instance containing the file contents. - linenum: The number of the line to check. - - Returns: - A tuple with two elements. The first element is the contents of the last - non-blank line before the current line, or the empty string if this is the - first non-blank line. The second is the line number of that line, or -1 - if this is the first non-blank line. - """ - - prevlinenum = linenum - 1 - while prevlinenum >= 0: - prevline = clean_lines.elided[prevlinenum] - if not IsBlankLine(prevline): # if not a blank line... - return (prevline, prevlinenum) - prevlinenum -= 1 - return ('', -1) - - -def CheckBraces(filename, clean_lines, linenum, error): - """Looks for misplaced braces (e.g. at the end of line). - - Args: - filename: The name of the current file. - clean_lines: A CleansedLines instance containing the file. - linenum: The number of the line to check. - error: The function to call with any errors found. - """ - - line = clean_lines.elided[linenum] # get rid of comments and strings - - if Match(r'\s*{\s*$', line): - # We allow an open brace to start a line in the case where someone - # is using braces in a block to explicitly create a new scope, - # which is commonly used to control the lifetime of - # stack-allocated variables. We don't detect this perfectly: we - # just don't complain if the last non-whitespace character on the - # previous non-blank line is ';', ':', '{', or '}'. - prevline = GetPreviousNonBlankLine(clean_lines, linenum)[0] - if not Search(r'[;:}{]\s*$', prevline): - error(filename, linenum, 'whitespace/braces', 4, - '{ should almost always be at the end of the previous line') - - # An else clause should be on the same line as the preceding closing brace. - if Match(r'\s*else\s*', line): - prevline = GetPreviousNonBlankLine(clean_lines, linenum)[0] - if Match(r'\s*}\s*$', prevline): - error(filename, linenum, 'whitespace/newline', 4, - 'An else should appear on the same line as the preceding }') - - # If braces come on one side of an else, they should be on both. - # However, we have to worry about "else if" that spans multiple lines! - if Search(r'}\s*else[^{]*$', line) or Match(r'[^}]*else\s*{', line): - if Search(r'}\s*else if([^{]*)$', line): # could be multi-line if - # find the ( after the if - pos = line.find('else if') - pos = line.find('(', pos) - if pos > 0: - (endline, _, endpos) = CloseExpression(clean_lines, linenum, pos) - if endline[endpos:].find('{') == -1: # must be brace after if - error(filename, linenum, 'readability/braces', 5, - 'If an else has a brace on one side, it should have it on both') - else: # common case: else not followed by a multi-line if - error(filename, linenum, 'readability/braces', 5, - 'If an else has a brace on one side, it should have it on both') - - # Likewise, an else should never have the else clause on the same line - if Search(r'\belse [^\s{]', line) and not Search(r'\belse if\b', line): - error(filename, linenum, 'whitespace/newline', 4, - 'Else clause should never be on same line as else (use 2 lines)') - - # In the same way, a do/while should never be on one line - if Match(r'\s*do [^\s{]', line): - error(filename, linenum, 'whitespace/newline', 4, - 'do/while clauses should not be on a single line') - - # Braces shouldn't be followed by a ; unless they're defining a struct - # or initializing an array. - # We can't tell in general, but we can for some common cases. - prevlinenum = linenum - while True: - (prevline, prevlinenum) = GetPreviousNonBlankLine(clean_lines, prevlinenum) - if Match(r'\s+{.*}\s*;', line) and not prevline.count(';'): - line = prevline + line - else: - break - if (Search(r'{.*}\s*;', line) and - line.count('{') == line.count('}') and - not Search(r'struct|class|enum|\s*=\s*{', line)): - error(filename, linenum, 'readability/braces', 4, - "You don't need a ; after a }") - - -def ReplaceableCheck(operator, macro, line): - """Determine whether a basic CHECK can be replaced with a more specific one. - - For example suggest using CHECK_EQ instead of CHECK(a == b) and - similarly for CHECK_GE, CHECK_GT, CHECK_LE, CHECK_LT, CHECK_NE. - - Args: - operator: The C++ operator used in the CHECK. - macro: The CHECK or EXPECT macro being called. - line: The current source line. - - Returns: - True if the CHECK can be replaced with a more specific one. - """ - - # This matches decimal and hex integers, strings, and chars (in that order). - match_constant = r'([-+]?(\d+|0[xX][0-9a-fA-F]+)[lLuU]{0,3}|".*"|\'.*\')' - - # Expression to match two sides of the operator with something that - # looks like a literal, since CHECK(x == iterator) won't compile. - # This means we can't catch all the cases where a more specific - # CHECK is possible, but it's less annoying than dealing with - # extraneous warnings. - match_this = (r'\s*' + macro + r'\((\s*' + - match_constant + r'\s*' + operator + r'[^<>].*|' - r'.*[^<>]' + operator + r'\s*' + match_constant + - r'\s*\))') - - # Don't complain about CHECK(x == NULL) or similar because - # CHECK_EQ(x, NULL) won't compile (requires a cast). - # Also, don't complain about more complex boolean expressions - # involving && or || such as CHECK(a == b || c == d). - return Match(match_this, line) and not Search(r'NULL|&&|\|\|', line) - - -def CheckCheck(filename, clean_lines, linenum, error): - """Checks the use of CHECK and EXPECT macros. - - Args: - filename: The name of the current file. - clean_lines: A CleansedLines instance containing the file. - linenum: The number of the line to check. - error: The function to call with any errors found. - """ - - # Decide the set of replacement macros that should be suggested - raw_lines = clean_lines.raw_lines - current_macro = '' - for macro in _CHECK_MACROS: - if raw_lines[linenum].find(macro) >= 0: - current_macro = macro - break - if not current_macro: - # Don't waste time here if line doesn't contain 'CHECK' or 'EXPECT' - return - - line = clean_lines.elided[linenum] # get rid of comments and strings - - # Encourage replacing plain CHECKs with CHECK_EQ/CHECK_NE/etc. - for operator in ['==', '!=', '>=', '>', '<=', '<']: - if ReplaceableCheck(operator, current_macro, line): - error(filename, linenum, 'readability/check', 2, - 'Consider using %s instead of %s(a %s b)' % ( - _CHECK_REPLACEMENT[current_macro][operator], - current_macro, operator)) - break - - -def GetLineWidth(line): - """Determines the width of the line in column positions. - - Args: - line: A string, which may be a Unicode string. - - Returns: - The width of the line in column positions, accounting for Unicode - combining characters and wide characters. - """ - if isinstance(line, unicode): - width = 0 - for uc in unicodedata.normalize('NFC', line): - if unicodedata.east_asian_width(uc) in ('W', 'F'): - width += 2 - elif not unicodedata.combining(uc): - width += 1 - return width - else: - return len(line) - - -def CheckStyle(filename, clean_lines, linenum, file_extension, class_state, - error): - """Checks rules from the 'C++ style rules' section of cppguide.html. - - Most of these rules are hard to test (naming, comment style), but we - do what we can. In particular we check for 2-space indents, line lengths, - tab usage, spaces inside code, etc. - - Args: - filename: The name of the current file. - clean_lines: A CleansedLines instance containing the file. - linenum: The number of the line to check. - file_extension: The extension (without the dot) of the filename. - error: The function to call with any errors found. - """ - - raw_lines = clean_lines.raw_lines - line = raw_lines[linenum] - - if line.find('\t') != -1: - error(filename, linenum, 'whitespace/tab', 1, - 'Tab found; better to use spaces') - - # One or three blank spaces at the beginning of the line is weird; it's - # hard to reconcile that with 2-space indents. - # NOTE: here are the conditions rob pike used for his tests. Mine aren't - # as sophisticated, but it may be worth becoming so: RLENGTH==initial_spaces - # if(RLENGTH > 20) complain = 0; - # if(match($0, " +(error|private|public|protected):")) complain = 0; - # if(match(prev, "&& *$")) complain = 0; - # if(match(prev, "\\|\\| *$")) complain = 0; - # if(match(prev, "[\",=><] *$")) complain = 0; - # if(match($0, " <<")) complain = 0; - # if(match(prev, " +for \\(")) complain = 0; - # if(prevodd && match(prevprev, " +for \\(")) complain = 0; - initial_spaces = 0 - cleansed_line = clean_lines.elided[linenum] - while initial_spaces < len(line) and line[initial_spaces] == ' ': - initial_spaces += 1 - if line and line[-1].isspace(): - error(filename, linenum, 'whitespace/end_of_line', 4, - 'Line ends in whitespace. Consider deleting these extra spaces.') - # There are certain situations we allow one space, notably for labels - elif ((initial_spaces == 1 or initial_spaces == 3) and - not Match(r'\s*\w+\s*:\s*$', cleansed_line)): - error(filename, linenum, 'whitespace/indent', 3, - 'Weird number of spaces at line-start. ' - 'Are you using a 2-space indent?') - # Labels should always be indented at least one space. - elif not initial_spaces and line[:2] != '//' and Search(r'[^:]:\s*$', - line): - error(filename, linenum, 'whitespace/labels', 4, - 'Labels should always be indented at least one space. ' - 'If this is a member-initializer list in a constructor or ' - 'the base class list in a class definition, the colon should ' - 'be on the following line.') - - - # Check if the line is a header guard. - is_header_guard = False - if file_extension == 'h': - cppvar = GetHeaderGuardCPPVariable(filename) - if (line.startswith('#ifndef %s' % cppvar) or - line.startswith('#define %s' % cppvar) or - line.startswith('#endif // %s' % cppvar)): - is_header_guard = True - # #include lines and header guards can be long, since there's no clean way to - # split them. - # - # URLs can be long too. It's possible to split these, but it makes them - # harder to cut&paste. - # - # The "$Id:...$" comment may also get very long without it being the - # developers fault. - if (not line.startswith('#include') and not is_header_guard and - not Match(r'^\s*//.*http(s?)://\S*$', line) and - not Match(r'^// \$Id:.*#[0-9]+ \$$', line)): - line_width = GetLineWidth(line) - if line_width > 100: - error(filename, linenum, 'whitespace/line_length', 4, - 'Lines should very rarely be longer than 100 characters') - elif line_width > 80: - error(filename, linenum, 'whitespace/line_length', 2, - 'Lines should be <= 80 characters long') - - if (cleansed_line.count(';') > 1 and - # for loops are allowed two ;'s (and may run over two lines). - cleansed_line.find('for') == -1 and - (GetPreviousNonBlankLine(clean_lines, linenum)[0].find('for') == -1 or - GetPreviousNonBlankLine(clean_lines, linenum)[0].find(';') != -1) and - # It's ok to have many commands in a switch case that fits in 1 line - not ((cleansed_line.find('case ') != -1 or - cleansed_line.find('default:') != -1) and - cleansed_line.find('break;') != -1)): - error(filename, linenum, 'whitespace/newline', 4, - 'More than one command on the same line') - - # Some more style checks - CheckBraces(filename, clean_lines, linenum, error) - CheckSpacing(filename, clean_lines, linenum, error) - CheckCheck(filename, clean_lines, linenum, error) - if class_state and class_state.classinfo_stack: - CheckSectionSpacing(filename, clean_lines, - class_state.classinfo_stack[-1], linenum, error) - - -_RE_PATTERN_INCLUDE_NEW_STYLE = re.compile(r'#include +"[^/]+\.h"') -_RE_PATTERN_INCLUDE = re.compile(r'^\s*#\s*include\s*([<"])([^>"]*)[>"].*$') -# Matches the first component of a filename delimited by -s and _s. That is: -# _RE_FIRST_COMPONENT.match('foo').group(0) == 'foo' -# _RE_FIRST_COMPONENT.match('foo.cc').group(0) == 'foo' -# _RE_FIRST_COMPONENT.match('foo-bar_baz.cc').group(0) == 'foo' -# _RE_FIRST_COMPONENT.match('foo_bar-baz.cc').group(0) == 'foo' -_RE_FIRST_COMPONENT = re.compile(r'^[^-_.]+') - - -def _DropCommonSuffixes(filename): - """Drops common suffixes like _test.cc or -inl.h from filename. - - For example: - >>> _DropCommonSuffixes('foo/foo-inl.h') - 'foo/foo' - >>> _DropCommonSuffixes('foo/bar/foo.cc') - 'foo/bar/foo' - >>> _DropCommonSuffixes('foo/foo_internal.h') - 'foo/foo' - >>> _DropCommonSuffixes('foo/foo_unusualinternal.h') - 'foo/foo_unusualinternal' - - Args: - filename: The input filename. - - Returns: - The filename with the common suffix removed. - """ - for suffix in ('test.cc', 'regtest.cc', 'unittest.cc', - 'inl.h', 'impl.h', 'internal.h'): - if (filename.endswith(suffix) and len(filename) > len(suffix) and - filename[-len(suffix) - 1] in ('-', '_')): - return filename[:-len(suffix) - 1] - return os.path.splitext(filename)[0] - - -def _IsTestFilename(filename): - """Determines if the given filename has a suffix that identifies it as a test. - - Args: - filename: The input filename. - - Returns: - True if 'filename' looks like a test, False otherwise. - """ - if (filename.endswith('_test.cc') or - filename.endswith('_unittest.cc') or - filename.endswith('_regtest.cc')): - return True - else: - return False - - -def _ClassifyInclude(fileinfo, include, is_system): - """Figures out what kind of header 'include' is. - - Args: - fileinfo: The current file cpplint is running over. A FileInfo instance. - include: The path to a #included file. - is_system: True if the #include used <> rather than "". - - Returns: - One of the _XXX_HEADER constants. - - For example: - >>> _ClassifyInclude(FileInfo('foo/foo.cc'), 'stdio.h', True) - _C_SYS_HEADER - >>> _ClassifyInclude(FileInfo('foo/foo.cc'), 'string', True) - _CPP_SYS_HEADER - >>> _ClassifyInclude(FileInfo('foo/foo.cc'), 'foo/foo.h', False) - _LIKELY_MY_HEADER - >>> _ClassifyInclude(FileInfo('foo/foo_unknown_extension.cc'), - ... 'bar/foo_other_ext.h', False) - _POSSIBLE_MY_HEADER - >>> _ClassifyInclude(FileInfo('foo/foo.cc'), 'foo/bar.h', False) - _OTHER_HEADER - """ - # This is a list of all standard c++ header files, except - # those already checked for above. - is_stl_h = include in _STL_HEADERS - is_cpp_h = is_stl_h or include in _CPP_HEADERS - - if is_system: - if is_cpp_h: - return _CPP_SYS_HEADER - else: - return _C_SYS_HEADER - - # If the target file and the include we're checking share a - # basename when we drop common extensions, and the include - # lives in . , then it's likely to be owned by the target file. - target_dir, target_base = ( - os.path.split(_DropCommonSuffixes(fileinfo.RepositoryName()))) - include_dir, include_base = os.path.split(_DropCommonSuffixes(include)) - if target_base == include_base and ( - include_dir == target_dir or - include_dir == os.path.normpath(target_dir + '/../public')): - return _LIKELY_MY_HEADER - - # If the target and include share some initial basename - # component, it's possible the target is implementing the - # include, so it's allowed to be first, but we'll never - # complain if it's not there. - target_first_component = _RE_FIRST_COMPONENT.match(target_base) - include_first_component = _RE_FIRST_COMPONENT.match(include_base) - if (target_first_component and include_first_component and - target_first_component.group(0) == - include_first_component.group(0)): - return _POSSIBLE_MY_HEADER - - return _OTHER_HEADER - - - -def CheckIncludeLine(filename, clean_lines, linenum, include_state, error): - """Check rules that are applicable to #include lines. - - Strings on #include lines are NOT removed from elided line, to make - certain tasks easier. However, to prevent false positives, checks - applicable to #include lines in CheckLanguage must be put here. - - Args: - filename: The name of the current file. - clean_lines: A CleansedLines instance containing the file. - linenum: The number of the line to check. - include_state: An _IncludeState instance in which the headers are inserted. - error: The function to call with any errors found. - """ - fileinfo = FileInfo(filename) - - line = clean_lines.lines[linenum] - - # "include" should use the new style "foo/bar.h" instead of just "bar.h" - if _RE_PATTERN_INCLUDE_NEW_STYLE.search(line): - error(filename, linenum, 'build/include', 4, - 'Include the directory when naming .h files') - - # we shouldn't include a file more than once. actually, there are a - # handful of instances where doing so is okay, but in general it's - # not. - match = _RE_PATTERN_INCLUDE.search(line) - if match: - include = match.group(2) - is_system = (match.group(1) == '<') - if include in include_state: - error(filename, linenum, 'build/include', 4, - '"%s" already included at %s:%s' % - (include, filename, include_state[include])) - else: - include_state[include] = linenum - - # We want to ensure that headers appear in the right order: - # 1) for foo.cc, foo.h (preferred location) - # 2) c system files - # 3) cpp system files - # 4) for foo.cc, foo.h (deprecated location) - # 5) other google headers - # - # We classify each include statement as one of those 5 types - # using a number of techniques. The include_state object keeps - # track of the highest type seen, and complains if we see a - # lower type after that. - error_message = include_state.CheckNextIncludeOrder( - _ClassifyInclude(fileinfo, include, is_system)) - if error_message: - error(filename, linenum, 'build/include_order', 4, - '%s. Should be: %s.h, c system, c++ system, other.' % - (error_message, fileinfo.BaseName())) - if not include_state.IsInAlphabeticalOrder(include): - error(filename, linenum, 'build/include_alpha', 4, - 'Include "%s" not in alphabetical order' % include) - - # Look for any of the stream classes that are part of standard C++. - match = _RE_PATTERN_INCLUDE.match(line) - if match: - include = match.group(2) - if Match(r'(f|ind|io|i|o|parse|pf|stdio|str|)?stream$', include): - # Many unit tests use cout, so we exempt them. - if not _IsTestFilename(filename): - error(filename, linenum, 'readability/streams', 3, - 'Streams are highly discouraged.') - - -def _GetTextInside(text, start_pattern): - """Retrieves all the text between matching open and close parentheses. - - Given a string of lines and a regular expression string, retrieve all the text - following the expression and between opening punctuation symbols like - (, [, or {, and the matching close-punctuation symbol. This properly nested - occurrences of the punctuations, so for the text like - printf(a(), b(c())); - a call to _GetTextInside(text, r'printf\(') will return 'a(), b(c())'. - start_pattern must match string having an open punctuation symbol at the end. - - Args: - text: The lines to extract text. Its comments and strings must be elided. - It can be single line and can span multiple lines. - start_pattern: The regexp string indicating where to start extracting - the text. - Returns: - The extracted text. - None if either the opening string or ending punctuation could not be found. - """ - # TODO(sugawarayu): Audit cpplint.py to see what places could be profitably - # rewritten to use _GetTextInside (and use inferior regexp matching today). - - # Give opening punctuations to get the matching close-punctuations. - matching_punctuation = {'(': ')', '{': '}', '[': ']'} - closing_punctuation = set(matching_punctuation.itervalues()) - - # Find the position to start extracting text. - match = re.search(start_pattern, text, re.M) - if not match: # start_pattern not found in text. - return None - start_position = match.end(0) - - assert start_position > 0, ( - 'start_pattern must ends with an opening punctuation.') - assert text[start_position - 1] in matching_punctuation, ( - 'start_pattern must ends with an opening punctuation.') - # Stack of closing punctuations we expect to have in text after position. - punctuation_stack = [matching_punctuation[text[start_position - 1]]] - position = start_position - while punctuation_stack and position < len(text): - if text[position] == punctuation_stack[-1]: - punctuation_stack.pop() - elif text[position] in closing_punctuation: - # A closing punctuation without matching opening punctuations. - return None - elif text[position] in matching_punctuation: - punctuation_stack.append(matching_punctuation[text[position]]) - position += 1 - if punctuation_stack: - # Opening punctuations left without matching close-punctuations. - return None - # punctuations match. - return text[start_position:position - 1] - - -def CheckLanguage(filename, clean_lines, linenum, file_extension, include_state, - error): - """Checks rules from the 'C++ language rules' section of cppguide.html. - - Some of these rules are hard to test (function overloading, using - uint32 inappropriately), but we do the best we can. - - Args: - filename: The name of the current file. - clean_lines: A CleansedLines instance containing the file. - linenum: The number of the line to check. - file_extension: The extension (without the dot) of the filename. - include_state: An _IncludeState instance in which the headers are inserted. - error: The function to call with any errors found. - """ - # If the line is empty or consists of entirely a comment, no need to - # check it. - line = clean_lines.elided[linenum] - if not line: - return - - match = _RE_PATTERN_INCLUDE.search(line) - if match: - CheckIncludeLine(filename, clean_lines, linenum, include_state, error) - return - - # Create an extended_line, which is the concatenation of the current and - # next lines, for more effective checking of code that may span more than one - # line. - if linenum + 1 < clean_lines.NumLines(): - extended_line = line + clean_lines.elided[linenum + 1] - else: - extended_line = line - - # Make Windows paths like Unix. - fullname = os.path.abspath(filename).replace('\\', '/') - - # TODO(unknown): figure out if they're using default arguments in fn proto. - - # Check for non-const references in functions. This is tricky because & - # is also used to take the address of something. We allow <> for templates, - # (ignoring whatever is between the braces) and : for classes. - # These are complicated re's. They try to capture the following: - # paren (for fn-prototype start), typename, &, varname. For the const - # version, we're willing for const to be before typename or after - # Don't check the implementation on same line. - fnline = line.split('{', 1)[0] - if (len(re.findall(r'\([^()]*\b(?:[\w:]|<[^()]*>)+(\s?&|&\s?)\w+', fnline)) > - len(re.findall(r'\([^()]*\bconst\s+(?:typename\s+)?(?:struct\s+)?' - r'(?:[\w:]|<[^()]*>)+(\s?&|&\s?)\w+', fnline)) + - len(re.findall(r'\([^()]*\b(?:[\w:]|<[^()]*>)+\s+const(\s?&|&\s?)[\w]+', - fnline))): - - # We allow non-const references in a few standard places, like functions - # called "swap()" or iostream operators like "<<" or ">>". - if not Search( - r'(swap|Swap|operator[<>][<>])\s*\(\s*(?:[\w:]|<.*>)+\s*&', - fnline): - error(filename, linenum, 'runtime/references', 2, - 'Is this a non-const reference? ' - 'If so, make const or use a pointer.') - - # Check to see if they're using an conversion function cast. - # I just try to capture the most common basic types, though there are more. - # Parameterless conversion functions, such as bool(), are allowed as they are - # probably a member operator declaration or default constructor. - match = Search( - r'(\bnew\s+)?\b' # Grab 'new' operator, if it's there - r'(int|float|double|bool|char|int32|uint32|int64|uint64)\([^)]', line) - if match: - # gMock methods are defined using some variant of MOCK_METHODx(name, type) - # where type may be float(), int(string), etc. Without context they are - # virtually indistinguishable from int(x) casts. Likewise, gMock's - # MockCallback takes a template parameter of the form return_type(arg_type), - # which looks much like the cast we're trying to detect. - if (match.group(1) is None and # If new operator, then this isn't a cast - not (Match(r'^\s*MOCK_(CONST_)?METHOD\d+(_T)?\(', line) or - Match(r'^\s*MockCallback<.*>', line))): - error(filename, linenum, 'readability/casting', 4, - 'Using deprecated casting style. ' - 'Use static_cast<%s>(...) instead' % - match.group(2)) - - CheckCStyleCast(filename, linenum, line, clean_lines.raw_lines[linenum], - 'static_cast', - r'\((int|float|double|bool|char|u?int(16|32|64))\)', error) - - # This doesn't catch all cases. Consider (const char * const)"hello". - # - # (char *) "foo" should always be a const_cast (reinterpret_cast won't - # compile). - if CheckCStyleCast(filename, linenum, line, clean_lines.raw_lines[linenum], - 'const_cast', r'\((char\s?\*+\s?)\)\s*"', error): - pass - else: - # Check pointer casts for other than string constants - CheckCStyleCast(filename, linenum, line, clean_lines.raw_lines[linenum], - 'reinterpret_cast', r'\((\w+\s?\*+\s?)\)', error) - - # In addition, we look for people taking the address of a cast. This - # is dangerous -- casts can assign to temporaries, so the pointer doesn't - # point where you think. - if Search( - r'(&\([^)]+\)[\w(])|(&(static|dynamic|reinterpret)_cast\b)', line): - error(filename, linenum, 'runtime/casting', 4, - ('Are you taking an address of a cast? ' - 'This is dangerous: could be a temp var. ' - 'Take the address before doing the cast, rather than after')) - - # Check for people declaring static/global STL strings at the top level. - # This is dangerous because the C++ language does not guarantee that - # globals with constructors are initialized before the first access. - match = Match( - r'((?:|static +)(?:|const +))string +([a-zA-Z0-9_:]+)\b(.*)', - line) - # Make sure it's not a function. - # Function template specialization looks like: "string foo(...". - # Class template definitions look like: "string Foo::Method(...". - if match and not Match(r'\s*(<.*>)?(::[a-zA-Z0-9_]+)?\s*\(([^"]|$)', - match.group(3)): - error(filename, linenum, 'runtime/string', 4, - 'For a static/global string constant, use a C style string instead: ' - '"%schar %s[]".' % - (match.group(1), match.group(2))) - - # Check that we're not using RTTI outside of testing code. - if Search(r'\bdynamic_cast<', line) and not _IsTestFilename(filename): - error(filename, linenum, 'runtime/rtti', 5, - 'Do not use dynamic_cast<>. If you need to cast within a class ' - "hierarchy, use static_cast<> to upcast. Google doesn't support " - 'RTTI.') - - if Search(r'\b([A-Za-z0-9_]*_)\(\1\)', line): - error(filename, linenum, 'runtime/init', 4, - 'You seem to be initializing a member variable with itself.') - - if file_extension == 'h': - # TODO(unknown): check that 1-arg constructors are explicit. - # How to tell it's a constructor? - # (handled in CheckForNonStandardConstructs for now) - # TODO(unknown): check that classes have DISALLOW_EVIL_CONSTRUCTORS - # (level 1 error) - pass - - # Check if people are using the verboten C basic types. The only exception - # we regularly allow is "unsigned short port" for port. - if Search(r'\bshort port\b', line): - if not Search(r'\bunsigned short port\b', line): - error(filename, linenum, 'runtime/int', 4, - 'Use "unsigned short" for ports, not "short"') - else: - match = Search(r'\b(short|long(?! +double)|long long)\b', line) - if match: - error(filename, linenum, 'runtime/int', 4, - 'Use int16/int64/etc, rather than the C type %s' % match.group(1)) - - # When snprintf is used, the second argument shouldn't be a literal. - match = Search(r'snprintf\s*\(([^,]*),\s*([0-9]*)\s*,', line) - if match and match.group(2) != '0': - # If 2nd arg is zero, snprintf is used to calculate size. - error(filename, linenum, 'runtime/printf', 3, - 'If you can, use sizeof(%s) instead of %s as the 2nd arg ' - 'to snprintf.' % (match.group(1), match.group(2))) - - # Check if some verboten C functions are being used. - if Search(r'\bsprintf\b', line): - error(filename, linenum, 'runtime/printf', 5, - 'Never use sprintf. Use snprintf instead.') - match = Search(r'\b(strcpy|strcat)\b', line) - if match: - error(filename, linenum, 'runtime/printf', 4, - 'Almost always, snprintf is better than %s' % match.group(1)) - - if Search(r'\bsscanf\b', line): - error(filename, linenum, 'runtime/printf', 1, - 'sscanf can be ok, but is slow and can overflow buffers.') - - # Check if some verboten operator overloading is going on - # TODO(unknown): catch out-of-line unary operator&: - # class X {}; - # int operator&(const X& x) { return 42; } // unary operator& - # The trick is it's hard to tell apart from binary operator&: - # class Y { int operator&(const Y& x) { return 23; } }; // binary operator& - if Search(r'\boperator\s*&\s*\(\s*\)', line): - error(filename, linenum, 'runtime/operator', 4, - 'Unary operator& is dangerous. Do not use it.') - - # Check for suspicious usage of "if" like - # } if (a == b) { - if Search(r'\}\s*if\s*\(', line): - error(filename, linenum, 'readability/braces', 4, - 'Did you mean "else if"? If not, start a new line for "if".') - - # Check for potential format string bugs like printf(foo). - # We constrain the pattern not to pick things like DocidForPrintf(foo). - # Not perfect but it can catch printf(foo.c_str()) and printf(foo->c_str()) - # TODO(sugawarayu): Catch the following case. Need to change the calling - # convention of the whole function to process multiple line to handle it. - # printf( - # boy_this_is_a_really_long_variable_that_cannot_fit_on_the_prev_line); - printf_args = _GetTextInside(line, r'(?i)\b(string)?printf\s*\(') - if printf_args: - match = Match(r'([\w.\->()]+)$', printf_args) - if match: - function_name = re.search(r'\b((?:string)?printf)\s*\(', - line, re.I).group(1) - error(filename, linenum, 'runtime/printf', 4, - 'Potential format string bug. Do %s("%%s", %s) instead.' - % (function_name, match.group(1))) - - # Check for potential memset bugs like memset(buf, sizeof(buf), 0). - match = Search(r'memset\s*\(([^,]*),\s*([^,]*),\s*0\s*\)', line) - if match and not Match(r"^''|-?[0-9]+|0x[0-9A-Fa-f]$", match.group(2)): - error(filename, linenum, 'runtime/memset', 4, - 'Did you mean "memset(%s, 0, %s)"?' - % (match.group(1), match.group(2))) - - if Search(r'\busing namespace\b', line): - error(filename, linenum, 'build/namespaces', 5, - 'Do not use namespace using-directives. ' - 'Use using-declarations instead.') - - # Detect variable-length arrays. - match = Match(r'\s*(.+::)?(\w+) [a-z]\w*\[(.+)];', line) - if (match and match.group(2) != 'return' and match.group(2) != 'delete' and - match.group(3).find(']') == -1): - # Split the size using space and arithmetic operators as delimiters. - # If any of the resulting tokens are not compile time constants then - # report the error. - tokens = re.split(r'\s|\+|\-|\*|\/|<<|>>]', match.group(3)) - is_const = True - skip_next = False - for tok in tokens: - if skip_next: - skip_next = False - continue - - if Search(r'sizeof\(.+\)', tok): continue - if Search(r'arraysize\(\w+\)', tok): continue - - tok = tok.lstrip('(') - tok = tok.rstrip(')') - if not tok: continue - if Match(r'\d+', tok): continue - if Match(r'0[xX][0-9a-fA-F]+', tok): continue - if Match(r'k[A-Z0-9]\w*', tok): continue - if Match(r'(.+::)?k[A-Z0-9]\w*', tok): continue - if Match(r'(.+::)?[A-Z][A-Z0-9_]*', tok): continue - # A catch all for tricky sizeof cases, including 'sizeof expression', - # 'sizeof(*type)', 'sizeof(const type)', 'sizeof(struct StructName)' - # requires skipping the next token because we split on ' ' and '*'. - if tok.startswith('sizeof'): - skip_next = True - continue - is_const = False - break - if not is_const: - error(filename, linenum, 'runtime/arrays', 1, - 'Do not use variable-length arrays. Use an appropriately named ' - "('k' followed by CamelCase) compile-time constant for the size.") - - # If DISALLOW_EVIL_CONSTRUCTORS, DISALLOW_COPY_AND_ASSIGN, or - # DISALLOW_IMPLICIT_CONSTRUCTORS is present, then it should be the last thing - # in the class declaration. - match = Match( - (r'\s*' - r'(DISALLOW_(EVIL_CONSTRUCTORS|COPY_AND_ASSIGN|IMPLICIT_CONSTRUCTORS))' - r'\(.*\);$'), - line) - if match and linenum + 1 < clean_lines.NumLines(): - next_line = clean_lines.elided[linenum + 1] - # We allow some, but not all, declarations of variables to be present - # in the statement that defines the class. The [\w\*,\s]* fragment of - # the regular expression below allows users to declare instances of - # the class or pointers to instances, but not less common types such - # as function pointers or arrays. It's a tradeoff between allowing - # reasonable code and avoiding trying to parse more C++ using regexps. - if not Search(r'^\s*}[\w\*,\s]*;', next_line): - error(filename, linenum, 'readability/constructors', 3, - match.group(1) + ' should be the last thing in the class') - - # Check for use of unnamed namespaces in header files. Registration - # macros are typically OK, so we allow use of "namespace {" on lines - # that end with backslashes. - if (file_extension == 'h' - and Search(r'\bnamespace\s*{', line) - and line[-1] != '\\'): - error(filename, linenum, 'build/namespaces', 4, - 'Do not use unnamed namespaces in header files. See ' - 'http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Namespaces' - ' for more information.') - - -def CheckCStyleCast(filename, linenum, line, raw_line, cast_type, pattern, - error): - """Checks for a C-style cast by looking for the pattern. - - This also handles sizeof(type) warnings, due to similarity of content. - - Args: - filename: The name of the current file. - linenum: The number of the line to check. - line: The line of code to check. - raw_line: The raw line of code to check, with comments. - cast_type: The string for the C++ cast to recommend. This is either - reinterpret_cast, static_cast, or const_cast, depending. - pattern: The regular expression used to find C-style casts. - error: The function to call with any errors found. - - Returns: - True if an error was emitted. - False otherwise. - """ - match = Search(pattern, line) - if not match: - return False - - # e.g., sizeof(int) - sizeof_match = Match(r'.*sizeof\s*$', line[0:match.start(1) - 1]) - if sizeof_match: - error(filename, linenum, 'runtime/sizeof', 1, - 'Using sizeof(type). Use sizeof(varname) instead if possible') - return True - - remainder = line[match.end(0):] - - # The close paren is for function pointers as arguments to a function. - # eg, void foo(void (*bar)(int)); - # The semicolon check is a more basic function check; also possibly a - # function pointer typedef. - # eg, void foo(int); or void foo(int) const; - # The equals check is for function pointer assignment. - # eg, void *(*foo)(int) = ... - # The > is for MockCallback<...> ... - # - # Right now, this will only catch cases where there's a single argument, and - # it's unnamed. It should probably be expanded to check for multiple - # arguments with some unnamed. - function_match = Match(r'\s*(\)|=|(const)?\s*(;|\{|throw\(\)|>))', remainder) - if function_match: - if (not function_match.group(3) or - function_match.group(3) == ';' or - ('MockCallback<' not in raw_line and - '/*' not in raw_line)): - error(filename, linenum, 'readability/function', 3, - 'All parameters should be named in a function') - return True - - # At this point, all that should be left is actual casts. - error(filename, linenum, 'readability/casting', 4, - 'Using C-style cast. Use %s<%s>(...) instead' % - (cast_type, match.group(1))) - - return True - - -_HEADERS_CONTAINING_TEMPLATES = ( - ('', ('deque',)), - ('', ('unary_function', 'binary_function', - 'plus', 'minus', 'multiplies', 'divides', 'modulus', - 'negate', - 'equal_to', 'not_equal_to', 'greater', 'less', - 'greater_equal', 'less_equal', - 'logical_and', 'logical_or', 'logical_not', - 'unary_negate', 'not1', 'binary_negate', 'not2', - 'bind1st', 'bind2nd', - 'pointer_to_unary_function', - 'pointer_to_binary_function', - 'ptr_fun', - 'mem_fun_t', 'mem_fun', 'mem_fun1_t', 'mem_fun1_ref_t', - 'mem_fun_ref_t', - 'const_mem_fun_t', 'const_mem_fun1_t', - 'const_mem_fun_ref_t', 'const_mem_fun1_ref_t', - 'mem_fun_ref', - )), - ('', ('numeric_limits',)), - ('', ('list',)), - ('', ('map', 'multimap',)), - ('', ('allocator',)), - ('', ('queue', 'priority_queue',)), - ('', ('set', 'multiset',)), - ('', ('stack',)), - ('', ('char_traits', 'basic_string',)), - ('', ('pair',)), - ('', ('vector',)), - - # gcc extensions. - # Note: std::hash is their hash, ::hash is our hash - ('', ('hash_map', 'hash_multimap',)), - ('', ('hash_set', 'hash_multiset',)), - ('', ('slist',)), - ) - -_RE_PATTERN_STRING = re.compile(r'\bstring\b') - -_re_pattern_algorithm_header = [] -for _template in ('copy', 'max', 'min', 'min_element', 'sort', 'swap', - 'transform'): - # Match max(..., ...), max(..., ...), but not foo->max, foo.max or - # type::max(). - _re_pattern_algorithm_header.append( - (re.compile(r'[^>.]\b' + _template + r'(<.*?>)?\([^\)]'), - _template, - '')) - -_re_pattern_templates = [] -for _header, _templates in _HEADERS_CONTAINING_TEMPLATES: - for _template in _templates: - _re_pattern_templates.append( - (re.compile(r'(\<|\b)' + _template + r'\s*\<'), - _template + '<>', - _header)) - - -def FilesBelongToSameModule(filename_cc, filename_h): - """Check if these two filenames belong to the same module. - - The concept of a 'module' here is a as follows: - foo.h, foo-inl.h, foo.cc, foo_test.cc and foo_unittest.cc belong to the - same 'module' if they are in the same directory. - some/path/public/xyzzy and some/path/internal/xyzzy are also considered - to belong to the same module here. - - If the filename_cc contains a longer path than the filename_h, for example, - '/absolute/path/to/base/sysinfo.cc', and this file would include - 'base/sysinfo.h', this function also produces the prefix needed to open the - header. This is used by the caller of this function to more robustly open the - header file. We don't have access to the real include paths in this context, - so we need this guesswork here. - - Known bugs: tools/base/bar.cc and base/bar.h belong to the same module - according to this implementation. Because of this, this function gives - some false positives. This should be sufficiently rare in practice. - - Args: - filename_cc: is the path for the .cc file - filename_h: is the path for the header path - - Returns: - Tuple with a bool and a string: - bool: True if filename_cc and filename_h belong to the same module. - string: the additional prefix needed to open the header file. - """ - - if not filename_cc.endswith('.cc'): - return (False, '') - filename_cc = filename_cc[:-len('.cc')] - if filename_cc.endswith('_unittest'): - filename_cc = filename_cc[:-len('_unittest')] - elif filename_cc.endswith('_test'): - filename_cc = filename_cc[:-len('_test')] - filename_cc = filename_cc.replace('/public/', '/') - filename_cc = filename_cc.replace('/internal/', '/') - - if not filename_h.endswith('.h'): - return (False, '') - filename_h = filename_h[:-len('.h')] - if filename_h.endswith('-inl'): - filename_h = filename_h[:-len('-inl')] - filename_h = filename_h.replace('/public/', '/') - filename_h = filename_h.replace('/internal/', '/') - - files_belong_to_same_module = filename_cc.endswith(filename_h) - common_path = '' - if files_belong_to_same_module: - common_path = filename_cc[:-len(filename_h)] - return files_belong_to_same_module, common_path - - -def UpdateIncludeState(filename, include_state, io=codecs): - """Fill up the include_state with new includes found from the file. - - Args: - filename: the name of the header to read. - include_state: an _IncludeState instance in which the headers are inserted. - io: The io factory to use to read the file. Provided for testability. - - Returns: - True if a header was succesfully added. False otherwise. - """ - headerfile = None - try: - headerfile = io.open(filename, 'r', 'utf8', 'replace') - except IOError: - return False - linenum = 0 - for line in headerfile: - linenum += 1 - clean_line = CleanseComments(line) - match = _RE_PATTERN_INCLUDE.search(clean_line) - if match: - include = match.group(2) - # The value formatting is cute, but not really used right now. - # What matters here is that the key is in include_state. - include_state.setdefault(include, '%s:%d' % (filename, linenum)) - return True - - -def CheckForIncludeWhatYouUse(filename, clean_lines, include_state, error, - io=codecs): - """Reports for missing stl includes. - - This function will output warnings to make sure you are including the headers - necessary for the stl containers and functions that you use. We only give one - reason to include a header. For example, if you use both equal_to<> and - less<> in a .h file, only one (the latter in the file) of these will be - reported as a reason to include the . - - Args: - filename: The name of the current file. - clean_lines: A CleansedLines instance containing the file. - include_state: An _IncludeState instance. - error: The function to call with any errors found. - io: The IO factory to use to read the header file. Provided for unittest - injection. - """ - required = {} # A map of header name to linenumber and the template entity. - # Example of required: { '': (1219, 'less<>') } - - for linenum in xrange(clean_lines.NumLines()): - line = clean_lines.elided[linenum] - if not line or line[0] == '#': - continue - - # String is special -- it is a non-templatized type in STL. - matched = _RE_PATTERN_STRING.search(line) - if matched: - # Don't warn about strings in non-STL namespaces: - # (We check only the first match per line; good enough.) - prefix = line[:matched.start()] - if prefix.endswith('std::') or not prefix.endswith('::'): - required[''] = (linenum, 'string') - - for pattern, template, header in _re_pattern_algorithm_header: - if pattern.search(line): - required[header] = (linenum, template) - - # The following function is just a speed up, no semantics are changed. - if not '<' in line: # Reduces the cpu time usage by skipping lines. - continue - - for pattern, template, header in _re_pattern_templates: - if pattern.search(line): - required[header] = (linenum, template) - - # The policy is that if you #include something in foo.h you don't need to - # include it again in foo.cc. Here, we will look at possible includes. - # Let's copy the include_state so it is only messed up within this function. - include_state = include_state.copy() - - # Did we find the header for this file (if any) and succesfully load it? - header_found = False - - # Use the absolute path so that matching works properly. - abs_filename = FileInfo(filename).FullName() - - # For Emacs's flymake. - # If cpplint is invoked from Emacs's flymake, a temporary file is generated - # by flymake and that file name might end with '_flymake.cc'. In that case, - # restore original file name here so that the corresponding header file can be - # found. - # e.g. If the file name is 'foo_flymake.cc', we should search for 'foo.h' - # instead of 'foo_flymake.h' - abs_filename = re.sub(r'_flymake\.cc$', '.cc', abs_filename) - - # include_state is modified during iteration, so we iterate over a copy of - # the keys. - header_keys = include_state.keys() - for header in header_keys: - (same_module, common_path) = FilesBelongToSameModule(abs_filename, header) - fullpath = common_path + header - if same_module and UpdateIncludeState(fullpath, include_state, io): - header_found = True - - # If we can't find the header file for a .cc, assume it's because we don't - # know where to look. In that case we'll give up as we're not sure they - # didn't include it in the .h file. - # TODO(unknown): Do a better job of finding .h files so we are confident that - # not having the .h file means there isn't one. - if filename.endswith('.cc') and not header_found: - return - - # All the lines have been processed, report the errors found. - for required_header_unstripped in required: - template = required[required_header_unstripped][1] - if required_header_unstripped.strip('<>"') not in include_state: - error(filename, required[required_header_unstripped][0], - 'build/include_what_you_use', 4, - 'Add #include ' + required_header_unstripped + ' for ' + template) - - -_RE_PATTERN_EXPLICIT_MAKEPAIR = re.compile(r'\bmake_pair\s*<') - - -def CheckMakePairUsesDeduction(filename, clean_lines, linenum, error): - """Check that make_pair's template arguments are deduced. - - G++ 4.6 in C++0x mode fails badly if make_pair's template arguments are - specified explicitly, and such use isn't intended in any case. - - Args: - filename: The name of the current file. - clean_lines: A CleansedLines instance containing the file. - linenum: The number of the line to check. - error: The function to call with any errors found. - """ - raw = clean_lines.raw_lines - line = raw[linenum] - match = _RE_PATTERN_EXPLICIT_MAKEPAIR.search(line) - if match: - error(filename, linenum, 'build/explicit_make_pair', - 4, # 4 = high confidence - 'Omit template arguments from make_pair OR use pair directly OR' - ' if appropriate, construct a pair directly') - - -def ProcessLine(filename, file_extension, - clean_lines, line, include_state, function_state, - class_state, error, extra_check_functions=[]): - """Processes a single line in the file. - - Args: - filename: Filename of the file that is being processed. - file_extension: The extension (dot not included) of the file. - clean_lines: An array of strings, each representing a line of the file, - with comments stripped. - line: Number of line being processed. - include_state: An _IncludeState instance in which the headers are inserted. - function_state: A _FunctionState instance which counts function lines, etc. - class_state: A _ClassState instance which maintains information about - the current stack of nested class declarations being parsed. - error: A callable to which errors are reported, which takes 4 arguments: - filename, line number, error level, and message - extra_check_functions: An array of additional check functions that will be - run on each source line. Each function takes 4 - arguments: filename, clean_lines, line, error - """ - raw_lines = clean_lines.raw_lines - ParseNolintSuppressions(filename, raw_lines[line], line, error) - CheckForFunctionLengths(filename, clean_lines, line, function_state, error) - CheckForMultilineCommentsAndStrings(filename, clean_lines, line, error) - CheckStyle(filename, clean_lines, line, file_extension, class_state, error) - CheckLanguage(filename, clean_lines, line, file_extension, include_state, - error) - CheckForNonStandardConstructs(filename, clean_lines, line, - class_state, error) - CheckPosixThreading(filename, clean_lines, line, error) - CheckInvalidIncrement(filename, clean_lines, line, error) - CheckMakePairUsesDeduction(filename, clean_lines, line, error) - for check_fn in extra_check_functions: - check_fn(filename, clean_lines, line, error) - -def ProcessFileData(filename, file_extension, lines, error, - extra_check_functions=[]): - """Performs lint checks and reports any errors to the given error function. - - Args: - filename: Filename of the file that is being processed. - file_extension: The extension (dot not included) of the file. - lines: An array of strings, each representing a line of the file, with the - last element being empty if the file is terminated with a newline. - error: A callable to which errors are reported, which takes 4 arguments: - filename, line number, error level, and message - extra_check_functions: An array of additional check functions that will be - run on each source line. Each function takes 4 - arguments: filename, clean_lines, line, error - """ - lines = (['// marker so line numbers and indices both start at 1'] + lines + - ['// marker so line numbers end in a known way']) - - include_state = _IncludeState() - function_state = _FunctionState() - class_state = _ClassState() - - ResetNolintSuppressions() - - CheckForCopyright(filename, lines, error) - - if file_extension == 'h': - CheckForHeaderGuard(filename, lines, error) - - RemoveMultiLineComments(filename, lines, error) - clean_lines = CleansedLines(lines) - for line in xrange(clean_lines.NumLines()): - ProcessLine(filename, file_extension, clean_lines, line, - include_state, function_state, class_state, error, - extra_check_functions) - class_state.CheckFinished(filename, error) - - CheckForIncludeWhatYouUse(filename, clean_lines, include_state, error) - - # We check here rather than inside ProcessLine so that we see raw - # lines rather than "cleaned" lines. - CheckForUnicodeReplacementCharacters(filename, lines, error) - - CheckForNewlineAtEOF(filename, lines, error) - -def ProcessFile(filename, vlevel, extra_check_functions=[]): - """Does google-lint on a single file. - - Args: - filename: The name of the file to parse. - - vlevel: The level of errors to report. Every error of confidence - >= verbose_level will be reported. 0 is a good default. - - extra_check_functions: An array of additional check functions that will be - run on each source line. Each function takes 4 - arguments: filename, clean_lines, line, error - """ - - _SetVerboseLevel(vlevel) - - try: - # Support the UNIX convention of using "-" for stdin. Note that - # we are not opening the file with universal newline support - # (which codecs doesn't support anyway), so the resulting lines do - # contain trailing '\r' characters if we are reading a file that - # has CRLF endings. - # If after the split a trailing '\r' is present, it is removed - # below. If it is not expected to be present (i.e. os.linesep != - # '\r\n' as in Windows), a warning is issued below if this file - # is processed. - - if filename == '-': - lines = codecs.StreamReaderWriter(sys.stdin, - codecs.getreader('utf8'), - codecs.getwriter('utf8'), - 'replace').read().split('\n') - else: - lines = codecs.open(filename, 'r', 'utf8', 'replace').read().split('\n') - - carriage_return_found = False - # Remove trailing '\r'. - for linenum in range(len(lines)): - if lines[linenum].endswith('\r'): - lines[linenum] = lines[linenum].rstrip('\r') - carriage_return_found = True - - except IOError: - sys.stderr.write( - "Skipping input '%s': Can't open for reading\n" % filename) - return - - # Note, if no dot is found, this will give the entire filename as the ext. - file_extension = filename[filename.rfind('.') + 1:] - - # When reading from stdin, the extension is unknown, so no cpplint tests - # should rely on the extension. - if (filename != '-' and file_extension != 'cc' and file_extension != 'h' - and file_extension != 'cpp'): - sys.stderr.write('Ignoring %s; not a .cc or .h file\n' % filename) - else: - ProcessFileData(filename, file_extension, lines, Error, - extra_check_functions) - if carriage_return_found and os.linesep != '\r\n': - # Use 0 for linenum since outputting only one error for potentially - # several lines. - Error(filename, 0, 'whitespace/newline', 1, - 'One or more unexpected \\r (^M) found;' - 'better to use only a \\n') - - sys.stderr.write('Done processing %s\n' % filename) - - -def PrintUsage(message): - """Prints a brief usage string and exits, optionally with an error message. - - Args: - message: The optional error message. - """ - sys.stderr.write(_USAGE) - if message: - sys.exit('\nFATAL ERROR: ' + message) - else: - sys.exit(1) - - -def PrintCategories(): - """Prints a list of all the error-categories used by error messages. - - These are the categories used to filter messages via --filter. - """ - sys.stderr.write(''.join(' %s\n' % cat for cat in _ERROR_CATEGORIES)) - sys.exit(0) - - -def ParseArguments(args): - """Parses the command line arguments. - - This may set the output format and verbosity level as side-effects. - - Args: - args: The command line arguments: - - Returns: - The list of filenames to lint. - """ - try: - (opts, filenames) = getopt.getopt(args, '', ['help', 'output=', 'verbose=', - 'counting=', - 'filter=']) - except getopt.GetoptError: - PrintUsage('Invalid arguments.') - - verbosity = _VerboseLevel() - output_format = _OutputFormat() - filters = '' - counting_style = '' - - for (opt, val) in opts: - if opt == '--help': - PrintUsage(None) - elif opt == '--output': - if not val in ('emacs', 'vs7'): - PrintUsage('The only allowed output formats are emacs and vs7.') - output_format = val - elif opt == '--verbose': - verbosity = int(val) - elif opt == '--filter': - filters = val - if not filters: - PrintCategories() - elif opt == '--counting': - if val not in ('total', 'toplevel', 'detailed'): - PrintUsage('Valid counting options are total, toplevel, and detailed') - counting_style = val - - if not filenames: - PrintUsage('No files were specified.') - - _SetOutputFormat(output_format) - _SetVerboseLevel(verbosity) - _SetFilters(filters) - _SetCountingStyle(counting_style) - - return filenames - - -def main(): - filenames = ParseArguments(sys.argv[1:]) - - # Change stderr to write with replacement characters so we don't die - # if we try to print something containing non-ASCII characters. - sys.stderr = codecs.StreamReaderWriter(sys.stderr, - codecs.getreader('utf8'), - codecs.getwriter('utf8'), - 'replace') - - _cpplint_state.ResetErrorCounts() - for filename in filenames: - ProcessFile(filename, _cpplint_state.verbose_level) - _cpplint_state.PrintErrorCounts() - - sys.exit(_cpplint_state.error_count > 0) - - -if __name__ == '__main__': - main() diff --git a/resources/3rdparty/include_cpptemplate.cmake b/resources/3rdparty/include_cpptemplate.cmake index 6ac1799b9..ff3c605fe 100644 --- a/resources/3rdparty/include_cpptemplate.cmake +++ b/resources/3rdparty/include_cpptemplate.cmake @@ -16,5 +16,5 @@ set(CPPTEMPLATE_STATIC_LIBRARY ${STORM_3RDPARTY_BINARY_DIR}/cpptemplate/cpptempl list(APPEND STORM_LINK_LIBRARIES ${CPPTEMPLATE_STATIC_LIBRARY}) add_dependencies(resources cpptemplate) -message(STATUS "StoRM - Linking with cpptemplate") +message(STATUS "Storm - Linking with cpptemplate.") include_directories(${CPPTEMPLATE_INCLUDE_DIR}) diff --git a/resources/3rdparty/include_cudd.cmake b/resources/3rdparty/include_cudd.cmake index f8830d64c..04b19bfbe 100644 --- a/resources/3rdparty/include_cudd.cmake +++ b/resources/3rdparty/include_cudd.cmake @@ -1,8 +1,7 @@ -if(NOT AUTORECONF) - message(ERROR "Cannot find autoreconf, cannot compile cudd3") +if (NOT AUTORECONF) + message(FATAL_ERROR "Cannot find autoreconf, cannot compile cudd3.") endif() - ExternalProject_Add( cudd3 DOWNLOAD_COMMAND "" @@ -26,6 +25,5 @@ set(CUDD_VERSION_STRING 3.0.0) list(APPEND STORM_LINK_LIBRARIES ${CUDD_SHARED_LIBRARY}) add_dependencies(resources cudd3) -message(STATUS "StoRM - Linking with CUDD ${CUDD_VERSION_STRING}") -#message("StoRM - CUDD include dir: ${CUDD_INCLUDE_DIR}") +message(STATUS "Storm - Linking with CUDD ${CUDD_VERSION_STRING}.") include_directories(${CUDD_INCLUDE_DIR}) diff --git a/resources/3rdparty/include_glpk.cmake b/resources/3rdparty/include_glpk.cmake index 2ac870b3d..fd89523c4 100644 --- a/resources/3rdparty/include_glpk.cmake +++ b/resources/3rdparty/include_glpk.cmake @@ -1,8 +1,8 @@ find_package(GLPK QUIET) if(GLPK_FOUND) - message (STATUS "StoRM - Using system version of GLPK") + message (STATUS "Storm - Using system version of glpk.") else() - message (STATUS "StoRM - Using shipped version of GLPK") + message (STATUS "Storm - Using shipped version of glpk.") ExternalProject_Add(glpk DOWNLOAD_COMMAND "" PREFIX ${STORM_3RDPARTY_BINARY_DIR}/glpk-4.57 @@ -23,6 +23,6 @@ endif() # Since there is a shipped version, always use GLPK set(STORM_HAVE_GLPK ON) -message (STATUS "StoRM - Linking with glpk ${GLPK_VERSION_STRING}") +message (STATUS "Storm - Linking with glpk ${GLPK_VERSION_STRING}") include_directories(${GLPK_INCLUDE_DIR}) list(APPEND STORM_LINK_LIBRARIES ${GLPK_LIBRARIES}) diff --git a/resources/3rdparty/include_xerces.cmake b/resources/3rdparty/include_xerces.cmake index 73f559cec..692a002df 100644 --- a/resources/3rdparty/include_xerces.cmake +++ b/resources/3rdparty/include_xerces.cmake @@ -1,9 +1,9 @@ if(USE_XERCES) find_package(Xerces QUIET REQUIRED) if(XERCES_FOUND) - message(STATUS "StoRM - Use system version of xerces") + message(STATUS "Storm - Use system version of xerces.") else() - message(STATUS "StoRM - Use shipped version of xerces") + message(STATUS "Storm - Use shipped version of xerces.") ExternalProject_Add( xercesc SOURCE_DIR ${STORM_3RDPARTY_SOURCE_DIR}/xercesc-3.1.2 @@ -24,7 +24,7 @@ if(USE_XERCES) add_dependencies(resources xercesc) endif() - message (STATUS "StoRM - Linking with xercesc") + message (STATUS "Storm - Linking with xercesc.") set(STORM_HAVE_XERCES ON) include_directories(${XERCESC_INCLUDE}) if(APPLE) diff --git a/resources/3rdparty/sylvan/CMakeLists.txt b/resources/3rdparty/sylvan/CMakeLists.txt index d9999a0f3..9ad8ca880 100644 --- a/resources/3rdparty/sylvan/CMakeLists.txt +++ b/resources/3rdparty/sylvan/CMakeLists.txt @@ -2,8 +2,8 @@ cmake_minimum_required(VERSION 2.6) project(sylvan C CXX) enable_testing() -set(CMAKE_C_FLAGS "-O3 -Wextra -Wall -Werror -fno-strict-aliasing -std=gnu11 -fPIC") -set(CMAKE_CXX_FLAGS "-O3 -Wextra -Wall -Werror -fno-strict-aliasing -Wno-deprecated-register -std=gnu++11 -fPIC") +set(CMAKE_C_FLAGS "-O3 -Wextra -Wall -fno-strict-aliasing -std=gnu11 -fPIC") +set(CMAKE_CXX_FLAGS "-O3 -Wextra -Wall -fno-strict-aliasing -Wno-deprecated-register -std=gnu++11 -fPIC") option(WITH_COVERAGE "Add generation of test coverage" OFF) if(WITH_COVERAGE) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/CHANGES b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/CHANGES deleted file mode 100644 index 6a7d47511..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/CHANGES +++ /dev/null @@ -1,1595 +0,0 @@ ------------------------------------------------------------------------- -The list of most significant changes made over time in -Intel(R) Threading Building Blocks (Intel(R) TBB). ------------------------------------------------------------------------- - -Intel TBB 4.2 Update 3 -TBB_INTERFACE_VERSION == 7003 - -- Added support for Microsoft* Visual Studio* 2013. -- Improved Microsoft* PPL-compatible form of parallel_for for better - support of auto-vectorization. -- Added a new example for cancellation and reset in the flow graph: - Kohonen self-organizing map (examples/graph/som). -- Various improvements in source code, tests, and makefiles. - -Bugs fixed: -- Added dynamic replacement of _aligned_msize() previously missed. -- Fixed task_group::run_and_wait() to throw invalid_multiple_scheduling - exception if the specified task handle is already scheduled. - -Open-source contributions integrated: - -- A fix for ARM* processors by Steve Capper. -- Improvements in std::swap calls by Robert Maynard. - ------------------------------------------------------------------------- -Intel TBB 4.2 Update 2 -TBB_INTERFACE_VERSION == 7002 - -Changes (w.r.t. Intel TBB 4.2 Update 1): - -- Enable C++11 features for Microsoft* Visual Studio* 2013 Preview. -- Added a test for compatibility of TBB containers with C++11 - range-based for loop. - -Changes affecting backward compatibility: - -- Internal layout changed for class tbb::flow::limiter_node. - -Bugs fixed: - -- When building for Intel(R) Xeon Phi(tm) coprocessor, TBB programs - no longer require explicit linking with librt and libpthread. - -Open-source contributions integrated: - -- Fixes for ARM* processors by Steve Capper, Leif Lindholm - and Steven Noonan. -- Support for Clang on Linux by Raf Schietekat. -- Typo correction in scheduler.cpp by Julien Schueller. - ------------------------------------------------------------------------- -Intel TBB 4.2 Update 1 -TBB_INTERFACE_VERSION == 7001 - -Changes (w.r.t. Intel TBB 4.2): - -- Added project files for Microsoft* Visual Studio* 2010. -- Initial support of Microsoft* Visual Studio* 2013 Preview. -- Enable C++11 features available in Intel(R) C++ Compiler 14.0. -- scalable_allocation_mode(TBBMALLOC_SET_SOFT_HEAP_LIMIT, ) can be - used to urge releasing memory from tbbmalloc internal buffers when - the given limit is exceeded. - -Community Preview Features: - -- Class task_arena no longer requires linking with a preview library, - though still remains a community preview feature. -- The method task_arena::wait_until_empty() is removed. -- The method task_arena::current_slot() now returns -1 if - the task scheduler is not initialized in the thread. - -Changes affecting backward compatibility: - -- Because of changes in internal layout of graph nodes, the namespace - interface number of flow::graph has been incremented from 6 to 7. - -Bugs fixed: - -- Fixed a race in lazy initialization of task_arena. -- Fixed flow::graph::reset() to prevent situations where tasks would be - spawned in the process of resetting the graph to its initial state. -- Fixed decrement bug in limiter_node. -- Fixed a race in arc deletion in the flow graph. - -Open-source contributions integrated: - -- Improved support for IBM* Blue Gene* by Raf Schietekat. - ------------------------------------------------------------------------- -Intel TBB 4.2 -TBB_INTERFACE_VERSION == 7000 - -Changes (w.r.t. Intel TBB 4.1 Update 4): - -- Added speculative_spin_mutex, which uses Intel(R) Transactional - Synchronization Extensions when they are supported by hardware. -- Binary files linked with libc++ (the C++ standard library in Clang) - were added on OS X*. -- For OS X* exact exception propagation is supported with Clang; - it requires use of libc++ and corresponding Intel TBB binaries. -- Support for C++11 initilizer lists in constructor and assigment - has been added to concurrent_hash_map, concurrent_unordered_set, - concurrent_unordered_multiset, concurrent_unordered_map, - concurrent_unordered_multimap. -- The memory allocator may now clean its per-thread memory caches - when it cannot get more memory. -- Added the scalable_allocation_command() function for on-demand - cleaning of internal memory caches. -- Reduced the time overhead for freeing memory objects smaller than ~8K. -- Simplified linking with the debug library for applications that use - Intel TBB in code offloaded to Intel(R) Xeon Phi(tm) coprocessors. - See an example in - examples/GettingStarted/sub_string_finder/Makefile. -- Various improvements in source code, scripts and makefiles. - -Changes affecting backward compatibility: - -- tbb::flow::graph has been modified to spawn its tasks; - the old behaviour (task enqueuing) is deprecated. This change may - impact applications that expected a flow graph to make progress - without calling wait_for_all(), which is no longer guaranteed. See - the documentation for more details. -- Changed the return values of the scalable_allocation_mode() function. - -Bugs fixed: - -- Fixed a leak of parallel_reduce body objects when execution is - cancelled or an exception is thrown, as suggested by Darcy Harrison. -- Fixed a race in the task scheduler which can lower the effective - priority despite the existence of higher priority tasks. -- On Linux an error during destruction of the internal thread local - storage no longer results in an exception. - -Open-source contributions integrated: - -- Fixed task_group_context state propagation to unrelated context trees - by Raf Schietekat. - ------------------------------------------------------------------------- -Intel TBB 4.1 Update 4 -TBB_INTERFACE_VERSION == 6105 - -Changes (w.r.t. Intel TBB 4.1 Update 3): - -- Use /volatile:iso option with VS 2012 to disable extended - semantics for volatile variables. -- Various improvements in affinity_partitioner, scheduler, - tests, examples, makefiles. -- Concurrent_priority_queue class now supports initialization/assignment - via C++11 initializer list feature (std::initializer_list). - -Bugs fixed: - -- Fixed more possible stalls in concurrent invocations of - task_arena::execute(), especially waiting for enqueued tasks. -- Fixed requested number of workers for task_arena(P,0). -- Fixed interoperability with Intel(R) VTune(TM) Amplifier XE in - case of using task_arena::enqueue() from a terminating thread. - -Open-source contributions integrated: - -- Type fixes, cleanups, and code beautification by Raf Schietekat. -- Improvements in atomic operations for big endian platforms - by Raf Schietekat. - ------------------------------------------------------------------------- -Intel TBB 4.1 Update 3 -TBB_INTERFACE_VERSION == 6103 - -Changes (w.r.t. Intel TBB 4.1 Update 2): - -- Binary files for Android* applications were added to the Linux* OS - package. -- Binary files for Windows Store* applications were added to the - Windows* OS package. -- Exact exception propagation (exception_ptr) support on Linux OS is - now turned on by default for GCC 4.4 and higher. -- Stopped implicit use of large memory pages by tbbmalloc (Linux-only). - Now use of large pages must be explicitly enabled with - scalable_allocation_mode() function or TBB_MALLOC_USE_HUGE_PAGES - environment variable. - -Community Preview Features: - -- Extended class task_arena constructor and method initialize() to - allow some concurrency to be reserved strictly for application - threads. -- New methods terminate() and is_active() were added to class - task_arena. - -Bugs fixed: - -- Fixed initialization of hashing helper constant in the hash - containers. -- Fixed possible stalls in concurrent invocations of - task_arena::execute() when no worker thread is available to make - progress. -- Fixed incorrect calculation of hardware concurrency in the presence - of inactive processor groups, particularly on systems running - Windows* 8 and Windows* Server 2012. - -Open-source contributions integrated: - -- The fix for the GUI examples on OS X* systems by Raf Schietekat. -- Moved some power-of-2 calculations to functions to improve readability - by Raf Schietekat. -- C++11/Clang support improvements by arcata. -- ARM* platform isolation layer by Steve Capper, Leif Lindholm, Leo Lara - (ARM). - ------------------------------------------------------------------------- -Intel TBB 4.1 Update 2 -TBB_INTERFACE_VERSION == 6102 - -Changes (w.r.t. Intel TBB 4.1 Update 1): - -- Objects up to 128 MB are now cached by the tbbmalloc. Previously - the threshold was 8MB. Objects larger than 128 MB are still - processed by direct OS calls. -- concurrent_unordered_multiset and concurrent_unordered_multimap - have been added, based on Microsoft* PPL prototype. -- Ability to value-initialize a tbb::atomic variable on construction - in C++11, with const expressions properly supported. - -Community Preview Features: - -- Added a possibility to wait until all worker threads terminate. - This is necessary before calling fork() from an application. - -Bugs fixed: - -- Fixed data race in tbbmalloc that might lead to memory leaks - for large object allocations. -- Fixed task_arena::enqueue() to use task_group_context of target arena. -- Improved implementation of 64 bit atomics on ia32. - ------------------------------------------------------------------------- -Intel TBB 4.1 Update 1 -TBB_INTERFACE_VERSION == 6101 - -Changes (w.r.t. Intel TBB 4.1): - -- concurrent_vector class now supports initialization/assignment - via C++11 initializer list feature (std::initializer_list) -- Added implementation of the platform isolation layer based on - Intel compiler atomic built-ins; it is supposed to work on - any platform supported by compiler version 12.1 and newer. -- Using GetNativeSystemInfo() instead of GetSystemInfo() to support - more than 32 processors for 32-bit applications under WOW64. -- The following form of parallel_for: - parallel_for(first, last, [step,] f[, context]) now accepts an - optional partitioner parameter after the function f. - -Backward-incompatible API changes: - -- The library no longer injects tuple in to namespace std. - In previous releases, tuple was injected into namespace std by - flow_graph.h when std::tuple was not available. In this release, - flow_graph.h now uses tbb::flow::tuple. On platforms where - std::tuple is available, tbb::flow::tuple is typedef'ed to - std::tuple. On all other platforms, tbb::flow::tuple provides - a subset of the functionality defined by std::tuple. Users of - flow_graph.h may need to change their uses of std::tuple to - tbb::flow::tuple to ensure compatibility with non-C++11 compliant - compilers. - -Bugs fixed: - -- Fixed local observer to be able to override propagated CPU state and - to provide correct value of task_arena::current_slot() in callbacks. - ------------------------------------------------------------------------- -Intel TBB 4.1 -TBB_INTERFACE_VERSION == 6100 - -Changes (w.r.t. Intel TBB 4.0 Update 5): - -- _WIN32_WINNT must be set to 0x0501 or greater in order to use TBB - on Microsoft* Windows*. -- parallel_deterministic_reduce template function is fully supported. -- TBB headers can be used with C++0x/C++11 mode (-std=c++0x) of GCC - and Intel(R) Compiler. -- C++11 std::make_exception_ptr is used where available, instead of - std::copy_exception from earlier C++0x implementations. -- Improvements in the TBB allocator to reduce extra memory consumption. -- Partial refactoring of the task scheduler data structures. -- TBB examples allow more flexible specification of the thread number, - including arithmetic and geometric progression. - -Bugs fixed: - -- On Linux & OS X*, pre-built TBB binaries do not yet support exact - exception propagation via C++11 exception_ptr. To prevent run time - errors, by default TBB headers disable exact exception propagation - even if the C++ implementation provides exception_ptr. - -Community Preview Features: - -- Added: class task_arena, for work submission by multiple application - threads with thread-independent control of concurrency level. -- Added: task_scheduler_observer can be created as local to a master - thread, to observe threads that work on behalf of that master. - Local observers may have new on_scheduler_leaving() callback. - ------------------------------------------------------------------------- -Intel TBB 4.0 Update 5 -TBB_INTERFACE_VERSION == 6005 - -Changes (w.r.t. Intel TBB 4.0 Update 4): - -- Parallel pipeline optimization (directly storing small objects in the - interstage data buffers) limited to trivially-copyable types for - C++11 and a short list of types for earlier compilers. -- _VARIADIC_MAX switch is honored for TBB tuple implementation - and flow::graph nodes based on tuple. -- Support of Cocoa framework was added to the GUI examples on OS X* - systems. - -Bugs fixed: - -- Fixed a tv_nsec overflow bug in condition_variable::wait_for. -- Fixed execution order of enqueued tasks with different priorities. -- Fixed a bug with task priority changes causing lack of progress - for fire-and-forget tasks when TBB was initialized to use 1 thread. -- Fixed duplicate symbol problem when linking multiple compilation - units that include flow_graph.h on VC 10. - ------------------------------------------------------------------------- -Intel TBB 4.0 Update 4 -TBB_INTERFACE_VERSION == 6004 - -Changes (w.r.t. Intel TBB 4.0 Update 3): - -- The TBB memory allocator transparently supports large pages on Linux. -- A new flow_graph example, logic_sim, was added. -- Support for DirectX* 9 was added to GUI examples. - -Community Preview Features: - -- Added: aggregator, a new concurrency control mechanism. - -Bugs fixed: - -- The abort operation on concurrent_bounded_queue now leaves the queue - in a reusable state. If a bad_alloc or bad_last_alloc exception is - thrown while the queue is recovering from an abort, that exception - will be reported instead of user_abort on the thread on which it - occurred, and the queue will not be reusable. -- Steal limiting heuristic fixed to avoid premature stealing disabling - when large amount of __thread data is allocated on thread stack. -- Fixed a low-probability leak of arenas in the task scheduler. -- In STL-compatible allocator classes, the method construct() was fixed - to comply with C++11 requirements. -- Fixed a bug that prevented creation of fixed-size memory pools - smaller than 2M. -- Significantly reduced the amount of warnings from various compilers. - -Open-source contributions integrated: - -- Multiple improvements by Raf Schietekat. -- Basic support for Clang on OS X* by Blas Rodriguez Somoza. -- Fixes for warnings and corner-case bugs by Blas Rodriguez Somoza - and Edward Lam. - ------------------------------------------------------------------------- -Intel TBB 4.0 Update 3 -TBB_INTERFACE_VERSION == 6003 - -Changes (w.r.t. Intel TBB 4.0 Update 2): - -- Modifications to the low-level API for memory pools: - added support for aligned allocations; - pool policies reworked to allow backward-compatible extensions; - added a policy to not return memory space till destruction; - pool_reset() does not return memory space anymore. -- Class tbb::flow::graph_iterator added to iterate over all nodes - registered with a graph instance. -- multioutput_function_node has been renamed multifunction_node. - multifunction_node and split_node are now fully-supported features. -- For the tagged join node, the policy for try_put of an item with - already existing tag has been defined: the item will be rejected. -- Matching the behavior on Windows, on other platforms the optional - shared libraries (libtbbmalloc, libirml) now are also searched - only in the directory where libtbb is located. -- The platform isolation layer based on GCC built-ins is extended. - -Backward-incompatible API changes: - -- a graph reference parameter is now required to be passed to the - constructors of the following flow graph nodes: overwrite_node, - write_once_node, broadcast_node, and the CPF or_node. -- the following tbb::flow node methods and typedefs have been renamed: - Old New - join_node and or_node: - inputs() -> input_ports() - input_ports_tuple_type -> input_ports_type - multifunction_node and split_node: - ports_type -> output_ports_type - -Bugs fixed: - -- Not all logical processors were utilized on systems with more than - 64 cores split by Windows into several processor groups. - ------------------------------------------------------------------------- -Intel TBB 4.0 Update 2 commercial-aligned release -TBB_INTERFACE_VERSION == 6002 - -Changes (w.r.t. Intel TBB 4.0 Update 1 commercial-aligned release): - -- concurrent_bounded_queue now has an abort() operation that releases - threads involved in pending push or pop operations. The released - threads will receive a tbb::user_abort exception. -- Added Community Preview Feature: concurrent_lru_cache container, - a concurrent implementation of LRU (least-recently-used) cache. - -Bugs fixed: - -- fixed a race condition in the TBB scalable allocator. -- concurrent_queue counter wraparound bug was fixed, which occurred when - the number of push and pop operations exceeded ~>4 billion on IA32. -- fixed races in the TBB scheduler that could put workers asleep too - early, especially in presense of affinitized tasks. - ------------------------------------------------------------------------- -Intel TBB 4.0 Update 1 commercial-aligned release -TBB_INTERFACE_VERSION == 6000 (forgotten to increment) - -Changes (w.r.t. Intel TBB 4.0 commercial-aligned release): - -- Memory leaks fixed in binpack example. -- Improvements and fixes in the TBB allocator. - ------------------------------------------------------------------------- -Intel TBB 4.0 commercial-aligned release -TBB_INTERFACE_VERSION == 6000 - -Changes (w.r.t. Intel TBB 3.0 Update 8 commercial-aligned release): - -- concurrent_priority_queue is now a fully supported feature. - Capacity control methods were removed. -- Flow graph is now a fully supported feature. -- A new memory backend has been implemented in the TBB allocator. - It can reuse freed memory for both small and large objects, and - returns unused memory blocks to the OS more actively. -- Improved partitioning algorithms for parallel_for and parallel_reduce - to better handle load imbalance. -- The convex_hull example has been refactored for reproducible - performance results. -- The major interface version has changed from 5 to 6. - Deprecated interfaces might be removed in future releases. - -Community Preview Features: - -- Added: serial subset, i.e. sequential implementations of TBB generic - algorithms (currently, only provided for parallel_for). -- Preview of new flow graph nodes: - or_node (accepts multiple inputs, forwards each input separately - to all successors), - split_node (accepts tuples, and forwards each element of a tuple - to a corresponding successor), and - multioutput_function_node (accepts one input, and passes the input - and a tuple of output ports to the function body to support outputs - to multiple successors). -- Added: memory pools for more control on memory source, grouping, - and collective deallocation. - ------------------------------------------------------------------------- -Intel TBB 3.0 Update 8 commercial-aligned release -TBB_INTERFACE_VERSION == 5008 - -Changes (w.r.t. Intel TBB 3.0 Update 7 commercial-aligned release): - -- Task priorities become an official feature of TBB, - not community preview as before. -- Atomics API extended, and implementation refactored. -- Added task::set_parent() method. -- Added concurrent_unordered_set container. - -Open-source contributions integrated: - -- PowerPC support by Raf Schietekat. -- Fix of potential task pool overrun and other improvements - in the task scheduler by Raf Schietekat. -- Fix in parallel_for_each to work with std::set in Visual* C++ 2010. - -Community Preview Features: - -- Graph community preview feature was renamed to flow graph. - Multiple improvements in the implementation. - Binpack example was added for the feature. -- A number of improvements to concurrent_priority_queue. - Shortpath example was added for the feature. -- TBB runtime loaded functionality was added (Windows*-only). - It allows to specify which versions of TBB should be used, - as well as to set directories for the library search. -- parallel_deterministic_reduce template function was added. - ------------------------------------------------------------------------- -Intel TBB 3.0 Update 7 commercial-aligned release -TBB_INTERFACE_VERSION == 5006 (forgotten to increment) - -Changes (w.r.t. Intel TBB 3.0 Update 6 commercial-aligned release): - -- Added implementation of the platform isolation layer based on - GCC atomic built-ins; it is supposed to work on any platform - where GCC has these built-ins. - -Community Preview Features: - -- Graph's dining_philosophers example added. -- A number of improvements to graph and concurrent_priority_queue. - - ------------------------------------------------------------------------- -Intel TBB 3.0 Update 6 commercial-aligned release -TBB_INTERFACE_VERSION == 5006 - -Changes (w.r.t. Intel TBB 3.0 Update 5 commercial-aligned release): - -- Added Community Preview feature: task and task group priority, and - Fractal example demonstrating it. -- parallel_pipeline optimized for data items of small and large sizes. -- Graph's join_node is now parametrized with a tuple of up to 10 types. -- Improved performance of concurrent_priority_queue. - -Open-source contributions integrated: - -- Initial NetBSD support by Aleksej Saushev. - -Bugs fixed: - -- Failure to enable interoperability with Intel(R) Cilk(tm) Plus runtime - library, and a crash caused by invoking the interoperability layer - after one of the libraries was unloaded. -- Data race that could result in concurrent_unordered_map structure - corruption after call to clear() method. -- Stack corruption caused by PIC version of 64-bit CAS compiled by Intel - compiler on Linux. -- Inconsistency of exception propagation mode possible when application - built with Microsoft* Visual Studio* 2008 or earlier uses TBB built - with Microsoft* Visual Studio* 2010. -- Affinitizing master thread to a subset of available CPUs after TBB - scheduler was initialized tied all worker threads to the same CPUs. -- Method is_stolen_task() always returned 'false' for affinitized tasks. -- write_once_node and overwrite_node did not immediately send buffered - items to successors - ------------------------------------------------------------------------- -Intel TBB 3.0 Update 5 commercial-aligned release -TBB_INTERFACE_VERSION == 5005 - -Changes (w.r.t. Intel TBB 3.0 Update 4 commercial-aligned release): - -- Added Community Preview feature: graph. -- Added automatic propagation of master thread FPU settings to - TBB worker threads. -- Added a public function to perform a sequentially consistent full - memory fence: tbb::atomic_fence() in tbb/atomic.h. - -Bugs fixed: - -- Data race that could result in scheduler data structures corruption - when using fire-and-forget tasks. -- Potential referencing of destroyed concurrent_hash_map element after - using erase(accessor&A) method with A acquired as const_accessor. -- Fixed a correctness bug in the convex hull example. - -Open-source contributions integrated: - -- Patch for calls to internal::atomic_do_once() by Andrey Semashev. - ------------------------------------------------------------------------- -Intel TBB 3.0 Update 4 commercial-aligned release -TBB_INTERFACE_VERSION == 5004 - -Changes (w.r.t. Intel TBB 3.0 Update 3 commercial-aligned release): - -- Added Community Preview feature: concurrent_priority_queue. -- Fixed library loading to avoid possibility for remote code execution, - see http://www.microsoft.com/technet/security/advisory/2269637.mspx. -- Added support of more than 64 cores for appropriate Microsoft* - Windows* versions. For more details, see - http://msdn.microsoft.com/en-us/library/dd405503.aspx. -- Default number of worker threads is adjusted in accordance with - process affinity mask. - -Bugs fixed: - -- Calls of scalable_* functions from inside the allocator library - caused issues if the functions were overridden by another module. -- A crash occurred if methods run() and wait() were called concurrently - for an empty tbb::task_group (1736). -- The tachyon example exhibited build problems associated with - bug 554339 on Microsoft* Visual Studio* 2010. Project files were - modified as a partial workaround to overcome the problem. See - http://connect.microsoft.com/VisualStudio/feedback/details/554339. - ------------------------------------------------------------------------- -Intel TBB 3.0 Update 3 commercial-aligned release -TBB_INTERFACE_VERSION == 5003 - -Changes (w.r.t. Intel TBB 3.0 Update 2 commercial-aligned release): - -- cache_aligned_allocator class reworked to use scalable_aligned_malloc. -- Improved performance of count() and equal_range() methods - in concurrent_unordered_map. -- Improved implementation of 64-bit atomic loads and stores on 32-bit - platforms, including compilation with VC 7.1. -- Added implementation of atomic operations on top of OSAtomic API - provided by OS X*. -- Removed gratuitous try/catch blocks surrounding thread function calls - in tbb_thread. -- Xcode* projects were added for sudoku and game_of_life examples. -- Xcode* projects were updated to work without TBB framework. - -Bugs fixed: - -- Fixed a data race in task scheduler destruction that on rare occasion - could result in memory corruption. -- Fixed idle spinning in thread bound filters in tbb::pipeline (1670). - -Open-source contributions integrated: - -- MinGW-64 basic support by brsomoza (partially). -- Patch for atomic.h by Andrey Semashev. -- Support for AIX & GCC on PowerPC by Giannis Papadopoulos. -- Various improvements by Raf Schietekat. - ------------------------------------------------------------------------- -Intel TBB 3.0 Update 2 commercial-aligned release -TBB_INTERFACE_VERSION == 5002 - -Changes (w.r.t. Intel TBB 3.0 Update 1 commercial-aligned release): - -- Destructor of tbb::task_group class throws missing_wait exception - if there are tasks running when it is invoked. -- Interoperability layer with Intel Cilk Plus runtime library added - to protect TBB TLS in case of nested usage with Intel Cilk Plus. -- Compilation fix for dependent template names in concurrent_queue. -- Memory allocator code refactored to ease development and maintenance. - -Bugs fixed: - -- Improved interoperability with other Intel software tools on Linux in - case of dynamic replacement of memory allocator (1700) -- Fixed install issues that prevented installation on - Mac OS* X 10.6.4 (1711). - ------------------------------------------------------------------------- -Intel TBB 3.0 Update 1 commercial-aligned release -TBB_INTERFACE_VERSION == 5000 (forgotten to increment) - -Changes (w.r.t. Intel TBB 3.0 commercial-aligned release): - -- Decreased memory fragmentation by allocations bigger than 8K. -- Lazily allocate worker threads, to avoid creating unnecessary stacks. - -Bugs fixed: - -- TBB allocator used much more memory than malloc (1703) - see above. -- Deadlocks happened in some specific initialization scenarios - of the TBB allocator (1701, 1704). -- Regression in enumerable_thread_specific: excessive requirements - for object constructors. -- A bug in construction of parallel_pipeline filters when body instance - was a temporary object. -- Incorrect usage of memory fences on PowerPC and XBOX360 platforms. -- A subtle issue in task group context binding that could result - in cancelation signal being missed by nested task groups. -- Incorrect construction of concurrent_unordered_map if specified - number of buckets is not power of two. -- Broken count() and equal_range() of concurrent_unordered_map. -- Return type of postfix form of operator++ for hash map's iterators. - ------------------------------------------------------------------------- -Intel TBB 3.0 commercial-aligned release -TBB_INTERFACE_VERSION == 5000 - -Changes (w.r.t. Intel TBB 2.2 Update 3 commercial-aligned release): - -- All open-source-release changes down to TBB 2.2 U3 below - were incorporated into this release. - ------------------------------------------------------------------------- -20100406 open-source release - -Changes (w.r.t. 20100310 open-source release): - -- Added support for Microsoft* Visual Studio* 2010, including binaries. -- Added a PDF file with recommended Design Patterns for TBB. -- Added parallel_pipeline function and companion classes and functions - that provide a strongly typed lambda-friendly pipeline interface. -- Reworked enumerable_thread_specific to use a custom implementation of - hash map that is more efficient for ETS usage models. -- Added example for class task_group; see examples/task_group/sudoku. -- Removed two examples, as they were long outdated and superceded: - pipeline/text_filter (use pipeline/square); - parallel_while/parallel_preorder (use parallel_do/parallel_preorder). -- PDF documentation updated. -- Other fixes and changes in code, tests, and examples. - -Bugs fixed: - -- Eliminated build errors with MinGW32. -- Fixed post-build step and other issues in VS projects for examples. -- Fixed discrepancy between scalable_realloc and scalable_msize that - caused crashes with malloc replacement on Windows. - ------------------------------------------------------------------------- -20100310 open-source release - -Changes (w.r.t. Intel TBB 2.2 Update 3 commercial-aligned release): - -- Version macros changed in anticipation of a future release. -- Directory structure aligned with Intel(R) C++ Compiler; - now TBB binaries reside in //[bin|lib] - (in TBB 2.x, it was [bin|lib]//). -- Visual Studio projects changed for examples: instead of separate set - of files for each VS version, now there is single 'msvs' directory - that contains workspaces for MS C++ compiler (_cl.sln) and - Intel C++ compiler (_icl.sln). Works with VS 2005 and above. -- The name versioning scheme for backward compatibility was improved; - now compatibility-breaking changes are done in a separate namespace. -- Added concurrent_unordered_map implementation based on a prototype - developed in Microsoft for a future version of PPL. -- Added PPL-compatible writer-preference RW lock (reader_writer_lock). -- Added TBB_IMPLEMENT_CPP0X macro to control injection of C++0x names - implemented in TBB into namespace std. -- Added almost-C++0x-compatible std::condition_variable, plus a bunch - of other C++0x classes required by condition_variable. -- With TBB_IMPLEMENT_CPP0X, tbb_thread can be also used as std::thread. -- task.cpp was split into several translation units to structure - TBB scheduler sources layout. Static data layout and library - initialization logic were also updated. -- TBB scheduler reworked to prevent master threads from stealing - work belonging to other masters. -- Class task was extended with enqueue() method, and slightly changed - semantics of methods spawn() and destroy(). For exact semantics, - refer to TBB Reference manual. -- task_group_context now allows for destruction by non-owner threads. -- Added TBB_USE_EXCEPTIONS macro to control use of exceptions in TBB - headers. It turns off (i.e. sets to 0) automatically if specified - compiler options disable exception handling. -- TBB is enabled to run on top of Microsoft's Concurrency Runtime - on Windows* 7 (via our worker dispatcher known as RML). -- Removed old unused busy-waiting code in concurrent_queue. -- Described the advanced build & test options in src/index.html. -- Warning level for GCC raised with -Wextra and a few other options. -- Multiple fixes and improvements in code, tests, examples, and docs. - -Open-source contributions integrated: - -- Xbox support by Roman Lut (Deep Shadows), though further changes are - required to make it working; e.g. post-2.1 entry points are missing. -- "Eventcount" by Dmitry Vyukov evolved into concurrent_monitor, - an internal class used in the implementation of concurrent_queue. - ------------------------------------------------------------------------- -Intel TBB 2.2 Update 3 commercial-aligned release -TBB_INTERFACE_VERSION == 4003 - -Changes (w.r.t. Intel TBB 2.2 Update 2 commercial-aligned release): - -- PDF documentation updated. - -Bugs fixed: - -- concurrent_hash_map compatibility issue exposed on Linux in case - two versions of the container were used by different modules. -- enforce 16 byte stack alignment for consistence with GCC; required - to work correctly with 128-bit variables processed by SSE. -- construct() methods of allocator classes now use global operator new. - ------------------------------------------------------------------------- -Intel TBB 2.2 Update 2 commercial-aligned release -TBB_INTERFACE_VERSION == 4002 - -Changes (w.r.t. Intel TBB 2.2 Update 1 commercial-aligned release): - -- parallel_invoke and parallel_for_each now take function objects - by const reference, not by value. -- Building TBB with /MT is supported, to avoid dependency on particular - versions of Visual C++* runtime DLLs. TBB DLLs built with /MT - are located in vc_mt directory. -- Class critical_section introduced. -- Improvements in exception support: new exception classes introduced, - all exceptions are thrown via an out-of-line internal method. -- Improvements and fixes in the TBB allocator and malloc replacement, - including robust memory identification, and more reliable dynamic - function substitution on Windows*. -- Method swap() added to class tbb_thread. -- Methods rehash() and bucket_count() added to concurrent_hash_map. -- Added support for Visual Studio* 2010 Beta2. No special binaries - provided, but CRT-independent DLLs (vc_mt) should work. -- Other fixes and improvements in code, tests, examples, and docs. - -Open-source contributions integrated: - -- The fix to build 32-bit TBB on Mac OS* X 10.6. -- GCC-based port for SPARC Solaris by Michailo Matijkiw, with use of - earlier work by Raf Schietekat. - -Bugs fixed: - -- 159 - TBB build for PowerPC* running Mac OS* X. -- 160 - IBM* Java segfault if used with TBB allocator. -- crash in concurrent_queue (1616). - ------------------------------------------------------------------------- -Intel TBB 2.2 Update 1 commercial-aligned release -TBB_INTERFACE_VERSION == 4001 - -Changes (w.r.t. Intel TBB 2.2 commercial-aligned release): - -- Incorporates all changes from open-source releases below. -- Documentation was updated. -- TBB scheduler auto-initialization now covers all possible use cases. -- concurrent_queue: made argument types of sizeof used in paddings - consistent with those actually used. -- Memory allocator was improved: supported corner case of user's malloc - calling scalable_malloc (non-Windows), corrected processing of - memory allocation requests during tbb memory allocator startup - (Linux). -- Windows malloc replacement has got better support for static objects. -- In pipeline setups that do not allow actual parallelism, execution - by a single thread is guaranteed, idle spinning eliminated, and - performance improved. -- RML refactoring and clean-up. -- New constructor for concurrent_hash_map allows reserving space for - a number of items. -- Operator delete() added to the TBB exception classes. -- Lambda support was improved in parallel_reduce. -- gcc 4.3 warnings were fixed for concurrent_queue. -- Fixed possible initialization deadlock in modules using TBB entities - during construction of global static objects. -- Copy constructor in concurrent_hash_map was fixed. -- Fixed a couple of rare crashes in the scheduler possible before - in very specific use cases. -- Fixed a rare crash in the TBB allocator running out of memory. -- New tests were implemented, including test_lambda.cpp that checks - support for lambda expressions. -- A few other small changes in code, tests, and documentation. - ------------------------------------------------------------------------- -20090809 open-source release - -Changes (w.r.t. Intel TBB 2.2 commercial-aligned release): - -- Fixed known exception safety issues in concurrent_vector. -- Better concurrency of simultaneous grow requests in concurrent_vector. -- TBB allocator further improves performance of large object allocation. -- Problem with source of text relocations was fixed on Linux -- Fixed bugs related to malloc replacement under Windows -- A few other small changes in code and documentation. - ------------------------------------------------------------------------- -Intel TBB 2.2 commercial-aligned release -TBB_INTERFACE_VERSION == 4000 - -Changes (w.r.t. Intel TBB 2.1 U4 commercial-aligned release): - -- Incorporates all changes from open-source releases below. -- Architecture folders renamed from em64t to intel64 and from itanium - to ia64. -- Major Interface version changed from 3 to 4. Deprecated interfaces - might be removed in future releases. -- Parallel algorithms that use partitioners have switched to use - the auto_partitioner by default. -- Improved memory allocator performance for allocations bigger than 8K. -- Added new thread-bound filters functionality for pipeline. -- New implementation of concurrent_hash_map that improves performance - significantly. -- A few other small changes in code and documentation. - ------------------------------------------------------------------------- -20090511 open-source release - -Changes (w.r.t. previous open-source release): - -- Basic support for MinGW32 development kit. -- Added tbb::zero_allocator class that initializes memory with zeros. - It can be used as an adaptor to any STL-compatible allocator class. -- Added tbb::parallel_for_each template function as alias to parallel_do. -- Added more overloads for tbb::parallel_for. -- Added support for exact exception propagation (can only be used with - compilers that support C++0x std::exception_ptr). -- tbb::atomic template class can be used with enumerations. -- mutex, recursive_mutex, spin_mutex, spin_rw_mutex classes extended - with explicit lock/unlock methods. -- Fixed size() and grow_to_at_least() methods of tbb::concurrent_vector - to provide space allocation guarantees. More methods added for - compatibility with std::vector, including some from C++0x. -- Preview of a lambda-friendly interface for low-level use of tasks. -- scalable_msize function added to the scalable allocator (Windows only). -- Rationalized internal auxiliary functions for spin-waiting and backoff. -- Several tests undergo decent refactoring. - -Changes affecting backward compatibility: - -- Improvements in concurrent_queue, including limited API changes. - The previous version is deprecated; its functionality is accessible - via methods of the new tbb::concurrent_bounded_queue class. -- grow* and push_back methods of concurrent_vector changed to return - iterators; old semantics is deprecated. - ------------------------------------------------------------------------- -Intel TBB 2.1 Update 4 commercial-aligned release -TBB_INTERFACE_VERSION == 3016 - -Changes (w.r.t. Intel TBB 2.1 U3 commercial-aligned release): - -- Added tests for aligned memory allocations and malloc replacement. -- Several improvements for better bundling with Intel(R) C++ Compiler. -- A few other small changes in code and documentaion. - -Bugs fixed: - -- 150 - request to build TBB examples with debug info in release mode. -- backward compatibility issue with concurrent_queue on Windows. -- dependency on VS 2005 SP1 runtime libraries removed. -- compilation of GUI examples under Xcode* 3.1 (1577). -- On Windows, TBB allocator classes can be instantiated with const types - for compatibility with MS implementation of STL containers (1566). - ------------------------------------------------------------------------- -20090313 open-source release - -Changes (w.r.t. 20081109 open-source release): - -- Includes all changes introduced in TBB 2.1 Update 2 & Update 3 - commercial-aligned releases (see below for details). -- Added tbb::parallel_invoke template function. It runs up to 10 - user-defined functions in parallel and waits for them to complete. -- Added a special library providing ability to replace the standard - memory allocation routines in Microsoft* C/C++ RTL (malloc/free, - global new/delete, etc.) with the TBB memory allocator. - Usage details are described in include/tbb/tbbmalloc_proxy.h file. -- Task scheduler switched to use new implementation of its core - functionality (deque based task pool, new structure of arena slots). -- Preview of Microsoft* Visual Studio* 2005 project files for - building the library is available in build/vsproject folder. -- Added tests for aligned memory allocations and malloc replacement. -- Added parallel_for/game_of_life.net example (for Windows only) - showing TBB usage in a .NET application. -- A number of other fixes and improvements to code, tests, makefiles, - examples and documents. - -Bugs fixed: - -- The same list as in TBB 2.1 Update 4 right above. - ------------------------------------------------------------------------- -Intel TBB 2.1 Update 3 commercial-aligned release -TBB_INTERFACE_VERSION == 3015 - -Changes (w.r.t. Intel TBB 2.1 U2 commercial-aligned release): - -- Added support for aligned allocations to the TBB memory allocator. -- Added a special library to use with LD_PRELOAD on Linux* in order to - replace the standard memory allocation routines in C/C++ with the - TBB memory allocator. -- Added null_mutex and null_rw_mutex: no-op classes interface-compliant - to other TBB mutexes. -- Improved performance of parallel_sort, to close most of the serial gap - with std::sort, and beat it on 2 and more cores. -- A few other small changes. - -Bugs fixed: - -- the problem where parallel_for hanged after exception throw - if affinity_partitioner was used (1556). -- get rid of VS warnings about mbstowcs deprecation (1560), - as well as some other warnings. -- operator== for concurrent_vector::iterator fixed to work correctly - with different vector instances. - ------------------------------------------------------------------------- -Intel TBB 2.1 Update 2 commercial-aligned release -TBB_INTERFACE_VERSION == 3014 - -Changes (w.r.t. Intel TBB 2.1 U1 commercial-aligned release): - -- Incorporates all open-source-release changes down to TBB 2.1 U1, - except for: - - 20081019 addition of enumerable_thread_specific; -- Warning level for Microsoft* Visual C++* compiler raised to /W4 /Wp64; - warnings found on this level were cleaned or suppressed. -- Added TBB_runtime_interface_version API function. -- Added new example: pipeline/square. -- Added exception handling and cancellation support - for parallel_do and pipeline. -- Added copy constructor and [begin,end) constructor to concurrent_queue. -- Added some support for beta version of Intel(R) Parallel Amplifier. -- Added scripts to set environment for cross-compilation of 32-bit - applications on 64-bit Linux with Intel(R) C++ Compiler. -- Fixed semantics of concurrent_vector::clear() to not deallocate - internal arrays. Fixed compact() to perform such deallocation later. -- Fixed the issue with atomic when T is incomplete type. -- Improved support for PowerPC* Macintosh*, including the fix - for a bug in masked compare-and-swap reported by a customer. -- As usual, a number of other improvements everywhere. - ------------------------------------------------------------------------- -20081109 open-source release - -Changes (w.r.t. previous open-source release): - -- Added new serial out of order filter for tbb::pipeline. -- Fixed the issue with atomic::operator= reported at the forum. -- Fixed the issue with using tbb::task::self() in task destructor - reported at the forum. -- A number of other improvements to code, tests, makefiles, examples - and documents. - -Open-source contributions integrated: -- Changes in the memory allocator were partially integrated. - ------------------------------------------------------------------------- -20081019 open-source release - -Changes (w.r.t. previous open-source release): - -- Introduced enumerable_thread_specific. This new class provides a - wrapper around native thread local storage as well as iterators and - ranges for accessing the thread local copies (1533). -- Improved support for Intel(R) Threading Analysis Tools - on Intel(R) 64 architecture. -- Dependency from Microsoft* CRT was integrated to the libraries using - manifests, to avoid issues if called from code that uses different - version of Visual C++* runtime than the library. -- Introduced new defines TBB_USE_ASSERT, TBB_USE_DEBUG, - TBB_USE_PERFORMANCE_WARNINGS, TBB_USE_THREADING_TOOLS. -- A number of other improvements to code, tests, makefiles, examples - and documents. - -Open-source contributions integrated: - -- linker optimization: /incremental:no . - ------------------------------------------------------------------------- -20080925 open-source release - -Changes (w.r.t. previous open-source release): - -- Same fix for a memory leak in the memory allocator as in TBB 2.1 U1. -- Improved support for lambda functions. -- Fixed more concurrent_queue issues reported at the forum. -- A number of other improvements to code, tests, makefiles, examples - and documents. - ------------------------------------------------------------------------- -Intel TBB 2.1 Update 1 commercial-aligned release -TBB_INTERFACE_VERSION == 3013 - -Changes (w.r.t. Intel TBB 2.1 commercial-aligned release): - -- Fixed small memory leak in the memory allocator. -- Incorporates all open-source-release changes since TBB 2.1, - except for: - - 20080825 changes for parallel_do; - ------------------------------------------------------------------------- -20080825 open-source release - -Changes (w.r.t. previous open-source release): - -- Added exception handling and cancellation support for parallel_do. -- Added default HashCompare template argument for concurrent_hash_map. -- Fixed concurrent_queue.clear() issues due to incorrect assumption - about clear() being private method. -- Added the possibility to use TBB in applications that change - default calling conventions (Windows* only). -- Many improvements to code, tests, examples, makefiles and documents. - -Bugs fixed: - -- 120, 130 - memset declaration missed in concurrent_hash_map.h - ------------------------------------------------------------------------- -20080724 open-source release - -Changes (w.r.t. previous open-source release): - -- Inline assembly for atomic operations improved for gcc 4.3 -- A few more improvements to the code. - ------------------------------------------------------------------------- -20080709 open-source release - -Changes (w.r.t. previous open-source release): - -- operator=() was added to the tbb_thread class according to - the current working draft for std::thread. -- Recognizing SPARC* in makefiles for Linux* and Sun Solaris*. - -Bugs fixed: - -- 127 - concurrent_hash_map::range fixed to split correctly. - -Open-source contributions integrated: - -- fix_set_midpoint.diff by jyasskin -- SPARC* support in makefiles by Raf Schietekat - ------------------------------------------------------------------------- -20080622 open-source release - -Changes (w.r.t. previous open-source release): - -- Fixed a hang that rarely happened on Linux - during deinitialization of the TBB scheduler. -- Improved support for Intel(R) Thread Checker. -- A few more improvements to the code. - ------------------------------------------------------------------------- -Intel TBB 2.1 commercial-aligned release -TBB_INTERFACE_VERSION == 3011 - -Changes (w.r.t. Intel TBB 2.0 U3 commercial-aligned release): - -- All open-source-release changes down to, and including, TBB 2.0 below, - were incorporated into this release. - ------------------------------------------------------------------------- -20080605 open-source release - -Changes (w.r.t. previous open-source release): - -- Explicit control of exported symbols by version scripts added on Linux. -- Interfaces polished for exception handling & algorithm cancellation. -- Cache behavior improvements in the scalable allocator. -- Improvements in text_filter, polygon_overlay, and other examples. -- A lot of other stability improvements in code, tests, and makefiles. -- First release where binary packages include headers/docs/examples, so - binary packages are now self-sufficient for using TBB. - -Open-source contributions integrated: - -- atomics patch (partially). -- tick_count warning patch. - -Bugs fixed: - -- 118 - fix for boost compatibility. -- 123 - fix for tbb_machine.h. - ------------------------------------------------------------------------- -20080512 open-source release - -Changes (w.r.t. previous open-source release): - -- Fixed a problem with backward binary compatibility - of debug Linux builds. -- Sun* Studio* support added. -- soname support added on Linux via linker script. To restore backward - binary compatibility, *.so -> *.so.2 softlinks should be created. -- concurrent_hash_map improvements - added few new forms of insert() - method and fixed precondition and guarantees of erase() methods. - Added runtime warning reporting about bad hash function used for - the container. Various improvements for performance and concurrency. -- Cancellation mechanism reworked so that it does not hurt scalability. -- Algorithm parallel_do reworked. Requirement for Body::argument_type - definition removed, and work item argument type can be arbitrarily - cv-qualified. -- polygon_overlay example added. -- A few more improvements to code, tests, examples and Makefiles. - -Open-source contributions integrated: - -- Soname support patch for Bugzilla #112. - -Bugs fixed: - -- 112 - fix for soname support. - ------------------------------------------------------------------------- -Intel TBB 2.0 U3 commercial-aligned release (package 017, April 20, 2008) - -Corresponds to commercial 019 (for Linux*, 020; for Mac OS* X, 018) -packages. - -Changes (w.r.t. Intel TBB 2.0 U2 commercial-aligned release): - -- Does not contain open-source-release changes below; this release is - only a minor update of TBB 2.0 U2. -- Removed spin-waiting in pipeline and concurrent_queue. -- A few more small bug fixes from open-source releases below. - ------------------------------------------------------------------------- -20080408 open-source release - -Changes (w.r.t. previous open-source release): - -- count_strings example reworked: new word generator implemented, hash - function replaced, and tbb_allocator is used with std::string class. -- Static methods of spin_rw_mutex were replaced by normal member - functions, and the class name was versioned. -- tacheon example was renamed to tachyon. -- Improved support for Intel(R) Thread Checker. -- A few more minor improvements. - -Open-source contributions integrated: - -- Two sets of Sun patches for IA Solaris support. - ------------------------------------------------------------------------- -20080402 open-source release - -Changes (w.r.t. previous open-source release): - -- Exception handling and cancellation support for tasks and algorithms - fully enabled. -- Exception safety guaranties defined and fixed for all concurrent - containers. -- User-defined memory allocator support added to all concurrent - containers. -- Performance improvement of concurrent_hash_map, spin_rw_mutex. -- Critical fix for a rare race condition during scheduler - initialization/de-initialization. -- New methods added for concurrent containers to be closer to STL, - as well as automatic filters removal from pipeline - and __TBB_AtomicAND function. -- The volatile keyword dropped from where it is not really needed. -- A few more minor improvements. - ------------------------------------------------------------------------- -20080319 open-source release - -Changes (w.r.t. previous open-source release): - -- Support for gcc version 4.3 was added. -- tbb_thread class, near compatible with std::thread expected in C++0x, - was added. - -Bugs fixed: - -- 116 - fix for compilation issues with gcc version 4.2.1. -- 120 - fix for compilation issues with gcc version 4.3. - ------------------------------------------------------------------------- -20080311 open-source release - -Changes (w.r.t. previous open-source release): - -- An enumerator added for pipeline filter types (serial vs. parallel). -- New task_scheduler_observer class introduced, to observe when - threads start and finish interacting with the TBB task scheduler. -- task_scheduler_init reverted to not use internal versioned class; - binary compatibility guaranteed with stable releases only. -- Various improvements to code, tests, examples and Makefiles. - ------------------------------------------------------------------------- -20080304 open-source release - -Changes (w.r.t. previous open-source release): - -- Task-to-thread affinity support, previously kept under a macro, - now fully legalized. -- Work-in-progress on cache_aligned_allocator improvements. -- Pipeline really supports parallel input stage; it's no more serialized. -- Various improvements to code, tests, examples and Makefiles. - -Bugs fixed: - -- 119 - fix for scalable_malloc sometimes failing to return a big block. -- TR575 - fixed a deadlock occurring on Windows in startup/shutdown - under some conditions. - ------------------------------------------------------------------------- -20080226 open-source release - -Changes (w.r.t. previous open-source release): - -- Introduced tbb_allocator to select between standard allocator and - tbb::scalable_allocator when available. -- Removed spin-waiting in pipeline and concurrent_queue. -- Improved performance of concurrent_hash_map by using tbb_allocator. -- Improved support for Intel(R) Thread Checker. -- Various improvements to code, tests, examples and Makefiles. - ------------------------------------------------------------------------- -Intel TBB 2.0 U2 commercial-aligned release (package 017, February 14, 2008) - -Corresponds to commercial 017 (for Linux*, 018; for Mac OS* X, 016) -packages. - -Changes (w.r.t. Intel TBB 2.0 U1 commercial-aligned release): - -- Does not contain open-source-release changes below; this release is - only a minor update of TBB 2.0 U1. -- Add support for Microsoft* Visual Studio* 2008, including binary - libraries and VS2008 projects for examples. -- Use SwitchToThread() not Sleep() to yield threads on Windows*. -- Enhancements to Doxygen-readable comments in source code. -- A few more small bug fixes from open-source releases below. - -Bugs fixed: - -- TR569 - Memory leak in concurrent_queue. - ------------------------------------------------------------------------- -20080207 open-source release - -Changes (w.r.t. previous open-source release): - -- Improvements and minor fixes in VS2008 projects for examples. -- Improvements in code for gating worker threads that wait for work, - previously consolidated under #if IMPROVED_GATING, now legalized. -- Cosmetic changes in code, examples, tests. - -Bugs fixed: - -- 113 - Iterators and ranges should be convertible to their const - counterparts. -- TR569 - Memory leak in concurrent_queue. - ------------------------------------------------------------------------- -20080122 open-source release - -Changes (w.r.t. previous open-source release): - -- Updated examples/parallel_for/seismic to improve the visuals and to - use the affinity_partitioner (20071127 and forward) for better - performance. -- Minor improvements to unittests and performance tests. - ------------------------------------------------------------------------- -20080115 open-source release - -Changes (w.r.t. previous open-source release): - -- Cleanup, simplifications and enhancements to the Makefiles for - building the libraries (see build/index.html for high-level - changes) and the examples. -- Use SwitchToThread() not Sleep() to yield threads on Windows*. -- Engineering work-in-progress on exception safety/support. -- Engineering work-in-progress on affinity_partitioner for - parallel_reduce. -- Engineering work-in-progress on improved gating for worker threads - (idle workers now block in the OS instead of spinning). -- Enhancements to Doxygen-readable comments in source code. - -Bugs fixed: - -- 102 - Support for parallel build with gmake -j -- 114 - /Wp64 build warning on Windows*. - ------------------------------------------------------------------------- -20071218 open-source release - -Changes (w.r.t. previous open-source release): - -- Full support for Microsoft* Visual Studio* 2008 in open-source. - Binaries for vc9/ will be available in future stable releases. -- New recursive_mutex class. -- Full support for 32-bit PowerMac including export files for builds. -- Improvements to parallel_do. - ------------------------------------------------------------------------- -20071206 open-source release - -Changes (w.r.t. previous open-source release): - -- Support for Microsoft* Visual Studio* 2008 in building libraries - from source as well as in vc9/ projects for examples. -- Small fixes to the affinity_partitioner first introduced in 20071127. -- Small fixes to the thread-stack size hook first introduced in 20071127. -- Engineering work in progress on concurrent_vector. -- Engineering work in progress on exception behavior. -- Unittest improvements. - ------------------------------------------------------------------------- -20071127 open-source release - -Changes (w.r.t. previous open-source release): - -- Task-to-thread affinity support (affinity partitioner) first appears. -- More work on concurrent_vector. -- New parallel_do algorithm (function-style version of parallel while) - and parallel_do/parallel_preorder example. -- New task_scheduler_init() hooks for getting default_num_threads() and - for setting thread stack size. -- Support for weak memory consistency models in the code base. -- Futex usage in the task scheduler (Linux). -- Started adding 32-bit PowerMac support. -- Intel(R) 9.1 compilers are now the base supported Intel(R) compiler - version. -- TBB libraries added to link line automatically on Microsoft Windows* - systems via #pragma comment linker directives. - -Open-source contributions integrated: - -- FreeBSD platform support patches. -- AIX weak memory model patch. - -Bugs fixed: - -- 108 - Removed broken affinity.h reference. -- 101 - Does not build on Debian Lenny (replaced arch with uname -m). - ------------------------------------------------------------------------- -20071030 open-source release - -Changes (w.r.t. previous open-source release): - -- More work on concurrent_vector. -- Better support for building with -Wall -Werror (or not) as desired. -- A few fixes to eliminate extraneous warnings. -- Begin introduction of versioning hooks so that the internal/API - version is tracked via TBB_INTERFACE_VERSION. The newest binary - libraries should always work with previously-compiled code when- - ever possible. -- Engineering work in progress on using futex inside the mutexes (Linux). -- Engineering work in progress on exception behavior. -- Engineering work in progress on a new parallel_do algorithm. -- Unittest improvements. - ------------------------------------------------------------------------- -20070927 open-source release - -Changes (w.r.t. Intel TBB 2.0 U1 commercial-aligned release): - -- Minor update to TBB 2.0 U1 below. -- Begin introduction of new concurrent_vector interfaces not released - with TBB 2.0 U1. - ------------------------------------------------------------------------- -Intel TBB 2.0 U1 commercial-aligned release (package 014, October 1, 2007) - -Corresponds to commercial 014 (for Linux*, 016) packages. - -Changes (w.r.t. Intel TBB 2.0 commercial-aligned release): - -- All open-source-release changes down to, and including, TBB 2.0 - below, were incorporated into this release. -- Made a number of changes to the officially supported OS list: - Added Linux* OSs: - Asianux* 3, Debian* 4.0, Fedora Core* 6, Fedora* 7, - Turbo Linux* 11, Ubuntu* 7.04; - Dropped Linux* OSs: - Asianux* 2, Fedora Core* 4, Haansoft* Linux 2006 Server, - Mandriva/Mandrake* 10.1, Miracle Linux* 4.0, - Red Flag* DC Server 5.0; - Only Mac OS* X 10.4.9 (and forward) and Xcode* tool suite 2.4.1 (and - forward) are now supported. -- Commercial installers on Linux* fixed to recommend the correct - binaries to use in more cases, with less unnecessary warnings. -- Changes to eliminate spurious build warnings. - -Open-source contributions integrated: - -- Two small header guard macro patches; it also fixed bug #94. -- New blocked_range3d class. - -Bugs fixed: - -- 93 - Removed misleading comments in task.h. -- 94 - See above. - ------------------------------------------------------------------------- -20070815 open-source release - -Changes: - -- Changes to eliminate spurious build warnings. -- Engineering work in progress on concurrent_vector allocator behavior. -- Added hooks to use the Intel(R) compiler code coverage tools. - -Open-source contributions integrated: - -- Mac OS* X build warning patch. - -Bugs fixed: - -- 88 - Fixed TBB compilation errors if both VS2005 and Windows SDK are - installed. - ------------------------------------------------------------------------- -20070719 open-source release - -Changes: - -- Minor update to TBB 2.0 commercial-aligned release below. -- Changes to eliminate spurious build warnings. - ------------------------------------------------------------------------- -Intel TBB 2.0 commercial-aligned release (package 010, July 19, 2007) - -Corresponds to commercial 010 (for Linux*, 012) packages. - -- TBB open-source debut release. - ------------------------------------------------------------------------- -Intel TBB 1.1 commercial release (April 10, 2007) - -Changes (w.r.t. Intel TBB 1.0 commercial release): - -- auto_partitioner which offered an automatic alternative to specifying - a grain size parameter to estimate the best granularity for tasks. -- The release was added to the Intel(R) C++ Compiler 10.0 Pro. - ------------------------------------------------------------------------- -Intel TBB 1.0 Update 2 commercial release - -Changes (w.r.t. Intel TBB 1.0 Update 1 commercial release): - -- Mac OS* X 64-bit support added. -- Source packages for commercial releases introduced. - ------------------------------------------------------------------------- -Intel TBB 1.0 Update 1 commercial-aligned release - -Changes (w.r.t. Intel TBB 1.0 commercial release): - -- Fix for critical package issue on Mac OS* X. - ------------------------------------------------------------------------- -Intel TBB 1.0 commercial release (August 29, 2006) - -Changes (w.r.t. Intel TBB 1.0 beta commercial release): - -- New namespace (and compatibility headers for old namespace). - Namespaces are tbb and tbb::internal and all classes are in the - underscore_style not the WindowsStyle. -- New class: scalable_allocator (and cache_aligned_allocator using that - if it exists). -- Added parallel_for/tacheon example. -- Removed C-style casts from headers for better C++ compliance. -- Bug fixes. -- Documentation improvements. -- Improved performance of the concurrent_hash_map class. -- Upgraded parallel_sort() to support STL-style random-access iterators - instead of just pointers. -- The Windows vs7_1 directories renamed to vs7.1 in examples. -- New class: spin version of reader-writer lock. -- Added push_back() interface to concurrent_vector(). - ------------------------------------------------------------------------- -Intel TBB 1.0 beta commercial release - -Initial release. - -Features / APIs: - -- Concurrent containers: ConcurrentHashTable, ConcurrentVector, - ConcurrentQueue. -- Parallel algorithms: ParallelFor, ParallelReduce, ParallelScan, - ParallelWhile, Pipeline, ParallelSort. -- Support: AlignedSpace, BlockedRange (i.e., 1D), BlockedRange2D -- Task scheduler with multi-master support. -- Atomics: read, write, fetch-and-store, fetch-and-add, compare-and-swap. -- Locks: spin, reader-writer, queuing, OS-wrapper. -- Memory allocation: STL-style memory allocator that avoids false - sharing. -- Timers. - -Tools Support: -- Intel(R) Thread Checker 3.0. -- Intel(R) Thread Profiler 3.0. - -Documentation: -- First Use Documents: README.txt, INSTALL.txt, Release_Notes.txt, - Doc_Index.html, Getting_Started.pdf, Tutorial.pdf, Reference.pdf. -- Class hierarchy HTML pages (Doxygen). -- Tree of index.html pages for navigating the installed package, esp. - for the examples. - -Examples: -- One for each of these TBB features: ConcurrentHashTable, ParallelFor, - ParallelReduce, ParallelWhile, Pipeline, Task. -- Live copies of examples from Getting_Started.pdf. -- TestAll example that exercises every class and header in the package - (i.e., a "liveness test"). -- Compilers: see Release_Notes.txt. -- APIs: OpenMP, WinThreads, Pthreads. - -Packaging: -- Package for Windows installs IA-32 and EM64T bits. -- Package for Linux installs IA-32, EM64T and IPF bits. -- Package for Mac OS* X installs IA-32 bits. -- All packages support Intel(R) software setup assistant (ISSA) and - install-time FLEXlm license checking. -- ISSA support allows license file to be specified directly in case of - no Internet connection or problems with IRC or serial #s. -- Linux installer allows root or non-root, RPM or non-RPM installs. -- FLEXlm license servers (for those who need floating/counted licenses) - are provided separately on Intel(R) Premier. - ------------------------------------------------------------------------- -Intel and Cilk are registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. - -* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/COPYING b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/COPYING deleted file mode 100644 index 5af6ed874..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/COPYING +++ /dev/null @@ -1,353 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. ----------------- END OF Gnu General Public License ---------------- - -The source code of Threading Building Blocks is distributed under version 2 -of the GNU General Public License, with the so-called "runtime exception," -as follows (or see any header or implementation file): - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/README b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/README deleted file mode 100644 index fcc87af0c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/README +++ /dev/null @@ -1,11 +0,0 @@ -Intel(R) Threading Building Blocks - README - -See index.html for directions and documentation. - -If source is present (./Makefile and src/ directories), -type 'gmake' in this directory to build and test. - -See examples/index.html for runnable examples and directions. - -See http://threadingbuildingblocks.org for full documentation -and software information. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/irml/irml.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/irml/irml.dll deleted file mode 100644 index f96a877dd..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/irml/irml.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/irml/irml.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/irml/irml.pdb deleted file mode 100644 index 8133caee6..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/irml/irml.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/irml/irml_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/irml/irml_debug.dll deleted file mode 100644 index 647cf1eb6..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/irml/irml_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/irml/irml_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/irml/irml_debug.pdb deleted file mode 100644 index 1f1ae8680..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/irml/irml_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/irml_c/irml.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/irml_c/irml.dll deleted file mode 100644 index 0fb3ff37f..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/irml_c/irml.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/irml_c/irml.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/irml_c/irml.pdb deleted file mode 100644 index 851fc7589..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/irml_c/irml.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/irml_c/irml_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/irml_c/irml_debug.dll deleted file mode 100644 index 08e96d11c..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/irml_c/irml_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/irml_c/irml_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/irml_c/irml_debug.pdb deleted file mode 100644 index e97be487d..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/irml_c/irml_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbb.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbb.dll deleted file mode 100644 index c97f8d73d..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbb.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbb.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbb.pdb deleted file mode 100644 index c8eeae733..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbb.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbb_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbb_debug.dll deleted file mode 100644 index f9d715ca4..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbb_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbb_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbb_debug.pdb deleted file mode 100644 index 935f5cddc..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbb_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbb_preview.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbb_preview.dll deleted file mode 100644 index cf71eef4f..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbb_preview.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbb_preview.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbb_preview.pdb deleted file mode 100644 index 34c06eb2d..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbb_preview.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbb_preview_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbb_preview_debug.dll deleted file mode 100644 index d95eb2fa7..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbb_preview_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbb_preview_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbb_preview_debug.pdb deleted file mode 100644 index 7447c03c5..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbb_preview_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc.dll deleted file mode 100644 index 9501239c8..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc.pdb deleted file mode 100644 index 2830fba0b..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_debug.dll deleted file mode 100644 index a412862c2..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_debug.pdb deleted file mode 100644 index f39f834e3..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_proxy.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_proxy.dll deleted file mode 100644 index a68e693bd..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_proxy.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_proxy.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_proxy.pdb deleted file mode 100644 index 3cc7af82d..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_proxy.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_proxy_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_proxy_debug.dll deleted file mode 100644 index 3869c8274..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_proxy_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_proxy_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_proxy_debug.pdb deleted file mode 100644 index c6a2fd094..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_proxy_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/irml/irml.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/irml/irml.dll deleted file mode 100644 index 07758ca9a..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/irml/irml.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/irml/irml.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/irml/irml.pdb deleted file mode 100644 index 358fe67de..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/irml/irml.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/irml/irml_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/irml/irml_debug.dll deleted file mode 100644 index b546a1e68..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/irml/irml_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/irml/irml_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/irml/irml_debug.pdb deleted file mode 100644 index fd6c5e105..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/irml/irml_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbb.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbb.dll deleted file mode 100644 index 44deca3f8..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbb.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbb.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbb.pdb deleted file mode 100644 index 05c0d25df..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbb.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbb_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbb_debug.dll deleted file mode 100644 index e5a641963..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbb_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbb_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbb_debug.pdb deleted file mode 100644 index a7d12076c..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbb_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbb_preview.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbb_preview.dll deleted file mode 100644 index e20628397..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbb_preview.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbb_preview.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbb_preview.pdb deleted file mode 100644 index 96a09f690..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbb_preview.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbb_preview_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbb_preview_debug.dll deleted file mode 100644 index 8025a033f..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbb_preview_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbb_preview_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbb_preview_debug.pdb deleted file mode 100644 index a9176f22a..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbb_preview_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc.dll deleted file mode 100644 index b7ba74693..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc.pdb deleted file mode 100644 index 318fb3719..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_debug.dll deleted file mode 100644 index 21503c253..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_debug.pdb deleted file mode 100644 index 19561d0c3..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_proxy.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_proxy.dll deleted file mode 100644 index 31b437970..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_proxy.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_proxy.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_proxy.pdb deleted file mode 100644 index 69e245c58..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_proxy.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_proxy_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_proxy_debug.dll deleted file mode 100644 index 74465a671..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_proxy_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_proxy_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_proxy_debug.pdb deleted file mode 100644 index 6945c28bc..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_proxy_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/irml/irml.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/irml/irml.dll deleted file mode 100644 index 7e1e5aa96..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/irml/irml.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/irml/irml.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/irml/irml.pdb deleted file mode 100644 index 786ec4315..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/irml/irml.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/irml/irml_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/irml/irml_debug.dll deleted file mode 100644 index ba3844c7f..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/irml/irml_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/irml/irml_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/irml/irml_debug.pdb deleted file mode 100644 index 9d24255a2..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/irml/irml_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbb.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbb.dll deleted file mode 100644 index 0dcc136b4..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbb.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbb.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbb.pdb deleted file mode 100644 index 5012aa397..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbb.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_debug.dll deleted file mode 100644 index c5c59204f..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_debug.pdb deleted file mode 100644 index e76710d5c..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_preview.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_preview.dll deleted file mode 100644 index f4ce6c7cf..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_preview.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_preview.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_preview.pdb deleted file mode 100644 index 4cc9e44bd..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_preview.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_preview_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_preview_debug.dll deleted file mode 100644 index 6d489e8e3..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_preview_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_preview_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_preview_debug.pdb deleted file mode 100644 index e2b123dbe..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_preview_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc.dll deleted file mode 100644 index 05e385f33..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc.pdb deleted file mode 100644 index afbacbb9d..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_debug.dll deleted file mode 100644 index 39bcf32da..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_debug.pdb deleted file mode 100644 index c5a345751..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_proxy.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_proxy.dll deleted file mode 100644 index a3124bef7..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_proxy.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_proxy.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_proxy.pdb deleted file mode 100644 index f617ef8b5..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_proxy.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_proxy_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_proxy_debug.dll deleted file mode 100644 index a2f3a80e6..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_proxy_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_proxy_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_proxy_debug.pdb deleted file mode 100644 index 006ad911b..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_proxy_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/irml/irml.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/irml/irml.dll deleted file mode 100644 index ea27fad4b..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/irml/irml.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/irml/irml.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/irml/irml.pdb deleted file mode 100644 index 341d7fb1a..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/irml/irml.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/irml/irml_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/irml/irml_debug.dll deleted file mode 100644 index cb42297bb..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/irml/irml_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/irml/irml_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/irml/irml_debug.pdb deleted file mode 100644 index 459bdf76c..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/irml/irml_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbb.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbb.dll deleted file mode 100644 index bb537ff98..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbb.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbb.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbb.pdb deleted file mode 100644 index 0399a96f4..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbb.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbb_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbb_debug.dll deleted file mode 100644 index 3ecd2a244..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbb_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbb_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbb_debug.pdb deleted file mode 100644 index ab16bd611..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbb_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbb_preview.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbb_preview.dll deleted file mode 100644 index babc257d8..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbb_preview.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbb_preview.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbb_preview.pdb deleted file mode 100644 index e69cfd3bf..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbb_preview.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbb_preview_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbb_preview_debug.dll deleted file mode 100644 index 4c81388a3..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbb_preview_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbb_preview_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbb_preview_debug.pdb deleted file mode 100644 index 71927002a..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbb_preview_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbbmalloc.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbbmalloc.dll deleted file mode 100644 index ab71bc111..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbbmalloc.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbbmalloc.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbbmalloc.pdb deleted file mode 100644 index 55038bbf4..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbbmalloc.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbbmalloc_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbbmalloc_debug.dll deleted file mode 100644 index a4da2238d..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbbmalloc_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbbmalloc_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbbmalloc_debug.pdb deleted file mode 100644 index 643f1d7ed..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbbmalloc_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbbmalloc_proxy.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbbmalloc_proxy.dll deleted file mode 100644 index f994e4c4d..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbbmalloc_proxy.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbbmalloc_proxy.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbbmalloc_proxy.pdb deleted file mode 100644 index 1713dc250..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbbmalloc_proxy.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbbmalloc_proxy_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbbmalloc_proxy_debug.dll deleted file mode 100644 index 9139f5aa3..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbbmalloc_proxy_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbbmalloc_proxy_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbbmalloc_proxy_debug.pdb deleted file mode 100644 index 2b8cff5e4..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc12/tbbmalloc_proxy_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/irml/irml.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/irml/irml.dll deleted file mode 100644 index 6ad5c89c8..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/irml/irml.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/irml/irml.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/irml/irml.pdb deleted file mode 100644 index 1dbb5a337..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/irml/irml.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/irml/irml_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/irml/irml_debug.dll deleted file mode 100644 index 29827b801..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/irml/irml_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/irml/irml_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/irml/irml_debug.pdb deleted file mode 100644 index a3aaa6e94..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/irml/irml_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbb.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbb.dll deleted file mode 100644 index 046b7575e..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbb.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbb.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbb.pdb deleted file mode 100644 index 807b8427c..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbb.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbb_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbb_debug.dll deleted file mode 100644 index b533d5a47..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbb_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbb_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbb_debug.pdb deleted file mode 100644 index b9cd5d484..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbb_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbb_preview.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbb_preview.dll deleted file mode 100644 index 41b2dd161..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbb_preview.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbb_preview.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbb_preview.pdb deleted file mode 100644 index 101901ed0..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbb_preview.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbb_preview_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbb_preview_debug.dll deleted file mode 100644 index d895e7d9f..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbb_preview_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbb_preview_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbb_preview_debug.pdb deleted file mode 100644 index 4f12a2cd4..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbb_preview_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc.dll deleted file mode 100644 index dfd76f327..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc.pdb deleted file mode 100644 index c42854d4f..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_debug.dll deleted file mode 100644 index 8bd706374..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_debug.pdb deleted file mode 100644 index 9c4a83d11..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_proxy.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_proxy.dll deleted file mode 100644 index c5bd58752..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_proxy.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_proxy.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_proxy.pdb deleted file mode 100644 index 195e19188..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_proxy.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_proxy_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_proxy_debug.dll deleted file mode 100644 index 8927e1115..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_proxy_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_proxy_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_proxy_debug.pdb deleted file mode 100644 index f63840a2b..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_proxy_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/irml/irml.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/irml/irml.dll deleted file mode 100644 index f00d85612..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/irml/irml.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/irml/irml.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/irml/irml.pdb deleted file mode 100644 index 925dc5033..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/irml/irml.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/irml/irml_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/irml/irml_debug.dll deleted file mode 100644 index 75e20f875..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/irml/irml_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/irml/irml_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/irml/irml_debug.pdb deleted file mode 100644 index 090290345..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/irml/irml_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/irml_c/irml.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/irml_c/irml.dll deleted file mode 100644 index 00307f975..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/irml_c/irml.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/irml_c/irml.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/irml_c/irml.pdb deleted file mode 100644 index 90697d2dd..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/irml_c/irml.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/irml_c/irml_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/irml_c/irml_debug.dll deleted file mode 100644 index 758de1071..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/irml_c/irml_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/irml_c/irml_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/irml_c/irml_debug.pdb deleted file mode 100644 index ddf53b49b..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/irml_c/irml_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbb.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbb.dll deleted file mode 100644 index 9f44cc54b..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbb.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbb.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbb.pdb deleted file mode 100644 index 93a207bac..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbb.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbb_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbb_debug.dll deleted file mode 100644 index ea0532442..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbb_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbb_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbb_debug.pdb deleted file mode 100644 index bbef821ac..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbb_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbb_preview.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbb_preview.dll deleted file mode 100644 index 6097b0813..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbb_preview.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbb_preview.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbb_preview.pdb deleted file mode 100644 index 887924395..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbb_preview.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbb_preview_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbb_preview_debug.dll deleted file mode 100644 index 15d6af40f..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbb_preview_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbb_preview_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbb_preview_debug.pdb deleted file mode 100644 index 08c878c0a..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbb_preview_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc.dll deleted file mode 100644 index 2e9a1f4d3..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc.pdb deleted file mode 100644 index ab79674cc..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_debug.dll deleted file mode 100644 index 7c413489c..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_debug.pdb deleted file mode 100644 index 77e9ba3f0..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_proxy.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_proxy.dll deleted file mode 100644 index f91ef5ec0..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_proxy.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_proxy.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_proxy.pdb deleted file mode 100644 index 6920e74e4..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_proxy.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_proxy_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_proxy_debug.dll deleted file mode 100644 index 2861320f1..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_proxy_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_proxy_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_proxy_debug.pdb deleted file mode 100644 index e7efc099f..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_proxy_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/irml/irml.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/irml/irml.dll deleted file mode 100644 index cfa5c9c91..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/irml/irml.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/irml/irml.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/irml/irml.pdb deleted file mode 100644 index 4ced13df6..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/irml/irml.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/irml/irml_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/irml/irml_debug.dll deleted file mode 100644 index 68b9927ab..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/irml/irml_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/irml/irml_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/irml/irml_debug.pdb deleted file mode 100644 index 5d9d0a8a6..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/irml/irml_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbb.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbb.dll deleted file mode 100644 index e147d7450..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbb.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbb.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbb.pdb deleted file mode 100644 index 77cd252ac..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbb.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbb_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbb_debug.dll deleted file mode 100644 index d85890337..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbb_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbb_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbb_debug.pdb deleted file mode 100644 index 4fcdf38d1..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbb_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbb_preview.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbb_preview.dll deleted file mode 100644 index 17dc255b5..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbb_preview.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbb_preview.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbb_preview.pdb deleted file mode 100644 index aec5a7a3e..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbb_preview.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbb_preview_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbb_preview_debug.dll deleted file mode 100644 index e33fff49f..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbb_preview_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbb_preview_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbb_preview_debug.pdb deleted file mode 100644 index 33aa06264..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbb_preview_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc.dll deleted file mode 100644 index d5e1c4130..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc.pdb deleted file mode 100644 index 9244ddf85..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_debug.dll deleted file mode 100644 index e0af62d02..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_debug.pdb deleted file mode 100644 index 309c945f4..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_proxy.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_proxy.dll deleted file mode 100644 index 6c7911d75..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_proxy.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_proxy.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_proxy.pdb deleted file mode 100644 index 585aaa77c..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_proxy.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_proxy_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_proxy_debug.dll deleted file mode 100644 index 8df532c6b..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_proxy_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_proxy_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_proxy_debug.pdb deleted file mode 100644 index 016ac0ce8..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_proxy_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/irml/irml.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/irml/irml.dll deleted file mode 100644 index 6cbf2f58a..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/irml/irml.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/irml/irml.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/irml/irml.pdb deleted file mode 100644 index dfddb471f..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/irml/irml.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/irml/irml_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/irml/irml_debug.dll deleted file mode 100644 index 25b9939de..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/irml/irml_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/irml/irml_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/irml/irml_debug.pdb deleted file mode 100644 index 084f3dbc3..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/irml/irml_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbb.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbb.dll deleted file mode 100644 index 216c2460f..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbb.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbb.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbb.pdb deleted file mode 100644 index 1dca914a4..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbb.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_debug.dll deleted file mode 100644 index ff7a1e4a8..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_debug.pdb deleted file mode 100644 index 6e6f2e2af..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_preview.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_preview.dll deleted file mode 100644 index cd3fa07f9..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_preview.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_preview.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_preview.pdb deleted file mode 100644 index 8b14ad5d5..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_preview.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_preview_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_preview_debug.dll deleted file mode 100644 index 80b173699..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_preview_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_preview_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_preview_debug.pdb deleted file mode 100644 index cbcdaa9ac..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_preview_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc.dll deleted file mode 100644 index 214498901..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc.pdb deleted file mode 100644 index 9834ba9e0..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_debug.dll deleted file mode 100644 index a99692df3..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_debug.pdb deleted file mode 100644 index a0cce55d9..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_proxy.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_proxy.dll deleted file mode 100644 index a91822d24..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_proxy.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_proxy.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_proxy.pdb deleted file mode 100644 index 00855dfae..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_proxy.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_proxy_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_proxy_debug.dll deleted file mode 100644 index 143e20610..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_proxy_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_proxy_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_proxy_debug.pdb deleted file mode 100644 index e43633470..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_proxy_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/irml/irml.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/irml/irml.dll deleted file mode 100644 index ac0b5cd42..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/irml/irml.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/irml/irml.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/irml/irml.pdb deleted file mode 100644 index 9a1a8b661..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/irml/irml.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/irml/irml_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/irml/irml_debug.dll deleted file mode 100644 index 4a8bb1323..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/irml/irml_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/irml/irml_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/irml/irml_debug.pdb deleted file mode 100644 index 1119a68b4..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/irml/irml_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbb.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbb.dll deleted file mode 100644 index f2096b40b..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbb.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbb.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbb.pdb deleted file mode 100644 index 9a80e11da..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbb.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbb_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbb_debug.dll deleted file mode 100644 index dd54fe3bd..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbb_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbb_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbb_debug.pdb deleted file mode 100644 index 69639ca92..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbb_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbb_preview.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbb_preview.dll deleted file mode 100644 index d824792a2..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbb_preview.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbb_preview.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbb_preview.pdb deleted file mode 100644 index 85a0a8bca..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbb_preview.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbb_preview_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbb_preview_debug.dll deleted file mode 100644 index 777017f82..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbb_preview_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbb_preview_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbb_preview_debug.pdb deleted file mode 100644 index e84e57661..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbb_preview_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbbmalloc.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbbmalloc.dll deleted file mode 100644 index 63068975c..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbbmalloc.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbbmalloc.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbbmalloc.pdb deleted file mode 100644 index cdef80700..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbbmalloc.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbbmalloc_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbbmalloc_debug.dll deleted file mode 100644 index a50806b8c..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbbmalloc_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbbmalloc_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbbmalloc_debug.pdb deleted file mode 100644 index 0e591a715..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbbmalloc_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbbmalloc_proxy.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbbmalloc_proxy.dll deleted file mode 100644 index 868d13968..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbbmalloc_proxy.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbbmalloc_proxy.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbbmalloc_proxy.pdb deleted file mode 100644 index 4f26681b0..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbbmalloc_proxy.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbbmalloc_proxy_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbbmalloc_proxy_debug.dll deleted file mode 100644 index 508d404a0..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbbmalloc_proxy_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbbmalloc_proxy_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbbmalloc_proxy_debug.pdb deleted file mode 100644 index 2473a12b2..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc12/tbbmalloc_proxy_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/irml/irml.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/irml/irml.dll deleted file mode 100644 index ff910878b..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/irml/irml.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/irml/irml.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/irml/irml.pdb deleted file mode 100644 index 7a60ce2e5..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/irml/irml.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/irml/irml_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/irml/irml_debug.dll deleted file mode 100644 index 708a17ef3..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/irml/irml_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/irml/irml_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/irml/irml_debug.pdb deleted file mode 100644 index 16f08f360..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/irml/irml_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbb.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbb.dll deleted file mode 100644 index 0233aaf7e..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbb.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbb.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbb.pdb deleted file mode 100644 index d0db6a33e..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbb.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbb_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbb_debug.dll deleted file mode 100644 index 7220ec325..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbb_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbb_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbb_debug.pdb deleted file mode 100644 index 2ed20e5f7..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbb_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbb_preview.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbb_preview.dll deleted file mode 100644 index ca876e2d0..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbb_preview.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbb_preview.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbb_preview.pdb deleted file mode 100644 index e141e9676..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbb_preview.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbb_preview_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbb_preview_debug.dll deleted file mode 100644 index f771e9555..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbb_preview_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbb_preview_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbb_preview_debug.pdb deleted file mode 100644 index 29a54cad6..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbb_preview_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc.dll deleted file mode 100644 index abd6dab79..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc.pdb deleted file mode 100644 index a9b26d27d..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_debug.dll deleted file mode 100644 index 685266a9e..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_debug.pdb deleted file mode 100644 index 505da2d35..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_proxy.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_proxy.dll deleted file mode 100644 index f0bbbd89f..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_proxy.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_proxy.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_proxy.pdb deleted file mode 100644 index 7489b456f..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_proxy.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_proxy_debug.dll b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_proxy_debug.dll deleted file mode 100644 index d0ec32a65..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_proxy_debug.dll and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_proxy_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_proxy_debug.pdb deleted file mode 100644 index bdc1a3c02..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_proxy_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/tbbvars.bat b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/tbbvars.bat deleted file mode 100644 index 88fe30612..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/tbbvars.bat +++ /dev/null @@ -1,80 +0,0 @@ -@echo off -REM -REM Copyright 2005-2014 Intel Corporation. All Rights Reserved. -REM -REM This file is part of Threading Building Blocks. -REM -REM Threading Building Blocks is free software; you can redistribute it -REM and/or modify it under the terms of the GNU General Public License -REM version 2 as published by the Free Software Foundation. -REM -REM Threading Building Blocks is distributed in the hope that it will be -REM useful, but WITHOUT ANY WARRANTY; without even the implied warranty -REM of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -REM GNU General Public License for more details. -REM -REM You should have received a copy of the GNU General Public License -REM along with Threading Building Blocks; if not, write to the Free Software -REM Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -REM -REM As a special exception, you may use this file as part of a free software -REM library without restriction. Specifically, if other files instantiate -REM templates or use macros or inline functions from this file, or you compile -REM this file and link it with other files to produce an executable, this -REM file does not by itself cause the resulting executable to be covered by -REM the GNU General Public License. This exception does not however -REM invalidate any other reasons why the executable file might be covered by -REM the GNU General Public License. -REM - -set SCRIPT_NAME=%~nx0 -if (%1) == () goto Syntax - -SET TBB_BIN_DIR=%~d0%~p0 - -SET TBBROOT=%TBB_BIN_DIR%.. - -:ParseArgs -:: Parse the incoming arguments -if /i "%1"=="" goto SetEnv -if /i "%1"=="ia32" (set TBB_TARGET_ARCH=ia32) & shift & goto ParseArgs -if /i "%1"=="intel64" (set TBB_TARGET_ARCH=intel64) & shift & goto ParseArgs -if /i "%1"=="vs2005" (set TBB_TARGET_VS=vc8) & shift & goto ParseArgs -if /i "%1"=="vs2008" (set TBB_TARGET_VS=vc9) & shift & goto ParseArgs -if /i "%1"=="vs2010" (set TBB_TARGET_VS=vc10) & shift & goto ParseArgs -if /i "%1"=="vs2012" (set TBB_TARGET_VS=vc11) & shift & goto ParseArgs -if /i "%1"=="vs2013" (set TBB_TARGET_VS=vc12) & shift & goto ParseArgs -if /i "%1"=="all" (set TBB_TARGET_VS=vc_mt) & shift & goto ParseArgs - -:SetEnv - -if ("%TBB_TARGET_VS%") == ("") set TBB_TARGET_VS=vc_mt - -SET TBB_ARCH_PLATFORM=%TBB_TARGET_ARCH%\%TBB_TARGET_VS% -if exist "%TBB_BIN_DIR%\%TBB_ARCH_PLATFORM%\tbb.dll" SET PATH=%TBB_BIN_DIR%\%TBB_ARCH_PLATFORM%;%PATH% -if exist "%TBBROOT%\..\redist\%TBB_TARGET_ARCH%\tbb\%TBB_TARGET_VS%\tbb.dll" SET PATH=%TBBROOT%\..\redist\%TBB_TARGET_ARCH%\tbb\%TBB_TARGET_VS%;%PATH% -SET LIB=%TBBROOT%\lib\%TBB_ARCH_PLATFORM%;%LIB% -SET INCLUDE=%TBBROOT%\include;%INCLUDE% -IF ("%ICPP_COMPILER11%") NEQ ("") SET TBB_CXX=icl.exe -IF ("%ICPP_COMPILER12%") NEQ ("") SET TBB_CXX=icl.exe -IF ("%ICPP_COMPILER13%") NEQ ("") SET TBB_CXX=icl.exe -goto End - -:Syntax -echo Syntax: -echo %SCRIPT_NAME% ^ ^ -echo ^ must be is one of the following -echo ia32 : Set up for IA-32 architecture -echo intel64 : Set up for Intel(R) 64 architecture -echo ^ should be one of the following -echo vs2005 : Set to use with Microsoft Visual Studio 2005 runtime DLLs -echo vs2008 : Set to use with Microsoft Visual Studio 2008 runtime DLLs -echo vs2010 : Set to use with Microsoft Visual Studio 2010 runtime DLLs -echo vs2012 : Set to use with Microsoft Visual Studio 2012 runtime DLLs -echo vs2013 : Set to use with Microsoft Visual Studio 2013 runtime DLLs -echo all : Set to use TBB statically linked with Microsoft Visual C++ runtime -echo if ^ is not set TBB statically linked with Microsoft Visual C++ runtime will be used. -exit /B 1 - -:End -exit /B 0 \ No newline at end of file diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/tbbvars.csh b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/tbbvars.csh deleted file mode 100644 index f4a5d3b8c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/tbbvars.csh +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/csh -# -# Copyright 2005-2014 Intel Corporation. All Rights Reserved. -# -# This file is part of Threading Building Blocks. -# -# Threading Building Blocks is free software; you can redistribute it -# and/or modify it under the terms of the GNU General Public License -# version 2 as published by the Free Software Foundation. -# -# Threading Building Blocks is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied warranty -# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Threading Building Blocks; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# -# As a special exception, you may use this file as part of a free software -# library without restriction. Specifically, if other files instantiate -# templates or use macros or inline functions from this file, or you compile -# this file and link it with other files to produce an executable, this -# file does not by itself cause the resulting executable to be covered by -# the GNU General Public License. This exception does not however -# invalidate any other reasons why the executable file might be covered by -# the GNU General Public License. - - -setenv TBBROOT "SUBSTITUTE_INSTALL_DIR_HERE" -if ( "$1" == "libc++" ) then - set library_directory="/libc++" -else - set library_directory="" -endif - -if (! $?LIBRARY_PATH) then - setenv LIBRARY_PATH "${TBBROOT}/lib${library_directory}" -else - setenv LIBRARY_PATH "${TBBROOT}/lib${library_directory}:$LIBRARY_PATH" -endif -if (! $?DYLD_LIBRARY_PATH) then - setenv DYLD_LIBRARY_PATH "${TBBROOT}/lib${library_directory}" -else - setenv DYLD_LIBRARY_PATH "${TBBROOT}/lib${library_directory}:$DYLD_LIBRARY_PATH" -endif -if (! $?CPATH) then - setenv CPATH "${TBBROOT}/include" -else - setenv CPATH "${TBBROOT}/include:$CPATH" -endif diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/tbbvars.sh b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/tbbvars.sh deleted file mode 100644 index 4b42152bb..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/bin/tbbvars.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/sh -# -# Copyright 2005-2014 Intel Corporation. All Rights Reserved. -# -# This file is part of Threading Building Blocks. -# -# Threading Building Blocks is free software; you can redistribute it -# and/or modify it under the terms of the GNU General Public License -# version 2 as published by the Free Software Foundation. -# -# Threading Building Blocks is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied warranty -# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Threading Building Blocks; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# -# As a special exception, you may use this file as part of a free software -# library without restriction. Specifically, if other files instantiate -# templates or use macros or inline functions from this file, or you compile -# this file and link it with other files to produce an executable, this -# file does not by itself cause the resulting executable to be covered by -# the GNU General Public License. This exception does not however -# invalidate any other reasons why the executable file might be covered by -# the GNU General Public License. - - -TBBROOT="SUBSTITUTE_INSTALL_DIR_HERE" -if [ "$1" == "libc++" ]; then - library_directory="/libc++" -else - library_directory="" -fi -if [ -z "${LIBRARY_PATH}" ]; then - LIBRARY_PATH="${TBBROOT}/lib${library_directory}"; export LIBRARY_PATH -else - LIBRARY_PATH="${TBBROOT}/lib${library_directory}:$LIBRARY_PATH"; export LIBRARY_PATH -fi -if [ -z "${DYLD_LIBRARY_PATH}" ]; then - DYLD_LIBRARY_PATH="${TBBROOT}/lib${library_directory}"; export DYLD_LIBRARY_PATH -else - DYLD_LIBRARY_PATH="${TBBROOT}/lib${library_directory}:$DYLD_LIBRARY_PATH"; export DYLD_LIBRARY_PATH -fi -if [ -z "${CPATH}" ]; then - CPATH="${TBBROOT}/include"; export CPATH -else - CPATH="${TBBROOT}/include:$CPATH"; export CPATH -fi diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/Release_Notes.txt b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/Release_Notes.txt deleted file mode 100644 index 7190c0ddc..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/Release_Notes.txt +++ /dev/null @@ -1,151 +0,0 @@ ------------------------------------------------------------------------- -Intel(R) Threading Building Blocks - Release Notes - Version 4.2 ------------------------------------------------------------------------- - - -System Requirements -------------------- - -Intel(R) Threading Building Blocks (Intel(R) TBB) is available -commercially (see http://software.intel.com/en-us/intel-tbb) as a -binary distribution, and in open source, in both source and binary -forms (see http://threadingbuildingblocks.org). - -When built from source, Intel(R) TBB is intended to be highly portable -and so supports a wide variety of operating systems and platforms (see -http://threadingbuildingblocks.org for more details). - -Binary distributions, including commercial distributions, are validated -and officially supported for the hardware, software, operating systems -and compilers listed here. - -Hardware - Recommended - - Microsoft* Windows* Systems - Intel(R) Core(TM) 2 Duo processor or Intel(R) Xeon(R) processor - or higher - Linux* Systems - Intel(R) Core(TM) 2 Duo processor or Intel(R) Xeon(R) processor - or higher - Intel(R) Xeon Phi(TM) coprocessor - OS X* Systems - Intel(R) Core(TM) 2 Duo processor or higher - -Hardware - Supported - - Intel(R) Pentium(R) 4 processor family and higher - Intel(R) Xeon Phi(TM) coprocessor - Non Intel(R) processors compatible with the above processors - -Software - Minimum Requirements - - Supported operating system (see below) - Supported compiler (see below) - -Software - Recommended - - Intel(R) Parallel Studio XE 2011 and higher - Intel(R) Parallel Studio 2011 and higher - -Software - Supported Operating Systems - - Systems with Microsoft* Windows* operating systems - Microsoft* Windows* 8, 8.1 - Microsoft* Windows* 7 SP1 - Microsoft* Windows* Server 2012 - Microsoft* Windows* Server 2008 SP2 - Microsoft* Windows* Server 2008 R2 SP1 - Microsoft* Windows* XP Professional SP3 - Systems with Linux* operating systems - Red Hat* Enterprise Linux* 5, 6 - Fedora* 18, 19 - Debian* 6.0, 7 - Ubuntu* 12.04, 13.04 - SuSE* Linux* Enterprise Server 10, 11SP2 - Intel(R) Cluster Ready - Systems with OS X* operating systems - OS X* 10.8 or higher - -Software - Supported Compilers - - Intel(R) C++ Composer XE 2011 SP1 and higher - Microsoft* Visual Studio* 2008 and higher (Windows* OS only) - For each supported Linux* operating system, the standard gcc - version provided with that operating system is supported, - including gcc 4.1 through 4.7 - Xcode* 4.4.1 and higher and command line tools (OS X* only) - - -Known Issues ------------- - -Please note the following with respect to this particular release of -Intel(R) Threading Building Blocks. - -Library Issues - - If Intel TBB is used together with Intel C++ Compiler 12.1 and - the standard C++ library from GCC 4.4, compilation in C++11 mode - (-std=c++0x) may fail with an error saying 'namespace "std" has - no member "exception_ptr"'. To overcome the problem, include an - Intel TBB header (e.g. tbb_stddef.h) before any standard - library headers. - - - If an application is built for Microsoft* Windows* XP Professional - or similar the _WIN32_WINNT macro must be set manually to 0x0501 - in order to limit the usage of modern API that is available on - newer operating systems. - - - If an application uses static version of MSVCRT libraries or uses - Intel TBB DLL built with static MSVCRT (vc_mt variant), and throws - an exception from a functor passed to task_group::run_and_wait(), - the exception will not be intercepted by Intel TBB and will not result - in cancellation of the task_group. For a workaround, catch the - exception in the functor and explicitly cancel the task_group. - - - If an application uses debug version of Intel TBB DLL built with static - MSVCRT (vc_mt variant), Microsoft* Visual C++ debug library 10.0 - (msvcp100d.dll) is required to be available on the system to run - an application. - - - If you are using Intel(R) Threading Building Blocks and OpenMP* - constructs mixed together in rapid succession in the same - program, and you are using Intel(R) compilers for your OpenMP* - code, set KMP_BLOCKTIME to a small value (e.g., 20 milliseconds) - to improve performance. This setting can also be made within - your OpenMP* code via the kmp_set_blocktime() library call. See - the Intel(R) compiler OpenMP* documentation for more details on - KMP_BLOCKTIME and kmp_set_blocktime(). - - - In general, non-debug ("release") builds of applications or - examples should link against the non-debug versions of the - Intel(R) Threading Building Blocks libraries, and debug builds - should link against the debug versions of these libraries. On - Windows* OS, compile with /MD and use Intel(R) Threading - Building Blocks release libraries, or compile with /MDd and use - debug libraries; not doing so may cause run-time failures. See - the Tutorial in the product "doc" sub-directory for more details - on debug vs. release libraries. - - - If open source verion installed to the system folders like /usr/lib64 - on Linux OS examples may fail to link because sometimes gcc - searches for folders in the different order than expected. - -L command line linker option needs to be used to set the right - location. This does not affect a program execution. - - - Running applications linked with Intel(R) Threading Building Blocks - version 4.0 U5 or higher under Intel(R) Graphics Performance - Analyzers is not supported. - ------------------------------------------------------------------------- -Copyright (C) 2005-2014 Intel Corporation. All Rights Reserved. - -Intel, Xeon and Pentium are registered trademarks or trademarks of -Intel Corporation or its subsidiaries in the United States and other countries. - -* Other names and brands may be claimed as the property of others. - -Third Party and Open Source Licenses - -Content of some examples or binaries may be covered by various open-source -licenses. See the index.html file in each respective folder for details. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/NavScript.js b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/NavScript.js deleted file mode 100644 index 27217501f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/NavScript.js +++ /dev/null @@ -1,58 +0,0 @@ -//*============================================================================== -//* Helpware NavScript.js 1.01 -//* Copyright (c) 2008, Robert Chandler, The Helpware Group -//* http://helpware.net/FAR/ -//* support@helpware.net -//* Descriptions: -//* Adds a Open Navigation link at page top if nav is currently not open -//* or inside a CHM. -//* Usage: Anyone may use and modify this file. If you modify it then -//* please change its name and acknowledge my work in your (c) statement. -//* Email me your changes if you think that others could benefit too. -//*============================================================================== -//* 10-June-2008: 1.00 RWC - Original Version -//* 11-July-2008: 1.01 RWC - Now detects if inside CHM Help file. IsInsideChm() -//* - -function GetTest() { - alert( window.location ); -} - -function WriteOpenNavLink(navLink) { - var ss = ''; - document.write(ss); -} - -function IsNavOpen() { - if ((top.right == null) || (top.right == undefined) || (top.right.location == null) || (top.right.location == undefined) || (typeof(top.right.location.href) != "string") || (top.right.location.href == "")) - return false; //no nav found - else - return true; //nav found -} - -function IsInsideChm() { //returns true if current file is inside a CHM Help File - var ra = /::/; - return (location.href.search(ra) > 0); //If found then then we are in a CHM - } - -// pass in the directory level. 0 = if this HTML is same level as hh_goto.hh; 1 = of one level down etc -function WriteNavLink(aDirLevel) { - if ((!IsNavOpen()) && (!IsInsideChm())) - { - var prefix = ""; - for (var n=0; n < aDirLevel; n++) - prefix = prefix + "../"; - - //find last back slash in path - var x = location.href.lastIndexOf("/"); // get last splash of "path/dir/name.htm" - for (var n=0; n < aDirLevel; n++) - x = location.href.lastIndexOf("/", x-1); // get 2nd last slash etc - var curFileName = location.href.substr(x+1); - - var navLink = prefix + "hh_goto.htm#" + curFileName - WriteOpenNavLink(navLink); - } -} - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/Resources/NavScript.js b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/Resources/NavScript.js deleted file mode 100644 index 699c54d17..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/Resources/NavScript.js +++ /dev/null @@ -1,61 +0,0 @@ -//*============================================================================== -//* Helpware NavScript.js 1.01 -//* Copyright (c) 2008, Robert Chandler, The Helpware Group -//* http://helpware.net/FAR/ -//* support@helpware.net -//* Descriptions: -//* Adds a Open Navigation link at page top if nav is currently not open -//* or inside a CHM. -//* Usage: Anyone may use and modify this file. If you modify it then -//* please change its name and acknowledge my work in your (c) statement. -//* Email me your changes if you think that others could benefit too. -//*============================================================================== -//* 10-June-2008: 1.00 RWC - Original Version -//* 11-July-2008: 1.01 RWC - Now detects if inside CHM Help file. IsInsideChm() -//* - -function GetTest() { - alert( window.location ); -} - -function WriteOpenNavLink(navLink) { - var ss = ''; - document.write(ss); -} - -function IsNavOpen() { - if ((top.right == null) || (top.right == undefined) || (top.right.location == null) || (top.right.location == undefined) || (typeof(top.right.location.href) != "string") || (top.right.location.href == "")) - return false; //no nav found - else - return true; //nav found -} - -function IsInsideChm() { //returns true if current file is inside a CHM Help File - var ra = /::/; - return (location.href.search(ra) > 0); //If found then then we are in a CHM - } - -// pass in the directory level. 0 = if this HTML is same level as hh_goto.hh; 1 = of one level down etc -function WriteNavLink(aDirLevel) { - if ((!IsNavOpen()) && (!IsInsideChm())) - { - var prefix = ""; - for (var n=0; n < aDirLevel; n++) - prefix = prefix + "../"; - - //find last back slash in path - var x = location.href.lastIndexOf("/"); // get last splash of "path/dir/name.htm" - for (var n=0; n < aDirLevel; n++) - x = location.href.lastIndexOf("/", x-1); // get 2nd last slash etc - var curFileName = location.href.substr(x+1); - - var navLink = prefix + "hh_goto.htm#" + curFileName - WriteOpenNavLink(navLink); - } -} - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/Resources/ssgid_scripts.js b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/Resources/ssgid_scripts.js deleted file mode 100644 index 6933a4ee7..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/Resources/ssgid_scripts.js +++ /dev/null @@ -1,19 +0,0 @@ -var popupWindow = null; -function popUp(URL) { - popupWindow = window.open(URL,'name','titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=550,width=500'); - - if(popupWindow && window.focus) { - popupWindow.focus(); - } - - var el = window.event; - el.returnValue = false; - el.cancelBubble = true; -} -var day = null; -var id = null; -function TestpopUp(URL) { -day = new Date(); -id = day.getTime(); -eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=500,height=550,left = 470');"); -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/delta.gif b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/delta.gif deleted file mode 100644 index 30f2959b8..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/delta.gif and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/deltaend.gif b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/deltaend.gif deleted file mode 100644 index 55e32fbcb..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/deltaend.gif and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/hh_goto.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/hh_goto.htm deleted file mode 100644 index 3f2ee1ddb..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/hh_goto.htm +++ /dev/null @@ -1,39 +0,0 @@ - - - - - Redirect Page - - - - - - - - - -

Page Loader

- -

If there is a security warning at the top of the page please click it and select "Allow blocked content".

- -

If redirection does not occur click this link: - -

- - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/hh_index.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/hh_index.htm deleted file mode 100644 index 16eaadf8a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/hh_index.htm +++ /dev/null @@ -1,531 +0,0 @@ - - - - - - - -Index - - - - - - - - - -
- -
- - -
- -
- -
- -
- - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/hh_search.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/hh_search.htm deleted file mode 100644 index 037bd901f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/hh_search.htm +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - - - - - - - - - - - - -
- -
- - - - - -
- Topics containing any of these words: -
- Topics containing all of these words: -
- Topics should not contain these words: -
- Partial word matching
-
-
- -
-
- -
-
- - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/hh_toc.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/hh_toc.htm deleted file mode 100644 index 40afd27cd..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/hh_toc.htm +++ /dev/null @@ -1,1640 +0,0 @@ - - - - - - Contents - - - - - - - - - - - -
- -
- - -
- Get Link -| - Sync TOC -| - << -| - >> -
- -
-
-
- - Intel® Threading Building Blocks Documenation -
- - - - - -
- - Intel® Threading Building Blocks (Intel® TBB) User Guide -
- - - - - - - -
- - Timing -
- - - - - -
- - References -
-
-
-
- - Intel® Threading Building Blocks Reference Manual -
-
- - General Conventions -
-
- - Terminology -
-
- - Identifiers -
-
- - Namespaces -
- -
-
- - - - - - - - - - - -
- - Threads -
- -
- - thread::id -
- -
-
- -
-
-
-
-
- -
- - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/index.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/index.htm deleted file mode 100644 index 4125222cc..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/index.htm +++ /dev/null @@ -1,43 +0,0 @@ - - - - - Intel® Threading Building Blocks Documentation - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/intel_css_styles.css b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/intel_css_styles.css deleted file mode 100644 index a1f475b0b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/intel_css_styles.css +++ /dev/null @@ -1,1020 +0,0 @@ -/* ================================================= */ -/* ====== Windows CSS Styles ======================= */ -/* ====== styles_w.css ============================= */ - -/* ------------------------------------------------- */ -/* Default body style */ -body { - color:#333333; - background-color:#ffffff; - font-family: Verdana, Arial, sans-serif; - font-size: 10pt; - margin-left: 30px; -} - -/* ------------------------------------------------- */ -/* Help 3 body style overriding default MSHV behavior */ - -body.OH_VSIP_body { - - margin-left: 30px; - - } - -DIV.OH_outerContent -{ - border:0px none #FFFFFF; -} - - -/* ------------------------------------------------- */ -/* Title headings styles */ -h1 { - color: #0860a8; - font-size: 15pt; - font-weight: normal; - padding-bottom: 1px; - margin-left: 0pt; - margin-bottom: 0px; - border-bottom: 1px solid #0860A8; -} - -h1.firsttitle { - font-weight:normal; - border-bottom:0 none; - margin-left:0; -} -h2 { - color: #0860a8; - font-weight: lighter; - margin-top: 5pt; - margin-bottom: 0; - font-size: 13pt; -} -/*h2 { - color: #0860a8; - font-weight: lighter; - padding-left:30px; - margin-top:5pt; - margin-bottom:0; - font-size:13pt; -}*/ -h3 { - color: #333333; - font-weight: bold; - margin-top: 5pt; - margin-bottom: 0; - font-size: 10.5pt; -} -/*h3 { - color: #333333; - font-weight:bold; - padding-left:30px; - margin-top:5pt; - margin-bottom:0; - font-size:10.5pt; -}*/ - -h4 { - color: #333333; - color: #0860a8; - margin-bottom:0.75em; - padding-left:0px; - /*padding-left:15px;*/ - font-size: 10.0pt; - } -.relinfo { - padding-left:30px; -/* color: #333333;*/ -} -caption { - font-size:10pt; - font-weight: bold; -} -.figcap { - margin-left:24px; - font-size:10pt; - font-weight: bold; - text-align:center; -} -.sectiontitle { - padding-left:0px; - /*padding-left:30px;*/ -} -.linklist { - padding-left:0px; - /*padding-left:30px;*/ -} -/* ------------------------------------------------- */ -/* Link styles */ -a:link { - color: #0860a8; - text-decoration: none; -/* color:#0033ff;*/ -} -a:active { - color: #0860a8; - text-decoration: underline; -/* color:#000000; */ -} -a:visited { - color:#0860a8; - text-decoration: none; -/* color:#9900cc;*/ -} -a:hover { - color:#000000; - background-color:#ffffcc; -} -.familylinks { - margin-top:1em; - } -a.start { - font-size: 18pt; - text-decoration: underline; -} -a:active.start { - color: #0860a8; - text-decoration: underline; -} -a:visited.start { - color:#0860a8; - text-decoration: underline; -} -a.underlined { - text-decoration: underline; -} -a:active.underlined { - color: #0860a8; - text-decoration: underline; -} -a:visited.underlined { - color:#0860a8; - text-decoration: underline; -} -/* ------------------------------------------------- */ -/* Paragraph styles */ -.shortdesc { - font-size: inherit; - /*font-size: 12pt;*/ - /*font-style: italic;*/ - padding-left: inherit; - line-height : 16pt; - margin-top: 0px; - margin-bottom: 0.5em; -} -p { - font-size: inherit; - margin-left:0px; - /*margin-left:30px; */ - /*line-height:120%;*/ - line-height:150%; - margin-top:0; - /*margin-bottom:5pt;*/ - margin-bottom:10px; -} -.p { - font-size:inherit; - margin-left:0px; - /*margin-left:30px; */ -/* line-height:130%; */ - line-height:170%; - margin-top:0; - margin-bottom:5pt; - padding-left:0pt; -} - -/* ------------------------------------------------- */ -/* Table styles */ -table { - margin-bottom:5pt; - border-collapse:collapse; - margin-left:0px; - /*margin-left:30px;*/ - margin-top:0.3em; - font-size:10pt; -} -tr { - vertical-align:top; -} -th, th h3{ - padding:4px; - text-align:left; - background-color: #555555; - font-weight:bold; - margin-top:0; - margin-bottom:0; - color: #FFFFFF; - font-size:11pt; -} -th { - border:1px #bababa solid; - /*padding:0;*/ - padding-top: 0px; - padding-bottom: 0px; - padding-right: 3px; - padding-left: 3px; -} - -td { - border: 1px #bababa solid; -/* border:1px #ff9900 solid; */ - vertical-align:top; - font-size:inherit; - margin-bottom:0; -} -td, td p{ - margin-top:0; - margin-left:0; - /*padding: 5px; */ - text-align:left; - font-size:inherit; - line-height: 120%; -/* line-height:130%;*/ -} -td p { - margin-bottom:0; - padding-top: 5px; - padding-bottom: 5px; - padding-right: 5px; - padding-left: 1px; -} -.noborder { - border:0px none; -} -.noborder1stcol { - border:0px none; - padding-left: 0pt; -} -td ol { - font-size:inherit; - margin-left:28px; -} -td ul { - font-size:inherit; - margin-left:24px; -} -.DefListTbl { - width: 90%; - margin-left: -3pt; -} -.syntaxdiagramtbl { - margin-left: -3pt; -} -.sdtbl { -} -.sdrow { -} -.sdtblp { - border:0px none; - font-size:inherit; - line-height: 120%; - margin-bottom:0; - padding-bottom: 0px; - padding-top: 5px; - padding-left: 0px; - padding-right: 5px; - vertical-align:top; -} - -.idepara { - border:0px none; - font-size:inherit; - line-height: 120%; - margin-bottom:0; - padding-bottom: 0px; - padding-top: 5px; - padding-left: 0px; - padding-right: 5px; - vertical-align:top; -} -.ide_para { - border:0px none; - font-size:inherit; - line-height: 120%; - margin-bottom:0; - padding-bottom: 0px; - padding-top: 5px; - padding-left: 0px; - padding-right: 5px; - vertical-align:top; -} -/* ------------------------------------------------- */ -/* Note styles */ -div.Note{ - margin-top:0px; - margin-left:15px; - margin-bottom:10px; - padding-left:10px; - padding-right:5px; - padding-bottom:5px; - - background-color: #E2E7EB; - max-width:600px; - box-shadow:2px 3px 3px 1px #CCCCCC; -} -dd div.Note { - margin-top:10px; -} - -h3.NoteTipHead { - color: #0860a8; - padding-top: 5px; - text-transform: uppercase; -} -h3.NoteTipHead img { - vertical-align: middle; -} -P.Note { - /*margin-top:0; - margin-left:25px; - margin-bottom:0pt;*/ - margin-top:0; - margin-left:15px; - padding-left:10px; - padding-right:5px; - padding-bottom:5px; - margin-bottom:0pt; - background-color: #E2E7EB; - max-width:600px; - -} - -/* ------------------------------------------------- */ -blockquote { - margin-top:0; - margin-bottom:0; -} -HR { - /*color:#ff9900; */ - color: #0860A8; - border:0; - background:#ff9900; - height:1px; - margin-left:0; -} -/* ------------------------------------------------- */ -/* List styles */ -.simple { - list-style: none; -} -ul { - /*margin-left: 24px; */ - margin-bottom: 1em; - /*padding-left:24px; */ - font-size: inherit; - line-height: 100%; - /*line-height:130%;*/ - list-style-image:url(); - margin-top: 0px; - -} -ol { - font-size:inherit; - line-height: 100%; - /*line-height:130%; */ - list-style-type:decimal; - /*margin-left:24px; */ - margin-bottom:1em; - margin-top:0px; - /*padding-left:30px; */ -} -ol.num { - font-size:inherit; - line-height: 100%; - /*line-height:130%; */ - list-style-type: decimal; - /*margin-left:24px; */ - margin-bottom:1em; - margin-top:0px; - /*padding-left:30px; */ -} -ol.abc { - font-size:inherit; - line-height: 100%; - /*line-height:130%; */ - list-style-type: lower-alpha; -/* list-style-type: upper-alpha;*/ - /*margin-left:24px; */ - margin-bottom:1em; - margin-top:0px; - /*padding-left:30px; */ -} -ol.ABC { - font-size:inherit; - line-height: 100%; - /*line-height:130%; */ - list-style-type: upper-alpha; - /*margin-left:24px; */ - margin-bottom:1em; - margin-top:0px; - /*padding-left:30px; */ -} -ol.roman { - font-size:inherit; - line-height: 100%; - /*line-height:130%; */ - list-style-type: lower-roman; - /*margin-left:24px; */ - margin-bottom:1em; - margin-top:0px; - /*padding-left:30px; */ -} -ol.Roman { - font-size:inherit; - line-height: 100%; - /*line-height:130%; */ - list-style-type: upper-roman; - /*margin-left:24px; */ - margin-bottom:1em; - margin-top:0px; - /*padding-left:30px; */ -} -ol ol { - /*margin-left:0px; */ - margin-left:24px; - list-style:lower-alpha; - margin-bottom:0em; - font-size:inherit; -} -ul ol { - /*margin-left:0px; */ - margin-left:24px; - list-style-image:url(); - list-style-type:decimal; - margin-bottom:0em; - font-size:inherit; -} -ul ul { - font-size:inherit; - margin-bottom:0px; - /*margin-left:0px; */ - margin-left:18px; - /*list-style-image:url(); - list-style:circle;*/ -} -/*ul li p, ol ul li p, ol ul li { -}*/ -ul ul li p { - list-style: url(); -} - -ol ul { - font-size:inherit; - margin-bottom:0px; - margin-left:18px; - /*list-style:circle; */ -} -.dash { - list-style: url("../Resources/ndash.gif"); -} -.dashpara { - margin-left:10pt; -} -dd ul, dd p ul { - list-style: url(); - /*margin-left: 12pt;*/ -} -dd ul { - margin-left:16px; - font-size:inherit; -} -dd ol { - margin-left:24px; - font-size:inherit; -} -/*ul li ul li, ul li p ul li { - list-style-image:url("Resources/ndash.gif"); */ - /*list-style: url();*/ -/*}*/ -/*ul li ul li p, ul li p ul li p { - list-style-image:url("Resources/ndash.gif"); */ - /*list-style: url();*/ -/*}*/ -li { - font-size:inherit; - line-height:130%; - margin-top:0px; -} -li p, ol p, ul p { - margin-bottom:0.2em; - margin-top:0.2em; - margin-left:0; - padding-left:0; - font-size:inherit; -} -li table, td table, dd table { - margin-left:0; -} -indent li p { - margin-bottom:0.2em; - margin-top:0.2em; - margin-left:-2em; -} -P.Preformatted, pre { - background-color:#eeeeee; - font-size:inherit; - font-family:"Courier New", Courier, monospace; - line-height: 110%; - margin-bottom:0; - margin-left:0px; - /*margin-left:30px;*/ - margin-top:0; - x-text-tab-stops:repeat 1in; -} - -td P.Preformatted, pre { - background-color:#eeeeee; - font-size:10pt; - /*font-size:inherit; */ - font-family:"Courier New", Courier, monospace; - /*line-height:90%;*/ // reduced line height by 50%. - margin-bottom:0; - margin-left:0px; // reduced the left margin for the this new pseudo-class. - margin-top:0; - x-text-tab-stops:repeat 1in; -} - -div.nobullet { - margin-left:10pt; - } -/*p.nobullet { - margin-bottom:0.2em; - margin-top:0.2em; - padding-left:0; - font-size:inherit; - background-color: red; -}*/ - -ul.ullinks { - margin-left: 0px; - margin-bottom: 1em; - /*padding-left:24px; */ - font-size: inherit; - line-height: 100%; - /*line-height:130%;*/ - /*list-style-image:url(); */ - margin-top: 0px; - margin-left: 16px; -} -/*.ulchildlink { - list-style: url(); -}*/ - -*/ -/* ------------------------------------------------- */ -/* Definition list */ -dl { - font-size:inherit; - margin-bottom:0px; - margin-left:0px; - margin-top:0px; -} -dt { -/* font-weight:bold; */ - margin-left:0em; - margin-top:0em; - margin-bottom:0em; - width:100px; -} -.dlterm { - /*font-weight:bold; */ - margin-left:0em; - margin-top:0em; - margin-bottom:0em; - width:100px; -} -dd { - font-size:inherit; - margin-left:0px; - position:relative; - top:-13pt; - left:110px; - width:70%; - line-height:14pt; - margin-top:0em; - margin-bottom:-10pt; -} -/*.biblio { - color: blue; -}*/ -dd.biblio { - /*color: blue;*/ - font-size:inherit; - margin-left:0px; - position:relative; - top:-14pt; - left:140px; - width:60%; - line-height:14pt; - margin-top:0em; - margin-bottom:0em; -} -.DefListTbl { - width: 90%; -} -table.argTbl { - width: 75%; -/* padding-left:30px; - margin-left:24px; */ -} -.dlsyntax { - /*margin-left:24px;*/ - margin-left:0px; -/* margin-bottom:1em; */ - /*padding-left:5px;*/ - padding-left:0px; -/* padding-left:30px; */ - font-size:inherit; - margin-top:-1px; - line-height:150%; -} -.dtsyntax { - margin-bottom:-1.125em; - margin-left:0em; - margin-top:0em; - width:100px; } -.ddsyntax { - font-size:inherit; - margin-left:0px; - position:relative; - top:-4pt; - left:110px; - width:70%; - line-height:14pt; - margin-bottom:-1em; -} -.dlsyntaxpara { -/* margin-left:24px; */ - margin-left:0px; - margin-bottom:1em; - /*padding-left:30px; */ - font-size:inherit; - /*margin-top:-1px; */ - /*margin-top:1em; */ - line-height:150%; -} -.syntaxnote { - margin-left:0px; - /*margin-left:30px;*/ - /*margin-bottom:1em; */ - padding-left:0px; - font-size:inherit; - margin-top:-5px; - line-height:150%; - } -.syntaxnote-orig { - margin-left:135px; - margin-bottom:1em; - padding-left:30px; - font-size:inherit; - margin-top:-1px; - line-height:150%; - } -/* "dl" style for ""ReturnValues" */ -.dlretval { - margin-left:24px; - margin-bottom:2em; - padding-left:30px; - font-size:inherit; - margin-top:-1px; - line-height:150%; - width: 90%; -} -/* "dt" style for ""ReturnValues" */ -.dtretval { - margin-left:0em; - margin-top:0em; - margin-bottom:-1.25em; - width:400px; -} -/* "dd" style for ""ReturnValues" */ -.ddretval { - /*color: blue;*/ - font-size:inherit; - margin-left:0px; - position:relative; - top:-4pt; - left:300px; -/* width:60%;*/ -/* line-height:14pt;*/ - margin-bottom:0; -/* margin-bottom:-1em;*/ -} -dd p { - margin-bottom:0em; - margin-top:0em; - margin-left:0; - padding-left:0; - font-size:inherit; -} -dd dl { - margin-left:0px; -} -/* ------------------------------------------------- */ -/* Inline Styles */ -SPAN.Big { - font-weight:bold; - font-size:105%; -} -SPAN.Code, .Code { - font-family:"Courier New", Courier, monospace; -} -.code { - background-color: #F5F5F5; - font-family: "Courier New" , Courier, monospace; - font-size: 10pt; - line-height: 118%; - margin-top:0.0em; - margin-bottom:0.0em; - /*padding-left:30px; */ - padding-left:0px; - white-space: pre; -} -code { - background-color: #F5F5F5; - font-family:"Courier New" , Courier, monospace; - font-size: 10pt; - line-height: 118%; - margin-top:0.0em; - margin-bottom:0.0em; - /*padding-left:30px; */ - padding-left:0px; - white-space: pre; -} -strong { - font-size: inherit; - } -sup, sub { vertical-align: 0; - position: relative; } - -sub{ - top: 0.8ex; -} -sup{ - bottom: 1ex; -} -/*sub { - font-family:Arial, Symbol, monospace; - font-size: 80%; - vertical-align: bottom; - } -sup { - font-family:Arial, Symbol, monospace; - font-size: 80%; - vertical-align: top; - }*/ -tt { - font-family: "Courier New" , Courier, monospace; -} -.b { - font-weight: bold; -} -.boldspan { - font-weight: bold; -} -.bgcolorgray { - background-color:#999999; - } -.bi { - font-style: italic; - font-weight: bold; -} -.bt { - font-family:times; - font-weight: bold; -} -.codeph { - font-family:"Courier New" , Courier, monospace; -} -.delim { - font-family:"Courier New" , Courier, monospace; -} -.eq { - margin-bottom:1em; - /*margin-left:30px; */ - } -.eqsymbol { - /*font-family:"Courier New" , Courier, monospace; */ - /*font-family:Tahoma, sans-serif;*/ - font-family:'Times New Roman', sans-serif; - font-size: 12pt; -} - - } -.imagecenter { - text-align: center; -} -.tfootnote { - font-size:8pt; -} -.italic { - font-style: italic; -} -.keyword { - font-family:"Courier New" , Courier, monospace; - font-weight: normal; -} -.keywordb { - font-family:"Courier New" , Courier, monospace; - font-weight: bold; -} -.keywordtt { - font-family:"Courier New" , Courier, monospace; - font-weight: normal; -} -.keywordbt { - font-family:"Courier New" , Courier, monospace; - font-weight: bold; -} -.keywordit { - font-family:"Courier New" , Courier, monospace; - font-style: italic; - font-weight: inherit; -} -.keywordbi { - font-family:"Courier New" , Courier, monospace; - font-weight: bold; - font-style: italic; -} -.keywordn { - font-family:"Courier New" , Courier, monospace; - font-style: normal; - font-weight: normal; -} -h1 .keyword, h2 .keyword, h3 .keyword { - font-family:"Courier New" , Courier, monospace; - font-weight: bold; -} -.kwd { - font-family:"Courier New" , Courier, monospace; -} -.option { - font-family:"Courier New" , Courier, monospace; -} -.optionb { - font-family:"Courier New" , Courier, monospace; - font-weight: bold; -} -.optiontt { - font-family:"Courier New" , Courier, monospace; - font-weight: normal; -} -.optionbt { - font-family:"Courier New" , Courier, monospace; - font-weight: bold; -} -.optionit { - font-family:"Courier New" , Courier, monospace; - font-style: italic; - font-weight: inherit; -} -.optionbi { - font-family:"Courier New" , Courier, monospace; - font-weight: bold; - font-style: italic; -} -.optionn { - font-family:"Courier New" , Courier, monospace; - font-style: normal; - font-weight: normal; -} -.oper { - font-family:"Courier New" , Courier, monospace; -} -.parmname { - font-style: italic; - font-family:"Courier New" , Courier, monospace; - font-weight: normal; -} -.parmnameb { - font-family:"Courier New" , Courier, monospace; - font-style: italic; - font-weight: bold; -} -.parmnamett { - font-family:"Courier New" , Courier, monospace; - font-style: normal; - font-weight: normal; -} -.parmnamebt { - font-family:"Courier New" , Courier, monospace; - font-style: normal; - font-weight: bold; -} -.parmnamen { - font-family:"Courier New" , Courier, monospace; - font-style: normal; - font-weight: normal; -} -.sep { - font-family:"Courier New" , Courier, monospace; -} -.tenpt { - font-size:8pt; - } -.tt { - font-family:"Courier New" , Courier, monospace; -} -.var { - font-style: italic; - font-family:"Courier New" , Courier, monospace; -} -.equation { - font-style: italic; - font-family:"Times New Roman" , monospace; -} -.varname { - font-style: italic; - font-family:"Courier New" , monospace; -} -.varnameb { - font-family:"Courier New" , monospace; - font-style: italic; - font-weight: bold; -} -.varnamebo { - font-family:"Courier New" , monospace; - font-style: italic; - font-weight: bold; - text-decoration: overline -} -.varnamebt { - font-family:"Courier New" , monospace; - font-style: normal; - font-weight: bold; -} -.varnamebu { - font-family:"Courier New" , monospace; - font-style: italic; - font-weight: bold; - text-decoration: underline -} -.varnamett { - font-family:"Courier New" , monospace; - font-style: normal; - font-weight: normal; -} - -.varnamen { - font-family:"Courier New" , monospace; - font-style: normal; - font-weight: normal; -} -.overline { - text-decoration: overline -} -.underline { - text-decoration: underline -} -.filepath { - font-style: normal; /* MKL */ - /* font-style: italic;*/ /* Compiler */ - font-family:"Courier New" , Courier, monospace; -} - -/*.uicontrol { - font-style: italic; - font-family:"Courier New" , Courier, monospace; -}*/ -/*.Fortran95 {*/ -.NonStdFortran { - /*color: teal;*/ - /*color: #007783;*/ - color: green; -} - -.h3titleblue { - color: #0860a8; - font-weight: lighter; - margin-top: 5pt; - margin-bottom: 0; - font-size: 13pt; -} - -.Context_StepsIntro { - font-weight: bold; -} - -.docfeedback { - margin-top: 15px; - margin-left: 0pt; - margin-bottom: 0px; - border-top: 1px solid #cccccc; - font-weight: bold; -} - -.noBgrnd { - background-image: none; -} -.dropPara { - float: left; -} - - -.RevUpdate { - /*color: red; */ - background-color: #FFFF99; - font-weight: normal; - line-height:120%; -} \ No newline at end of file diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/main/Benefits.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/main/Benefits.htm deleted file mode 100644 index f8bf4f774..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/main/Benefits.htm +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - - - - - - - -Intel® Threading Building Blocks Benefits - - - - - - - - - - - - - - -

Intel® Threading Building Blocks Benefits

- - -
-

Intel® Threading Building Blocks (Intel® TBB) is a library that helps - you leverage multi-core performance without having to be a threading expert. - Typically you can improve performance for multi-core processors by implementing - the key points explained in the early sections of the User Guide. As your - expertise grows, you may want to dive into more complex subjects that are - covered in advanced sections. -

- -

There are a variety of approaches to parallel programming, ranging from - using platform-dependent threading primitives to exotic new languages. The - advantage of Intel® Threading Building Blocks is that it works at a higher - level than raw threads, yet does not require exotic languages or compilers. You - can use it with any compiler supporting ISO C++. The library differs from - typical threading packages in the following ways: -

- -
    -
  • -

    Intel® Threading Building Blocks enables you to specify - logical paralleism instead of threads. Most threading - packages require you to specify threads. Programming directly in terms of - threads can be tedious and lead to inefficient programs, because threads are - low-level, heavy constructs that are close to the hardware. Direct programming - with threads forces you to efficiently map logical tasks onto threads. In - contrast, the Intel® Threading Building Blocks run-time library automatically - maps logical parallelism onto threads in a way that makes efficient use of - processor resources. -

    - -
  • - -
  • -

    Intel® Threading Building Blocks targets - threading for performance. Most general-purpose - threading packages support many different kinds of threading, such as threading - for asynchronous events in graphical user interfaces. As a result, - general-purpose packages tend to be low-level tools that provide a foundation, - not a solution. Instead, Intel® Threading Building Blocks focuses on the - particular goal of parallelizing computationally intensive work, delivering - higher-level, simpler solutions. -

    - -
  • - -
  • -

    Intel® Threading Building Blocks is - compatible with other threading packages. Because the - library is not designed to address all threading problems, it can coexist - seamlessly with other threading packages. -

    - -
  • - -
  • -

    Intel® Threading Building Blocks emphasizes - scalable, data parallel programming. Breaking a program - up into separate functional blocks, and assigning a separate thread to each - block is a solution that typically does not scale well since typically the - number of functional blocks is fixed. In contrast, Intel® Threading Building - Blocks emphasizes - data-parallel programming, enabling multiple threads to work - on different parts of a collection. Data-parallel programming scales well to - larger numbers of processors by dividing the collection into smaller pieces. - With data-parallel programming, program performance increases as you add - processors. -

    - -
  • - -
  • -

    Intel® Threading Building Blocks relies on - generic programming. Traditional libraries specify - interfaces in terms of specific types or base classes. Instead, Intel® - Threading Building Blocks uses generic programming. The essence of generic - programming is writing the best possible algorithms with the fewest - constraints. The C++ Standard Template Library (STL) is a good example of - generic programming in which the interfaces are specified by - requirements on types. For example, C++ STL has a template - function - sort that sorts a sequence abstractly defined in - terms of iterators on the sequence. The requirements on the iterators are: -

    - -
      -
    • -

      Provide random access -

      - -
    • - -
    • -

      The expression - *i<*j is true if the item pointed to by - iterator - i should precede the item pointed to by iterator - - j, and false otherwise. -

      - -
    • - -
    • -

      The expression - swap(*i,*j) swaps two elements. -

      - -
    • - -
    - -
  • - -
- -

Specification in terms of requirements on types enables the template to - sort many different representations of sequences, such as vectors and deques. - Similarly, the Intel® Threading Building Blocks templates specify requirements - on types, not particular types, and thus adapt to different data - representations. Generic programming enables Intel® Threading Building Blocks - to deliver high performance algorithms with broad applicability. -

- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/main/Resources/back.GIF b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/main/Resources/back.GIF deleted file mode 100644 index 787eb7d75..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/main/Resources/back.GIF and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/main/Resources/forward.GIF b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/main/Resources/forward.GIF deleted file mode 100644 index 19cb7fb7e..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/main/Resources/forward.GIF and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/main/Resources/hpc_header.jpg b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/main/Resources/hpc_header.jpg deleted file mode 100644 index 6d6a53a36..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/main/Resources/hpc_header.jpg and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/main/Resources/sync.GIF b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/main/Resources/sync.GIF deleted file mode 100644 index da29078ab..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/main/Resources/sync.GIF and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/main/help_support.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/main/help_support.htm deleted file mode 100644 index 3cbf13ad8..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/main/help_support.htm +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - - - - - - - - -Getting Help and Support - - - - - - - - - - - - - - -

Getting Help and Support

- - -
-

The online version of the Intel® Threading Building - Blocks (Intel® TBB) documentation integrates into the Microsoft Visual Studio* - IDE help system. -

- -

Getting Help

- -

In the Visual Studio IDE, you can browse and search for topics in - different ways: -

- -
    -
  • Use - Help > Contents to browse through topics by - functional domains. -
  • - -
  • Use - Help > Index to access an index to all - topics. Either type the word you are looking for or scroll through the list. -
  • - -
  • Click - Help > Search to perform a full text - search. -
  • - -
- -

To navigate between topics, use the navigation buttons available in - the Document Explorer toolbar or from the topic pop-up menu: -

- -

-

    -
  • Click the Back - button to return to the - previously viewed topic. -
  • - -
  • Click the Forward - button to go to the following topic. -
  • - -
- -

- -

Accessing Help in Visual Studio* 2010 IDE -

- -

To access the Intel TBB documentation in Visual Studio* 2010 IDE: -

- -

-

    -
  1. Configure the IDE to use local help (once). To do this, go to - Help > Manage Help Settings and check - I want to use online help. -
  2. - -
  3. Use the - Help > View Help menu item to view a list of available help - collections and open the Intel TBB documentation. -
  4. - -
- -

- -

Using Intel Search Filters -

- -

With Visual Studio* 2008, you can include Intel documentation in all - search results by checking the 'Intel' search filter box for the - Language, - Technology, and - Content Type categories. You must check the Intel search box for - all three categories to include Intel documentation in your searches. - Unchecking all three Intel search boxes excludes Intel documentation from - search results. The Intel search filters work in combination with other search - options for each category. -

- -

Locating Intel Topics -

- -

To display Intel documentation in Visual Studio 2008, select - Contents from the Visual Studio - Help menu. Then, select - Intel in the choices under - Filtered by. In navigating the Intel documentation, you may want - to know where the topic you are reading is located in the table of contents - (TOC). Click the Sync with Table of Contents - button on the Visual Studio toolbar to find where the - topic is located in the TOC. You can also use Sync with Table of Contents with - Intel topics in search results or with the context-sensitive help topics to - locate them in the Intel documentation TOC. -

- -
- -

Getting Technical Support

- -

If you did not register your Intel® software product during - installation, please do so now at the Intel® Software Development Products - Registration Center. Registration entitles you to free technical support, - product updates and upgrades for the duration of the support term. -

- -

For general information about Intel technical support, product - updates, user forums, FAQs, tips and tricks and other support questions, go to: - - http://www.intel.com/software/products/support/. -

- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/main/introducing.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/main/introducing.htm deleted file mode 100644 index b19e73ad3..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/main/introducing.htm +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - - - - - - - -Introducing Intel® Threading Building Blocks - - - - - - - - - - - - - - -

Introducing Intel® Threading Building Blocks

- - -
-

Intel® Threading Building Blocks (Intel® TBB) is a - library that supports scalable parallel programming using standard ISO C++ - code. It does not require special languages or compilers. It is designed to - promote scalable data parallel programming. Additionally, it fully supports - nested parallelism, so you can build larger parallel components from smaller - parallel components. To use the library, you specify tasks, not threads, and - let the library map tasks onto threads in an efficient manner. -

- -

Many of the library interfaces employ generic - programming, in which interfaces are defined by requirements on types and not - specific types. The C++ Standard Template Library (STL) is an example of - generic programming. Generic programming enables Intel® TBB to be flexible yet - efficient. The generic interfaces enable you to customize components to your - specific needs. -

- -

The net result is that Intel® TBB enables you to - specify parallelism far more conveniently than using raw threads, and at the - same time can improve performance. -

- -

- -

- - - - - - - - - - - - - - - - -
-

Optimization Notice -

- -
- Intel's compilers may or may not optimize to the same degree for non-Intel - microprocessors for optimizations that are not unique to Intel microprocessors. - These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other - optimizations. Intel does not guarantee the availability, functionality, or - effectiveness of any optimization on microprocessors not manufactured by Intel. - Microprocessor-dependent optimizations in this product are intended for use - with Intel microprocessors. Certain optimizations not specific to Intel - microarchitecture are reserved for Intel microprocessors. Please refer to the - applicable product User and Reference Guides for more information regarding the - specific instruction sets covered by this notice. -

Notice revision #20110804 -

- -
-
- -

- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/main/legal_information.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/main/legal_information.htm deleted file mode 100644 index 616613d9f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/main/legal_information.htm +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - - - - - -Legal Information - - - - - - - - - -

Legal Information

- -
-

INFORMATION IN THIS DOCUMENT IS PROVIDED IN - CONNECTION WITH INTEL® PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL - OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. - EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, - INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR - IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING - LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, - MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL - PROPERTY RIGHT. -

- -

A "Mission Critical Application" is any application - in which failure of the Intel Product could result, directly or indirectly, in - personal injury or death. SHOULD YOU PURCHASE OR USE INTEL'S PRODUCTS FOR ANY - SUCH MISSION CRITICAL APPLICATION, YOU SHALL INDEMNIFY AND HOLD INTEL AND ITS - SUBSIDIARIES, SUBCONTRACTORS AND AFFILIATES, AND THE DIRECTORS, OFFICERS, AND - EMPLOYEES OF EACH, HARMLESS AGAINST ALL CLAIMS COSTS, DAMAGES, AND EXPENSES AND - REASONABLE ATTORNEYS' FEES ARISING OUT OF, DIRECTLY OR INDIRECTLY, ANY CLAIM OF - PRODUCT LIABILITY, PERSONAL INJURY, OR DEATH ARISING IN ANY WAY OUT OF SUCH - MISSION CRITICAL APPLICATION, WHETHER OR NOT INTEL OR ITS SUBCONTRACTOR WAS - NEGLIGENT IN THE DESIGN, MANUFACTURE, OR WARNING OF THE INTEL PRODUCT OR ANY OF - ITS PARTS. -

- -

Intel may make changes to specifications and product - descriptions at any time, without notice. Designers must not rely on the - absence or characteristics of any features or instructions marked "reserved" or - "undefined." Intel reserves these for future definition and shall have no - responsibility whatsoever for conflicts or incompatibilities arising from - future changes to them. The information here is subject to change without - notice. Do not finalize a design with this information. -

- -

The products described in this document may contain - design defects or errors known as errata which may cause the product to deviate - from published specifications. Current characterized errata are available on - request. -

- -

Contact your local Intel sales office or your - distributor to obtain the latest specifications and before placing your product - order. -

- -

Copies of documents which have an order number and - are referenced in this document, or other Intel literature, may be obtained by - calling 1-800-548-4725, or go to: http://www.intel.com/design/literature.htm. -

- -

BlueMoon, BunnyPeople, Celeron, Celeron Inside, - Centrino, Centrino Inside, Cilk, Core Inside, E-GOLD, Flexpipe, i960, Intel, - the Intel logo, Intel AppUp, Intel Atom, Intel Atom Inside, Intel CoFluent, - Intel Core, Intel Inside, Intel Insider, the Intel Inside logo, Intel NetBurst, - Intel NetMerge, Intel NetStructure, Intel SingleDriver, Intel SpeedStep, Intel - Sponsors of Tomorrow., the Intel Sponsors of Tomorrow. logo, Intel StrataFlash, - Intel vPro, Intel Xeon Phi, Intel XScale, InTru, the InTru logo, the InTru - Inside logo, InTru soundmark, Itanium, Itanium Inside, MCS, MMX, Pentium, - Pentium Inside, Puma, skoool, the skoool logo, SMARTi, Sound Mark, Stay With - It, The Creators Project, The Journey Inside, Thunderbolt, Ultrabook, vPro - Inside, VTune, Xeon, Xeon Inside, X-GOLD, XMM, X-PMU and XPOSYS are trademarks - of Intel Corporation in the U.S. and/or other countries. -

- -

* Other names and brands may be claimed as the - property of others. -

- -

Microsoft, Windows, and the Windows logo are trademarks, or registered - trademarks of Microsoft Corporation in the United States and/or other - countries. -

- -

Copyright © 2005 - 2014, Intel Corporation. All - rights reserved. -

- -
- - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/main/notation.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/main/notation.htm deleted file mode 100644 index fac4b47b5..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/main/notation.htm +++ /dev/null @@ -1,397 +0,0 @@ - - - - - - - - - - - - - -Notational Conventions - - - - - - - - - - - - - - -

Notational Conventions

- - -
-

The following conventions may be used in this - document. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Convention -

- -
-

Explanation -

- -
-

Example -

- -
-

Italic -

- -
-

Used for introducing new terms, denotation - of terms, placeholders, or titles of manuals. -

- -
-

The filename consists of the - basename and the -
extension. -

- -

For more information, refer to the - Intel® Linker Manual. -

- -
-

Monospace - -

- -
-

Indicates directory paths and filenames, - commands and command line -

- -

options, function names, methods, classes, - data structures in body text, source code. -

- -
-

ippsapi.h - -

- -

\alt\include - -

- -

Use the - okCreateObjs() function to... -

- -

printf("hello, world\n"); - -

- -
-

Monospace - italic -

- -
-

Indicates source code placeholders. -

- -
-

blocked_range<Type> -

- -
-

Monospace - bold - -

- -
-

Emphasizes parts of source code. -

- -
-

x = ( h > 0 ? - sizeof(m) : 0xF ) + min; - -

- -
-

[ ] -

- -
-

Items enclosed in brackets are optional. -

- -
-

Fa[c] -

- -

Indicates - Fa or - Fac. -

- -
-

{ | } -

- -
-

Braces and vertical bars indicate the - choice of one item from a selection of two or more items. -

- -
-

X{K | W | P} -

- -

Indicates - XK, - XW, or - XP. -

- -
-

"[" "]" "{"
" }" "|" -

- -
-

Writing a metacharacter in quotation marks - negates the syntactical meaning stated above; -
the character is - taken as a literal. -

- -
-

"[" X "]" [ Y ] -

- -

Denotes the letter X enclosed in brackets, - optionally followed by the letter Y. -

- -
-

... -

- -
-

The ellipsis indicates that the previous - item can be repeated several times. -

- -
-

filename ... -

- -

Indicates that one or more filenames can be - specified. -

- -
-

,... -

- -
-

The ellipsis preceded by a comma indicates - that the previous item can be repeated several times, -
separated by - commas. -

- -
-

word ,... -

- -

Indicates that one or more words can be - specified. If more than one word is specified, the words are comma-separated. -

- -
-
- -
-

Class members are summarized by informal class - declarations that describe the class as it seems to clients, not how it is - actually implemented. For example, here is an informal declaration of class - Foo: -

- -
class Foo {
-public:
-	int x();
-	int y;
-	~Foo();
-};
-
-

The actual implementation might look like: -

- -
namespace internal {
-	class FooBase  {
-	protected:
-		int x();
-	};
-
-	class Foo_v3: protected FooBase {
-	private:
-		int internal_stuff;
-	public:
-		using FooBase::x;
-		int y;
-	};
-}
-
-typedef internal::Foo_v3 Foo;
-

The example shows two cases where the actual - implementation departs from the informal declaration: -

- -
    -
  • -

    Foo is actually a typedef to - Foo_v3. -

    - -
  • - -
  • -

    Method - x() is inherited from a protected base class. -

    - -
  • - -
  • -

    The destructor is an implicit method generated - by the compiler. -

    - -
  • - -
- -

The informal declarations are intended to show you - what you need to know to use the class without the distraction of irrelevant - clutter particular to the implementation. -

- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/main/title.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/main/title.htm deleted file mode 100644 index ff7cdbe11..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/main/title.htm +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - -Intel® Threading Building Blocks Documentation - - - - - - - - - -

-

Intel® Threading Building Blocks Documentation

- -
-

Document number: 327304-006US -

- -

Intel® Threading Building Blocks - 4.2 update 2 -

- -

Legal - Information -

- -

Start Here -

- -
- -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/06000005.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/06000005.png deleted file mode 100644 index 7dbbd2c3f..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/06000005.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/06000007.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/06000007.png deleted file mode 100644 index c1b00c1ff..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/06000007.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/06000008.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/06000008.png deleted file mode 100644 index 33775975b..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/06000008.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/06000009.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/06000009.png deleted file mode 100644 index 60e48f4a4..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/06000009.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/0600000A.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/0600000A.png deleted file mode 100644 index 5636ef308..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/0600000A.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/0600000B.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/0600000B.png deleted file mode 100644 index 6f0114e91..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/0600000B.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/0600000C.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/0600000C.png deleted file mode 100644 index 6f85ddb0d..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/0600000C.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/0600000D.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/0600000D.png deleted file mode 100644 index b33975b28..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/0600000D.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/0600000E.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/0600000E.png deleted file mode 100644 index 84b2ab63b..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/0600000E.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/0600000F.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/0600000F.png deleted file mode 100644 index 5b755637f..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/0600000F.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/08000006.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/08000006.png deleted file mode 100644 index abf06da3a..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/08000006.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/dep_graph.jpg b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/dep_graph.jpg deleted file mode 100644 index 818157e3d..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/dep_graph.jpg and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/flow-graph.jpg b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/flow-graph.jpg deleted file mode 100644 index e13291202..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/flow-graph.jpg and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/hpc_header.jpg b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/hpc_header.jpg deleted file mode 100644 index 6d6a53a36..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/hpc_header.jpg and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/message_flow_graph.jpg b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/message_flow_graph.jpg deleted file mode 100644 index 4a292ee62..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/message_flow_graph.jpg and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/non_consq_rng.jpg b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/non_consq_rng.jpg deleted file mode 100644 index 00eda94d5..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/non_consq_rng.jpg and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/parll_red.jpg b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/parll_red.jpg deleted file mode 100644 index b56689697..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/parll_red.jpg and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/parll_scan.jpg b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/parll_scan.jpg deleted file mode 100644 index 4195a84ba..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/parll_scan.jpg and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/reference-latest-19.jpg b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/reference-latest-19.jpg deleted file mode 100644 index 60684ad44..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/Resources/reference-latest-19.jpg and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms.htm deleted file mode 100644 index 461039e1e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms.htm +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - -Algorithms - - - - - - - - - - - - - - -

Algorithms

- - -
-

Most parallel algorithms provided by Intel® - Threading Building Blocks (Intel® TBB) are generic. They operate on all - types that model the necessary concepts. Parallel algorithms may be nested. For - example, the body of a parallel_for can invoke another parallel_for. -

- -

- Caution

-

When the body of an outer parallel algorithm invokes another parallel - algorithm, it may cause the outer body to be re-entered for a different - iteration of the outer algorithm. -

- -

For example, if the outer body holds a global lock while calling an - inner parallel algorithm, the body will deadlock if the re-entrant invocation - attempts to acquire the same global lock. This ill-formed example is a special - case of a general rule that code should not hold a lock while calling code - written by another author. -

- -
-
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_deterministic_reduce_func.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_deterministic_reduce_func.htm deleted file mode 100644 index 6632a3fa0..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_deterministic_reduce_func.htm +++ /dev/null @@ -1,190 +0,0 @@ - - - - - - - - - - - - - - - -parallel_deterministic_reduce Template Function - - - - - - - - - - - - - - -

parallel_deterministic_reduce Template - Function

- - -
-

Summary

- -

Computes reduction over a range, with deterministic - split/join behavior. -

- -
- -

Syntax

- -
template<typename Range, typename Value,
-           typename Func, typename Reduction>
-           Value parallel_deterministic_reduce( const Range& range,
-           const Value& identity, const Func& func,
-           const Reduction& reduction,
-           [, task_group_context& group] );
- 
-template<typename Range, typename Body>
-           void parallel_deterministic_reduce( const Range& range,
-           const Body& body
-           [, task_group_context& group] );
-
- -

Header

- -
#include "tbb/parallel_reduce.h"
-
- -

Description

- -

The - parallel_deterministic_reduce template - is very similar to the - parallel_reduce - template. It also has the functional and imperative forms and has similar - requirements for Func and Reduction. -

- -

Unlike - parallel_reduce, - parallel_deterministic_reduce has - deterministic behavior with regard to splits of both Body and Range and joins - of the bodies. For the functional form, Func is applied to a deterministic set - of Ranges, and Reduction merges partial results in a deterministic order. To - achieve that, - parallel_deterministic_reduce always - uses a - simple_partitioner - because other partitioners react to random work stealing behavior. Therefore, - the template declaration does not have a partitioner argument. -

- -

parallel_deterministic_reduce always - invokes the Body splitting constructor for each range split. -

- -
Execution of - parallel_deterministic_reduce over - blocked_range<int>(0,20,5) -

-
- -

As a result, - parallel_deterministic_reduce - recursively splits a range until it is no longer divisible, and creates a new - body (by calling Body splitting constructor) for each new subrange. Like - parallel_reduce, for - each body split the method - join is invoked in order to merge the results from the - bodies. The figure above shows the execution of - parallel_deterministic_reduce over a - sample range, with the slash marks (/) denoting where new instances of the body - were created. -

- -

Therefore for given arguments, - parallel_ - deterministic_reduce executes the same set of split and join - operations no matter how many threads participate in execution and how tasks - are mapped to the threads. If the user-provided functions are also - deterministic (i.e. different runs with the same input result in the same - output), then multiple calls to - parallel_deterministic_reduce will - produce the same result. Note however that the result might differ from that - obtained with an equivalent sequential (linear) algorithm. -

- -

- Caution

-

Since - simple_partitioner - is always used, be careful to specify an appropriate grainsize. -

- -
-
- -

Complexity

- -

If the range and body take O(1) space, and the - range splits into nearly equal pieces, then the space complexity is O(P - log(N)), where N is the size of the range and P is the number of threads. -

- -
- -

Example

- -

The example from - parallel_reduce - section can be easily modified to use - parallel_deterministic_reduce. It is - sufficient torename - parallel_reduce to - parallel_deterministic_reduce; a - partitioner, if any, should be removed to prevent compilation error. A grain - size may need to be specified for blocked_range if performance suffered. -

- -
#include <numeric>
-#include <functional>
-#include "tbb/parallel_reduce.h"
-#include "tbb/blocked_range.h"
-using namespace tbb;
-
-float ParallelSum( float array[], size_t n ) {
-    size_t grain_size = 1000;
-    return parallel_deterministic_reduce( 
-        blocked_range<float*>( array, array+n, grain_size[ ),
-        0.f,
-        [](const blocked_range<float*>& r, float value)->float {
-            return std::accumulate(r.begin(),r.end(),value);
-        },
-        std::plus<float>());
-}
-
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_do_func.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_do_func.htm deleted file mode 100644 index 8e8aa26d3..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_do_func.htm +++ /dev/null @@ -1,244 +0,0 @@ - - - - - - - - - - - - - - -parallel_do Template Function - - - - - - - - - - - - - - -

parallel_do Template Function

- - -
-

Summary

- Template function that processes work items in - parallel. -
- -

Header

- -

-

 #include "tbb/parallel_do.h"
-

- -
- -

Syntax

- -
template<typename InputIterator, typename Body> 
-void parallel_do( InputIterator first, InputIterator last,
-                 Body body[, task_group_context& group] );
-
-
- -

Description

- -

A - parallel_do(first,last,body) applies a function - object body over the half-open interval [first,last). Items may be - processed in parallel. Additional work items can be added by body if it has a - second argument of type parallel_do_feeder. The function - terminates when body(x) returns for all items x that were in - the input sequence or added to it by method - parallel_do_feeder::add. -

- -

The requirements for input iterators are specified in Section 24.1 of - the ISO C++ standard. The table below shows the requirements on type Body. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
parallel_do Requirements for Body B and its - Argument Type T
-

Pseudo-Signature -

- -
-

Semantics -

- -
-
B::operator()(
-cv-qualifiers T& item,
- parallel_do_feeder<T>& feeder
- ) const
-OR
- B::operator()(cv-qualifiers T&
-item ) const
- 
-
-

Process item. Template parallel_do may - concurrently invoke operator() for the same - this but different - item. -

- -

The signature with feeder permits additional work items to be - added. -

- -
-

T( const T& ) - -

- -
-

Copy a work item. -

- -
-

~T::T() -

- -
-

Destroy a work item. -

- -
-
- -

For example, a unary function object, as defined in Section 20.3 of - the C++ standard, models the requirements for B. -

- -

- Caution

-

Defining both the one-argument and two-argument forms of - operator() is not permitted. -

- -
-

- Note

-

The parallelism in - parallel_do is not scalable if all of the items come - from an input stream that does not have random access. To achieve scaling, do - one of the following: -

- -
    -
  • -

    Use random access iterators to specify the input stream. -

    - -
  • - -
  • -

    Design your algorithm such that the body often adds more than - one piece of work. -

    - -
  • - -
  • -

    Use parallel_for instead. -

    - -
  • - -
- -
-

To achieve speedup, the grainsize of - B::operator() needs to be on the order of at least - ~100,000 clock cycles. Otherwise, the internal overheads of - parallel_do swamp the useful work. -

- -

The algorithm can be passed a - task_group_context object so that its tasks are - executed in this group. By default the algorithm is executed in a bound group - of its own. -

- -

Example -

- -

The following code sketches a body with the - two-argument form of - operator(). -

- -
struct MyBody {
-    void operator()(item_t item, 
-                    parallel_do_feeder<item_t>& feeder ) {
-        for each new piece of work implied by item do {
-            item_t new_item = initializer;
-            feeder.add(new_item);
-        }
-    } 
-};
-
-
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_do_func/parallel_do_feeder_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_do_func/parallel_do_feeder_cls.htm deleted file mode 100644 index a9b2fe7a6..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_do_func/parallel_do_feeder_cls.htm +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - -parallel_do_feeder<item> class - - - - - - - - - -

parallel_do_feeder<item> class

- -
-

Summary

- Inlet into which additional work items for a - parallel_do can be fed. -
- -

Header

- -
#include "tbb/parallel_do.h" 
-
- -

Syntax

- -
template<typename Item> 
-class parallel_do_feeder;
-
-
- -

Description

- -

A - parallel_do_feeder enables the body of a - parallel_do to add more work items. -

- -

Only class parallel_do can create or destroy a - parallel_do_feeder. The only operation other code can - perform on a - parallel_do_feeder is to invoke method - parallel_do_feeder::add. -

- -
- -

Members

- -
namespace tbb {
-    template<typename Item>
-    struct parallel_do_feeder {
-        void add( const Item& item );
-    };
-}
-
-
- -

- -
The following table provides additional information on the member - of this template class. - - - - - - - - - - - - - - - - - - - -
Member - Description -
void add( const Item& item - )() - -

Requirements: Must be called from - a call to - body .operator() created by - parallel_do. Otherwise, the termination - semantics of method - operator() are undefined. -

- -

- Effects: Adds item to collection of work items to be - processed. -

- -
-
- - -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_for_each_func.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_for_each_func.htm deleted file mode 100644 index 8e38fddec..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_for_each_func.htm +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - -parallel_for_each Template Function - - - - - - - - - - - - - - -

parallel_for_each Template Function

- - - -
-

Summary

Parallel variant of std::for_each.
- -

Header

-
#include "tbb/parallel_for_each.h"
-
- -

Syntax

-
template<typename InputIterator, typename Func> 
-void parallel_for_each (InputIterator first, InputIterator last, 
-                        const Func& f
-                        [, task_group_context& group]);
-
- -

Description

A parallel_for_each(first,last,f)applies f to - the result of dereferencing every iterator in the range [first,last), possibly in - parallel. It is provided for PPL compatibility and equivalent to - parallel_do(first,last,f) without "feeder" functionality.

-

If the group argument is specified, the algorithm's tasks are executed in this - group. By default the algorithm is executed in a bound group of its own.

-
- - -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_for_func.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_for_func.htm deleted file mode 100644 index 9530e698b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_for_func.htm +++ /dev/null @@ -1,296 +0,0 @@ - - - - - - - - - - - - - - - -parallel_for Template Function - - - - - - - - - - - - - - -

parallel_for Template Function

- - -
-

Summary

- -

Template function that performs parallel iteration over a range of values.

- -
- - -

Header

- -
 #include "tbb/parallel_for.h"
-
- -

Syntax

- -
template<typename Index, typename Func>
-Func parallel_for( Index first, Index_type last, const Func& f
-                   [, partitioner[, task_group_context& group]] );
-
-template<typename Index, typename Func>
-Func parallel_for( Index first, Index_type last, 
-                   Index step, const Func& f
-                   [, partitioner[, task_group_context& group]] );
-
-template<typename Range, typename Body> 
-void parallel_for( const Range& range, const Body& body, 
-                   [, partitioner[, task_group_context& group]] );
-
- -

Description

-

A parallel_for(first,last,step,f) represents parallel execution of the - loop:

-
for( auto i=first; i<last; i+=step ) f(i);

The index type must be an integral type. The loop must not wrap around. The step value must be - positive. If omitted, it is implicitly 1. There is no guarantee that the iterations - run in parallel. Deadlock may occur if a lesser iteration waits for a greater - iteration. The partitioning strategy is - auto_partitioner when the parameter is not specified.

-

A parallel_for(range,body,partitioner) provides a more general form of parallel - iteration. It represents parallel execution of body over each value - in range. The optional partitioner specifies a partitioning - strategy. Type Range must model the Range concept . The body must - model the requirements in the following table.

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Requirements for parallel_for Body
-

Pseudo-Signature -

- -
-

Semantics -

- -
-

Body::Body( const Body& ) -

- -
-

Copy constructor. -

- -
-

Body::~Body() -

- -
-

Destructor. -

- -
-

void Body::operator()( Range& range ) const -

- -
-

Apply body to range.

- - -
-
- -

A parallel_for recursively splits the range into subranges to the point such - that is_divisible() is false for each subrange, and makes copies of - the body for each of these subranges. For each such body/subrange pair, it invokes - Body::operator(). The invocations are interleaved with the - recursive splitting, in order to minimize space overhead and efficiently use cache.

-

Some of the copies of the range and body may be destroyed after parallel_for - returns. This late destruction is not an issue in typical usage, but is something to - be aware of when looking at execution traces or writing range or body objects with - complex side effects.

-

When worker threads are available, parallel_for executes iterations is - non-deterministic order. Do not rely upon any particular execution order for - correctness. However, for efficiency, do expect parallel_for to - tend towards operating on consecutive runs of values.

-

When no worker threads are available, parallel_for executes iterations from left - to right in the following sense. Imagine drawing a binary tree that represents the - recursive splitting. Each non-leaf node represents splitting a subrange r by - invoking the splitting constructor Range(r,split()). The left child - represents the updated value of r. The right child represents the - newly constructed object. Each leaf in the tree represents an indivisible subrange. - The method Body::operator() is invoked on each leaf subrange, from - left to right.

-

All overloads can be passed a task_group_context object so that the algorithm’s - tasks are executed in this group. By default the algorithm is executed in a bound - group of its own.

-

Complexity

-

If the range and body take O(1) space, and the range splits into nearly equal pieces, then the space complexity is O(P log(N)), where N is the size of the range and P is the number of threads.

- -
- - -

Example

- -

This example defines a routine ParallelAverage that sets - output[i] to the average of input[i-1], - input[i], and input[i+1], for 1 <= i< n.

-

#include "tbb/parallel_for.h"
-#include "tbb/blocked_range.h"
-
-using namespace tbb;
-
-struct Average {
-    const float* input;
-    float* output;
-    void operator()( const blocked_range<int>& range ) const {
-        for( int i=range.begin(); i!=range.end(); ++i )
-            output[i] = (input[i-1]+input[i]+input[i+1])*(1/3.f);
-    }
-};
-
-// Note: Reads input[0..n] and writes output[1..n-1]. 
-void ParallelAverage( float* output, const float* input, size_t n ) {
-    Average avg;
-    avg.input = input;
-    avg.output = output;
-    parallel_for( blocked_range<int>( 1, n ), avg );
-    }

- -
- -

Example

- -

This example is more complex and requires familiarity with STL. It shows the power of - parallel_for beyond flat iteration spaces. The code performs a parallel - merge of two sorted sequences. It works for any sequence with a random-access - iterator. The algorithm (Akl 1987) works recursively as follows:

-
  1. If the sequences are too short for effective use of parallelism, do a sequential merge. Otherwise perform steps 2-6.
  2. -
  3. Swap the sequences if necessary, so that the first sequence [begin1,end1) is at least as long as the second sequence [begin2,end2).
  4. -
  5. Set m1 to the middle position in [begin1,end1). Call the item at that location key.
  6. -
  7. Set m2 to where key would fall in [begin2,end2).
  8. -
  9. Merge [begin1,m1) and [begin2,m2) to create the first part of the merged sequence.
  10. -
  11. Merge [m1,end1) and [m2,end2) to create the second part of the merged sequence.
  12. -
-

The Intel® Threading Building Blocks implementation of this algorithm uses the range object to - perform most of the steps. Predicate is_divisible performs the test - in step 1, and step 2. The splitting constructor does steps 3-6. The body object - does the sequential merges.

-

#include "tbb/parallel_for.h"
-#include <algorithm>
-
-using namespace tbb;
-
-template<typename Iterator>
-struct ParallelMergeRange {
-    static size_t grainsize;
-    Iterator begin1, end1; // [begin1,end1) is 1st sequence to be merged
-    Iterator begin2, end2; // [begin2,end2) is 2nd sequence to be merged
-    Iterator out;               // where to put merged sequence    
-    bool empty()   const {return (end1-begin1)+(end2-begin2)==0;}
-    bool is_divisible() const {
-        return std::min( end1-begin1, end2-begin2 ) > grainsize;
-    }
-    ParallelMergeRange( ParallelMergeRange& r, split ) {
-        if( r.end1-r.begin1 < r.end2-r.begin2 ) {
-            std::swap(r.begin1,r.begin2);
-            std::swap(r.end1,r.end2);
-        }
-        Iterator m1 = r.begin1 + (r.end1-r.begin1)/2;
-        Iterator m2 = std::lower_bound( r.begin2, r.end2, *m1 );
-        begin1 = m1;
-        begin2 = m2;
-        end1 = r.end1;
-        end2 = r.end2;
-        out = r.out + (m1-r.begin1) + (m2-r.begin2);
-        r.end1 = m1;
-        r.end2 = m2;
-    }
-    ParallelMergeRange( Iterator begin1_, Iterator end1_, 
-                        Iterator begin2_, Iterator end2_, 
-                        Iterator out_ ) :
-        begin1(begin1_), end1(end1_), 
-        begin2(begin2_), end2(end2_), out(out_)
-    {}
-};
-
-template<typename Iterator>
-size_t ParallelMergeRange<Iterator>::grainsize = 1000;
-
-template<typename Iterator>
-struct ParallelMergeBody {
-    void operator()( ParallelMergeRange<Iterator>& r ) const {
-        std::merge( r.begin1, r.end1, r.begin2, r.end2, r.out );
-    }
-};
-
-template<typename Iterator>
-void ParallelMerge( Iterator begin1, Iterator end1, Iterator begin2, Iterator end2, Iterator out ) {
-    parallel_for(     
-       ParallelMergeRange<Iterator>(begin1,end1,begin2,end2,out),
-       ParallelMergeBody<Iterator>(),
-       simple_partitioner() 
-    );
-}
-

-

Because the algorithm moves many locations, it tends to be bandwidth limited. Speedup varies, depending upon the system.

-
-
- - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_invoke_func.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_invoke_func.htm deleted file mode 100644 index 29e83a022..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_invoke_func.htm +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - - - - - - - -parallel_invoke Template Function - - - - - - - - - - - - - - -

parallel_invoke Template Function

- - -
-

Summary

Template function that evaluates several functions in parallel.
- -

Header

-
#include "tbb/parallel_invoke.h"
-
- -

Syntax

-
template<typename Func0, typename Func1>
-void parallel_invoke(const Func0& f0, const Func1& f1);
-
-template<typename Func0, typename Func1, typename Func2>
-void parallel_invoke(const Func0& f0, const Func1& f1, const Func2& f2);
-template<typename Func0, typename Func1, ..., typename Func9>
-void parallel_invoke(const Func0& f0, const Func1& f1, ..., const Func9& f9);
-

- Note

When support for C++11 rvalue references become prevalent, the formal parameters may change to rvalue references.

-
- -

Description

The expression parallel_invoke(f0,f1,...,fk) evaluates - f0(), f1(), ..., fk() possibly in parallel. There can be from 2 - to 10 arguments. Each argument must have a type for which operator() is - defined. Typically the arguments are either function objects or pointers to functions. Return - values are ignored.

-
- -

Example

The following example evaluates f(), g(), and - h() in parallel. Notice how g and h are - function objects that can hold local state.

-
#include "tbb/parallel_invoke.h"
-
-using namespace tbb;
-
-void f();
-extern void bar(int);
-
-class MyFunctor {
-    int arg;
-public:
-    MyFunctor(int a) : arg(a) {}
-    void operator()() const {bar(arg);}
-};
-
-void RunFunctionsInParallel() {
-    MyFunctor g(2);
-    MyFunctor h(3);
-    tbb::parallel_invoke(f, g, h );
-}
-  
-
- -

Example with Lambda Expressions

Here is the previous example rewritten with C++11 lambda expressions, which generate function objects.

-
#include "tbb/parallel_invoke.h"
-
-using namespace tbb;
-
-void f();
-extern void bar(int);
-
-void RunFunctionsInParallel() {
-    tbb::parallel_invoke(f, []{bar(2);}, []{bar(3);} );
-}
-  
-
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_pipeline_func.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_pipeline_func.htm deleted file mode 100644 index 85cd140ad..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_pipeline_func.htm +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - - - - - - - - - - - -parallel_pipeline Function - - - - - - - - - - - - - - -

parallel_pipeline Function

- - - -
-

Summary

Strongly typed interface for pipelined execution.
- -

Header

-
#include "tbb/pipeline.h"
-
- -

Syntax

-
void parallel_pipeline( size_t max_number_of_live_tokens, 
-                        const filter_t<void,void>& filter_chain
-                        [, task_group_context& group] );
-
- -

Description

-

Function parallel_pipeline is a strongly typed lambda-friendly - interface for building and running pipelines. The pipeline has characteristics - similar to class pipeline, except that the stages of the pipeline - are specified via functors instead of class derivation.

- -

To build and run a pipeline from functors g0, g1, - g2, ..., gn, write:

- -
parallel_pipeline( max_number_of_live_tokens, 
-                   make_filter<void,I1>(mode0,g0) &
-                   make_filter<I1,I2>(mode1,g1) &
-                   make_filter<I2,I3>(mode2,g2) &
-                   ... 
-                   make_filter<In,void>(moden,gn) );
-

In - general, functor gi should define its operator() to map objects of type - Ii to objects of type Ii+1. Functor g0 is a special case, because it notifies the pipeline when the end of the - input stream is reached. Functor g0 must be defined such that for a flow_control object fc, the - expression g0 (fc ) either returns the next value in the input stream, or if - at the end of the input stream, invokes fc.stop() and returns a dummy - value.

- The value max_number_of_live_tokens has the same meaning as it - does for pipeline::run.

If the group argument is specified, - pipeline's tasks are executed in this group. By default the algorithm is executed in - a bound group of its own.

-
- -

Example

-

The following example uses parallel_pipeline compute - the root-mean-square of a sequence defined by [ first , last ). The - example is only for demonstrating syntactic mechanics. It is not as a practical way - to do the calculation because parallel overhead would be vastly higher than useful - work. Operator & requires that the output type of its first - filter_t argument matches the input type of its second - filter_t argument.

-
float RootMeanSquare( float* first, float* last ) {
-    float sum=0;
-    parallel_pipeline( /*max_number_of_live_token=*/16,       
-        make_filter<void,float*>(
-            filter::serial,
-            [&](flow_control& fc)-> float*{
-                if( first<last ) {
-                    return first++;
-                 } else {
-                    fc.stop();
-                    return NULL;
-                }
-            }    
-        ) &
-        make_filter<float*,float>(
-            filter::parallel,
-            [](float* p){return (*p)*(*p);} 
-        ) &
-        make_filter<float,void>(
-            filter::serial,
-            [&](float x) {sum+=x;}
-        )
-    );
-    return sqrt(sum);
-}
-     

See the Intel® Threading Building Blocks Tutorial for a non-trivial example - of parallel_pipeline.

- -
- - -
- - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_pipeline_func/filter_t_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_pipeline_func/filter_t_cls.htm deleted file mode 100644 index 8bb654e02..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_pipeline_func/filter_t_cls.htm +++ /dev/null @@ -1,269 +0,0 @@ - - - - - - - - - - - - -filter_t Template Class - - - - - - - - - -

filter_t Template Class

- -
-

Summary

- A filter or composite filter used in conjunction - with function - parallel_pipeline. -
- -

Header

- -
 #include "tbb/pipeline.h"
-
- -

Syntax

- -
template<typename T, typename U> class filter_t;
-template<typename T, typename U, typename Func>
-filter_t<T,U> make_filter( filter::mode mode, const Func& f );
-template<typename T, typename V, typename U>
-filter_t<T,U> operator&( const filter_t<T,V>& left, 
-                         const filter_t<V,U>& right );
-
-
- -

Description

- -

A filter_t is a strongly typed filter that specifies - its input and output types. A filter_t - can be constructed from a functor or by composing of two - filter_t - objects with - operator& . The same filter_t - object can be shared by multiple & - expressions. -

- -
- -

Members

- -
namespace tbb {
-    template<typename T, typename U>
-    class filter_t {
-    public:
-        filter_t();
-        filter_t( const filter_t<T,U>& rhs );
-        template<typename Func>
-        filter_t( filter::mode mode, const Func& func );
-        void operator=( const filter_t<T,U>& rhs );
-        ~filter_t();
-        void clear();
-    };
-
-    template<typename T, typename U, typename Func>
-    filter_t<T,U> make_filter( filter::mode mode, const Func& f );
-    template<typename T, typename V, typename U>
-    filter_t<T,U> operator&( const filter_t<T,V>& left, 
-                             const filter_t<V,U>& right );
-}
-
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
filter _t() - -

Construct an undefined filter. -

- -

- Caution

-

The effect of using an undefined filter by - operator& or - parallel_pipeline is undefined. -

- -
-
filter_t( const - filter_t<T,U>& rhs ) - -

Construct a copy of - rhs. -

- -
template<typename Func> - filter_t( filter::mode mode, const Func& f ) - -

Construct a - filter_t that uses a copy of functor - f to map an input value - t of type - T to an output value - u of type - U. -

- -

- Note

-

When parallel_pipeline uses the - filter_t, it computes - u by evaluating - f(t), unless - T is - void. In the void case - u is computed by the expression - u=f(fc), where - fc is of type flow_control. -

- -
-
void operator=( const - filter_t<T,U>& rhs ) - -

Update - *this to use the functor associated with - rhs. -

- -
~filter_t() - -

Destroy the - filter_t. -

- -
void clear() - -

Set - *this to an undefined filter. -

- -
template<typename T, typename - U, typename Func> filter_t<T,U> make_filter(filter::mode mode, const - Func& f) - -

Returns: - filter_t<T,U>(mode,f) -

- -
template<typename T, typename - V, typename U> filter_t<T,U> operator& (const - filter_t<T,V>& left, const filter_t<V,U>& right) - -

Requires: The output type of - left must match the input type of - right. -

- -

Returns: A filter_t representing the - composition of filters - left and - right. The composition behaves as if the output value - of - left becomes the input value of - right. -

- -
-
- -
- -
- - - -
-

See Also

- -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_pipeline_func/flow_control_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_pipeline_func/flow_control_cls.htm deleted file mode 100644 index ab369583f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_pipeline_func/flow_control_cls.htm +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - -flow_control Class - - - - - - - - - - - - - - -

flow_control Class

- - - -
-

Summary

Enables the first filter in a composite filter to indicate when the - end of input has been reached.
- -

Header

#include "tbb/pipeline.h" 
- -

Syntax

-
class flow_control;
-
- -

Description

Template function parallel_pipeline passes a flow_control object - fc to the input functor of a filter_t. When the input functor - reaches the end of its input, it should invoke fc.stop() and return a - dummy value.

- - - -
- - -

Members

-
namespace tbb {
-    class flow_control {
-    public:
-        void stop();
-    };
-}
-
- -
- - - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_reduce_func.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_reduce_func.htm deleted file mode 100644 index b98ee3e3d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_reduce_func.htm +++ /dev/null @@ -1,428 +0,0 @@ - - - - - - - - - - - - - - -parallel_reduce Template Function - - - - - - - - - - - - - - -

parallel_reduce Template Function

- - -
-

Summary

- -

Computes reduction over a range.

- -
- -

Header

- -
 #include "tbb/parallel_reduce.h"
-
- -

Syntax

- -
-template<typename Range, typename Value, 
-         typename Func, typename Reduction>
-Value parallel_reduce( const Range& range, const Value& identity,
-                     const Func& func, const Reduction& reduction,
-                     [, partitioner[, task_group_context& group]] );
-
-template<typename Range, typename Body> 
-void parallel_reduce( const Range& range, const Body& body
-                      [, partitioner[, task_group_context& group]] );
-

where the optional partitioner declares any of the partitioners as shown in column 1 of the Partitioners table in the Partitioners section.

- -
- -

Description

- -

The parallel_reduce template has two forms. The functional form is - designed to be easy to use in conjunction with lambda expressions. The imperative - form is designed to minimize copying of data.

-

The functional form - parallel_reduce(range,identity,func,reduction) performs a parallel - reduction by applying func to subranges in range and reducing the results - using binary operator reduction. It returns the result of the reduction. - Parameter func and reduction can be lambda expressions. The table below - summarizes the type requirements on the types of identity, func, and - reduction.

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Requirements for Func and Reduction
-

Pseudo-Signature

- -
-

Semantics

- -
-

Value Identity; -

- -
-

Left identity element for - Func::operator().

- -
-

Value Func::operator()(const - Range& range, const Value& x) -

- -
-

Accumulate result for subrange, starting with - initial value x.

- -
-

Value Reduction::operator()(const - Value& x, const Value& y); -

- -
-

Combine results x and - y.

- -
-
- -

The imperative form - parallel_reduce(range,body) performs parallel - reduction of body over each value in range. Type - Range must model the Range concept. The body must model the - requirements shown in the table below.

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Requirements for parallel_reduce - Body
-

Pseudo-Signature

- -
-

Semantics

- -
-

Body::Body( Body&, split - ); -

- -
-

Splitting constructor. Must be able to run concurrently with - operator() and method - join.

- -
-

Body::~Body() -

- -
-

Destructor.

- -
-

void Body::operator()(const - Range& range); -

- -
-

Accumulate result for subrange.

- -
-

void Body::join( Body& rhs ); - -

- -
-

Join results. The result in rhs should be merged into the result - of this.

- -
-
- -

A parallel_reduce recursively splits the range into subranges to the - point such that is_divisible() is false for each subrange. - A parallel_reduce uses the splitting constructor to make one or - more copies of the body for each thread. It may copy a body while the body’s - operator() or method join runs concurrently. You are - responsible for ensuring the safety of such concurrency. In typical usage, the - safety requires no extra effort.

-

When worker threads are available, - parallel_reduce invokes the splitting constructor for the body. - For each such split of the body, it invokes method join in order to merge the - results from the bodies. Define join to update this to represent the accumulated - result for this and rhs. The reduction operation should be associative, but does not - have to be commutative. For a noncommutative operation op, - "left.join(right)" should update left - to be the result of left - op - right.

-

A body is split only if the range is split, but the converse is - not necessarily so. The figure below diagrams a sample execution of - parallel_reduce. The root represents the original body b0 being - applied to the half-open interval [0,20). The range is recursively split at each - level into two subranges. The grain size for the example is 5, which yields four - leaf ranges. The slash marks (/) denote where copies (b1 and - b2) of the body were created by the body splitting constructor. - Bodies b0 and b1 each evaluate one leaf. Body b2 - evaluates leaf [10,15) and [15,20), in that order. On the way back up the tree, - parallel_reduce invokes b0.join(b1) and - b0.join(b2) to merge the results of the leaves.

-

Execution of parallel_reduce over - blocked_range<int>(0,20,5)

- -

The figure above shows only one - possible execution. Other valid executions include splitting b 2 into - b 2 and b 3, or doing no splitting at all. With no - splitting, b 0 evaluates each leaf in left to right order, with no calls - to join. A given body always evaluates one or more subranges in - left to right order. For example, in the figure above, body b 2 is guaranteed to - evaluate [10,15) before [15,20). You may rely on the left to right property for a - given instance of a body. However, you t must neither rely on a particular choice of - body splitting nor on the subranges processed by a given body object being - consecutive. parallel_reduce makes the choice of body splitting - nondeterministically.

-

Example where Body b0 processes - non-consecutive subranges.

- -

The subranges evaluated by a given body are not - consecutive if there is an intervening join. The joined information - represents processing of a gap between evaluated subranges. The figure above shows such an - example. The body b0 performs the following sequence of operations: -

-
    -
  1. b0( [0,5) )
  2. - -
  3. b0.join()( b1 ) where b1 has - already processed [5,10)
  4. - -
  5. b0( [10,15) )
  6. - -
  7. b0( [15,20) )
  8. - -
-

In other words, body b0 gathers information about all the leaf - subranges in left to right order, either by directly processing each leaf, or by a - join operation on a body that gathered information about one or more leaves in a - similar way. When no worker threads are available, parallel_reduce - executes sequentially from left to right in the same sense as for - parallel_for . Sequential execution never invokes the splitting - constructor or method join.

-

All overloads can be passed a - task_group_context object so that the algorithm’s tasks are executed in - this group. By default the algorithm is executed in a bound group of its - own.

-

Complexity

-

If the range and body take O(1) space, and - the range splits into nearly equal pieces, then the space complexity is O(P log(N)), - where N is the size of the range and P is the number of threads.

- -
- -

Example (Imperative Form)

- -

The following code sums the values in an array.

- -

-

-#include "tbb/parallel_reduce.h"
-#include "tbb/blocked_range.h"
-
-using namespace tbb;
-
-struct Sum {
-    float value;
-    Sum() : value(0) {}
-    Sum( Sum& s, split ) {value = 0;}
-    void operator()( const blocked_range<float*>& r ) {
-        float temp = value;
-        for( float* a=r.begin(); a!=r.end(); ++a ) {
-            temp += *a;
-        }
-        value = temp;
-    }
-    void join( Sum& rhs ) {value += rhs.value;}
-};
-
-float ParallelSum( float array[], size_t n ) {
-    Sum total;
-    parallel_reduce( blocked_range<float*>( array, array+n ), 
-                     total );
-    return total.value;
-}
-

-

The example generalizes to reduction for any associative -operation op as follows:

- -
  • Replace -occurrences of 0 with the identity element for op -
  • -
  • Replace -occurrences of += with op= or its logical -equivalent.
  • -
  • Change the name Sum to something more appropriate for op.
  • -
-

The operation may be noncommutative. For example, op could be matrix multiplication.

- -
- -

Example with Lambda Expressions

- -

The following is analogous to the previous example, but written using - lambda expressions and the functional form of parallel_reduce.

-

-#include "tbb/parallel_reduce.h"
-#include "tbb/blocked_range.h"
-
-using namespace tbb;
-
-float ParallelSum( float array[], size_t n ) {
-    return parallel_reduce( 
-        blocked_range<float*>( array, array+n ), 
-        0.f, 
-        [](const blocked_range<float*>& r, float init)->float {
-            for( float* a=r.begin(); a!=r.end(); ++a ) 
-                init += *a;
-            return init;
-        },
-        []( float x, float y )->float {
-            return x+y;
-        }
-    );                    
-}
-

-

STL generalized numeric operations and functions objects can be used to write the example more compactly as follows:

- -

-#include <numeric>
-#include <functional>
-#include "tbb/parallel_reduce.h"
-#include "tbb/blocked_range.h"
-
-using namespace tbb;
-
-float ParallelSum( float array[], size_t n ) {
-    return parallel_reduce(
-        blocked_range<float*>( array, array+n ),
-        0.f,
-        [](const blocked_range<float*>& r, float value)->float {
-            return std::accumulate(r.begin(),r.end(),value);
-        },
-        std::plus<float>()
-    );
-}
-

- -
-
- - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_scan_func.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_scan_func.htm deleted file mode 100644 index 99bbc49b0..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_scan_func.htm +++ /dev/null @@ -1,329 +0,0 @@ - - - - - - - - - - - - - - - -parallel_scan Template Function - - - - - - - - - - - - - - -

parallel_scan Template Function

- - -
-

Summary

Template function that computes parallel prefix.
- -

Header

-
#include "tbb/parallel_scan.h"
-
- -

Syntax

-template<typename Range, typename Body> 
-void parallel_scan( const Range& range, Body& body );
-
-template<typename Range, typename Body> 
-void parallel_scan( const Range& range, Body& body, const auto_partitioner& );
-
-template<typename Range, typename Body> 
-void parallel_scan( const Range& range, Body& body, const simple_partitioner& );
-
-
- -

Description

A parallel_scan(range,body) - computes a parallel prefix, also known as parallel scan. This computation is an advanced concept - in parallel computing that is sometimes useful in scenarios that appear to have inherently - serial dependences.

-

A mathematical definition of the parallel prefix is as follows. Let - × be an associative operation with left-identity element id×. - The parallel prefix of × over a sequence z0, z1, ...zn-1 - is a sequence y0, y1, y2, ...yn-1 - where:

-
  • y0 = id× × z0 -
  • - -
  • yi = yi-1 × zi -
  • - -
-

For example, if × is addition, the parallel prefix corresponds a running sum. A - serial implementation of parallel prefix - is:

-
-T temp = id×;
-for( int i=1; i<=n; ++i ) {
-    temp = temp × z[i];
-    y[i] = temp;
-}
-

Parallel - prefix performs this in parallel by reassociating the application of × and using two - passes. It may invoke × up to twice as many times as the serial prefix algorithm. Given - the right grain size and sufficient hardware threads, it can out perform the serial prefix - because even though it does more work, it can distribute the work across more than one hardware - thread.

-

- Tip

-

Because parallel_scan needs two passes, systems with only two hardware - threads tend to exhibit small speedup. parallel_scan is best considered a - glimpse of a technique for future systems with more than two cores. It is nonetheless of - interest because it shows how a problem that appears inherently sequential can be - parallelized.

- -

The template parallel_scan<Range,Body> implements parallel prefix - generically. It requires the signatures described in the table below.

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
parallel_scan Requirements
-

Pseudo-Signature

- -
-

Semantics

- -
-

void Body::operator()( const Range& r, pre_scan_tag ) - -

- -
-

Accumulate summary for range r .

- -
-

void Body::operator()( const Range& r, final_scan_tag ) - -

- -
-

Compute scan result and summary for range r.

- -
-

Body::Body( Body& b, split ) -

- -
-

Split b so that this and b can - accumulate summaries separately. Body *this is object a in the table row - below.

- -
-

void Body::reverse_join( Body& a ) -

- -
-

Merge summary accumulated by a into summary accumulated by - this, where this was created earlier from a by a's - splitting constructor. Body *this is object b in the table row above.

- -
-

void Body::assign( Body& b )

- -
-

Assign summary of b to this.

- -
-
-

A summary contains enough information such that for two consecutive subranges r - and s:

-
    -
  • If r has no preceding subrange, the scan result for s can be computed from - knowing s and the summary for r.
  • - -
  • A summary of r concatenated with s can be computed from the summaries of r - and s.
  • - -
-

For example, if computing a running sum of an array, the summary for a range r is - the sum of the array elements corresponding to r.

-

The figure below shows one way that - parallel_scan might compute the running sum of an array containing the - integers 1-16. Time flows downwards in the diagram. Each color denotes a separate Body object. - Summaries are shown in brackets.

-
    -
  1. The first two steps split the original blue body into the pink and yellow bodies. Each body - operates on a quarter of the input array in parallel. The last quarter is processed later in - step 5.
  2. - -
  3. The blue body computes the final scan and summary for 1-4. The pink and yellow bodies - compute their summaries by prescanning 5-8 and 9-12 respectively.
  4. - -
  5. The pink body computes its summary for 1-8 by performing a reverse_join with the blue body.
  6. - -
  7. The yellow body computes its summary for 1-12 by performing a reverse_join with the pink - body.
  8. - -
  9. The blue, pink, and yellow bodies compute final scans and summaries for portions of the - array.
  10. - -
  11. The yellow summary is assigned to the blue body. The pink and yellow bodies are destroyed. -
  12. - -
-

Note that two quarters of the array were not prescanned. The - parallel_scan template makes an effort to avoid prescanning where possible, to - improve performance when there are only a few or no extra worker threads. If no other workers - are available, parallel_scan processes the subranges without any pre_scans, by processing the - subranges from left to right using final scans. That's why final scans must compute a summary as - well as the final scan result. The summary might be needed to process the next subrange if no - worker thread has prescanned it yet.

-

Example Execution of - parallel_scan

-

The following code demonstrates how the - signatures could be implemented to use parallel_scan to compute the same result as the earlier - sequential example involving ×. -

-
-using namespace tbb;
-
-class Body {
-    T sum;
-    T* const y;
-    const T* const z;
-public:
-    Body( T y_[], const T z_[] ) : sum(id×), z(z_), y(y_) {}
-    T get_sum() const {return sum;}
-
-    template<typename Tag>
-    void operator()( const blocked_range<int>& r, Tag ) {
-        T temp = sum;
-        for( int i=r.begin(); i<r.end(); ++i ) {
-            temp = temp × z[i];
-            if( Tag::is_final_scan() )
-                y[i] = temp;
-        }
-        sum = temp;
-    }
-    Body( Body& b, split ) : z(b.z), y(b.y), sum(id×) {}
-    void reverse_join( Body& a ) { sum = a.sum ןƒ… sum;}
-    void assign( Body& b ) {sum = b.sum;}
-};
-
-float DoParallelScan( T y[], const T z[], int n ) {
-    Body body(y,z);
-    parallel_scan( blocked_range<int>(0,n), body );
-    return body.get_sum();
-}
-

The - definition of operator() demonstrates typical patterns when using - parallel_scan.

-
    -
  • A single template defines both versions. Doing so is not required, but usually saves coding - effort, because the two versions are usually similar. The library defines static method - is_final_scan() to enable differentiation between the versions.
  • - -
  • The prescan variant computes the × reduction, but does not update - y. The prescan is used by parallel_scan to generate - look-ahead partial reductions.
  • - -
  • The final scan variant computes the × reduction and updates - y.
  • - -
-

The operation reverse_join is similar to the operation - join used by parallel_reduce, except that the arguments are - reversed. That is, this is the right argument of ×. - Template function parallel_scan decides if and when to generate parallel work. - It is thus crucial that × is associative and that the methods of Body faithfully represent it. - Operations such as floating-point addition that are somewhat associative can be used, with the - understanding that the results may be rounded differently depending upon the association used by - parallel_scan. The reassociation may differ between runs even on the same - machine. However, if there are no worker threads available, execution associates identically to - the serial form shown at the beginning of this section.

-

If you change the example to use a - simple_partitioner, be sure to provide a grainsize. The code below shows the - how to do this for a grainsize of - 1000:

-
parallel_scan(blocked_range<int>(0,n,1000), total, 
-                                     simple_partitioner() );
-
- - -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_scan_func/pre_scan_tag_and_final_scan_tag_clses.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_scan_func/pre_scan_tag_and_final_scan_tag_clses.htm deleted file mode 100644 index 532cf2bfc..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_scan_func/pre_scan_tag_and_final_scan_tag_clses.htm +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - - - -pre_scan_tag and final_scan_tag Classes - - - - - - - - - -

pre_scan_tag and final_scan_tag Classes

- - -
-

Summary

- Types that distinguish the phases of - parallel_scan. -
- -

Header

- -

-

 #include "tbb/parallel_scan.h"
-

- -
- -

Syntax

- -
struct pre_scan_tag; 
-struct final_scan_tag;
-
- -

Description

- -

Types - pre_scan_tag and - final_scan_tag are dummy types used in conjunction - with - parallel_scan. See the example in the parallel_scan - Template Function section for how they are used in the signature of - operator(). -

- -
- -

Members

- -
namespace tbb {
-
-    struct pre_scan_tag {
-        static bool is_final_scan();
-    };
-
-    struct final_scan_tag {
-        static bool is_final_scan();
-    };
-
-}
-
-
- -
- -
The following table provides additional information on the member - of this template class. - - - - - - - - - - - - - - - - - - - -
Member - Description -
bool is_final_scan() - -

True for a - final_scan_tag, otherwise false. -

- -
-
- - -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_sort_func.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_sort_func.htm deleted file mode 100644 index a8852389f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/parallel_sort_func.htm +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - - - - - - - - -parallel_sort Template Function - - - - - - - - - - - - - - -

parallel_sort Template Function

- - - -
-

Summary

Sort a sequence.
- -

Header

-
#include "tbb/parallel_sort.h"
-
- -

Syntax

-
template<typename RandomAccessIterator> 
-void parallel_sort(RandomAccessIterator begin, RandomAccessIterator end);
-
-template<typename RandomAccessIterator, typename Compare>
-void parallel_sort(RandomAccessIterator begin, 
-                   RandomAccessIterator end, 
-                   const Compare& comp );
-
- -

Description

Performs an unstable sort of sequence [begin1, end1). An unstable sort - might not preserve the relative ordering of elements with equal keys. The sort is deterministic; - sorting the same sequence will produce the same result each time. The requirements on the - iterator and sequence are the same as for std::sort . Specifically, - RandomAccessIterator must be a random access iterator, and its value type - T must model the requirements in the table below.

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - -
Requirements on Value Type T of RandomAccessIterator - for parallel_sort
-

Pseudo-Signature -

- -
-

Semantics -

- -
-

void swap( T& x, T& y ) -

- -
-

Swap x and y .

- - -
-

bool Compare::operator()( -const T& x, const T& y -) -

- - -
-

True if x comes before y ; false - otherwise.

- - -
-
- -

A call parallel_sort(i,j,comp) sorts the sequence [i,j) using - the argument comp to determine relative orderings. If - comp(x,y) returns true then x appears before y in the sorted - sequence.

- -

A call parallel_sort(i,j) is equivalent to - parallel_sort(i,j,std::less<T>).

- -

Complexity

- -

parallel_sort is comparison sort with an average time complexity of O(N - log (N)), where N is the number of elements in the sequence. When - worker threads are available, parallel_sort creates subtasks that may be - executed concurrently, leading to improved execution times.

- -

Example

-

The following example shows two sorts. The sort of array a uses the default - comparison, which sorts in ascending order. The sort of array b sorts in descending order by - using std::greater<float> for comparison.

-
#include "tbb/parallel_sort.h"
-#include <math.h>
-
-using namespace tbb;
-
-const int N = 100000;
-float a[N];
-float b[N];
-
-void SortExample() {
-    for( int i = 0; i < N; i++ ) {
-       a[i] = sin((double)i);
-       b[i] = cos((double)i);
-    }
-    parallel_sort(a, a + N);
-    parallel_sort(b, b + N, std::greater<float>());
-}
-
- - -
- - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/partitioners.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/partitioners.htm deleted file mode 100644 index 656d2a2e8..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/partitioners.htm +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - -Partitioners - - - - - - - - - - - - - - -

Partitioners

- - -
-

Summary

- -

A partitioner specifies how a loop template should partition its work - among threads. -

- -
- -

Description

- -

The default behavior of the loop templates parallel_for, - parallel_reduce, and parallel_scan tries to - recursively split a range into enough parts to keep processors busy, not necessarily - splitting as finely as possible. An optional partitioner parameter enables other - behaviors to be specified, as shown in the table below. The first column of the table shows - how the formal parameter is declared in the loop templates. An - affinity_partitioner is passed by non-const reference because it is - updated to remember where loop iterations run.

- -

- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Partitioners
-

Partitioner -

- -
-

Loop Behavior -

- -
-

const auto_partitioner& - (default) -

- - -

- Note

In Intel® Threading Building Blocks (Intel® TBB) 2.1, simple_partitioner was the default. Intel® - TBB 2.2 changed the default to - auto_partitioner to simplify common - usage of the loop templates. To get the old default, - compile with the preprocessor symbol - TBB_DEPRECATED=1.

-
- -
-

Performs sufficient splitting to balance load, not necessarily splitting - as finely as Range::is_divisible permits. - When used with classes such as - blocked_range, the selection of an - appropriate grainsize is less important, and often - acceptable performance can be achieved with the default - grain size of 1.

- -
-

affinity_partitioner& -

- -
-

Similar to auto_partitioner, but improves cache - affinity by its choice of mapping subranges to worker - threads. It can improve performance significantly when a - loop is re-executed over the same data set, and the data set - fits in cache.

- -
-

const simple_partitioner& - -

- -
-

Recursively splits a range until it is no longer divisible. The - Range::is_divisible function is wholly - responsible for deciding when recursive splitting halts. - When used with classes such as - blocked_range, the selection of an - appropriate grainsize is critical to enabling concurrency - while limiting overheads (see the discussion in the blocked_range Template Class section).

- -
-
- -

- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/partitioners/affinity_partitioner.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/partitioners/affinity_partitioner.htm deleted file mode 100644 index 4f0a2e051..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/partitioners/affinity_partitioner.htm +++ /dev/null @@ -1,224 +0,0 @@ - - - - - - - - - - - - - -affinity_partitioner - - - - - - - - - - - - - - -

affinity_partitioner

- - -
-

Summary

- -

Hint that loop iterations should be assigned to threads in a way that - optimizes for cache affinity. -

- -
- -

Header

- -
#include "tbb/partitioner.h"
-
- -

Syntax

- -
 class affinity_partitioner;
-
- -

Description

- -

An - affinity_partitioner hints that execution of a loop - template should assign iterations to the same processors as another execution - of the loop (or another loop) with the same - affinity_partitioner object. -

- -

Unlike the other partitioners, it is important that the same - affinity_partitioner object be passed to the loop - templates to be optimized for affinity. The Tutorial section on "Bandwidth and - Cache Affinity" discusses affinity effects in detail. -

- -

- Tip

-

The affinity_partitioner generally improves performance only when: -

- -
    -
  • The computation does a few operations per data access. -
  • - -
  • The data acted upon by the loop fits in cache. -
  • - -
  • The loop, or a similar loop, is re-executed over the same data. -
  • - -
  • There are more than two hardware threads available. -
  • - -
- -
-
- -

Members

- -
-namespace tbb {
-    class affinity_partitioner {
-    public:
-        affinity_partitioner();
-        ~affinity_partitioner();
-    }
-}
-
-
- -

Example

- -

The following example can benefit from cache - affinity. The example simulates a one dimensional additive automaton. -

- -

-

-#include "tbb/blocked_range.h"
-#include "tbb/parallel_for.h"
-#include "tbb/partitioner.h"
-
-using namespace tbb;
-
-const int N = 1000000;
-typedef unsigned char Cell;
-Cell Array[2][N];
-int FlipFlop;
-
-struct TimeStepOverSubrange {
-    void operator()( const blocked_range<int>& r ) const {
-        int j = r.end();
-        const Cell* x = Array[FlipFlop];
-        Cell* y = Array[!FlipFlop];
-        for( int i=r.begin(); i!=j; ++i ) 
-            y[i] = x[i]^x[i+1];
-    }
-};
-
-
-void DoAllTimeSteps( int m ) {
-    affinity_partitioner ap;
-    for( int k=0; k<m; ++k ) {
-        parallel_for( blocked_range<int>(0,N-1), 
-                      TimeStepOverSubrange(),
-                      ap );
-        FlipFlop ^= 1;
-    }
-}
-
-

- -

For each time step, the old state of the automaton is read from - Array[FlipFlop], and the new state is written into - Array[!FlipFlop]. Then - FlipFlop flips to make the new state become the old - state. The aggregate size of both states is about 2 MByte, which fits in most - modern processors' cache. Improvements ranging from 50%-200% have been observed - for this example on 8 core machines, compared with using an - auto_partitioner instead. -

- -

The affinity_partitioner must live between loop - iterations. The example accomplishes this by declaring it outside the loop that - executes all iterations. An alternative would be to declare the - affinity partitioner at the file scope, which works as - long as - DoAllTimeSteps itself is not invoked concurrently. The - same instance of - affinity_partitioner should not be passed to two - parallel algorithm templates that are invoked concurrently. Use separate - instances instead. -

- -
- - -
The following table provides additional information on the members - of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
affinity_partitioner() - -

Construct an - affinity_partitioner. -

- -
~affinity_partitioner() - -

Destroy this - affinity_partitioner. -

- -
-
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/partitioners/auto_partitioner_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/partitioners/auto_partitioner_cls.htm deleted file mode 100644 index a83ab50e3..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/partitioners/auto_partitioner_cls.htm +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - - - - -auto_partitioner Class - - - - - - - - - - - - - - -

auto_partitioner Class

- - -
-

Summary

- -

Specify that a parallel loop should optimize its range subdivision - based on work-stealing events. -

- -
- -

Header

- -
#include "tbb/partitioner.h"
-
- -

Syntax

- -
class auto_partitioner;
-
- -

Description

- -

A loop template with an - auto_partitioner attempts to minimize range splitting - while providing ample opportunities for work-stealing. -

- -

The range subdivision is initially limited to S subranges, where S is - proportional to the number of threads specified by the - task_scheduler_init. Each of these subranges is not - divided further unless it is stolen by an idle thread. If stolen, it is further - subdivided to create additional subranges. Thus a loop template with an - auto_partitioner creates additional subranges only - when necessary to balance load. -

- -

- Tip

-

When using - auto_partitioner and a - blocked_range for a parallel loop, the body may be - passed a subrange larger than the - blocked_range's grainsize. Therefore do not assume - that the grainsize is an upper bound on the size of the subrange. Use a - simple_partitioner if an upper bound is required. -

- -
-
- -

Members

- -
 
-namespace tbb {
-    class auto_partitioner {
-    public:
-        auto_partitioner();
-        ~auto_partitioner();
-    }
-}
-
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
auto_partitioner() - -

Construct an - auto_partitioner. -

- -
~auto_partitioner() - -

Destroy this - auto_partitioner. -

- -
-
- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/partitioners/simple_partitioner_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/partitioners/simple_partitioner_cls.htm deleted file mode 100644 index 457ab1559..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/partitioners/simple_partitioner_cls.htm +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - - - - - - - -simple_partitioner Class - - - - - - - - - - - - - - -

simple_partitioner Class

- - -
-

Summary

- -

Specify that a parallel loop should recursively split its range until - it cannot be subdivided further. -

- -
- -

Header

- -
#include "tbb/partitioner.h"
-
- -

Syntax

- -
class simple_partitioner;
-
- -

Description

- -

A - simple_partitioner specifies that a loop template - should recursively divide its range until for each subrange - r, the condition - !r.is_divisible() holds. This is the default behavior - of the loop templates that take a range argument. -

- -

- Tip

-

When using - simple_partitioner and a - blocked_range for a parallel loop, be careful to - specify an appropriate grainsize for the - blocked_range. The default grainsize is 1, which may make - the subranges much too small for efficient execution. -

- -
-
- -

Members

- -
 
-namespace tbb {
-    class simple_partitioner {
-    public:
-        simple_partitioner();
-        ~simple_partitioner();
-    }
-}
-
-
- -
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
simle_partitioner() - -

Construct an - simple_partitioner. -

- -
~simple_partitioner() - -

Destroy this - simple_partitioner. -

- -
-
- -
- -
-
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/pipeline_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/pipeline_cls.htm deleted file mode 100644 index 8bfc49699..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/pipeline_cls.htm +++ /dev/null @@ -1,274 +0,0 @@ - - - - - - - - - - - - - - - - -pipeline Class - - - - - - - - - - - - - - -

pipeline Class

- - -
-

Summary

- Class that performs pipelined execution. -
- -

Header

- -
#include "tbb/pipeline.h"
-
- -

Syntax

- -
class pipeline; 
-
- -

Description

- -

A - pipeline represents pipelined application of a series - of filters to a stream of items. Each filter operates in a particular mode: - parallel, serial in-order, or serial out-of-order (MacDonald 2004). -

- -

A - pipeline contains one or more filters, denoted here as - - fi , where - i denotes the position of the filter in the pipeline. The - pipeline starts with filter - f0, followed by - f1, - f2, etc. The following steps describe how to use - class pipeline. -

- -
    -
  1. Derive each class - fi from - filter. The constructor for - fi specifies its mode as a parameter to the - constructor for base class - filter -
  2. - -
  3. Override virtual method - filter::operator() to perform the filter's action - on the item, and return a pointer to the item to be processed by the next - filter. The first filter - f0 generates the stream. It should return NULL if - there are no more items in the stream. The return value for the last filter is - ignored. -
  4. - -
  5. Create an instance of class - pipeline. -
  6. - -
  7. Create instances of the filters - fi and add them to the pipeline, in order from - first to last. An instance of a filter can be added at most once to a pipeline. - A filter should never be a member of more than one pipeline at a time. -
  8. - -
  9. Call method - pipeline::run . The parameter - max_number_of_live_tokens puts an upper bound on the - number of stages that will be run concurrently. Higher values may increase - concurrency at the expense of more memory consumption from having more items in - flight. See the Tutorial, in the section on class - pipeline, for more about effective use of - max_number_of_live_tokens. -
  10. - -
- -

- Tip

-

Given sufficient processors and tokens, the throughput of the - pipeline is limited to the throughput of the slowest serial filter. -

- -
-

- Note

-

Function - parallel_pipeline provides a strongly typed - lambda-friendly way to build and run pipelines. -

- -
-
- -

Members

- -
namespace tbb {
-    class pipeline {
-     public:
-        pipeline();
-        ~pipeline();
-        void add_filter( filter& f );
-        void run( size_t max_number_of_live_tokens [, task_group_context& group ] );
-        void clear();
-    };
-}
-

- Note

-

Though the current implementation declares the destructor virtual, - do not rely on this detail. The virtual nature is deprecated and may disappear - in future versions of Intel® Threading Building Blocks (Intel® TBB). -

- -
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
pipeline() - -

Constructs pipeline with no filters. -

- -
~pipeline() - -

Removes all filters from the pipeline and - destroys the pipeline. -

- -
void add_filter( filter& f - ) - -

Appends filter - f to sequence of filters in the - pipeline. The filter - f must not already be in a pipeline. -

- -
void run( size_t - max_number_of_live_tokens[, task_group_context& group] ) - - -

Runs the pipeline until the first filter returns NULL and - each subsequent filter has processed all items from its predecessor. The number - of items processed in parallel depends upon the structure of the pipeline and - number of available threads. At most - max_number_of_live_tokens are in flight at - any given time. -

- -

A pipeline can be run multiple times. It is safe to add - stages between runs. Concurrent invocations of run on the same instance of - pipeline are prohibited. -

- -

If the - group argument is specified, pipeline’s - tasks are executed in this group. By default the algorithm is executed in a - bound group of its own. -

- -
void clear() - -

Removes all filters from the pipeline. -

- -
-
- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/pipeline_cls/filter_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/pipeline_cls/filter_cls.htm deleted file mode 100644 index e8594b17d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/pipeline_cls/filter_cls.htm +++ /dev/null @@ -1,287 +0,0 @@ - - - - - - - - - - - - - - -filter Class - - - - - - - - - - - - - - -

filter Class

- - -
-

Summary

- Abstract base class that represents a filter in a - pipeline. -
- -

Header

- -
#include "tbb/pipeline.h" 
-
- -

Syntax

- -
class filter;
-
- -

Description

- -

A - filter represents a filter in a - pipeline(0).There are three modes of filters: -

- -
    -
  • A - parallel filter can process multiple items in - parallel and in no particular order. -
  • - -
  • A - serial_out_of_order filter processes items one at a - time, and in no particular order. -
  • - -
  • A - serial_in_order filter processes items one at a - time. All - serial_in_order filters in a pipeline process items - in the same order. -
  • - -
- -

The mode of - filter is specified by an argument to the constructor. - Parallel filters are preferred when practical because they permit parallel - speedup. If a filter must be serial, the out of order variant is preferred when - practical because it puts less contraints on processing order. -

- -

Class - filter should only be used in conjunction with class - pipeline(0). -

- -

- Tip

-

- - Use a - serial_in_order input filter if there are any - subsequent - serial_in_order stages that should process items in - their input order. -

- -
-

- Caution

-

- - Intel® Threading Building Blocks (Intel® TBB) 2.0 and prior treated parallel input stages as - serial. Later versions of Intel® TBB can execute a parallel input stage in - parallel, so if you specify such a stage, ensure that its - operator() is thread safe. -

- -
-
- -

Members

- -
namespace tbb {
-    class filter {
-    public:
-        enum mode {
-            parallel = implementation-defined,
-            serial_in_order = implementation-defined,
-            serial_out_of_order = implementation-defined
-        };
-        bool is_serial() const;
-        bool is_ordered() const;
-        virtual void* operator()( void* item ) = 0;
-        virtual void finalize( void* item ) {}
-        virtual ~filter();
-    protected:
-        filter( mode );
-    };
-} 
-
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
filter( mode filter_mode - ) - -

Constructs a filter of the specified - mode. -

- -

- Note

-

Intel® TBB 2.1 and prior had a similar constructor with a - bool argument - is_serial. That constructor exists but is - deprecated (see Compatibility Features in the Appendices). -

- -
-
~filter() - -

Destroys the filter. If the filter is in - a - pipeline, it is automatically removed from - that pipeline. -

- -
bool is_serial() const - -

Returns: False if filter mode is - parallel; true otherwise. -

- -
bool is_ordered() const - -

Returns: True if filter mode is - serial_in_order, false otherwise. -

- -
virtual void* operator()( void * - item ) - -

The derived filter should override this - method to process an item and return a pointer to an item to be processed by - the next - filter. The item parameter is NULL for the - first filter in the pipeline. -

- -

Returns: The first filter in a - pipeline should return NULL if there are no - more items to process. The result of the last filter in a pipeline is ignored. -

- -
virtual void finalize( void * item - ) - -

A pipeline can be cancelled by user - demand or because of an exception. When a pipeline is cancelled, there may be - items returned by a filter's operator() that have not yet been processed by the - next filter. When a pipeline is cancelled, the next filter invokes - finalize() on each item instead of - operator(). In contrast to - operator(), method - finalize() does not return an item for - further processing. A derived filter should override - finalize() to perform proper cleanup for an - item. A pipeline will not invoke any further methods on the item. -

- -

Returns: The default definition - has no effect. -

- -
-
- -
- -
- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/pipeline_cls/thread_bound_filter_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/pipeline_cls/thread_bound_filter_cls.htm deleted file mode 100644 index 44aa5d951..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/pipeline_cls/thread_bound_filter_cls.htm +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - - - - - -thread_bound_filter Class - - - - - - - - - - - - - - -

thread_bound_filter Class

- - -
-

Summary

- Abstract base class that represents a filter in a - pipeline that a thread must service explicitly. -
- -

Header

- -
#include "tbb/pipeline.h" 
-
- -

Syntax

- -
 class thread_bound_filter;
-
- -

Description

- -

A - thread_bound_filter is a special kind of - filter that is explicitly serviced by a particular - thread. It is useful when a filter must be executed by a particular thread. -

- -

- Caution

-

Use - thread_bound_filter only if you need a filter to be - executed on a particular thread. The thread that services a - thread_bound_filter must not be the thread that - calls - pipeline::run(). -

- -
-
- -

Members

- -
namespace tbb {
-    class thread_bound_filter: public filter {
-    protected:
-        thread_bound_filter(mode filter_mode);
-    public:
-        enum result_type {
-            success,
-            item_not_available,
-            end_of_stream
-        };
-        result_type try_process_item();
-        result_type process_item();
-    };
-} 
-
-
-
- -

Example

- -

The example below shows a pipeline with two filters - where the second filter is a thread_bound_filter serviced by - the main thread. -

- -
#include <iostream>
-#include "tbb/pipeline.h"
-#include "tbb/compat/thread"
-#include "tbb/task_scheduler_init.h"
-
-using namespace tbb;
-
-char InputString[] = "abcdefg\n";
-
-class InputFilter: public filter {
-    char* my_ptr;
-public:
-    void* operator()(void*) {
-        if (*my_ptr)
-            return my_ptr++;
-        else
-            return NULL;
-    }
-    InputFilter() : 
-        filter( serial_in_order ), my_ptr(InputString) 
-    {}
-};
-
-class OutputFilter: public thread_bound_filter {
-public:
-    void* operator()(void* item) {
-        std::cout << *(char*)item;
-        return NULL;
-    }
-    OutputFilter() : thread_bound_filter(serial_in_order) {}
-};
-
-void RunPipeline(pipeline* p) {
-    p->run(8);
-}
-
-int main() {
-    // Construct the pipeline
-    InputFilter f;
-    OutputFilter g;
-    pipeline p;
-    p.add_filter(f);
-    p.add_filter(g);
-
-    // Another thread initiates execution of the pipeline
-    std::thread t(RunPipeline,&p);
-
-    // Process the thread_bound_filter with the current thread.
-    while (g.process_item()!=thread_bound_filter::end_of_stream)
-        continue;
-
-    // Wait for pipeline to finish on the other thread.
-    t.join();    
-    return 0;
-}
-
-

The main thread does the following after - constructing the pipeline: -

- -
    -
  • Start the pipeline on another thread. -
  • - -
  • Service the thread_bound_filter until it reaches - end_of_stream. -
  • - -
  • Wait for the other thread to finish. -
  • - -
- -

The pipeline is run on a separate thread because the main thread is - responsible for servicing the - thread_bound_filter - g. The roles of the two threads can be reversed. A - single thread cannot do both roles. -

- - -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
thread_bound_filter(mode - filter_mode)() - -

Constructs a filter of the specified mode. The pipeline - Class section describes the modes. -

- -
result_type - try_process_item() - -

If an item is available and it can be processed without - exceeding the token limit, process the item with - filter::operator(). The return values are - detailed in the following table. -

- -

- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Return Value -

- -
-

Description -

- -
success - -

Applied - filter::operator() to one item. -

- -
-

item_not_available -

- -
-

No item is currently available - to process, or the token limit would be exceeded. -

- -
-

end_of_stream -

- -
-

No more items will ever arrive - at this filter. -

- -
-
- -

- -
- result_type process_item() - -

Like - try_process_item, but waits until it can - process an item or the end of the stream is reached. -

- -

Returns: Either - success or - end_of_stream. See the table above for - details. -

- -

- Caution

-

The current implementation spin waits until it can process - an item or reaches the end of the stream. -

- -
-
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/range_concept.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/range_concept.htm deleted file mode 100644 index d156f414f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/range_concept.htm +++ /dev/null @@ -1,267 +0,0 @@ - - - - - - - - - - - - - - - - - - - - -Range Concept - - - - - - - - - - - - - - -

Range Concept

- - -
-

Summary

- -

Requirements for type representing a recursively divisible set of - values. -

- -
- -

Requirements

- -

The following table lists the requirements for a - Range type - R. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Range Concept
-

Pseudo-Signature -

- -
-

Semantics -

- -
-

R::R( const R& ) -

- -
-

Copy constructor. -

- -
-

R::~R() -

- -
-

Destructor. -

- -
-

bool R::empty() const -

- -
-

True if range is empty. -

- -
-

bool R::is_divisible() - const -

- -
-

True if range can be partitioned into two - subranges. -

- -
-

R::R( R& r, split ) -

- -
-

Split - r into two subranges. -

- -
-
- -
- -

Description

- -

A Range can be recursively subdivided into two parts. It is - recommended that the division be into nearly equal parts, but it is not - required. Splitting as evenly as possible typically yields the best - parallelism. Ideally, a range is recursively splittable until the parts - represent portions of work that are more efficient to execute serially rather - than split further. The amount of work represented by a Range typically depends - upon higher level context, hence a typical type that models a Range should - provide a way to control the degree of splitting. For example, the template - class - blocked_range has a - grainsize parameter that specifies the biggest range considered - indivisible. -

- -

The constructor that implements splitting is called a - splitting constructor. If the set of values has a sense of - direction, then by convention the splitting constructor should construct the - second part of the range, and update the argument to be the first half. - Following this convention causes theparallel_for, - parallel_reduce and parallel_scan algorithms, - when running sequentially, to work across a range in the increasing order typical - of an ordinary sequential loop. -

- -
- -

Example

- -

The following code defines a type - TrivialIntegerRange that models the Range concept. It - represents a half-open interval [lower,upper) that is divisible down to a - single integer. -

- -
 
-struct TrivialIntegerRange {
-    int lower;
-    int upper;
-    bool empty() const {return lower==upper;}
-    bool is_divisible() const {return upper>lower+1;}
-    TrivialIntegerRange( TrivialIntegerRange& r, split ) {
-        int m = (r.lower+r.upper)/2;  
-        lower = m;
-        upper = r.upper;
-        r.upper = m;
-    }
-};
-
-

- TrivialIntegerRange is for demonstration and not very - practical, because it lacks a grainsize parameter. Use the library class - blocked_range instead. -

- -
- -

Model Types

- -

Type - blocked_range models a one-dimensional range. -

- -

Type - blocked_range2d models a two-dimensional range. -

- -

Type - blocked_range3d models a three-dimensional range. -

- -

The Container Range Concept models a container as a range. -

- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/range_concept/blocked_range2d_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/range_concept/blocked_range2d_cls.htm deleted file mode 100644 index 687c7956a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/range_concept/blocked_range2d_cls.htm +++ /dev/null @@ -1,365 +0,0 @@ - - - - - - - - - - - - - -blocked_range2d Template Class - - - - - - - - - - - - - - -

blocked_range2d Template Class

- - -
-

Summary

- Template class that represents recursively - divisible two-dimensional half-open interval. -
- -

Header

- -

-

#include "tbb/blocked_range2d.h"
-

- -
- -

Syntax

- -
template<typename RowValue, typename ColValue> class blocked_range2d;
-
- -

Description

- -

A - blocked_range2d<RowValue ,ColValue - > represents a half-open two dimensional range [i - 0,j - 0)×[i - 1,j - 1). Each axis of the range has its own splitting - threshold. The - RowValue and - ColValue must meet the requirements in the table in the - blocked_range Template Class section. A - blocked_range is splittable if either axis is - splittable. A blocked_range models the Range concept. -

- -
- -

Members

- -
 
-namespace tbb {
-template<typename RowValue, typename ColValue=RowValue>
-    class blocked_range2d {
-    public:
-        // Types
-        typedef blocked_range<RowValue> row_range_type;
-        typedef blocked_range<ColValue> col_range_type;
-
-        // Constructors
-        blocked_range2d( 
-            RowValue row_begin, RowValue row_end, 
-            typename row_range_type::size_type row_grainsize,
-            ColValue col_begin, ColValue col_end, 
-            typename col_range_type::size_type col_grainsize);
-        blocked_range2d( RowValue row_begin, RowValue row_end, 
-                         ColValue col_begin, ColValue col_end);
-        blocked_range2d( blocked_range2d& r, split );
-
-        // Capacity
-        bool empty() const;
-
-        // Access
-        bool is_divisible() const;
-        const row_range_type& rows() const;
-        const col_range_type& cols() const;
-    };
-}
-
-
- -

Example

- -

The code that follows shows a serial matrix - multiply, and the corresponding parallel matrix multiply that uses a - blocked_range2d to specify the iteration space. -

- -
-const size_t L = 150;
-const size_t M = 225;
-const size_t N = 300;
-
-void SerialMatrixMultiply( float c[M][N], float a[M][L], float b[L][N] ) {
-    for( size_t i=0; i<M; ++i ) {
-        for( size_t j=0; j<N; ++j ) {
-            float sum = 0;
-            for( size_t k=0; k<L; ++k )
-                sum += a[i][k]*b[k][j];
-            c[i][j] = sum;
-        }
-    }
-}
-
-
-#include "tbb/parallel_for.h"
-#include "tbb/blocked_range2d.h"
-
-using namespace tbb;
-
-const size_t L = 150;
-const size_t M = 225;
-const size_t N = 300;
-
-class MatrixMultiplyBody2D {
-    float (*my_a)[L];
-    float (*my_b)[N];
-    float (*my_c)[N];
-public:
-    void operator()( const blocked_range2d<size_t>& r ) const {
-        float (*a)[L] = my_a;
-        float (*b)[N] = my_b;
-        float (*c)[N] = my_c;
-        for( size_t i=r.rows().begin(); i!=r.rows().end(); ++i ){
-            for( size_t j=r.cols().begin(); j!=r.cols().end(); ++j ) {
-                float sum = 0;
-                for( size_t k=0; k<L; ++k )
-                    sum += a[i][k]*b[k][j];
-                c[i][j] = sum;
-            }
-        }
-    }
-    MatrixMultiplyBody2D( float c[M][N], float a[M][L], float b[L][N] ) :
-        my_a(a), my_b(b), my_c(c)
-    {}
-};
-
-void ParallelMatrixMultiply(float c[M][N], float a[M][L], float b[L][N]){
-    parallel_for( blocked_range2d<size_t>(0, M, 16, 0, N, 32),     
-                  MatrixMultiplyBody2D(c,a,b) );
-}
-
-

The blocked_range2d enables the - two outermost loops of the serial version to become parallel loops. The - parallel_for recursively splits the - blocked_range2d - until the pieces are no larger than 16x32. It invokes - MatrixMultiplyBody2D::operator() on each piece. -

- -

- -

The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
row_range_type - -

A - blocked_range<RowValue>. That is, the - type of the row values. -

- -
col_range_type - -

A - blocked_range<ColValue>. That is, the type of the column values. - -

- -
blocked_range2d<RowValue,ColValue>( RowValue - row_begin, RowValue row_end, typename row_range_type::size_type row_grainsize, - ColValue col_begin, ColValue col_end, typename col_range_type::size_type - col_grainsize ) - -

Effects: - Constructs a - blocked_range2d representing a two - dimensional space of values. The space is the half-open Cartesian - product [ row_begin, row_end) x [ col_begin, col_end), with - the given grain sizes for the rows and columns. -

- -

- Example: - The statement - " blocked_range2d<char,int> r('a', 'z'+1, 3, 0, - 10, 2 );" constructs a two-dimensional space that contains all value - pairs of the form - (i, j), where i - ranges from - 'a' to - 'z' with a grain size of 3, and - j ranges from 0 to 9 with a grain size of 2. -

- -
blocked_range2d<RowValue,ColValue>( RowValue - row_begin, RowValue row_end, ColValue col_begin, ColValue col_end ) - Same as - blocked_range2d(row_begin,row_end,1,col_begin,col_end,1). -
blocked_range2d<RowValue,ColValue> ( - blocked_range2d& range, split ) - Partitions range into two subranges. The - newly constructed - blocked_range2d is approximately the second - half of the original - range, and - range is updated to be the remainder. Each - subrange has the same grain size as the original - range. The split is either by rows or columns. - The choice of which axis to split is intended to cause, after repeated - splitting, the subranges to approach the aspect ratio of the respective row and - column grain sizes. For example, if the - row_grainsize is twice - col_grainsize, the subranges will tend towards - having twice as many rows as columns. -
bool empty() const - -

Determines if range is empty. -

- -

Returns: - - rows().empty()||cols().empty() -

- -
bool is_divisible() - const - -

Determines if range can be split into subranges.. -

- -

Returns: - - rows().is_divisible()||cols().is_divisible() -

- -
const row_range_type& rows() - const - -

Returns: - Range containing the rows of the value space. -

- -
const col_range_type& cols() - const - -

Returns: - Range containing the columns of the value space. -

- -
-
- -

- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/range_concept/blocked_range3d_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/range_concept/blocked_range3d_cls.htm deleted file mode 100644 index b5f527c29..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/range_concept/blocked_range3d_cls.htm +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - - - - - - - -blocked_range3d Template Class - - - - - - - - - - - - - - -

blocked_range3d Template Class

- - -
-

Summary

Template class that represents recursively divisible three-dimensional half-open interval.
- -

Header

- -

#include "tbb/blocked_range3d.h"

- -
- -

Syntax

- -
template<typename PageValue, typename RowValue, typename ColValue> class blocked_range3d;
-
- - -

Description

- -

A blocked_range3d<PageValue,RowValue,ColValue> is the three-dimensional extension of blocked_range2d.

- -
- - -

Members

- -
-namespace tbb {
-template<typename PageValue, typename RowValue=PageValue, typename ColValue=RowValue>
-    class blocked_range3d {
-    public:
-        // Types
-        typedef blocked_range<PageValue> page_range_type;
-        typedef blocked_range<RowValue> row_range_type;
-        typedef blocked_range<ColValue> col_range_type;
-
-        // Constructors
-        blocked_range3d( 
-            PageValue page_begin, PageValue page_end,  
-            typename page_range_type::size_type page_grainsize,
-            RowValue row_begin, RowValue row_end, 
-            typename row_range_type::size_type row_grainsize,
-            ColValue col_begin, ColValue col_end, 
-            typename col_range_type::size_type col_grainsize);
-        blocked_range3d( PageValue page_begin, PageValue page_end,  
-                         RowValue row_begin, RowValue row_end, 
-                         ColValue col_begin, ColValue col_end);
-        blocked_range3d( blocked_range3d& r, split );
-
-        // Capacity
-        bool empty() const;
-
-        // Access
-        bool is_divisible() const;
-        const page_range_type& pages() const;
-        const row_range_type& rows() const;
-        const col_range_type& cols() const;
-    };
-}
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/range_concept/blocked_range_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/range_concept/blocked_range_cls.htm deleted file mode 100644 index 18629fb28..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/range_concept/blocked_range_cls.htm +++ /dev/null @@ -1,520 +0,0 @@ - - - - - - - - - - - - - - - - - - - -blocked_range Template Class - - - - - - - - - - - - - - -

blocked_range Template Class

- - -
-

Summary

- Template class for a recursively divisible - half-open interval. -
- -

Header

- -

-

#include "tbb/blocked_range.h"
-

- -
- -

Syntax

- -
template<typename Value> class blocked_range;
-
- -

Description

- -

A - blocked_range<Value> represents a half-open - range [i,j) that can be recursively split. The types of - i and - j must model the requirements in the following table. In the - table, type - D is the type of the expression - "j-i". It can be any integral type that is convertible - to - size_t. Examples that model the Value requirements are - integral types, pointers, and STL random-access iterators whose difference can - be implicitly converted to a - size_t. -

- -

A - blocked_range models the Range concept. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Value Concept for blocked_range
-

Pseudo-Signature -

- -
-

Semantics -

- -
-

Value::Value( const Value& - ) -

- -
-

Copy constructor. -

- -
-

Value::~Value() -

- -
-

Destructor. -

- -
-

void operator=( const Value& - ) -

- Note

-

The return type - void in the pseudo-signature denotes that - operator= is not required to return a - value. The actual - operator= can return a value, which will - be ignored by - blocked_range . -

- -
-

- -
-

Assignment -

- -
-

bool operator<( const - Value& i, const Value& j ) -

- -
-

Value - i precedes value j. -

- -
-

D operator-( const Value& i, - const Value& j ) -

- -
-

Number of values in range - [i,j). -

- -
-

Value operator+( const Value& - i, D k ) -

- -
-

kth value after - i. -

- -
-
- -

A - blocked_range<Value> specifies a - grainsize of type - size_t. A - blocked_range is splittable into two subranges if the - size of the range exceeds - grain size. The ideal grain size depends upon the context of the - - blocked_range<Value>, which is typically as the - range argument to the loop templates - parallel_for, - parallel_reduce, or - parallel_scan. A too small grainsize may cause - scheduling overhead within the loop templates to swamp speedup gained from - parallelism. A too large grainsize may unnecessarily limit parallelism. For - example, if the grain size is so large that the range can be split only once, - then the maximum possible parallelism is two. -

- -

Here is a suggested procedure for choosing - grainsize: -

- -
    -
  1. Set the grainsize parameter to 10,000. This - value is high enough to amortize scheduler overhead sufficiently for - practically all loop bodies, but may be unnecessarily limit parallelism. -
  2. - -
  3. Run your algorithm on - one processor. -
  4. - -
  5. Start halving the grainsize parameter and see - how much the algorithm slows down as the value decreases. -
  6. - -
- -

A slowdown of about 5-10% is a good setting for - most purposes. -

- -

- Tip

-

For a - blocked_range [i,j) where j<i, - not all methods have specified behavior. However, enough methods do have - specified behavior that - parallel_for, - parallel_reduce, and - parallel_scan iterate over the same iteration space - as the serial loop - for( Value index=i; index<j; ++index )..., even - when - j<i. If - TBB_USE_ASSERT is nonzero, methods with unspecified - behavior raise an assertion failure. -

- -
-

Example -

- -

A - blocked_range<Value> typically appears as a - range argument to a loop template. See the examples for - parallel_for, parallel_reduce, and - parallel_scan. -

- -
- -

Members

- -
 
-namespace tbb {
-    template<typename Value>
-    class blocked_range {
-    public:
-        // types
-        typedef size_t size_type;
-        typedef Value const_iterator;
-
-        // constructors
-        blocked_range( Value begin, Value end, 
-                       size_type grainsize=1 );
-        blocked_range( blocked_range& r, split );
-
-        // capacity
-        size_type size() const;
-        bool empty() const;
-    
-        // access
-        size_type grainsize() const;
-        bool is_divisible() const;
-
-        // iterators
-        const_iterator begin() const;
-        const_iterator end() const;
-    };
-}
-
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
size_type - - -

The type for measuring the size of a - blocked_range. The type is always a - size_t. -

- -
const_iterator - The type of a value in the range. Despite - its name, the type - const_iterator is not necessarily an STL - iterator; it merely needs to meet the Value requirements in the table above. - However, it is convenient to call it - const_iterator so that if it is a - const_iterator, then the blocked_range behaves like a - read-only STL container. -
blocked_range( Value begin, Value - end, size_t grainsize=1 ) - - More Info -
blocked_range( blocked_range& - range, split ) - - More Info -
size_type size() const - - -

Requirements : end()<begin() is - false. -

- -

Effects: Determines size of range. -

- -

Returns -

- -

end()-begin() -

- -
bool empty() const - - -

Effects: Determines if range is empty. -

- -

Returns: - !(begin()<end()) -

- -
size_type grainsize() const - - -

Returns: Grain size of range. -

- -
bool is_divisible() const - - -

Requirements: - !(end()<begin()) -

- -

Effects: Determines if range can be split into - subranges. -

- -

Returns: True if - size()>grainsize(); false otherwise. -

- -
const_iterator begin() - const - -

Returns: Inclusive lower bound on range. -

- -
const_iterator end() const - - -

Returns: Exclusive upper bound on range. -

- -
-
- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/range_concept/blocked_range_cls/blocked_range.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/range_concept/blocked_range_cls/blocked_range.htm deleted file mode 100644 index 32acc5af6..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/range_concept/blocked_range_cls/blocked_range.htm +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - -blocked_range( Value begin, Value end, size_t grainsize=1 ) - - - - - - - - - -

blocked_range( Value begin, Value end, size_t grainsize=1 )

- -
-

Requirements

- -

The parameter grainsize must be positive. The debug version of the library - raises an assertion failure if this requirement is not met.

- -
- -

Effects

- -

Constructs a blocked_range representing the half-open interval [ - begin, end) with the given grainsize.

- -
- -

Example

- -

The statement " blocked_range<int> r( 5, 14, 2 );" constructs a range of - int that contains the values 5 through 13 inclusive, with a grainsize of 2. - Afterwards, r.begin()==5 and r.end()==14.

- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/range_concept/blocked_range_cls/blocked_range_1.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/range_concept/blocked_range_cls/blocked_range_1.htm deleted file mode 100644 index 60d42abf7..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/range_concept/blocked_range_cls/blocked_range_1.htm +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - -blocked_range( blocked_range& range, split ) - - - - - - - - - -

blocked_range( blocked_range& range, split )

- -
-

Requirements

- -

- is_divisible() is true.

- -
- -

Effects

- -

Partitions range into two subranges. The newly constructed - blocked_range is approximately the second half of the original - range, and range is updated to be the - remainder. Each subrange has the same grainsize as the original - range.

- -
- -

Example

- -

Let i and j be integers that define a half-open interval - [ i, j) and let g specifiy a grain size. The - statement blocked_range<int> r(i,j,g) constructs a - blocked_range<int> that represents [ i, - j) with grain size g. Running the statement - blocked_range<int> s(r,split); subsequently causes r to - represent [ i, i +( j - i)/2) and s to - represent [ i +( j - i)/2, j), both with grain size - g.

- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/splittable_concept.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/splittable_concept.htm deleted file mode 100644 index 0d187bf9e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/splittable_concept.htm +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - -Splittable Concept - - - - - - - - - - - - - - -

Splittable Concept

- - -
-

Summary

- -

Requirements for a type whose instances can be split into two pieces. -

- -
- -

Requirements

- -

The following table lists the requirements for a - splittable type - X with instance - x. -

- - -
- - - - - - - - - - - - - - - - - - - - - - -
Splittable Concept
-

Pseudo-Signature - -

- -
-

Semantics - -

- -
-

X::X(X& x, Split) -

- -
-

Split - x into - x and newly constructed object. -

- -
-
- -
- -

Description

- -

A type is splittable if it has a - splitting constructor that allows an instance to be split into - two pieces. The splitting constructor takes as arguments a reference to the - original object, and a dummy argument of type - Split, which is defined by the library. The dummy - argument distinguishes the splitting constructor from a copy constructor. After - the constructor runs, - x and the newly constructed object should - represent the two pieces of the original - x. The library uses splitting constructors in - two contexts: -

- -
    -
  • - Partitioning a range into two subranges that can be processed - concurrently. -
  • - -
  • - Forking a body (function object) into two bodies that can run - concurrently. -
  • - -
- -

The following model types provide examples. -

- -
- -

Model Types

- -

- blocked_range and - blocked_range2d represent splittable ranges. For each - of these, splitting partitions the range into two subranges. See the - blocked_range Template Class section for an example of - the splitting constructor for - blocked_range. -

- -

The bodies for - parallel_reduce and - parallel_scan must be splittable. For each of these, - splitting results in two bodies that can be run concurrently. -

- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/splittable_concept/split_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/splittable_concept/split_cls.htm deleted file mode 100644 index bf3c580cf..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/algorithms/splittable_concept/split_cls.htm +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - - - -split Class - - - - - - - - - - - - - - -

split Class

- - -
-

Summary

-

Type for dummy argument of a splitting constructor.

-
- -

Header

-

#include "tbb/tbb_stddef.h"

-
- -

Syntax

-
class split;
-
- -

Description

-

An argument of type split is used to distinguish a splitting constructor from a copy constructor.

- - -
- - -

Members

-
 
-namespace tbb {
-    class split {
-    };
-}
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices.htm deleted file mode 100644 index 524f7a268..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices.htm +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - -Appendices - - - - - - - - - -

Appendices

- - -
-

This section describes the appendices related to this document. -

- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features.htm deleted file mode 100644 index d14e1aeaa..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features.htm +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - -Community Preview Features - - - - - - - - - - - - - - -

Community Preview Features

- - -
-

This section provides documentation for Community Preview (CP) features.

-
- - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/aggregator_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/aggregator_cls.htm deleted file mode 100644 index 7609fb943..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/aggregator_cls.htm +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - - -aggregator Class - - - - - - - - - - - - - - -

aggregator Class

- - -
-

Summary

- -

Class for mutual exclusion that does not model the - Mutex Concept. -

- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/aggregator_cls/basic_interface.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/aggregator_cls/basic_interface.htm deleted file mode 100644 index 3e2dc34e5..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/aggregator_cls/basic_interface.htm +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - -aggregator Class Basic Interface - - - - - - - - - - - - - - -

aggregator Class Basic Interface

- - -
-

Syntax

- -
class aggregator;
-
- -

Header

- -
#define TBB_PREVIEW_AGGREGATOR 1
-#include "tbb/aggregator.h"
-
- -

Description

- -

An aggregator is similar to a mutex in that it allows for mutually - exclusive execution of operations, however the interface is quite different. In particular, operations - (in the form of function bodies or lambda functions) are passed to an aggregator for - execution via an execute method on the aggregator object. Operations - passed to the same aggregator object will be executed mutually exclusively. - The execute method returns after the function passed to it has completed execution. -

- -
- -

Members

- -
namespace tbb {
-  class aggregator {
-  public:
-    aggregator();
-    template<typename Body> 
-    void execute(const Body& b);
-  };
-}
- -
The following table provides additional information on the - members of this class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
aggregator() - -

Constructs an aggregator object. -

- -
template<typename Body> void execute(const Body& b) - -

Submits b to aggregator to be executed in a mutually - exclusive fashion. Returns after b has been executed.

- -
-
- -
- -

Example

- -

The following example uses an aggregator to safely operate on a non-concurrent std::priority_queue container.

- -
typedef priority_queue<value_type, vector<value_type>, compare_type> pq_t;
-pq_t my_pq;
-aggregator my_aggregator;
-value_type elem = 42;
-
-// push elem onto the priority queue
-my_aggregator.execute( [&my_pq, &elem](){ my_pq.push(elem); } );
-
-// pop an elem from the priority queue
-bool result = false;
-my_aggregator.execute( [&my_pq, &elem, &result](){
-  if (!my_pq.empty()) {
-    result = true;
-    elem = my_pq.top();
-    my_pq.pop();
-  }
-} );
-
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/aggregator_cls/expert_interface.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/aggregator_cls/expert_interface.htm deleted file mode 100644 index 3b60023c6..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/aggregator_cls/expert_interface.htm +++ /dev/null @@ -1,275 +0,0 @@ - - - - - - - - - - - - - - -aggregator Class Expert Interface - - - - - - - - - - - - - - -

aggregator Class Expert Interface

- - -
-

Syntax

- -
template<typename handler_type>
-class aggregator_ext;
-
- -

Header

- -
#define TBB_PREVIEW_AGGREGATOR 1
-#include "tbb/aggregator.h"
-
- -

Description

- -

The extended aggregator interface is provided for expert-level use of the aggregator. - It gives the user more control over the operations that are passed to the aggregator and how those operations - are handled by the aggregator. Specifically, instead of an execute method to pass in a - particular function, there is a process method to which any sort of data (derived from aggregator_operation, - see below) can be passed. In addition, the user must specify a custom function object that performs the operations specified - by the data passed in through the process method. -

- -
- -

Members

- -
namespace tbb {
-  class aggregator_operation {
-   public:
-    enum aggregator_operation_status {agg_waiting=0,agg_finished};
-    aggregator_operation();
-    void start();
-    void finish();
-    aggregator_operation* next();
-    void set_next(aggregator_operation* n);
-  };
-
-  template<typename handler_type>
-  class aggregator_ext {
-   public:
-    aggregator_ext(const handler_type& h);
-    void process(aggregator_operation *op);
-  };
-}
- -
The following table provides additional information on the - members of this class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
aggregator_ext(const handler_type& h) - -

Constructs an aggregator_ext object that uses - handler h to handle operations.

- -
void process(aggregator_operation* op) - -

Submits data about an operation in op to aggregator_ext - to be executed in a mutually exclusive fashion. Returns after op has been handled. -

- -
aggregator_operation::aggregator_operation() - -

Constructs a base aggregator_operation object.

- -
void aggregator_operation::start() - -

Prepares the aggregator_operation object to be handled.

- -
void aggregator_operation::finish() - -

Prepares the aggregator_operation object to be released to its originating thread.

- -
aggregator_operation* aggregator_operation::next() - -

The next aggregator_operation following this. -

- -
void aggregator_operation::set_next(aggregator_operation* n) - -

Makes n the next aggregator_operation following this. -

- -
-
- -
- -

Example

- -

The following example again uses an aggregator_ext to safely operate on a non-concurrent std::priority_queue container.

- -
typedef priority_queue<value_type, vector<value_type>, compare_type> pq_t;
-pq_t my_pq;
-value_type elem = 42;
-
-// The operation data, derived from aggregator_node
-class op_data : public aggregator_node
- public:
-  value_type* elem;
-  bool success, is_push;
-  op_data(value_type* e, bool push=false) : 
-    elem(e), success(false), is_push(push) {}
-};
-
-// A handler to pass in the aggregator_ext template
-class my_handler_t {
-  pq_t *pq;
- public:
-  my_handler_t() {}
-  my_handler_t(pq_t *pq_) : pq(pq_) {}
-  void operator()(aggregator_node* op_list) {
-    op_data* tmp;
-    while (op_list) {
-      tmp = (op_data*)op_list;
-      op_list = op_list->next();
-      tmp->start();
-      if (tmp->is_push) pq->push(*(tmp->elem));
-      else {
-        if (!pq->empty()) {
-          tmp->success = true;
-          *(tmp->elem) = pq->top();
-          pq->pop();
-        }
-      }
-      tmp->finish();
-    }
-  }
-};
-
-// create the aggregator_ext and initialize with handler instance
-aggregator_ext<my_handler_t> my_aggregator(my_handler_t(my_pq));
-
-// push elem onto the priority queue
-op_data my_push_op(&elem, true);
-my_aggregator.process(&my_push_op);
-
-// pop an elem from the priority queue
-bool result;
-op_data my_pop_op(&elem);
-my_aggregator.process(&my_pop_op);
-result = my_pop_op.success;
- -

There are several important things to note in this example. Most importantly is the handler -algorithm, which must conform to what is shown above. Specifically, the handler must receive a -linked list of aggregator_nodes, and it must process all the nodes in the list. The ordering of -this processing is up to the user, but all the nodes must be processed before the handler returns. -The next and set_next methods on aggregator_node should be used -for all manipulations of nodes in the list.

- - -

Further, to process an aggregator_node, the user must first call the method start on the node. -Then, the user can handle the operation associated with the node in whatever way necessary. When -this is complete, the user must call the method finish on the node. The finish method releases the -node to its originating thread, causing that thread's invocation of the process method to return.

- - -

The handler function in the example above illustrates this process in the simplest fashion: -loop over the list handling each operation in turn, call start before working with the information -contained in the node, call finish when done with the node.

- -
- -
- - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/concurrent_lru_cache_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/concurrent_lru_cache_cls.htm deleted file mode 100644 index eb538b420..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/concurrent_lru_cache_cls.htm +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - -concurrent_lru_cache Template Class - - - - - - - - - - - - - - -

concurrent_lru_cache Template Class

- - -
-

Summary

- -

Template class for Least Recently Used cache with - concurrent operations. -

- -
- -

Syntax

- -
template <typename key_type, typename value_type, typename value_functor_type = value_type (*)(key_type) >
- class concurrent_lru_cache;
-
- -

Header

- -
#define TBB_PREVIEW_CONCURRENT_LRU_CACHE 1
- #include "tbb/concurrent_lru_cache.h"
-
- -

Description

- -

A - concurrent_lru_cache container maps keys to values - with the ability to limit the number of stored unused objects. There is at most - one element in the container for each key. -

- -

The container permits multiple threads to - concurrently retrieve items from it. -

- -

The container tracks the lifetime of retrieved - items by returning a proxy object instead of a real value. -

- -

The container stores all the items that are - currently in use and a limited number of unused items. Extra items are removed - in a least recently used manner. -

- -

When no item is found for a key, the container - calls the user provided function object to get a needed value and inserts it. - The functor object must be thread safe. -

- -
- -

Members

- -
namespace tbb {
- template <typename key_type,
- typename value_type,
- typename value_functor_type = value_type (*)(key_type) >
- class concurrent_lru_cache{
- private:
- class handle_object;
- public:
- typedef handle_object handle;
- public:
- concurrent_lru_cache(value_functor_type f,std::size_t number_of_lru_history_items);
- handle_object operator()(key_type k);
- private:
- struct handle_move_t;
- class handle_object {
- public:
- handle_object(handle_move_t m);
- operator handle_move_t();
- value_type& value();
- ~handle_object();
- friend handle_move_t move(handle_object& h);
- private:
- void operator=(handle_object&);
- handle_object(handle_object &);
- };
-};
- }
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
concurrent_lru_cache(value_function_type f,std::size_t number_of_lru_history_items); - -

Constructs an empty cache with a - number_of_lru_history_items maximum - number of stored unused objects, and - f function - object returning new values. -

- -
handle_object operator[](key_type - k) - -

Search the container for a pair with - given key. If the pair is not found, the user provided function object is - called to get the value and insert it into the container. -

- -

Returns: - handle_object pointing to the matching - value. -

- -
~ concurrent_lru_cache - () - -

Destroys all items in the container, and - the container itself, so that it can no longer be used. -

- -
handle_object class - More Info -
handle_move_t class - -

This is an instrumental class to allow - certain conversions that allow ownership transfer between instances of - handle_object objects. As well it - allows - handle_object objects to be passed to - and returned from functions. The class has no members other than holding a - reference to value object in LRU cache container and a pointer to the container - itself. -

- -
-
- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/concurrent_lru_cache_cls/handle_object_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/concurrent_lru_cache_cls/handle_object_cls.htm deleted file mode 100644 index 8313f7c95..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/concurrent_lru_cache_cls/handle_object_cls.htm +++ /dev/null @@ -1,215 +0,0 @@ - - - - - - - - - - - - - -handle_object class - - - - - - - - - - - - - - -

handle_object class

- - -
-

Summary

- -

Class that provides read and write access to value - in a - concurrent_lru_cache. -

- -
- -

Syntax

- -
template <typename key_type,
- typename value_type,
- typename value_functor_type = value_type (*)(key_type) >
- class concurrent_lru_cache::handle_object {
-
- -

Header

- -
#include "tbb/concurrent_lru_cache.h"
-
- -

Description

- -

A - handle_object is a - (smart handle) proxy object returned by the cache container allowing getting - reference to the value. -

- -

Live object of this type prevents the container - from erasing values while they are being used. -

- -

The - handle_object does not - have copy semantics; instead it only allows transfer of ownership i.e. it - semantics is similar to one of - std::auto_ptr or move - semantics from C++11. -

- -
- -

Members and free standing functions

- - -
namespace tbb {
- template <typename key_type,
- typename value_type,
- typename value_functor_type = value_type (*)(key_type) >
- class concurrent_lru_cache::handle_object {
- public:
- handle_object(handle_move_t m);
- operator handle_move_t();
- value_type& value();
- ~handle_object();
- private:
- void operator=(handle_object&);
- handle_object(handle_object &);
- };
-};
- handle_move_t move(handle_object& h);
- }
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
handle_object(handle_move_t - m) - -

Constructs an - handle_object object from a pointer or - from another - handle_object (through implicit - conversion to - handle_move_t object). -

- -

Since - handle_object objects owns a reference - to a value object of LRU cache, when a new - handle_object is constructed from - another - handle_object, the former owner - releases the reference ownership (i.e. no longer refers to any value) . -

- -
operator handle_move_t() - - -

This method should not be called - directly, instead use free standing - move - function. -

- -

Effects: Transfer reference - ownership from - handle_object objects to temporary - handle_move_t object. -

- -

Returns: - handle_move_t object pointing to the - same value object of LRU cache -

- -
value_type& value() - -

Return a reference to value object of LRU - cache container. -

- -

Returns: Reference to - value_type - object inside the LRU cache container. -

- -
~handle_object() - -

Release a reference to value object of - LRU cache container. It it was the last reference to the value object the - container is allowed to evict the value. -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/enabling_a_community_preview_feature.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/enabling_a_community_preview_feature.htm deleted file mode 100644 index 6afd8b59e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/enabling_a_community_preview_feature.htm +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - - - -Enabling a Community Preview Feature - - - - - - - - - - - - - - -

Enabling a Community Preview Feature

- - -
-

A Community Preview feature may be defined completely in header files or it may require some additional support defined in a library.

- -

For a CP feature that is contained completely in header files, a feature-specific macro must be defined before inclusion of the header files.

- -

Example

-
#define TBB_PREVIEW_FOO 1
- #include "tbb/foo.h"
-

If a CP feature requires support from a library, then an additional library must be linked with the application.

- -

The use of separate headers, feature-specific macros and separate libraries mitigates the impact of Community Preview features on other product features.

-

- Note

-

Unless a CP feature is explicitly enabled using the above mechanisms, it will have no impact on the application.

-
- - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/flow_graph/or_node_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/flow_graph/or_node_cls.htm deleted file mode 100644 index 4ca006708..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/flow_graph/or_node_cls.htm +++ /dev/null @@ -1,382 +0,0 @@ - - - - - - - - - - - - - - -or_node Template Class - - - - - - - - - - - - - - -

or_node Template Class

- - -
-

Summary

- -

A node that broadcasts messages received at its - input ports to all of its successors. Each input port pi is a - receiver<Ti>. The messages are broadcast - individually as they are received at each port. The output message type is a - struct that contains an index number that identifies the port on which the - message arrived and a tuple of the input types where the value is stored. -

- -
- -

Syntax

- -
template<typename InputTuple>
- class or_node;
-
- -

Header

- -
#define TBB_PREVIEW_GRAPH_NODES 1
- #include "tbb/flow_graph.h"
-
- -

Description

- -

An or_node is a - graph_node and - sender< - or_node<InputTyple>::output_type >. It contains a tuple of - input ports, each of which is a - receiver<Ti> for - each of the - T0 .. TN in - InputTuple. It supports multiple input receivers with distinct types - and broadcasts each received message to all of its successors. Unlike a - join_node, each - message is broadcast individually to all successors of the - or_node as it arrives - at an input port. The incoming messages are wrapped in a struct that contains - the index of the port number on which the message arrived and a tuple of the - input types where the received value is stored. -

- -

The function template - input_port described - in 6.19 simplifies the syntax for getting a reference to a specific input port. - -

- -

Rejection of messages by successors of the - or_node is handled - using the protocol in the Message Passing Protocol, see link below. The input - ports never reject incoming messages. -

- -

InputTuple must be a - flow::tuple<T0,T1,...> where each - element is copy-constructible and assignable. -

- -
- -

Example

- -
#include<cstdio>
-#define TBB_PREVIEW_GRAPH_NODES 1
-#include "tbb/flow_graph.h"
-
-using namespace tbb::flow;
-
-int main() {
-  graph g;
-  function_node<int,int> f1( g, unlimited,
-                               [](const int &i) { return 2*i; } );
-  function_node<float,float> f2( g, unlimited,
-                               [](const float &f) { return f/2; } );
-
-  or_node< flow::tuple<int,float> > my_or_type;
-  my_or_type o(g);
-
-  function_node< my_or_type::output_type >
-    f3( g, unlimited,
-        []( const my_or_type::output_type &v ) {
-            if (v.indx == 0) {
-              printf("Received an int %d\n", 
-                     std::get<0>(v.result));
-            } else {
-              printf("Received a float %f\n", 
-                     std::get<1>(v.result));
-           }
-        }
-    );
-  make_edge( f1, input_port<0>(o) );
-  make_edge( f2, input_port<1>(o) );
-  make_edge( o, f3 );
-
-  f1.try_put( 3 );
-  f2.try_put( 3 );
-  g.wait_for_all();
-  return 0;
- }
-

In the example above, three - function_node objects - are created: - f1 multiplies an int i - by 2, - f2 divides a - float f by 2, and - f3 prints the values - from - f1 and - f2 as they arrive. The - - or_node j wraps the - output of - f1 and - f2 and forwards each - result to - f3. This example is - purely a syntactic demonstration since there is very little work in the nodes. -

- -
- -

Members

- -
namespace tbb {
-namespace flow {
-  template<typename InputTuple>
-  class or_node : public graph_node,
-  public sender<impl-dependent-output-type > {
-  public:
-    typedef struct { size_t indx; InputTuple result; } output_type;
-    typedef receiver<output_type> successor_type;
-    implementation-dependent-tuple input_ports_tuple_type;
-
-    or_node(graph &g);
-    or_node(const or_node &src);
-    input_ports_type &input_ports();
-    bool register_successor( successor_type &r );
-    bool remove_successor( successor_type &r );
-    bool try_get( output_type &v );
-    bool try_reserve( output_type & );
-    bool try_release( );
-    bool try_consume( );
-  };
-}
-}
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
or_node(graph &g) - -

Constructs an - or_node that - belongs to the - graph g. -

- -
or_node( const or_node &src - ) - -

Constructs an - or_node. The - list of predecessors, messages in the input ports, and successors are NOT - copied. -

- -
input_ports_type& - input_ports() - -

Returns: A - flow::tuple - of receivers. Each element inherits from - tbb::receiver<T> where T is the - type of message expected at that input. Each tuple element can be used like any - other - flow::receiver<T>. -

- -
bool register_successor( - successor_type & r ) - -

Adds - r to the set - of successors. -

- -

Returns: - true. -

- -
bool remove_successor( - successor_type & r ) - -

Removes - r from the - set of successors. -

- -

Returns: - true. -

- -
bool try_get( output_type &v - ) - -

An - or_node - contains no buffering and therefore does not support gets. -

- -

Returns: - false. -

- -
bool try_reserve( output_type & - ) - -

An - or_node - contains no buffering and therefore cannot be reserved. -

- -

Returns: - false. -

- -
bool try_release( ) - -

An - or_node - contains no buffering and therefore cannot be reserved. -

- -

Returns: - false. -

- -
bool try_consume( ) - -

An - or_node - contains no buffering and therefore cannot be reserved. -

- -

Returns: - false. -

- -
-
- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/flow_graph_features.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/flow_graph_features.htm deleted file mode 100644 index 0253190c0..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/flow_graph_features.htm +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - -Flow Graph - - - - - - - - - - - - - - -

Flow Graph

- - -
-

This section describes Flow Graph nodes that are available as Community Preview features.

-
- - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/run_time_loader.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/run_time_loader.htm deleted file mode 100644 index 4d118a1fe..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/run_time_loader.htm +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - - - - - - - -Run-time loader - - - - - - - - - - - - - - -

Run-time loader

- - -
-

Summary

- -

The run-time loader is a mechanism that provides additional run-time control over the version of the Intel® Threading Building Blocks (Intel® TBB) dynamic library used by an application, plug-in, or another library.

-
- -

Header

-
#define TBB_PREVIEW_RUNTIME_LOADER 1
- #include "tbb/runtime_loader.h"
- -

Library

- - -
- - - - - - - - - - - - - - - - - - - -
-

OS

-
-

Release build

-
-

Debug build

-
-

Windows

-
-

tbbproxy.lib

-
-

tbbproxy_debug.lib

-
-
-
- -

Description

- -

The run-time loader consists of a class and a static library that can be linked with an application, library, or plug-in to provide better run-time control over the version of Intel® TBB used. The class allows loading a desired version of the dynamic library at run time with explicit list of directories for library search. The static library provides stubs for functions and methods to resolve link-time dependencies, which are then dynamically substituted with the proper functions and methods from a loaded Intel® TBB library.

- -

All instances of class runtime loader in the same module (i.e. exe or dll) share certain global state. The most noticeable piece of this state is the loaded Intel® TBB library. The implications of that are:

- -

Only one Intel® TBB library per module can be loaded.

- -

If one runtime_loader instance has already loaded a library, another one created by the same module will not load another one. If the loaded library is suitable for the second instance, both will use it cooperatively, otherwise an error will be reported (details below).

- -

If different versions of the library are requested by different modules, those can be loaded, but may result in processor oversubscription.

- -

runtime_loader objects are not thread-safe and may work incorrectly if used concurrently.

- -
    -
  • -

    If an application or a library uses runtime_loader, it should be linked with one of the above specified libraries instead of a normal Intel® TBB library.

    -
  • -
-
- -

Example

-
#define TBB_PREVIEW_RUNTIME_LOADER 1
- #include "tbb/runtime_loader.h"
- #include "tbb/parallel_for.h"
- #include <iostream>
- char const * path[] = { "c:\\myapp\\lib\\ia32", NULL };
- int main() {
- tbb::runtime_loader loader( path );
- if( loader.status()!=tbb::runtime_loader::ec_ok )
- return -1;
- // The loader does not impact how the library is used
- tbb::parallel_for(0, 10, ParallelForBody());
- return 0;
- }
-

In this example, the Intel® Threading Building Blocks (Intel®) library will be loaded from the c:\myapp\lib\ia32 directory. No explicit requirements for a version are specified, so the minimal suitable version is the version used to compile the example, and any higher version is suitable as well. If the library is successfully loaded, it can be used in the normal way.

-
-
- - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/run_time_loader/runtime_loader_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/run_time_loader/runtime_loader_cls.htm deleted file mode 100644 index 9aed298fd..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/run_time_loader/runtime_loader_cls.htm +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - - - - - - - - -runtime_loader Class - - - - - - - - - - - - - - -

runtime_loader Class

- - -
-

Summary

- -

Class for run time control over the loading of an - Intel® Threading Building Blocks dynamic library. -

- -
- -

Syntax

- -
class runtime_loader;
-
- -

Members

- -
namespace tbb {
- class runtime_loader {
- // Error codes.
- enum error_code {
- ec_ok, // No errors.
- ec_bad_call, // Invalid function call.
- ec_bad_arg, // Invalid argument passed.
- ec_bad_lib, // Invalid library found.
- ec_bad_ver, // The library found is not suitable.
- ec_no_lib // No library found.
- };
- // Error mode constants.
- enum error_mode {
- em_status, // Save status of operation and continue.
- em_throw, // Throw an exception of error_code type.
- em_abort // Print message to stderr, and abort().
- };
- runtime_loader( error_mode mode = em_abort );
- runtime_loader(
- char const *path[],
- // List of directories to search in.
- int min_ver = TBB_INTERFACE_VERSION,
- // Minimal suitable version
- int max_ver = INT_MAX,
- // Maximal suitable version
- error_mode mode = em_abort
- // Error mode for this instance.
- );
- ~runtime_loader();
- error_code load(
- char const * path[],
- int min_ver = TBB_INTERFACE_VERSION,
- int max_ver = INT_MAX
- );
- error_code status();
- };
- }
- -
The following table provides additional information on the - members of this class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
runtime_loader( error_mode mode = - em_abort ) - -

Initialize - runtime_loader but do not load a - library. -

- -
runtime_loader(char const * - path[], int min_ver = TBB_INTERFACE_VERSION, int max_ver = INT_MAX, error_mode - mode = em_abort ) - -

Requirements: The last element of - path[] must - be - NULL. -

- -

Effects: Initialize - runtime_loader and load Intel® Threading Building Blocks (Intel® TBB) - (see load() for details). If - error mode - equals to em_status, the method - status() can - be used to check whether the library was loaded or not. If - error mode - equals to - em_throw, in - case of a failure an exception of type - error_code - will be thrown. If - error mode - equals to - em_abort, in - case of a failure a message will be printed to stderr, and execution aborted. -

- -
error_code load(char const * - path[],int min_ver = TBB_INTERFACE_VERSION, int max_ver = INT_MAX) - More Info -
error_code status() - -

Returns: If error mode is - em_status, - the function returns status of the last operation. -

- -
-
- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/run_time_loader/runtime_loader_cls/error_code_load.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/run_time_loader/runtime_loader_cls/error_code_load.htm deleted file mode 100644 index ef50948d8..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/run_time_loader/runtime_loader_cls/error_code_load.htm +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - -error_code load(char const * path[],int min_ver = TBB_INTERFACE_VERSION, int max_ver = INT_MAX) - - - - - - - - - - - - - - -

error_code load(char const * path[],int min_ver - = TBB_INTERFACE_VERSION, int max_ver = INT_MAX)

- - -
-

Requirements

- -

The last element of - path[] must be - NULL. -

- -
- -

Effects

- -

Load a suitable version of an Intel® Threading Building Blocks (Intel® TBB) dynamic - library from one of the specified directories. -

- -

- Tip

-

The method searches for a library in directories - specified in the - path[] array. When a - library is found, it is loaded and its interface version (as returned by - TBB_runtime_interface_version()) is - checked. If the version does not meet the requirements specified by - min_ver and - max_ver, the library - is unloaded. The search continues in the next specified path, until a suitable - version of the Intel® TBB library is found or the array of paths ends with - NULL. It is - recommended to use default values for - min_ver and - max_ver. -

- -
-

- Caution

-

For security reasons, avoid using relative - directory names such as current ("."), parent ("..") or any - other relative directory (like "lib") when searching for a library. - Use only absolute directory names (as shown in the example above); if - necessary, construct absolute names at run time. Neglecting these rules may - cause your program to execute 3-rd party malicious code. (See - http://www.microsoft.com/technet/security/advisory/2269637.mspx for details.) -

- -
-
- -

Returns

- -

ec_ok - a suitable version was - successfully loaded. -

- -

ec_bad_call - this runtime_loader - instance has already been used to load a library. -

- -

ec_bad_lib - A library was found but - it appears invalid. -

- -

ec_bad_arg - min_ver and/or max_ver is - negative or zero, or min_ver > max_ver. -

- -

ec_bad_ver - unsuitable version has - already been loaded by another instance. -

- -

ec_no_lib - No suitable version was - found. -

- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/scalable_memory_pools.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/scalable_memory_pools.htm deleted file mode 100644 index d940bc530..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/scalable_memory_pools.htm +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - - - - - - - - - - - -Scalable Memory Pools - - - - - - - - - - - - - - -

Scalable Memory Pools

- - -
-

Memory pools allocate and free memory from a - specified region or underlying allocator providing thread-safe, scalable - operations. The following table summarizes the memory pool concept. Here, P - represents an instance of the memory pool class. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Memory Pool Concept
-

Pseudo-Signature -

- -
-

Semantics -

- -
-

~P() - throw(); -

- -
-

Destructor. Frees all the memory of allocated - objects. -

- -
-

void - P::recycle(); -

- -
-

Frees all the memory of allocated objects. -

- -
-

void* - P::malloc(size_t n); -

- -
-

Returns pointer to - n bytes - allocated from memory pool. -

- -
-

void - P::free(void* ptr); -

- -
-

Frees memory object specified via - ptr - pointer. -

- -
-

void* - P::realloc(void* ptr, size_t n); -

- -
-

Reallocates memory object pointed by - ptr to - n bytes. -

- -
-
- -

Model Types

- -

Template class memory_pool and class fixed_pool model - the Memory Pool concept. -

- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/scalable_memory_pools/fixed_pool_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/scalable_memory_pools/fixed_pool_cls.htm deleted file mode 100644 index 4ac6e7a33..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/scalable_memory_pools/fixed_pool_cls.htm +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - - - - - - - -fixed_pool Class - - - - - - - - - - - - - - -

fixed_pool Class

- - -
-

Summary

- -

Template class for scalable memory allocation from - a buffer of fixed size. -

- -
- -

Syntax

- -
class fixed_pool;
-
- -

Header

- -
#define TBB_PREVIEW_MEMORY_POOL 1
- #include "tbb/memory_pool.h"
-
- -

Description

- -

A - fixed_pool allocates - and frees memory in a way that scales with the number of processors. All the - memory available for the allocation is initially passed through arguments of - the constructor. A - fixed_pool models the - Memory Pool concept described in Table 52. -

- -
- -

Example

- -
#define TBB_PREVIEW_MEMORY_POOL 1
- #include "tbb/memory_pool.h"
- ...
- char buf[1024*1024];
- tbb::fixed_pool my_pool(buf, 1024*1024);
- void* my_ptr = my_pool.malloc(10);
- my_pool.free(my_ptr);}
-

The code above provides a simple example of - allocation from a fixed pool. -

- -
- -

Members

- -
namespace tbb {
- class fixed_pool : no_copy {
- public:
- fixed_pool(void *buffer, size_t size) throw(std::bad_alloc);
- ~fixed_pool();
- void recycle();
- void *malloc(size_t size);
- void free(void* ptr);
- void *realloc(void* ptr, size_t size);
- };
- }
- -
The following table provides additional information on the member - of this class. - - - - - - - - - - - - - - - - - - - -
Member - Description -
fixed_pool(void *buffer, size_t - size) - -

Constructs memory pool to manage the - memory pointed by buffer and of size. -

- -

Throws - bad_alloc - exception if runtime fails to construct an instance of the class. -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/scalable_memory_pools/memory_pool_allocator_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/scalable_memory_pools/memory_pool_allocator_cls.htm deleted file mode 100644 index 3a2fc83ad..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/scalable_memory_pools/memory_pool_allocator_cls.htm +++ /dev/null @@ -1,197 +0,0 @@ - - - - - - - - - - - - - -memory_pool_allocator Template Class - - - - - - - - - - - - - - -

memory_pool_allocator Template Class

- - -
-

Summary

- -

Template class that provides the C++ allocator - interface for memory pools. -

- -
- -

Syntax

- -
template<typename T> class memory_pool_allocator;
-
- -

Header

- -
#define TBB_PREVIEW_MEMORY_POOL 1
- #include "tbb/memory_pool.h"
-
- -

Description

- -

A - memory_pool_allocator - models the allocator requirements described in Table 29 except for default - constructor which is excluded from the class. Instead, it provides a - constructor, which links with an instance of - memory_pool or - fixed_pool classes, - that actually allocates and deallocates memory. The class is mainly intended to - enable memory pools within STL containers. -

- -
- -

Example

- -
#define TBB_PREVIEW_MEMORY_POOL 1
- #include "tbb/memory_pool.h"
- ...
- typedef tbb::memory_pool_allocator<int>
- pool_allocator_t;
- std::list<int, pool_allocator_t>
- my_list(pool_allocator_t( my_pool ));
-

The code above provides a simple example of - cnostruction of a container that uses a memory pool. -

- -
- -

Members

- -
namespace tbb {
- template<typename T>
- class memory_pool_allocator {
- public:
- typedef T value_type;
- typedef value_type* pointer;
- typedef const value_type* const_pointer;
- typedef value_type& reference;
- typedef const value_type& const_reference;
- typedef size_t size_type;
- typedef ptrdiff_t difference_type;
- template<typename U> struct rebind {
- typedef memory_pool_allocator<U> other;
- };
- memory_pool_allocator(memory_pool &pool) throw();
- memory_pool_allocator(fixed_pool &pool) throw();
- memory_pool_allocator(const memory_pool_allocator& src) throw();
- template<typename U>
- memory_pool_allocator(const memory_pool_allocator<U,P>& src) throw();
- pointer address(reference x) const;
- const_pointer address(const_reference x) const;
- pointer allocate( size_type n, const void* hint=0);
- void deallocate( pointer p, size_type );
- size_type max_size() const throw();
- void construct( pointer p, const T& value );
- void destroy( pointer p );
- };
- template<>
- class memory_pool_allocator<void> {
- public:
- typedef void* pointer;
- typedef const void* const_pointer;
- typedef void value_type;
- template<typename U> struct rebind {
- typedef memory_pool_allocator<U> other;
- };
- memory_pool_allocator(memory_pool &pool) throw();
- memory_pool_allocator(fixed_pool &pool) throw();
- memory_pool_allocator(const memory_pool_allocator& src) throw();
- template<typename U>
- memory_pool_allocator(const memory_pool_allocator<U>& src) throw();
- };
- template<typename T, typename U>
- inline bool operator==( const memory_pool_allocator<T>& a,
-              const memory_pool_allocator<U>& b);
- template<typename T, typename U>
- inline bool operator!=( const memory_pool_allocator<T>& a,
-              const memory_pool_allocator<U>& b);
- }
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
memory_pool_allocator(memory_pool - &pool) - -

Constructs memory pool allocator serviced - by - memory_pool - instance pool. -

- -
memory_pool_allocator(fixed_pool - &pool) - -

Constructs memory pool allocator serviced - by - fixed_pool - instance pool. -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/scalable_memory_pools/memory_pool_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/scalable_memory_pools/memory_pool_cls.htm deleted file mode 100644 index 983892546..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/scalable_memory_pools/memory_pool_cls.htm +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - - - - - - - -memory_pool Template Class - - - - - - - - - - - - - - -

memory_pool Template Class

- - -
-

Summary

- -

Template class for scalable memory allocation from - memory blocks provided by an underlying allocator. -

- -

- Caution

-

If the underlying allocator refers to another - scalable memory pool, the inner pool (or pools) must be destroyed before the - outer pool is destroyed or recycled. -

- -
-
- -

Syntax

- -
template <typename Alloc> class memory_pool;
-
- -

Header

- -
#define TBB_PREVIEW_MEMORY_POOL 1
- #include "tbb/memory_pool.h"
-
- -

Description

- -

A - memory_pool allocates - and frees memory in a way that scales with the number of processors. The memory - is obtained as big chunks from an underlying allocator specified by the - template argument. The latter must satisfy the subset of requirements described - in Table 29 with - allocate, - deallocate, and - value_type valid for - sizeof(value_type)>0. A - memory_pool models the - Memory Pool concept described in Table 52. -

- -
- -

Example

- -
#define TBB_PREVIEW_MEMORY_POOL 1
- #include "tbb/memory_pool.h"
- ...
- tbb::memory_pool<std::allocator<char> > my_pool;
- void* my_ptr = my_pool.malloc(10);
- my_pool.free(my_ptr);
-

The code above provides a simple example of - allocation from an extensible memory pool. -

- -
- -

Members

- -
namespace tbb {
- template <typename Alloc>
- class memory_pool : no_copy {
- public:
- memory_pool(const Alloc &src = Alloc()) throw(std::bad_alloc);
- ~memory_pool();
- void recycle();
- void *malloc(size_t size);
- void free(void* ptr);
- void *realloc(void* ptr, size_t size);
- };
- }
- -
The following table provides additional information on the member - of this template class. - - - - - - - - - - - - - - - - - - - -
Member - Description -
memory_pool(const Alloc &src = - Alloc()) - -

Constructs memory pool with an instance - of underlying memory allocator of type - Alloc copied - from - src. Throws - bad_alloc - exception if runtime fails to construct an instance of the class. -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/serial_subset.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/serial_subset.htm deleted file mode 100644 index 615bcd143..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/serial_subset.htm +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - -Serial subset - - - - - - - - - - - - - - -

Serial subset

- - -
-

Summary

- -

A subset of the parallel algorithms is provided for modeling serial execution. Currently only a serial version of tbb::parallel_for() is available.

-
-
- - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/serial_subset/tbb_serial_parallel_for.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/serial_subset/tbb_serial_parallel_for.htm deleted file mode 100644 index 795d8ac2d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/serial_subset/tbb_serial_parallel_for.htm +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - - - - - -tbb::serial::parallel_for() - - - - - - - - - - - - - - -

tbb::serial::parallel_for()

- - -
-

Header

- -

#define TBB_PREVIEW_SERIAL_SUBSET 1 -

- -

#include "tbb/ parallel_for.h" -

- -
- -

Motivation

- -

Sometimes it is useful, for example while - debugging, to execute certain - parallel_for() - invocations serially while having other invocations of - parallel_for()executed - in parallel. -

- -
- -

Description

- -

The - tbb::serial::parallel_for function - implements the - tbb::parallel_for API - using a serial implementation underneath. Users who want sequential execution - of a certain - parallel_for() - invocation will need to define the - TBB_PREVIEW_SERIAL_SUBSET macro before - parallel_for.h and prefix the selected - parallel_for() with - tbb::serial::. - Internally, the serial implementation uses the same principle of recursive - decomposition, but instead of spawning tasks, it does recursion "for real", - i.e. the body function calls itself twice with two halves of its original - range. -

- -
- -

Example

- -
#define TBB_PREVIEW_SERIAL_SUBSET 1
-#include <tbb/parallel_for.h>
-#include <tbb/parallel_for.h>
-#include <tbb/parallel_for.h>
-Foo()
-{
-  // . . .
-  tbb::serial::parallel_for( . . . );
-  tbb::parallel_for( . . . );
-  // . . . 
-}
-
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/task_arena_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/task_arena_cls.htm deleted file mode 100644 index 369dea1f8..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/task_arena_cls.htm +++ /dev/null @@ -1,416 +0,0 @@ - - - - - - - - - - - - - - - - - -task_arena Class - - - - - - - - - - - - - - -

task_arena Class

- - -
-

Summary

- -

Explicit, user-managed task scheduler arena - representation. -

- -
- -

Syntax

- -
class task_arena;
-
- -

Header

- -
#define TBB_PREVIEW_TASK_ARENA 1
-#include “tbb/task_arena.h”
-
- -

Description

- -

A - task_arena class represents an internal task scheduler - object where a number of threads, limited by a maximal concurrency level, share - and execute tasks. -

- -

The concurrency level of a - task_arena is isolated and not affected by previous - task_scheduler_init specifications. -

- -

-

- Note

The total number of threads created for a process is limited by - whichever is largest: the default number of threads for the machine or the - value specified by the first - task_scheduler_init object. Therefore the number of - threads assigned to a task_arena will never exceed that maximum value, - regardless of the concurrency level. -
-

- -

-

- Note

A task_arena may get fewer workers and never get the specified - number of threads, even if the specified concurrency level is lower than the - allowed maximum. -
-

- -

A - task_arena object keeps a reference to its internal - representation, but does not fully control its lifetime. It cannot be destroyed - until it contains tasks and/or other worker threads reference it. -

- -

-

- Note

The - task_arena constructors do not create the internal - arena objects. They are created lazily on first use, or by explicit call - to task_arena::initialize. -
-

- -

Each user thread that explicitly or implicitly creates a - task_scheduler_init - object contains an implicit internal task arena object. The - tasks spawned or enqueued in an arena cannot be executed in a different arena. -

- -
- -

Members

- -
namespace tbb {
-class task_arena {
-public:
-    static const int automatic = implementation-defined;
-    static int current_slot();
-    task_arena(int max_concurrency = automatic, unsigned reserved_for_masters = 1);
-    task_arena(const task_arena &s);
-    ~task_arena();
-    void initialize();
-    void initialize(int max_concurrency, unsigned reserved_for_masters = 1);
-    void terminate();
-    bool is_active();
-    template<typename F> void enqueue( const F& f );
-    template<typename F> void enqueue( const F& f, priority_t p );
-    template<typename F> void execute(F& f);
-    template<typename F> void execute(const F& f);
-};
-}
-
- -

Examples

- -

The following example runs two - parallel_for loops concurrently; one that is scalable - and one that is not. The non-scalable loop is limited to at most 2 threads so - that the majority of the threads can be saved for the more scalable loop. - It uses task_group to wait for a specific subset of tasks. -

- -
tbb::task_scheduler_init def_init; // Use the default number of threads
-tbb::task_arena limited(2);// no more than 2 threads in this arena
-tbb::task_group tg;
-
-limited.enqueue([&]{ // use at most 2 threads
-    tg.run([]{ // run in task group
-        tbb::parallel_for(1, N, unscalable_work());
-    });
-}); 
-
-// Run another job concurrently with the loop above
-// It can use the default number of threads:
-tbb::parallel_for(1, M, scalable_work());
-
-// Put the wait for the task group inside execute()
-// This will wait only for the tasks that are in
-// this task group.
-arena.execute([&]{ tg.wait(); });
-
- -
- -
-

The following table provides additional information on the members - of this template class. -

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
task_arena(int max_concurrency = automatic, - unsigned reserved_for_masters = 1) - - -

Creates a task_arena - with certain concurrency limit and some portion of it reserved - for application threads. -

- -

- Note

For the community preview implementation of task_arena, - the only valid values for reserved_for_masters are 0 and 1. -
-
-

static const int - automatic -

- -
-

When passed as max_concurrency - to the above constructor, arena concurrency will be automatically set - based on the hardware configuration. -

- -
task_arena(const - task_arena&) - -

Copies settings from another - task_arena instance. -

- -
~task_arena() - -

Removes the reference to the internal - arena representation, and destroys the task_arena() instance. - Not thread safe w.r.t. concurrent invocations of other methods. -

- -
- void initialize(); -

- -

void initialize(int max_concurrency, - unsigned reserved_for_masters = 1); -

- -

- -
Performs actual initialization of internal - arena representation. If arguments are specified, overrides previous concurrency settings. - Has no effect when called on already initialized arena. -

- Note

After the call to initialize, the arena concurrency - is fixed and cannot be changed. -
-
void terminate() - Removes the reference to the internal arena representation - without destroying the task_arena object, which can then be re-used. - Not thread safe w.r.t. concurrent invocations of other methods. -
bool is_active() - Returns true if the arena - has been initialized, false otherwise. -
template<F> void - enqueue(const F&) - -

Enqueues a task into the arena to process specified functor - and immediately returns. -

- -

- Note

Does not require the calling thread to join the arena; - i.e. any number of threads outside of the arena can submit work to the arena - without blocking. -
-

- Caution

There is no guarantee that tasks enqueued - in an arena execute concurrently with respect to any other arena’s tasks. -
-
template<F> void - enqueue(const F&, priority_t) - -

Enqueues a task with specified task priority. Is similar to - enqueue( const F& ) in all other ways. -

- -
template<F> void - execute(F&) -

-

- -

template<F> void execute(const - F&) -

- -

-

- -
-

If possible, the calling thread joins the arena and executes - the specified functor, then leaves the arena and returns to previous task - scheduler state. -

- -

If not possible to join, the call wraps the functor into a - task, enqueues it in the arena and waits on an OS kernel synchronization object - for task completion. -

- -

- Note

Any number of threads outside of the arena can submit - work to the arena and be blocked. However, only the maximal number of threads - specified for the arena can participate in executing tasks. -
-

- Note

May decrement the arena's demand for worker threads, - causing a worker to leave, and thereby freeing a slot for the calling thread. -
-
static int current_slot() - -

Returns: The index of the slot that the calling - thread is assigned to in its current arena (if any). - If the thread is not initialized with TBB, returns -1. - This method can be used, for example, by a - task_scheduler_observer to pin threads - entering an arena to specific hardware. -

- -
-
- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/task_arena_cls/task_scheduler_observer_ext_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/task_arena_cls/task_scheduler_observer_ext_cls.htm deleted file mode 100644 index 46ea5a06a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/task_arena_cls/task_scheduler_observer_ext_cls.htm +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - - - - - - - - - -task_scheduler_observer Class extensions - - - - - - - - - -

task_scheduler_observer Class - extensions

- - -
-

Summary

- -

The - task_scheduler_observer - Class is extended to support local semantics and to observe - when worker threads join and leave a task scheduler arena. Before these - extensions, a - task_scheduler_observer would only observe when a - worker thread would join and exit the global task scheduler. -

- -
- -

Syntax

- -
class task_scheduler_observer;
-
- -

Header

- -

-

#define TBB_PREVIEW_LOCAL_OBSERVER 1
-#include "tbb/task_scheduler_observer.h"
-

- -
- -

Members

- -
namespace tbb {
-  class task_scheduler_observer {
-  public:
-    task_scheduler_observer( bool local = false );
-
-    // See task_scheduler_observer for the methods
-    // not related to local observer ...
-
-#if TBB_PREVIEW_TASK_ARENA
-    task_scheduler_observer( task_arena & a)
-#endif
-
-    virtual bool on_scheduler_leaving() { return true; }
-  };
-}
-
- -

Example

- -

The following example sketches the code of an observer used to pin - worker threads to hardware threads and to prevent workers from sleeping. -

- -
class pinning_observer: public tbb::task_scheduler_observer {
-public:
-  affinity_mask_t m_mask; // HW affinity mask to be used with an arena
-  pinning_observer( affinity_mask_t mask ) : m_mask(mask) { }
-  pinning_observer( tbb::task_arena &a, affinity_mask_t mask )
-    : tbb::task_scheduler_observer(a), m_mask(mask) {
-    observe(true); // activate the observer
-  }
-  /*override*/ void on_scheduler_entry( bool worker ) {
-    set_thread_affinity(tbb::task_arena::current_slot(), m_mask); 
-  }
-  /*override*/ bool on_scheduler_leaving( ) {
-    // Return false to trap the thread in the arena
-    return /*bool*/ !is_more_work_available_soon();
-  }
-  /*override*/ void on_scheduler_exit( bool worker ) { }
-};
-
- -
- -
-

The following table provides additional information on the members - of this template class. -

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
task_scheduler_observer( bool local - = false ) - - -

Constructs a - task_scheduler_observer object in an - inactive state (observation is disabled). If - local is - false, it does not differ from the global - semantics described for - task_scheduler_observer. If - local is true, and the observer has been - activated, the entry notifications is invoked only for threads in current arena. - Correspondently, a thread receives exit notifications when it leaves this arena. -

- -
task_scheduler_observer( task_arena - & ) - - -

Constructs a - task_scheduler_observer object in the - inactive state (observation is disabled) tied to the specified - task_arena. It receives notifications related - only to this specified arena. -

- -

- Note

Invocation of observe(true) for such an object can force - initialization of the internal arena representation of the specified - task_arena object -
-
virtual bool on_scheduler_leaving() - - - -

The callback is invoked in a worker - thread before it leaves an arena. If it returns false, the thread remains in - the arena trying to find more work. - It will not be called for master threads or if a worker thread - leaves the arena due to rebalancing, priority changes, etc. -

- -

- Note

The application must be linked against the Community - Preview library for this method to take effect. -
-
-
- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/what_is_a_community_preview_feature.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/what_is_a_community_preview_feature.htm deleted file mode 100644 index 4fd135c30..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/community_preview_features/what_is_a_community_preview_feature.htm +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - - -What is a Community Preview Feature? - - - - - - - - - - - - - - -

What is a Community Preview Feature?

- - -
-

A Community Preview feature is a component of Intel® - Threading Building Blocks (Intel® TBB) that is being introduced to gain early - feedback from developers. Comments, questions and suggestions related to - Community Preview features are encouraged and should be submitted to the forums - at www.threadingbuildingblocks.org. -

- -

The key properties of a CP feature are: -

- -
    -
  • -

    It must be explicitly enabled. It is off by - default. -

    - -
  • - -
  • -

    It is intended to have a high quality - implementation. -

    - -
  • - -
  • -

    There is no guarantee of future existence or - compatibility. -

    - -
  • - -
  • -

    It may have limited or no support in tools such - as correctness analyzers, profilers and debuggers. -

    - -
  • - -
- -

- Caution

-

A CP feature is subject to change in the future. It - may be removed or radically altered in future releases of the library. Changes - to a CP feature do NOT require the usual deprecation and deletion process. - Using a CP feature in a production code base is therefore strongly discouraged. -

- -
-
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/compatibility_features.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/compatibility_features.htm deleted file mode 100644 index 690f69c3c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/compatibility_features.htm +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - -Compatibility Features - - - - - - - - - - - - - - -

Compatibility Features

- - -
-

This appendix describes features of Intel Threading - Building Blocks (Intel® TBB) that remain for compatibility with previous - versions. These features are deprecated and may disappear in future versions of - Intel® TBB. Some of these features are available only if the preprocessor - symbol TBB_DEPRECATED is non-zero. -

- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/compatibility_features/debugging_macros.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/compatibility_features/debugging_macros.htm deleted file mode 100644 index e2ceadcdc..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/compatibility_features/debugging_macros.htm +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - - - - - - - - -Debugging Macros - - - - - - - - - - - - - - -

Debugging Macros

- - -
-

The names of the debugging macros have changed as - shown in Table 45. If you define the old macros, the Intel® Threading Building Blocks (Intel® TBB) - library sets each undefined new macro in a way that duplicates the behavior the old macro settings. -

- -

The old - TBB_DO_ASSERT - enabled assertions, full support for Intel® Threading Tools, and performance - warnings. These three distinct capabilities are now controlled by three - separate macros as described in Enabling Debugging Features. -

- -

- Tip

-

To enable all three capabilities with a single - macro, define - TBB_USE_DEBUG - to be 1. If you had code under - "#if TBB_DO_ASSERT" - that should be conditionally included only when assertions are enabled, use - "#if TBB_USE_ASSERT" - instead. -

- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - -
Deprecated Macros
-

Deprecated Macro -

- -
-

New Macro -

- -
-

TBB_DO_ASSERT -

- -
-

TBB_USE_DEBUG or - TBB_USE_ASSERT, - depending on context. -

- -
-

TBB_DO_THREADING_TOOLS -

- -
-

TBB_USE_THREADING_TOOLS -

- -
-
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/compatibility_features/interface_for_cls_task.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/compatibility_features/interface_for_cls_task.htm deleted file mode 100644 index c00c89e54..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/compatibility_features/interface_for_cls_task.htm +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - -Interface for class task - - - - - - - - - - - - - - -

Interface for class task

- - -
-

Some methods of class - task are deprecated - because they have obsolete or redundant functionality. -

- -

Deprecated Members of class task

- -
namespace tbb {
- class task {
- public:
- ...
- void recycle_to_reexecute();
- // task depth
- typedef implementation-defined-signed-integral-type depth_type;
- depth_type depth() const {return 0;}
- void set_depth( depth_type new_depth ) {}
- void add_to_depth( int delta ){}
- ...
- };
- }
-
- - -
The following table provides additional information on the members - of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
void recycle - _to_reexecute() - -

Intel® Threading Building Blocks (Intel® TBB) 3.0 deprecated method - recycle_to_reexecute because it is - redundant. Replace a call - t->recycle_to_reexecute()with - the following sequence: -

- -
t->set_refcount(1);
-t->recycle_as_safe_continuation();
-
Depth interface for class - task - -

Intel® TBB 2.2 eliminated the notion of - task depth that was present in prior versions of Intel® TBB. The members of - class task that related to depth have been retained under - TBB_DEPRECATED, but do nothing. -

- -
-
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/compatibility_features/interface_for_concurrent_vector.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/compatibility_features/interface_for_concurrent_vector.htm deleted file mode 100644 index 85fb06a67..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/compatibility_features/interface_for_concurrent_vector.htm +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - - - - - - - - - - -Interface for concurrent_vector - - - - - - - - - - - - - - -

Interface for concurrent_vector

- - -
-

The return type of methods - grow_by and - grow_to_at_least changed - in Intel® Threading Building Blocks (Intel® TBB) 2.2. Compile with the preprocessor symbol - TBB_DEPRECATED set to - nonzero to get the old methods. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Change in Return Types
-

Method -

- -
-

Deprecated Return Type -

- -
-

New Return Type -

- -
-

grow_by See Concurrent Growth. -

- -
-

size_type -

- -
-

iterator -

- -
-

grow_to_at_least See Concurrent - Growth. -

- -
-

void -

- -
-

iterator -

- -
-

push_back See Concurrent Growth. -

- -
-

size_type -

- -
-

iterator -

- -
-
- - -
The following table provides additional information on the members of - this template class. - - - - - - - - - - - - - - - - - - - -
Member - Description -
void compact(). - -

Same as - shrink_to_fit() - See Whole Vector Operations. -

- -
-
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/compatibility_features/interface_for_constructing_a_pipeline_filter.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/compatibility_features/interface_for_constructing_a_pipeline_filter.htm deleted file mode 100644 index f632554d8..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/compatibility_features/interface_for_constructing_a_pipeline_filter.htm +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - - - - - - - -Interface for constructing a pipeline filter - - - - - - - - - - - - - - -

Interface for constructing a pipeline - filter

- - -
-

The interface for constructing a filter evolved over - several releases of Intel® Threading Building Blocks (Intel® TBB). -

- - -
The following table describe obsolete aspects of the interface. - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
filter::filter( bool is_serial - ) - -

Constructs a serial in-order filter if - is_serial is - true, or a parallel filter if - is_serial is - false. This deprecated constructor is superseded by the constructor - filter( filter::mode - ) -

- -
filter::serial - -

The filter mode value - filter::serial - is now named filter::serial_in_order. The new name distinguishes it more - clearly from the mode - filter::serial_out_of_order. -

- -
-
- -
- - - -
-

See Also

- -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/compatibility_features/parallel_while_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/compatibility_features/parallel_while_cls.htm deleted file mode 100644 index 299376623..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/compatibility_features/parallel_while_cls.htm +++ /dev/null @@ -1,350 +0,0 @@ - - - - - - - - - - - - - -parallel_while Template Class - - - - - - - - - - - - - - -

parallel_while Template Class

- - -
-

Summary

- -

Template class that processes work items. -

- -

- Tip

-

This class is deprecated. Use parallel_do (4.7) - instead. -

- -
-
- -

Syntax

- -
template<typename Body>
- class parallel_while;
-
- -

Header

- -
#include "tbb/parallel_while.h"
-
- -

Description

- -

A - parallel_while<Body> performs - parallel iteration over items. The processing to be performed on each item is - defined by a function object of type Body. The items are specified in two ways: -

- -
    -
  • -

    A stream of items. -

    - -
  • - -
  • -

    Additional items that are added while the - stream is being processed. -

    - -
  • - -
- -

Table 44 shows the - requirements on the stream and body. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Table 44: parallel_while Requirements for - Stream S and Body B
-

Pseudo-Signature -

- -
-

Semantics -

- -
-

bool S::pop_if_present( B::argument_type& - item ) -

- -
-

Get next stream item. - parallel_while - does not concurrently invoke the method on the same this. -

- -
-

B::operator()( B::argument_type& item ) - const -

- -
-

Process - item. - parallel_while may concurrently invoke the operator for the same - this but different - item. -

- -
-

B::argument_type() -

- -
-

Default constructor. -

- -
-

B::argument_type( const B::argument_type& - ) -

- -
-

Copy constructor. -

- -
-

~B::argument_type() -

- -
-

Destructor. -

- -
-
- -

For example, a unary function object, as defined in - Section 20.3 of the C++ standard, models the requirements for B. A - concurrent_queue (5.5) - models the requirements for S. -

- -

- Tip

-

To achieve speedup, the - grainsize of - B::operator() needs to be on the order of at least ~10,000 - instructions. Otherwise, the internal overheads of parallel_while swamp the - useful work. The parallelism in - parallel_while is - not scalable if all the items come from the input stream. To achieve scaling, - design your algorithm such that method add often adds more than one piece of - work. -

- -
-
- -

Members

- -
namespace tbb {
- template<typename Body>
- class parallel_while {
- public:
- parallel_while();
- ~parallel_while();
- typedef typename Body::argument_type value_type;
- template<typename Stream>
- void run( Stream& stream, const Body& body );
- void add( const value_type& item );
- };
- }
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
parallel_while<Body>() - -

Constructs a - parallel_while that is not yet - running. -

- -
~parallel_while<Body>() - -

Destroys a - parallel_while. -

- -
Template <typename Stream> - void run( Stream& stream, const Body& body ) - -

Applies - body - to each item in - stream and any other items that - are added by method add. Terminates when both of the following conditions - become true: -

- -
    -
  • -

    stream.pop_if_present returned false. -

    - -
  • - -
  • -

    body(x) returned for all items - x generated from the stream or - method add. -

    - -
  • - -
- -
void add( const value_type& - item ) - -

Requirements: Must be called from - a call to - body.operator() - created by - parallel_while. Otherwise, the - termination semantics of method - run - are undefined. -

- -

Effects: Adds item to collection - of items to be processed. -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/compatibility_features/task_enqueuing_flow_graph.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/compatibility_features/task_enqueuing_flow_graph.htm deleted file mode 100644 index 52909f3c8..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/compatibility_features/task_enqueuing_flow_graph.htm +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - -Task Enqueuing Flow Graph - - - - - - - - - -

Task Enqueuing Flow Graph

- -
- -

-The implementation of the flow graph that enqueues its tasks has been deprecated. There are limitations on the -nesting of calls to wait_for_all on enqueued tasks. These limitations restrict the composability -of flow graphs, preventing their use in some interesting cases. We therefore modified the flow graph to spawn tasks -instead. See the Scheduling Algorithm section for a discussion of the differences between enqueued and spawned tasks. -

- - -

-To use the deprecated implementation that enqueues tasks, the preprocessor symbol TBB_DEPRECATED_FLOW_ENQUEUE -must be non-zero.

- - -

-If an application relies on the fire-and-forget nature of enqueued tasks, it may still be possible to avoid using -the deprecated implementation. This might be done, for example, by enqueueing a task that in turn constructs -and executes a spawning flow graph. The outer enqueued task will be serviced even if there are no worker threads -available, and any thread created to service it will then also be availble to execute tasks spawned by its flow -graph. -

- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/compatibility_features/tbb_deprecated_concurrent_queue_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/compatibility_features/tbb_deprecated_concurrent_queue_cls.htm deleted file mode 100644 index 5944ed3ad..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/compatibility_features/tbb_deprecated_concurrent_queue_cls.htm +++ /dev/null @@ -1,254 +0,0 @@ - - - - - - - - - - - - - -tbb::deprecated::concurrent_queue<T,Alloc> Template Class - - - - - - - - - - - - - - -

tbb::deprecated::concurrent_queue<T,Alloc> - Template Class

- - -
-

Summary

- -

Template class for queue with concurrent - operations. This is the - concurrent_queue - supported in Intel® Threading Building Blocks (Intel® TBB) 2.1 and prior. New code should use the Intel® TBB 2.2 - unbounded - concurrent_queue or - concurrent_bounded_queue. -

- -
- -

Syntax

- -
template<typename T, typename Alloc=cache_aligned_allocator<T> > class concurrent_queue;
-
- -

Header

- -
#include "tbb/concurrent_queue.h"
-
- -

Description

- -

A - tbb::deprecated::concurrent_queue is a - bounded first-in first-out data structure that permits multiple threads to - concurrently push and pop items. The default bounds are large enough to make - the queue practically unbounded, subject to memory limitations on the target - machine. -

- -

- Tip

-

Compile with - TBB_DEPRECATED=1 to - inject - tbb::deprecated::concurrent_queue into - namespace - tbb. Consider - eventually migrating to the new queue classes. -

- -
    -
  • -

    Use the new - tbb::concurrent_queue if you need only - the non-blocking operations (push and - try_pop) for - modifying the queue. -

    - -
  • - -
  • -

    Otherwise use the new - tbb::concurrent_bounded_queue. It - supports both blocking operations (push and - try_pop) and - non-blocking operations. -

    - -
  • - -
- -
-

In both cases, use the new method names in the - following table -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Method Name Changes for Concurrent - Queues
-

Method in tbb::deprecated::concurrent_queue -

- -
-

Equivalent method in tbb::concurrent_queue - or tbb::concurrent_bounded_queue -

- -
-

pop_if_present -

- -
-

try_pop -

- -
-

push_if_not_full -

- -
-

try_push (not available in - tbb::concurrent_queue) -

- -
-

begin -

- -
-

unsafe_begin -

- -
-

end -

- -
-

unsafe_end -

- -
-
- -
- -

Members

- -
namespace tbb {
- namespace deprecated {
- template<typename T,
- typename Alloc=cache_aligned_allocator<T> >
- class concurrent_queue {
- public:
- // types
- typedef T value_type;
- typedef T& reference;
- typedef const T& const_reference;
- typedef std::ptrdiff_t size_type;
- typedef std::ptrdiff_t difference_type;
- concurrent_queue(const Alloc& a = Alloc());
- concurrent_queue(const concurrent_queue& src,
- const Alloc& a = Alloc());
- template<typename InputIterator>
- concurrent_queue(InputIterator first, InputIterator last,
- const Alloc& a = Alloc());
- ~concurrent_queue();
- void push(const T& source);
- bool push_if_not_full(const T& source);
- void pop(T& destination);
- bool pop_if_present(T& destination);
- void clear();
- size_type size() const;
- bool empty() const;
- size_t capacity() const;
- void set_capacity(size_type capacity);
- Alloc get_allocator() const;
- typedef implementation-defined iterator;
- typedef implementation-defined const_iterator;
- // iterators (these are slow and intended only for debugging)
- iterator begin();
- iterator end();
- const_iterator begin() const;
- const_iterator end() const;
- };
- }
- #if TBB_DEPRECATED
- using deprecated::concurrent_queue;
- #else
- using strict_ppl::concurrent_queue;
- #endif
- }
-
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/compatibility_features/tbb_thread_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/compatibility_features/tbb_thread_cls.htm deleted file mode 100644 index a48b6548b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/compatibility_features/tbb_thread_cls.htm +++ /dev/null @@ -1,172 +0,0 @@ - - - - - - - - - - - - - - -tbb_thread Class - - - - - - - - - - - - - - -

tbb_thread Class

- - -
-

Intel® Threading Building Blocks (Intel® TBB) 3.0 introduces a header - tbb/compat/thread that - defines class - std::thread. Prior - versions had a header - tbb/tbb_thread.h - that defined class - tbb_thread. The old - header and names are still available, but deprecated in favor of the - replacements shown in Table 48. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Table 48: Replacements for Deprecated - Names
-

Entity -

- -
-

Deprecated -

- -
-

Replacement -

- -
-

Header -

- -
-

tbb/tbb_thread.h -

- -
-

tbb/compat/thread -

- -
-

Identifiers -

- -
-

tbb::tbb_thread -

- -
-

std::thread -

- -
-

tbb::this_tbb_thread -

- -
-

std::this_thread -

- -
-

tbb::this_tbb_thread::sleep -

- -
-

std::this_tbb_thread::sleep_for -

- -
-
- -

Most of the changes reflect a change in the way that - the library implements C++11 features (std namespace). The change from - sleep to - sleep_for reflects a - change in the C++11 working draft. -

- -
- - - -
-

See Also

- -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/known_issues.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/known_issues.htm deleted file mode 100644 index b31a7edae..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/known_issues.htm +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - -Known Issues - - - - - - - - - - - - - - -

Known Issues

- - -
-

This section explains known issues with using Intel® Threading Building Blocks (Intel® TBB).

-
- - -
- -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/known_issues/windows_os.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/known_issues/windows_os.htm deleted file mode 100644 index fa504da6c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/known_issues/windows_os.htm +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - -Windows* OS - - - - - - - - - - - - - - -

Windows* OS

- - -
-

Some Intel® Threading Building Blocks (Intel® TBB) header files necessarily include the header file <windows.h>, which by default defines the macros min and max, and consequently breaks the ISO C++ header files <limits> and <algorithm>. Defining the preprocessor symbol NOMINMAX causes <windows.h> to not define the offending macros. Thus programs using Intel® TBB and either of the aforementioned ISO C++ headers should be compiled with /DNOMINMAX as a compiler argument.

-
- - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/ppl_compatibility.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/ppl_compatibility.htm deleted file mode 100644 index 3a1af555a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/appendices/ppl_compatibility.htm +++ /dev/null @@ -1,228 +0,0 @@ - - - - - - - - - - - - - -PPL Compatibility - - - - - - - - - - - - - - -

PPL Compatibility

- - -
-

Intel® Threading Building Blocks (Intel® TBB) 2.2 - introduces features based on joint discussions between the Microsoft - Corporation and Intel Corporation. The features establish some degree of - compatibility between Intel® TBB and Microsoft Parallel Patterns Library (PPL) - development software. -

- -

Each feature appears in namespace - tbb. Each feature can be - injected into namespace Concurrency by including the file "tbb/compat/ppl.h". - Following is the list of features: -

- - -
The following table lists the features and provides links to - additional information. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Feature - Link -
parallel_for(first,last,f) - parallel_for Template - Function -
parallel_for(first,last,step,f) - parallel_for Template - Function -
parallel_for_each - parallel_for_each Template Function -
parallel_invoke - parallel_invoke Template Function -
critical_section - critical_section -
reader_writer_lock - reader_writer_lock Class -
task_handle - task_handle Template - Class -
task_group_status - task_group_status Enum -
task_group - task_group Class -
make_task - make_task Template - Function -
structured_task_group - structured_task_group Class -
is_current_task_group_cancelling - is_current_task_group_canceling Function -
improper_lock - Specific Exceptions -
invalid_multiple_scheduling - Specific Exceptions -
missing_wait - Specific Exceptions -
-
- -

For - parallel_for, only the - variants listed in the table are injected into namespace Concurrency. -

- -

- Caution

-

Because of different environments and evolving - specifications, the behavior of the features can differ between the Intel® TBB - and PPL implementations. -

- -
-
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview.htm deleted file mode 100644 index 40df3a6dd..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview.htm +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - -Containers Overview - - - - - - - - - -

Containers Overview

- -
-
-

The container classes permit multiple threads to - simultaneously invoke certain methods on the same container. -

- -

Like STL, Intel® Threading Building Blocks (Intel® - TBB) containers are templated with respect to an - allocator argument. Each container uses its - allocator to allocate memory for user-visible items. A - container may use a different allocator for strictly internal structures. -

- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_bounded_queue_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_bounded_queue_cls.htm deleted file mode 100644 index 1415816e6..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_bounded_queue_cls.htm +++ /dev/null @@ -1,343 +0,0 @@ - - - - - - - - - - - - - - -concurrent_bounded_queue Template Class - - - - - - - - - -

concurrent_bounded_queue Template Class

- - - -
-

Summary

- -

Template class for bounded dual queue with - concurrent operations. -

- -
- -

Syntax

- -
template<typename T, class Alloc=cache_aligned_allocator<T> >
-            class concurrent_bounded_queue;
-
- -

Header

- -
#include "tbb/concurrent_queue.h"
-
- -

Description

- -

A - concurrent_bounded_queue is similar to a - concurrent_queue , but with the following differences: - -

- -
    -
  • -

    Adds the ability to specify a capacity. The - default capacity makes the queue practically unbounded. -

    - -
  • - -
  • -

    Changes the - push operation so that it waits until it can - complete without exceeding the capacity. -

    - -
  • - -
  • -

    Adds a waiting - pop operation that waits until it can pop an item. - -

    - -
  • - -
  • -

    Changes the - size_type to a - signed type. -

    - -
  • - -
  • -

    Changes the - size() operation to return the number of push - operations minus the number of pop operations. For example, if there are 3 pop - operations waiting on an empty queue, - size() returns -3. -

    - -
  • - -
  • Adds an - abort operation that causes any waiting - push or - pop operation to abort and throw an exception. -
  • - -
- -
- -

Members

- -

To aid comparison, the parts that differ from - concurrent_queue are in bold and annotated. -

- -
namespace tbb {
-           template<typename T, typename 
-                    Alloc=cache_aligned_allocator<T> >
-           class concurrent_bounded_queue {
-           public:
-               // types
-               typedef T value_type;
-               typedef T& reference;
-               typedef const T& const_reference;
-               typedef Alloc allocator_type;
-               // size_type is signed type
-               typedef std::ptrdiff_t size_type;
-               typedef std::ptrdiff_t difference_type;
- 
-               explicit concurrent_bounded_queue(const allocator_type& a = allocator_type());
-               concurrent_bounded_queue( const concurrent_bounded_queue& src, const allocator_type& a = allocator_type());
-               template<typename InputIterator>
-               concurrent_bounded_queue( InputIterator begin, InputIterator end, const allocator_type& a = allocator_type());
-               ~concurrent_bounded_queue();
- 
-               // waits until it can push without exceeding capacity.
-               void push( const T& source );
-               // waits if *this is empty
-               void pop( T& destination );
-  
-               // skips push if it would exceed capacity.
-               bool try_push( const T& source );
-               bool try_pop( T& destination );
-               void abort();
-				
-               void clear();
- 
-               // safe to call during concurrent modification, can return negative size.
-               size_type size() const;
-               bool empty() const;
-               size_type capacity() const;
-               void set_capacity( size_type capacity );
-               allocator_type get_allocator() const;
- 
-               typedef implementation-defined iterator;
-               typedef implementation-defined const_iterator;
-
-               // iterators (these are slow an intended only for debugging)
-               iterator unsafe_begin();
-               iterator unsafe_end();
-               const_iterator unsafe_begin() const;
-               const_iterator unsafe_end() const;
-        };
-    }
-

- -

Because - concurrent_bounded_queue is similar to - concurrent_queue, the following table describes only - methods that differ. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
void push( const T& source - ) - -

Waits until size()<capacity, and then pushes a copy of - source onto back of the queue. -

- -
void pop( T& destination - ) - -

Waits until a value becomes available and pops it from the - queue. Assigns it to destination. Destroys the original value. -

- -
void abort() - -

Wakes up any threads that are waiting on the queue via the - push and - pop operations and raises the - tbb::user_abort exception on those threads. - This feature is unavailable if - TBB_USE_EXCEPTIONS is not set. -

- -
bool try_push( const T& source - ) - -

If size()<capacity, pushes a copy of source onto back of - the queue. -

- -

Returns: True if a copy was pushed; false otherwise. -

- -
bool try_pop( T& destination - ) - -

If a value is available, pops it from the queue, assigns it - to destination, and destroys the original value. Otherwise does nothing. -

- -

Returns: True if a value was popped; false otherwise. - -

- -
size_type size() const - -

Returns: Number of pushes minus number of pops. The - result is negative if there are pop operations waiting for corresponding - pushes. The result can exceed capacity() if the queue is full and there are - push operations waiting for corresponding pops. -

- -
bool empty() const - -

Returns: - size()<=0 -

- -
size_type capacity() - const - -

Returns -

- -

Maximum number of values that the queue can hold. -

- -
void set_capacity( size_type - capacity ) - -

Sets the maximum number of values that the queue can hold. -

- -
-
- -

- -
- -
- - - -
-

See Also

- -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_hash_map_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_hash_map_cls.htm deleted file mode 100644 index 1a864edaf..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_hash_map_cls.htm +++ /dev/null @@ -1,385 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - -concurrent_hash_map Template Class - - - - - - - - - -

concurrent_hash_map Template Class

- - -
-

Summary

- -

Template class for associative container with - concurrent access. -

- -
- -

Syntax

- -
template < typename Key, typename T, 
-         typename HashCompare=tbb_hash_compare<Key>, 
-         typename A=tbb_allocator<std::pair < Key, T> > >
-         class concurrent_hash_map;
-
-
- -

Header

- -
#include "tbb/concurrent_hash_map.h"
-
- -

Description

- -

A - concurrent_hash_map maps keys to values in a way that - permits multiple threads to concurrently access values. The keys are unordered. - There is at most one element in a - concurrent_hash_map for each key. The key may have - other elements in flight but not in the map, as described in Concurrent - Operations. The interface resembles typical STL associative containers, but - with some differences critical to supporting concurrent access. It meets the - Container Requirements of the ISO C++ standard. Types - Key and - T must model the CopyConstructible concept. Type - HashCompare specifies how keys are hashed and compared - for equality. It must model the HashCompare concept in the table below. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HashCompare Concept
-

Pseudo-Signature -

- -
-

Semantics -

- -
-

HashCompare::HashCompare( const - HashCompare& ) -

- -
-

Copy constructor. -

- -
-

HashCompare::~HashCompare - () -

- -
-

Destructor. -

- -
-

bool HashCompare::equal( const - Key& j, const Key& k ) const - -

- -
-

True if keys are equal. -

- -
-

size_t HashCompare::hash( const - Key& k ) const - -

- -
-

Hashcode for key. -

- -
-
- -

- Caution

-

As for most hash tables, if two keys are equal, - they must hash to the same hash code. That is for a given HashCompare h and any - two keys - j - and - k, the following assertion must hold: - "!h.equal(j,k) || h.hash(j)==h.hash(k)". The - importance of this property is the reason that - concurrent_hash_map makes key equality and hashing - function travel together in a single object instead of being separate objects. - The hash code of a key must not change while the hash table is non-empty. -

- -
-

- Caution

-

Good performance depends on having good - pseudo-randomness in the low-order bits of the hash code. -

- -
-
- -

Example

- -

When keys are pointers, simply casting the pointer to a hash code may - cause poor performance because the low-order bits of the hash code will be - always zero if the pointer points to a type with alignment restrictions. A way - to remove this bias is to divide the casted pointer by the size of the type, as - indicated below in - bold italic - font. -

- -
-           size_t MyHashCompare::hash( Key* key ) const {
-            return reinterpret_cast<size_t>(key)/sizeof(Key);        
-           }   
-          
-
- -

Members

- -

In the following synopsis, methods shown in - bold font - may be concurrently invoked. -

- -
-        namespace tbb {
-    template<typename Key, typename T, typename HashCompare, 
-             typename Alloc=tbb_allocator<std::pair<Key,T> > >
-    class concurrent_hash_map {
-    public:
-        // types
-        typedef Key key_type;
-        typedef T mapped_type;
-        typedef std::pair<const Key,T> value_type;
-        typedef size_t size_type;
-        typedef ptrdiff_t difference_type;
-        typedef value_type* pointer;
-        typedef const value_type* const_pointer;
-        typedef value_type& reference;
-        typedef Alloc allocator_type;
-
-        // whole-table operations
-        concurrent_hash_map( 
-            const allocator_type& a=allocator_type() );
-        concurrent_hash_map( 
-            size_type n, 
-            const allocator_type &a = allocator_type() );
-        concurrent_hash_map( 
-            const concurrent_hash_map&, 
-            const allocator_type& a=allocator_type() );
-        template<typename InputIterator>
-            concurrent_hash_map(
-                InputIterator first, InputIterator last, 
-                const allocator_type& a = allocator_type())
-        //C++11 specific 
-        concurrent_hash_map(const std::initializer_list<value_type> &il, const allocator_type &a = allocator_type())
-        ~concurrent_hash_map();
-        concurrent_hash_map operator=(const concurrent_hash_map&);
-        //C++11 specific 
-        concurrent_hash_map operator=(const std::initializer_list<value_type> &il)
-        void rehash( size_type n=0 );
-        void clear();
-        allocator_type get_allocator() const;
-
-        // concurrent access
-        class const_accessor;
-        class accessor;
-
-        // concurrent operations on a table
-        bool find( const_accessor& result, const Key& key ) const;
-        bool find( accessor& result, const Key& key );
-        bool insert( const_accessor& result, const Key& key );
-        bool insert( accessor& result, const Key& key );
-        bool insert( const_accessor& result, const value_type& value );
-        bool insert( accessor& result, const value_type& value );
-        bool insert( const value_type& value );
-        template<typename I> void insert( I first, I last );
-        bool erase( const Key& key );
-        bool erase( const_accessor& item_accessor );
-        bool erase( accessor& item_accessor );
-
-        // parallel iteration
-        typedef implementation-defined range_type;
-        typedef implementation-defined const_range_type;
-        range_type range( size_t grainsize=1 );
-        const_range_type range( size_t grainsize=1 ) const;
-
-        // capacity
-        size_type size() const;
-        bool empty() const;
-        size_type max_size() const;
-        size_type bucket_count() const;
-
-        // iterators
-        typedef implementation-defined iterator;
-        typedef implementation-defined const_iterator;
-        iterator begin();
-        iterator end();
-        const_iterator begin() const;
-        const_iterator end() const;
-        std::pair<iterator, iterator> equal_range( const Key& key );
-        std::pair<const_iterator, const_iterator> 
-            equal_range( const Key& key ) const;
-    };
-
-    template<typename Key, typename T, typename HashCompare, 
-             typename A1, typename A2>
-    bool operator==(
-        const concurrent_hash_map<Key,T,HashCompare,A1> &a, 
-        const concurrent_hash_map<Key,T,HashCompare,A2> &b);
-
-    template<typename Key, typename T, typename HashCompare, 
-             typename A1, typename A2>
-    bool operator!=(const    
-        concurrent_hash_map<Key,T,HashCompare,A1> &a, 
-        const concurrent_hash_map<Key,T,HashCompare,A2> &b);
-
-    template<typename Key, typename T, typename HashCompare, 
-             typename A>
-    void swap(concurrent_hash_map<Key,T,HashCompare,A>& a,    
-              concurrent_hash_map<Key,T,HashCompare,A>& b)
-}
-
-
- -

Exception Safety

- The following - functions must not throw exceptions: -
    -
  • The hash function -
  • - -
  • The destructors for types - Key and - T. -
  • - -
- The following hold true: -
    -
  • If an exception happens during an insert operation, the operation - has no effect. -
  • - -
  • If an exception happens during an assignment operation, the - container may be in a state where only some of the items were assigned, and - methods - size() and - empty() may return invalid answers. -
  • - -
- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_hash_map_cls/capacity_map_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_hash_map_cls/capacity_map_cls.htm deleted file mode 100644 index d3fd0c977..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_hash_map_cls/capacity_map_cls.htm +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - - - - - - - -Capacity - - - - - - - - - -

Capacity

- - -
- -
The following table provides additional information on the members - of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
size_type size() const - -

Returns: Number of key-value pairs - in the table. -

- -

- Note

-

This method takes constant time, but is - slower than for most STL containers. -

- -
-
bool empty() const - -

Returns: - size()==0. -

- -

- Note

-

This method takes constant time, but is - slower than for most STL containers. -

- -
-
size_type max_size() const - - -

Returns: Inclusive upper bound on - number of key-value pairs that the table can hold. -

- -
size_type bucket_count() - const - -

Returns: Current number of internal - buckets. See method - rehash for discussion of buckets. -

- -
-
- -
- - - -
-

See Also

- -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_hash_map_cls/concurrent_access.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_hash_map_cls/concurrent_access.htm deleted file mode 100644 index 73641d904..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_hash_map_cls/concurrent_access.htm +++ /dev/null @@ -1,413 +0,0 @@ - - - - - - - - - - - - - -Concurrent Access - - - - - - - - - -

Concurrent Access

- - -
-
-

Member classes - const_accessor and - accessor are called - accessors. Accessors allow multiple threads to concurrently - access pairs in a shared - concurrent_hash_map. An - accessor acts as a smart pointer to a pair in a - concurrent_hash_map. It holds an implicit lock on a - pair until the instance is destroyed or method - release is called on the accessor. -

- -

Classes - const_accessor and - accessor differ in the kind of access that they - permit. -

- -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Differences Between const_accessor and - accessor
-

Class -

- -
-

value_type -

- -
-

Implied Lock on - pair -

- -
-

const_accessor -

- -
-

const std::pair<const - Key,T> -

- -
-

Reader lock – permits shared access with - other readers. -

- -
-

accessor -

- -
-

std::pair<const - Key,T> -

- -
-

Writer lock – permits exclusive access by a - thread. Blocks access by other threads. -

- -
-
- -

Accessors cannot be assigned or copy-constructed, - because allowing such would greatly complicate the locking semantics. -

- -
- -

const_accessor

- -

Summary -

- -

Provides read-only access to a pair in a - concurrent_hash_map. -

- -
- -

Syntax

- -
template<typename Key, typename T, typename HashCompare, typename A> 
-class concurrent_hash_map<Key,T,HashCompare,A>::const_accessor;
-
- -

Header

- -
#include "tbb/concurrent_hash_map.h"
-
- -

Description

- -

A - const_accessor permits read-only access to a key-value - pair in a - concurrent_hash_map. -

- -
- -

Members

- -
namespace tbb {
-        template<typename Key, typename T, typename HashCompare, typename A>
-        class concurrent_hash_map<Key,T,HashCompare,A>::const_accessor {
-        public:
-            // types
-            typedef const std::pair<const Key,T> value_type;
-     
-            // construction and destruction
-            const_accessor();
-            ~const_accessor();
-            
-            // inspection
-            bool empty() const;
-            const value_type& operator*() const;
-            const value_type* operator->() const;
-     
-            // early release
-            void release();
-        }; 
-    }
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
bool empty() const - -

Returns: True if instance points - to nothing; false if instance points to a key-value pair. -

- -
void release() - -

If - !empty(), releases the implied lock on the - pair, and sets instance to point to nothing. Otherwise does nothing. -

- -
const value_type& operator*() - const - -

Raises assertion failure if - empty() and - TBB_USE_ASSERT is defined as nonzero. -

- -

Returns: Const reference to - key-value pair. -

- -
const value_type* operator->() - const - -

Returns: - &operator*() -

- -
const_accessor() - -

Constructs - const_accessor that points to nothing. -

- -
~const_accessor - -

If pointing to key-value pair, releases - the implied lock on the pair. -

- -
-
- -
- -

accessor

- -

Summary -

- -

Class that provides read and write access to a - pair in a - concurrent_hash_map. -

- -
- -

Syntax

- -
 template<typename Key, typename T, typename HashCompare,
-    typename Alloc>
- class concurrent_hash_map<Key,T,HashCompare,A>::accessor;
-
- -

Header

- -
#include "tbb/concurrent_hash_map.h"
-
- -

Description

- -

An - accessor permits read and write access to a key-value - pair in a - concurrent_hash_map. It is derived from a - const_accessor, and thus can be implicitly cast to a - const_accessor. -

- -
- -

Members

- -
namespace tbb {
-        template<typename Key, typename T, typename HashCompare, typename Alloc>
-        class concurrent_hash_map<Key,T,HashCompare,Alloc>::accessor:
-            concurrent_hash_map<Key,T,HashCompare,Alloc>::const_accessor {
-        public:
-            typedef std::pair<const Key,T> value_type;
-            value_type& operator*() const;
-            value_type* operator->() const;
-        };
-    }
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
value_type& operator*() - const - -

Raises assertion failure if - empty() and - TBB_USE_ASSERT is defined as non-zero. -

- -

Returns: Reference to key-value - pair. -

- -
value_type* operator->() - const - -

Returns: - &operator*() -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_hash_map_cls/concurrent_operations.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_hash_map_cls/concurrent_operations.htm deleted file mode 100644 index 1af0670f4..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_hash_map_cls/concurrent_operations.htm +++ /dev/null @@ -1,474 +0,0 @@ - - - - - - - - - - - - - -Concurrent Operations - - - - - - - - - -

Concurrent Operations

- - - -
-
-

The operations - count, - find, - insert, and - erase are the only operations that may be concurrently - invoked on the same - concurrent_hash_map. These operations search the table - for a key-value pair that matches a given key. The - find and - insert methods each have two variants. One takes a - const_accessor argument and provides read-only access - to the desired key-value pair. The other takes an accessor argument and - provides write access. Additionally, - insert has a variant without any accessor. -

- -

- Caution

-

The concurrent operations - (count, - find, - insert, and - erase) invalidate any iterators pointing into the - affected instance even with a - const qualifier. It is unsafe to use these - operations concurrently with any other operation. An exception to this rule is - that - count and - find do not invalidate iterators if no insertions or - erasures have occurred after the most recent call to method - rehash. -

- -
-

- Tip

-

In serial code, use the - equal_range method instead of the - find method for lookup, since - equal_range is faster and does not invalidate - iterators. -

- -
-

- Tip

-

If the - nonconst variant succeeds in finding the key, the - consequent write access blocks any other thread from accessing the key until - the accessor object is destroyed. Where possible, use the const variant to - improve concurrency. -

- -
-

Each map operation in this section returns true if - the operation succeeds, false otherwise. -

- -

- Caution

-

Though there can be at most one occurrence of a - given key in the map, there may be other key-value pairs in flight with the - same key. These arise from the semantics of the - insert and - erase methods. The - insert methods can create and destroy a temporary - key-value pair that is not inserted into a map. The erase methods remove a - key-value pair from the map before destroying it, thus permitting another - thread to construct a similar key before the old one is destroyed. -

- -
-

- Tip

-

To guarantee that only one instance of a resource - exists simultaneously for a given key, use the following technique: -

- -
    -
  • -

    To construct the resource: Obtain an - accessor to the key in the map before - constructing the resource. -

    - -
  • - -
  • -

    To destroy the resource: Obtain an - accessor to the key, destroy the resource, and - then erase the key using the accessor. -

    - -
  • - -
- -
-

Below is a sketch of how this can be done. -

- -
        extern tbb::concurrent_hash_map<Key,Resource,HashCompare> Map;
- 
-    void ConstructResource( Key key ) {
-           accessor acc;
-           if( Map.insert(acc,key) ) {
-                   // Current thread inserted key and has exclusive access.
-                   ...construct the resource here...
-           }
-           // Implicit destruction of acc releases lock
-    }
-  
-    void DestroyResource( Key key ) {
-           accessor acc;
-           if( Map.find(acc,key) ) {
-                   // Current thread found key and has exclusive access.
-                   ...destroy the resource here...
-                   // Erase key using accessor.
-                   Map.erase(acc);
-           }
-    }
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
size_type count( const Key& - key ) const - -

- Caution

-

This method may invalidate previously - obtained iterators. In serial code, you can use - equal_range that does not have such - problems. -

- -
-

Returns: 1 if map contains key; 0 - otherwise. -

- -
bool find( const_accessor& - result, const Key& key ) const - -

Searches table for pair with given key. - If key is found, sets result to provide read-only access to the matching pair. -

- -

- Caution

-

This method may invalidate previously - obtained iterators. In serial code, you can use - equal_range that does not have such - problems. -

- -
-

Returns: True if key was found; - false if key was not found. -

- -
bool find( accessor& result, - const Key& key ) - -

Searches table for pair with given key. - If key is found, sets result to provide write access to the matching pair -

- -

- Caution

-

This method may invalidate previously - obtained iterators. In serial code, you can use - equal_range that does not have such - problems. -

- -
-

Returns: True if key was found; - false if key was not found. -

- -
bool insert( const_accessor& - result, const Key& key ) - -

Searches table for pair with given key. - If not present, inserts new - pair(key,T()) into the table. Sets - result to provide read-only access to - the matching pair. -

- -

Returns True if new pair was - inserted; false if key was already in the map. -

- -
bool insert( accessor& result, - const Key& key ) - -

Searches table for pair with given key. - If not present, inserts new - pair(key,T()) into the table. Sets - result to provide write access to the - matching pair. -

- -

Returns: True if new pair was - inserted; false if key was already in the map. -

- -
bool insert( const_accessor& - result, const value_type& value ) - -

Searches table for pair with given key. - If not present, inserts new pair copy-constructed from - value into the table. Sets - result to provide read-only access to the matching - pair. -

- -

Returns: True if new pair was - inserted; false if key was already in the map. -

- -
bool insert( accessor& result, - const value_type& value ) - -

Searches table for pair with given key. - If not present, inserts new pair copy-constructed from - value into the table. Sets - result to provide write access to the - matching pair. -

- -

Returns -

- -

True if new pair was inserted; false if - key was already in the map. -

- -
bool insert( const value_type& - value ) - -

Searches table for pair with given key. - If not present, inserts new pair copy-constructed from - value into the table. -

- -

Returns: True if new pair was - inserted; false if key was already in the map. -

- -

- Tip

-

If you do not need to access the data after insertion, - use the form of insert that does not take an accessor; it may work faster and - use fewer locks. -

- -
-
template<typename - InputIterator> void insert( InputIterator first, InputIterator last - ) - -

For each pair - p in the half-open interval - [first,last), does - insert(p). The order of the - insertions, or whether they are done concurrently, is unspecified. -

- -

- Caution

-

The current implementation processes - the insertions in order. Future implementations may do the insertions - concurrently. If duplicate keys exist in [first,last), - be careful to not depend on their insertion order. -

- -
-
bool erase( const Key& key - ) - -

Searches table for pair with given key. - Removes the matching pair if it exists. If there is an accessor pointing to the - pair, the pair is nonetheless removed from the table but its destruction is - deferred until all accessors stop pointing to it. -

- -

Returns: True if pair was removed - by the call; false if key was not found in the map. -

- -
bool erase( const_accessor& - item_accessor ) - -

Requirements: - item_accessor.empty()==false -

- -

Effects -

- -

Removes pair referenced by - item_accessor. If there is another const_accessor - pointing to the pair, the pair is nonetheless - removed from the table but its destruction is deferred until all accessors - stop pointing to it. Concurrent insertion of the same key creates a new pair - in the table, which can temporarily co-exist with the one being destroyed. -

- -

Returns: True if pair was removed - by this thread; false if pair was removed by another thread. -

- -
bool erase( accessor& - item_accessor ) - -

Requirements: - item_accessor.empty()==false -

- -

Effects Removes pair referenced by - item_accessor from the table and destroys it. - Concurrent insertion of the same key creates a new pair - in the table, which can temporarily co-exist with the one being destroyed. -

- -

Returns: True if pair was removed - by this thread; false if pair was removed by another thread. -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_hash_map_cls/global_funcs.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_hash_map_cls/global_funcs.htm deleted file mode 100644 index b13631ead..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_hash_map_cls/global_funcs.htm +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - - - - - - - -Global Functions - - - - - - - - - -

Global Functions

- - -
-
-

These functions in namespace - tbb improve the STL compatibility of - concurrent_hash_map. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
template<typename Key, typename - T, typename HashCompare, typename A1, typename A2> bool operator==( const - concurrent_hash_map<Key,T,HashCompare,A1>& a, const - concurrent_hash_map<Key,T,HashCompare,A2>& b); - -

Returns: True ifa - and - b contain equal sets of keys and for each - pair (k,v1)a and - (k,v2)b, the expression bool(v1==v2) is true. -

- -
template<typename Key, typename - T, typename HashCompare, typename A1, typename A2> bool operator!=(const - concurrent_hash_map<Key,T,HashCompare,A1> &a, const - concurrent_hash_map<Key,T,HashCompare,A2> &b); - -

Returns: - !(a==b) -

- -
template<typename Key, typename - T, typename HashCompare, typename A> void swap(concurrent_hash_map<Key, - T, HashCompare, A> &a, concurrent_hash_map<Key, T, HashCompare, A> - &b) - -

a.swap(b) -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_hash_map_cls/iterators_hash_map_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_hash_map_cls/iterators_hash_map_cls.htm deleted file mode 100644 index 6fc0e77c8..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_hash_map_cls/iterators_hash_map_cls.htm +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - - - - - - - - - -Iterators - - - - - - - - - -

Iterators

- - -
-
-

Template class - concurrent_hash_map supports forward iterators; that - is, iterators that can advance only forwards across a table. Reverse iterators - are not supported. Concurrent operations (count, - find, - insert, and - erase) invalidate any existing iterators that point - into the table, An exception to this rule is that - count and - find do not invalidate iterators if no insertions or - erasures have occurred after the most recent call to method - rehash. -

- -

- Note

-

Do not call concurrent operations, including - count and - find while iterating the table. Use - concurrent_unordered_map if concurrent traversal and - insertion are required. -

- -
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
iterator begin() - -

Returns: - iterator pointing to beginning of key-value - sequence. -

- -
iterator end() - -

Returns -

- -

iterator pointing to end - of key-value sequence. -

- -
const_iterator begin() - const - -

Returns: - const_iterator pointing to the beginning of - key-value sequence. -

- -
const_iterator end() - const - -

Returns: - const_iterator pointing to the end of - key-value sequence. -

- -
std::pair<iterator, - iterator> equal_range( const Key& key ); - -

Returns: Pair of iterators - (i,j) such that the half-open range - [i,j) contains all pairs in the map - (and only such pairs) with keys equal to - key. Because the map has no duplicate keys, - the half-open range is either empty or contains a single pair. -

- -

- Tip

-

This method is serial alternative to concurrent - count and - find methods. -

- -
-
std::pair<const_iterator, - const_iterator> equal_range( const Key& key ) const; - -

See - std::pair<iterator, iterator> equal_range( - const Key& key ). -

- -
-
- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_hash_map_cls/parallel_iteration_container.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_hash_map_cls/parallel_iteration_container.htm deleted file mode 100644 index 268b367aa..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_hash_map_cls/parallel_iteration_container.htm +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - - - - - - -Parallel Iteration - - - - - - - - - -

Parallel Iteration

- - -
-
-

Types - const_range_type and - range_type model the Container Range concept. The - types differ only in that the bounds for a - const_range_type are of type - const_iterator, whereas the bounds for a - range_type are of type iterator. -

- -

- Note

-

Do not call concurrent operations, including - count and - find while iterating the table. Use - concurrent_unordered_map if concurrent traversal and - insertion are required. -

- -
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
const_range_type range( size_t - grainsize=1 ) const - -

Constructs a - const_range_type representing all keys in - the table. The parameter - grainsize is in units of hash table buckets. - Each bucket typically has on average about one key-value pair. -

- -

Returns: - const_range_type object for the table. -

- -
range_type range( size_t - grainsize=1 ) - -

Returns: - range_type object for the table. -

- -
-
- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_hash_map_cls/tbb_hash_compare_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_hash_map_cls/tbb_hash_compare_cls.htm deleted file mode 100644 index 1802b9f66..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_hash_map_cls/tbb_hash_compare_cls.htm +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - - - - - - -tbb_hash_compare Class - - - - - - - - - -

tbb_hash_compare Class

- - -

Summary

- -

Default HashCompare for - concurrent_hash_map.

- -
-

Syntax

-

template<typename Key> struct tbb_hash_compare;

- -
-

Header

-

#include "tbb/concurrent_hash_map.h"

- -
-

Description

-

A tbb_hash_compare<Key> is the default for - the HashCompare argument of template class - concurrent_hash_map. The built-in definition relies on - operator== and tbb_hasher as shown in the - Members description. For your own types, you can define a template specialization of - tbb_hash_compare or define an overload of - tbb_hasher.

- -

There are built-in definitions of tbb_hasher for the following Key types:

- -
    -
  • Types that are convertible to a size_t by static_cast<T>

    -
  • - -
  • Pointer types

    -
  • - -
  • std::basic_string

    -
  • - -
  • std::pair<K1,K2> where - K1 and K2 are hashed - using tbb_hasher.

    -
  • - -
- -
-

Members

-
 namespace tbb {
-        template<typename Key>
-        struct tbb_hash_compare {
-            static size_t hash(const Key& a) {
-                return tbb_hasher(a);
-            }
-            static bool equal(const Key& a, const Key& b) {
-                return a==b;
-            }
-        };
-     
-        template<typename T> 
-        size_t tbb_hasher(const T&);
-     
-        template<typename T> 
-        size_t tbb_hasher(T*);
-     
-        template<typename T, typename Traits, typename Alloc>
-        size_t tbb_hasher(const std::basic_string<T, Traits,Alloc>&);
-     
-        template<typename T1, typename T2>
-        size_t tbb_hasher(const std::pair<T1,T2>& );
-            };
-
-
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_hash_map_cls/whole_table_operations.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_hash_map_cls/whole_table_operations.htm deleted file mode 100644 index 0f56c6275..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_hash_map_cls/whole_table_operations.htm +++ /dev/null @@ -1,300 +0,0 @@ - - - - - - - - - - - - - -Whole Table Operations - - - - - - - - - -

Whole Table Operations

- - -
-
-

These operations affect an entire table. Do not - concurrently invoke them on the same table. -

- - -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
concurrent_hash_map( const - allocator_type& a = allocator_type()  ) - -

Constructs empty table. -

- -
concurrent_hash_map( size_type n, - const allocator_type& a = allocator_type() ) - -

Constructs empty table with preallocated - buckets for at least - n items. -

- -

- Note

-

In general, thread contention for - buckets is inversely related to the number of buckets. If memory consumption is - not an issue and - P threads will be accessing the - concurrent_hash_map, set - n>=4P. -

- -
-
concurrent_hash_map( const - concurrent_hash_map& table, const allocator_type& a = allocator_type() - ) - -

Copies a table. The table being copied - may have - const operations running on it concurrently. -

- -
template<typename  - InputIterator> concurrent_hash_map( InputIterator first, InputIterator - last,  const allocator_type& a = allocator_type() ) - -

Constructs table containing copies of - elements in the iterator half-open interval [first,last). -

- -
concurrent_hash_map( - const std::initializer_list<value_type> &il - , const allocator_type &a = allocator_type() ) - -

C++11 specific; Equivalent to - concurrent_hash_map(il.begin(), - il.end(), - a). -

- -
~concurrent_hash_map() - -

Invokes - clear(). This method is not safe to execute - concurrently with other methods on the same - concurrent_hash_map. -

- -
concurrent_hash_map& operator= - ( concurrent_hash_map& source ) - -

If source and destination - (this) table are distinct, clears the destination table and - copies all key-value pairs from the source table to the destination table. - Otherwise, does nothing. -

- -

Returns -

- -

Reference to the destination table. -

- -
concurrent_hash_map& operator= - ( const std::initializer_list<value_type> &il ) - -

C++11 specific; Sets - *this - to contain data from - il. -

- -

Returns -

- -

Reference to the destination table. -

- -
void swap( - concurrent_hash_map& table ) - -

Swaps contents and allocators of - this and - table. -

- -
void rehash( size_type n=0 - ) - -

Internally, the table is partitioned into - buckets. Method - rehash reorgnizes these internal buckets in - a way that may improve performance of future lookups. Raises number of internal - buckets to - n if - n>0 and - n exceeds the current number of - buckets. -

- -

- Caution

-

The current implementation never - reduces the number of buckets. A future implementation might reduce the number - of buckets if - n is less than the current number - of buckets. -

- -
-

- Note

-

The ratio of items to buckets affects - time and space usage by a table. A high ratio saves space at the expense of - time. A low ratio does the opposite. The default ratio is 0.5 to 1 items per - bucket on average. -

- -
-
void clear() - -

Erases all key-value pairs from the - table. Does not hash or compare any keys. -

- -

If - TBB_USE_PERFORMANCE_WARNINGS is nonzero, - issues a performance warning if the randomness of the hashing is poor enough to - significantly impact performance. -

- -
allocator_type get_allocator() - const - -

Returns: Copy of allocator used to - construct table. -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_priority_queue_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_priority_queue_cls.htm deleted file mode 100644 index d3f34302e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_priority_queue_cls.htm +++ /dev/null @@ -1,573 +0,0 @@ - - - - - - - - - - - - - -concurrent_priority_queue Template Class - - - - - - - - - -

concurrent_priority_queue Template - Class

- - -
-

Summary

- -

Template class for priority queue with concurrent - operations. -

- -
- -

Syntax

- -

-

template<typename T, typename Alloc=cache_aligned_allocator<T> > class concurrent_priority_queue;
-

- -
- -

Header

- -

-

#include "tbb/concurrent_priority_queue.h"
-

- -
- -

Description

- -

A - concurrent_priority_queue is a container that permits - multiple threads to concurrently push and pop items. Items are popped in - priority order as determined by a template parameter. The capacity of the queue - is unbounded, subject to memory limitations on the target machine. -

- -

The interface is similar to STL - std::priority_queue except where it must differ to - make concurrent modification safe. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Differences Between STL queue and Intel® - Threading Building Blocks concurrent_priority_queue
-

Feature -

- -
-

STL std::priority_queue -

- -
-

concurrent_priority_queue -

- -
-

Choice of underlying container -

- -
-

Sequence template parameter -

- -
-

No choice of underlying container; - allocator choice is provided instead -

- -
-

Access to highest priority item -

- -
-

const value_type& top() - const -

- -
-

Not available. Unsafe for concurrent - container -

- -
-

Copy and pop item if present -

- -
-

bool b=!q.empty(); if(b) { - x=q.top(); q.pop(); } -

- -
-

bool b = q.try_pop(x); -

- -
-

Get number of items in queue -

- -
-

size_type size() const -

- -
-

Same, but may be inaccurate due to pending - concurrent push or pop operations -

- -
-

Check if there are items in queue -

- -
-

bool empty() const -

- -
-

Same, but may be inaccurate due to pending concurrent push or - pop operations -

- -
-
- -
- -

Members

- -
namespace tbb {
-  template <typename T, typename Compare=std::less<T>,   
-            typename A=cache_aligned_allocator<T> >
-  class concurrent_priority_queue {
-    typedef T value_type;
-    typedef T& reference;
-    typedef const T& const_reference;
-    typedef size_t size_type;
-    typedef ptrdiff_t difference_type;
-    typedef A allocator_type;
-
-    //Constructors
-    concurrent_priority_queue(const allocator_type& a = allocator_type());  
-    concurrent_priority_queue(size_type init_capacity, const allocator_type& a = allocator_type());
-    template<typename InputIterator>
-    concurrent_priority_queue(InputIterator begin, InputIterator end, const allocator_type& a = allocator_type());
-    concurrent_priority_queue(const concurrent_priority_queue& src, const allocator_type& a = allocator_type());
-    //C++11 specific 
-    concurrent_priority_queue(const std::initializer_list<T> & il, const allocator_type &a = allocator_type());
-    
-    //Assignment
-    concurrent_priority_queue& operator=(const concurrent_priority_queue& src);
-    template<typename InputIterator>
-    void assign(InputIterator begin, InputIterator end);
-    //C++11 specific 
-    concurrent_priority_queue& operator=(const std::initializer_list<T> & il);
-    void assign(const std::initializer_list<T> & il);
-
-    void swap(concurrent_priority_queue& other);
-    
-    ~concurrent_priority_queue();
-
-    allocator_type get_allocator() const;
-    
-    bool empty() const;
-    size_type size() const;
-    
-    void push(const_reference elem);
-    bool try_pop(reference elem);
-    
-    void clear();
-  };
-}
-
-

- Note

-

In Intel® Threading Building Blocks (Intel® TBB) 2.1, a - concurrent_queue could be bounded. Intel® TBB 2.2 - moves this functionality to - concurrent_bounded_queue. Compile with - TBB_DEPRECATED=1 to restore the old functionality, - or (recommended) use - concurrent_bounded_queue instead. -

- -
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
concurrent_priority_queue(const - allocator_type& a = allocator_type()) - -

Constructs empty queue. -

- -
concurrent_priority_queue(size_type init_capacity, - const allocator_type& a = allocator_type()) - -

Constructs an empty queue with an initial capacity. -

- -
template <typename InputIterator> concurrent_priority_queue(InputIterator begin, - InputIterator end, const allocator_type& a = allocator_type()) - -

Constructs a queue containing copies of elements in the - iterator half-open interval - [begin, end). -

- -
concurrent_priority_queue(const std::initializer_list<T> & il, - const allocator_type &a = allocator_type()) - -

C++11 specific; Equivalent to concurrent_priority_queue(il.begin(), il.end(), a). -

- -
concurrent_priority_queue (const - concurrent_priority_queue& src, const allocator_type& a = - allocator_type()) - -

Constructs a copy of - src. This operation is not thread-safe and - may result in an error or an invalid copy of - src if another thread is concurrently - modifying - src. -

- -
concurrent_priority_queue& - operator=(const concurrent_priority_queue& src) - -

Assign contents of - src to - *this. This operation is not thread-safe and - may result in an error or an invalid copy of - src if another thread is concurrently - modifying - src. -

- -
concurrent_priority_queue& - operator=(const std::initializer_list<T> & il) - -

C++11 specific; Sets - *this - to contain data from - il. - Returns: reference to *this. -

- -
template <typename InputIterator> void assign(InputIterator begin, - InputIterator end, const allocator_type&) - -

Assign contents of the - iterator half-open interval - [begin, end) to *this. -

- -
void assign(const std::initializer_list<T> & il) - -

C++11 specific; Equivalent to assign(il.begin(), il.end()). -

- -
~concurrent_priority_queue() - -

Destroys all items in the queue, and the container itself, - so that it can no longer be used. -

- -
bool empty() const - -

Returns: - true if queue has no items; - false otherwise. May be inaccurate when - concurrent - push or - try_pop operations are pending. This - operation reads shared data and may trigger a race condition in race detection - tools when used concurrently. -

- -
size_type size() const - -

Returns: Number of items in the queue. May be - inaccurate when concurrent - push or - try_pop operations are pending. This - operation reads shared data and may trigger a race condition in race detection - tools when used concurrently. -

- -
void push(const_reference - elem) - -

Pushes a copy of - elem into the queue. This operation is - thread-safe with other - push and - try_pop operations. -

- -
bool try_pop(reference - elem) - -

If the queue is not empty, copies the highest priority item - from the queue and assigns it to - elem, and destroys the popped item in the - queue; otherwise, does nothing. This operation is thread-safe with other - push and - try_pop operations. -

- -

Returns: - true if an item was popped; - false otherwise. -

- -
void clear() - -

Clears the queue; results in - size()==0. This operation is not - thread-safe. -

- -
void - swap(concurrent_priority_queue& other) - -

Swaps the queue contents with those of other. This operation - is not thread-safe. -

- -
allocator_type get_allocator() - const - -

Returns: Copy of allocator used to construct the - queue. -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_queue_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_queue_cls.htm deleted file mode 100644 index 47c1a0af4..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_queue_cls.htm +++ /dev/null @@ -1,572 +0,0 @@ - - - - - - - - - - - - - -concurrent_queue Template Class - - - - - - - - - -

concurrent_queue Template Class

- - -
-

Summary

- -

Template class for queue with concurrent - operations. -

- -
- -

Syntax

- -

-

template<typename T, typename Alloc=cache_aligned_allocator<T> > class concurrent_queue;
-

- -
- -

Header

- -

-

#include "tbb/concurrent_queue.h"
-

- -
- -

Description

- -

A - concurrent_queue is a first-in first-out data - structure that permits multiple threads to concurrently push and pop items. Its - capacity is unbounded, subject to memory limitations on the target machine. -

- -

The interface is similar to STL - std::queue except where it must differ to make - concurrent modification safe. -

- -

-

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Differences Between STL queue and Intel® - Threading Building Blocks concurrent_queue
-

Feature -

- -
-

STL std::queue -

- -
-

concurrent_queue -

- -
-

Access to front and back -

- -
-

Methods - front and - back -

- -
-

Not present. They would be unsafe while - concurrent operations are in progress. -

- -
-

size_type -

- -
-

unsigned integral type -

- -
-

signed integral - type -

- -
-

unsafe_size() -

- -
-

Returns number of items in queue -

- -
-

Returns number of items in queue. May - return incorrect value if any - push or - try_pop operations are concurrently in flight. - -

- -
-

Copy and pop item unless queue q is empty. -

- -
-

bool b=!q.empty(); -

- -

if(b) { -

- -

    x=q.front(); -

- -

    q.pop(); -

- -

} -

- -
-

bool b = - q.try_pop (x) -

- -
-
- -
- -

Members

- -
namespace tbb {
-                    template<typename T, 
-                 typename Alloc=cache_aligned_allocator<T> >
-        class concurrent_queue {
-        public:
-            // types
-            typedef T value_type;
-            typedef T& reference;
-            typedef const T& const_reference;
-            typedef std::ptrdiff_t size_type;
-            typedef std::ptrdiff_t difference_type;
-            typedef Alloc allocator_type;
-     
-            explicit concurrent_queue(const Alloc& a = Alloc ());
-            concurrent_queue(const concurrent_queue& src,
-                             const Alloc& a = Alloc());
-            template<typename InputIterator>
-            concurrent_queue(InputIterator first, InputIterator last,
-                             const Alloc& a = Alloc());
-            ~concurrent_queue();
-     
-            void push( const T& source );
-            bool try_pop T& destination );
-            void clear() ;
-     
-            size_type unsafe_size() const;
-            bool empty() const;
-            Alloc get_allocator() const;
-     
-            typedef implementation-defined iterator;
-            typedef implementation-defined const_iterator;
-     
-            // iterators (these are slow and intended only for debugging)
-            iterator unsafe_begin();
-            iterator unsafe_end();
-            const_iterator unsafe_begin() const;
-            const_iterator unsafe_end() const;
-        };
-    }
-

In Intel® Threading Building Blocks (Intel® TBB) 2.1, a - concurrent_queue could be bounded. Intel® TBB 2.2 - moves this functionality to - concurrent_bounded_queue. Compile with - TBB_DEPRECATED=1 to restore the old functionality, or - (recommended) use - concurrent_bounded_queue instead. -

- - -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
concurrent_queue( const Alloc& - a = Alloc () ) - -

Constructs empty queue. -

- -
concurrent_queue( const - concurrent_queue& src, const Alloc& a = Alloc() ) - -

Constructs a copy of - src. -

- -
template<typename - InputIterator> concurrent_queue( InputIterator first, InputIterator last, - const Alloc& a = Alloc() ) - -

Constructs a queue containing copies of elements in the - iterator half-open interval [first,last). -

- -
~concurrent_queue() - -

Destroys all items in the queue. -

- -
void push( const T& source - ) - -

Pushes a copy of - source onto back of the queue. -

- -
bool try_pop ( T& destination - ) - -

If value is available, pops it from the queue, assigns it to - destination, and destroys the original value. Otherwise does nothing. -

- -

Returns: True if value was popped; false otherwise. -

- -

- Note

-

try_pop was called - pop_if_present in Intel® TBB 2.1. Compile - with - TBB_DEPRECATED=1 to use the old name. -

- -
-
void clear() - -

Clears the queue. Afterwards - size()==0. -

- -
size_type unsafe_size() - const - -

Returns -

- -

Number of items in the queue. If there are concurrent - modifications in flight, the value might not reflect the actual number of items - in the queue. -

- -
bool empty() const - -

Returns: - true if queue has no items; false otherwise. - -

- -
Alloc get_allocator() - const - -

Returns: Copy of allocator used to construct the - queue. -

- -
-
- -
- -

Iterators

- -

A - concurrent_queue provides limited iterator support - that is intended solely to allow programmers to inspect a queue during - debugging. It provides iterator and const_iterator types. Both follow the usual - STL conventions for forward iterators. The iteration order is from least - recently pushed to most recently pushed. Modifying a - concurrent_queue invalidates any iterators that - reference it. -

- -

- Caution

-

The iterators are relatively slow. They should be used only for - debugging. -

- -
-
- -

Example

- -

The following program builds a queue with the integers 0..9, and then - dumps the queue to standard output. Its overall effect is to print 0 1 2 3 4 5 - 6 7 8 9. -

- -
#include "tbb/concurrent_queue.h"
-#include <iostream>
- 
-using namespace std;
-using namespace tbb;
- 
-int main() {
-    concurrent_queue<int> queue;
-    for( int i=0; i<10; ++i )
-        queue.push(i);
-    typedef concurrent_queue<int>::iterator iter;
-    for(iter i(queue.unsafe_begin()); i!=queue.unsafe_end(); ++i)
-        cout << *i << " ";
-    cout << endl;
-    return 0;
- 
-}
-
-
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
iterator unsafe_begin() - -

Returns: - iterator pointing to beginning of the queue. - -

- -
iterator unsafe_end() - -

Returns: - iterator pointing to end of the queue. -

- -
const_iterator unsafe_begin() - const - -

Returns: - const_iterator with pointing to beginning of - the queue. -

- -
const_iterator unsafe_end() - const - -

Returns: - const_iterator pointing to end of the queue. - -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_map_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_map_cls.htm deleted file mode 100644 index fb155a588..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_map_cls.htm +++ /dev/null @@ -1,472 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - -concurrent_unordered_map and concurrent_unordered_multimap Template Classes - - - - - - - - - -

concurrent_unordered_map and - concurrent_unordered_multimap Template Classes

- - -
-

Summary

- -

Template classes for associative containers that - supports concurrent insertion and traversal. -

- -
- -

Syntax

- -
template <typename Key, 
-         typename Element, 
-         typename Hasher = tbb_hash<Key>, 
-         typename Equality = std::equal_to<Key >, 
-         typename Allocator = tbb::tbb_allocator<std::pair<const Key, Element > > > 
-class concurrent_unordered_map;
-
template <typename Key, 
-         typename Element, 
-         typename Hasher = tbb_hash<Key>, 
-         typename Equality = std::equal_to<Key >, 
-         typename Allocator = tbb::tbb_allocator<std::pair<const Key, Element > > > 
-class concurrent_unordered_multimap;
-
- -

Header

- -
#include "tbb/concurrent_unordered_map.h"
-
- -

Description

- -

concurrent_unordered_map and - concurrent_unordered_multimap support concurrent - insertion and traversal, but not concurrent erasure. The interfaces have no - visible locking. They may hold locks internally, but never while calling - user-defined code. They have semantics similar to the C++11 - std::unordered_map and - std::unordered_multimap respectively, except as - follows: -

- -
    -
  • -

    Some methods requiring C++11 language features (such - as rvalue references and - std::initializer_list) are omitted. -

    - -
  • - -
  • -

    The - erase methods are prefixed with - unsafe_, to indicate that they are not concurrency - safe. -

    - -
  • - -
  • -

    Bucket methods are prefixed with - unsafe_ as a reminder that they are not - concurrency safe with respect to insertion. -

    - -
  • - -
  • -

    The insert methods may create a temporary pair - that is destroyed if another thread inserts the same key concurrently. -

    - -
  • - -
  • -

    Like - std::list, insertion of new items does - not invalidate any iterators, nor change the order of items - already in the map. Insertion and traversal may be concurrent. -

    - -
  • - -
  • -

    The iterator types - iterator and - const_iterator are of the forward iterator - category. -

    - -
  • - -
  • -

    Insertion does not invalidate or update the - iterators returned by - equal_range, so insertion may cause non-equal - items to be inserted at the end of the range. However, the first iterator will - nonethless point to the equal item even after an insertion operation. -

    - -
  • - -
- -

The following table lists the key differences between classes - concurrent_unordered_map and - concurrent_hash_map and - concurrent_unordered_multimap. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Class -

- -
Key Difference -
-

concurrent_hash_map -

- -
-

Permits concurrent erasure, and has built-in locking -

- -
-

concurrent_unordered_map -

- -
-
    -
  • -

    Permits concurrent traversal and insertion, no visible - locking, closely resembles the C++11 unordered_map. -

    - -
  • - -
  • -

    Has the - [ ] and - at accessors. -

    - -
  • - -
- -
-

concurrent_unordered_multimap -

- -
-
    -
  • -

    More than one - <key,value> pair with the same - key value may be inserted in - concurrent_unordered_multimap. -

    - -
  • - -
  • -

    find will return the - first - <key,value> pair with a matching - key at the point the search is made, though concurrent accesses to the - container may insert other pairs with the same key before the one returned. -

    - -
  • - -
- -
-
- -

- Caution

-

As with any form of hash table, keys that are - equal must have the same hash code, and the ideal hash function distributes - keys uniformly across the hash code space. -

- -
-
- -

Members of both concurrent_unordered_map - and concurrent_unordered_multimap

- -

In the following synopsis, methods shown in - bold font - may be concurrently invoked. For example, three different threads can - concurrently call methods - insert, - begin, and - size. Their results might be non-deterministic. For - example, the result from size might correspond to before or after the - insertion. -

- -
-public:
-    // types
-    typedef Key key_type;
-    typedef std::pair<const Key, T> value_type;
-    typedef Element mapped_type;
-    typedef Hash hasher;
-    typedef Equality key_equal;
-    typedef Alloc allocator_type;
-    typedef typename allocator_type::pointer pointer;
-    typedef typename allocator_type::const_pointer const_pointer;
-    typedef typename allocator_type::reference reference;
-    typedef typename allocator_type::const_reference const_reference;
-    typedef implementation-defined size_type;
-    typedef implementation-defined difference_type;
-    typedef implementation-defined iterator;
-    typedef implementation-defined const_iterator;
-    typedef implementation-defined local_iterator;
-    typedef implementation-defined const_local_iterator;
-    
-    allocator_type get_allocator() const;
-    
-    // size and capacity
-    bool empty() const;     // May take linear time!
-    size_type size() const; // May take linear time!
-    size_type max_size() const;
-    
-    // iterators 
-    iterator begin();
-    const_iterator begin() const;
-    iterator end();
-    const_iterator end() const;
-    const_iterator cbegin() const;
-    const_iterator cend() const;
-    
-    // modifiers
-    std::pair<iterator, bool> insert(const value_type& x);
-    iterator insert(const_iterator hint, const value_type& x);
-    template<class InputIterator> void insert(InputIterator first, 
-                                                    InputIterator last);
- 
-    iterator unsafe_erase(const_iterator position);
-    size_type unsafe_erase(const key_type& k);
-    iterator unsafe_erase(const_iterator first, const_iterator last);
-    void clear();
- 
-    // observers
-    hasher hash_function() const;
-    key_equal key_eq() const;
- 
-    // lookup
-    iterator find(const key_type& k);
-    const_iterator find(const key_type& k) const;
-    size_type count(const key_type& k) const;
-    std::pair<iterator, iterator> equal_range(const key_type& k);
-    std::pair<const_iterator, const_iterator> equal_range(const key_type& k) const;
- 
-    // parallel iteration
-    typedef implementation-defined range_type;
-    typedef implementation-defined const_range_type;
-    range_type range();
-    const_range_type range() const;
-
-    // bucket interface - for debugging 
-    size_type unsafe_bucket_count() const;
-    size_type unsafe_max_bucket_count() const;
-    size_type unsafe_bucket_size(size_type n);
-    size_type unsafe_bucket(const key_type& k) const;
-    local_iterator unsafe_begin(size_type n);
-    const_local_iterator unsafe_begin(size_type n) const;
-    local_iterator unsafe_end(size_type n);
-    const_local_iterator unsafe_end(size_type n) const;
-    const_local_iterator unsafe_cbegin(size_type n) const;
-    const_local_iterator unsafe_cend(size_type n) const;
- 
-    // hash policy
-    float load_factor() const;
-    float max_load_factor() const;
-    void max_load_factor(float z);
-    void rehash(size_type n);
-
-
- -

Members of concurrent_unordered_map

- - -

In the following synopsis, methods in bold may be - concurrently invoked. -

- -
-public:
-    // construct/destroy/copy
-    explicit concurrent_unordered_map(size_type n = implementation-defined,
-               const Hasher& hf = hasher(),
-               const key_equal& eql = key_equal(),
-               const allocator_type& a = allocator_type());
-    template <typename InputIterator>
-    concurrent_unordered_map(
-                       InputIterator first, InputIterator last,
-                       size_type n = implementation-defined,
-                       const hasher& hf = hasher(),
-                       const key_equal& eql = key_equal(),
-                       const allocator_type& a = allocator_type());
-    concurrent_unordered_map(const concurrent_unordered_map&);
-    concurrent_unordered_map(const Alloc&);
-    concurrent_unordered_map(const concurrent_unordered_map&, const Alloc&);
-    //C++11 specific 
-    concurrent_unordered_map(const std::initializer_list<value_type> &il, 
-               size_type n = implementation-defined,
-               const Hasher& hf = hasher(),
-               const key_equal& eql = key_equal(),
-               const allocator_type& a = allocator_type());
-    ~concurrent_unordered_map();
-    
-    concurrent_unordered_map& operator=( const concurrent_unordered_map&);
-    //C++11 specific
-    concurrent_unordered_map& operator=( const std::initializer_list<value_type> &il);
-    
-    void swap(concurrent_unordered_map&);
- 
-    mapped_type& operator[](const key_type& k);
-    mapped_type& at( const key_type& k );
-    const mapped_type& at(const key_type& k) const;
-
-
- -

Members of - concurrent_unordered_multimap

- -
-public:
-    // construct/destroy/copy
-    explicit concurrent_unordered_multimap(size_type n = implementation-defined,
-               const Hasher& hf = hasher(),
-               const key_equal& eql = key_equal(),
-               const allocator_type& a = allocator_type());
-    template <typename InputIterator>
-    concurrent_unordered_multimap(
-                       InputIterator first, InputIterator last,
-                       size_type n = implementation-defined,
-                       const hasher& hf = hasher(),
-                       const key_equal& eql = key_equal(),
-                       const allocator_type& a = allocator_type());
-    concurrent_unordered_multimap(const concurrent_unordered_multimap&);
-    concurrent_unordered_multimap(const Alloc&);
-    concurrent_unordered_multimap(const concurrent_unordered_multimap&, const Alloc&);
-    //C++11 specific 
-    concurrent_unordered_multimap(const std::initializer_list<value_type> &il, 
-               size_type n = implementation-defined,
-               const Hasher& hf = hasher(),
-               const key_equal& eql = key_equal(),
-               const allocator_type& a = allocator_type());
-    ~concurrent_unordered_multimap();
-    
-    concurrent_unordered_multimap& operator=( const concurrent_unordered_multimap&);
-    //C++11 specific
-    concurrent_unordered_multimap& operator=( const std::initializer_list<value_type> &il);
-    
-    void swap(concurrent_unordered_multimap&);
-
-
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_map_cls/bucket_interface_map_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_map_cls/bucket_interface_map_cls.htm deleted file mode 100644 index d36260ddd..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_map_cls/bucket_interface_map_cls.htm +++ /dev/null @@ -1,238 +0,0 @@ - - - - - - - - - - - - - -Bucket Interface - - - - - - - - - -

Bucket Interface

- - -
-
-

The bucket interface is similar to the bucket - interface for the C++11 class - unordered_map and - unordered_multimap, except that the prefix - unsafe_ has been added as a reminder that the methods - are unsafe to use during concurrent insertion. -

- -

- Caution

-

The bucket interface is intended for debugging. - It is not concurrency safe. -

- -

The mapping of keys to buckets is implementation specific. -

- -
-

Buckets are numbered from 0 to - unsafe_bucket_count()-1. To iterate over a bucket use a - local_iterator or - const_local_iterator. -

- - -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
size_type unsafe_bucket_count() - const - -

Returns: Number of buckets. -

- -
size_type - unsafe_max_bucket_count() const - -

Returns: Upper bound on possible - number of buckets. -

- -
size_type - unsafe_bucket_size(size_type n) - -

Returns: Number of items in bucket - - n. -

- -
size_type unsafe_bucket(const - key_type& k) const - -

Returns: Index of bucket where - item with key - k would be placed. -

- -
local_iterator - unsafe_begin(size_type n) - -

Returns: - local_iterator pointing to first item in - bucket - n. -

- -
const_local_iterator - unsafe_begin(size_type n) const - -

Returns: - const_local_iterator pointing to first item - in bucket - n. -

- -
local_iterator - unsafe_end(size_type n) - -

Returns: - local_iterator pointing to immediately after - the last item in bucket - n. -

- -
const_local_iterator - unsafe_end(size_type n) const - -

Returns - const_local_iterator pointing to immediately - after the last item in bucket - n. -

- -
const_local_iterator - unsafe_cbegin(size_type n) const - -

Returns: - const_local_iterator pointing to first item - in bucket - n. -

- -
const_local_iterator - unsafe_cend(size_type n) const - -

Returns: - const_local_iterator pointing to immediately - past last item in bucket - n. -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_map_cls/construct_destroy_copy_map_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_map_cls/construct_destroy_copy_map_cls.htm deleted file mode 100644 index 23c331fbf..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_map_cls/construct_destroy_copy_map_cls.htm +++ /dev/null @@ -1,399 +0,0 @@ - - - - - - - - - - - - - -Construct, Destroy, Copy - - - - - - - - - -

Construct, Destroy, Copy

- - -
-
- The following tables provide information on the members of the concurrent_unordered_map - and concurrent_unordered_multimap template classes. -
- -

concurrent_unordered_map

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
explicit concurrent_unordered_map - (size_type n = <implementation-defined>, const hasher& hf = hasher(),const - key_equal& eql = key_equal(), const allocator_type& a = - allocator_type()) - -

Construct table with - n buckets. -

- -
template <typename - InputIterator> concurrent_unordered_map (InputIterator first, InputIterator - last, size_type n = <implementation-defined>, const hasher& hf = - hasher(), const key_equal& eql = key_equal(), const allocator_type& a = - allocator_type()) - -

Construct table with - n buckets initialized with - value_type(*i) where - i is in the half open interval - [first,last). -

- -
concurrent_unordered_map(const - concurrent_unordered_map& m) - -

Construct copy of concurrent_unordered_map - m. -

- -
concurrent_unordered_map(const - Alloc& a) - -

Construct empty concurrent_unordered_map using allocator - a. -

- -
concurrent_unordered_map(const - concurrent_unordered_map&, const Alloc& a) - -

Construct copy of concurrent_unordered_map - m using allocator - a. -

- -
concurrent_unordered_map( - const std::initializer_list<value_type> &il, - size_type n = implementation-defined, - const Hasher& hf = hasher(), - const key_equal& eql = key_equal(), - const allocator_type& a = allocator_type()) - -

C++11 specific; Equivalent to - concurrent_unordered_map(il.begin(), - il.end(), - a). -

- -
~concurrent_unordered_map() - -

Destroy the concurrent_unordered_map. -

- -
concurrent_unordered_map& - operator=(const concurrent_unordered_map& m); - -

Set - *this to a copy of concurrent_unordered_map - m. -

- -
concurrent_unordered_map& - operator=(const std::initializer_list<value_type> &il); - -

C++11 specific; Sets - *this - to contain data from - il. -

- -
allocator_type get_allocator() - const; - - -

Get copy of the allocator associated with - *this. -

- -
-
- -
- -

concurrent_unordered_multimap

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
explicit concurrent_unordered_multimap - (size_type n = <implementation-defined>, const hasher& hf = hasher(),const - key_equal& eql = key_equal(), const allocator_type& a = - allocator_type()) - -

Construct table with - n buckets. -

- -
template <typename - InputIterator> concurrent_unordered_multimap (InputIterator first, InputIterator - last, size_type n = <implementation-defined>, const hasher& hf = - hasher(), const key_equal& eql = key_equal(), const allocator_type& a = - allocator_type()) - -

Construct table with - n buckets initialized with - value_type(*i) where - i is in the half open interval - [first,last). -

- -
concurrent_unordered_multimap(const - concurrent_unordered_multimap& m) - -

Construct copy of concurrent_unordered_multimap - m. -

- -
concurrent_unordered_multimap(const - Alloc& a) - -

Construct empty concurrent_unordered_multimap using allocator - a. -

- -
concurrent_unordered_multimap(const - concurrent_unordered_multimap&, const Alloc& a) - -

Construct copy of concurrent_unordered_multimap - m using allocator - a. -

- -
concurrent_unordered_multimap( - const std::initializer_list<value_type> &il, - size_type n = implementation-defined, - const Hasher& hf = hasher(), - const key_equal& eql = key_equal(), - const allocator_type& a = allocator_type()) - -

C++11 specific; Equivalent to - concurrent_unordered_multimap(il.begin(), - il.end(), - a). -

- -
~concurrent_unordered_multimap() - -

Destroy the concurrent_unordered_multimap. -

- -
concurrent_unordered_multimap& - operator=(const concurrent_unordered_multimap& m); - -

Set - *this to a copy of concurrent_unordered_multimap - m. -

- -
concurrent_unordered_multimap& - operator=(const std::initializer_list<value_type> &il); - -

C++11 specific; Sets - *this - to contain data from - il. -

- -
allocator_type get_allocator() - const; - - -

Get copy of the allocator associated with - *this. -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_map_cls/container_iterators_map_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_map_cls/container_iterators_map_cls.htm deleted file mode 100644 index 2f4d703b0..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_map_cls/container_iterators_map_cls.htm +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - - - - - - - -Iterators - - - - - - - - - -

Iterators

- - -
-
-

The template classes - concurrent_unordered_map and - concurrent_unordered_multimap - support forward iterators; - that is, iterators that can advance only forwards across a table. Reverse - iterators are not supported. Concurrent operations (count, find, - insert) do - not invalidate any existing iterators that point into the table. - Note that an iterator obtained via - begin() will no longer point to the first item if - insert inserts an item before it. - Erasure (unsafe_erase) does not invalidate iterators - other than those pointing to erased elements. -

- -

Methods - cbegin and - cend follow C++11 conventions. They return - const_iterator even if the object is non-const. -

- - -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
iterator begin() - -

Returns: - iterator pointing to first item in the map. -

- -
const_iterator begin() - const - -

Returns: - const_iterator pointing to first item in the - map. -

- -
iterator end() - -

Returns -

- -

iterator pointing to - immediately past last item in the map. -

- -
const_iterator end() - const - -

Returns: - const_iterator pointing to immediately past - last item in the map. -

- -
const_iterator cbegin() - const - -

Returns: - const_iterator pointing to first item in the - map. -

- -
const_iterator cend() - const - -

Returns -

- -

const_iterator pointing - to immediately after the last item in the map. -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_map_cls/hash_policy_map_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_map_cls/hash_policy_map_cls.htm deleted file mode 100644 index 61e590302..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_map_cls/hash_policy_map_cls.htm +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - -Hash Policy - - - - - - - - - -

Hash Policy

- - -
- -
The following table provides additional information on the members - of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
float load_factor() const - -

Returns: Average number of elements per bucket. -

- -
float max_load_factor() - const - -

Returns: Maximum size of a bucket. If insertion of an - item causes a bucket to be bigger, the implementation may repartition or - increase the number of buckets. -

- -
void max_load_factor(float - z) - -

Set maximum size for a bucket to - z. -

- -
void rehash(size_type n) - -

Requirements: - n must be a power of two. -

- -

Effects: No effect if current number of buckets is at - least - n. Otherwise increases number of - buckets to - n. -

- -
-
- -
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_map_cls/lookup_map_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_map_cls/lookup_map_cls.htm deleted file mode 100644 index d0236452a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_map_cls/lookup_map_cls.htm +++ /dev/null @@ -1,234 +0,0 @@ - - - - - - - - - - - - - -Lookup - - - - - - - - - -

Lookup

- - -
-
- -
The following table provides additional information on the members - of the template classes - concurrent_unordered_map and - concurrent_unordered_multimap - . - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
iterator find(const key_type& - k) - -

Returns: - iterator pointing to item with key equivalent - to - k, or - end() if no such item exists. -

- -
const_iterator find(const - key_type& k) const - -

Returns: - const_iterator pointing to item with key - equivalent to - k, or - end() if no such item exists. -

- -
size_type count(const key_type& - k) const - -

Returns: Number of items with keys - equivalent to - k. -

- -
std::pair<iterator, iterator> - equal_range(const key_type& k) - -

Returns: Range containing all keys - in the map that are equivalent to - k. -

- -
std::pair<const_iterator, - const_iterator> equal_range(const key_type& k) const - -

Returns -

- -

Range containing all keys in the map that - are equivalent to - k. -

- -
-
- -
- -
- -
The following table provides additional information on the members - only available in the concurrent_unordered_map template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
mapped_type& operator[](const - key_type& k) - -

Inserts a new item if item with key - equivalent to - k is not already present. -

- -

Returns: Reference to - x.second , where - x is item in map with key equivalent to - - k. -

- -
mapped_type& at( const - key_type& k ) - -

Throws exception if item with key - equivalent to - k is not already present. -

- -

Returns: Reference to - x.second, where - x is the item in map with key equivalent to - k. -

- -
const mapped_type& at(const - key_type& k) const - -

Throws exception if item with key - equivalent to - k is not already present. -

- -

Returns: Const reference to - x.second, where - x is the item in map with key - equivalent to - k. -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_map_cls/modifiers_map_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_map_cls/modifiers_map_cls.htm deleted file mode 100644 index 7ac822c71..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_map_cls/modifiers_map_cls.htm +++ /dev/null @@ -1,279 +0,0 @@ - - - - - - - - - - - - - -Modifiers - - - - - - - - - -

Modifiers

- - -
-
- -
The following table provides additional information on the members - of the - concurrent_unordered_map and - concurrent_unordered_multimap - template classes. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
std::pair<iterator, bool> - insert(const value_type& x) - -

Constructs copy of - x and attempts to insert it into the - map. Destroys the copy if the attempt fails because there was already an item - with the same key. -

- -

Returns: - std::pair(iterator,success). The value - iterator points to an item in the map with a matching - key. The value of - success is true if the item was inserted; false - otherwise. -

- -
iterator insert(const_iterator hint, - const value_type& x) - -

Same as - insert(x). -

- -

- Note

-

The current implementation ignores the - hint argument. Other implementations might not ignore it. It exists for - similarity with the C++11 class - unordered_map. It hints to the - implementation about where to start searching. Typically it should point to an - item adjacent to where the item will be inserted. -

- -
-

Returns: Iterator pointing to - inserted item, or item already in the map with the same key. -

- -
template<class InputIterator> - void insert(InputIterator first, InputIterator last) - -

Does - insert(*i) where - i is in the half-open interval - [first,last). -

- -
iterator unsafe_erase(const_iterator - position) - -

Removes the item pointed to by - position from the map. -

- -

Returns: Iterator pointing to item - that was immediately after the erased item, or - end() if erased item was the last item in the - map. -

- -
size_type unsafe_erase(const - key_type& k) - -

Removes item with key - k if such an item exists. -

- -

Returns: 1 if an item was removed; 0 - otherwise. -

- -
iterator unsafe_erase(const_iterator - first, const_iterator last) - -

Removes - *i where - i is in the half-open interval - [first,last) . -

- -

Returns: - last -

- -
void clear() - -

Remove all items from the map. -

- -
-
- -
- -
- -
The following table provides additional information on - the concurrent_unordered_map template class. - - - - - - - - - - - - - - - - - - - -
Member - Description -
void - swap(concurrent_unordered_map& m) - -

Swaps contents of - *this and - m. -

- -
-
- -
- -
- -
The following table provides additional information on - the concurrent_unordered_multimap template class. - - - - - - - - - - - - - - - - - - - -
Member - Description -
void - swap(concurrent_unordered_multimap& m) - -

Swaps contents of - *this and - m. -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_map_cls/observers_map_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_map_cls/observers_map_cls.htm deleted file mode 100644 index 789edf7e9..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_map_cls/observers_map_cls.htm +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - -Observers - - - - - - - - - -

Observers

- - -
-
- -
The following table provides additional information on the members - of the - concurrent_unordered_map and - concurrent_unordered_multimap - template classes. - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
hasher hash_function() - const() - -

Returns: Hashing functor associated - with the map. -

- -
key_equal key_eq() const - -

Returns: Key equivalence functor - associated with the map. -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_map_cls/parallel_iteration_map_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_map_cls/parallel_iteration_map_cls.htm deleted file mode 100644 index 39ef559b7..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_map_cls/parallel_iteration_map_cls.htm +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - - - - - - - -Parallel Iteration - - - - - - - - - -

Parallel Iteration

- - -
-
-

Types - const_range_type and - range_type model the Container Range concept. The - types differ only in that the bounds for a - const_range_type are of type - const_iterator, whereas the bounds for a - range_type are of type iterator. -

- - -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
const_range_type range() - const - -

Returns: - const_range_type object representing all - keys in the table. -

- -
range_type range() - -

Returns: - range_type object representing all keys in - the table. -

- -
-
- -
- -
- - - -
-

See Also

- -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_map_cls/size_and_capacity_map_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_map_cls/size_and_capacity_map_cls.htm deleted file mode 100644 index 28b7b75b4..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_map_cls/size_and_capacity_map_cls.htm +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - - - - - - - -Size and capacity - - - - - - - - - -

Size and capacity

- - -
-
- -
The following table provides additional information on the - members of the - concurrent_unordered_map and - concurrent_unordered_multimap template classes. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
bool empty() const - -

Returns: - size()!=0. -

- -
size_type size() const - -

Returns: Number of items in - *this. -

- -

- Caution

-

Though the current implementation takes - time - O(1), possible future implementations - might take time - O(P), where - P is the number of hardware threads. -

- -
-
size_type max_size() const - - -

Returns: Upper bound on number of - items that - *this can hold. -

- -

- Caution

-

The upper bound may be much higher than - what the container can actually hold. -

- -
-
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_set_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_set_cls.htm deleted file mode 100644 index 0bd31822a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_set_cls.htm +++ /dev/null @@ -1,430 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - -concurrent_unordered_set and concurrent_unordered_multiset Template Classes - - - - - - - - - -

- concurrent_unordered_set and - concurrent_unordered_multiset Template Classes

- - -
-

Summary

- -

Template classes for set containers that supports - concurrent insertion and traversal. -

- -
- -

Syntax

- -
template <typename Key, 
-          typename Hasher = tbb_hash<Key>, 
-          typename Equality = std::equal_to<Key>, 
-          typename Allocator = tbb::tbb_allocator<Key>
-class concurrent_unordered_set;
-
template <typename Key, 
-          typename Hasher = tbb_hash<Key>, 
-          typename Equality = std::equal_to<Key>, 
-          typename Allocator = tbb::tbb_allocator<Key>
-class concurrent_unordered_multiset;
-
- -

Header

- -
#include "tbb/concurrent_unordered_set.h"
-
- -

Description

- -

- concurrent_unordered_set and - concurrent_unordered_multiset support concurrent - insertion and traversal, but not concurrent erasure. The interfaces have no - visible locking. They may hold locks internally, but never while calling - user-defined code. They have semantics similar to the C++11 - std::unordered_set and - std::unordered_multiset respectively except as - follows: -

- -
    -
  • -

    Some methods requiring C++11 language features (such - as rvalue references and - std::initializer_list) are omitted. -

    - -
  • - -
  • -

    The erase methods are prefixed with - unsafe_, to indicate that they are not concurrency - safe. -

    - -
  • - -
  • -

    Bucket methods are prefixed with - unsafe_ as a reminder that they are not - concurrency safe with respect to insertion. -

    - -
  • - -
  • -

    For - concurrent_unordered_set, - insert methods may create a temporary item that is - destroyed if another thread inserts the same item concurrently. -

    - -
  • - -
  • -

    Like - std::list, insertion of new items does - not invalidate any iterators, nor change the order of items - already in the map. Insertion and traversal may be concurrent. -

    - -
  • - -
  • -

    The iterator types - iterator and - const_iterator are of the forward iterator - category. -

    - -
  • - -
  • -

    Insertion does not invalidate or update the - iterators returned by - equal_range, so insertion may cause non-equal - items to be inserted at the end of the range. However, the first iterator will - nonetheless point to the found item even after an insertion operation. -

    - -
  • - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - -
-

Class -

- -
Key Difference -
-

concurrent_unordered_set -

- -
-

An item may be inserted in - concurrent_unordered_set only once. -

- -
-

concurrent_unordered_multiset -

- -
-
    -
  • -

    An item may be inserted in - concurrent_unordered_multiset more than - once. -

    - -
  • - -
  • -

    find will return the - first item in the table with a matching search key, though concurrent accesses - to the container may insert other other occurrences of the same item before the - one returned. -

    - -
  • - -
- -
-
- -

- Caution

-

As with any form of hash table, keys that are - equal must have the same hash code, and the ideal hash function distributes - keys uniformly across the hash code space. -

- -
-
- -

Members of - concurrent_unordered_set and - concurrent_unordered_multiset

- -

In the following synopsis, methods shown in - bold font - may be concurrently invoked. For example, three different threads can - concurrently call methods - insert, - begin, and - size. Their results might be non-deterministic. For - example, the result from size might correspond to before, or after the - insertion. -

- -
-public:
-    // types
-    typedef Key key_type;
-    typedef Key value_type;
-    typedef Key mapped_type;
-    typedef Hash hasher;
-    typedef Equality key_equal;
-    typedef Alloc allocator_type;
-    typedef typename allocator_type::pointer pointer;
-    typedef typename allocator_type::const_pointer const_pointer;
-    typedef typename allocator_type::reference reference;
-    typedef typename allocator_type::const_reference const_reference;
-    typedef implementation-defined size_type;
-    typedef implementation-defined difference_type;
-    typedef implementation-defined iterator;
-    typedef implementation-defined const_iterator;
-    typedef implementation-defined local_iterator;
-    typedef implementation-defined const_local_iterator;
-
-    allocator_type get_allocator() const;
-
-    // size and capacity
-    bool empty() const;     // May take linear time!
-    size_type size() const; // May take linear time!
-    size_type max_size() const;
-
-    // iterators 
-    iterator begin();
-    const_iterator begin() const;
-    iterator end();
-    const_iterator end() const;
-    const_iterator cbegin() const;
-    const_iterator cend() const;
-
-    // modifiers
-    std::pair<iterator, bool> insert(const value_type& x);
-    iterator insert(const_iterator hint, const value_type& x);
-    template<class InputIterator> void insert(InputIterator first, 
-                                              InputIterator last);
-    
-    iterator unsafe_erase(const_iterator position);
-    size_type unsafe_erase(const key_type& k);
-    iterator unsafe_erase(const_iterator first, const_iterator last);
-    void clear();
-
-    // observers
-    hasher hash_function() const;
-    key_equal key_eq() const;
-
-    // lookup
-    iterator find(const key_type& k);
-    const_iterator find(const key_type& k) const;
-    size_type count(const key_type& k) const;
-    std::pair<iterator, iterator> equal_range(const key_type& k);
-    std::pair<const_iterator, const_iterator> equal_range(const key_type& k) const;
-
-    // parallel iteration
-    typedef implementation defined range_type;
-    typedef implementation defined const_range_type;
-    range_type range();
-    const_range_type range() const;
-    
-    // bucket interface - for debugging 
-    size_type unsafe_bucket_count() const;
-    size_type unsafe_max_bucket_count() const;
-    size_type unsafe_bucket_size(size_type n);
-    size_type unsafe_bucket(const key_type& k) const;
-    local_iterator unsafe_begin(size_type n);
-    const_local_iterator unsafe_begin(size_type n) const;
-    local_iterator unsafe_end(size_type n);
-    const_local_iterator unsafe_end(size_type n) const;
-    const_local_iterator unsafe_cbegin(size_type n) const;
-    const_local_iterator unsafe_cend(size_type n) const;
-
-    // hash policy
-    float load_factor() const;
-    float max_load_factor() const;
-    void max_load_factor(float z);
-    void rehash(size_type n);
-};
-
-
- -

Members of - concurrent_unordered_set

- -
-public:
-    // construct/destroy/copy
-    explicit concurrent_unordered_set(size_type n = implementation-defined,
-        const Hasher& hf = hasher(),
-        const key_equal& eql = key_equal(),
-        const allocator_type& a = allocator_type());
-    template <typename InputIterator>
-    concurrent_unordered_set(
-            InputIterator first, InputIterator last,
-            size_type n = implementation-defined,
-            const hasher& hf = hasher(),
-            const key_equal& eql = key_equal(),
-            const allocator_type& a = allocator_type());
-    concurrent_unordered_set(const concurrent_unordered_set&);
-    concurrent_unordered_set(const Alloc&);
-    concurrent_unordered_set(const concurrent_unordered_set&, const Alloc&);
-    //C++11 specific 
-    concurrent_unordered_set(const std::initializer_list<value_type> &il, 
-               size_type n = implementation-defined,
-               const Hasher& hf = hasher(),
-               const key_equal& eql = key_equal(),
-               const allocator_type& a = allocator_type());
-    ~concurrent_unordered_set();
-
-    concurrent_unordered_set& operator=( const concurrent_unordered_set&);
-    //C++11 specific
-    concurrent_unordered_set& operator=( const std::initializer_list<value_type> &il);
-
-    void swap(concurrent_unordered_set&);
-
-
- -

Members of - concurrent_unordered_multiset

- -
-public:
-    // construct/destroy/copy
-    explicit concurrent_unordered_multiset(size_type n = implementation-defined,
-        const Hasher& hf = hasher(),
-        const key_equal& eql = key_equal(),
-        const allocator_type& a = allocator_type());
-    template <typename InputIterator>
-    concurrent_unordered_multiset(
-            InputIterator first, InputIterator last,
-            size_type n = implementation-defined,
-            const hasher& hf = hasher(),
-            const key_equal& eql = key_equal(),
-            const allocator_type& a = allocator_type());
-    concurrent_unordered_multiset(const concurrent_unordered_multiset&);
-    concurrent_unordered_multiset(const Alloc&);
-    concurrent_unordered_multiset(const concurrent_unordered_multiset&, const Alloc&);
-        //C++11 specific 
-    concurrent_unordered_multiset(const std::initializer_list<value_type> &il, 
-               size_type n = implementation-defined,
-               const Hasher& hf = hasher(),
-               const key_equal& eql = key_equal(),
-               const allocator_type& a = allocator_type());
-    ~concurrent_unordered_multiset();
-
-    concurrent_unordered_multiset& operator=( const concurrent_unordered_multiset&);
-    //C++11 specific
-    concurrent_unordered_multiset& operator=( const std::initializer_list<value_type> &il);
-
-    void swap(concurrent_unordered_multiset&);
-
-
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_set_cls/bucket_interface_set_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_set_cls/bucket_interface_set_cls.htm deleted file mode 100644 index 400c2a6d9..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_set_cls/bucket_interface_set_cls.htm +++ /dev/null @@ -1,238 +0,0 @@ - - - - - - - - - - - - - -Bucket Interface - - - - - - - - - -

Bucket Interface

- - -
-
-

The bucket interface is similar to the bucket - interface for the C++11 class - unordered_set and - unordered_multiset, except that the prefix - unsafe_ has been added as a reminder that the methods - are unsafe to use during concurrent insertion. -

- -

- Caution

-

The bucket interface is intended for debugging. - It is not concurrency safe. -

- -

The mapping of keys to buckets is implementation specific. -

- -
-

Buckets are numbered from 0 to - unsafe_bucket_count()-1. To iterate over a bucket use a - local_iterator or - const_local_iterator. -

- - -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
size_type unsafe_bucket_count() - const - -

Returns: Number of buckets. -

- -
size_type - unsafe_max_bucket_count() const - -

Returns: Upper bound on possible - number of buckets. -

- -
size_type - unsafe_bucket_size(size_type n) - -

Returns: Number of items in bucket - - n. -

- -
size_type unsafe_bucket(const - key_type& k) const - -

Returns: Index of bucket where - item with key - k would be placed. -

- -
local_iterator - unsafe_begin(size_type n) - -

Returns: - local_iterator pointing to first item in - bucket - n. -

- -
const_local_iterator - unsafe_begin(size_type n) const - -

Returns: - const_local_iterator pointing to first item - in bucket - n. -

- -
local_iterator - unsafe_end(size_type n) - -

Returns: - local_iterator pointing to immediately after - the last item in bucket - n. -

- -
const_local_iterator - unsafe_end(size_type n) const - -

Returns - const_local_iterator pointing to immediately - after the last item in bucket - n. -

- -
const_local_iterator - unsafe_cbegin(size_type n) const - -

Returns: - const_local_iterator pointing to first item - in bucket - n. -

- -
const_local_iterator - unsafe_cend(size_type n) const - -

Returns: - const_local_iterator pointing to immediately - past last item in bucket - n. -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_set_cls/construct_destroy_copy_set_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_set_cls/construct_destroy_copy_set_cls.htm deleted file mode 100644 index a19d659ab..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_set_cls/construct_destroy_copy_set_cls.htm +++ /dev/null @@ -1,406 +0,0 @@ - - - - - - - - - - - - - -Construct, Destroy, Copy - - - - - - - - - -

Construct, Destroy, Copy

- - -
-
The following tables provides information on the members of the - concurrent_unordered_set and - concurrent_unordered_multiset template classes. -
- -

- concurrent_unordered_set

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
explicit concurrent_unordered_set - (size_type n = implementation-defined, const hasher& hf = hasher(),const - key_equal& eql = key_equal(), const allocator_type& a = - allocator_type()) - -

Construct table with - n buckets. -

- -
template <typename - InputIterator> concurrent_unordered_set (InputIterator first, InputIterator - last, size_type n = <implementation-defined>, const hasher& hf = - hasher(), const key_equal& eql = key_equal(), const allocator_type& a = - allocator_type()) - -

Construct table with - n buckets initialized with - value_type(*i) where - i is in the half open interval - [first,last). -

- -
concurrent_unordered_set(const - unordered_set& m) - -

Construct copy of set - m. -

- -
concurrent_unordered_set(const - Alloc& a) - -

Construct empty set using allocator - a. -

- -
concurrent_unordered_set(const - unordered_set&, const Alloc& a) - -

Construct copy of set - m using allocator - a. -

- -
concurrent_unordered_set( - const std::initializer_list<value_type> &il, - size_type n = implementation-defined, - const Hasher& hf = hasher(), - const key_equal& eql = key_equal(), - const allocator_type& a = allocator_type()) - -

C++11 specific; Equivalent to - concurrent_unordered_set(il.begin(), - il.end(), - a). -

- -
~concurrent_unordered_set() - -

Destroy the set. -

- -
concurrent_unordered_set& - operator=(const concurrent_unordered_set& m); - -

Set - *this to a copy of set - m. -

- -
concurrent_unordered_set& - operator=(const std::initializer_list<value_type> &il); - -

C++11 specific; Sets - *this - to contain data from - il. -

- -
allocator_type get_allocator() - const; - - -

Get copy of the allocator associated with - - *this. -

- -
-
- -
- -

- concurrent_unordered_multiset

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
explicit - concurrent_unordered_multiset (size_type n = implementation-defined, const - hasher& hf = hasher(),const key_equal& eql = key_equal(), const - allocator_type& a = allocator_type()) - -

Construct table with - n buckets. -

- -
template <typename - InputIterator> concurrent_unordered_multiset (InputIterator first, - InputIterator last, size_type n = <implementation-defined>, const - hasher& hf = hasher(), const key_equal& eql = key_equal(), const - allocator_type& a = allocator_type()) - -

Construct table with - n buckets initialized with - value_type(*i) where - i is in the half open interval - [first,last). -

- -
concurrent_unordered_multiset(const - unordered_multiset& m) - -

Construct copy of set - m. -

- -
concurrent_unordered_multiset(const Alloc& - a) - -

Construct empty set using allocator - a. -

- -
concurrent_unordered_multiset(const - unordered_multiset&, const Alloc& a) - -

Construct copy of set - m using allocator - a. -

- -
concurrent_unordered_multiset( - const std::initializer_list<value_type> &il, - size_type n = implementation-defined, - const Hasher& hf = hasher(), - const key_equal& eql = key_equal(), - const allocator_type& a = allocator_type()) - -

C++11 specific; Equivalent to - concurrent_unordered_multiset(il.begin(), - il.end(), - a). -

- -
~concurrent_unordered_multiset() - -

Destroy the set. -

- -
concurrent_ - unordered_multiset& operator=(const concurrent_unordered_multiset& - m); - -

Set - *this to a copy of set - m. -

- -
concurrent_unordered_multiset& - operator=(const std::initializer_list<value_type> &il); - -

C++11 specific; Sets - *this - to contain data from - il. -

- -
allocator_type get_allocator() - const; - - -

Get copy of the allocator associated with - - *this. -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_set_cls/container_iterators_set_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_set_cls/container_iterators_set_cls.htm deleted file mode 100644 index 4c96d6a26..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_set_cls/container_iterators_set_cls.htm +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - - - - - - - -Iterators - - - - - - - - - -

Iterators

- - -
-
-

Template classes - concurrent_unordered_set and - concurrent_unordered_multiset - support forward iterators; - that is, iterators that can advance only forwards across a table. Reverse - iterators are not supported. Concurrent operations (count, find, - insert) do - not invalidate any existing iterators that point into the table. - Note that an iterator obtained via - begin() will no longer point to the first item if - insert inserts an item before it. - Erasure (unsafe_erase) does not invalidate iterators - other than those pointing to erased elements. -

- -

Methods - cbegin and - cend follow C++11 conventions. They return - const_iterator even if the object is non-const. -

- -
- - -
The following table provides additional information on the members - of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
iterator begin() - -

Returns: - iterator pointing to first item in the set. -

- -
const_iterator begin() - const - -

Returns: - const_iterator pointing to first item in the - set. -

- -
iterator end() - -

Returns: - iterator pointing to immediately past last - item in the set. -

- -
const_iterator end() const - - -

Returns: - const_iterator pointing to immediately past - last item in the set. -

- -
const_iterator cbegin() - const - -

Returns: - const_iterator pointing to the first item in - the set. -

- -
const_iterator cend() - const - -

Returns: - const_iterator pointing to immediately after - the last item in the set. -

- -
-
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_set_cls/hash_policy_set_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_set_cls/hash_policy_set_cls.htm deleted file mode 100644 index 2c8e61b5d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_set_cls/hash_policy_set_cls.htm +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - - - - - - - -Hash Policy - - - - - - - - - -

Hash Policy

- - -
- -
The following table provides additional information on the members - of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
float load_factor() const - -

Returns: Average number of elements per bucket. -

- -
float max_load_factor() - const - -

Returns: Maximum size of a bucket. If insertion of an - item causes a bucket to be bigger, the implementation may repartition or - increase the number of buckets. -

- -
void max_load_factor(float - z) - -

Set maximum size for a bucket to - z. -

- -
void rehash(size_type n) - -

Requirements: - n must be a power of two. -

- -

Effects: No effect if current number of buckets is at - least - n. Otherwise increases number of - buckets to - n. -

- -
-
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_set_cls/lookup_set_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_set_cls/lookup_set_cls.htm deleted file mode 100644 index 00f2e219a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_set_cls/lookup_set_cls.htm +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - - - - - - - -Lookup - - - - - - - - - -

Lookup

- - -
- -
The following table provides additional information on the members - of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
iterator find(const key_type& - k) - -

Returns: - iterator pointing to item with key equivalent - to - k, or - end() if no such item exists. -

- -
const_iterator find(const - key_type& k) const - -

Returns: - const_iterator pointing to item with key - equivalent to - k, or - end() if no such item exists. -

- -
size_type count(const key_type& - k) const - -

Returns: Number of items with keys - equivalent to - k. -

- -
std::pair<iterator, iterator> - equal_range(const key_type& k) - -

Returns: Range containing all keys - in the set that are equivalent to - k. -

- -
std::pair<const_iterator, - const_iterator> equal_range(const key_type& k) const - -

Returns: Range containing all keys - in the set that are equivalent to - k. -

- -
-
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_set_cls/modifiers_set_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_set_cls/modifiers_set_cls.htm deleted file mode 100644 index 7c90fa745..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_set_cls/modifiers_set_cls.htm +++ /dev/null @@ -1,281 +0,0 @@ - - - - - - - - - - - - - -Modifiers - - - - - - - - - -

Modifiers

- - -
-
- -
The following tables provides additional information on the - members of the - concurrent_unordered_set and - concurrent_unordered_multiset template classes. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
std::pair<iterator, bool> - insert(const value_type& x) - -

Constructs copy of - x and attempts to insert it into the - set. Destroys the copy if the attempt fails because there was already an item - with the same key. -

- -

Returns: - std::pair(iterator,success). The - value - iterator points to an item in the set with a matching - key. The value of - success is true if the item was inserted; false - otherwise. -

- -
iterator insert(const_iterator - hint, const value_type& x) - -

Same as - insert(x). -

- -

- Note

-

The current implementation ignores the - hint argument. Other implementations might not ignore it. It exists for - similarity with the C++11 classes - unordered_set and - unordered_multiset. It hints to the - implementation about where to start searching. Typically it should point to an - item adjacent to where the item will be inserted. -

- -
-

Returns: Iterator pointing to - inserted item, or item already in the set with the same key. -

- -
template<class - InputIterator> void insert(InputIterator first, InputIterator - last) - -

Does - insert(*i) where - i is in the half-open interval - [first,last). -

- -
iterator - unsafe_erase(const_iterator position) - -

Removes the item pointed to by - position from the set. -

- -

Returns: Iterator pointing to item - that was immediately after the erased item, or - end() if erased item was the last item in - the set. -

- -
size_type unsafe_erase(const - key_type& k) - -

Removes item with key - k if such an item exists. -

- -

Returns: 1 if an item was removed; - 0 otherwise. -

- -
iterator - unsafe_erase(const_iterator first, const_iterator last) - -

Removes - *i where - i is in the half-open - interval [first,last). -

- -

Returns: - last -

- -
void clear() - -

Removes all items from the set. -

- -
-
- -
- -
- -
The following table provides additional information on the - concurrent_unordered_set template class. - - - - - - - - - - - - - - - - - - - -
Member - Description -
void - swap(concurrent_unordered_set& m) - -

Swaps contents of - *this and - m. -

- -
-
- -
- -
- -
The following table provides additional information on the - concurrent_unordered_multiset template class. - - - - - - - - - - - - - - - - - - - -
Member - Description -
void - swap(concurrent_unordered_multiset& m) - -

Swaps contents of - *this and - m. -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_set_cls/observers_set_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_set_cls/observers_set_cls.htm deleted file mode 100644 index bdef9f946..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_set_cls/observers_set_cls.htm +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - - - - -Observers - - - - - - - - - -

Observers

- - -
- -
The following table provides additional information on the members - of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
hasher hash_function() - const() - -

Returns: Hashing functor associated - with the set. -

- -
key_equal key_eq() const - -

Returns: Key equivalence functor - associated with the set. -

- -
-
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_set_cls/parallel_iteration_set_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_set_cls/parallel_iteration_set_cls.htm deleted file mode 100644 index 8ac1df6a6..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_set_cls/parallel_iteration_set_cls.htm +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - - - - - - - -Parallel Iteration - - - - - - - - - -

Parallel Iteration

- - -
-
-

Types - const_range_type and - range_type model the Container Range concept. The - types differ only in that the bounds for a - const_range_type are of type - const_iterator, whereas the bounds for a - range_type are of type iterator. -

- - -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
const_range_type range() - const - -

Returns: - const_range_type object representing all - keys in the table. -

- -
range_type range() - -

Returns: - range_type object representing all keys in - the table. -

- -
-
- -
- -
- - - -
-

See Also

- -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_set_cls/size_and_capacity_set_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_set_cls/size_and_capacity_set_cls.htm deleted file mode 100644 index a48bd3485..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_unordered_set_cls/size_and_capacity_set_cls.htm +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - -Size and Capacity - - - - - - - - - -

Size and Capacity

- - -
- -
The following table provides additional information on the members - of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
bool empty() const - -

Returns: - size()!=0. -

- -
size_type size() const - -

Returns: Number of items in - *this. -

- -

- Caution

-

Though the current implementation takes - time - O(1), possible future implementations might - take time - O(P), where - P is the number of hardware threads. -

- -
-
size_type max_size() const - - -

Returns: Upper bound on number of - items that - *this can hold. -

- -

- Caution

-

The upper bound may be much higher than - what the container can actually hold. -

- -
-
-
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_vector.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_vector.htm deleted file mode 100644 index d7a2cf5e1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_vector.htm +++ /dev/null @@ -1,417 +0,0 @@ - - - - - - - - - - - - - - - - - - - - -concurrent_vector - - - - - - - - - -

concurrent_vector

- - -
-

Summary

- -

Template class for vector that can be concurrently - grown and accessed. -

- -
- -

Syntax

- -
template<typename T, class Alloc=cache_aligned_allocator<T> > 
-class concurrent_vector;
-
- -

Header

- -
 #include "tbb/concurrent_vector.h"
-
- -

Description

- -

A - concurrent_vector is a container with the following - features: -

- -
    -
  • -

    Random access by index. The index of the first - element is zero. -

    - -
  • - -
  • -

    Multiple threads can grow the container and - append new elements concurrently. -

    - -
  • - -
  • -

    Growing the container does not invalidate - existing iterators or indices. -

    - -
  • - -
- -

A - concurrent_vector meets all requirements for a - Container and a Reversible Container as specified in the ISO C++ standard. It - does not meet the Sequence requirements due to absence of methods - insert() and - erase(). -

- -
- -

Members

- -
namespace tbb {
-        template<typename T, typename Alloc=cache_aligned_allocator<T> >
-        class concurrent_vector {
-        public:
-            typedef size_t size_type;
-            typedef allocator-A-rebound-for-T allocator_type;
-            typedef T value_type;
-            typedef ptrdiff_t difference_type;
-            typedef T& reference;
-            typedef const T& const_reference;
-            typedef T* pointer;
-            typedef const T *const_pointer;
-            typedef implementation-defined iterator;
-            typedef implementation-defined const_iterator;
-            typedef implementation-defined reverse_iterator;
-            typedef implementation-defined const_reverse_iterator;
-     
-            // Parallel ranges
-            typedef implementation-defined range_type;
-            typedef implementation-defined const_range_type;
-            range_type range( size_t grainsize );
-            const_range_type range( size_t grainsize ) const;
-     
-            // Constructors
-            explicit concurrent_vector( const allocator_type& a =
-                                        allocator_type() );
-            concurrent_vector( const concurrent_vector& x );
-            template<typename M>
-                concurrent_vector( const concurrent_vector<T, M>& x );
-     
-            explicit concurrent_vector( size_type n, 
-                const T& t=T(), 
-                const allocator_type& a = allocator_type() );
-            template<typename InputIterator>
-                concurrent_vector(InputIterator first, InputIterator last,
-               const allocator_type& a=allocator_type());
-            
-            //C++11 specific 
-            concurrent_vector(std::initializer_list<T> il, const allocator_type &a = allocator_type())
-     
-            // Assignment
-            concurrent_vector& operator=( const concurrent_vector& x );
-            template<class M>
-                concurrent_vector& operator=( const concurrent_vector<T, M>& x );
-            void assign( size_type n, const T& t );
-            template<class InputIterator >
-                void assign( InputIterator first, InputIterator last );
-     
-            //C++11 specific
-            concurrent_vector& operator=( const std::initializer_list<T> &il);
-            void assign(std::initializer_list<T> il);
-            
-            // Concurrent growth operations
-            iterator grow_by( size_type delta );
-            iterator grow_by( size_type delta, const T& t );
-            iterator grow_to_at_least( size_type n );
-            iterator push_back( const T& item );
-     
-            // Items access
-            reference operator[]( size_type index );
-            const_reference operator[]( size_type index ) const;
-            reference at( size_type index );
-            const_reference at( size_type index ) const;
-            reference front();
-            const_reference front() const;
-            reference back();
-            const_reference back() const;
-     
-            // Storage
-            bool empty() const;
-            size_type capacity() const;
-            size_type max_size() const;
-            size_type size() const;
-            allocator_type get_allocator() const;
-     
-            // Non-concurrent operations on whole container
-            void reserve( size_type n );
-            void compact();
-            void swap( concurrent_vector& vector );
-            void clear();
-            ~concurrent_vector();
-     
-            // Iterators
-            iterator begin();
-            iterator end();
-            const_iterator begin() const;
-            const_iterator end() const;
-            reverse_iterator rbegin();
-            reverse_iterator rend();
-            const_reverse_iterator rbegin() const;
-            const_reverse_iterator rend() const;
-     
-            // C++11 extensions
-            const_iterator cbegin() const;
-            const_iterator cend() const;
-            const_reverse_iterator crbegin() const;
-            const_reverse_iterator crend() const;      
-        };
-     
-        // Template functions
-        template<typename T, class A1, class A2>
-            bool operator==( const concurrent_vector<T, A1>& a, 
-                             const concurrent_vector<T, A2>& b );
-     
-       template<typename T, class A1, class A2>
-           bool operator!=( const concurrent_vector<T, A1>& a, 
-                            const concurrent_vector<T, A2>& b );
-     
-       template<typename T, class A1, class A2>
-       bool operator<( const concurrent_vector<T, A1>& a, 
-                       const concurrent_vector<T, A2>& b );
-     
-       template<typename T, class A1, class A2>
-           bool operator>( const concurrent_vector<T, A1>& a, 
-                           const concurrent_vector<T, A2>& b );
-     
-       template<typename T, class A1, class A2>
-           bool operator<=( const concurrent_vector<T, A1>& a, 
-                            const concurrent_vector<T, A2>& b );
-     
-       template<typename T, class A1, class A2>
-           bool operator>=(const concurrent_vector<T, A1>& a, 
-                           const concurrent_vector<T, A2>& b );
-     
-       template<typename T, class A>
-           void swap(concurrent_vector<T, A>& a, concurrent_vector<T, A>& b);
-     
-    }
-

- Note

-

The rebinding of - allocator_type follows practice established by both - the Microsoft and GNU implementations of - std::vector. -

- -
-

- Note

-

The return types of the growth methods are - different in Intel® Threading Building Blocks (Intel® TBB) 2.2 than in prior - versions. See footnotes in the descriptions of the individual methods for - details. -

- -
-
- -

Exception Safety

- -

Concurrent growing is fundamentally incompatible - with ideal exception safety.   Nonetheless, - concurrent_vector offers a practical level of - exception safety. -

- -

Element type T must meet the following - requirements: -

- -
    -
  • -

    Its destructor must not throw an exception. -

    - -
  • - -
  • -

    If its default constructor can throw an - exception, its destructor must be non-virtual and work correctly on zero-filled - memory. -

    - -
  • - -
- -

Otherwise the program's behavior is undefined. -

- -

Growth and vector assignment append a sequence of - elements to a vector. If an exception occurs, the impact on the vector  depends - upon the cause of the exception: -

- -
    -
  • -

    If the exception is thrown by the constructor - of an element, then all subsequent elements in the appended sequence will be - zero-filled. -

    - -
  • - -
  • -

    Otherwise, the exception was thrown by the - vector's allocator. The vector becomes broken. Each element in the appended - sequence will be in one of three states: -

    - -
  • - -
- -
    -
  • constructed -
  • - -
  • zero-filled> -
  • - -
  • unallocated in memory  -
  • - -
- -

Once a vector becomes broken, care must be taken - when accessing it: -

- -
    -
  • -

    Accessing an unallocated element with method at - causes an exception - std::range_error. Any other way of accessing an - unallocated element has undefined behavior. -

    - -
  • - -
  • -

    The values of - capacity() and - size() may be less than expected. -

    - -
  • - -
  • -

    Access to a broken vector via - back() has undefined behavior. -

    - -
  • - -
- -

However, the following guarantees hold for broken - or unbroken vectors: -

- -
    -
  • -

    Let - k be an index of an unallocated element. - Then size()<= capacity()<=k - -

    - -
  • - -
  • -

    Growth operations never cause - size() or - capacity() to decrease. -

    - -
  • - -
- -

If a concurrent growth operation successfully - completes, the appended sequence remains valid and accessible even if a - subsequent growth operations fails. -

- -
- -

Fragmentation

- -

Unlike a - std::vector, a - concurrent_vector never moves existing elements when - it grows. The container allocates a series of contiguous arrays. The first - reservation, growth, or assignment operation determines the size of the first - array. Using a small number of elements as initial size incurs fragmentation - across cache lines that may increase element access time. The method - shrink_to_fit()merges several smaller arrays into a - single contiguous array, which may improve access time. -

- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_vector/access.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_vector/access.htm deleted file mode 100644 index 5335e875f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_vector/access.htm +++ /dev/null @@ -1,193 +0,0 @@ - - - - - - - - - - - - - -Access - - - - - - - - - -

Access

- - - -
-
-

- Caution

-

The methods described in this section may be - concurrently invoked on the same vector as methods for concurrent growth. - However, the returned reference may be to an element that is being concurrently - constructed. -

- -
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
reference operator[]( size_type - index ) - -

Returns: Reference to element with - the specified index. -

- -
const_refrence operator[]( - size_type index ) const - -

Returns: Const reference to - element with the specified index. -

- -
reference at( size_type index - ) - -

Returns: Reference to element at - specified index. -

- -

Throws : - std::out_of_range - if - index >= size(). -

- -
const_reference at( size_type - index ) const - -

Returns: Const reference to - element at specified index. -

- -

Throws: - std::out_of_range if - index >= size() or - index is for broken portion of vector. -

- -
reference front() - -

Returns: - (*this)[0] -

- -
const_reference front() - const - -

Returns: - (*this)[0] -

- -
reference back() - -

Returns: - (*this)[size()-1] -

- -
const_reference back() - const - -

Returns: - (*this)[size()-1] -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_vector/capacity_vector.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_vector/capacity_vector.htm deleted file mode 100644 index 0f4519543..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_vector/capacity_vector.htm +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - - - - - - - -Capacity - - - - - - - - - -

Capacity

- - -
- -
The following table provides additional information on the members - of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
size_type size() const - -

Returns: Number of elements in the - vector. The result may include elements that are allocated but still under - construction by concurrent calls to any of the growth methods. -

- -
bool empty() const - -

Returns: - size()==0 - -

- -
size_type capacity() - const - -

Returns: Maximum size to which - vector can grow without having to allocate more memory. -

- -

- Note

-

Unlike an - std::vector, a - concurrent_vector does not move existing - elements if it allocates more memory. -

- -
-
size_type max_size() const - -

Returns: The highest possible size - of the vector could reach. -

- -
-
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_vector/concurrent_growth.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_vector/concurrent_growth.htm deleted file mode 100644 index 68fcfd3f5..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_vector/concurrent_growth.htm +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - - - - - - - - -Concurrent Growth - - - - - - - - - -

Concurrent Growth

- - -
-
- -
The methods described in the following table may be invoked - concurrently on the same vector. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
iterator grow_by( size_type - delta, const_reference t=T() ) - -

Appends a sequence comprising - delta copies of t to the end of the vector. If - t is not specified, the new elements - are default constructed. -

- -

Returns: Iterator pointing to - beginning of appended sequence. -

- -

- Note

-

Return type was - size_type in Intel® Threading Building - Blocks (Intel® TBB) 2.1. -

- -
-
iterator grow_to_at_least( - size_type n ) - -

Appends minimal sequence of elements such - that - vector.size()>=n. The new elements are - default constructed. Blocks until all elements in range - [0..n) are allocated (but not necessarily constructed - if they are under construction by a different thread). -

- -

- Tip

-

If a thread must know whether - construction of an element has completed, consider the following technique. - Instantiate the - concurrent_vector using a - zero_allocator. Define the constructor - T() such that when it completes, it sets a - field of - T to non-zero. A thread can check whether - an item in the - concurrent_vector is constructed by - checking whether the field is non-zero. -

- -
-

Returns: Iterator that points to - beginning of appended sequence, or pointer to (*this)[n] if no elements were - appended. -

- -

- Note

-

Return type was - void in Intel® TBB 2.1. -

- -
-
iterator push_back( - const_reference value ) - -

Appends copy of - value to the end of the vector. -

- -

Returns Iterator that points to - the copy. -

- -

- Note

-

Return type was - size_type in Intel® TBB 2.1. -

- -
-
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_vector/construction_copy_and_assignment.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_vector/construction_copy_and_assignment.htm deleted file mode 100644 index 1fb987935..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_vector/construction_copy_and_assignment.htm +++ /dev/null @@ -1,257 +0,0 @@ - - - - - - - - - - - - - -Construction, Copy, and Assignment - - - - - - - - - -

Construction, Copy, and Assignment

- - -
-
-

- Caution

-

These operations must not be invoked concurrently - on the same vector. -

- -
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
concurrent_vector( const - allocator_type& a = allocator_type() ) - -

Constructs empty vector using optionally - specified allocator instance. -

- -
concurrent_vector( size_type n, - const_reference t=T(), const allocator_type& a = allocator_type() - ); - -

Constructs vector of - n copies of - t, using optionally specified - allocator instance. If - t is not specified, each element is - default constructed instead of copied. -

- -
template<typename - InputIterator> concurrent_vector( InputIterator first, InputIterator last, - const allocator_type& a = allocator_type() ) - -

Constructs vector that is copy of the - sequence - [first,last), making only - N calls to the copy constructor of - T, where - N is the distance between first and last. -

- -
concurrent_vector(std::initializer_list<T> il, - const allocator_type &a = allocator_type()) ) - -

C++11 specific; Equivalent to - concurrent_vector(il.begin(), - il.end(), - a). -

- -
concurrent_vector( const - concurrent_vector& src ) - -

Constructs copy of - src. -

- -
concurrent_vector& operator=( - const concurrent_vector& src ) - -

Assigns contents of - src to - *this. -

- -

Returns: Reference to left hand - side. -

- -
template<typename M> - concurrent_vector& - operator=( const concurrent_vector<T, M>& src ) - -

Assign contents of - src to - *this. -

- -

Returns: Reference to left hand - side. -

- -
concurrent_vector& operator=( - std::initializer_list<T> il ) - -

C++11 specific; Sets - *this - to contain data from - il. -

- -

Returns: Reference to left hand - side. -

- -
void assign( size_type n, - const_reference t ) - -

Assign - n copies of - t. -

- -
template<class InputIterator - > - void assign( - InputIterator first, InputIterator last ) - -

Assign copies of sequence - [first,last), making only - N calls to the copy constructor of T, where - N is the distance between first and last. -

- -
void assign( - std::initializer_list<T> il ) - -

C++11 specific; Equivalent to - assign(il.begin(), - il.end()) -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_vector/iterators_vector.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_vector/iterators_vector.htm deleted file mode 100644 index 941016bcb..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_vector/iterators_vector.htm +++ /dev/null @@ -1,185 +0,0 @@ - - - - - - - - - - - - - -Iterators - - - - - - - - - -

Iterators

- - -
-
-

Template class - concurrent_vector<T> supports random access - iterators as defined in Section 24.1.4 of the  ISO C++ Standard. Unlike a - std::vector, the iterators are not raw pointers. A - concurrent_vector<T> meets the reversible - container requirements in Table 66 of the ISO C++ Standard. -

- - -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
iterator begin() - -

Returns: - iterator pointing to beginning of the - vector. -

- -
const_iterator begin() - const - -

Returns: - const_iterator pointing to beginning of the - vector. -

- -
iterator end() - -

Returns: - iterator pointing to end of the vector. -

- -
const_iterator end() - const - -

Returns: - const_iterator pointing to end of the - vector. -

- -
reverse_iterator - rbegin() - -

Returns: - reverse iterator - pointing to beginning of reversed vector. -

- -
const_reverse_iterator rbegin() - const - -

Returns: - const_reverse_iterator pointing to beginning - of reversed vector. -

- -
iterator rend() - -

Returns: - const_reverse_iterator pointing to end of - reversed vector. -

- -
const_reverse_iterator - rend() - -

Returns: - const_reverse_iterator pointing to end of - reversed vector. -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_vector/parallel_iteration.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_vector/parallel_iteration.htm deleted file mode 100644 index 778a83882..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_vector/parallel_iteration.htm +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - - - - - - - - -Parallel Iteration - - - - - - - - - -

Parallel Iteration

- - -
-
-

Types - const_range_type and - range_type model the Container Range concept. The - types differ only in that the bounds for a - const_range_type are of type - const_iterator, whereas the bounds for a - range_type are of type - iterator. -

- - -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
range_type range( size_t - grainsize=1 ) - -

Returns: Range over entire - concurrent_vector that permits read-write - access. -

- -
const_range_type range( size_t - grainsize=1 ) const - -

Returns: Range over entire - concurrent_vector that permits read-only - access. -

- -
-
- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_vector/whole_vector_operations.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_vector/whole_vector_operations.htm deleted file mode 100644 index a5583905c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/concurrent_vector/whole_vector_operations.htm +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - - - - - - - -Whole Vector Operations - - - - - - - - - -

Whole Vector Operations

- - -
-
-

- Caution

-

Concurrent invocation of these operations on the - same instance is not safe. -

- -
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
void reserve( size_type n - ) - -

Reserves space for at least - n elements. -

- -

Throws - std::length_error if - n>max_size(). It can also throw an - exception if the allocator throws an exception. -

- -

Safety: If an exception is thrown, - the instance remains in a valid state. -

- -
void shrink_to_fit() - -

Compacts the internal representation to - reduce fragmentation. -

- -

- Note

-

Method - shrink_to_fit was called - compact() in Intel® Threading Building - Blocks (Intel® TBB) 2.1. It was renamed to match the C++11 - std::vector::shrink_to_fit(). -

- -
-
void swap( concurrent_vector& - x ) - -

Swap contents of two vectors. Takes O(1) - time. -

- -
void clear() - -

Erases all elements. Afterwards, - size()==0. Does not free internal arrays. -

- -

- Tip

-

To free internal arrays, call - shrink_to_fit() after - clear(). -

- -
-

- Note

-

The original release of Intel® TBB 2.1 - and its "update 1" freed the arrays. The change in "update 2" reverts back to - the behavior of Intel® TBB 2.0. The motivation for not freeing the arrays is to - behave similarly to - std::vector::clear(). -

- -
-
~concurrent_vector() - -

Erases all elements and destroys the - vector. -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/container_range_concept.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/container_range_concept.htm deleted file mode 100644 index 5a695c712..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/containers_overview/container_range_concept.htm +++ /dev/null @@ -1,248 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - -Container Range Concept - - - - - - - - - -

Container Range Concept

- - -
-

Summary

- -

View set of items in a container as a recursively - divisible range. -

- -
- -

Requirements

- -

A Container Range is a - Range with the further requirements listed in below. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Additional Requirements on a Container - Range R
-

Pseudo-Signature -

- -
-

Semantics -

- -
-

R::value_type -

- -
-

Item type -

- -
-

R::reference -

- -
-

Item reference type -

- -
-

R::const_reference -

- -
-

Item const reference type -

- -
-

R::difference_type -

- -
-

Type for difference of two iterators -

- -
-

R::iterator -

- -
-

Iterator type for range -

- -
-

R::iterator R::begin() -

- -
-

First item in range -

- -
-

R::iterator R::end() -

- -
-

One past last item in range -

- -
-

R::size_type R::grainsize() - const -

- -
-

Grain size -

- -
-
- -
- -

Model Types

- -

Classes - concurrent_hash_map and - concurrent_vector both have member types - range_type and - const_range_type that model a Container Range. -

- -

Use the range types in conjunction with - parallel_for, - parallel_reduce, and - parallel_scan to iterate over items in a container. -

- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/environment.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/environment.htm deleted file mode 100644 index 6f672983c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/environment.htm +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - - - - - - - - - - -Environment - - - - - - - - - - - - - - -

Environment

- - -
-
-

This section describes features of  Intel® Thread Building Blocks (Intel® TBB) that relate to general environment issues.

- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/environment/enabling_debugging_features.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/environment/enabling_debugging_features.htm deleted file mode 100644 index bc4c226f4..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/environment/enabling_debugging_features.htm +++ /dev/null @@ -1,300 +0,0 @@ - - - - - - - - - - - - - -Enabling Debugging Features - - - - - - - - - - - - - - -

Enabling Debugging Features

- - -
-
-

Four macros control certain debugging features. In - general, it is useful to compile with these features on for development code, - and off for production code, because the features may decrease performance. The - table below summarizes the macros and their default values. A value of 1 - enables the corresponding feature; a value of 0 disables the feature. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Debugging Macros
-

Macro -

- -
-

Default Value -

- -
-

Feature -

- -
-

TBB_USE_DEBUG -

- -
-

Windows* OS: -

- -

1 if - _DEBUG is defined, -

- -

0 otherwise. -

- -
-

Default value for all other macros in this - table. -

- -
-

All other systems: 0. -

- -
-

TBB_USE_ASSERT -

- -
-

TBB_USE_DEBUG -

- -

  -

- -
-

Enable internal assertion checking. Can - significantly slow performance. -

- -
-

TBB_USE_THREADING_TOOLS -

- -
-

Enable full support for Intel® Parallel - Studio XE and Intel® Threading Tools. -

- -
-

TBB_USE_PERFORMANCE_WARNINGS -

- -
-

Enable warnings about performance issues. -

- -
-
- -
- -

TBB_USE_ASSERT - Macro

- -

The macro - TBB_USE_ASSERT controls whether error checking is - enabled in the header files. Define - TBB_USE_ASSERT as - 1 to enable error checking. -

- -

If an error is detected, the library prints an - error message on - stderr and calls the standard C routine - abort. To stop a program when internal error checking - detects a failure, place a breakpoint on - tbb::assertion_failure. -

- -

- Tip

-

On Microsoft Windows* operating systems, debug - builds implicitly set - TBB_USE_ASSERT to 1 by default -

- -
-
- -

TBB_USE_THREADING_TOOLS - Macro

- -

The macro - TBB_USE_THREADING_TOOLS controls support for Intel® - Threading Tools: -

- -
    -
  • -

    Intel® Inspector XE -

    - -
  • - -
  • -

    Intel® VTune™ Amplifier XE -

    - -
  • - -
  • -

    Intel® Parallel Inspector -

    - -
  • - -
  • -

    Intel® Parallel Amplifier -

    - -
  • - -
  • -

    Intel® Thread Profiler -

    - -
  • - -
  • -

    Intel® Thread Checker -

    - -
  • - -
- -

Define - TBB_USE_THREADING_TOOLS as - 1 to enable full support for these tools. -

- -

That is full support is enabled if error checking - is enabled. Leave - TBB_USE_THREADING_TOOLS undefined or zero to enable - top performance in release builds, at the expense of turning off some support - for tools. -

- -
- -

TBB_USE_PERFORMANCE_WARNINGS - Macro

- -

The macro - TBB_USE_PERFORMANCE_WARNINGS controls performance - warnings. Define it to be 1 to enable the warnings. Currently, the warnings - affected are: -

- -
    -
  • -

    Some that report poor hash functions for - concurrent_hash_map. Enabling the warnings may - impact performance. -

    - -
  • - -
  • -

    Misaligned 8-byte atomic stores on Intel® IA-32 - processors. -

    - -
  • - -
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/environment/feature_macros.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/environment/feature_macros.htm deleted file mode 100644 index 69ad58987..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/environment/feature_macros.htm +++ /dev/null @@ -1,216 +0,0 @@ - - - - - - - - - - - - - - -Feature macros - - - - - - - - - - - - - - -

Feature macros

- - -
-
-

Macros in this section control optional features in - the library. -

- -
- -

TBB_DEPRECATED - macro

- -

The macro - TBB_DEPRECATED controls deprecated features that would - otherwise conflict with non-deprecated use. Define it to be 1 to get deprecated - Intel® Threading Building Blocks (Intel® TBB) 2.1 interfaces. -

- -
- -

TBB_USE_EXCEPTIONS - macro

- -

The macro - TBB_USE_EXCEPTIONS controls whether the library - headers use exception-handling constructs such as - try, - catch, and - throw. The headers do not use these constructs when - TBB_USE_EXCEPTIONS=0. -

- -

For the Microsoft Windows*, Linux*, and OS X* - operating systems, the default value is 1 if exception handling constructs are - enabled in the compiler, and 0 otherwise. -

- -

- Caution

-

The runtime library may still throw an exception - when - TBB_USE_EXCEPTIONS=0. -

- -
-
- -

TBB_USE_CAPTURED_EXCEPTION - macro

- -

The macro - TBB_USE_CAPTURED_EXCEPTION controls rethrow of - exceptions within the library. Because C++ 1998 does not support catching an - exception on one thread and rethrowing it on another thread, the library - sometimes resorts to rethrowing an approximation called - tbb::captured_exception. -

- -
    -
  • -

    Define - TBB_USE_CAPTURED_EXCEPTION=1 to make the library - rethrow an approximation. This is useful for uniform behavior across platforms. - -

    - -
  • - -
  • -

    Define - TBB_USE_CAPTURED_EXCEPTION=0 to request rethrow of - the exact exception. This setting is valid only on platforms that support the - std::exception_ptr feature of C++11. Otherwise a compile-time diagnostic is - issued. -

    - -
  • - -
- -

On Windows* , Linux* and OS X* operating systems, - the default value is - 1 for supported host compilers with - std::exception_ptr, and - 0 otherwise. On IA-64 architecture processors the - default value is - 0. -

- -

- Caution

-

In order for exact exception propagation to work - properly an appropriate library binary should be used. -

- -
-
- -

C++11 Support

- -

To enable C++11 specific code, you need to use a compiler that - supports C++11 mode, and compile your code with the C++11 mode set. C++11 - support is off by default in the compiler. The following table shows the option - for turning it on. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - -
Compilation Commands for Setting C++11 Support
-

Environment -

- -
-

Intel® C++ Compiler (Version 11.0) -

- -

Compilation Command and Option -

- -
-

Windows* OS systems -

- -
-

icl /Qstd:c++0x foo.cpp -

- -
-

Linux* OS systems -

- -

OS X* systems -

- -
-

icc -std=c++0x foo.cpp -

- -
-
- -
- -
- - - -
-

See Also

- -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/environment/version_information.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/environment/version_information.htm deleted file mode 100644 index 987c18e6c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/environment/version_information.htm +++ /dev/null @@ -1,355 +0,0 @@ - - - - - - - - - - - - - -Version Information - - - - - - - - - - - - - - -

Version Information

- - -
-
-

Intel® Threading Building Blocks (Intel® TBB) has - macros, an environment variable, and a function that reveal version and - run-time information. -

- -
- -

Version Macros

- -

The header - tbb/tbb_stddef.h defines macros related to versioning, - as described below. You should not redefine these macros. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Version Macros
-

Macro -

- -
-

Description of Value -

- -
-

TBB_INTERFACE_VERSION -

- -
-

Current interface version. The value is a - decimal numeral of the form - xyyy where - x is the major version number and - y is the minor version number. -

- -
-

TBB_INTERFACE_VERSION_MAJOR -

- -
-

TBB_INTERFACE_VERSION/1000; that is, the - major version number. -

- -
-

TBB_COMPATIBLE_INTERFACE_VERSION -

- -
-

Oldest major interface version still - supported. -

- -
-
- -
- -

TBB_VERSION Environment - Variable

- -

Set the environment variable - TBB_VERSION to - 1 to cause the library to print information on - stderr. Each line is of the form - “TBB: - tag value, where - tag and - value are described below. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Output from TBB_VERSION
-

Tag -

- -
-

Description of Value -

- -
-

VERSION -

- -
-

Intel TBB product version number. -

- -
-

INTERFACE_VERSION -

- -
-

Value of macro - TBB_INTERFACE_VERSION when library was - compiled. -

- -
-

BUILD_... -

- -
-

Various information about the machine - configuration on which the library was built. -

- -
-

TBB_USE_ASSERT -

- -
-

Setting of macro - TBB_USE_ASSERT -

- -
-

DO_ITT_NOTIFY -

- -
-

1 if library can enable - instrumentation for Intel® Parallel Studio XE and Intel® Threading Tools; - 0 or - undefined otherwise. -

- -
-

ITT -

- -
-

yes if library has enabled - instrumentation for Intel® Parallel Studio XE and Intel® Threadng Tools, no - otherwise. Typically - yes only if the program is running under - control of Intel® Parallel Studio XE or Intel® Threadng Tools. -

- -
-

ALLOCATOR -

- -
-

Underlying allocator for - tbb::tbb_allocator. It is - scalable_malloc if the Intel® TBB malloc - library was successfully loaded; - malloc otherwise. -

- -
-
- -

- Caution

-

This output is implementation specific and may - change at any time. -

- -
-
- -

TBB_runtime_interface_version - Function

- -

Summary -

- -

Function that returns the interface version of the - Intel® TBB library that was loaded at runtime. -

- -
- -

Syntax

- -

-

extern “C” int TBB_runtime_interface_version();
-

- -
- -

Header

- -

-

#include "tbb/tbb_stddef.h"
-

- -
- -

Description

- -

The value returned by - TBB_runtime_interface_version() may differ from the - value of - TBB_INTERFACE_VERSION obtained at compile time. This - can be used to identify whether an application was compiled against a - compatible version of the Intel® TBB headers. -

- -

In general, the run-time value - TBB_runtime_interface_version() must be greater than - or equal to the compile-time value of TBB_INTERFACE_VERSION. Otherwise the - application may fail to resolve all symbols at run time. -

- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/exceptions.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/exceptions.htm deleted file mode 100644 index 64588335e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/exceptions.htm +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - - - - - - - - -Exceptions - - - - - - - - - -

Exceptions

- - -
-

Intel® Threading Building Blocks (Intel® TBB) propagates exceptions along logical paths in a tree of tasks. Because these paths cross between thread stacks, support for moving an exception between stacks is necessary.

-

When an exception is thrown out of a task, it is caught inside the Intel® TBB run-time and handled as follows:

-
    -
  1. If the cancellation group for the task has already been cancelled, the exception is ignored.
  2. - -
  3. Otherwise the exception or an approximation of it is captured and the group is cancelled.
  4. - -
  5. The captured exception is rethrown from the root of the cancellation group after all tasks in the group have completed or have been successfully cancelled.
  6. - -
-

The exact exception is captured when both of the following conditions are true:

-
    -
  • The task's task_group_context was created in a translation unit compiled with TBB_USE_CAPTURED_EXCEPTION=0.
  • - -
  • The Intel® TBB library was built with a compiler that supports the std::exception_ptr feature of C++11.
  • - -
-

Otherwise an appoximation of the original exception x is captured as follows:

-
    -
  1. If x is a tbb_exception, it - is captured by x.move().
  2. - -
  3. If x is a std::exception, it is captured as - a - tbb::captured_exception(typeid(x).name(),x.what()).
  4. - -
  5. Otherwise x is captured as a tbb::captured - exception with implementation-specified value for name() and - what().
  6. - -
-
-
- - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/exceptions/captured_exception.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/exceptions/captured_exception.htm deleted file mode 100644 index 894eeab39..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/exceptions/captured_exception.htm +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - - - - - - -captured_exception - - - - - - - - - -

captured_exception

- - -
-

Summary

- -

Class used by Intel® Threading Building Blocks (Intel® TBB) to capture an - approximation of an exception. -

- -
- -

Syntax

- -
class captured_exception;
-
- -

Header

- -
#include "tbb/tbb_exception.h"
-
- -

Description

- -

When a task throws an exception, sometimes Intel® - TBB converts the exception to a - captured_exception before propagating it. The - conditions for conversion are described in Section Exceptions. -

- -
- -

Members

- -
namespace tbb {
-        class captured_exception: public tbb_exception {
-            captured_exception(const captured_exception& src);
-            captured_exception(const char* name, const char* info);
-            ~captured_exception() throw();
-            captured_exception& operator=(const captured_exception&);
-            captured_exception* move() throw();
-            void destroy() throw();
-            void throw_self();
-            const char* name() const throw();
-            const char* what() const throw();
-        };
-    }
- -
The following table provides information on the additions that - captured_exception makes to - tbb_exception. Section - tbb_exception describes the rest of the interface. - - - - - - - - - - - - - - - - - - - -
Member - Description -
captured_exception( const char* - name, const char* info ) - -

Constructs a - captured_exception with the specified - name and - info. -

- -
-
- -
- -
- - - -
-

See Also

- -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/exceptions/movable_exception.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/exceptions/movable_exception.htm deleted file mode 100644 index c39107997..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/exceptions/movable_exception.htm +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - - - - - - - - - -movable_exception<ExceptionData> - - - - - - - - - -

movable_exception<ExceptionData>

- - -
-

Summary

- -

Subclass of - tbb_exception interface that supports propagating - copy-constructible data. -

- -
- -

Syntax

- -

-

template<typename ExceptionData> class movable_exception;
-

- -
- -

Header

- -

-

#include "tbb/tbb_exception.h"
-

- -
- -

Description

- -

This template provides a convenient way to implement a subclass of - tbb_exception that propagates arbitrary - copy-constructible data. -

- -
- -

Members

- -
 namespace tbb {
-                   template<typename ExceptionData>
-                    class movable_exception: public tbb_exception {
-                    public:
-                    movable_exception( const ExceptionData& src );
-                    movable_exception( const movable_exception& src )throw();
-                    ~movable_exception() throw();
-                    movable_exception& operator=( const movable_exception& src );
-                    ExceptionData& data() throw();
-                    const ExceptionData& data() const throw();
-                    movable_exception* move() throw();
-                    void destroy() throw();
-                    void throw_self();
-                    const char* name() const throw();
-                    const char* what() const throw();
-                    };
-                    }
- -
The following table provides information on the additions that - movable_exception makes to - tbb_exception. Section - tbb_exception describes the rest of the interface. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
movable_exception( const - ExceptionData& src ) - -

Construct - movable_exception containing copy of src. -

- -
ExceptionData& data() - throw() - -

Returns: Reference to contained data. -

- -
const ExceptionData& data() - const throw() - -

Returns: Const reference to contained data. -

- -
-
- -
- -
- - - -
-

See Also

- -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/exceptions/specific_exceptions.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/exceptions/specific_exceptions.htm deleted file mode 100644 index 99ecd8765..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/exceptions/specific_exceptions.htm +++ /dev/null @@ -1,214 +0,0 @@ - - - - - - - - - - - - - -Specific Exceptions - - - - - - - - - -

Specific Exceptions

- - -
-

Summary

- -

Exceptions thrown by other library components. -

- -
- -

Syntax

- -
class bad_last_alloc;
-class improper_lock;
-class invalid_multiple_scheduling;
-hclass missing_wait;
-class user_abort;
-
- -

Header

- -
#include "tbb/tbb_exception.h"
-
- -

Description

- -

The table below describes when the exceptions are thrown. -

- -

Classes for Specific Exceptions. -

- -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Exception -

- -
-

Thrown when... -

- -
-

bad_last_alloc -

- -
-
    -
  1. A - pop operation on a - concurrent_queue or - concurrent_bounded_queue corrersponds to a - push that threw an exception. -
  2. - -
  3. An operation on a - concurrent_vector cannot be performed - because a prior operation threw an exception. -
  4. - -
- -
-

improper_lock -

- -
-

A thread attempts to lock a - critical_section or - reader_writer_lock that it it has already - locked. -

- -
-

invalid_multiple_scheduling -

- -
-

A - task_group or - structured_task_group attempts to run a - task_handle twice. -

- -
-

missing_wait -

- -
-

A - push or - pop operation on a - concurrent_bounded_queue was aborted by the - user.wait() is invoked. -

- -
-

user_abort -

- -
 
-
- -

Members

- -
namespace tbb {
-        class bad_last_alloc: public std::bad_alloc {
-        public:
-            const char* what() const throw();
-        };
-        class improper_lock: public std::exception {
-        public:
-            const char* what() const throw();
-        };
-        class invalid_multiple_scheduler: public std::exception {
-           const char* what() const throw();
-        };
-        class missing_wait: public std::exception {
-        public:
-            const char* what() const throw();
-        };
-        class user_abort : public std::exception {
-        public:
-           const char* what() const throw();
-        };
-		  
-    }
-
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/exceptions/tbb_exception.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/exceptions/tbb_exception.htm deleted file mode 100644 index 14e360805..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/exceptions/tbb_exception.htm +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - -tbb_exception - - - - - - - - - -

tbb_exception

- - -

Summary

-

Exception that can be moved to another thread.

- -
-

Syntax

-
class tbb_exception;
-
-

Header

-
#include "tbb/tbb_exception.h"
-
-

Description

-

In a parallel environment, exceptions sometimes have to be propagated across threads. Class tbb_exception subclasses std::exception to add support for such propagation.

- -
-

Members

-
        namespace tbb {
-            class tbb_exception: public std::exception {
-                virtual tbb_exception* move() = 0;
-                virtual void destroy() throw() = 0;
-                virtual void throw_self() = 0;
-                virtual const char* name() throw() = 0;
-                virtual const char* what() throw() = 0;
-            };  
-        }
-

Derived classes should define the abstract virtual methods as follows:

- -
    -
  • move() should create a pointer to a copy of the exception that can outlive the original. It may move the contents of the original.

    -
  • - -
  • destroy() should destroy a copy created by move().

    -
  • - -
  • throw_self() should throw *this.

    -
  • - -
  • name() typically returns the RTTI name of the originally intercepted exception.

    -
  • - -
  • what() returns a null-terminated string describing the exception.

    -
  • - -
-
-
- - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph.htm deleted file mode 100644 index 39bf6f7fd..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph.htm +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Flow Graph - - - - - - - - - -

Flow Graph

- - -
-

There are some applications that best express dependencies as messages - passed between nodes in a flow graph. These messages may contain data or simply - act as signals that a predecessor has completed. The graph class and its - associated node classes can be used to express such applications. All - graph-related classes and functions are in the tbb::flow namespace. -

- -
- - - -
- -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/body_objects.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/body_objects.htm deleted file mode 100644 index b701ea2b3..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/body_objects.htm +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - -Body Objects - - - - - - - - - -

Body Objects

- - -
-

Some nodes execute user-provided body objects. These objects can be - created by instantiating function objects or lambda expressions. The nodes that - use body objects include - continue_node, - function_node, - source_node and - multifunction_node. -

- -

- Caution

-

The body objects passed to the flow graph nodes are copied. Therefore - updates to member variables will not affect the original object used to - construct the node. If the state held within a body object must be inspected - from outside of the node, the - copy_body function can be used to obtain an updated - copy. -

- -
-

- Caution

-

The source_node has a one-item buffer which may contain a value - obtained from executing the node's body. If the source_node has - emitted N items, the state of the body returned by - copy_body may indicate it has been called N + 1 times. -

- -
-
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/broadcast_node_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/broadcast_node_cls.htm deleted file mode 100644 index 9ac33981f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/broadcast_node_cls.htm +++ /dev/null @@ -1,320 +0,0 @@ - - - - - - - - - - - - - - -broadcast_node Template Class - - - - - - - - - -

broadcast_node Template Class

- - -
-

Summary

- -

A node that broadcasts incoming messages to all of its successors. -

- -
- -

Syntax

- -
template < typename T > class broadcast_node;
-
- -

Header

- -
#include "tbb/flow_graph.h"
-
- -

Description

- -

A - broadcast_node is a - graph_node, - receiver<T> and - sender<T> that broadcasts incoming messages of - type - T to all of its successors. There is no buffering in - the node, so all messages are forwarded immediately to all successors. -

- -

Rejection of messages by successors is handled using the protocol in - the Message Passing Protocol, see link below. -

- -

T must be copy-constructible and assignable. -

- -
- -

Members

- -
namespace tbb {
-namespace flow {
- 
-template< typename T >
-class broadcast_node :
-  public graph_node, public receiver<T>, public sender<T> {
-public:
-    broadcast_node( graph &g );
-    broadcast_node( const broadcast_node &src );
- 
-    // receiver<T>
-    typedef T input_type;
-    typedef sender<input_type> predecessor_type;
-    bool try_put( const input_type &v );
-    bool register_predecessor( predecessor_type &p );
-    bool remove_predecessor( predecessor_type &p );
- 
-    // sender<T>
-    typedef T output_type;
-    typedef receiver<output_type> successor_type;
-    bool register_successor( successor_type &r );
-    bool remove_successor( successor_type &r );
-    bool try_get( output_type &v );
-    bool try_reserve( output_type &v );
-    bool try_release( );
-    bool try_consume( );
-};
- 
-}
-}
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
broadcast_node( graph &g - ) - -

Constructs an object of type - broadcast_node that belongs to the - graph g. -

- -
broadcast_node( const - broadcast_node &src ) - -

Constructs an object of type - broadcast_node that belongs to the same - graph g as - src. The list of predecessors, the list of - successors and the messages in the buffer are NOT copied. -

- -
bool try_put( const input_type - &v ) - -

Adds - v to all successors. -

- -

Returns: always returns - true, even if it was unable to - successfully forward the message to any of its successors. -

- -
bool register_predecessor( - predecessor_type &p ) - -

Never rejects puts and therefore does not need to maintain a - list of predecessors. -

- -

Returns: - false -

- -
bool remove_predecessor( - predecessor_type &p ) - -

Never rejects puts and therefore does not need to maintain a - list of predecessors. -

- -

Returns: - false -

- -
bool register_successor( - successor_type &r ) - -

Adds - r to the set of successors. -

- -

Returns: - true -

- -
bool remove_successor( - successor_type &r ) - -

Removes - r from the set of successors. -

- -

Returns: - true -

- -
bool try_get( output_type &v - ) - -

If the internal buffer is valid, assigns the value to - v. -

- -

Returns: - true if - v is assigned to. - false if - v is not assigned to. -

- -
bool try_reserve( output_type - &v ) - -

Returns: - false -

- -
bool try_release( ) - -

Returns: - false -

- -
bool try_consume( ) - -

Returns: - false -

- -
-
- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/buffer_node_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/buffer_node_cls.htm deleted file mode 100644 index d2dfc08fe..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/buffer_node_cls.htm +++ /dev/null @@ -1,362 +0,0 @@ - - - - - - - - - - - - - - -buffer_node Class - - - - - - - - - -

buffer_node Class

- - -
-

Summary

- -

An unbounded buffer of messages of type - T. Messages are forwarded in arbitrary order. -

- -
- -

Syntax

- -
template< typename T, typename A = cache_aligned_allocator<T> >
-class buffer_node;
-
- -

Header

- -
#include "tbb/flow_graph.h"
-
- -

Description

- -

A - buffer_node is a - graph_node, - receiver<T> and - sender<T> that forwards messages in arbitrary - order to a single successor in its successor set. Successors are tried in the - order that they were registered with the node. If a successor rejects the - message, it is removed from the successor list according to the policy in the - Message Passing Protocol, and the next successor in the set is tried. This - continues until a successor accepts the message, or all successors have been - attempted. Items that are successfully transferred to a successor are removed - from the buffer. -

- -

A - buffer_node is reservable and supports a single - reservation at a time. While an item is reserved, other items may still be - forwarded to successors and - try_get calls will return other non-reserved items - if available. While an item is reserved, - try_put will still return - true and add items to the buffer. -

- -

An allocator of type - A is used to allocate internal memory for the - buffer_node. -

- -

T must be copy-constructible and assignable -

- -

Rejection of messages by successors is handled using the protocol in - the Message Passing Protocol, see link below. -

- -
- -

Members

- -
namespace tbb {
-namespace flow {
- 
- 
-template< typename T, typename A = cache_aligned_allocator<T> >
-class buffer_node :
-  public graph_node, public receiver<T>, public sender<T> {
-public:
-    buffer_node( graph &g );
-    buffer_node( const buffer_node &src );
- 
-    // receiver<T>
-    typedef T input_type;
-    typedef sender<input_type> predecessor_type;
-    bool try_put( const input_type &v );
-    bool register_predecessor( predecessor_type &p );
-    bool remove_predecessor( predecessor_type &p );
- 
-    // sender<T>
-    typedef T output_type;
-    typedef receiver<output_type> successor_type;
-    bool register_successor( successor_type &r );
-    bool remove_successor( successor_type &r );
-    bool try_get( output_type &v );
-    bool try_reserve( output_type &v );
-    bool try_release( );
-    bool try_consume( );
-};
- 
-}
-}
- -
The following table provides additional information on the - members of this class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
buffer_node( graph &g - ) - -

Constructs an empty - buffer_node that belongs to the - graph g. -

- -
buffer_node( const buffer_node - &src ) - -

Constructs an empty - buffer_node. The buffered value and list - of successors is NOT copied from - src. -

- -
bool try_put( const input_type - &v ) - -

Adds - v to the buffer. If - v is the only item in the buffer, a task - is also spawned to forward the item to a successor. -

- -

Returns: - true -

- -
bool register_predecessor( - predecessor_type &p ) - -

Never rejects puts and therefore does not need to maintain a - list of predecessors. -

- -

Returns: - false -

- -
bool remove_predecessor( - predecessor_type &p ) - -

Never rejects puts and therefore does not need to maintain a - list of predecessors. -

- -

Returns: - false -

- -
bool register_successor( - successor_type &r ) - -

Adds - r to the set of successors. -

- -

Returns: - true -

- -
bool remove_successor( - successor_type &r ) - -

Removes - r from the set of successors. -

- -

Returns: - true -

- -
bool try_get( output_type &v - ) - -

Returns: - true if an item can be removed from the - buffer and assigned to - v. Returns - false if there is no non-reserved item - currently in the buffer. -

- -
bool try_reserve( output_type - &v ) - -

Assigns a newly reserved item to - v if there is no reservation currently - held and there is at least one item available in the buffer. If a new - reservation is made, the buffer is marked as reserved. -

- -

Returns: - true if - v has been assigned a newly reserved item. - Returns - false otherwise. -

- -
bool try_release( ) - -

Releases the reservation on the buffer. The item that was - returned in the last successful call to - try_reserve remains in the buffer. -

- -

Returns: - true if the buffer is currently reserved - and - false otherwise. -

- -
bool try_consume( ) - -

Releases the reservation on the buffer. The item that was - returned in the last successful call to - try_reserve remains in the buffer. -

- -

Returns: - true if the buffer is currently reserved - and - false otherwise. -

- -
-
- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/continue_msg_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/continue_msg_cls.htm deleted file mode 100644 index bf3c6a850..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/continue_msg_cls.htm +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - - - -continue_msg Class - - - - - - - - - -

continue_msg Class

- - -
-

Summary

- -

An empty class that represent a continue message. An object of this - class is used to indicate that the sender has completed. -

- -
- -

Syntax

- -
class continue_msg;
-
- -

Header

- -
#include "tbb/flow_graph.h"
-
- -

Members

- -
namespace tbb { namespace flow { class continue_msg {}; } }
-
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/continue_node_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/continue_node_cls.htm deleted file mode 100644 index 764ed4ef1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/continue_node_cls.htm +++ /dev/null @@ -1,563 +0,0 @@ - - - - - - - - - - - - - - - - - - - -continue_node Template Class - - - - - - - - - -

continue_node Template Class

- - -
-

Summary

- -

A template class that is a - graph_node, - continue_receiver and a - sender<T>. It executes a specified body object - when triggered and broadcasts the generated value to all of its successors. -

- -
- -

Syntax

- -
template< typename Output > class continue_node;
-
- -

Header

- -
#include "tbb/flow_graph.h"
-
- -

Description

- -

This type is used for nodes that wait for their predecessors to - complete before executing, but no explicit data is passed across the incoming - edges. The output of the node can be a - continue_msg or a value. -

- -

A - continue_node maintains an internal threshold, T, - and an internal counter, C. If a value for the number of predecessors is - provided at construction, then T is set to the provided value and C=0. - Otherwise, C=T=0.   -

- -

At each call to method - register_predecessor, the threshold T is - incremented. At each call to method - remove_predecessor, the threshold T is decremented. - The functions - make_edge and - remove_edge appropriately call - register_predecessor and - remove_predecessor when edges are added to or - removed from a - continue_node. -

- -

At each call to method - try_put, C is incremented. If after the increment, - C>=T, then C is reset to 0 and a task is spawned to broadcast the result of - - body() to all successors. The increment of C, - spawning of the task, and the resetting of C are all done atomically with - respect to the node. If after the increment, C<T, no additional action is - taken. -

- -

The value generated by an execution of the body object is broadcast to - all successors. Rejection of messages by successors is handled using the - protocol in the Message Passing Protocol, see link below. -

- -

A - continue_node can serve as a terminal node in the - graph. The convention is to use an - Output of - continue_msg and attach no successor. -

- -

The Body concept for - continue_node is shown in below. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
continue_node<Output> Body Concept
-

Pseudo-Signature -

- -
-

Semantics -

- -
-

-

B::B( const B& )
-

- -
-

Copy constructor. -

- -
-

-

B::~B()
-

- -
-

Destructor. -

- -
-

-

void operator=( const B& )
-

- -
-

Assignment. The return type - void in the pseudo-signature denotes that - operator= is not required to return a value. - The actual - operator= can return a value, which will be - ignored. -

- -
-

-

Output B::operator()(const continue_msg &v) const
-

- -
-

Perform operation and return value of type Output. -

- -
-
- -

- Caution

-

The body object passed to a - continue_node is copied. Therefore updates to - member variables will not affect the original object used to construct the - node. If the state held within a body object must be inspected from outside of - the node, the - copy_body function can be used to obtain an - updated copy. -

- -
-

- Note

-

The body object may throw or cancel its enclosing graph. See - task_group_context and Exceptions sections for a description. -

- -
-

- Caution

-

Output must be copy-constructible and assignable. - -

- -
-
- -

Members

- -
namespace tbb {
-namespace flow {
- 
-template< typename Output >
-class continue_node :
-  public graph_node, public continue_receiver,
-  public sender<Output> {
-public:
-    template<typename Body>
-    continue_node( graph &g, Body body );
-    template<typename Body>
-    continue_node( graph &g, int number_of_predecessors,
-                     Body body );
-    continue_node( const continue_node &src );
- 
-    // continue_receiver
-    typedef continue_msg input_type;
-    typedef sender<input_type> predecessor_type;
-    bool try_put( const input_type &v );
-    bool register_predecessor( predecessor_type &p );
-    bool remove_predecessor( predecessor_type &p );
- 
-    // sender<Output>
-    typedef Output output_type;
-    typedef receiver<output_type> successor_type;
-    bool register_successor( successor_type &r );
-    bool remove_successor( successor_type &r );
-    bool try_get( output_type &v );
-    bool try_reserve( output_type &v );
-    bool try_release( );
-    bool try_consume( );
-};
- 
-}
-}
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
template< typename Body> - continue_node( graph &g, Body body ) - -

Constructs a - continue_node that will invoke - body. -

- -
template< typename Body> - continue_node( graph &g, int number_of_predecessors, Body body ) - -

Constructs a - continue_node that will invoke - body. The threshold T is initialized to - number_of_predecessors. -

- -
continue_node( const continue_node - &src ) - -

Constructs a - continue_node that has the same initial - state that - src had after its construction. It does - not copy the current count of - try_puts received, or the current known - number of predecessors. The - continue_node that is constructed will - have a reference to the same - graph object as - src, have a copy of the initial - body used by - src, and only have a non-zero threshold if - - src was constructed with a non-zero - threshold. -

- -

- Caution

-

The new body object is copy constructed from a copy of - the original body provided to - src at its construction. Therefore - changes made to member variables in - src's body after the construction of - src will not affect the body of the new - continue_node. -

- -
-
bool try_put( const input_type - &v ) - -

Increments the count of - try_put calls received. If the incremented - count is equal to the number of known predecessors, a task is spawned to - execute the - body and the internal count of - try_put calls is reset to zero. This - method performs as if the spawning of the body task and the updates to the - internal count occur atomically. It does not wait for the execution of the body - to complete. -

- -

Returns: - true -

- -
bool register_predecessor( - predecessor_type &p ) - -

Increments the number of known predecessors. -

- -

Returns: - true -

- -
bool remove_predecessor( - predecessor_type &p - - -

Decrements the number of known predecessors. -

- -

- Caution

-

The body is not called if the count of - try_put calls received becomes equal to - the number of known predecessors as a result of this call. That is, a call to - remove_predecessor will never invoke the - body. -

- -
-
bool register_successor( - successor_type &r ) - -

Adds - r to the set of successors. -

- -

Returns: - true -

- -
bool remove_successor( - successor_type &r ) - -

Removes - r from the set of successors. -

- -

Returns: - true -

- -
bool try_get( output_type &v - ) - -

The - continue_node does not contain buffering. - Therefore it always rejects - try_get calls. -

- -

Returns: - false -

- -
bool try_reserve( output_type - &v ) - -

The - continue_node does not contain buffering. - Therefore it cannot be reserved. -

- -

Returns: - false -

- -
bool try_release( ) - -

The - continue_node does not contain buffering. - Therefore it cannot be reserved. -

- -

Returns: - false -

- -
bool try_consume( ) - -

The - continue_node does not contain buffering. - Therefore it cannot be reserved. -

- -

Returns: - false -

- -
-
- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/continue_receiver_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/continue_receiver_cls.htm deleted file mode 100644 index 3d3966d12..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/continue_receiver_cls.htm +++ /dev/null @@ -1,257 +0,0 @@ - - - - - - - - - - - - - -continue_receiver Class - - - - - - - - - -

continue_receiver Class

- - -
-

Summary

- -

An abstract base class for nodes that act as receivers of - continue_msg objects. These nodes call a method - execute when the number of - try_put calls reaches a threshold that represents - the number of known predecessors. -

- -
- -

Syntax

- -
class continue_receiver;
-
- -

Header

- -
#include "tbb/flow_graph.h"
-
- -

Description

- -

This type of node is triggered when its method - try_put has been called a number of times that is - equal to the number of known predecessors. When triggered, the node calls the - method - execute, then resets and will fire again when it - receives the correct number of - try_put calls. This node type is useful for - dependency graphs, where each node must wait for its predecessors to complete - before executing, but no explicit data is passed across the edge. -

- -
- -

Members

- -
namespace tbb {
-namespace flow {
- 
-class continue_receiver : public receiver< continue_msg > {
-public:
-    typedef continue_msg input_type;
-    typedef sender< input_type > predecessor_type;
-    continue_receiver( int num_predecessors = 0 );
-    continue_receiver( const continue_receiver &src );
-    virtual ~continue_receiver();
-    virtual bool try_put( const input_type &v );
-    virtual bool register_predecessor( predecessor_type &p );
-    virtual bool remove_predecessor( predecessor_type &p );
- 
-protected:
-    virtual void execute() = 0;
-};
- 
-}
-}
- -
The following table provides additional information on the - members of this class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
continue_receiver( int - num_predecessors = 0 ) - -

Constructs a - continue_receiver that is initialized to - trigger after receiving - num_predecessors calls to - try_put. -

- -
continue_receiver( const - continue_receiver &src ) - -

Constructs a - continue_receiver that has the same - initial state that - src had after its construction. It does - not copy the current count of - try_puts received, or the current known - number of predecessors. The - continue_receiver that is constructed will - only have a non-zero threshold if - src was constructed with a non-zero - threshold. -

- -
~continue_receiver( ) - -

The destructor -

- -
bool try_put( const input_type - &v ) - -

Increments the count of - try_put calls received. If the incremented - count is equal to the number of known predecessors, a call is made to - execute and the internal count of - try_put calls is reset to zero. This - method performs as if the call to - execute and the updates to the internal - count occur atomically. -

- -

Returns: - true -

- -
bool register_predecessor( - predecessor_type &p ) - -

Increments the number of known predecessors. -

- -

Returns: - true -

- -
bool remove_predecessor( - predecessor_type &p ) - -

Decrements the number of known predecessors. -

- -

- Caution

-

The method - execute is not called if the count of - try_put calls received becomes equal to - the number of known predecessors as a result of this call. That is, a call to - remove_predecessor will never call - execute. -

- -
-
void execute() = 0 - -

A pure virtual method that is called when the number of - try_put calls is equal to the number of - known predecessors. Must be overridden by the child class. -

- -

- Caution

-

This method should be very fast or else spawn a task to - offload its work, since this method is called while the sender is blocked on - try_put. -

- -
-
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/copy_body_func.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/copy_body_func.htm deleted file mode 100644 index 9bceeb6e8..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/copy_body_func.htm +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - - - -copy_body Template Function - - - - - - - - - -

copy_body Template Function

- - -
-

Summary

- -

A template function that returns a copy of the body function object - from a - continue_node, - function_node, - multifunction_node, - or - source_node. -

- -
- -

Syntax

- -
template< typename Body, typename Node >
-Body copy_body( Node &n );
-
- -

Header

- -
#include "tbb/flow_graph.h"
-
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/dependency_flow_graph_example.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/dependency_flow_graph_example.htm deleted file mode 100644 index 1b7f7f784..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/dependency_flow_graph_example.htm +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - - - - - - - - - -Dependency Flow Graph Example - - - - - - - - - -

Dependency Flow Graph Example

- - -
-

In the following example, five computations A-E are set up with the - partial ordering shown below in "A simple dependency graph.". For each edge in - the flow graph, the node at the tail of the edge must complete its execution - before the node at the head may begin. -

- -

- Note

-

This is a simple syntactic example only. Since each node in a flow - graph may execute as an independent task, the granularity of each node should - follow the general guidelines for tasks as described in Section 3.2.3 of the - Intel® Threading Building Blocks Tutorial. -

- -
-
A simple dependency graph. - -
A simple dependency graph.

-
- -
#include <cstdio>
-#include "tbb/flow_graph.h"
- 
-using namespace tbb::flow;
- 
-struct body {
-    std::string my_name;
-    body( const char *name ) : my_name(name) {}
-    void operator()( continue_msg ) const {
-        printf("%s\n", my_name.c_str());
-    }
-};
- 
-int main() {
-    graph g;
- 
-    broadcast_node< continue_msg > start;
-    continue_node<continue_msg> a( g, body("A"));
-    continue_node<continue_msg> b( g, body("B"));
-    continue_node<continue_msg> c( g, body("C"));
-    continue_node<continue_msg> d( g, body("D"));
-    continue_node<continue_msg> e( g, body("E"));
- 
-    make_edge( start, a );
-    make_edge( start, b );
-    make_edge( a, c );
-    make_edge( b, c );
-    make_edge( c, d );
-    make_edge( a, e );
- 
-    for (int i = 0; i < 3; ++i ) {
-        start.try_put( continue_msg() );
-        g.wait_for_all();
-    }
- 
-    return 0;
-}  
-

In this example, nodes A-E print out their names. All of these nodes are - therefore able to use - struct body to construct their body objects. -

- -

In function - main, the flow graph is set up once and then run three - times. All of the nodes in this example pass around - continue_msg objects. This type is used to communicate - that a node has completed its execution. -

- -

The first line in function - main instantiates a - graph object, - g. On the next line, a - broadcast_node named - start is created. Anything passed to this node will be - broadcast to all of its successors. The node - start is used in the - for loop at the bottom of - main to launch the execution of the rest of the flow - graph. -

- -

In the example, five - continue_node objects are created, named a - e. Each - node is constructed with a reference to - graph - g and the function object to invoke when it runs. The - successor / predecessor relationships are set up by the - make_edge calls that follow the declaration of the - nodes. -

- -

After the nodes and edges are set up, the - try_put in each iteration of the - for loop results in a broadcast of a - continue_msg to both - a and - b. Both - a and - b are waiting for a single - continue_msg, since they both have only a single - predecessor, - start. -

- -

When they receive the message from - start, they execute their body objects. When complete, - they each forward a - continue_msg to their successors, and so on. The graph - uses tasks to execute the node bodies as well as to forward messages between - the nodes, allowing computation to execute concurrently when possible. -

- -

The classes and functions used in this example are described in detail - in topics linked from the Flow Graph parent topic. -

- -
- - - -
-

See Also

- -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/flow_tuple.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/flow_tuple.htm deleted file mode 100644 index e2c15c182..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/flow_tuple.htm +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - - - - - - - - - - - -flow::tuple Template Class - - - - - - - - - -

flow::tuple Template Class

- - -
-

Some nodes create or use messages that are composites of other - messages. The - flow::tuple template class is included as part of flow - to support this. The nodes that send or receive tuples are - join_node, - multifunction_node, - split_node and - or_node (Community Preview Feature). -

- -

The - tuple class is part of the C++11 standard, and earlier - implementations of the Standard Library may have a - tuple class. If - std::tuple is part of the Standard Library, then - flow::tuple is typedefed to - std::tuple. -

- -

If the Standard Library does not contain - tuple, an implementation is used that supports a subset - of - std::tuple's functionality: -

    -
  • construction, copy construction and destruction, -
  • - -
  • assignment -
  • - -
  • get<I>(tuple) (the i-th element of - tuple, starting from zero), -
  • - -
  • tuple_element<I,T>::type (the type of the i-th - element of tuple type - T), -
  • - -
  • tuple_size<T>::value (the number of elements - of the tuple type - T), -
  • - -
- -

- -

- Caution

-

Prior releases of flow injected - flow's implementation of tuple into - the std:: namespace. Users should change - flow-specific references to std::tuple - to flow::tuple to ensure compatibility with compilers - that do not implement - std::tuple as part of the Standard Library. -

- -
-
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/func_node_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/func_node_cls.htm deleted file mode 100644 index f85570e63..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/func_node_cls.htm +++ /dev/null @@ -1,671 +0,0 @@ - - - - - - - - - - - - - - - - - -function_node Template Class - - - - - - - - - -

function_node Template Class

- - -
-

Summary

- -

A template class that is a - graph_node, - receiver<Input> and a - sender<Output>. This node may have concurrency - limits as set by the user. By default, a - function_node has an internal FIFO buffer at its - input. Messages that cannot be immediately processed due to concurrency limits - are temporarily stored in this FIFO buffer. A template argument can be used to - disable this internal buffer. If the FIFO buffer is disabled, incoming messages - will be rejected if they cannot be processed immediately while respecting the - concurrency limits of the node. -

- -
- -

Syntax

- -
template < typename Input,
-           typename Output = continue_msg,
-           graph_buffer_policy = queueing,
-           typename A = cache_aligned_allocator<Input> >
-class function_node;
-
- -

Header

- -
#include "tbb/flow_graph.h"
-
- -

Description

- -

A - function_node receives messages of type - Input at a single input port and generates a single - output message of type - Output that is broadcast to all successors. - Rejection of messages by successors is handled using the protocol in Message - Passing Protocol, see link below. -

- -

If - graph_buffer_policy == queueing, an internal - unbounded input buffer is maintained using memory obtained through an allocator - of type - A. -

- -

A - function_node maintains an internal constant - threshold T and an internal counter C. At construction, C = 0 and T is set the - value passed in to the constructor. The behavior of a call to - try_put is determined by the value of T and C as - shown below. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Behavior of a call to a function_node's try_put
-

Value of threshold T -

- -
-

Value of counter C -

- -
-

bool try_put( const input_type &v ) -

- -
-

-

T == flow::unlimited
-

- -
-

NA -

- -
-

A task is spawned that broadcasts the result of - body(v) to all successors. Returns - true. -

- -
-

-

T != flow::unlimited
-

- -
-

C < T -

- -
-

Increments C. A task is spawned that broadcasts the result of - - body(v) to all successors and then - decrements C. Returns - true. -

- -
-

-

T != flow::unlimited
-

- -
-

C >= T -

- -
-

If the template argument - graph_buffer_policy==queueing, - v is stored in an internal FIFO buffer until - C < T. When T becomes less than C, C is incremented and a task is spawned - that broadcasts the result of - body(v) to all successors and then - decrements C. Returns - true. -

- -

If the template argument - graph_buffer_policy==rejecting and C >= - T, returns - false. -

- -
-
- -

A - function_node has a user-settable concurrency limit. - It can have - flow::unlimited concurrency, which allows an - unlimited number of invocations of the body to execute concurrently. It can - have - flow::serial concurrency, which allows only a single - call of body to execute concurrently. The user can also provide a value of type - - size_t to limit concurrency to a value between 1 and - - unlimited. -

- -

A - function_node with - graph_buffer_policy==rejecting will maintain a - predecessor set as described in the Message Passing Protocol, see link below. - If the - function_node transitions from a state where C >= - T to a state where C < T, it will try to get new messages from its set of - predecessors until C >= T or there are no valid predecessors left in the - set. -

- -

- Note

-

A - function_node can serve as a terminal node in the - graph. The convention is to use an - Output of - continue_msg and attach no successor. -

- -
-

The Body concept for - function_node is shown in below. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
function_node<Input, Output> Body Concept
-

Pseudo-Signature -

- -
-

Semantics -

- -
-

-

B::B( const B& )
-

- -
-

Copy constructor. -

- -
-

-

B::~B()
-

- -
-

Destructor. -

- -
-

-

void operator=( const B& )
-

- -
-

Assignment. The return type - void in the pseudo-signature denotes that - operator= is not required to return a value. - The actual - operator= can return a value, which will be - ignored. -

- -
-

-

Output B::operator() (const Input &v) const
-

- -
-

Perform operation on - v and return value of type - Output. -

- -
-
- -

- Caution

-

The body object passed to a - function_node is copied. Therefore updates to - member variables will not affect the original object used to construct the - node. If the state held within a body object must be inspected from outside of - the node, the - copy_body function can be used to obtain an - updated copy. -

- -
-

- Caution

-

Input and - Output must be copy-constructible and assignable. -

- -
-

- Note

-

The body object may throw or cancel its enclosing graph. - See task_group_context and Exceptions sections for a description. -

- -
-
- -

Members

- -
namespace tbb {
-namespace flow {
- 
-enum graph_buffer_policy {
-   rejecting, reserving, queueing, tag_matching };
- 
-template < typename Input, typename Output = continue_msg, 
-           graph_buffer_policy = queueing, 
-           typename A = cache_aligned_allocator<Input> >
-class function_node :
-  public graph_node, public receiver<Input>,
-  public sender<Output> {
-public:
-    template<typename Body>
-    function_node( graph &g, size_t concurrency, Body body );
-    function_node( const function_node &src );
- 
-    // receiver<Input>
-    typedef Input input_type;
-    typedef sender<input_type> predecessor_type;
-    bool try_put( const input_type &v );
-    bool register_predecessor( predecessor_type &p );
-    bool remove_predecessor( predecessor_type &p );
- 
-    // sender<Output>
-    typedef Output output_type;
-    typedef receiver<output_type> successor_type;
-    bool register_successor( successor_type &r );
-    bool remove_successor( successor_type &r );
-    bool try_get( output_type &v );
-    bool try_reserve( output_type &v );
-    bool try_release( );
-    bool try_consume( );
-};
- 
-}
-}
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
template< typename Body> - function_node(graph &g, size_t concurrency, Body body) - -

Constructs a - function_node that will invoke a copy of - body. At most - concurrency calls to - body may be made concurrently. -

- -
function_node( const function_node - &src ) - -

Constructs a - function_node that has the same initial - state that - src had when it was constructed. The - function_node that is constructed will - have a reference to the same - graph object as - src, will have a copy of the initial body - used by - src, and have the same concurrency - threshold as - src. The predecessors and successors of - src will not be copied. -

- -

- Caution

-

The new body object is copy constructed from a copy of - the original body provided to - src at its construction. Therefore - changes made to member variables in - src's body after the construction of - src will not affect the body of the new - function_node. -

- -
-
bool try_put( const input_type - &v ) - -

See the table above, "Behavior of a call to a - function_node's try_put," for more - information. -

- -

Returns: - true if the input was accepted; and - false otherwise. -

- -
bool register_predecessor( - predecessor_type &p ) - -

Adds - p to the set of predecessors. -

- -

Returns: - true -

- -
bool remove_predecessor( - predecessor_type &p ) - -

Removes - p from the set of predecessors. -

- -

Returns: - true -

- -
bool register_successor( - successor_type &r ) - -

Adds - r to the set of successors. -

- -

Returns: - true -

- -
bool remove_successor( - successor_type &r ) - -

Removes - r from the set of successors. -

- -

Returns: - true -

- -
bool try_get( output_type &v - ) - -

A - function_node does not contain buffering - of its output. Therefore it always rejects - try_get calls. -

- -

Returns: - false -

- -
bool try_reserve( output_type - &v ) - -

A - function_node does not contain buffering - of its output. Therefore it cannot be reserved. -

- -

Returns: - false -

- -
bool try_release( ) - -

A - function_node does not contain buffering - of its output. Therefore it cannot be reserved. -

- -

Returns: - false -

- -
bool try_consume( ) - -

A - function_node does not contain buffering - of its output. Therefore it cannot be reserved. -

- -

Returns: - false -

- -
-
- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/graph_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/graph_cls.htm deleted file mode 100644 index 99f0e2ae6..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/graph_cls.htm +++ /dev/null @@ -1,382 +0,0 @@ - - - - - - - - - - - - - - - -graph Class - - - - - - - - - -

graph Class

- - -
-

Summary

- -

Class that serves as a handle to a flow graph of nodes and edges. -

- -
- -

Syntax

- -
class graph;
-
- -

Header

- -
#include "tbb/flow_graph.h"
-
- -

Description

- -

A - graph object contains a root task that is the parent - of all tasks created on behalf of the flow graph and its nodes. It provides - methods that can be used to access the root task, to wait for the children of - the root task to complete, to explicitly increment or decrement the root task's - reference count, and to run a task as a child of the root task. -

- -

- Caution

-

Destruction of flow graph nodes before calling - wait_for_all on their associated - graph object has undefined behavior and can lead - to program failure. -

- -
-

- Caution

-

The flow graph now uses spawned tasks instead of enqueued tasks. In some limited - cases, when no worker threads are available, progress will not be made on - graph-related tasks until a call is made to wait_for_all. - To avoid the need for explicit calls to wait_for_all, the - task enqueuing implementation of the flow graph can still be used as - described in the Compatibility Features section of the Appendices. However, - the task enqueuing implementation of the flow graph has been deprecated and - its use is discouraged. -

- -
-

- Caution

-

If a - graph is cancelled or if an exception is thrown - during its execution, the graph objects may be in an inconsistent state after - the - wait_for_all(). If the user wishes to execute the - graph again, the - reset() method must be called. -

- -

The - reset() method ensures the internals of the - graph are reset to their initial state. The - user-supplied bodies of - function_nodes, - continue_nodes, - source_nodes and - multifunction_nodes are not changed by a - reset(); if the user wishes the body to be - returned to its initial state the corresponding node must be replaced, or some - other provision must be made. -

- -
-
- -

Members

- -
namespace tbb {
-namespace flow {
-
-class graph {
-public:
-
-    graph();
-    graph(task_group_context& context);
-    ~graph();
- 
-    void increment_wait_count();
-    void decrement_wait_count();
- 
-    template< typename Receiver, typename Body >
-    void run( Receiver &r, Body body );
-    template< typename Body >
-    void run( Body body );
-    void wait_for_all();
-    task *root_task();
- 
-    bool is_cancelled();
-    bool exception_thrown();
-    void reset();
-};
- 
-}
-}
- -
The following table provides additional information on the - members of this class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
graph([task_group_context& - group] ) - -

Constructs a graph with no nodes. If - group is specified the graph tasks are - executed in this group. By default the graph is executed in a bound context of - its own. Instantiates a root task of class - empty_task to serve as a parent for all of - the tasks generated during runs of the graph. Sets - ref_count of the root task to 1. -

- -
~graph() - -

Calls - wait_for_all on the graph, then destroys - the root task. -

- -
void - increment_wait_count() - -

Used to register that an external entity may still interact - with the graph. -

- -

Increments the - ref_count of the root task. -

- -
void - decrement_wait_count() - -

Used to unregister an external entity that may have - interacted with the graph. -

- -

Decrements the - ref_count of the root task. -

- -
template< typename Receiver, - typename Body > void run( Receiver &r, Body body ) - -

Use this method to spawn a task that runs a body and puts - its output to a specific receiver. The task is created as a child of the - graph's root task and therefore - wait_for_all will not return until this - task completes. -

- -

Enqueues a task that invokes - r.try_put( - body() ). It does not wait for the task to - complete. The spawned task is a child of the root task. -

- -
template< typename Body > - void run( Body body ) - -

This method spawns a task that runs as a child of the - graph's root task. Calls to - wait_for_all will not return until this - spawned task completes. -

- -

Enqueues a task that invokes - body(). It does not - wait for the task to complete. -

- -
void wait_for_all() - -

Blocks until all tasks associated with the root task have - completed and the number of - decrement_wait_count calls equals the - number of - increment_wait_count calls. Because it - calls - wait_for_all on the root graph task, the - calling thread may participate in work-stealing while it is blocked. -

- -
task *root_task() - -

Returns: a pointer to the root task of the flow - graph. -

- -
bool is_cancelled() - -

Returns: - true if the graph was cancelled during the - last call to - wait_for_all(), - false otherwise. -

- -

See - task_group_context for a description of - cancellation. -

- -
bool exception_thrown() - -

Returns: - true if during the last call to - wait_for_all() an exception was thrown, - false otherwise. -

- -

See Section "Exceptions" for information on exception - handling. -

- -
void reset() - -

Resets the internal state of the nodes of a - graph to their initial state. The state of - the bodies of - function_nodes, - continue_nodes, - source_nodes and - multifunction_nodes are not changed. -

- -

See - task_group_context for a description of - cancellation. See Section "Exceptions" for information on exception handling. -

- -
-
- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/graph_node_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/graph_node_cls.htm deleted file mode 100644 index 323eaad9b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/graph_node_cls.htm +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - - - -graph_node Class - - - - - - - - - -

graph_node Class

- - -
-

Summary

-

A base class for all graph nodes.

-
- -

Syntax

- -
class graph_node;
- -

Header

- -
#include "tbb/flow_graph.h"
- -

Description

-

The class graph_node is a base class for all flow graph nodes. The virtual destructor allows flow graph nodes to be destroyed through pointers to graph_node. For example, a vector< graph_node * > could be used to hold the addresses of flow graph nodes that will later need to be destroyed.

-
- -

Members

- -
namespace tbb {
-namespace flow {
- 
-class graph_node {
-public:
-    virtual ~graph_node() {}
-};
- 
-}
-}
-
- - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/input_port_func.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/input_port_func.htm deleted file mode 100644 index c0ae07a4d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/input_port_func.htm +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - - - - - - - -input_port Template Function - - - - - - - - - -

input_port Template Function

- - -
-

Summary

- -

A template function that given a - join_node or - or_node returns a reference to a specific input - port. -

- -
- -

Syntax

- -
template<size_t N, typename NT>
-typename flow::tuple_element<N, typename NT::input_ports_tuple_type>::type&
-input_port(NT &n);
-
- -

Header

- -
#include "tbb/flow_graph.h"
-
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/join_node_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/join_node_cls.htm deleted file mode 100644 index 778665daf..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/join_node_cls.htm +++ /dev/null @@ -1,545 +0,0 @@ - - - - - - - - - - - - - - - - -join_node Template Class - - - - - - - - - -

join_node Template Class

- - -
-

Summary

- -

A node that creates a tuple<T0,T1, ... > from a set of messages - received at its input ports and broadcasts the tuple to all of its successors. - The - class - join_node supports three buffering policies at its - input ports: - reserving, - queueing and - tag_matching. By default, - join_node input ports use the - queueing policy. -

- -
- -

Syntax

- -
-template<typename OutputTuple, graph_buffer_policy JP = queueing>
-class join_node;
-
-
- -

Header

- -
#include "tbb/flow_graph.h"
-
- -

Description

- -

A join_node is a - graph_node and a - sender< flow::tuple< T0, T1, ... >>. It - contains a tuple of input ports, each of which is a - receiver<Ti> for each of the - T0 .. - TN in - OutputTuple. It supports multiple input receivers - with distinct types and broadcasts a tuple of received messages to all of its - successors. All input ports of a - join_node must use the same buffering policy. The - behavior of a - join_node based on its buffering policy is shown in - the table below. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Behavior of a join_node based on the buffering policy of its input - ports.
-

Buffering Policy -

- -
-

Behavior -

- -
-

queueing -

- -
-

As each input port is put to, the incoming message is added to - an unbounded first-in first-out queue in the port. When there is at least one - message at each input port, the - join_node broadcasts a tuple containing the - head of each queue to all successors. If at least one successor accepts the - tuple, the head of each input port's queue is removed; otherwise, the messages - remain in their respective input port queues. -

- -
-

reserving -

- -
-

As each input port is put to, the - join_node marks that an input may be - available at that port and returns - false. When all ports have been marked as - possibly available, the - join_node will try to reserve a message at - each port from their known predecessors. If it is unable to reserve a message - at a port, it un-marks that port, and releases all previously acquired - reservations. If it is able to reserve a message at all ports, it broadcasts a - tuple containing these messages to all successors. If at least one successor - accepts the tuple, the reservations are consumed; otherwise, they are released. - -

- -
-

tag_matching -

- -
-

As each input port is put to, a user-provided function object - is applied to the message to obtain its tag. The message is then added to a - hash table at the input port, using the tag as the key. When there is message - at each input port for a given tag, the - join_node broadcasts a tuple containing the - matching messages to all successors. If at least one successor accepts the - tuple, the messages are removed from each input port's hash table; otherwise, - the messages remain in their respective input ports. -

- -
-
- -

Rejection of messages by successors of the - join_node and failed gets from predecessors of the - input ports are handled using the protocol in the Message Passing Protocol, see - link below. -

- -

The function template - input_port simplifies the syntax for getting a - reference to a specific input port. -

- -

OutputTuple must be a - flow::tuple<T0,T1, ... > where each element is - copy-constructible and assignable. -

- -
- -

Example

- -
#include<cstdio>
-#include "tbb/flow_graph.h"
- 
-using namespace tbb::flow;
- 
-int main() {
-   graph g;
-   function_node<int,int>
-       f1( g, unlimited, [](const int &i) { return 2*i; } );
-   function_node<float,float>
-       f2( g, unlimited, [](const float &f) { return f/2; } );
- 
-   join_node< flow::tuple<int,float> > j(g);
- 
-   function_node< flow::tuple<int,float> >
-       f3( g, unlimited,
-           []( const flow::tuple<int,float> &t ) {
-               printf( "Result is %f\n",
-                       std::get<0>(t) + std::get<1>(t));
-           } );
- 
-   make_edge( f1, input_port<0>( j ) );
-   make_edge( f2, input_port<1>( j ) );
-   make_edge( j, f3 );
- 
-   f1.try_put( 3 );
-   f2.try_put( 3 );
-   g.wait_for_all( );
-   return 0;
-}
-

In the example above, three - function_node objects are created: - f1 multiplies an - int i by 2, - f2 divides a - float f by 2, and - f3 receives a - flow::tuple<int,float> t, adds its elements - together and prints the result. The - join_node j combines the output of - f1 and - f2, and then forwards the resulting tuple to - f3. This example is purely a syntactic demonstration - since there is very little work in the nodes. -

- -
- -

Members

- -
namespace tbb {
-namespace flow {
- 
-enum graph_buffer_policy {
-    rejecting, reserving, queueing, tag_matching };
- 
-template<typename OutputTuple, graph_buffer_policy JP = queueing>
-class join_node :
-    public graph_node, public sender< OutputTuple > {
- 
-public:
-    typedef OutputTuple output_type;
-    typedef receiver<output_type> successor_type;
-    typedef implementation-dependent-tuple input_ports_tuple_type;
- 
-    join_node( graph &g );
-    join_node( const join_node &src );
-    input_ports_tuple_type &inputs( );
-    bool register_successor( successor_type &r );
-    bool remove_successor( successor_type &r );
-    bool try_get( output_type &v );
-    bool try_reserve( output_type &v );
-    bool try_release( );
-    bool try_consume( );
- 
-};
- 
-//
-// Specialization for tag_matching
-//
- 
-template<typename OutputTuple>
-class join_node<OutputTuple, tag_matching> :
-    public graph_node, public sender< OutputTuple > {
- 
-public:
- 
-    // Has the same methdods as previous join_node,
-    // but has constructors to specify the tag_matching
-    // function objects
- 
-    template<typename B0, typename B1>
-    join_node( graph &g, B0 b0, B1 b1 );
-   
-    // Constructors are defined similarly for
-    // 3 through 10 elements ...
-};
- 
-}
-}
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
join_node( graph &g - ) - Constructs a - join_node that will spawn tasks using the - root task in - g. -
template < typename B0, - typename B1, ... > join_node( graph &g, B0 b0, B1 b1, ... ) - -

A constructor only available in the - tag_matching specialization of - join_node. -

- -

Creates a - join_node that uses the function objects - b0, - b1, ... , - bN to determine that tags for the input - ports 0 through N. It will spawn tasks using the root task in - g. -

- -

- Caution

-

Function objects passed to the join must not throw. -

- -
-
join_node( const join_node - &src ) - -

Creates a - join_node that has the same initial state - that - src had at its construction. The list of - predecessors, messages in the input ports, and successors are NOT copied. -

- -
input_ports_tuple_type - &inputs( ) - -

Returns: a - flow::tuple of receivers. Each element - inherits from - tbb::receiver<T> where - T is the type of message expected at that - input. Each tuple element can be used like any other - flow::receiver<T>. The behavior of - the ports based on the selected - join_node policy is shown in the table - above. -

- -
bool register_successor( - successor_type &r ) - -

Adds - r to the set of successors. -

- -

Returns: - true -

- -
bool remove_successor( - successor_type &r ) - -

Removes - r from the set of successors. -

- -

Returns: - true -

- -
bool try_get( output_type &v - ) - -

Attempts to generate a tuple based on the buffering policy - of the - join_node. -

- -

Returns: If it can successully generate a tuple, it - copies it to - v and returns - true. Otherwise it returns - false. -

- -
bool try_reserve( output_type - &v ) - -

Does not support reservations. -

- -

Returns: - false. -

- -
bool try_release( ) - -

Does not support reservations. -

- -

Returns: - false. -

- -
bool try_consume( ) - -

Does not support reservations. -

- -

Returns: - false. -

- -
template<size_t N, typename - JNT> typename flow::tuple_element<N, typename - JNT::input_ports_tuple_type>::type &input_port( JNT &jn ) - -

Calling - input_port <N>( jn ) is equivalent - to calling - std::get<N>( jn.inputs() ) -

- -

Returns: the Nth input port for - join_node jn. -

- -
-
- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/limiter_node_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/limiter_node_cls.htm deleted file mode 100644 index 527d41240..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/limiter_node_cls.htm +++ /dev/null @@ -1,431 +0,0 @@ - - - - - - - - - - - - - - -limiter_node Template Class - - - - - - - - - -

limiter_node Template Class

- - -
-

Summary

- -

An node that counts and limits the number of messages that pass - through it. -

- -
- -

Syntax

- -
template < typename T > class limiter_node;
-
- -

Header

- -
#include "tbb/flow_graph.h"
-
- -

Description

- -

A - limiter_node is a - graph_node, - receiver<T> and - sender<T> that broadcasts messages to all of - its successors. It keeps a counter C of the number of broadcasts it makes and - does not accept new messages once its user-specified - threshold is reached. The internal count of - broadcasts C can be decremented through use of its embedded - continue_receiver decrement. -

- -

The behavior of a call to a - limiter_node's - try_put is shown below. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - -
Behavior of a call to a limiter_node's try_put
-

Value of counter C -

- -
-

bool try_put( const input_type &v ) -

- -
-

C < threshold -

- -
-

C is incremented and - v is broadcast to all successors. If no - successor accepts the message, C is decremented. Returns - true if the message was successfully - broadcast to at least one successor and - false otherwise. -

- -
-

C == threshold -

- -
-

Returns - false. -

- -
-
- -

When - try_put is called on the member object - decrement, the - limiter_node will try to get a message from one of - its known predecessors and forward that message to all of its successors. If it - cannot obtain a message from a predecessor, it will decrement C. Rejection of - messages by successors and failed gets from predecessors are handled using the - protocol in the Message Passing Protocol, see link below. -

- -

T must be copy-constructible and assignable. -

- -
- -

Members

- -
namespace tbb {
-namespace flow {
- 
-template< typename T >
-class limiter_node : public graph_node, public receiver<T>,
-  public sender<T> {
-public:
-    limiter_node( graph &g, size_t threshold,
-                  int number_of_decrement_predecessors = 0 );
-    limiter_node( const limiter_node &src );
- 
-    // a continue_receiver
-    implementation-dependent-type decrement;
- 
-    // receiver<T>
-    typedef T input_type;
-    typedef sender<input_type> predecessor_type;
-    bool try_put( const input_type &v );
-    bool register_predecessor( predecessor_type &p );
-    bool remove_predecessor( predecessor_type &p );
- 
-    // sender<T>
-    typedef T output_type;
-    typedef receiver<output_type> successor_type;
-    bool register_successor( successor_type &r );
-    bool remove_successor( successor_type &r );
-    bool try_get( output_type &v );
-    bool try_reserve( output_type &v );
-    bool try_release( );
-    bool try_consume( );
-};
- 
-}
-}
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
limiter_node( graph &g, size_t - threshold, int number_of_decrement_predecessors = 0 ) - -

Constructs a - limiter_node that allows up to - threshold items to pass through before - rejecting - try_put's. Optionally a - number_of_decrement_predecessors value can - be supplied. This value is passed on to the - continue_receiver decrement's constructor. - -

- -
limiter_node( const limiter_node - &src ) - -

Constructs a - limiter_node that has the same initial - state that - src had at its construction. The new - limiter_node will belong to the same - graph g as - src, have the same - threshold, and have the same initial - number_of_decrement_predecessors. The list - of predecessors, the list of successors, and the current count of broadcasts, - C, are NOT copied from - src. -

- -
bool try_put( const input_type - &v ) - -

If the broadcast count is below the threshold, - v is broadcast to all successors. For each - successor - s, if - s.try_put( v ) == false && - s.register_predecessor( *this ) == true, then - s is removed from the set of succesors. - Otherwise, - s will remain in the set of successors. -

- -

Returns: - true if - v is broadcast. - false if - v is not broadcast because the threshold - has been reached. -

- -
bool register_predecessor( - predecessor_type &p ) - -

Adds a predecessor that can be pulled from once the - broadcast count falls below the threshold. -

- -

Adds - p to the set of predecessors. -

- -

Returns:true. -

- -
bool remove_predecessor( - predecessor_type &p ) - -

Removes - p from the set of predecessors. -

- -

Returns: - true -

- -
bool register_successor( - successor_type &r ) - -

Adds - r to the set of successors. -

- -

Returns: - true -

- -
bool remove_successor( - successor_type &r ) - -

Removes - r from the set of successors. -

- -

Returns: - true -

- -
bool try_get( output_type &v - ) - -

Does not contain buffering and therefore cannot be pulled - from. -

- -

Returns: - false. -

- -
bool try_reserve( output_type - &v ) - -

Does not support reservations. -

- -

Returns: - false. -

- -
bool try_release( ) - -

Does not support reservations. -

- -

Returns: - false. -

- -
bool try_consume( ) - -

Does not support reservations. -

- -

Returns: - false. -

- -
-
- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/make_edge_func.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/make_edge_func.htm deleted file mode 100644 index 516b63646..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/make_edge_func.htm +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - -make_edge Template Function - - - - - - - - - -

make_edge Template Function

- - -
-

Summary

-

A template function that adds an edge between a sender<T> and a receiver<T>.

-
- -

Syntax

- -
template< typename T >
-inline void make_edge( sender<T> &p, receiver<T> &s );
- -

Header

- -
#include "tbb/flow_graph.h"
-
- - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/message_flow_graph_example.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/message_flow_graph_example.htm deleted file mode 100644 index 5e049205f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/message_flow_graph_example.htm +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - - - - - - - -Message Flow Graph Example - - - - - - - - - -

Message Flow Graph Example

- - -
-

This example calculates the sum - x*x + x*x*x for all - x = 1 to 10. The layout of this example is shown in - the figure below. -

- -
A simple message flow graph. - -
A simple flow graph.

-
- -

Each value enters through the - input_node<int> - input. This node broadcasts the value to both - squarer and - cuber, which calculate - x*x and - x*x*x respectively. The output of each of these nodes - is put to one of - join's ports. A tuple containing both values is - created by - join_node< tuple<int,int> > join and - forwarded to - summer, which adds both values to the running total. - Both - squarer and - cuber allow unlimited concurrency, that is they each - may process multiple values simultaneously. The final - summer, which updates a shared total, is only allowed - to process a single incoming tuple at a time, eliminating the need for a lock - around the shared value. -

- -
#include <cstdio>
-#include "tbb/flow_graph.h"
-
-using namespace tbb::flow;
-
-struct square {
-  int operator()(int v) { return v*v; }
-};
-
-struct cube {
-  int operator()(int v) { return v*v*v; }
-};
-
-class sum {
-  int &my_sum;
-public:
-  sum( int &s ) : my_sum(s) {}
-  int operator()( tuple< int, int > v ) {
-    my_sum += get<0>(v) + get<1>(v);
-    return my_sum;
-  }
-};
-
-int main() {
-  int result = 0;
-
-  graph g;
-  broadcast_node<int> input(g);
-  function_node<int,int> squarer( g, unlimited, square() );
-  function_node<int,int> cuber( g, unlimited, cube() );
-  join_node< tuple<int,int>, queueing > join( g );
-  function_node<tuple<int,int>,int>
-      summer( g, serial, sum(result) );
-
-  make_edge( input, squarer );
-  make_edge( input, cuber );
-  make_edge( squarer, get<0>( join.input_ports() ) );
-  make_edge( cuber, get<1>( join.input_ports() ) );
-  make_edge( join, summer );
-
-  for (int i = 1; i <= 10; ++i)
-      input.try_put(i);
-  g.wait_for_all();
-
-  printf("Final result is %d\n", result);
-  return 0;
-}
-

In the example code above, the classes - square, - cube and - sum define the three user-defined operations. Each - class is used to create a - function_node. -

- -

In function - main, the flow graph is set up and then the values - 1-10 are put into the node - input. All the nodes in this example pass around - values of type - int. The nodes used in this example are all class - templates and therefore can be used with any type that supports copy - construction, including pointers and objects. -

- -

- Caution

-

Values are copied as they pass between nodes and therefore passing - around large objects should be avoided. To avoid large copy overheads, pointers - to large objects can be passed instead. -

- -
-

- Note

-

This is a simple syntactic example only. Since each node in a flow - graph may execute as an independent task, the granularity of each node should - follow the general guidelines for tasks as described in Section 3.2.3 of the - Intel® Threading Building Blocks Tutorial. -

- -
-

The classes and functions used in this example are described in detail - in topics linked from the Flow Graph parent topic. -

- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/message_passing_protocol.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/message_passing_protocol.htm deleted file mode 100644 index 634960a29..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/message_passing_protocol.htm +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - -Message Passing Protocol - - - - - - - - - -

Message Passing Protocol

- - -
-

In an Intel® Threading Building Blocks (Intel® TBB) flow graph, edges dynamically switch between a push and - pull protocol for passing messages. An Intel® TBB flow graph G = ( V, S, L ), - where V is the set of nodes, S is the set of edges that are currently using a - push protocol, and L is the set of edges that are currently using a pull - protocol. For each edge (Vi, Vj), Vi is the predecessor / sender and Vj is the - successor / receiver. When in the push set S, messages over an edge are - initiated by the sender, which tries to - put to the receiver. When in the pull set, messages are initiated - by the receiver, which tries to - get from the sender. -

- -

If a message attempt across an edge fails, the edge is moved to the - other set. For example, if a put across the edge (Vi, Vj) fails, the edge is - removed from the push set S and placed in the pull set L. This dynamic - push/pull protocol is the key to performance in a non-preemptive tasking - library such as Intel® TBB, where simply repeating failed sends or receives is - not an efficient option. The following graphic summarizes this dynamic - protocol. -

- -
The dynamic push / pull protocol. - -
The dynamic push / pull protocol.

-
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/multifunc_node_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/multifunc_node_cls.htm deleted file mode 100644 index 5667e471a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/multifunc_node_cls.htm +++ /dev/null @@ -1,576 +0,0 @@ - - - - - - - - - - - - - - - - - - - - -multifunction_node Template Class - - - - - - - - - - - - - - -

multifunction_node Template Class

- - -
-

Summary

- -

A template class that is a - receiver<InputType> and has a tuple of sender<T> outputs. This node - may have concurrency limits as set by the user. When the concurrency limit - allows, it executes the user-provided body on incoming messages. The body may - create one or more output messages and broadcast them to successors. -

- -
- -

Syntax

- -
template <typename Input, typename Output, 
-    graph_buffer_policy = queueing, typename Allocator=cache_aligned_allocator<Input> >
-    class multifunction_node;
-
- -

Header

- -
#include "tbb/flow_graph.h"
-
- -

Description

- -

This type is used for nodes that receive messages - at a single input port and may generate one or more messages that are broadcast - to successors. -

- -

A - multifunction_node - maintains an internal constant threshold T and an internal counter C. At - construction, C=0 and T is set the value passed in to the constructor. The - behavior of a call to - try_put is determined - by the value of T and C as shown in the table below. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Behavior of a call to a - multifunction_node's try_put
-

Value of threshold T -

- -
-

Value of counter C -

- -
-

bool try_put( input_type v ) -

- -
-

T - == graph::unlimited -

- -
-

NA -

- -
-

A task is spawned that executes body(v). - Returns - true. -

- -
-

T - != flow::unlimited -

- -
-

C < T -

- -
-

Increments C. A task is spawned that - executes body(v) and then decrements C. Returns - true. -

- -
-

T - != flow::unlimited -

- -
-

C >= T -

- -
-

Returns - false. -

- -
-
- -

A - multifunction_node has a user-settable concurrency limit. It can have - flow::unlimited - concurrency, which allows an unlimited number of copies of the node to - execute concurrently. It can have - flow::serial - concurrency, which allows only a single copy of the node to execute - concurrently. The user can also provide a value of type size_t to limit - concurrency to a value between 1 and unlimited. -

- -

The Body concept for - multifunction_node is - shown in the table below. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
multifunction_node Body Concept
-

Pseudo-Signature -

- -
-

Semantics -

- -
-

B::B( const B& ) -

- -
-

Copy constructor. -

- -
-

B::~B() -

- -
-

Destructor. -

- -
-

void operator=( const B& ) -

- -
-

Assignment -

- -
-

void B::operator()(const input_type &v, - output_ports_type &p) -

- -
-

Perform operation on - v. May call - try_put on - zero or more of the output ports. May call - try_put on any - output port multiple times. -

- -
-
- -

- Caution

-

The body object passed to a - multifunction_node is copied. Therefore updates to - member variables will not affect the original object used to construct the - node. If the state held within a body object must be inspected from outside of - the node, the - copy_body function can be used to obtain an - updated copy. -

- -
-

- Note

-

The body object may throw or cancel its enclosing graph. See - task_group_context and Exceptions sections for a description. -

- -
-
- -

Example

- -

The example below shows a - multifunction_node - that separates a stream of integers into odd and even, placing each in the - appropriate output queue. -

- -

The Body method will receive as parameters a - read-only reference to the input value and a reference to the tuple of output - ports. The Body method may put items to one or more output ports. -

- -

The output ports of the - multifunction_node can - be connected to other graph nodes using the - make_edge method or by - using - register_successor: -

- -
#include "tbb/flow_graph.h"
-using namespace tbb::flow;
-typedef multifunction_node<int, flow::tuple<int,int> > multi_node;
-
-struct MultiBody {
-
-  void operator()(const int &i, multi_node::output_ports_type &op) {
-    if(i % 2) 
-      std::get<1>(op).try_put(i); // put to odd queue
-    else 
-      std::get<0>(op).try_put(i); // put to even queue
-  }
-};
-
-int main() {
-  graph g;
-
-  queue_node<int> even_queue(g);
-  queue_node<int> odd_queue(g);
-
-  multi_node node1(g,unlimited,MultiBody());
-
-  output_port<0>(node1).register_successor(even_queue);
-  make_edge(output_port<1>(node1), odd_queue);
-
-  for(int i = 0; i < 1000; ++i) {
-    node1.try_put(i);
-  }
-  g.wait_for_all();
-}
-
- -

Members

- -
namespace tbb {
-  template <typename Input, typename Output, 
-    graph_buffer_policy = queueing, typename Allocator=cache_aligned_allocator<Input> >
-    class multifunction_node : public graph_node, public receiver<Input>
-  {
-  public:
-
-    template < typename Body >
-    multifunction_node( graph &g, size_t concurrency, Body body );
-    multifunction_node( const multifunction_node &other);
-    ~multifunction_node();
-
-    // receiver< Input >
-    typedef Input input_type;
-    typedef sender<input_type> predecessor_type;
-    bool try_put( const input_type &v );
-    bool register_predecessor( predecessor_type &p );
-    bool remove_predecessor( predecessor_type &p );
-
-    typedef implementation-dependent output_ports_type;
-    output_ports_type& output_ports();
-  };
-}
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
- template < typename Body > multifunction_node( - graph &g, size_t concurrency, Body body ) - - -

Constructs a - multifunction_node with - body as its Body. At most - concurrency calls to the body may be made - concurrently. -

- -
- multifunction_node( const multifunction_node - &other) - -

Constructs a - multifunction_node that has the same - initial state that - other had when it was constructed. The - multifunction_node that is constructed - will have a reference to the same - graph object as - other, will have a copy of the initial - body used by - other, and have the same concurrency - threshold as - other. The predecessors and successors of - other will not be copied. -

- -

- Caution

-

The new body object is copy constructed from a copy of - the original body provided to - other at its construction. Therefore - changes made to member variables in - other's body after the construction of - other will not affect the body of the - new - multifunction_node. -

- -
-
- ~multifunction_node() - -

Destructor -

- -
- bool try_put( const input_type &v ) - -

See the table above describing the behavior of try_put for a - - multifunction_node for more information. -

- -

Returns: - true -

- -
bool register_predecessor( - predecessor_type &p ) - -

Adds - p to the set of predecessors. -

- -

Returns: - true -

- -
bool remove_predecessor( - predecessor_type &p ) - -

Removes - p from the set of predecessors. -

- -

Returns: - true -

- -
output_ports_type& - output_ports(); - -

Returns: a tuple of output ports. -

- -
-
- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/overwrite_node_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/overwrite_node_cls.htm deleted file mode 100644 index 6356ece05..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/overwrite_node_cls.htm +++ /dev/null @@ -1,391 +0,0 @@ - - - - - - - - - - - - - - -overwrite_node Template Class - - - - - - - - - -

overwrite_node Template Class

- - -
-

Summary

- -

A template class that is a - graph_node, - receiver<Input> and - sender<Output>. An - overwrite_node is a buffer of a single item that can - be over-written. The value held in the buffer is initially invalid. Gets from - the node are non-destructive. -

- -
- -

Syntax

- -
template < typename T > class overwrite_node;
-
- -

Header

- -
#include "tbb/flow_graph.h"
-
- -

Description

- -

This type of node buffers a single item of type T. The value is - initially invalid. A - try_put will set the value of the internal buffer, - and broadcast the new value to all successors. If the internal value is valid, - a - try_get will return - true and copy the buffer value to the output. If the - internal value is invalid, - try_get will return - false. -

- -

Rejection of messages by successors is handled using the protocol in - the Message Passage Protocol, see link below. -

- -

T must be copy-constructible and assignable -

- -
- -

Members

- -
namespace tbb {
-namespace flow {
- 
-template< typename T >
-class overwrite_node :
-  public graph_node, public receiver<T>,
-  public sender<T> {
-public:
-    overwrite_node( graph &g );
-    overwrite_node( const overwrite_node &src );
-    ~overwrite_node();
- 
-    // receiver<T>
-    typedef T input_type;
-    typedef sender<input_type> predecessor_type;
-    bool try_put( const input_type &v );
-    bool register_predecessor( predecessor_type &p );
-    bool remove_predecessor( predecessor_type &p );
- 
-    // sender<T>
-    typedef T output_type;
-    typedef receiver<output_type> successor_type;
-    bool register_successor( successor_type &r );
-    bool remove_successor( successor_type &r );
-    bool try_get( output_type &v );
-    bool try_reserve( output_type &v );
-    bool try_release( );
-    bool try_consume( );
- 
-    bool is_valid( );
-    void clear( );
-};
- 
-}
-}
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
overwrite_node( graph &g - ) - -

Constructs an object of type - overwrite_node with an invalid internal - buffer item. -

- -
overwrite_node( const - overwrite_node &src ) - -

Constructs an object of type - overwrite_node that belongs to the - graph g with an invalid internal buffer - item. The buffered value and list of successors is NOT copied from - src. -

- -
~overwrite_node( ) - -

Destroys the - overwrite_node. -

- -
bool try_put( const input_type - &v ) - -

Stores - v in the internal single item buffer if it - does not already contain a valid value. If a new value is set, it calls - try_put(v) on all successors. -

- -

Returns: - true -

- -
bool register_predecessor( - predecessor_type &p ) - -

Never rejects puts and therefore does not need to maintain a - list of predecessors. -

- -

Returns: - false -

- -
bool remove_predecessor( - predecessor_type &p ) - -

Never rejects puts and therefore does not need to maintain a - list of predecessors. -

- -

Returns: - false -

- -
bool register_successor( - successor_type &r ) - -

Adds - r to the set of successors. If a valid - item - v is held in the buffer, a task is - spawned to call - r.try_put(v). -

-Returns: - true -
bool remove_successor( - successor_type &r ) - -

Removes - r from the set of successors. -

- -

Returns: - true -

- -
bool try_get( output_type &v - ) - -

If the internal buffer is valid, assigns the value to - v. -

- -

Returns:true if - v is assigned to. - false if - v is not assigned to. -

- -
bool try_reserve( output_type - &v ) - - -

Does not support reservations. -

- -

Returns: - false -

- -
bool try_release( output_type - &v ) - - -

Does not support reservations. -

- -

Returns: - false -

- -
bool try_consume( output_type - &v ) - -

-

- -
-

Does not support reservations. -

- -

Returns: - false -

- -
bool is_valid( ) - -

Returns: - true if the buffer holds a valid value, - otherwise returns - false. -

- -
void clear( ) - -

Invalidates the value held in the buffer. -

- -
-
- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/primary_components.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/primary_components.htm deleted file mode 100644 index 3b4bd3dbd..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/primary_components.htm +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - - - - - - -Primary Components - - - - - - - - - -

Primary Components

- - -
-

There are 3 types of components used to implement a graph: -

- -
    -
  • -

    A - graph object -

    - -
  • - -
  • -

    Nodes -

    - -
  • - -
  • -

    Edges -

    - -
  • - -
- -

The - graph object is the owner of the tasks created on - behalf of the flow graph. Users can wait on the - graph if they need to wait for the completion of all - of the tasks related to the flow graph execution. One can also register - external interactions with the - graph and run tasks under the ownership of the flow - graph. -

- -

Nodes invoke user-provided function objects or manage messages as the - flow to/from other nodes. There are pre-defined nodes that buffer, filter, - broadcast or order items as they flow through the graph. -

- -

Edges are the connections between the nodes, created by calls to the - make_edge function. -

- -

- Caution

-

- The tasks related to the flow graph are executed in the task_group_context of that - flow graph. If no context is specified when a flow graph is created, a - new context is created and bound to the enclosing context. -

- -

- The context a body of a flow graph node is executed in is that node's graph. - If a cancellation or exception occurs in that node, the context of its - graph is cancelled, and if necessary the exception thrown is passed to - the enclosing context for further processing. -

- -
-
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/priority_queue_node_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/priority_queue_node_cls.htm deleted file mode 100644 index 0e53eaf3b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/priority_queue_node_cls.htm +++ /dev/null @@ -1,386 +0,0 @@ - - - - - - - - - - - - - - -priority_queue_node Template Class - - - - - - - - - -

priority_queue_node Template Class

- - -
-

Summary

- -

An unbounded buffer of messages of type - T. Messages are forwarded in priority order. -

- -
- -

Syntax

- -
template< typename T,
-          typename Compare = std::less<T>,
-          typename A = cache_aligned_allocator<T> >
-class priority_queue_node;
-
- -

Header

- -
#include "tbb/flow_graph.h"
-
- -

Description

- -

A - priority_queue_node is a - graph_node, - receiver<T> and - sender<T> that forwards messages in priority - order to a single successor in its successor set. Successors are tried in the - order that they were registered with the node. If a successor rejects the - message, it is removed from the successor list as described by the policy in - the Message Passing Protocol, and the next successor in the set is tried. This - continues until a successor accepts the message, or all successors have been - attempted. Items that are successfully transferred to a successor are removed - from the buffer. -

- -

The next message to be forwarded has the largest priority as - determined by - Compare. -

- -

A - priority_queue_node is reservable and supports a - single reservation at a time. While the - priority_queue_node is reserved, no other items will - be forwarded to successors and all - try_get calls will return - false. While reserved, - try_put will still return - true and add items to the - priority_queue_node. -

- -

An allocator of type - A is used to allocate internal memory for the - priority_queue_node. -

- -

T must be copy-constructible and assignable. -

- -

Rejection of messages by successors is handled using the protocol in - the Message Passing Protocol, see link below. -

- -

- Caution

-

The Compare function object must not throw an exception. -

- -
-
- -

Members

- -
namespace tbb {
-namespace flow {
- 
-template< typename T, typename Compare = std::less<T>,
-          typename A = cache_aligned_allocator<T>>
-class priority_queue_node : public queue_node<T> {
-public:
-    typedef size_t size_type;
-    priority_queue_node( graph &g );
-    priority_queue_node( const priority_queue_node &src );
-    ~priority_queue_node();
- 
-    // receiver<T>
-    typedef T input_type;
-    typedef sender<input_type> predecessor_type;
-    bool try_put( const input_type &v );
-    bool register_predecessor( predecessor_type &p );
-    bool remove_predecessor( predecessor_type &p );
- 
-    // sender<T>
-    typedef T output_type;
-    typedef receiver<output_type> successor_type;
-    bool register_successor( successor_type &r );
-    bool remove_successor( successor_type &r );
-    bool try_get( output_type &v );
-    bool try_reserve( output_type &v );
-    bool try_release( );
-    bool try_consume( );
-};
- 
-}
-}
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
priority_queue_node( graph &g - ) - -

Constructs an empty - priority_queue_node that belongs to the - graph g. -

- -
priority_queue_node( const - priority_queue_node &src ) - -

Constructs an empty - priority_queue_node that belongs to the - same - graph g as - src. The list of predecessors, the list of - successors and the messages in the buffer are NOT copied. -

- -
bool try_put( const input_type - &v ) - -

Adds - v to the - priority_queue_node. If - v's priority is the largest of all of the - currently buffered messages, a task is spawned to forward the item to a - successor. -

- -

Returns: - true -

- -
bool register_predecessor( - predecessor_type &p ) - -

Never rejects puts and therefore does not need to maintain a - list of predecessors. -

- -

Returns: - false -

- -
bool remove_predecessor( - predecessor_type &p ) - -

Never rejects puts and therefore does not need to maintain a - list of predecessors. -

- -

Returns: - false -

- -
bool register_successor( - successor_type &r ) - -

Adds - r to the set of successors. -

- -

Returns: - true -

- -
bool remove_successor( - successor_type &r ) - -

Removes - r from the set of successors. -

- -

Returns: - true -

- -
bool try_get( output_type &v - ) - -

Returns: - true if a message is available in the node - and the node is not currently reserved. Otherwise returns - false. If the node returns - true, the message with the largest - priority will have been copied to - v. -

- -
bool try_reserve( output_type - &v ) - -

If the call returns - true, the node is reserved and will - forward no more messages until the reservation has been released or consumed. -

- -

Returns: - true if a message is available in the node - and the node is not currently reserved. Otherwise returns - false. If the node returns - true, the message with the largest - priority will have been copied to - v. -

- -
bool try_release( ) - -

Releases the reservation on the node. The item that was - returned in the last successful call to - try_reserve remains in the - priority_queue_node. -

- -

Returns: - true if the buffer is currently reserved - and - false otherwise. -

- -
bool try_consume( ) - -

Releases the reservation on the node. The item that was - returned in the last successful call to - try_reserve is popped from the front of - the queue. -

- -

Returns: - true if the buffer is currently reserved - and - false otherwise. -

- -
-
- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/queue_node_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/queue_node_cls.htm deleted file mode 100644 index 3b4b5e964..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/queue_node_cls.htm +++ /dev/null @@ -1,374 +0,0 @@ - - - - - - - - - - - - - - -queue_node Template Class - - - - - - - - - -

queue_node Template Class

- - -
-

Summary

- -

An unbounded buffer of messages of type T. Messages are forwarded in - first-in first-out (FIFO) order. -

- -
- -

Syntax

- -
template <typename T, typename A = cache_aligned_allocator<T> >
-class queue_node;
-
- -

Header

- -
#include "tbb/flow_graph.h"
-
- -

Description

- -

A - queue_node is a - graph_node, - receiver<T> and - sender<T> that forwards messages in first-in - first-out (FIFO) order to a single successor in its successor set. Successors - are tried in the order that they were registered with the node. If a successor - rejects the message, it is removed from the successor list as described by the - policy in the Message Passing Protocol, and the next successor in the set is - tried. This continues until a successor accepts the message, or all successors - have been attempted. Items that are successfully transferred to a successor are - removed from the buffer. -

- -

A - queue_node is reservable and supports a single - reservation at a time. While the - queue_node is reserved, no other items will be - forwarded to successors and all - try_get calls will return - false. While reserved, - try_put will still return - true and add items to the - queue_node. -

- -

An allocator of type - A is used to allocate internal memory for the - queue_node. -

- -

T must be copy-constructible and assignable. -

- -

Rejection of messages by successors is handled using the protocol in - the Message Passing Protocol, see link below. -

- -
- -

Members

- -
namespace tbb {
-namespace flow {
- 
- 
-template <typename T, typename A = cache_aligned_allocator<T> >
-class queue_node :
-  public buffer_node<T, A> {
-public:
-    queue_node( graph &g );
-    queue_node( const queue_node &src );
- 
-    // receiver<T>
-    typedef T input_type;
-    typedef sender<input_type> predecessor_type;
-    bool try_put( const input_type &v );
-    bool register_predecessor( predecessor_type &p );
-    bool remove_predecessor( predecessor_type &p );
- 
-    // sender<T>
-    typedef T output_type;
-    typedef receiver<output_type> successor_type;
-    bool register_successor( successor_type &r );
-    bool remove_successor( successor_type &r );
-    bool try_get( output_type &v );
-    bool try_reserve( output_type &v );
-    bool try_release( );
-    bool try_consume( );
-};
- 
-}
-}
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
queue_node( graph &g - ) - -

Constructs an empty - queue_node that belongs to the - graph g. -

- -
queue_node( const queue_node - &src ) - -

Constructs an empty - queue_node that belongs to the same - graph g as - src. The list of predecessors, the list of - successors and the messages in the buffer are NOT copied. -

- -
bool try_put( const input_type - &v ) - -

Adds - v to all successors. -

-the - queue_node. If - v is the only item in the - queue_node , a task is spawned to forward - the item to a successor. -

Returns: - true. -

- -
bool register_predecessor( - predecessor_type &p ) - -

Never rejects puts and therefore does not need to maintain a - list of predecessors. -

- -

Returns: - false -

- -
bool remove_predecessor( - predecessor_type &p ) - -

Never rejects puts and therefore does not need to maintain a - list of predecessors. -

- -

Returns: - false -

- -
bool register_successor( - successor_type &r ) - -

Adds - r to the set of successors. -

- -

Returns: - true -

- -
bool remove_successor( - successor_type &r ) - -

Removes - r from the set of successors. -

- -

Returns: - true -

- -
bool try_get( output_type &v - ) - -

Returns: - true if an item can be removed from the - front of the - queue_node and assigned to - v. Returns - false if there is no item currently in the - - queue_node or if the node is reserved. -

- -
bool try_reserve( output_type - &v ) - -

If the call returns - true, the node is reserved and will - forward no more messages until the reservation has been released or consumed. -

- -

Returns: - true if there is an item in the - queue_node and the node is not currently - reserved. If an item can be returned, it is assigned to - v. Returns - false if there is no item currently in the - - queue_node or if the node is reserved. -

- -
bool try_release( ) - -

Release the reservation on the node. The item that was - returned in the last successful call to - try_reserve remains in the - queue_node. -

- -

Returns: - true if the node is currently reserved and - - false otherwise. -

- -
bool try_consume( ) - -

Releases the reservation on the - queue_node. The item that was returned in - the last successful call to - try_reserve is popped from the front of - the queue. -

- -

Returns: - true if the - queue_node is currently reserved and - false otherwise. -

- -
-
- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/receiver_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/receiver_cls.htm deleted file mode 100644 index fc9e9fc51..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/receiver_cls.htm +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - - - - - - - -receiver Template Class - - - - - - - - - -

receiver Template Class

- - -
-

Summary

- -

An abstract base class for nodes that act as message receivers. -

- -
- -

Syntax

- -
template< typename T > class receiver;
-
- -

Header

- -
#include "tbb/flow_graph.h"
-
- -

Description

- -

The - receiver template class is an abstract base class - that defines the interface for nodes that can act as receivers. Default - implementations for several functions are provided. -

- -
- -

Members

- -
namespace tbb {
-namespace flow {
- 
-template< typename T >
-class receiver {
-public:
-    typedef T input_type;
-    typedef sender<input_type> predecessor_type;
-    virtual ~receiver();
-    virtual bool try_put( const input_type &v ) = 0;
-    virtual bool register_predecessor( predecessor_type &p ) {
-        return false; }
-    virtual bool remove_predecessor( predecessor_type &p ) {
-        return false; }
-};
- 
-}
-}
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
~receiver() - -

The destructor. -

- -
bool try_put( const input_type - &v ) - -

A method that represents the interface for - putting an item to a receiver. -

- -
bool register_predecessor( - predecessor_type &p ) - -

Adds a predecessor to the node's set of predecessors. -

- -

Returns: - true if the predecessor is added; - false otherwise. The default - implementation returns - false. -

- -
bool remove_predecessor( - predecessor_type &p ) - -

Removes a predecessor from the node's set of predecessors. -

- -

Returns: - true if the predecessor is removed; - false otherwise. The default - implementation returns - false. -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/remove_edge_func.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/remove_edge_func.htm deleted file mode 100644 index 8203dde8f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/remove_edge_func.htm +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - -remove_edge Template Function - - - - - - - - - -

remove_edge Template Function

- - -
-

Summary

-

A template function that removes an edge between a sender<T> and a receiver<T>.

-
- -

Syntax

- -
template< typename T >
-void remove_edge( sender<T> &p, receiver<T> &s );
- -

Header

- -
#include "tbb/flow_graph.h"
-
- - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/sender_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/sender_cls.htm deleted file mode 100644 index 62e16fcbc..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/sender_cls.htm +++ /dev/null @@ -1,225 +0,0 @@ - - - - - - - - - - - - - -sender Template Class - - - - - - - - - -

sender Template Class

- - -
-

Summary

- -

An abstract base class for nodes that act as message senders. -

- -
- -

Syntax

- -
template< typename T > class sender;
-
- -

Header

- -
#include "tbb/flow_graph.h"
-
- -

Description

- -

The - sender template class is an abstract base class that - defines the interface for nodes that can act as senders. Default - implementations for several functions are provided. -

- -
- -

Members

- -
namespace tbb {
-namespace flow {
- 
-template< typename T >
-class sender {
-public:
-    typedef T output_type;
-    typedef receiver<output_type> successor_type;
-    virtual ~sender();
-    virtual bool register_successor( successor_type &r ) = 0;
-    virtual bool remove_successor( successor_type &r ) = 0;
-    virtual bool try_get( output_type &v ) { return false; }
-    virtual bool try_reserve( output_type &v ) { return false; }
-    virtual bool try_release( ) { return false; }
-    virtual bool try_consume( ) { return false; }
-};
- 
-}
-}
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
~sender() - -

The destructor. -

- -
bool register_successor( - successor_type &r ) = 0 - -

A pure virtual method that describes the interface for - adding a successor node to the set of successors for the sender. -

- -

- Returns: - true if the successor is added; - false otherwise. -

- -
bool remove_successor( - successor_type &r ) = 0 - -

A pure virtual method that describes the interface for - removing a successor node from the set of successors for a sender. -

- -

Returns: - true if the successor is removed; - false otherwise. -

- -
bool try_get( output_type &v - ) - -

Requests an item from a sender. -

- -

Returns: The default implementation returns - false. -

- -
bool try_reserve( output_type - &v ) - -

Reserves an item at the sender. -

- -

Returns: The default implementation returns - false. -

- -
bool try_release( ) - -

Releases the reservation held at the sender. -

- -

Returns: The default implementation returns - false. -

- -
bool try_consume( ) - -

Consumes the reservation held at the sender. -

- -

Returns: The default implementation returns - false. -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/sequencer_node_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/sequencer_node_cls.htm deleted file mode 100644 index 613b30306..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/sequencer_node_cls.htm +++ /dev/null @@ -1,501 +0,0 @@ - - - - - - - - - - - - - - -sequencer_node Template Class - - - - - - - - - -

sequencer_node Template Class

- - -
-

Summary

- -

An unbounded buffer of messages of type - T. Messages are forwarded in sequence order. -

- -
- -

Syntax

- -
template< typename T, typename A = cache_aligned_allocator<T> >
-class sequencer_node;
-
- -

Header

- -
#include "tbb/flow_graph.h"
-
- -

Description

- -

A - sequencer_node is a - graph_node, - receiver<T> and - sender<T> that forwards messages in sequence - order to a single successor in its successor set. Successors are tried in the - order that they were registered with the node. If a successor rejects the - message, it is removed from the successor list as described by the policy in - the Message Passing Protocol, and the next successor in the set is tried. This - continues until a successor accepts the message, or all successors have been - attempted. Items that are successfully transferred to a successor are removed - from the buffer. -

- -

Each item that passes through a - sequencer_node is ordered by its sequencer order - number. These sequence order numbers range from 0 to N, where N is the largest - integer representable by the - size_t type. An item's sequencer order number is - determined by passing the item to a user-provided function object that models - the Sequencer Concept shown below. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
sequencer_node<T> Sequencer Concept
-

Pseudo-Signature -

- -
-

Semantics -

- -
-

-

S::S( const S& )
-

- -
-

Copy constructor. -

- -
-

-

S::~S()
-

- -
-

Destructor. -

- -
-

-

void operator=( const S& )
-

- -
-

Assignment. The return type - void in the pseudo-signature denotes that - operator= is not required to return a value. - The actual - operator= can return a value, which will be - ignored. -

- -
-

size_t - S::operator()( - const - T - &v ) -

- -
-

Returns the sequence number for the provided message - v. -

- -
-
- -

A - sequencer_node is reservable and supports a single - reservation at a time. While a - sequencer_node is reserved, no other items will be - forwarded to successors and all - try_get calls will return - false. While reserved, - try_put will still return - true and add items to the - sequencer_node. -

- -

An allocator of type - A is used to allocate internal memory for the - sequencer_node. -

- -

T must be copy-constructible and assignable. -

- -

Rejection of messages by successors is handled using the protocol in - the Message Passing Protocol, see link below. -

- -
- -

Members

- -
namespace tbb {
-namespace flow {
- 
-template< typename T, typename A = cache_aligned_allocator<T> >
-class sequencer_node :
-  public queue_node<T> {
-public:
-    template< typename Sequencer >
-    sequencer_node( graph &g, const Sequencer &s );
-    sequencer_node( const sequencer_node &src );
- 
-    // receiver<T>
-    typedef T input_type;
-    typedef sender<input_type> predecessor_type;
-    bool try_put( const input_type &v );
-    bool register_predecessor( predecessor_type &p );
-    bool remove_predecessor( predecessor_type &p );
- 
-    // sender<T>
-    typedef T output_type;
-    typedef receiver<output_type> successor_type;
-    bool register_successor( successor_type &r );
-    bool remove_successor( successor_type &r );
-    bool try_get( output_type &v );
-    bool try_reserve( output_type &v );
-    bool try_release( );
-    bool try_consume( );
-};
- 
-}
-}
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
template<typename Sequencer> - sequencer_node( graph& g, const Sequencer &s ) - -

Constructs an empty - sequencer_node that belongs to the - graph g and uses - s to compute sequence numbers for items. -

- -

- Caution

-

The Sequencer function object must not throw an exception. -

- -
-
sequencer_node( const - sequencer_node &src ) - -

Constructs an empty - sequencer_node that belongs to the same - graph g as - src and will use a copy of the - Sequencer s used to construct - src. The list of predecessors, the list of - successors and the messages in the buffer are NOT copied. -

- -

- Caution

-

The new sequencer object is copy constructed from a copy - of the original sequencer object provided to - src at its construction. Therefore - changes made to member variables in - src's object will not affect the - sequencer of the new - sequencer_node. -

- -
-
bool try_put( const input_type - &v ) - -

Adds - v to the - sequencer_node. If - v's sequence number is the next item in - the sequence, a task is spawned to forward the item to a successor. -

- -

Returns: - true -

- -
bool register_predecessor( - predecessor_type &p ) - -

Never rejects puts and therefore does not need to maintain a - list of predecessors. -

- -

Returns: - false -

- -
bool remove_predecessor( - predecessor_type &p ) - -

Never rejects puts and therefore does not need to maintain a - list of predecessors. -

- -

Returns: - false -

- -
bool register_successor( - successor_type &r ) - -

Adds - r to the set of successors. -

- -

Returns: - true -

- -
bool remove_successor( - successor_type &r ) - -

Removes - r from the set of successors. -

- -

Returns: - true -

- -
bool try_get( output_type &v - ) - -

Returns: - true if the next item in the sequence is - available in the - sequencer_node. If so, it is removed from - the node and assigned to - v. Returns - false if the next item in sequencer order - is not available or if the node is reserved. -

- -
bool try_reserve( output_type - &v ) - -

If the call returns - true, the node is reserved and will - forward no more messages until the reservation has been released or consumed. -

- -

Returns: - true if the next item in sequencer order - is available in the - sequencer_node. If so, the item is - assigned to - v, but is not removed from the - sequencer_node. Returns - false if the next item in sequencer order - is not available or if the node is reserved. -

- -
bool try_release( ) - -

Releases the reservation on the node. The item that was - returned in the last successful call to - try_reserve remains in the - sequencer_node. -

- -

Returns: - true if the buffer is currently reserved - and - false otherwise. -

- -
bool try_consume( ) - -

Releases the reservation on the node. The item that was - returned in the last successful call to - try_reserve is popped from the front of - the queue. -

- -

Returns: - true if the buffer is currently reserved - and - false otherwise. -

- -
-
- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/source_node_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/source_node_cls.htm deleted file mode 100644 index e9ff60017..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/source_node_cls.htm +++ /dev/null @@ -1,477 +0,0 @@ - - - - - - - - - - - - - - - - - - - -source_node Class - - - - - - - - - -

source_node Class

- - -
-

Summary

- -

A template class that is both a - graph_node and a - sender<Output>. This node can have no - predecessors. It executes a user-provided - body function object to generate messages that are - broadcast to all successors. It is a serial node and will never call its - body concurrently. It is able to buffer a single item. - If no successor accepts an item that it has generated, the message is buffered - and will be provided to successors before a new item is generated. -

- -
- -

Syntax

- -
template < typename Output > class source_node;
-
- -

Header

- -
#include "tbb/flow_graph.h"
-
- -

Description

- -

This type of node generates messages of type - Output by invoking the user-provided - body and broadcasts the result to all of its - successors. -

- -

A - source_node is a serial node. Calls to - body will never be made concurrently. -

- -

A - source_node will continue to invoke - body and broadcast messages until the - body returns - false or it has no valid successors. A message may - be generated and then rejected by all successors. In that case, the message is - buffered and will be the next message sent once a successor is added to the - node or - try_get is called. Calls to - try_get will return a buffer message if available or - will invoke - body to attempt to generate a new message. A call to - - body is made only when the internal buffer is empty. - -

- -

Rejection of messages by successors is handled using the protocol in - the Message Passing Protocol, see link below. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
source_node<Output> Body Concept
-

Pseudo-Signature -

- -
-

Semantics -

- -
-

-

B::B( const B& )
-

- -
-

Copy constructor. -

- -
-

-

B::~B()
-

- -
-

Destructor. -

- -
-

-

void operator=( const B& )
-

- -
-

Assignment. The return type - void in the pseudo-signature denotes that - operator= is not required to return a value. - The actual - operator= can return a value, which will be - ignored. -

- -
-

-

bool B::operator() (Output &v)
-

- -
-

Returns - true when it has assigned a new value to - v. Returns - false when no new values may be generated. -

- -
-
- -

- Caution

-

The body object passed to a - source_node is copied. Therefore updates to member - variables will not affect the original object used to construct the node. If - the state held within a body object must be inspected from outside of the node, - the - copy_body function can be used to obtain an - updated copy. -

- -
-

- Note

-

The body object may throw or cancel its enclosing graph. See - task_group_context and Exceptions sections for a description. -

- -

Output must be copy-constructible and assignable. - -

- -
-
- -

Members

- -
namespace tbb {
-namespace flow {
- 
-template < typename Output >
-class source_node : public graph_node, public sender< Output > {
-public:
-    typedef Output output_type;
-    typedef receiver< output_type > successor_type;
- 
-    template< typename Body >
-    source_node( graph &g, Body body, bool is_active = true );
-    source_node( const source_node &src );
-    ~source_node();
- 
-    void activate();
-    bool register_successor( successor_type &r );
-    bool remove_successor( successor_type &r );
-    bool try_get( output_type &v );
-    bool try_reserve( output_type &v );
-    bool try_release( );
-    bool try_consume( );
-};
- 
-}
-}
- -
The following table provides additional information on the - members of this class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
template< typename Body - >source_node( graph &g, Body body, bool is_active=true ) - -

Constructs a - source_node that will invoke - body. By default the node is created in - the active state, that is, it will begin generating messages immediately. If - is_active is - false, messages will not be generated - until a call to - activate is made. -

- -
source_node( const source_node - &src ) - -

Constructs a - source_node that has the same initial - state that - src had when it was constructed. The - source_node that is constructed will have - a reference to the same - graph object as - src, will have a copy of the initial body - used by - src, and have the same initial active - state as - src. The predecessors and successors of - src will not be copied. -

- -

- Caution

-

The new body object is copy constructed from a copy of - the original body provided to - src at its construction. Therefore - changes made to member variables in - src's body after the construction of - src will not affect the body of the new - source_node. -

- -
-
void activate() - -

Sets the - source_node to the active state, allowing - it to begin generating messages. -

- -
bool register_successor( - successor_type &r ) - -

Adds - r to the set of successors. -

- -

Returns: - true -

- -
bool remove_successor( - successor_type &r ) - -

Removes - r from the set of successors. -

- -

Returns: - true -

- -
bool try_get( output_type &v - ) - -

Will copy the buffered message into - v if available or will invoke - body to attempt to generate a new message - that will be copied into - v. -

- -

Returns:true if a message is - copied to v. - false otherwise. -

- -
bool try_reserve( output_type - &v ) - -

Reserves the - source_node if possible. If a message can - be buffered and the node is not already reserved, the node is reserved for the - caller, and the value is copied into - v. -

- -

Returns: - true if the node is reserved for the - caller. - false otherwise. -

- -
bool try_release( ) - -

Releases any reservation held on the - source_node. The message held in the - internal buffer is retained. -

- -

Returns: - true -

- -
bool try_consume( ) - -

Releases any reservation held on the - source_node and clears the internal - buffer. -

- -

Returns: - true -

- -
-
- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/split_node_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/split_node_cls.htm deleted file mode 100644 index b697e4344..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/split_node_cls.htm +++ /dev/null @@ -1,292 +0,0 @@ - - - - - - - - - - - - - - -split_node Template Class - - - - - - - - - - - - - - -

split_node Template Class

- - -
-

Summary

- -

A template class that is a - receiver<TupleType> and has a - tuple of - sender< tuple_element< i, - TupleType >::type > output ports; where i is the index in the - tuple. A - split_node sends each - element of the incoming tuple to the output port that matches the element's - index in the incoming tuple. This node has unlimited concurrency. -

- -
- -

Syntax

- -
template < typename TupleType >
- class split_node;
-
- -

Header

- -
#include "tbb/flow_graph.h"
-
- -

Description

- -

This node receives a tuple at its single input port - and generates a message from each element of the tuple, passing each to the - corresponding output port. -

- -

A - split_node has - unlimited concurrency, no buffering, and behaves as a - broadcast_node with - multiple output ports. -

- -
- -

Example

- -

The example below shows a - split_node that - separates a stream of tuples of integers, placing each element of the tuple in - the appropriate output queue. -

- -

The output ports of the - split_node can be - connected to other graph nodes using the - make_edge method or by - using - register_successor: -

- -
#include "tbb/flow_graph.h"
-using namespace tbb::flow;
-
-int main() {
-  graph g;
-
-  queue_node<int> first_queue(g);
-  queue_node<int> second_queue(g);
-  split_node< flow::tuple<int,int> > my_split_node(g);
-  output_port<0>(my_split_node).register_successor(first_queue);
-  make_edge(output_port<1>(my_split_node), second_queue);
-
-  for(int i = 0; i < 1000; ++i) {
-    node1.try_put(int_tuple_type(2*i,2*i+1));
-  }
-  g.wait_for_all();
- }
-
- -

Members

- -
namespace tbb {
-  template < typename TupleType >
-    class split_node : public graph_node, public receiver<TupleType>
-  {
-  public:
-
-    split_node( graph &g );
-    split_node( const split_node &other);
-    ~split_node();
-
-    // receiver< TupleType >
-    typedef TupleType input_type;
-    typedef sender<input_type> predecessor_type;
-    bool try_put( const input_type &v );
-    bool register_predecessor( predecessor_type &p );
-    bool remove_predecessor( predecessor_type &p );
-
-    typedef implementation-dependent output_ports_type;
-    output_ports_type& output_ports();
-  };
-}
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
- split_node( graph &g ) - -

Constructs a - split_node registered with graph - g. -

- -
- split_node( const split_node &other) - -

Constructs a - split_node that has the same initial state - that - other had when it was constructed. The - split_node that is constructed will have a - reference to the same - graph object as - other. The predecessors and successors of - other will not be copied. -

- -
- ~split_node() - -

Destructor -

- -
- bool try_put( const input_type &v ) - -

Broadcasts each element of the incoming tuple to the nodes - connected to the - split_node's output ports. The element at - index - i of - vi will be broadcast through the - ith output port. -

- -

Returns: - true -

- -
bool register_predecessor( - predecessor_type &p ) - -

Adds - p to the set of predecessors. -

- -

Returns: - true -

- -
bool remove_predecessor( - predecessor_type &p ) - -

Removes - p from the set of predecessors. -

- -

Returns: - true -

- -
output_ports_type& - output_ports(); - -

Returns: a tuple of output ports. -

- -
-
- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/write_once_node_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/write_once_node_cls.htm deleted file mode 100644 index 13a7ce2fc..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/flow_graph/write_once_node_cls.htm +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - -write_once_node Template Class - - - - - - - - - -

write_once_node Template Class

- - -
-

Summary

- -

A template class that is a - graph_node, - receiver<Input> and - sender<Output>. A - write_once_node represents a buffer of a single item - that cannot be over-written. The first put to the node sets the value. The - value may be cleared explicitly, after which a new value may be set. Gets from - the node are non-destructive. -

- -

Rejection of messages by successors is handled using the protocol in - the Message Passing Protocol, see link below. -

- -

T must be copy-constructible and assignable -

- -
- -

Syntax

- -
template < typename T > class write_once_node;
-
- -

Header

- -
#include "tbb/flow_graph.h"
-
- -

Members

- -
namespace tbb {
-namespace flow {
- 
-template< typename T >
-class write_once_node :
-  public graph_node, public receiver<T>,
-  public sender<T> {
-public:
-    write_once_node( graph &g );
-    write_once_node( const write_once_node &src );
- 
-    // receiver<T>
-    typedef T input_type;
-    typedef sender<input_type> predecessor_type;
-    bool try_put( const input_type &v );
-    bool register_predecessor( predecessor_type &p );
-    bool remove_predecessor( predecessor_type &p );
- 
-    // sender<T>
-    typedef T output_type;
-    typedef receiver<output_type> successor_type;
-    bool register_successor( successor_type &r );
-    bool remove_successor( successor_type &r );
-    bool try_get( output_type &v );
-    bool try_reserve( output_type &v );
-    bool try_release( );
-    bool try_consume( );
- 
-    bool is_valid( );
-    void clear( );
-};
- 
-}
-}
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
write_once_node( graph &g - ) - -

Constructs an object of type - write_once_node that belongs to the - graph g, with an invalid internal buffer - item. -

- -
write_once_node( const - write_once_node &src ) - -

Constructs an object of type - write_once_node with an invalid internal - buffer item. The buffered value and list of successors is NOT copied from - src. -

- -
bool try_put( const input_type - &v ) - -

Stores v in the internal single item - buffer if it does not already contain a valid value. If a new value is set, it - calls - try_put(v) on all successors. -

- -

Returns: - true -

- -
bool register_predecessor( - predecessor_type &p ) - -

Never rejects puts and therefore does not need to maintain a - list of predecessors. -

- -

Returns: - false -

- -
bool remove_predecessor( - predecessor_type &p ) - -

Never rejects puts and therefore does not need to maintain a - list of predecessors. -

- -

Returns: - false -

- -
bool register_successor( - successor_type &r ) - -

Adds - r to the set of successors. If a valid - item - v is held in the buffer, a task is - spawned to call - r.try_put(v). -

- -

Returns: - true -

- -
bool remove_successor( - successor_type &r ) - -

Removes - r from the set of successors. -

- -

Returns: - true -

- -
bool try_get( output_type &v - ) - -

If the internal buffer is valid, assigns the value to - v. -

- -

Returns: - true if - v is assigned to. - false if - v is not assigned to. -

- -
bool try_reserve( output_type - &v ) - -

Does not support reservations. -

- -

Returns: - false -

- -
bool try_release( ) - -

Does not support reservations. -

- -

Returns: - false -

- -
bool try_consume( ) - -

Does not support reservations. -

- -

Returns: - false -

- -
bool is_valid( ) - -

Returns: - true if the buffer holds a valid value, - otherwise returns - false. -

- -
void clear( ) - -

Invalidates the value held in the buffer. -

- -
-
- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/general_conventions.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/general_conventions.htm deleted file mode 100644 index ce5dd2376..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/general_conventions.htm +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - - - - - - - -General Conventions - - - - - - - - - - - - - - -

General Conventions

- - -
-
-

This section describes conventions used in this - document. -

- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/general_conventions/identifiers.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/general_conventions/identifiers.htm deleted file mode 100644 index 47e20524d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/general_conventions/identifiers.htm +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - -Identifiers - - - - - - - - - - - - - - -

Identifiers

- - -
-
-

This section describes the identifier conventions used by Intel® Threading Building Blocks.

-
- -

Case

-

The identifier convention in the library follows the style in the ISO C++ standard library. Identifiers are written in underscore_style, and concepts in PascalCase.

-
- -

Reserved Identifier Prefixes

-

The library reserves the prefix __TBB for internal identifiers and macros that should never be directly referenced by your code.

-
- - -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/general_conventions/namespaces.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/general_conventions/namespaces.htm deleted file mode 100644 index 5a6231f3f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/general_conventions/namespaces.htm +++ /dev/null @@ -1,287 +0,0 @@ - - - - - - - - - - - - - -Namespaces - - - - - - - - - - - - - - -

Namespaces

- - -
-

This section describes the library's namespace conventions. -

- -

tbb Namespace

- -

Namespace - tbb contains public identifiers defined by the library - that you can reference in your program. -

- -
- -

tbb::flow - Namespace

- -

Namespace - tbb::flow contains public identifiers defined by the - library that you can reference in your program. -

- -

related to the flow graph Community Preview Feature. See - Flow Graph for more information . -

- -
- -

tbb::interfacex - Namespace

- -

Namespaces of the form - tbb::interfacex define public identifiers that - the library injects into namespace - tbb. The numeral - x corresponds to an internal version number - that serves to prevent accidental linkage of incompatible definitions. Your - code should never directly reference namespaces prefixed with - tbb::interfacex. Instead, reference names via - namespace - tbb. -

- -

For example the header - tbb/concurrent_hash_map.h defines the template - concurrent_hashmap<Key,T> as - tbb::version4::concurrent_hashmap<Key,T> and - employs a - using directive to inject it into namespace - tbb. Your source code should reference it as - tbb::concurrent_hashmap<Key,T>. -

- -
- -

tbb::internal - Namespace

- -

Namespace - tbb::internal serves a role similar to - tbb::interfacex. It is retained for backwards - compatibility with older versions of the library. Your code should never - directly reference namespace - tbb::internal. Indirect reference via a public - typedef provided by the header files is permitted. -

- -
- -

tbb::deprecated - Namespace

- -

The library uses the namespace - tbb::deprecated for deprecated identifiers that have - different default meanings in namespace - tbb. Compiling with - TBB_DEPRECATED=1 causes such identifiers to replace - their counterpart in namespace tbb. -

- -

For example, - tbb::concurrent_queue underwent changes in - Intel® Threading Building Blocks (Intel® TBB) 2.2 - that split its functionality into - tbb::concurrent_queue and - tbb::concurrent_bounded_queue and changed the name of - some methods. For sake of legacy code, the old Intel® TBB 2.1 - functionality is retained in - tbb::deprecated::concurrent_queue, which is injected - into namespace tbb when compiled with - TBB_DEPRECATED=1. -

- -
- -

tbb::strict_ppl - Namespace

- -

The library uses the namespace - tbb::strict_ppl for identifiers that are put in - namespace - Concurrency when tbb/compat/ppl.h is - included. -

- -
- -

std Namespace

- -

The library implements some C++11 features in - namespace - std. The library version can be used by including the - corresponding header in the following table. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C++11 Features Optonally Defined - by Intel® TBB.
-

Header -

- -
-

Identifiers Added to - std:: -

- -
-

Section -

- -
-

tbb/compat/condition_variable -

- -
-

defer_lock_t -

- -

try_to_lock_t -

- -

adopt_lock_t -

- -

defer_lock -

- -

try_to_lock -

- -

adopt_lock -

- -

lock_guard -

- -

unique_lock -

- -

swap -

- -

condition_variable -

- -

cv_status -

- -

timeout -

- -

no_timeout -

- -
-

C++11 - Synchronization -

- -
-

tbb/compat/thread -

- -
-

thread -

- -

this_thread -

- -
-

- thread - Class -

- -
-
- -

To prevent accidental linkage with other - implementations of these C++ library features, the library defines the - identifiers in other namespaces and injects them into namespace - std::.  This way the “mangled - name” seen by the linker will differ from the “mangled - name” generated by other implementations. -

- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/general_conventions/terminology.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/general_conventions/terminology.htm deleted file mode 100644 index 89f17d371..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/general_conventions/terminology.htm +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - -Terminology - - - - - - - - - - - - - - -

Terminology

- - -
-

This section describes terminology specific to Intel® Threading Building Blocks (Intel® TBB).

-
- -

Concept

-

A concept is a set of requirements on a type. The requirements may be syntactic or semantic. For example, the concept of “sortable” could be defined as a set of requirements that enable an array to be sorted. A type T would be sortable if:

- -
    -
  • x < y returns a boolean value, and represents a total order on items of type T.

    -
  • - -
  • swap(x,y) swaps items x and y

    -
  • - -
- -

You can write a sorting template function in C++ that sorts an array of any type that is sortable.

- -

Two approaches for defining concepts are valid expressions and pseudo-signatures. The ISO C++ standard follows the valid expressions approach, which shows what the usage pattern looks like for a concept. It has the drawback of relegating important details to notational conventions. This document uses pseudo-signatures, because they are concise, and can be cut-and-pasted for an initial implementation.

- -

For example, the table below shows pseudo-signatures for a sortable type T:

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - -
Pseudo-Signatures for Example Concept - “sortable”

Pseudo-Signature

-

Semantics

-

bool operator<(const T& x, const T& y)

-

Compare x and y.

-

void swap(T& x, T& y)

-

Swap x and y.

-
-
- -

A real signature may differ from the pseudo-signature that it implements in ways where implicit conversions would deal with the difference. For an example type U, the real signature that implements operator< in the table above can be expressed as int operator<( U x, U y ), because C++ permits implicit conversion from int to bool, and implicit conversion from U to (const U&). Similarly, the real signature bool operator<( U& x, U& y ) is acceptable because C++ permits implicit addition of a const qualifier to a reference type.

- -
- - -

Model

-

A type models a concept if it meets the requirements of the concept. For example, type int models the sortable concept in the above table if there exists a function swap(x,y) that swaps two int values x and y. The other requirement for sortable, specifically x<y, is already met by the built-in operator< on type int.

-
- - -

CopyConstructible

-

The library sometimes requires that a type model the CopyConstructible concept, which is defined by the ISO C++ standard. The table below shows the requirements for CopyConstructible in pseudo-signature form.

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CopyConstructible Requirements

Pseudo-Signature

-

Semantics

-

T( const T& )

-

Construct copy of const T.

-

~T()

-

Destructor.

-

T* operator&()

-

Take address.

-

const T* operator&() const

-

Take address of const T.

-
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/general_conventions/thread_safety.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/general_conventions/thread_safety.htm deleted file mode 100644 index cc9dc50a1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/general_conventions/thread_safety.htm +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - -Thread Safety - - - - - - - - - - - - - - -

Thread Safety

- - -
-

Unless otherwise stated, the thread safety rules for the library are as follows:

- -
    -
  • Two threads can invoke a method or function concurrently on different objects, but not the same object.

    -
  • - -
  • It is unsafe for two threads to invoke concurrently methods or functions on the same object.

    -
  • - -
- -

Descriptions of the classes note departures from this convention. For example, the concurrent containers are more liberal. By their nature, they do permit some concurrent operations on the same container object.

-
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/introducing.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/introducing.htm deleted file mode 100644 index c3e9e2c95..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/introducing.htm +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - - -Introducing Intel® Threading Building Blocks - - - - - - - - - - - - - - -

Introducing Intel® Threading Building Blocks

- - -
-
-

Intel® Threading Building Blocks (Intel® TBB) is a - library that supports scalable parallel programming using standard ISO C++ - code. It does not require special languages or compilers. It is designed to - promote scalable data parallel programming. Additionally, it fully supports - nested parallelism, so you can build larger parallel components from smaller - parallel components. To use the library, you specify tasks, not threads, and - let the library map tasks onto threads in an efficient manner. -

- -

Many of the library interfaces employ generic - programming, in which interfaces are defined by requirements on types and not - specific types. The C++ Standard Template Library (STL) is an example of - generic programming. Generic programming enables Intel® Threading Building - Blocks to be flexible yet efficient. The generic interfaces enable you to - customize components to your specific needs. -

- -

The net result is that Intel® Threading Building - Blocks enables you to specify parallelism far more conveniently than using raw - threads, and at the same time can improve performance. -

- -

This document is a reference manual. It is - organized for looking up details about syntax and semantics. You should first - read the - Intel® Threading Building Blocks Getting Started Guide and the - Intel® Threading Building Blocks Tutorial to learn how to use - the library effectively. The - Intel® Threading Building Blocks Design Patterns document is - another useful resource. -

- -

- Tip

-

Even experienced parallel programmers should read - the - Intel® Threading Building Blocks Tutorial before using this - reference guide because Intel® Threading Building Blocks uses a surprising - recursive model of parallelism and generic algorithms. -

- -
-
- -

- -

- - - - - - - - - - - - - - - - -
-

Optimization Notice -

- -
- Intel's compilers may or may not optimize to the same degree for non-Intel - microprocessors for optimizations that are not unique to Intel microprocessors. - These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other - optimizations. Intel does not guarantee the availability, functionality, or - effectiveness of any optimization on microprocessors not manufactured by Intel. - Microprocessor-dependent optimizations in this product are intended for use - with Intel microprocessors. Certain optimizations not specific to Intel - microarchitecture are reserved for Intel microprocessors. Please refer to the - applicable product User and Reference Guides for more information regarding the - specific instruction sets covered by this notice. -

Notice revision #20110804 -

- -
-
- -

- -
- - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/memory_allocation.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/memory_allocation.htm deleted file mode 100644 index b2ca2bafb..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/memory_allocation.htm +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - -Memory Allocation - - - - - - - - - -

Memory Allocation

- - -
-
-

This section describes classes related to memory allocation.

-
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/memory_allocation/aligned_space_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/memory_allocation/aligned_space_cls.htm deleted file mode 100644 index 77005b37d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/memory_allocation/aligned_space_cls.htm +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - - - - - - - - -aligned_space Template Class - - - - - - - - - -

aligned_space Template Class

- - -
-

Summary

- -

Uninitialized memory space for an array of a given - type. -

- -
- -

Syntax

- -
template<typename T, size_t N> class aligned_space;
-
- -

Header

- -
#include "tbb/aligned_space.h"
-
- -

Description

- -

An - aligned_space occupies enough memory and is - sufficiently aligned to hold an array - T[N]. The client is responsible for - initializing or destroying the objects. An - aligned_space is typically used as a local variable or - field in scenarios where a block of fixed-length uninitialized memory is - needed. -

- -
- -

Members

- -
        namespace tbb {
-        template<typename T, size_t N>
-        class aligned_space {
-        public:
-            aligned_space();
-            ~aligned_space();
-            T* begin();
-            T* end();
-        };
-    } 
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
aligned_space() - -

No effect. Does not invoke constructors. -

- -
~aligned_space() - -

No effect. Does not invoke constructors. -

- -
T* begin() - -

Returns: Pointer to beginning of - storage. -

- -
T* end() - -

Returns: - begin()+N -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/memory_allocation/allocator_concept.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/memory_allocation/allocator_concept.htm deleted file mode 100644 index c427b1e0e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/memory_allocation/allocator_concept.htm +++ /dev/null @@ -1,232 +0,0 @@ - - - - - - - - - - - - - - - - - -Allocator Concept - - - - - - - - - -

Allocator Concept

- - -
-
-

The allocator concept for allocators in Intel® Threading Building Blocks is similar to the "Allocator requirements" in Table 32 of the ISO C++ Standard, but with further guarantees required by the ISO C++ Standard for use with ISO C++ containers. The table below summarizes the allocator concept. Here, A and B represent instances of the allocator class.

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Allocator Concept

Pseudo-Signature

-

Semantics

-
typedef T* A::pointer

Pointer to T.

-
typedef const T* A::const_pointer

Pointer to const T.

-
typedef T& A::reference

Reference to T.

-
typedef const T& A::const_reference

Reference to const T.

-
typedef T A::value_type

Type of value to be allocated.

-
typedef size_t A::size_type

Type for representing number of values.

-
typedef ptrdiff_t A::difference_type

Type for representing pointer difference.

-
template<typename U> struct rebind { typedef A<U> A::other;};

Rebind to a different type U

-
A() throw()

Default constructor.

-
A( const A& ) throw()

Copy constructor.

-
template<typename U> A( const A& )

Rebinding constructor.

-
~A() throw()

Destructor.

-
T* A::address( T& x ) const

Take address.

-
const T* A::const_address( const T& x ) const

Take const address.

-
T* A::allocate( size_type n, const void* hint=0 )

Allocate space for n values.

-
void A::deallocate( T* p, size_t  n )

Deallocate n values.

-
size_type A::max_size() const throw()

Maximum plausible argument to method allocate.

-
void A::construct( T* p, const T& value )

new(p) T(value)

-
- void A::destroy( T* p ) - - p->T::~T() -
bool operator==( const A&, const B& )

Return true.

-
bool operator!=( const A&, const B& )

Return false.

-
-
- -
- -

Model Types

- -

Template classes: tbb_allocator, - scalable_allocator, and cached_aligned_allocator, and - zero_allocator model the Allocator concept.

-
- -
- - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/memory_allocation/cache_aligned_allocator_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/memory_allocation/cache_aligned_allocator_cls.htm deleted file mode 100644 index 6667f6b65..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/memory_allocation/cache_aligned_allocator_cls.htm +++ /dev/null @@ -1,231 +0,0 @@ - - - - - - - - - - - - - - -cache_aligned_allocator Template Class - - - - - - - - - -

cache_aligned_allocator Template Class

- - -
-

Summary

- -

Template class for allocating memory in way that - avoids false sharing. -

- -
- -

Syntax

- -
template<typename T> class cache_aligned_allocator;
-
- -

Header

- -
#include "tbb/cache_aligned_allocator.h"
-
- -

Description

- -

A - cache_aligned_allocator allocates memory on cache line - boundaries, in order to avoid false sharing. False sharing is when logically - distinct items occupy the same cache line, which can hurt performance if - multiple threads attempt to access the different items simultaneously. Even - though the items are logically separate, the processor hardware may have to - transfer the cache line between the processors as if they were sharing a - location. The net result can be much more memory traffic than if the logically - distinct items were on different cache lines. -

- -

A - cache_aligned_allocator models the Allocator Concept. - It can be used to replace a - std::allocator. Used judiciously, - cache_aligned_allocator can improve performance by - reducing false sharing. However, it is sometimes an inappropriate replacement, - because the benefit of allocating on a cache line comes at the price that - cache_aligned_allocator implicitly adds pad memory. - The padding is typically 128 bytes. Hence allocating many small objects with - cache_aligned_allocator may increase memory usage. -

- -
- -

Members

- -
        namespace tbb {
-         
-            template<typename T>
-            class cache_aligned_allocator {
-            public:
-                typedef T* pointer;
-                typedef const T* const_pointer;
-                typedef T& reference;
-                typedef const T& const_reference;
-                typedef T value_type;
-                typedef size_t size_type;
-                typedef ptrdiff_t difference_type;
-                template<typename U> struct rebind {
-                    typedef cache_aligned_allocator<U> other;
-                };
-         
-            #if _WIN64
-                char* _Charalloc( size_type size );
-            #endif /* _WIN64 */
-         
-                cache_aligned_allocator() throw();
-                cache_aligned_allocator( const cache_aligned_allocator& ) throw();
-                template<typename U> 
-                cache_aligned_allocator( const cache_aligned_allocator<U>& ) throw();
-                ~cache_aligned_allocator();
-         
-                pointer address(reference x) const;
-                const_pointer address(const_reference x) const;
-         
-                pointer allocate( size_type n, const void* hint=0 );
-                void deallocate( pointer p, size_type );
-                size_type max_size() const throw();
-         
-                void construct( pointer p, const T& value );
-                void destroy( pointer p );
-            };
-         
-            template<>
-            class cache_aligned_allocator<void> {
-            public:
-                typedef void* pointer;
-                typedef const void* const_pointer;
-                typedef void value_type;
-                template<typename U> struct rebind {
-                    typedef cache_aligned_allocator<U> other;
-                };
-            };
-         
-            template<typename T, typename U>
-            bool operator==( const cache_aligned_allocator<T>&, 
-                             const cache_aligned_allocator<U>& );
-         
-            template<typename T, typename U>
-            bool operator!=( const cache_aligned_allocator<T>&, 
-                             const cache_aligned_allocator<U>& );
-         
-        } 
-

For sake of brevity, the following table describes - only those methods that differ significantly from the corresponding methods of - std::allocator. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
pointer allocate( size_type n, - const void* hint=0 ) - -

Allocates - size bytes of memory on a cache-line boundary. The - allocation may include extra hidden padding. -

- -

Returns: Pointer to the allocated memory. -

- -
void deallocate( pointer p, - size_type n ) - -

Requirements: Pointer - p must be the result of method - allocate(n). The memory must not have been - already deallocated. -

- -

Effects: Deallocates memory pointed to by - p. The deallocation also deallocates any - extra hidden padding. -

- -
char* _Charalloc( size_type size - ) - -

- Note

-

This method is provided only on 64-bit Windows* OS - platforms. It is a non-ISO method that exists for backwards compatibility with - versions of Window's containers that seem to require it. Please do not use it - directly. -

- -
-
-
- -
- -
- - - -
-

See Also

- -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/memory_allocation/scalable_allocator_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/memory_allocation/scalable_allocator_cls.htm deleted file mode 100644 index cec95f44d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/memory_allocation/scalable_allocator_cls.htm +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - - - - - - -scalable_allocator Template Class - - - - - - - - - -

scalable_allocator Template Class

- - -
-

Summary

- -

Template class for scalable memory allocation.

- -
-

Syntax

-
template<typename T> class scalable_allocator;
-
-

Header

-
#include "tbb/scalable_allocator.h"
-
-

Description

-

A scalable_allocator allocates and frees memory - in a way that scales with the number of processors. A - scalable_allocator models the Allocator Concept. - Using a scalable_allocator in place of - std::allocator may improve program performance. Memory - allocated by a scalable_allocator should be freed by a - scalable_allocator, not by a - std::allocator.

- -

- Caution

The scalable_allocator requires that the tbb malloc library be available. If the library is missing, calls to the scalable allocator fail. In contrast, tbb_allocator falls back on malloc and free if the tbbmalloc library is missing.

-
-
-

Members

-

See Allocator concept.

- -
-

Acknowledgement

-

The scalable memory allocator incorporates McRT technology developed by Intel's PSL CTG team.

-
- -
- - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/memory_allocation/scalable_allocator_cls/c_interface_to_scalable_allocator.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/memory_allocation/scalable_allocator_cls/c_interface_to_scalable_allocator.htm deleted file mode 100644 index 923737367..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/memory_allocation/scalable_allocator_cls/c_interface_to_scalable_allocator.htm +++ /dev/null @@ -1,436 +0,0 @@ - - - - - - - - - - - - - -C Interface to Scalable Allocator - - - - - - - - - -

C Interface to Scalable Allocator

- - -
-

Summary

- -

Low level interface for scalable memory allocation. - -

- -
- -

Syntax

- -
        extern "C" {
-            // Scalable analogs of C memory allocator
-            void* scalable_malloc( size_t size );
-            void  scalable_free( void* ptr );
-            void* scalable_calloc( size_t nobj, size_t size );
-            void* scalable_realloc( void* ptr, size_t size );
-         
-            // Analog of _msize/malloc_size/malloc_usable_size.
-            size_t scalable_msize( void* ptr );
-         
-            // Scalable analog of posix_memalign
-            int scalable_posix_memalign( void** memptr, size_t alignment, 
-                                         size_t size );
-         
-            // Aligned allocation
-            void* scalable_aligned_malloc( size_t size, 
-                                           size_t alignment);
-            void scalable_aligned_free( void* ptr ); 
-            void* scalable_aligned_realloc( void* ptr, size_t size, 
-                                            size_t alignment );
-
-            // Return values for scalable_allocation_* functions
-            typedef enum {
-                TBBMALLOC_OK,
-                TBBMALLOC_INVALID_PARAM,
-                TBBMALLOC_UNSUPPORTED,
-                TBBMALLOC_NO_MEMORY,
-                TBBMALLOC_NO_EFFECT
-            } ScalableAllocationResult;
-
-            typedef enum {
-                // to turn on/off the use of huge memory pages
-                TBBMALLOC_USE_HUGE_PAGES,
-                // to set a threshold for the allocator memory usage;
-                // exceeding it will forcefully clean internal memory buffers
-                TBBMALLOC_SET_SOFT_HEAP_LIMIT
-            } AllocationModeParam;
-
-            // Set allocator-specific allocation modes.
-            int scalable_allocation_mode(int param, intptr_t value);
-
-            typedef enum {
-                // Clean internal allocator buffers for all threads.
-                TBBMALLOC_CLEAN_ALL_BUFFERS,
-                // Clean internal allocator buffer for current thread only.
-                TBBMALLOC_CLEAN_THREAD_BUFFERS
-            } ScalableAllocationCmd;
-
-            // Call allocator-specific commands.
-            int scalable_allocation_command(int cmd, void *param);
-
-
-        }
-
- -

Header

- -
#include "tbb/scalable_allocator.h"
-
- -

Description

- -

These functions provide a C level interface to the - scalable allocator. With the exception of scalable_allocation_mode and - scalable_allocation_command, each routine scalable_x - behaves analogously to library function - x. The routines form the two families shown in - the table below, "C Interface to Scalable Allocator" . Storage allocated by a - scalable_x function in one family must be freed or - resized by a scalable_x function in the same family, - not by a C standard library function. Likewise storage allocated by a C - standard library function should not be freed or resized by a - scalable_x function. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C Interface to Scalable Allocator
-

Family -

- -
-

Allocation Routine -

- -
-

Deallocation Routine -

- -
-

Analogous Library -

- -
-

1 -

- -
-

scalable_malloc -

- -
-

scalable_free -

- -
-

C standard library -

- -
-

scalable_calloc -

- -
-

scalable_realloc -

- -
-

scalable_posix_memalign -

- -
-

POSIX* -

- -
-

2 -

- -
-

scalable_aligned_malloc -

- -
-

scalable_aligned_free -

- -
-

Microsoft* C run-time library -

- -
-

scalable_aligned_realloc -

- -
-
- -
- -

size_t scalable_msize( void* ptr )

- - -

Returns -

- -

The usable size of the memory block pointed to by - ptr if it was allocated by the scalable allocator. Returns zero - if - ptr does not point to such a block. -

- -
- -

int scalable_allocation_mode(int mode, - intptr_t value)

- -

- -

-

- This function may be used to adjust behavior of the scalable memory allocator. -

- -

- Returns: TBBMALLOC_OK if the operation succeeded, TBBMALLOC_INVALID_PARAM if - mode is not one of the described below, or if value - is not valid for the given mode. Other return values are possible, as described below. -

- -
- - - - - - - - - - - - - - - - - - - - - - - - - -
Parameter - Description -
TBBMALLOC_USE_HUGE_PAGES - - -

- scalable_allocation_mode(TBBMALLOC_USE_HUGE_PAGES, 1) - enables the use of huge pages by the allocator if supported for the - operating system, - scalable_allocation_mode(TBBMALLOC_USE_HUGE_PAGES, 0) - disables it. Setting TBB_MALLOC_USE_HUGE_PAGES - environment variable to 1 has the same effect as - scalable_allocation_mode(TBBMALLOC_USE_HUGE_PAGES, 1). - The mode set with scalable_allocation_mode() takes - priority over the environment variable. -

- -

- May return: TBBMALLOC_NO_EFFECT if huge pages are not supported - on the platform. -

- -
TBBMALLOC_SET_SOFT_HEAP_LIMIT - - -

- scalable_allocation_mode(TBBMALLOC_SET_SOFT_HEAP_LIMIT, size) - sets a threshold of size bytes on the amount - of memory the allocator takes from OS. Exceeding the threshold - will urge the allocator to release memory from its internal buffers; - however it does not prevent from requesting more memory if needed. -

- -
-
- -

- -
- -

int scalable_allocation_command(int cmd, - void *reserved)

- - -
-

- This function may be used to command the scalable memory allocator to perform an - action specified by the first parameter. The second parameter is reserved and - must be set to 0. -

- -

- Returns: TBBMALLOC_OK if the operation succeeded, TBBMALLOC_INVALID_PARAM if - cmd is not one of the described below, or if reserved - is not equal to 0. -

- -
- - - - - - - - - - - - - - - - - - - - - - - - - -
Parameter - Description -
TBBMALLOC_CLEAN_ALL_BUFFERS - -

- scalable_allocation_command(TBBMALLOC_CLEAN_ALL_BUFFERS, 0) - cleans internal memory buffers of the allocator, and possibly reduces memory - footprint. It may result in increased time for subsequent memory allocation - requests. The command is not designed for frequent use, and careful - evaluation of the performance impact is recommended. -

- -

- May return: TBBMALLOC_NO_EFFECT if no buffers were released. -

- -
TBBMALLOC_CLEAN_THREAD_BUFFERS - -

- scalable_allocation_command(TBBMALLOC_CLEAN_THREAD_BUFFERS, 0) - cleans internal memory buffers but only for the calling thread. It may result - in increased time for subsequent memory allocation requests; careful evaluation - of the performance impact is recommended. -

- -

- May return: TBBMALLOC_NO_EFFECT if no buffers were released. -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/memory_allocation/tbb_allocator_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/memory_allocation/tbb_allocator_cls.htm deleted file mode 100644 index 54a4df129..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/memory_allocation/tbb_allocator_cls.htm +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - -tbb_allocator Template Class - - - - - - - - - -

tbb_allocator Template Class

- - -

Summary

-

Template class for scalable memory allocation if available; possibly non-scalable otherwise.

- -
-

Syntax

-
template<typename T> class tbb_allocator
-
-

Header

-
#include "tbb/tbb_allocator.h"
-
-

Description

-

A tbb_allocator allocates and frees memory via the Intel® Threading Building Blocks (Intel® TBB) malloc library if it is available, otherwise it reverts to using malloc and free.

- -

- Tip

Set the environment variable TBB_VERSION to 1 to find out if the Intel® TBB malloc library is being used.

-
-

 

-
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/memory_allocation/zero_allocator.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/memory_allocation/zero_allocator.htm deleted file mode 100644 index 32fc24324..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/memory_allocation/zero_allocator.htm +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - - -zero_allocator - - - - - - - - - -

zero_allocator

- - -

Summary

-

Template class for allocator that returns zeroed memory.

- -
-

Syntax

-
template <typename T, 
-          template<typename U> class Alloc = tbb_allocator> 
-class zero_allocator: public Alloc<T>;
-
-
-

Header

-
#include "tbb/tbb_allocator.h"
-
- -

Description

- -

A zero_allocator allocates zeroed memory. A - zero_allocator<T,A> can be instantiated for any - class A that models the Allocator concept. The default for A is - tbb_allocator. A zero_allocator forwards - allocation requests to A and zeros the allocation before returning it.

- -
-

Members

-
namespace tbb {
-    template <typename T, template<typename U> class Alloc = tbb_allocator>
-    class zero_allocator : public Alloc<T> {
-    public:
-        typedef Alloc<T> base_allocator_type;
-        typedef typename base_allocator_type::value_type 
-                                              value_type;
-        typedef typename base_allocator_type::pointer pointer;
-        typedef typename base_allocator_type::const_pointer 
-                                              const_pointer;
-        typedef typename base_allocator_type::reference 
- reference;
-        typedef typename base_allocator_type::const_reference 
-                                              const_reference;
-        typedef typename base_allocator_type::size_type 
-                                              size_type;
-        typedef typename base_allocator_type::difference_type 
-                                              difference_type;
-        template<typename U> struct rebind {
-            typedef zero_allocator<U, Alloc> other;
-        };
-
-        zero_allocator() throw() { }
-        zero_allocator(const zero_allocator &a) throw();
-        template<typename U>
-        zero_allocator(const zero_allocator<U> &a) throw(); 
-
-        pointer allocate(const size_type n, const void* hint=0);
-    };
-} 
- 
-
-
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/reference.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/reference.htm deleted file mode 100644 index c3da46666..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/reference.htm +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - -Intel® Threading Building Blocks Reference Manual - - - - - - - - - -

-

Intel® Threading Building Blocks Reference Manual

- -
-

Document number: 315415-015US -

- -

Legal Information -

- -

Start - Here -

- -
- -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization.htm deleted file mode 100644 index 143627d50..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization.htm +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - - - - - - - -Synchronization - - - - - - - - - -

Synchronization

- - -
-
-

The library supports mutual exclusion and atomic operations.

-
-
- - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/atomic_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/atomic_cls.htm deleted file mode 100644 index d2feacc1d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/atomic_cls.htm +++ /dev/null @@ -1,458 +0,0 @@ - - - - - - - - - - - - - -atomic Template Class - - - - - - - - - -

atomic Template Class

- - -
-

Summary

- -

Template class for atomic operations. -

- -
- -

Syntax

- -
template<typename T> atomic;
-
- -

Header

- -
#include "tbb/atomic.h"
-
- -

Description

- -

An - atomic<T> supports atomic read, write, - fetch-and-add, fetch-and-store, and compare-and-swap. Type T may be an integral - type, enumeration type, or a pointer type. When T is a pointer type, arithmetic - operations are interpreted as pointer arithmetic. For example, if - x has type - atomic<float*> and a float occupies four bytes, - then - ++x advances - x by four bytes. Arithmetic on - atomic<T> is not allowed if - T is an enumeration type, - void*, or - bool. -

- -

Some of the methods have template method variants - that permit more selective memory fencing. On IA-32 and Intel® 64 architecture - processors, they have the same effect as the non-templated variants. On - processors with IA-64 architecture, they may improve performance by allowing - the memory subsystem more latitude on the orders of reads and write. Using them - may improve performance. The table below shows the fencing for the non-template - form. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Operation Order Implied by Non-Template - Methods
-

Kind -

- -
-

Description -

- -
-

Default For -

- -
-

acquire -

- -
-

Operations after the atomic operation never - move over it. -

- -
-

read -

- -
-

release -

- -
-

Operations before the atomic operation - never move over it. -

- -
-

write -

- -
-

sequentially consistent -

- -
-

Operations on either side never move over - it and furthermore, the sequentially consistent atomic operations have a global - order. -

- -
fetch_and_store, - fetch_and_add, compare_and_swap - -
-
- -

- Caution

-

The copy constructor for class - atomic<T> is not atomic. To atomically copy - an atomic<T>, default-construct the copy first and - assign to it. Below is an example that shows the difference. -

- -
-
      
-           atomic<T> y(x);  // Not atomic
-           atomic<T> z;
-           z=x;             // Atomic assignment
-

The copy constructor is not atomic because it is - compiler generated. In C++03 introducing any non-trivial constructors might - remove an important property of - atomic<T>: namespace scope instances are - zero-initialized before namespace scope dynamic initializers run. This property - can be essential for code executing early during program startup. -

- -

In C++03, to create an - atomic<T> with a specific value, - default-construct it first, and afterwards assign a value to it. In C++11 there - is - constexpr single argument constructor. -

- -
- -

Members

- -
namespace tbb {
-                enum memory_semantics {
-                    acquire,
-                    release
-                };
-             
-                struct atomic<T> {
-                    typedef T value_type;
-                    
-                    //C++11 specific:
-                    atomic() = default;
-                    constexpr atomic(T arg)
-                    //end of C++11 specific
-             
-                    template<memory_semantics M>
-                    value_type compare_and_swap( value_type new_value, 
-                                                 value_type comparand );
-             
-                    value_type compare_and_swap( value_type new_value, 
-                                                 value_type comparand );
-             
-                    template<memory_semantics M>
-                    value_type fetch_and_store( value_type new_value );
-             
-                    value_type fetch_and_store( value_type new_value );
-             
-                    operator value_type() const;
-             
-                    value_type operator=( value_type new_value );
-                    atomic<T>& operator=( const atomic<T>& value );
-             
-                    // The following members exist only if T is an integral 
-                    // or pointer type.
-             
-                    template<memory_semantics M>
-                    value_type fetch_and_add( value_type addend );
-             
-                    value_type fetch_and_add( value_type addend );
-             
-                    template<memory_semantics M>
-                    value_type fetch_and_increment();
-             
-                    value_type fetch_and_increment();
-             
-                    template<memory_semantics M>
-                    value_type fetch_and_decrement();
-             
-                    value_type fetch_and_decrement();
-             
-                    value_type operator+=(value_type);
-                    value_type operator-=(value_type);
-                    value_type operator++();
-                    value_type operator++(int);
-                    value_type operator--();
-                    value_type operator--(int);
-                };
-            } 
-

So that an atomic<T*> can be used like a - pointer to T, the specialization atomic<T*> also defines: -

- -
        T* operator->() const;
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
memory_semantics Enum - - -

Defines values used to select the - template variants that permit more selective control over visibility of - operations (see the table above). -

- -
atomic() = default - - -

C++11 Specific; -

- -

Default constructor generated by - compiler. This constructor behaves same as if there were no user defined - constrcutors declared at all. -

- -
constexpr atomic(value_type arg) - - -

C++11 Specific; -

- -

Initialize - *this with value of arg. If the argument is - a translation time constant, then initialization is performed during - translation time, overwise initialization is performed at run time. -

- -
value_type fetch_and_add( - value_type addend ) - -

Let - x be the value of - *this. Atomically updates - x = x + addend. -

- -

Returns: Original value of - x. -

- -
value_type - fetch_and_increment() - -

Let x be the value of - *this. Atomically updates - x = x + 1. - -

- -

Returns: Original value - of x. -

- -
value_type - fetch_and_decrement() - -

Let - x be the value of *this. Atomically - updates - x = x - 1. - -

- -

Returns: Original value - of x. -

- -
value_type - compare_and_swap -

value_type compare_and_swap( value_type - new_value, value_type comparand ) -

- -
-

Let - x be the value of - *this. Atomically compares - x with comparand, and if they are - equal, sets x=new_value. -

- -

Returns: Original value of - x. -

- -
value_type fetch_and_store( - value_type new_value ) - -

Let - x be the value of - *this. Atomically exchanges old value of - x with new_value. -

- -

Returns: Original value of - x. -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/c_11_synchronization.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/c_11_synchronization.htm deleted file mode 100644 index c4859a4c9..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/c_11_synchronization.htm +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - -C++11 Synchronization - - - - - - - - - -

C++11 Synchronization

- - -

The Intel® Threading Building Blocks (Intel® TBB) library -approximates a portion of C++11 interfaces for condition variables and scoped locking. The approximation is based on the C++11 working draft N3000. The major differences are:

- -
    -
  • The implementation uses the tbb::tick_count interface instead of the C++11 <chrono> interface.

    -
  • - -
  • The implementation throws std::runtime_error instead of a C++11 std::system_error.

    -
  • - -
  • The implementation omits or approximates features requiring C++11 language support such as constexpr or explicit operators.

    -
  • - -
  • The implementation works in conjunction with tbb::mutex wherever the C++11 specification calls for a std::mutex.

    -
  • - -
- -

See the working draft N3000 for a detailed descriptions of the members.

- -

- Caution

Implementations may change if the C++11 specification changes.

-
-

- Caution

When support for std::system_error becomes available, implementations may throw std::system_error instead of std::runtime_error.

-
-

The library defines the C++11 interfaces in namespace std, not namespace tbb, as explained in Section std Namespace.

- -
-

Header

-
#include "tbb/compat/condition_variable"
-
-

Members

-
namespace std {
-        struct defer_lock_t { }; 
-        struct try_to_lock_t { }; 
-        struct adopt_lock_t { }; 
-        const defer_lock_t defer_lock = {};
-        const try_to_lock_t try_to_lock = {};
-        const adopt_lock_t adopt_lock = {};
-     
-        template<typename M>
-        class lock_guard {
-        public:
-            typedef M mutex_type;
-            explicit lock_guard(mutex_type& m);
-            lock_guard(mutex_type& m, adopt_lock_t);
-            ~lock_guard();
-        };
-     
-        template<typename M>
-        class unique_lock: no_copy {
-        public:
-            typedef M mutex_type;
-     
-            unique_lock();
-            explicit unique_lock(mutex_type& m);
-            unique_lock(mutex_type& m, defer_lock_t);
-            unique_lock(mutex_type& m, try_to_lock_t));
-            unique_lock(mutex_type& m, adopt_lock_t);
-            unique_lock(mutex_type& m, const tick_count::interval_t &i);
-            ~unique_lock();
-     
-            void lock();
-     
-            bool try_lock();
-            bool try_lock_for( const tick_count::interval_t &i );
-     
-            void unlock();
-     
-            void swap(unique_lock& u);
-     
-            mutex_type* release();
-     
-            bool owns_lock() const;
-            operator bool() const;
-            mutex_type* mutex() const;
-        };
-     
-        template<typename M>
-        void swap(unique_lock<M>& x, unique_lock<M>& y);
-     
-        enum cv_status {no_timeout, timeout};
-     
-        class condition_variable : no_copy {
-        public:
-            condition_variable();
-            ~condition_variable();
-     
-            void notify_one();
-            void notify_all();
-     
-            void wait(unique_lock<mutex>& lock);
-     
-            template <class Predicate>
-            void wait(unique_lock<mutex>& lock, Predicate pred);
-     
-            cv_status wait_for(unique_lock<mutex>& lock, 
-                               const tick_count::interval_t& i);
-     
-            template<typename Predicate>
-            bool wait_for(unique_lock<mutex>& lock, 
-                          const tick_count::interval_t &i, 
-                          Predicate pred);
-     
-            typedef implementation-defined native_handle_type;
-            native_handle_type native_handle();
-        };
-    } // namespace std
-     
-
- - -
-

See Also

- -
- - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes.htm deleted file mode 100644 index 6927673ec..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes.htm +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - -Mutexes - - - - - - - - - -

Mutexes

- - -
-
-

Mutexes provide MUTual EXclusion of threads from sections of code.

- -

In general, strive for designs that minimize the use of explicit locking, because it can lead to serial bottlenecks. If explicitly locking is necessary, try to spread it out so that multiple threads usually do not contend to lock the same mutex.

-
- -
- - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/hardware_transactional_locking.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/hardware_transactional_locking.htm deleted file mode 100644 index 5ca3395aa..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/hardware_transactional_locking.htm +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - - - - - - - - -Speculative locking (Transactional Lock Elision) - - - - - - - - - -

Speculative locking (Transactional Lock Elision)

- - -
-
-

- On processors that support hardware transaction memory - (such as Intel® Transactional Synchronization Extensions (Intel® TSX)) - speculative mutexes work by letting multiple threads acquire the same lock, as - long as there are no "conflicts" that may generate different results than - non-speculative locking. The exact notion of a "conflict" depends on the hardware, - and typically means accessing the same cache line where one of the accesses - modifies the cache line. -

- -

- On processors that do not support hardware transactional memory, speculative mutexes - behave like their non-speculating counterparts, but possibly with worse performance. -

- -

- On Intel® processors, speculative mutexes use Intel TSX if available. - General guidance for speculative locking on such processors is: -

    -
  • The protected critical sections should not conflict at cache-line granularity.
  • - -
  • The protected critical section should be short enough to not be affected by - an interrupt or context switch.
  • - -
  • The protected critical section should not perform a system call.
  • - -
  • The protected critical section should not touch more data than fits in L1 cache.
  • - -
  • There may be a nesting limit for speculation.
  • - -
- - Careful performance comparison with a non-speculative alternative is recommended. -

- -

- For more guidance and examples about using Intel TSX effectively, see the - Intel® 64 and IA-32 Architectures Optimization Reference Manual, Chapter 12. -

- -
- - - - -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/mutex_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/mutex_cls.htm deleted file mode 100644 index 74f9b88e3..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/mutex_cls.htm +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - -mutex Class - - - - - - - - - -

mutex Class

- - -

Summary

-

Class that models Mutex Concept using underlying OS locks.

- -
-

Syntax

-
class mutex;
-
-

Header

-
#include "tbb/mutex.h"
-
-

Description

-

A mutex models the Mutex Concept. It is a wrapper around OS calls that provide mutual exclusion. The advantages of using mutex instead of the OS calls are:

- -
    -
  • Portable across all operating systems supported by Intel® Threading Building Blocks.

    -
  • - -
  • Releases the lock if an exception is thrown from the protected region of code.

    -
  • - -
- -
-

Members

-

See Mutex Concept.

-
- -
- - -
-

See Also

- -
- - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/mutex_concept.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/mutex_concept.htm deleted file mode 100644 index f69177056..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/mutex_concept.htm +++ /dev/null @@ -1,905 +0,0 @@ - - - - - - - - - - - - - - -Mutex Concept - - - - - - - - - -

Mutex Concept

- - -
-
-

The mutexes and locks here have relatively spartan interfaces that are - designed for high performance. The interfaces enforce the - scoped locking pattern, which is widely used in C++ libraries - because: -

- -
    -
  1. Does not require the programmer to remember to release the lock -
  2. - -
  3. Releases the lock if  an exception is thrown out of the mutual - exclusion region protected by the lock -
  4. - -
- -

There are two parts to the pattern: a - mutex object, for which construction of a - lock object acquires a lock on the mutex and destruction of the - lock object releases the lock. Here's an example: -

- -
-{
-    // Construction of myLock acquires lock on myMutex 
-    M::scoped_lock myLock( myMutex );
-    // ... actions to be performed while holding the lock ...
-    // Destruction of myLock releases lock on myMutex
-}
-
-

If the actions throw an exception, the lock is automatically released - as the block is exited. -

- -

The following table shows the requirements for the Mutex concept for a - mutex type M -

- -

Mutex Concept -

- -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Pseudo-Signature -

- -
-

Semantics -

- -
-

M() -

- -
-

Construct unlocked mutex. -

- -
-

~M() -

- -
-

Destroy unlocked mutex. -

- -
-

typename M::scoped_lock -

- -
-

Corresponding scoped-lock type. -

- -
-

M::scoped_lock() -

- -
-

Construct lock without acquiring mutex. -

- -
-

M::scoped_lock(M&) -

- -
-

Construct lock and acquire lock on mutex. -

- -
-

M::~scoped_lock() -

- -
-

Release lock (if acquired). -

- -
-

M::scoped_lock::acquire(M&) -

- -
-

Acquire lock on mutex. -

- -
-

bool M::scoped_lock::try_acquire(M&) -

- -
-

Try to acquire lock on mutex. Return true if lock acquired, - false otherwise. -

- -
-

M::scoped_lock::release() -

- -
-

Release lock. -

- -
-

static const bool M::is_rw_mutex -

- -
-

True if mutex is reader-writer mutex; false otherwise. -

- -
-

static const bool M::is_recursive_mutex -

- -
-

True if mutex is recursive mutex; false otherwise. -

- -
-

static const bool M::is_fair_mutex -

- -
-

True if mutex is fair; false otherwise. -

- -
-
- -
-

The following table summarizes the classes that model the Mutex - concept. -

- -

Mutexes that Model the Mutex Concept -

- -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

-

- -
-

Scalable -

- -
-

Fair -

- -
-

Reentrant -

- -
-

Long Wait -

- -
-

Size -

- -
-

mutex -

- -
-

OS dependent -

- -
-

OS dependent -

- -
-

No -

- -
-

Blocks -

- -
-

>=3 words -

- -
-

recursive_mutex -

- -
-

OS dependent -

- -
-

OS dependent -

- -
-

Yes -

- -
-

Blocks -

- -
-

>=3 words -

- -
-

spin_mutex -

- -
-

No -

- -
-

No -

- -
-

No -

- -
-

Yields -

- -
-

1 byte -

- -
-

speculative_spin_mutex -

- -
-

No -

- -
-

No -

- -
-

No -

- -
-

Yields -

- -
-

2 cache lines -

- -
-

queuing_mutex -

- -
-

Yes -

- -
-

Yes -

- -
-

No -

- -
-

Yields -

- -
-

1 word -

- -
-

spin_rw_mutex -

- -
-

No -

- -
-

No -

- -
-

No -

- -
-

Yields -

- -
-

1 word -

- -
-

queuing_rw_mutex -

- -
-

Yes -

- -
-

Yes -

- -
-

No -

- -
-

Yields -

- -
-

1 word -

- -
-

null_mutex -

- -
-

- -

- -
-

Yes -

- -
-

Yes -

- -
-

- -

- -
-

empty -

- -
-

null_rw_mutex -

- -
-

- -

- -
-

Yes -

- -
-

Yes -

- -
-

- -

- -
-

empty -

- -
-
- -
-

See the Intel® Threading Building Blocks Tutorial for a discussion of - the mutex properties and the rationale for null mutexes. -

- -
- -

C++11 Compatibility

- -

Classes - mutex, recursive_mutex, spin_mutex, and - spin_rw_mutex support the C++11 interfaces - described in the following table. -

- -

C++11 Methods Available for Some Mutexes. -

- -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Pseudo-Signature -

- -
-

Semantics -

- -
-

void M::lock() -

- -
-

Acquire lock. -

- -
-

bool M::try_lock() -

- -
-

Try to acquire lock on mutex. Return true if lock acquired, - false otherwise. -

- -
-

void M::unlock() -

- -
-

Release lock. -

- -
-

class lock_guard<M> -

- -
-

See Section C++11 Synchronization -

- -
-

class unique_lock<M> -

- -
-
- -
-

Classes mutex and recursive mutex also provide the C++11 idiom for - accessing their underlying OS handles, as described in the following table. -

- -

Native handle interface (M is mutex or recursive_mutex). -

- -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Pseudo-Signature -

- -
-

Semantics -

- -
-

M::native_handle_type -

- -
-

Native handle type. -

- -

For Windows* operating system, LPCRITICAL_SECTION is the - Native handle type. -

- -

For all other operating system, it is (pthread_mutex*). -

- -
-

native_handle_type M::native_handle() -

- -
-

Get underlying native handle of mutex M. -

- -
-
- -
-

As an extension to C++11, class - spin_rw_mutex also has methods - read_lock() and - try_read_lock() for corresponding operations that - acquire reader locks. -

- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/null_mutex_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/null_mutex_cls.htm deleted file mode 100644 index 4652df8f5..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/null_mutex_cls.htm +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - - -null_mutex Class - - - - - - - - - -

null_mutex Class

- - -

Summary

-

Class that models Mutex Concept buts does nothing.

- -
-

Syntax

-
class null_mutex;
-
-

Header

-
#include "tbb/null_mutex.h"
-
-

Description

-

A null_mutex models the Mutex Concept syntactically, but does nothing. It is useful for instantiating a template that expects a Mutex, but no mutual exclusion is actually needed for that instance.

- -
-

Members

-

See Mutex Concept.

-
- -
- - -
-

See Also

- -
- - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/null_rw_mutex_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/null_rw_mutex_cls.htm deleted file mode 100644 index 0bc2f499a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/null_rw_mutex_cls.htm +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - - - - -null_rw_mutex Class - - - - - - - - - -

null_rw_mutex Class

- - -
-

Summary

- -

Class that models ReaderWriterMutex Concept but - does nothing.

- -
-

Syntax

-
class null_rw_mutex;
-
-

Header

-
#include "tbb/null_rw_mutex.h"
-
-

Description

-

A null_rw_mutex models the ReaderWriterMutex Concept syntactically, but does nothing. It is useful for instantiating a template that expects a ReaderWriterMutex, but no mutual exclusion is actually needed for that instance..

- -
-

Members

-

See ReaderWriterMutex concept.

-
- -
- - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/queuing_mutex_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/queuing_mutex_cls.htm deleted file mode 100644 index 289f4c10f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/queuing_mutex_cls.htm +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - -queuing_mutex Class - - - - - - - - - -

queuing_mutex Class

- - -

Summary

-

Class that models Mutex Concept that is fair and scalable.

- -
-

Syntax

-
class queuing_mutex;
-
-

Header

-
#include "tbb/queuing_mutex.h"
-
-

Description

-

A queuing_mutex models the Mutex Concept. A - queuing_mutex is scalable, in the sense that if a thread has to - wait to acquire the mutex, it spins on its own local cache line. A - queuing_mutex is fair. Threads acquire a lock on a mutex in the - order that they request it. A queuing_mutex is not recursive.

- -

The current implementation does busy-waiting, so using a queuing_mutex may degrade system performance if the wait is long.

- -
-

Members

-

See Mutex Concept.

-
- -
- - -
-

See Also

- -
- - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/queuing_rw_mutex_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/queuing_rw_mutex_cls.htm deleted file mode 100644 index 1111b7fbc..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/queuing_rw_mutex_cls.htm +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - -queuing_rw_mutex Class - - - - - - - - - -

queuing_rw_mutex Class

- - -
-

Summary

- -

Class that models ReaderWriterMutex Concept that is fair and scalable.

- -
-

Syntax

-
class queuing_rw_mutex;
-
-

Header

-
#include "tbb/queuing_rw_mutex.h"
-
-

Description

-

A queuing_rw_mutex models the ReaderWriterMutex Concept. A queuing_rw_mutex is scalable, in the sense that if a thread has to wait to acquire the mutex, it spins on its own local cache line. A queuing_rw_mutex is fair. Threads acquire a lock on a queuing_rw_mutex in the order that they request it. A queuing_rw_mutex is not recursive.

- -
-

Members

-

See ReaderWriterMutex concept.

-
-
- - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/readerwritermutex_concept.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/readerwritermutex_concept.htm deleted file mode 100644 index d2e34798b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/readerwritermutex_concept.htm +++ /dev/null @@ -1,518 +0,0 @@ - - - - - - - - - - - - - -ReaderWriterMutex Concept - - - - - - - - - -

ReaderWriterMutex Concept

- - -
-
-

The ReaderWriterMutex concept extends the Mutex - Concept to include the notion of reader-writer locks. It introduces a boolean - parameter - write that specifies whether a writer lock - (write =true) or reader lock (write =false) - is being requested. Multiple reader locks can be held simultaneously on a - ReaderWriterMutex if it does not have a writer lock on it. A writer lock on a - ReaderWriterMutex excludes all other threads from holding a lock on the mutex - at the same time. -

- -

The following table shows the requirements for a - ReaderWriterMutex - RW. They form a superset of the Mutex Concept. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ReaderWriterMutex Concept
-

Pseudo-Signature -

- -
-

Semantics -

- -
-

RW() -

- -
-

Construct unlocked mutex. -

- -
-

~RW() -

- -
-

Destroy unlocked mutex. -

- -
-

typename RW::scoped_lock -

- -
-

Corresponding scoped-lock type. -

- -
-

RW::scoped_lock() -

- -
-

Construct lock without acquiring mutex. -

- -
-

RW::scoped_lock(RW&, bool - write=true) -

- -
-

Construct lock and acquire lock on mutex. -

- -
-

RW::~scoped_lock() -

- -
-

Release lock (if acquired). -

- -
-

RW::scoped_lock::acquire(RW&,bool - write=true) -

- -
-

Acquire lock on mutex. -

- -
-

bool - RW::scoped_lock::try_acquire(RW&, bool write=true) -

- -
-

Try to acquire lock on mutex. Return - true if lock acquired, - false otherwise. -

- -
-

RW::scoped_lock::release() - -

- -
-

Release lock. -

- -
-

bool - RW::scoped_lock::upgrade_to_writer() -

- -
-

Change reader lock to writer lock. -

- -
-

bool - RW::scoped_lock::downgrade_to_reader() -

- -
-

Change writer lock to reader lock. -

- -
-

static const bool RW::is_rw_mutex = - true -

- -
-

True. -

- -
-

static const bool - RW::is_recursive_mutex -

- -
-

True if mutex is recursive; false - otherwise. For all current reader-writer mutexes, false. -

- -
-

static const bool - RW::is_fair_mutex -

- -
-

True if mutex is fair; false otherwise. -

- -
-
- -
- - -
The following table provides explain the semantics of the - ReaderWriterMutex concept in detail. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
Model Types - -

Classes - spin_rw_mutex and - queuing_rw_mutex model the - ReaderWriterMutex concept. -

- -
ReaderWriterMutex() - -

Constructs unlocked - ReaderWriterMutex. -

- -
~ReaderWriterMutex() - -

Destroys unlocked - ReaderWriterMutex. The effect of destroying a - locked - ReaderWriterMutex is undefined. -

- -
ReaderWriterMutex::scoped_lock() - -

Constructs a - scoped_lock object that does not hold a lock - on any mutex. -

- -
ReaderWriterMutex::scoped_lock( - ReaderWriterMutex& rw, bool write =true) - -

Constructs a - scoped_lock object that acquires a lock on - mutex - rw. The lock is a writer lock if - write is true; a reader lock otherwise. - -

- -
ReaderWriterMutex::~scoped_lock() - -

If the object holds a lock on a - ReaderWriterMutex, releases the lock. -

- -
void ReaderWriterMutex:: - scoped_lock:: acquire( ReaderWriterMutex& rw,  bool write=true ) - -

Acquires a lock on mutex - rw. The lock is a writer lock if - write is true; a reader lock otherwise. - -

- -
bool ReaderWriterMutex:: - scoped_lock::try_acquire( ReaderWriterMutex& rw, bool write=true - ) - -

Attempts to acquire a lock on mutex - rw. The lock is a writer lock if - write is true; a reader lock otherwise. - -

- -

Returns: - true if the lock is acquired, - false otherwise. -

- -
void ReaderWriterMutex:: - scoped_lock::release() - -

Releases lock. The effect is undefined if - no lock is held. -

- -

Returns: - false if lock was released in favor of another - upgrade request and then reacquired; - true otherwise. -

- -
bool ReaderWriterMutex:: - scoped_lock::upgrade_to_writer() - -

Changes reader lock to a writer lock. The - effect is undefined if the object does not already hold a reader lock. -

- -

Returns: - false if lock was released and reacquired; - true otherwise. -

- -
bool ReaderWriterMutex:: - scoped_lock::downgrade_to_reader() - -

Changes writer lock to a reader lock. The - effect is undefined if the object does not already hold a writer lock. -

- -

Returns: - false if lock was released and reacquired; - true otherwise. -

- -

Intel's current implementations for - spin_rw_mutex and - queuing_rw_mutex always return - true. Different implementations might - sometimes return - false. -

- -
-
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/recursive_mutex_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/recursive_mutex_cls.htm deleted file mode 100644 index f344ca7ba..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/recursive_mutex_cls.htm +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - -recursive_mutex Class - - - - - - - - - -

recursive_mutex Class

- - -
-

Summary

-

Class that models Mutex Concept using underlying OS locks and permits recursive acquisition.

- -
-

Syntax

-
class recursive_mutex;
-
-

Header

-
#include "tbb/recursive_mutex.h"
-
-

Description

-

A recursive_mutex is similar to a mutex, except that a thread may acquire multiple locks on it. The thread must release all locks on a recursive_mutex before any other thread can acquire a lock on it.

- -
-

Members

-

See Mutex Concept.

-
- -
- - -
-

See Also

- -
- - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/speculative_spin_mutex_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/speculative_spin_mutex_cls.htm deleted file mode 100644 index 1b5f21061..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/speculative_spin_mutex_cls.htm +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - - - - - - - - -speculative_spin_mutex Class - - - - - - - - - -

speculative_spin_mutex Class

- - -
-

speculative_spin_mutex Class

-

- Summary -

- -

- Class that models Mutex Concept using a spin lock, and for processors which - support hardware transactional memory (such as Intel® Transactional - Synchronization Extensions (Intel® TSX)) may be implemented in a - way that allows non-contending changes to the protected data to proceed - in parallel. -

- -
- -

Syntax

-
class speculative_spin_mutex;
-
- -

Header

-
#include "tbb/spin_mutex.h"
-
- -

Description

-

- A speculative_spin_mutex models the Mutex Concept. It is not - fair and not recursive. A speculative_spin_mutex is like a - spin_mutex, but may provide better throughput than - non-speculative mutexes when -

    -
  • used on a processor that supports hardware transactional memory and
  • - -
  • - multiple threads can usually execute the critical section(s) protected by - the mutex concurrently without conflicting. -
  • - -
- - Otherwise it performs like a spin_mutex, possibly with - worse throughput. -

- -

- Please see the Speculative locking section for more details. -

- -

- Caution

-

- The speculative_spin_mutex is padded to ensure each instance appears on - a separate cache line not shared with any other data. Because of that the size of the - mutex is twice the cache line size. -

- -
-

- Caution

-

- For the implementation of speculative_spin_mutex - in Intel® Threading Building Blocks (Intel® TBB)) version 4.2 - running on a 4th generation Intel® Core™ processor, - any lock nesting may thwart speculation. -

- -
-

- Caution

-

- Depending on the version of Intel TBB and the hardware, other caveats may apply. - Please check the Release Notes for more information. -

- -
-
- - - -

Members

-

See Mutex Concept.

- -
- - -
- - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/speculative_spin_rw_mutex_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/speculative_spin_rw_mutex_cls.htm deleted file mode 100644 index cff7db665..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/speculative_spin_rw_mutex_cls.htm +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - - - - - - - - - - - -speculative_spin_rw_mutex Class (Community Preview Feature) - - - - - - - - - -

speculative_spin_rw_mutex Class (Community Preview Feature)

- - -
-

speculative_spin_rw_mutex Class (Community Preview Feature)

-

- Summary -

- -

- Class that models ReaderWriterMutex Concept, and for processors which - support hardware transactional memory (such as Intel® Transactional - Synchronization Extensions (Intel® TSX)) may be implemented in a - way that allows non-contending changes to the protected data to proceed - in parallel. -

- -

- The speculative_spin_rw_mutex is a Community Preview Feature - that requires linkage with the Community Preview shared library. -

- -
- -

Syntax

-
class speculative_spin_rw_mutex;
-
- -

Header

-
-#define TBB_PREVIEW_SPECULATIVE_SPIN_RW_MUTEX
-#include "tbb/spin_rw_mutex.h"
-            
-
- -

Description

-

- A speculative_spin_rw_mutex models the ReaderWriterMutex Concept. It is not - scalable, fair or recursive. A speculative_spin_rw_mutex is like a - spin_rw_mutex, but may provide better throughput than - non-speculative mutexes when -

    -
  • used on a processor that supports hardware transactional memory and
  • - -
  • - multiple threads can usually execute the critical section(s) protected by - the mutex concurrently without conflicting. -
  • - -
- - Otherwise it performs like a spin_rw_mutex, possibly with - worse throughput. -

- -

- Please see the Speculative locking section for more details. -

- -

- Caution

-

- The speculative_spin_rw_mutex is padded to ensure each instance appears on - a separate cache line not shared with any other data. Because of that the size of the - mutex is three times the cache line size. -

- -
-

- Caution

-

- For the implementation of speculative_spin_rw_mutex - in Intel® Threading Building Blocks (Intel® TBB)) version 4.2 - running on a 4th generation Intel® Core™ processor, - any lock nesting may thwart speculation. -

- -
-

- Caution

-

- Depending on the version of Intel TBB and the hardware, other caveats may apply. - Please check the Release Notes for more information. -

- -
-
- - - -

Members

-

See ReaderWriterMutex Concept.

- -
- - -
- - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/spin_mutex_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/spin_mutex_cls.htm deleted file mode 100644 index 38e4fa490..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/spin_mutex_cls.htm +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - -spin_mutex Class - - - - - - - - - -

spin_mutex Class

- - -
-

spin_mutex Class

-

Summary

- -

Class that models Mutex Concept using a spin lock.

- -
-

Syntax

-
class spin_mutex;
-
-

Header

-
#include "tbb/spin_mutex.h"
-
-

Description

-

A spin_mutex models the Mutex Concept. A spin_mutex is not scalable, fair, or recursive. It is ideal when the lock is lightly contended and is held for only a few machine instructions. If a thread has to wait to acquire a spin_mutex, it busy waits, which can degrade system performance if the wait is long. However, if the wait is typically short, a spin_mutex significantly improve performance compared to other mutexes.

- -
-

Members

-

See Mutex Concept.

-
- - -
- - -
-

See Also

- -
- - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/spin_rw_mutex_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/spin_rw_mutex_cls.htm deleted file mode 100644 index 139f39416..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/mutexes/spin_rw_mutex_cls.htm +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - - -spin_rw_mutex Class - - - - - - - - - -

spin_rw_mutex Class

- - -

Summary

-

Class that models ReaderWriterMutex Concept that is unfair and not scalable.

- -
-

Syntax

-
class spin_rw_mutex;
-
-

Header

-
#include "tbb/spin_rw_mutex.h"
-
-

Description

-

A spin_rw_mutex models the ReaderWriterMutex Concept. A spin_rw_mutex is not scalable, fair, or recursive. It is ideal when the lock is lightly contended and is held for only a few machine instructions. If a thread has to wait to acquire a spin_rw_mutex, it busy waits, which can degrade system performance if the wait is long. However, if the wait is typically short, a spin_rw_mutex significantly improves performance compared to other mutexes..

- -
-

Members

-

See ReaderWriterMutex concept.

-
- -
- - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/ppl_compatibility/critical_section.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/ppl_compatibility/critical_section.htm deleted file mode 100644 index ae5e66f4c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/ppl_compatibility/critical_section.htm +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - - - - - -critical_section - - - - - - - - - -

critical_section

- - -

Summary

-

A PPL-compatible mutex.

- -
-

Syntax

-
class critical_section;
-
-

Header

-
#include "tbb/critical_section.h"
-
-

Description

-

A critical_section implements a PPL critical_section. Its functionality is a subset of the functionality of a tbb::mutex.

- -
-

Members

-
namespace tbb {
-        class critical_section {
-        public:
-            critical_section();
-            ~critical_section();
-            void lock();
-            bool try_lock();
-            void unlock();
-     
-            class scoped_lock {
-            public:
-                scoped_lock( critical_section& mutex );
-                ~scoped_lock();
-            };
-       };
-    }
- - -
- - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/ppl_compatibility/reader_writer_lock_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/ppl_compatibility/reader_writer_lock_cls.htm deleted file mode 100644 index b9cfef098..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/ppl_compatibility/reader_writer_lock_cls.htm +++ /dev/null @@ -1,286 +0,0 @@ - - - - - - - - - - - - - - - -reader_writer_lock Class - - - - - - - - - -

reader_writer_lock Class

- - -
-

Summary

- -

A PPL-compatible reader-writer mutex that is scalable and gives - preference to writers.

-
-

Syntax

- -
class reader_writer_lock;
-
-

Header

-
#include "tbb/reader_writer_lock.h"
-
-

Description

-

A reader_writer_lock implements a PPL-compatible - reader-writer mutex. A reader_writer_lock is scalable and - nonrecursive. The implementation handles lock requests on a first-come first-serve - basis except that writers have preference over readers. Waiting threads busy wait, - which can degrade system performance if the wait is long. However, if the wait is - typically short, a reader_writer_lock can provide performance - competitive with other mutexes.

- -

A reader_writer_lock models part of the - ReaderWriterMutex Concept and part of the C++11 compatibility interface. The - major differences are:

- -
    -
  • -

    The scoped interfaces support only strictly scoped locks. - For example, the method scoped_lock::release() is not - supported.

    - -
  • - -
  • -

    Reader locking has a separate interface. For example, - there is separate scoped interface scoped_lock_read for reader locking, - instead of a flag to distinguish the reader cases as in the - ReaderWriterMutex Concept.

    - -
  • - -
- -
-

Members

-
namespace tbb {
-    class reader_writer_lock {
-    public:
-        reader_writer_lock();
-        ~reader_writer_lock();
-        void lock();
-        void lock_read();
-        bool try_lock();
-        bool try_lock_read();
-        void unlock();
-         class scoped_lock {
-        public:
-            scoped_lock( reader_writer_lock& mutex );
-            ~scoped_lock();
-        };
-        class scoped_lock_read {
-        public:
-            scoped_lock_read( reader_writer_lock& mutex );
-            ~scoped_lock_read();
-        };
-   };}
-

The following table summarizes the semantics.

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
reader_writer_lock Members Summary
-

Member

- -
-

Semantics

- -
-

reader_writer_lock()

- -
-

Construct unlocked mutex.

- -
- ~reader_writer_lock() - -

Destroy unlocked mutex.

- -
-

void - reader_writer_lock::lock()

- -
-

Acquire write lock on mutex.

- -
-

void - reader_writer_lock::lock_read()

- -
-

Acquire read lock on mutex.

- -
-

bool - reader_writer_lock::try_lock()

- -
-

Try to acquire write lock on mutex. Returns - true if lock acquired, false otherwise.

- -
-

bool - reader_writer_lock::try_lock_read()

- -
-

Try to acquire read lock on mutex. Returns - true if lock acquired, false otherwise.

- -
-

reader_writer_lock::unlock()

- -
-

Release lock.

- -
reader_writer_lock::scoped_lock -   (reader_writer_lock& m) -

Acquire write lock on mutex m.

- -
-

reader_writer_lock::~scoped_lock()

- -
-

Release write lock (if acquired).

- -

- reader_writer_lock::scoped_lock_read -   (reader_writer_lock& m) -

-
-

Acquire read lock on mutex m.

- -
-

reader_writer_lock::~scoped_lock_read()

- -
-

Release read lock (if acquired).

- -
-
- -
- -
- - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/ppl_compatibility_synch.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/ppl_compatibility_synch.htm deleted file mode 100644 index cac02c227..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/synchronization/ppl_compatibility_synch.htm +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - -PPL Compatibility - - - - - - - - - -

PPL Compatibility

- - -
-
-

Classes critical_section and reader_writer_lock exist for compatibility with the Microsoft Parallel Patterns Library (PPL). They do not follow all of the conventions of other mutexes in Intel® Threading Building Blocks.

-
- - -
- - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_groups.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_groups.htm deleted file mode 100644 index 492e308e4..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_groups.htm +++ /dev/null @@ -1,183 +0,0 @@ - - - - - - - - - - - - - - - - - - - - -Task Groups - - - - - - - - - -

Task Groups

- - -
-
-

  -

- -

This section covers the high-level interface to the - task scheduler. The Task Scheduler section covers the low-level interface. The - high-level interface lets you easily create groups of potentially parallel - tasks from functors or lambda expressions. The low-level interface permits more - detailed control, such as control over exception propagation and affinity. -

- -
- -

Summary

- -

High-level interface for running functions in - parallel. -

- -
- -

Syntax

- -
    template<typename Func> task_handle;
-    template<typename Func> task_handle<Func> make_task( const Func& f );
-    enum task_group_status;
-    class task_group;
-    class structured_task_group;
-    bool is_current_task_group_canceling();
-
- -

Header

- -
        #include "tbb/task_group.h"
-

Requirements -

- -

Functor arguments for various methods in this - section should meet the requirements in the table below. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Requirements on functor arguments
-

Pseudo-Signature -

- -
-

Semantics -

- -
-

Func::Func (const - Func&) -

- -
-

Copy constructor. -

- -
-

Func::~Func () -

- -
-

Destructor. -

- -
-

void Func::operator()() - const; -

- -
-

Evaluate functor. -

- -
-
- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_groups/is_current_task_group_canceling_func.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_groups/is_current_task_group_canceling_func.htm deleted file mode 100644 index 1eae892c9..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_groups/is_current_task_group_canceling_func.htm +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - -is_current_task_group_canceling Function - - - - - - - - - -

is_current_task_group_canceling Function

- - -

Returns

- -

True if innermost task group executing on this thread is cancelling its tasks.

- -

 

-
- -
- - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_groups/make_task_func.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_groups/make_task_func.htm deleted file mode 100644 index c4ca89b30..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_groups/make_task_func.htm +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - -make_task Template Function - - - - - - - - - -

make_task Template Function

- - -
-

Summary

- -

Template function for creating a task_handle from a function or functor.

- -
-

Syntax

-
template<typename Func> 
- task_handle<Func> make_task( const Func& f ); 

Returns

- - task_handle<Func>(f
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_groups/structured_task_group_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_groups/structured_task_group_cls.htm deleted file mode 100644 index 70507ade2..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_groups/structured_task_group_cls.htm +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - - - - - - - -structured_task_group Class - - - - - - - - - -

structured_task_group Class

- - -

Description

-

A structured_task_group is like a task_group, but has only a subset of the functionality. It may permit performance optimizations in the future. The restrictions are:

- -
    -
  • Methods run and run_and_wait take only task_handle arguments, not general functors.
  • - -
  • Methods run and - run_and_wait do not copy their task_handle - arguments. The caller must not destroy those arguments until after wait - or run_and_wait returns.
  • - -
  • Methods run, run_and_wait, cancel, and wait should be called only by the thread that created the structured_task_group.
  • - -
  • Method wait (or run_and_wait) should be called only once on a given instance of structured_task_group.
  • - -
- -
-

Example

-

The function fork_join below evaluates f1() and f2(), in parallel if resources permit.

- -
    #include "tbb/task_group.h"
-     
-    using namespace tbb;
-     
-    template<typename Func1, typename Func2>
-    void fork_join( const Func1& f1, const Func2& f2 ) {
-        structured_task_group group;
-     
-        task_handle<Func1> h1(f1);
-        group.run(h1);              // spawn a task
-     
-        task_handle<Func2> h2(f2);
-        group.run(h2);              // spawn another task
-     
-        group.wait();               // wait for both tasks to complete
-        // now safe to destroy h1 and h2
-    }
-
-

Members

-
 namespace tbb {
-        class structured_task_group {
-        public:
-            structured_task_group();
-            ~structured_task_group();
-     
-            template<typename Func> 
-            void run( task_handle<Func>& handle );
-     
-            template<typename Func>
-            void run_and_wait( task_handle<Func>& handle );
-     
-            task_group_status wait(); 
-            bool is_canceling();
-            void cancel();
-        };
-    }
-     
-
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_groups/task_group_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_groups/task_group_cls.htm deleted file mode 100644 index eaca3a5ed..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_groups/task_group_cls.htm +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - - - - - - -task_group Class - - - - - - - - - -

task_group Class

- - -
-

Description

- -

A task_group represents - concurrent execution of a group of tasks. Tasks may be - dynamically added to the group as it is executing.

- -
- -

Example with Lambda Expressions

- -
#include "tbb/task_group.h"
-     
-    using namespace tbb;
-     
-    int Fib(int n) {
-        if( n<2 ) {
-            return n;
-        } else {
-            int x, y;
-            task_group g;
-            g.run([&]{x=Fib(n-1);}); // spawn a task
-            g.run([&]{y=Fib(n-2);}); // spawn another task
-            g.wait();                // wait for both tasks to complete
-            return x+y;
-        }
-    }
-

- Caution

-

Creating a large number of tasks - for a single task_group is not scalable, because - task creation becomes a serial bottleneck. If - creating more than a small number of concurrent - tasks, consider using - parallel_for or - parallel_invoke instead, or - structure the spawning as a recursive tree.

- -
-
- -

Members

- -
namespace tbb {
-        class task_group {
-        public:
-            task_group();
-            ~task_group();
-     
-            template<typename Func>
-            void run( const Func& f );
-     
-            template<typename Func> 
-            void run( task_handle<Func>& handle );
-     
-            template<typename Func>
-            void run_and_wait( const Func& f );
-     
-            template<typename Func> 
-            void run_and_wait( task_handle<Func>& handle );
-     
-            task_group_status wait(); 
-            bool is_canceling();
-            void cancel();
-        }
-    }
-
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_groups/task_group_cls/task_group_cls_members.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_groups/task_group_cls/task_group_cls_members.htm deleted file mode 100644 index 7c9b38a07..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_groups/task_group_cls/task_group_cls_members.htm +++ /dev/null @@ -1,208 +0,0 @@ - - - - - - - - - - - - - -task_group Class Members - - - - - - - - - -

task_group Class Members

- - -
- -
The following table provides additional information on the members - of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
task_group() - -

Constructs an empty - task group. -

- -
~task_group() - -

Requires: Method - wait must be called before destroying a - task_group, otherwise the destructor throws an - exception. -

- -
template<typename Func> void - run( const Func& f ) - -

Spawn a task that computes - f() and return immediately. -

- -
template<typename Func> void - run ( task_handle<Func>& handle ); - -

Spawn a task that computes - handle() and return immediately. -

- -
template<typename Func> void - run_and_wait( const Func& f ) - -

Equivalent to - {run(f); wait();}, but guarantees - that f runs on the current thread. -

- -

- Note

-

Template method - run_and_wait is intended to be more - efficient than separate calls to - run and - wait. -

- -
-
template<typename Func> void - run _and_wait( task_handle<Func>& handle ); - -

Equivalent to - {run(handle); wait();}, but guarantees - that - handle() runs on the current thread. -

- -

- Note

-

Template method - run_and_wait is intended to be more - efficient than separate calls to - run and - wait. -

- -
-
task_group_status wait() - -

Wait for all tasks in the group to complete - or be cancelled. -

- -

Returns: True if this task group is - cancelling its tasks. -

- -
bool is_canceling() - -

Returns: True if this task group is - cancelling its tasks. -

- -
void cancel() - -

Cancel all tasks in this - task_group. -

- -
-
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_groups/task_group_status_enum.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_groups/task_group_status_enum.htm deleted file mode 100644 index 3f493353b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_groups/task_group_status_enum.htm +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - -task_group_status Enum - - - - - - - - - -

task_group_status Enum

- - -
-
-

A task_group_status represents the status of a task_group.

- -
-

Members

-
namespace tbb {
-                    enum task_group_status {
-                        not_complete, // Not cancelled and not all tasks in group have completed. 
-                        complete,     // Not cancelled and all tasks in group have completed
-                        canceled      // Task group received cancellation request
-     };
- }
- -
- - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_groups/task_handle_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_groups/task_handle_cls.htm deleted file mode 100644 index 029f4fca0..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_groups/task_handle_cls.htm +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - -task_handle Template Class - - - - - - - - - -

task_handle Template Class

- - -
-

Summary

- -

Template class used to wrap a function object in conjunction with class structured_task_group.

- -
-

Description

-

Class task_handle is used primarily in conjunction with class structured_task_group. For sake of uniformity, class task_group also accepts task_handle arguments.

- -
-

Members

- -
 template<typename Func>
-    class task_handle {
-    public:
-        task_handle( const Func& f );
-        void operator()() const;
-    };
-
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler.htm deleted file mode 100644 index 6d80bdd63..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler.htm +++ /dev/null @@ -1,182 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Task Scheduler - - - - - - - - - -

Task Scheduler

- - -
-
-

Intel® Threading Building Blocks (Intel® TBB) - provides a task scheduler, which is the engine that drives the algorithm - templates and task groups. You may also call it directly. Using tasks is often - simpler and more efficient than using threads, because the task scheduler takes - care of a lot of details. -

- -

The tasks are quanta of computation. The scheduler - maps these onto physical threads. The mapping is non-preemptive. Each thread - has a method - execute(). Once a thread starts running - execute(), the task is bound to that thread until - execute() returns. During that time, the thread - services other tasks only when it waits on its predecessor tasks, at which time - it may run the predecessor tasks, or if there are no pending predecessor tasks, - the thread may service tasks created by other threads. -

- -

The task scheduler is intended for parallelizing - computationally intensive work. Because task objects are not scheduled - preemptively, they should generally avoid making calls that might block for - long periods, because meanwhile that thread is precluded from servicing other - tasks. -

- -

- Caution

-

There is no guarantee that - potentially parallel tasks - actually execute in parallel, because the scheduler adjusts - actual parallelism to fit available worker threads. For example, given a single - worker thread, the scheduler creates no actual parallelism. For example, it is - generally unsafe to use tasks in a producer consumer relationship, because - there is no guarantee that the consumer runs at all while the producer is - running. -

- -
-

Potential parallelism is typically generated by a - split/join pattern. Two basic patterns of split/join are - supported. The most efficient is continuation-passing form, in which the - programmer constructs an explicit "continuation" task. The parent task creates - child tasks and specifies a continuation task to be executed when the children - complete. The continuation inherits the parent's ancestor. The parent task then - exits; it does not block on its children. The children subsequently run, and - after they (or their continuations) finish, the continuation task starts - running. The figure, "Continuation-passing Style," shows the steps. The running - tasks at each step are shaded. -

- -
Continuation-passing Style - -

-
- -

Explicit continuation passing is efficient, because - it decouples the thread's stack from the tasks. However, it is more difficult - to program. A second pattern is "blocking style", which uses implicit - continuations. It is sometimes less efficient in performance, but more - convenient to program. In this pattern, the parent task blocks until its - children complete, as shown in the figure below. -

- -
Blocking Style - -

-
- -

The convenience comes with a price. Because the - parent blocks, its thread's stack cannot be popped yet. The thread must be - careful about what work it takes on, because continually stealing and blocking - could cause the stack to grow without bound. To solve this problem, the - scheduler constrains a blocked thread such that it never executes a task that - is less deep than its deepest blocked task. This constraint may impact - performance because it limits available parallelism, and tends to cause threads - to select smaller (deeper) subtrees than they would otherwise choose. -

- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/affinity.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/affinity.htm deleted file mode 100644 index 75ffd6b04..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/affinity.htm +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - - - - - -Affinity - - - - - - - - - -

Affinity

- - -
-
-

These methods enable optimizing for cache affinity. They enable you to - hint that a later task should run on the same thread as another task that was - executed earlier. To do this: -

- -
    -
  1. In the earlier task, override - note_affinity(id) with a definition that - records - id. -
  2. - -
  3. Before spawning the later task, run - set_affinity(id) using the - id recorded in step 1, -
  4. - -
- -

The - id is a hint and may be ignored by the scheduler. -

- - -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
affinity_id - -

The type - task::affinity_id is an - implementation-defined unsigned integral type. A value of 0 indicates no - affinity. Other values represent affinity to a particular thread. Do not assume - anything about non-zero values. The mapping of non-zero values to threads is - internal to the Intel® Threading Building Blocks (Intel® TBB) library implementation. -

- -
virtual void note_affinity ( - affinity_id id ) - -

The task scheduler invokes - note_affinity before invoking - execute() when: -

- -
    -
  • The task has no affinity, but will - execute on a thread different than the one that spawned it. -
  • - -
- -
    -
  • The task has affinity, but will - execute on a thread different than the one specified by the affinity. -
  • - -
- -

You can override this method to record the id, so that it - can be used as the argument to - set_affinity(id) for a later task. -

- -

Effects: The default definition has no effect. -

- -
set_affinity ( affinity_id id ) - -

Sets affinity of this task to - id. The - id should be either 0 or obtained from - note_affinity. -

- -
affinity_id affinity() - const - -

Returns: Affinity of this task as set by - set_affinity. -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/cancellation.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/cancellation.htm deleted file mode 100644 index f36e8dabc..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/cancellation.htm +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - - - - - - - -Cancellation - - - - - - - - - -

Cancellation

- - -
-
-

A - task is a quantum of work that is cancelled or executes to - completion. A cancelled task skips its method - execute() if that method has not yet started. - Otherwise cancellation has no direct effect on the task. A task can poll - task::is_cancelled() to see if cancellation was - requested after it started running. -

- - -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
bool - cancel_group_execution() - -

Requests cancellation of all tasks in its group and its - subordinate groups. -

- -

Returns: False if the task's group already received a - cancellation request; true otherwise. -

- -
bool is_cancelled() - const - -

Returns: True if task's group has received a - cancellation request; false otherwise. -

- -
-
- -
- -
- - - -
-

See Also

- -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/catalog_of_recommended_task_patterns.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/catalog_of_recommended_task_patterns.htm deleted file mode 100644 index 209eb580a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/catalog_of_recommended_task_patterns.htm +++ /dev/null @@ -1,194 +0,0 @@ - - - - - - - - - - - - - - -Catalog of Recommended task Patterns - - - - - - - - - -

Catalog of Recommended task Patterns

- - -
-
-

This section catalogues recommended task patterns. In each pattern, class T is assumed to derive from class task. Subtasks are labeled t1, t2, ... tk. The subscripts indicate the order in which the subtasks execute if no parallelism is available. If parallelism is available, the subtask execution order is non-deterministic, except that t1 is guaranteed to be executed by the spawning thread.

- -

Recursive task patterns are recommended for efficient scalable parallelism, because they allow the task scheduler to unfold potential parallelism to match available parallelism. A recursive task pattern begins by creating a root task t0 and running it as follows.

- -
T& t0 = *new(allocate_root()) T(...);  
-           task::spawn_root_and_wait(t0);
-

The root task's method execute() recursively - creates more tasks as described in subsequent subsections.

-
- -

Blocking Style With k Children

-

The following shows the recommended style for a recursive task - of type T where each level spawns k children.

- -
           task* T::execute() {
-        if( not recursing any further ) {
-            ...
-        } else {
-            set_ref_count(k+1);
-            task& tk = *new(allocate_child()) T(...);  spawn(tk);
-            task& tk-1= *new(allocate_child()) T(...);  spawn(tk-1);
-            ...
-            task& t1= *new(allocate_child()) T(...);   
-            spawn_and_wait_for_all(t1);
-        }
-        return NULL;
-    }
-

Child construction and spawning may be reordered if convenient, as long as a task is constructed before it is spawned.

- -

The key points of the pattern are:

- -
    -
  • The call to set_ref_count uses k+1 as its argument. The extra 1 is critical.

    -
  • - -
  • Each task is allocated by allocate_child.

    -
  • - -
  • The call spawn_and_wait_for_all combines spawning and waiting. A more uniform but slightly less efficient alternative is to spawn all tasks with spawn and wait by calling wait_for_all.

    -
  • - -
-
- -

Continuation-Passing Style With k Children

-

There are two recommended styles. They differ in whether it is more convenient to recycle the parent as the continuation or as a child. The decision should be based upon whether the continuation or child acts more like the parent.

- -

Optionally, as shown in the following examples, the code can return a pointer to one of the children instead of spawning it. Doing so causes the child to execute immediately after the parent returns. This option often improves efficiency because it skips pointless overhead of putting the task into the task pool and taking it back out.

-
- -

Recycling Parent as Continuation

-

This style is useful when the continuation needs to inherit much of the state of the parent and the child does not need the state. The continuation must have the same type as the parent.

- -
task* T::execute() {
-        if( not recursing any further ) {
-            ...
-            return NULL;
-        } else {
-            set_ref_count(k);
-            recycle_as_continuation();
-            task& tk  = *new(allocate_child()) T(...); spawn(tk);
-            task& tk-1 = *new(allocate_child()) T(...); spawn(tk-1);
-            ...
-            // Return pointer to first child instead of spawning it,
-            // to remove unnecessary overhead.
-            task& t1 = *new(allocate_child()) T(...);
-            return &t1;
-        }
-    }    
-

The key points of the pattern are:

- -
    -
  • The call to set_ref_count uses k as its argument. There is no extra +1 as there is in blocking style discussed in Section Blocking Style With k Children.

    -
  • - -
  • Each child task is allocated by allocate_child.

    -
  • - -
  • The continuation is recycled from the parent, and hence gets the parent's state without doing copy operations.

    -
  • - -
-
- -

Recycling Parent as a Child

-

This style is useful when the child inherits much of its - state from a parent and the continuation does not need the state of the parent. The - child must have the same type as the parent. In the example, C is the type of the - continuation, and must derive from class task. If C does nothing - except wait for all children to complete, then C can be the class - empty_task.

- -
task* T::execute() {
-        if( not recursing any further ) {
-            ...
-            return NULL;
-        } else {
-            // Construct continuation
-            C& c = allocate_continuation();
-            c.set_ref_count(k);
-            // Recycle self as first child
-            task& tk = *new(c.allocate_child()) T(...); spawn(tk);
-            task& tk-1 = *new(c.allocate_child()) T(...); spawn(tk-1);
-            ...
-            task& t2 = *new(c.allocate_child()) T(...);  spawn(t2);
-            // task t1 is our recycled self.
-            recycle_as_child_of(c);
-            update fields of *this to subproblem to be solved by t1
-            return this;
-        }
-    }
-

The key points of the pattern are:

- -
    -
  • The call to set_ref_count uses k as its argument. There is no extra 1 as there is in blocking style discussed in Section Blocking Style With k Children .

    -
  • - -
  • Each child task except for t1 is allocated by c.allocate_child. It is critical to use c.allocate_child, and not (*this).allocate_child; otherwise the task graph will be wrong.

    -
  • - -
  • Task t1is recycled from the parent, and hence gets the parent's state without performing copy operations. Do not forget to update the state to represent a child subproblem; otherwise infinite recursion will occur.

    -
  • - -
-
- -

Letting Main Thread Work While Child Tasks Run

-

Sometimes it is desirable to have the main thread continue execution while child tasks - are running. The following pattern does this by using a dummy - empty_task.

- -
task* dummy = new( task::allocate_root() ) empty_task;
-dummy->set_ref_count(k+1);
-task& tk = *new( dummy->allocate_child() ) T;  dummy->spawn(tk);
-task& tk-1 = *new( dummy->allocate_child() ) T;  dummy->spawn(tk-1);
-...
-task& t1 = *new( dummy->allocate_child() ) T;  dummy->spawn(t1);
-...do any other work...
-dummy->wait_for_all();
-dummy->destroy(*dummy);
-

The key points of the pattern are:

- -
  1. The dummy task is a placeholder and never runs.
  2. - -
  3. The call to set_ref_count uses k+1 as its argument.
  4. - -
  5. The dummy task must be explicitly destroyed.
  6. -
- -
- - -
- - -
-

See Also

- -
- - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/empty_task_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/empty_task_cls.htm deleted file mode 100644 index 3b5d2bb1b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/empty_task_cls.htm +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - -empty_task Class - - - - - - - - - -

empty_task Class

- - -

Summary

-

Subclass of task that represents doing nothing.

- -
-

Syntax

-
class empty_task;
-
-

Header

-
#include "tbb/task.h"
-
-

Description

-

An empty_task is a task that does nothing. It is useful as a continuation of a parent task when the continuation should do nothing except wait for its predecessors to complete.

- -
-

Members

-
 namespace tbb {
-        class empty_task: public task {
-            /*override*/ task* execute() {return NULL;}
-        };  
- } 
- -
- - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/explicit_task_destruction.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/explicit_task_destruction.htm deleted file mode 100644 index 43c5b8e3d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/explicit_task_destruction.htm +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - - - - - - -Explicit task Destruction - - - - - - - - - -

Explicit task Destruction

- - -
-
-

Usually, a - task is automatically destroyed by the scheduler after - its method - execute returns. But sometimes - task objects are used idiomatically (such as for - reference counting) without ever running  - execute. Such tasks should be disposed with method - destroy. -

- -
- -

static void destroy ( task& victim - )

- -

Requirements -

- -

The refcount of - victim must be zero. This requirement is checked in - the debug version of the library. -

- -

Effects -

- -

Calls destructor and deallocates memory for - victim. If - victim.parent is not - null, atomically decrements - victim.parent->refcount. The parent is - not put into the ready pool if its - refcount becomes zero. The figure below summarizes the state - transition. -

- -
Effect of destroy(victim). - -

-
- -

- refcount adjustment is skipped if parent is - null. -

- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/priorities.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/priorities.htm deleted file mode 100644 index 3fef25a65..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/priorities.htm +++ /dev/null @@ -1,203 +0,0 @@ - - - - - - - - - - - - - - -Priorities - - - - - - - - - -

Priorities

- - -
-
-

Priority levels can be assigned to individual tasks or task groups. - The library supports three levels {low, normal, high} and two kinds of - priority: -

- -

-

    -
  • Static priority for enqueued tasks. -
  • - -
  • Dynamic priority for task groups. -
  • - -
- -

- -

The former is specified by an optional argument of the - task::enqueue() method, affects a specific task only, - and cannot be changed afterwards. Tasks with higher priority are dequeued - before tasks with lower priorities. The latter affects all the tasks in a group - and can be changed at any time either via the associated - task_group_context object or via any task belonging to - the group. The priority-related methods in - task_group_context are described in Section - task_group_context. The task scheduler tracks the highest priority of ready - tasks (both enqueued and spawned), and postpones execution of tasks with lower - priority until all higher priority task are executed. By default, all tasks and - task groups are created with normal priority. -

- -

- Note

-

Priority changes may not come into effect - immediately in all threads. So it is possible that lower priority tasks are - still being executed for some time even in the presence of higher priority - ones. -

- -
-

When several user threads (masters) concurrently execute parallel - algorithms, the pool of worker threads is partitioned between them - proportionally to the requested concurrency levels. In the presence of tasks - with different priorities, the pool of worker threads is proportionally divided - among the masters with the highest priority first. Only after fully satisfying - the requests of these higher priority masters, will the remaining threads be - provided to the other masters. -

- -

Though masters with lower priority tasks may be left without workers, - the master threads are never stalled themselves. Task priorities also do not - affect and are not affected by OS thread priority settings. -

- Note

-

Worker thread migration from one master thread - to another may not happen immediately. -

- -
-

- -

Related Constants and Methods -

- -

-

namespace tbb {
-    enum priority_t {
-        priority_normal = implementation-defined,
-        priority_low = implementation-defined,
-        priority_high = implementation-defined
-    };
-
-    class task {
-        // . . .
-        static void enqueue( task&, priority_t );
-        void set_group_priority ( priority_t );
-        priority_t group_priority () const;        
-        // . . .
-    };
-}
-
-

- - -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
void enqueue ( task& t, - priority_t p ) const - -

Enqueues task - t at the priority level - p. -

- -

- Note

-

The priority of an enqueued task does - not affect priority of the task group, from the scope of which - task::enqueue() is invoked. That is, the - group, which the task returned by - task::self() method belongs to. -

- -
-
void set_group_priority ( - priority_t ) - -

Changes priority of the task group, which this task belongs - to. -

- -
priority_t group_priority () - const - -

Returns: Priority of the task group, which this task - belongs to. -

- -
-
- -
- -
- - - -
-

See Also

- -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/recycling_tasks.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/recycling_tasks.htm deleted file mode 100644 index a6cd0aacc..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/recycling_tasks.htm +++ /dev/null @@ -1,220 +0,0 @@ - - - - - - - - - - - - - -Recycling Tasks - - - - - - - - - -

Recycling Tasks

- - -
-
-

It is often more efficient to recycle a task object - rather than reallocate one from scratch. Often the parent can become the - continuation, or one of the predecessors. -

- -

- Caution

-

Overlap rule: A recycled task - t must not be put in jeopardy of having - t.execute() rerun while the previous - invocation of - t.execute() is still running. The debug - version of the library detects some violations of this rule. -

- -
-

For example, - t.execute() should never spawn - t directly after recycling it. Instead, - t.execute() should return a pointer to - t, so that - t is spawned after - t.execute() completes. -

- - -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
void - recycle_as_continuation() - -

Requirements: Must be called while - method - execute() is running. -

- -

The - refcount for the recycled task should - be set to - n, where - n is the number of predecessors of - the continuation task. -

- -

- Caution

-

The caller must guarantee that the - task's - refcount does not become zero until - after method - execute() returns, otherwise the overlap - rule is broken. If the guarantee is not possible, use method - recycle_as_safe_continuation() instead, - and set the - refcount to - n+1. -

- -
-

The race can occur for a task - t when: -

- -

t.execute() - recycles - t as a continuation. -

- -

The continuation has predecessors that - all complete before - t.execute() returns. -

- -

Hence the recycled - t - will be implicitly respawned with the original - - t.execute()still running, which - breaks the overlap rule. -

- -

Patterns that use - recycle_as_continuation() typically avoid - the race by making - t.execute() return a pointer to one - of the predecessors instead of explicitly spawning that predecessor. The - scheduler implicitly spawns that predecessor after - t.execute() returns, thus - guaranteeing that the recycled t does not rerun prematurely. -

- -

Effects: Causes - this to not be destroyed when method - execute() returns. -

- -
void - recycle_as_safe_continuation() - -

Requirements: Must be called while - method - execute() is running. -

- -

The - refcount for the recycled task should - be set to - n+1, where - n is the number of predecessors of - the continuation task. The additional - +1 represents the task to be recycled. -

- -

Effects: Causes - this to not be destroyed when method - execute() returns. -

- -

This method avoids the race discussed for - recycle_as_continuation because the additional +1 in the - refcount prevents the continuation - from executing until the original invocation of - execute() - completes. -

- -
void recycle_as_child_of( - task& new_successor ) - -

Requirements: Must be called while - method - execute() is running. -

- -

Effects: Causes - this to become a predecessor of - new_successor, and not be destroyed - when method - execute() returns. -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/scheduling_algorithm.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/scheduling_algorithm.htm deleted file mode 100644 index 554acfea1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/scheduling_algorithm.htm +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - - - - - - - - -Scheduling Algorithm - - - - - - - - - -

Scheduling Algorithm

- - -
-
-

The scheduler employs a technique known as - work stealing. Each thread keeps a "ready pool" of tasks that - are ready to run. The ready pool is structured as a deque (double-ended queue) - of task objects that were - spawned. Additionally, there is a shared queue of - task objects that were - enqueued. The distinction between spawning a task and enqueuing - a task affects when the scheduler runs the task. -

- -

After completing a task - t, a thread chooses its next task according to - the first applicable rule below: -

- -
    -
  1. The task returned by - t.execute() -
  2. - -
  3. The successor of - t if - t was its last completed predecessor. -
  4. - -
  5. A task popped from the end of the thread’s own deque. -
  6. - -
  7. A task with affinity for the thread. -
  8. - -
  9. A task popped from approximately the beginning of the shared queue. - -
  10. - -
  11. A task popped from the beginning of another randomly chosen - thread’s deque. -
  12. - -
- -

When a thread - spawns a task, it pushes it onto the end of its - own deque. Hence rule (3) above gets the task most recently spawned by the - thread, whereas rule (6) gets the least recently spawned task of another - thread. -

- -

When a thread - enqueues a task, it pushes it onto the end of the shared queue. - Hence rule (5) gets one of the less recently enqueued tasks, and has no - preference for tasks that are enqueued. This is in contrast to spawned tasks, - where by rule (3) a thread prefers its own most recently spawned task. -

- -

Note the “approximately” in rule (5). For scalability reasons, the - shared queue does - not guarantee precise first-in first-out behavior. If strict - first-in first-out behavior is desired, put the real work in a separate queue, - and create tasks that pull work from that queue. The Non-Preemptive Priorities - section in the User Guide section explains the technique. -

- -

It is important to understand the implications of spawning versus - enqueuing for nested parallelism. -

- -
    -
  • Spawned tasks emphasize locality. Enqueued tasks - emphasize fairness. -
  • - -
- -
    -
  • For nested parallelism, spawned tasks tend - towards depth-first execution, whereas enqueued tasks cause breadth-first - execution. Because the space demands of breadth-first execution can be - exponentially higher than depth-first execution, enqueued tasks should be used - with care. -
  • - -
- -
    -
  • A spawned task might never be executed until a - thread explicitly waits on the task to complete. An enqueued tasks will - eventually run if all previously enqueued tasks complete. In the case where - there would ordinarily be no other worker thread to execute an enqueued task, - the scheduler creates an extra worker. -
  • - -
- -

In general, use spawned tasks unless there is a clear reason to use an - enqueued task. Spawned tasks yield the best balance between locality of - reference, space efficiency, and parallelism. The algorithm for spawned tasks - is similar to the work-stealing algorithm used by Cilk (Blumofe 1995). The - notion of work-stealing dates back to the 1980s (Burton 1981). The thread - affinity support is more recent (Acar 2000). -

- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/synchronization.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/synchronization.htm deleted file mode 100644 index b08f8bbbc..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/synchronization.htm +++ /dev/null @@ -1,467 +0,0 @@ - - - - - - - - - - - - - - - - -Synchronization - - - - - - - - - -

Synchronization

- - -
-
-

Spawning a task - t either causes the calling thread to invoke - t.execute(), or causes - t to be put into the ready pool. Any thread participating in task - scheduling may then acquire the task and invoke - t.execute(). Section Scheduling Algorithm - describes the structure of the ready pool. -

- -

The calls that spawn come in two forms: -

- -
    -
  • -

    Spawn a single - task. -

    - -
  • - -
  • -

    Spawn multiple - task objects specified by a - task_list and clear - task_list. -

    - -
  • - -
- -

Some calls distinguish between spawning root tasks - and non-root tasks. A root task is one that was created using method - allocate_root. -

- -

- Note

-

A - task should not spawn any predecessor task until it - has called method - set_ref_count to indicate both the number of - predecessors and whether it intends to use one of the "wait_for_all" methods. -

- -
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
void set_ref_count( int count - ) - -

Requirements: count>=0. If the - intent is to subsequently spawn - n predecessors and wait, then - count should be - n+1. Otherwise count should be - n. -

- -

Effects: Sets the - refcount attribute to - count. -

- -
void - increment_ref_count(); - -

Atomically increments - refcount attribute. -

- -
int - decrement_ref_count(); - -

Atomically decrements - refcount attribute. -

- -

Returns: New value of refcount - attribute. -

- -

- Note

-

Explicit use of - increment_ref_count and - decrement_ref_count is typically necessary - only when a task has more than one immediate successor task. Section "General - Acyclic Graphs of Tasks" of the Tutorial explains more. -

- -
-
void wait_for_all() - -

Requirements: - refcount=n+1, where - n is the number of predecessors that are still - running. -

- -

Effects: Executes tasks in ready - pool until - refcount is 1. Afterwards, leaves - refcount=1 if the task's - task_group_context specifies - concurrent_wait, otherwise sets refcount to - 0. The figure below summarizes the state transitions. -

- -

Also, - wait_for_all()automatically resets the - cancellation state of the - task_group_context implicitly associated - with the task , when all of the following conditions hold: -

- -
    -
  • -

    The task was allocated without - specifying a context. -

    - -
  • - -
  • -

    The calling thread is a user-created - thread, not an Intel® Threading Building Blocks (Intel® TBB) worker thread. -

    - -
  • - -
  • -

    It is the outermost call to - wait_for_all() by the thread. -

    - -
  • - -
- -

- Tip

-

Under such conditions there is no way to know afterwards - if the - task_group_context was cancelled. Use an - explicit - task_group_context if you need to know. -

- -
-
Effect of wait_for_all - -

-
- -

k=0 by default -

- -

k= 1 if corresponding - task_group_context specifies - concurrent_wait -

- -
static void spawn( task& t - ) - -

Puts task - t into the ready pool and immediately returns. -

- -

If the - successor of - t is not null, then - set_ref_count must be called on that - successor before spawning any child tasks, because - once the child tasks commence, their completion will cause - successor.refcount to be decremented - asynchronously. The debug version of the library often detects when a required - call to - set_ref_count is not made, or is made too - late. -

- -
static void spawn ( task_list& - list ) - -

Equivalent to executing spawn on each - task in - list and clearing - list, but may be more efficient. If - list is empty, there is no effect. -

- -

- Note

-

Spawning a long linear list of tasks - can introduce a bottleneck, because tasks are stolen individually. Instead, - consider using a recursive pattern or a parallel loop template to create many - pieces of independent work. -

- -
-
void spawn_and_wait_for_all( - task& t ) - -

Requirements: Any other - predecessors of - this must already be spawned. The - task - t must have a non-null attribute - successor. There must be a chain of - successor links from - t to the calling - task. Typically, this chain contains a - single link. That is, - t is typically an immediate predecessor of - this. -

- -

Effects: Similar to - {spawn(t); wait_for_all();}, but - often more efficient. Furthermore, it guarantees that - task is executed by the current thread. This - constraint can sometimes simplify synchronization. The figure below illustrates - the state transitions. It is similar to the figure above, with task - t being the - nth task. -

- -
Effect of - spawn_and_wait_for_all - -

-
- -

k=0 by default -

- -

k= 1 if corresponding - task_group_context specifies - concurrent_wait -

- -
void spawn_and_wait_for_all( - task_list& list ) - -

Similar to - {spawn(list); wait_for_all();}, but - often more efficient. -

- -
static void spawn_root_and_wait( - task& root ) - -

Requirements: The memory for task - root was allocated by - task::allocate_root(). -

- -

Effects: Sets - parent attribute of - root to an undefined value and execute root as - described in Section Processing of execute(). Destroys - root afterwards unless - root was recycled. -

- -
static void spawn_root_and_wait( - task_list& root_list ) - -

Requirements: Each - task object - t in - root_list must meet the requirements in static void - spawn_root_and_wait( task& root ). -

- -

Effects: For each - task object - t in root_list, performs - spawn_root_and_wait(t), possibly in - parallel. Section static void spawn_root_and_wait( task& root ) describes - the actions of - spawn_root_and_wait(t). -

- -
static void enqueue ( task& - ) - -

The task is scheduled for eventual - execution by a worker thread even if no thread ever explicitly waits for the - task to complete. If the total number of worker threads is zero, a special - additional worker thread is created to execute enqueued tasks. -

- -

Enqueued tasks are processed in roughly, - but not precisely, first-come first-serve order. -

- -

- Caution

-

Using enqueued tasks for recursive - parallelism can cause high memory usage, because the recursion will expand in a - breadth-first manner. Use ordinary spawning for recursive parallelism. -

- -
-

- Caution

-

Explicitly waiting on an enqueued task - should be avoided, because other enqueued tasks from unrelated parts of the - program might have to be processed first. The recommended pattern for using an - enqueued task is to have it asynchronously signal its completion, for example, - by posting a message back to the thread that enqueued it. See the Intel® - Threading Building Blocks - Design Patterns manual for such an example. -

- -
-
-
- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_allocation.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_allocation.htm deleted file mode 100644 index 5dab15aa8..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_allocation.htm +++ /dev/null @@ -1,248 +0,0 @@ - - - - - - - - - - - - - - - -task Allocation - - - - - - - - - -

task Allocation

- - -
-
-

Always allocate memory for - task objects using one of the special overloaded new - operators. The allocation methods do not construct the - task. Instead, they return a proxy object that can be - used as an argument to an overloaded version of operator new provided by the - library. -

- -

In general, the allocation methods must be called - before any of the tasks allocated are spawned. The exception to this rule is - allocate_additional_child_of(t), which can be called - even if - task - t is already running. The proxy types are - defined by the implementation. The only guarantee is that the phrase - "new(proxy) T(...)" allocates and constructs a task of type - T. -

- -

- Tip

-

Allocating tasks larger than 216 bytes might be - significantly slower than allocating smaller tasks. In general, task objects - should be small lightweight entities. -

- -
-

Because these methods are used idiomatically, the - members in the following table show the idiom, not the declaration. The - argument - this is typically implicit, but shown explicitly in - the headings to distinguish instance methods from static methods. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
new( task::allocate_root( - task_group_context& group ) ) T - - -

Allocate a - task of type - T - with the specified cancellation group. The figure below - summarizes the state transition. -

- -
Effect of - task::allocate_root() - -

-
- -

Use method - spawn_root_and_wait to execute the - task. -

- -
new( task::allocate_root() ) - T - -

Like - new(task::allocate_root(task_group_context&)) - except that cancellation group is the current innermost cancellation group. -

- -
new( x.allocate_continuation() ) - T - -

Allocates and constructs a task of type - T, and transfers the - successor from - x to the new task. No reference - counts change. The figure below summarizes the state transition. -

- -
Effect of - allocate_continuation() - -

-
- -
new( x.allocate_child() ) - T - -

Allocates a - task with - this as its - successor. The figure below summarizes the state - transition. -

- -
Effect of - allocate_child() - -

-
- -

If using explicit continuation passing, - then the continuation, not the - successor, should call the allocation - method, so that successor is set correctly. -

- -

If the number of tasks is not a small - fixed number, consider building a - task_list of the predecessors first, and - spawning them with a single call to task::spawn. If a - task must spawn some predecessors before all - are constructed, it should use - task::allocate_additional_child_of(*this) - instead, because that method atomically increments - refcount, so that the additional - predecessor is properly accounted. However, if doing so, the task must protect - against premature zeroing of - refcount by using a blocking-style - task pattern. -

- -
new(task::allocate_additional_child_of( y )) - T - -

Allocates a - task as a predecessor of another - task - y. Task - y may be already running or have other - predecessors running. The figure below summarizes the state transition. -

- -
Effect of - allocate_additional_child_of(successor) - -

-
- -

Because - y may already have running - predecessors, the increment of - y.refcount is - atomic (unlike the other allocation methods, where the increment is not - atomic). When adding a predecessor to a task with other predecessors running, - it is up to the programmer to ensure that the successor's - refcount does not prematurely reach 0 - and trigger execution of the successor before the new predecessor is added. -

- -
-
- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_cls.htm deleted file mode 100644 index 4a303b40c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_cls.htm +++ /dev/null @@ -1,326 +0,0 @@ - - - - - - - - - - - - - - - -task Class - - - - - - - - - -

task Class

- - -
-

Summary

- -

Base class for tasks. -

- -
- -

Syntax

- -

-

class task;
-

- -
- -

Header

- -

#include "tbb/task.h" -

- -
- -

Description

- -

Class task is the base class for tasks. You are - expected to derive classes from task, and at least override the virtual method - task* task::execute(). -

- -

Each instance of - task has associated attributes, that while not - directly visible, must be understood to fully grasp how task objects are used. - The attributes are described in the table below. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Task Attributes
-

Attribute -

- -
-

Description -

- -
-

successor -

- -
-

Either null, or a pointer to another task - whose refcount field will be decremented after the present task completes. - Typically, the successor is the task that allocated the present task, or a task - allocated as the continuation of that task. -

- -

Methods of class - task call the successor "parent" and its - preceding task the "child", because this was a common use case. But the library - has evolved such that a child-parent relationship is no longer required between - the predecessor and successor. -

- -
-

refcount -

- -
-

The number of Tasks that have this as their - parent. Increments and decrement of refcount are always atomic. -

- -
-
- -

- Tip

-

Always allocate memory for - task objects using special overloaded new operators - provided by the library, otherwise the results are undefined. Destruction of a - task is normally implicit. The copy constructor and - assignment operators for task are not accessible. This prevents accidental - copying of a task, which would be ill-defined and corrupt internal data - structures. -

- -
-
- -

Notation

- -

Some member descriptions illustrate effects by - diagrams such as in the figure below. -

- -
Example Effect Diagram - -

-
- -

Conventions in these diagrams are as follows: -

- -
    -
  • -

    The big arrow denotes the transition from the - old state to the new state. -

    - -
  • - -
  • -

    Each task's state is shown as a box divided - into - parent and - refcount sub-boxes. -

    - -
  • - -
  • -

    Gray denotes state that is ignored. Sometimes - ignored state is left blank. -

    - -
  • - -
  • -

    Black denotes state that is read. -

    - -
  • - -
  • -

    Blue denotes state that is written. -

    - -
  • - -
- -
- -

Members

- -

In the description below, types - proxy1...proxy5 are internal types. Methods returning such types - should only be used in conjunction with the special overloaded new operators, - as described in Section task Allocation. -

- -
namespace tbb {
-        class task {
-        protected:
-            task();
-     
-        public:
-            virtual ~task() {}
-     
-            virtual task* execute() = 0;
-     
-            // Allocation
-            static proxy1 allocate_root();
-            static proxy2 allocate_root( task_group_context& );
-            proxy3 allocate_continuation();
-            proxy4 allocate_child();
-            static proxy5 allocate_additional_child_of( task& );
-     
-            // Explicit destruction
-            static void destroy( task& victim );
-     
-            // Recycling
-            void recycle_as_continuation();
-            void recycle_as_safe_continuation();
-            void recycle_as_child_of( task& new_parent );
-     
-            // Synchronization
-            void set_ref_count( int count );
-            void increment_ref_count();
-            int decrement_ref_count();
-            void wait_for_all();
-            static void spawn( task& t );        
-            static void spawn( task_list& list );
-            void spawn_and_wait_for_all( task& t );  
-            void spawn_and_wait_for_all( task_list& list );  
-            static void spawn_root_and_wait( task& root );
-            static void spawn_root_and_wait( task_list& root );
-            static void enqueue( task& );
-     
-            // Task context
-            static task& self();
-            task* parent() const;
-				void set_parent(task *p);				
-            bool is_stolen_task() const;
-            task_group_context* group();
-            void change_group( task_group_context& ctx );
-     
-            // Cancellation
-            bool cancel_group_execution();
-            bool is_cancelled() const;
-            
-            // Affinity
-            typedef implementation-defined-unsigned-type affinity_id;
-            virtual void note_affinity( affinity_id id );
-            void set_affinity( affinity_id id );
-            affinity_id affinity() const;
-     
-            // Debugging
-            enum state_type {
-                executing,
-                reexecute,
-                ready,
-                allocated,
-                freed
-            };
-            int ref_count() const;
-            state_type state() const;
-        };
-    } // namespace tbb
-     
-    void *operator new( size_t bytes, const proxy1& p );
-    void operator delete( void* task, const proxy1& p );
-    void *operator new( size_t bytes, const proxy2& p );
-    void operator delete( void* task, const proxy2& p );
-    void *operator new( size_t bytes, const proxy3& p );
-    void operator delete( void* task, const proxy3& p );
-    void *operator new( size_t bytes, proxy4& p );
-    void operator delete( void* task, proxy4& p );
-    void *operator new( size_t bytes, proxy5& p );
-    void operator delete( void* task, proxy5& p );
-

- Note

-

Prior to Intel® Threading Building Blocks (Intel® - TBB) 3.0, methods - allocate_additional_child_of, - destroy, and - spawn were non-static. Evolution of the library made - the - this argument superfluous for these calls. The - change preserves source compatibility except in cases where the address of the - method was taken. Executables compiled with the older headers that had the - non-static form will continue to work when linked against the current Intel® - TBB 3.0 run-time libraries. -

- -
-
- -
- - - -
- - -

See Also

- -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_cls/task_derivation.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_cls/task_derivation.htm deleted file mode 100644 index 0ec975c13..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_cls/task_derivation.htm +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - - - - - - -task Derivation - - - - - - - - - -

task Derivation

- - -
-

Class task is an abstract base class. You must override method - task::execute. Method execute should perform - the necessary actions for running the task, and then return the next - task to execute, or NULL if the scheduler should choose the - next task to execute. Typically, if non-NULL, the returned task is one of the - predecessor tasks of this. Unless one of the recycle/reschedule - methods, described in Section Recycling Tasks, is called while method - execute() is running, the this object will be - implicitly destroyed after method execute returns.

-

Override the virtual destructor if necessary to release resources allocated by the constructor.

-

Override note_affinity to improve cache reuse across tasks, as described in Section Affinity.

-
-

Processing of execute()

When the scheduler decides that a thread should begin executing a task, it performs the - following steps:

- -
    -
  1. Invokes execute() and waits for it to return.
  2. - -
  3. If the task has not been marked by a method recycle_*:
      -
    1. Calls the task's destructor.
    2. - -
    3. If the task's parent is not null, then atomically decrements - successor->refcount, and if becomes zero, puts the - successor into the ready pool.
    4. - -
    5. Frees the memory of the task for reuse.
    6. - -
    -
  4. - - -
  5. If the task has been marked for recycling:
      -
    1. If marked by recycle_to_reexecute(deprecated), puts the task back - into the ready pool.
    2. - -
    3. Otherwise it was marked by recycle_as_child or recycle_as_continuation.
    4. - -
    -
  6. - - - -
- -
-
- - -
-

See Also

- -
- - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_context.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_context.htm deleted file mode 100644 index 830e42f73..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_context.htm +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - - - - - - - -task Context - - - - - - - - - -

task Context

- - -
-
-

The methods detailed in the following table expose - relationships between - task objects, and between - task objects and the underlying physical threads. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
static task& self() - -

Returns: Reference to innermost - task that the calling thread is running. A task is - considered running if its methods - execute(), note_affinity(), or destructor - are running. If the calling thread is a user-created thread that is not running - any task, - self() returns a reference to an implicit - dummy task associated with the thread. -

- -
task* parent() const - -

Returns: Value of the attribute - successor. The result is an undefined value if the - task was allocated by - allocate_root and is currently running under - control of - spawn_root_and_wait. -

- -
void set_parent(task* p) - - -

Requirements: Both tasks must be - in the same task group. For example, for - task t, t.group() == p->group() -

- -

Effects: Sets parent task pointer - to specified value - p. -

- -
bool is_stolen_task() - const - -

Returns: - true if task is running on a thread different than the - thread that spawned it. -

- -

- Note

-

Tasks enqueued with - task::enqueue() are never reported as - stolen. -

- -
-
task_group_context* - group() - -

Returns: Descriptor of the task - group, which this task belongs to. -

- -
void change_group( - task_group_context& ctx ) - -

Moves the task from its current task - group into the one specified by the - ctx argument. -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_debugging.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_debugging.htm deleted file mode 100644 index ef569ef6f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_debugging.htm +++ /dev/null @@ -1,202 +0,0 @@ - - - - - - - - - - - - - -task Debugging - - - - - - - - - -

task Debugging

- - -
-
-

Methods in this subsection are useful for - debugging. They may change in future implementations. -

- -
- -

state_type state() const

- -

- Caution

-

This method is intended for debugging only. Its - behavior or performance may change in future implementations. The definition - of task::state_type may change in future implementations. This - information is being provided because it can be useful for diagnosing problems - during debugging. -

- -
-

Returns -

- -

Current state of the task. The table below - describes valid states. Any other value is the result of memory corruption, - such as using a task whose memory has been deallocated. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Values Returned by task::state()
-

Value -

- -
-

Description -

- -
-

allocated -

- -
-

Task is freshly allocated or recycled. -

- -
-

ready -

- -
-

Task is in ready pool, or is in process of - being transferred to/from there. -

- -
-

executing -

- -
-

Task is running, and will be destroyed - after method execute() returns. -

- -
-

freed -

- -
-

Task is on internal free list, or is in - process of being transferred to/from there. -

- -
-

reexecute -

- -
-

Task is running, and will be respawned - after method execute() returns. -

- -
-
- -

The figure below summarizes possible state - transitions for a - task. -

- -
Typical task::state() Transitions - - -

-
- -
- -

int ref_count() const

- -

- Caution

-

This method is intended for debugging only. Its - behavior or performance may change in future implementations. -

- -
-

Returns -

- -

The value of the attribute - refcount. -

- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_group_context.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_group_context.htm deleted file mode 100644 index 74df71be3..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_group_context.htm +++ /dev/null @@ -1,300 +0,0 @@ - - - - - - - - - - - - - - - - - -task_group_context - - - - - - - - - -

task_group_context

- - -
-

Summary

- -

A cancellable group of tasks. -

- -
- -

Syntax

- -
class task_group_context;
-
- -

Header

- -
#include "tbb/task.h"
-
- -

Description

- -

A - task_group_context represents a group of tasks that - can be cancelled, or have their priority level set, together. All tasks belong - to some group. A task can be a member of only one group at any moment. -

- -

A root task is associated with a group by passing - task_group_context - object into task::allocate_root() call. A - child task automatically joins its parent task's group. A task can be moved - into other group using - task::change_group() - method. -

- -

The - task_group_context objects form a forest of trees. - Each tree's root is a - task_group_context constructed as - isolated. -

- -

A - task_group_context is cancelled explicitly by request, - or implicitly when an exception is thrown out of a task. Canceling a - task_group_context causes the entire subtree rooted at - it to be cancelled. -

- -

The priorities for all the tasks in a group can be - changed at any time either via the associated - task_group_context object, or via any task belonging - to the group. Priority changes propagate into the child task groups similarly - to cancellation. The effect of priorities on task execution is described in - Section Priorities. -

- -

Each user thread that creates a - task_scheduler_init implicitly has an - isolated task_group_context that acts as the root of - its initial tree. This context is associated with the dummy task returned by - task::self() when the user thread is not running any - task. -

- -
- -

Members

- -
 namespace tbb {
-        class task_group_context {
-        public:
-            enum kind_t {
-                isolated = implementation-defined,
-                bound = implementation-defined
-            };
-
-            enum traits_type {
-                exact_exception = implementation-defined,
-                concurrent_wait = implementation-defined,
-    #if TBB_USE_CAPTURED_EXCEPTION
-                default_traits = 0
-    #else
-                default_traits = exact_exception
-    #endif /* !TBB_USE_CAPTURED_EXCEPTION */
-            };
-            task_group_context( kind_t relation_with_parent = bound, 
-                                uintptr_t traits = default_traits );
-            ~task_group_context();
-            void reset();
-            bool cancel_group_execution();
-            bool is_group_execution_cancelled() const;
-            void set_priority ( priority_t );
-            priority_t priority () const;
-        };  
-    }
-
- - -
The following table provides additional information on the members - of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
task_group_context( kind_t - relation_to_parent=bound, uintptr_t traits=default_traits ) - -

Constructs an empty - task_group_context. If - relation_to_parent is bound, the - task_group_context will become a child of the - innermost running task's group when it is first passed into the call to - task::allocate_root(task_group_context&). - If this call is made directly from the user thread, the effect will be as if - relation_to_parent were isolated. If - relation_to_parent is - isolated, it has no parent - task_group_context. -

- -

The - traits argument should be the bitwise OR of - traits_type values. The flag - exact_exception controls how precisely - exceptions are transferred between threads. See Section Exceptions for details. - The flag - concurrent_wait controls the - reference-counting behavior of methods - task::wait_for_all and - task::spawn_and_wait_for_all. -

- -
~task_group_context() - -

Destroys an empty task_group_context. It is - a programmer error if there are still extant tasks in the group. -

- -
bool - cancel_group_execution() - -

Requests that tasks in group be cancelled. -

- -

Returns: False if group is already - cancelled; true otherwise. If concurrently called by multiple threads, exactly - one call returns true and the rest return false. -

- -
bool is_group_execution_cancelled() - const - -

Returns: True if group has received - cancellation. -

- -
void reset() - -

Reinitializes this to uncancelled state. -

- -

- Caution

-

This method is only safe to call once all tasks associated - with the group's subordinate groups have completed. This method must not be - invoked concurrently by multiple threads. -

- -
-
void set_priority ( priority_t - ) - -

Changes priority of the task group. -

- -
priority_t priority () - const - -

Returns: Priority of the task group. - -

- -
-
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_group_context/task_group_context.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_group_context/task_group_context.htm deleted file mode 100644 index 164c7e3f4..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_group_context/task_group_context.htm +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - - - - - - -task_group_context Members - - - - - - - - - -

task_group_context Members

- - -
-
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_list_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_list_cls.htm deleted file mode 100644 index 7a5927f09..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_list_cls.htm +++ /dev/null @@ -1,203 +0,0 @@ - - - - - - - - - - - - - - -task_list Class - - - - - - - - - -

task_list Class

- - -
-

Summary

- -

List of - task objects. -

- -
- -

Syntax

- -
class task_list;
-
- -

Header

- -
#include "tbb/task.h"
-
- -

Description

- -

A - task_list is a list of references to task - objects. The purpose of - task_list is to allow a - task to create a list of tasks and spawn them all at once via - the method - task::spawn(task_list&), as described in Section - static void spawn ( task_list& list ). -

- -

A - task can belong to at most one - task_list at a time, and on that - task_list at most once. A - task that has been spawned, but not started running, must not - belong to a - task_list. A - task_list cannot be copy-constructed or assigned. -

- -
- -

Members

- -
namespace tbb {
-               class task_list {
-                public:
-                    task_list();
-                    ~task_list();
-                    bool empty() const;
-                    void push_back( task& task );
-                    task& pop_front();
-                    void clear();
-                };
-            } 
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
task_list() - -

Constructs an empty list. -

- -
~task_list() - -

Destroys the list. Does not destroy the task objects. -

- -
bool empty() const - -

Returns: True if list is empty; false otherwise. -

- -
push_back( task& task - ) - -

Inserts a reference to - task at back of the list. -

- -
task& task - pop_front() - -

Removes a - task reference from front of list. -

- -

Returns: The reference that was removed. -

- -
void clear() - -

Removes all - task references from the list. Does not destroy the - task objects. -

- -
-
- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_scheduler_init_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_scheduler_init_cls.htm deleted file mode 100644 index 87f3e14a6..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_scheduler_init_cls.htm +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - - - - - - - - - -task_scheduler_init Class - - - - - - - - - -

task_scheduler_init Class

- - -
-

Summary

- -

Class that explicitly represents thread's interest - in task scheduling services. -

- -
- -

Syntax

- -

-

class task_scheduler_init;
-

- -
- -

Header

- -

-

#include "tbb/task_scheduler_init.h"
-

- -
- -

Description

- -

Using - task_scheduler_init is optional in Intel® Threading Building Blocks (Intel® TBB) 2.2. By - default, Intel® TBB 2.2 automatically creates a task scheduler the first time - that a thread uses task scheduling services and destroys it when the last such - thread exits. -

- -

An instance of - task_scheduler_init can be used to control the - following aspects of the task scheduler: -

- -
    -
  • -

    When the task scheduler is constructed and - destroyed. -

    - -
  • - -
  • -

    The number of threads used by the task - scheduler. -

    - -
  • - -
  • -

    The stack size for worker threads. -

    - -
  • - -
- -

To override the automatic defaults for task - scheduling, a task_scheduler_init must become active before - the first use of task scheduling services. -

- -

A - task_scheduler_init is either "active" or "inactive". -

- -

The default constructor for a - task_scheduler_init activates it, and the destructor - deactivates it. To defer activation, pass the value - task_scheduler_init::deferred to the constructor. Such - a - task_scheduler_init may be activated later by calling - method - initialize. Destruction of an active - task_scheduler_init implicitly deactivates it. To - deactivate it earlier, call method - terminate. -

- -

An optional parameter to the constructor and method - - initialize allows you to specify the number of threads - to be used for - task execution. This parameter is useful for scaling - studies during development, but should not be set for production use. -

- -

- Tip

-

The reason for not specifying the number of - threads in production code is that in a large software project, there is no way - for various components to know how many threads would be optimal for other - threads. Hardware threads are a shared global resource. It is best to leave the - decision of how many threads to use to the task scheduler. -

- -
-

To minimize time overhead, it is best to rely upon - automatic creation of the task scheduler, or create a single - task_scheduler_init object whose activation spans all - uses of the library's task scheduler. A - task_scheduler_init is not assignable or - copy-constructible. -

- -
- -

Example

- -
// Sketch of one way to do a scaling study
-#include <iostream>
-#include "tbb/task_scheduler_init.h"
- 
-int main() {
-     int n = task_scheduler_init::default_num_threads();
-     for( int p=1; p<=n; ++p ) {
-         // Construct task scheduler with p threads
-         task_scheduler_init init(p);
-         tick_count t0 = tick_count::now();
-          ... execute parallel algorithm using task or
-              template algorithm here...
-         tick_count t1 = tick_count::now();
-         double t = (t1-t0).seconds();
-         cout << "time = " << t << " with " << p << "threads\n";
-         // Implicitly destroy task scheduler.
-     }
-     return 0;
-}
-
- -

Members

- -
  namespace tbb {
-        typedef unsigned-integral-type stack_size_type;
-     
-        class task_scheduler_init {
-        public:
-            static const int automatic = implementation-defined;
-            static const int deferred = implementation-defined;
-            task_scheduler_init( int max_threads=automatic, 
-                                 stack_size_type thread_stack_size=0 );
-            ~task_scheduler_init();
-            void initialize( int max_threads=automatic );
-            void terminate();
-            static int default_num_threads();
-            bool is_active() const;
-        };
-    } // namespace tbb
-
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_scheduler_init_cls/task_scheduler_init.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_scheduler_init_cls/task_scheduler_init.htm deleted file mode 100644 index 9486c20f8..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_scheduler_init_cls/task_scheduler_init.htm +++ /dev/null @@ -1,172 +0,0 @@ - - - - - - - - - - - - - -task_scheduler_init( int max_threads=automatic, stack_size_type thread_stack_size=0 ) - - - - - - - - - -

task_scheduler_init( int max_threads=automatic, - stack_size_type thread_stack_size=0 )

- - -
-
-

Requirements -

- -

The value - max_threads shall be one of the values in the table - below. -

- -

Effects -

- -

If - max_threads==task_scheduler_init::deferred, nothing - happens, and the - task_scheduler_init remains inactive. Otherwise, the - task_scheduler_init is activated as follows. If the thread has no other active - task_scheduler_init objects, the thread allocates - internal thread-specific resources required for scheduling task objects. If - there were no threads with active - task_scheduler_init objects yet, then internal worker - threads are created as described in the table below. These workers sleep until - needed by the task scheduler. Each worker created by the scheduler has an - implicit active - task_scheduler_init object. -

- -

- Note

-

As of Intel® Threading Building Blocks (Intel® TBB) 3.0, it is meaningful for the parameter - - max_threads to differ for different calling threads. - For example, if thread A specifies - max_threads=3 and thread B specifies - max_threads=7, then A is limited to having 2 - workers, but B can have up to 6 workers. Since workers may be shared between A - and B, the total number of worker threads created by the scheduler could be 6. -

- -
-

- Note

-

Some implementations create more workers than - necessary. However, the excess workers remain asleep unless needed. -

- -
-

The optional parameter - thread_stack_size specifies the stack size of each - worker thread. A value of 0 specifies use of a default stack size. The first - active - task_scheduler_init establishes the stack size for all - worker threads. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Values for max_threads
-

max_threads -

- -
-

Semantics -

- -
-

task_scheduler_init::automatic -

- -
-

Let library determine - max_threads - based on hardware configuration. -

- -
-

task_scheduler_init::deferred -

- -
-

Defer activation actions. -

- -
-

positive integer -

- -
-

Request that up to - max_threads-1 - worker threads work on behalf of the calling thread at any one time. -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_scheduler_init_cls/task_scheduler_init_1.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_scheduler_init_cls/task_scheduler_init_1.htm deleted file mode 100644 index 61033000a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_scheduler_init_cls/task_scheduler_init_1.htm +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - - - - - - - - -~task_scheduler_init() - - - - - - - - - -

~task_scheduler_init()

- - -

Effects

- -

If the task_scheduler_init is inactive, nothing happens. Otherwise, the task_scheduler_init is deactivated as follows. If the thread has no other active task_scheduler_init objects, the thread deallocates internal thread-specific resources required for scheduling task objects. If no existing thread has any active task_scheduler_init objects, then the internal worker threads are terminated.

-
- -

void initialize( int max_threads=automatic )

-

Requirements

- -

The task_scheduler_init shall be inactive.

- -

Effects

- -

Similar to constructor.

-
- -

void terminate()

-

Requirements

- -

The task_scheduler_init shall be active.

- -

Effects

- -

Deactivates the task_scheduler_init without destroying it. The description of the destructor specifies what deactivation entails.

-
- -

int default_num_threads()

-

Returns

- -

One more than the number of worker threads that task_scheduler_init creates by default.

-
- -

bool is_active() const

-

Returns

- -

True if *this is active as described in Section task_scheduler_init Class ; false otherwise.

-
- -

Mixing with OpenMP

-

Mixing OpenMP with Intel® Threading Building Blocks is supported. Performance may be less than a pure OpenMP or pure Intel® Threading Building Blocks solution if the two forms of parallelism are nested.

- -

An OpenMP parallel region that plans to use the - task scheduler should create a - task_scheduler_init inside the parallel region, because the - parallel region may create new threads unknown to Intel® Threading Building - Blocks. Each of these new OpenMP threads, like native threads, must create a - task_scheduler_init object before using Intel® Threading - Building Blocks algorithms. The following example demonstrates how to do this.

- -
void OpenMP_Calls_TBB( int n ) {
-#pragma omp parallel
-     {
-         task_scheduler_init init;
-#pragma omp for
-         for( int i=0; i<n; ++i ) {
-             ...can use class task or 
-                Intel® Threading Building Blocks algorithms here ...
-         }
-     }
-}
- -
-
- - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_scheduler_observer.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_scheduler_observer.htm deleted file mode 100644 index 6c4d0f950..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_scheduler_observer.htm +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - - - - -task_scheduler_observer - - - - - - - - - -

task_scheduler_observer

- - -
-

Summary

Class that represents thread's interest in task scheduling services.

-
-

Syntax

-
class task_scheduler_observer;
-

Header

-

#include "tbb/task_scheduler_observer.h"
-

-
-

Description

A task_scheduler_observer permits clients to observe when a thread starts or - stops participating in task scheduling (globally). You typically derive your own observer class - from task_scheduler_observer, and override virtual methods - on_scheduler_entry or on_scheduler_exit. An - instance has a state observing or not observing. Remember to call - observe() to enable observation.

-
-

Members

-
namespace tbb {
-    class task_scheduler_observer {
-    public:
-        task_scheduler_observer();
-        virtual ~task_scheduler_observer();
-        void observe( bool state=true );
-        bool is_observing() const;
-        virtual void on_scheduler_entry( bool is_worker ) {}
-        virtual void on_scheduler_exit( bool is_worker } {}
-    };
-  }
- -
- - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_scheduler_observer/task_scheduler_observer_member.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_scheduler_observer/task_scheduler_observer_member.htm deleted file mode 100644 index 1c0a40076..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/task_scheduler/task_scheduler_observer/task_scheduler_observer_member.htm +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - -task_scheduler_observer Members - - - - - - - - - -

task_scheduler_observer Members

- - -
- -
The following table provides additional information on the members - of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
task_scheduler_observer() - -

Constructs instance with observing - disabled. -

- -
~task_scheduler_observer() - - -

Disables observing. Waits for extant - invocations of - on_scheduler_entry or - on_scheduler_exit to complete. -

- -
void observe( bool state=true - ) - -

Enables observing if state is true; - disables observing if state is false. -

- -
bool is_observing() const - -

Returns: True if observing is - enabled; false otherwise. -

- -
virtual void on_scheduler_entry( - bool is_worker) - -

- The task scheduler invokes this method once per each thread participating in TBB work - after enabling the observation and before it starts participating for the first time, - or before it executes the first task stolen after enabling the observation. -

- -

The flag - is_worker is true if the thread was created by - the task scheduler; false otherwise. -

- -

- Note

-

If a thread enables observing before - spawning a task, it is guaranteed that the thread that executes the task will - have invoked - on_scheduler_entry before executing the - task. -

- -
-

Effects: The default behavior does - nothing. -

- -
virtual void on_scheduler_exit( bool - is_worker ) - -

The task scheduler invokes this method when - a thread stops participating in task scheduling, if observing is enabled. -

- -

- Caution

-

Sometimes - on_scheduler_exit is invoked for a thread - but not - on_scheduler_entry. This situation can arise - if a thread never steals a task. -

- -
-

- Caution

-

A process does not wait for the - worker threads to clean up. Thus a process can terminate before - on_scheduler_exit is invoked. -

- -
-

Effects: The default behavior does - nothing. -

- -
-
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage.htm deleted file mode 100644 index abc8daa91..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage.htm +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - -Thread Local Storage - - - - - - - - - -

Thread Local Storage

- - -
-
-

Intel® Threading Building Blocks (Intel® TBB) - provides two template classes for thread local storage. Both provide a - thread-local element per thread. Both lazily create the elements on demand. - They differ in their intended use models: -

- -

combinable provides thread-local - storage for holding per-thread subcomputations that will later be reduced to a - single result. It is PPL compatible. -

- -

enumerable_thread_specific - provides thread-local storage that acts like an STL container with one element - per thread. The container permits iterating over the elements using the usual - STL iteration idioms. -

- -

This section also describes template class - flatten2d, which assists a common idiom where an - enumerable_thread_specific represents a container - partitioner across threads. -

- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/combinable_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/combinable_cls.htm deleted file mode 100644 index 50205e8ec..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/combinable_cls.htm +++ /dev/null @@ -1,292 +0,0 @@ - - - - - - - - - - - - - -combinable Template Class - - - - - - - - - -

combinable Template Class

- - -
-

Summary

- -

Template class for holding thread-local values - during a parallel computation that will be merged into a final value. -

- -
- -

Syntax

- -
template<typename T> class combinable;
-
- -

Header

- -
#include "tbb/combinable.h"
-
- -

Description

- -

A - combinable<T> provides each thread with its own - local instance of type - T. -

- -
- -

Members

- -
namespace tbb {
-        template <typename T>
-        class combinable {
-        public:
-            combinable();
-     
-            template <typename FInit>
-            combinable(FInit finit);}
-     
-            combinable(const combinable& other);
-     
-            ~combinable();
-     
-            combinable& operator=( const combinable& other);
-            void clear();
-     
-            T& local();
-            T& local(bool & exists);
-     
-            template<typename FCombine> T combine(FCombine fcombine);
-            template<typename Func> void combine_each(Func f);
-        };
-}
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
combinable() - -

Constructs - combinable such that any thread-local - instances of - T will be created using default - construction. -

- -
template<typename FInit> - combinable(FInit finit) - -

Constructs - combinable such that any thread-local - element will be created by copying the result of - finit(). -

- -

- Caution

-

The expression finit() must be safe to evaluate - concurrently by multiple threads. It is evaluated each time a thread-local - element is created. -

- -
-
combinable( const combinable& - other ); - -

Construct a copy of - other, so that it has copies of each element in - other with the same thread mapping. -

- -
~combinable() - -

Destroy all thread-local elements in - *this. -

- -
combinable& operator=( const - combinable& other ) - -

Set *this to be a copy of - other. -

- -
void clear() - -

Remove all elements from - *this. -

- -
T& local() - -

If thread-local element does not exist, create it. -

- -

Returns: Reference to thread-local element. -

- -
T& local( bool& exists - ) - -

Similar to - local(), except that - exists is set to true if an element was already - present for the current thread; false otherwise. -

- -

Returns: Reference to thread-local element. -

- -
template<typename FCombine>T - combine(FCombine fcombine) - -

Requires: Parameter - fcombine should be an associative - binary functor with the signature - T(T,T) or T(const T&,const - T&). -

- -

Effects: Computes a reduction over - all elements using binary functor - fcombine. If there are no elements, creates the result - using the same rules as for creating a thread-local element. -

- -

Returns: Result of the reduction. -

- -
template<typename Func> void - combine_each(Func f) - -

Requires: Parameter - f - should be a unary functor with the signature - void(T) or - void(const T&). -

- -

Effects: Evaluates - f(x) for each instance - x of - T in - *this. -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/enumerable_thread_specific_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/enumerable_thread_specific_cls.htm deleted file mode 100644 index bc1ac8513..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/enumerable_thread_specific_cls.htm +++ /dev/null @@ -1,230 +0,0 @@ - - - - - - - - - - - - - - - - - - -enumerable_thread_specific Template Class - - - - - - - - - -

enumerable_thread_specific Template Class

- - -
-

Summary

Template class for - thread local storage.

-
-

Syntax

-

enum ets_key_usage_type {
-    ets__key_per_instance,
-    ets_no_key
-    };
-
-template <typename T,
-    typename Allocator=cache_aligned_allocator<T>,
-    ets_key_usage_type ETS_key_type=ets_no_key>
-class enumerable_thread_specific;
- -

-
-

Header

-

#include "tbb/enumerable_thread_specific.h"
-

-
-

Description

An - enumerable_thread_specific provides thread local storage (TLS) - for elements of type T. An enumerable_thread_specific acts as a - container by providing iterators and ranges across all of the thread-local - elements.

-

The thread-local elements are created lazily. A freshly constructed - enumerable_thread_specific has no elements. When a thread - requests access to an enumerable_thread_specific, it creates an - element corresponding to that thread. The number of elements is equal to the number - of distinct threads that have accessed the - enumerable_thread_specific and not the number of threads in use - by the application. Clearing an enumerable_thread_specific removes - all of its elements.

-

The ETS_key_usage_type parameter can be - used to select between an implementation that consumes no native TLS keys and a - specialization that offers higher performance but consumes 1 native TLS key per - enumerable_thread_specific instance. If no ETS_key_usage_type - parameter is provided, ets_no_key is used by - default.

-Caution: -

The number of native TLS keys is limited and can be fairly small, for example 64 - or 128. Therefore it is recommended to restrict the use of the - ets_key_per_instance specialization to only the most - performance critical cases.

- -
-

Example

The following code shows a simple example usage of - enumerable_thread_specific. The number of calls to - null_parallel_for_body::operator() and total number of iterations executed are - counted by each thread that participates in the parallel_for, and these counts are - printed at the end of main.

- -
#include <cstdio>
-#include <utility> 
-
-#include "tbb/task_scheduler_init.h"
-#include "tbb/enumerable_thread_specific.h"
-#include "tbb/parallel_for.h"
-#include "tbb/blocked_range.h" 
-
-using namespace tbb; 
-
-typedef enumerable_thread_specific< std::pair<int,int> > CounterType; 
-CounterType MyCounters (std::make_pair(0,0));
-
-struct Body {
-     void operator()(const tbb::blocked_range<int> &r) const {
-         CounterType::reference my_counter = MyCounters.local();
-          ++my_counter.first;         
-          for (int i = r.begin(); i != r.end(); ++i)             
-              ++my_counter.second;    
-     }
-}; 
-
-int main() {
-     parallel_for( blocked_range<int>(0, 100000000), Body());
-     
-     for (CounterType::const_iterator i = MyCounters.begin();
-          i != MyCounters.end();  ++i)
-    {
-         printf("Thread stats:\n");
-            printf("  calls to operator(): %d", i->first);
-            printf("  total # of iterations executed: %d\n\n",
-                 i->second);
-    }
-}
-
-

Example with Lambda Expressions

Class - enumerable_thread_specific has a method - combine(f) that does a reduction using binary functor - f, which can be written using a lambda expression. - For example, the previous example can be extended to sum the thread-local values by - adding the following lines to the end of function - main:

- -
std::pair<int,int> sum =
-    MyCounters.combine([](std::pair<int,int> x,
-                          std::pair<int,int> y) {
-        return std::make_pair(x.first+y.first,
-                              x.second+y.second);
-    });
-printf("Total calls to operator() = %d, "
-         "total iterations = %d\n", sum.first, sum.second);
-
- -

Members

namespace tbb {
-    template <typename T,
-        typename Allocator=cache_aligned_allocator<T>,
-        ets_key_usage_type ETS_key_type=ets_no_key >
-    class enumerable_thread_specific {
-    public:
-        // Basic types
-        typedef Allocator allocator_type;
-        typedef T value_type;
-        typedef T& reference;
-        typedef const T& const_reference;
-        typedef T* pointer;
-        typedef implementation-dependent size_type;
-        typedef implementation-dependent difference_type;
-
-        // Iterator types
-        typedef implementation-dependent iterator;
-        typedef implementation-dependent const_iterator;
-
-        // Parallel range types
-        typedef implementation-dependent range_type;
-        typedef implementation-dependent const_range_type;
-        
-        // Whole container operations
-        enumerable_thread_specific();
-        enumerable_thread_specific(
-            const enumerable_thread_specific &other 
-        );
-        template<typename U, typename Alloc, 
-           ets_key_usage_type Cachetype>
-        enumerable_thread_specific( 
-          const enumerable_thread_specific<U, Alloc, 
-              Cachetype>& other );
-        template <typename Finit>
-        enumerable_thread_specific( Finit finit );
-        enumerable_thread_specific(const T &exemplar);
-        ~enumerable_thread_specific();
-        enumerable_thread_specific&
-        operator=(const enumerable_thread_specific& other);
-        template<typename U, typename Alloc,
-            ets_key_usage_type Cachetype>
-        enumerable_thread_specific&
-        operator=(
-            const enumerable_thread_specific<U, Alloc, Cachetype>&
-                other
-        );
-        void clear();
-        
-        // Concurrent operations
- reference local(); 
- reference local(bool& existis);
-        size_type size() const;
-        bool empty() const;
-        
-        // Combining
-        template<typename FCombine> T combine(FCombine fcombine);
-        template<typename Func> void combine_each(Func f);
-        
-        // Parallel iteration
-        range_type range( size_t grainsize=1 );
-        const_range_type range( size_t grainsize=1 ) const;
-        
-        // Iterators
-        iterator begin();
-        iterator end();
-        const_iterator begin() const;
-        const_iterator end() const;
-    }; 
-}
-
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/enumerable_thread_specific_cls/combining.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/enumerable_thread_specific_cls/combining.htm deleted file mode 100644 index 73d741ec3..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/enumerable_thread_specific_cls/combining.htm +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - - - - - - - -Combining - - - - - - - - - -

Combining

- - -
- -
The methods in this section iterate across the entire container. - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
template<typename FCombine>T - combine(FCombine fcombine) - -

Requires: Parameter - fcombine should be an associative - binary functor with the signature - T(T,T) or T(const T&,const - T&). -

- -

Effects: Computes reduction over all - elements using binary functor - fcombine. If there are no elements, creates the result - using the same rules as for creating a thread-local element. -

- -

Returns: Result of the reduction. -

- -
template<typename Func> void - combine_each(Func f) - -

Requires: Parameter - f - should be a unary functor with the signature - void(T) or - void(const T&). -

- -

Effects: Evaluates - f(x) for each instance - x of - T in - *this. -

- -
-
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/enumerable_thread_specific_cls/concurrent_operations1.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/enumerable_thread_specific_cls/concurrent_operations1.htm deleted file mode 100644 index 13ebeb07e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/enumerable_thread_specific_cls/concurrent_operations1.htm +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - - - - -Concurrent Operations - - - - - - - - - -

Concurrent Operations

- - -
- -
The following table provides additional information on the members - of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
reference local() - -

If there is no current element - corresponding to the current thread, then this method constructs a new element. - A new element is copy-constructed if an exemplar was provided to the - constructor for - *this, otherwise a new element is default - constructed. -

- -

Returns: A reference to the element - of - *this that corresponds to the current thread. -

- -
reference local( bool& exists - ) - -

Similar to - local(), except that - exists is set to true if an element was - already present for the current thread; false otherwise. -

- -

Returns: Reference to thread-local - element. -

- -
size_type size() const - -

Returns: The number of elements in - *this. The value is equal to the number of - distinct threads that have called local() after - *this was constructed or most recently - cleared. -

- -
bool empty() const - -

Returns: - size()==0 -

- -
-
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/enumerable_thread_specific_cls/iterators_specific_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/enumerable_thread_specific_cls/iterators_specific_cls.htm deleted file mode 100644 index 8549b411f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/enumerable_thread_specific_cls/iterators_specific_cls.htm +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - - - - - - - - -Iterators - - - - - - - - - -

Iterators

- - -
-
-

Template class - enumerable_thread_specific supports random access - iterators, which enable iteration over the set of all elements in the - container. -

- - -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
iterator begin() - -

Returns: - iterator pointing to the beginning of the - set of elements. -

- -
iterator end() - -

Returns: - iterator pointing to the end of the set of - elements. -

- -
const_iterator begin() - const - -

Returns: - const_iterator pointing to the beginning of - the set of elements. -

- -
const_iterator end() - const - -

Returns: - const_iterator pointing to the end of the - set of elements. -

- -
- -
- -
- -
- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/enumerable_thread_specific_cls/parallel_literation_specific_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/enumerable_thread_specific_cls/parallel_literation_specific_cls.htm deleted file mode 100644 index 9acf6922b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/enumerable_thread_specific_cls/parallel_literation_specific_cls.htm +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - - - - - - - -Parallel Iteration - - - - - - - - - -

Parallel Iteration

- - -
-
-

Types - const_range_type and - range_type model the Container Range concept. The - types differ only in that the bounds for a - const_range_type are of type - const_iterator, whereas the bounds for a - range_type are of type iterator. -

- - -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
const_range_type range( size_t - grainsize=1 ) const - -

Returns: A - const_range_type representing all elements - in - *this. The parameter - grainsize is in units of elements. -

- -
range_type range( size_t - grainsize=1 ) - -

Returns: A - range_type representing all elements in - *this. The parameter - grainsize is in units of elements. -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/enumerable_thread_specific_cls/whole_container_operations_specific_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/enumerable_thread_specific_cls/whole_container_operations_specific_cls.htm deleted file mode 100644 index c444162d5..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/enumerable_thread_specific_cls/whole_container_operations_specific_cls.htm +++ /dev/null @@ -1,235 +0,0 @@ - - - - - - - - - - - - - -Whole Container Operations - - - - - - - - - -

Whole Container Operations

- - -
-
-

Safety -

- -

These operations must not be invoked concurrently - on the same instance of - enumerable_thread_specific. -

- - -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
enumerable_thread_specific() - -

Constructs an - enumerable_thread_specific where each local - copy will be default constructed. -

- -
enumerable_thread_specific(const - enumerable_thread_specific &other) - -

Copy construct an - enumerable_thread_specific. The values are - copy constructed from the values in - other and have same thread - correspondence. -

- -
template<typename U, typename - Alloc, ets_key_usage_type Cachetype> enumerable_thread_specific( const - enumerable_thread_specific<U, Alloc, Cachetype>& other ) - -

Copy construct an - enumerable_thread_specific. The values are - copy constructed from the values in - other and have same thread - correspondence. -

- -
template< typename Finit> - enumerable_thread_specific(Finit finit) - -

Constructs - enumerable_thread_specific such that any - thread-local element will be created by copying the result of - finit(). -

- -

- Note

-

The expression - finit() must be safe to evaluate - concurrently by multiple threads. It is evaluated each time a thread-local - element is created. -

- -
-
enumerable_thread_specific(const - T& exemplar) - -

Constructs an - enumerable_thread_specific where each local - copy will be copy constructed from - exemplar. -

- -
~enumerable_thread_specific() - -

Destroys all elements in - *this. Destroys any native TLS keys that - were created for this instance. -

- -
enumerable_thread_specific& - operator=(const enumerable_thread_specific& other); - -

Sets - *this to be a copy of - other. -

- -
template< typename U, typename - Alloc, ets_key_usage_type Cachetype> enumerable_thread_specific& - operator=(const enumerable_thread_specific<U, Alloc, Cachetype>& - other); - -

Sets - *this to be a copy of - other. -

- -

- Note

-

The allocator and key usage - specialization is unchanged by this call. -

- -
-
void clear() - -

Destroys all elements in - *this. Destroys and then recreates any - native TLS keys used in the implementation. -

- -

- Note

-

In the current implementation, there is - no performance advantage of using clear instead of destroying and - reconstructing an - enumerable_thread_specific. -

- -
-
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/flattened2d_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/flattened2d_cls.htm deleted file mode 100644 index a8df2f07a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/flattened2d_cls.htm +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - - - - - - - - - - - - -flattened2d Template Class - - - - - - - - - -

flattened2d Template Class

- - -

Summary

-

Adaptor that provides a flattened view of a container of containers.

- -
-

Syntax

-
-    template<typename Container>
-    class flattened2;
-     
-    template <typename Container>
-    flattened2d<Container> flatten2d(const Container &c); 
-     
-    template <typename Container>
-    flattened2d<Container> flatten2d(
-        const Container &c, 
-        const typename Container::const_iterator b, 
-        const typename Container::const_iterator e); 
-
-

Header

-
#include "tbb/enumerable_thread_specific.h"
-
-

Description

-

A flattened2d provides a flattened view of a container of containers. Iterating from begin() to end()visits all of the elements in the inner containers. This can be useful when traversing an enumerable_thread_specific whose elements are containers.

- -

The utility function flatten2d creates a flattened2d object from a container.

- -
-

Example

-

The following code shows a simple example usage of flatten2d and flattened2d. Each thread collects the values of i that are evenly divisible by K in a thread-local vector. In main, the results are printed by using a flattened2d to simplify the traversal of all of the elements in all of the local vectors.

- -
    
-             #include <iostream>
-             #include <utility>
-             #include <vector>
-              
-             #include "tbb/task_scheduler_init.h"
-             #include "tbb/enumerable_thread_specific.h"
-             #include "tbb/parallel_for.h"
-             #include "tbb/blocked_range.h"
-              
-             using namespace tbb;
-              
-             // A VecType has a separate std::vector<int> per thread
-             typedef enumerable_thread_specific< std::vector<int> > VecType;
-             VecType MyVectors; 
-             int K = 1000000;
-              
-             struct Func {
-                 void operator()(const blocked_range<int>& r) const {
-                     VecType::reference v = MyVectors.local();
-                     for (int i=r.begin(); i!=r.end(); ++i) 
-                         if( i%k==0 ) 
-                             v.push_back(i);
-                 } 
-             };
-              
-             int main() {
-                 parallel_for(blocked_range<int>(0, 100000000), 
-                              Func());
-              
-                 flattened2d<VecType> flat_view = flatten2d( MyVectors );
-                 for( flattened2d<VecType>::const_iterator 
-                      i = flat_view.begin(); i != flat_view.end(); ++i) 
-                     cout << *i << endl;
-                 return 0;
-             }
-              
-
-

Members

-
namespace tbb {
-            
-                template<typename Container>
-                class flattened2d {
-             
-                public:
-                    // Basic types
-                    typedef implementation-dependent size_type;
-                    typedef implementation-dependent difference_type;
-                    typedef implementation-dependent allocator_type;
-                    typedef implementation-dependent value_type;
-                    typedef implementation-dependent reference;
-                    typedef implementation-dependent const_reference;
-                    typedef implementation-dependent pointer;
-                    typedef implementation-dependent const_pointer;
-             
-                    typedef implementation-dependent iterator;
-                    typedef implementation-dependent const_iterator;
-             
-                    flattened2d( const Container& c );
-             
-                    flattened2d( const Container& c, 
-                                 typename Container::const_iterator first,
-                                typename Container::const_iterator last );
-             
-                    iterator begin();
-                    iterator end();
-                    const_iterator begin() const;
-                    const_iterator end() const;
-             
-                    size_type size() const;
-                };
-             
-                template <typename Container>
-                flattened2d<Container> flatten2d(const Container &c);
-             
-                template <typename Container>
-                flattened2d<Container> flatten2d(
-                    const Container &c, 
-                    const typename Container::const_iterator first, 
-                    const typename Container::const_iterator last);
-            }
-
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/flattened2d_cls/concurrent_operations.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/flattened2d_cls/concurrent_operations.htm deleted file mode 100644 index 9ae430c62..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/flattened2d_cls/concurrent_operations.htm +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - - - - - - -Concurrent Operations - - - - - - - - - -

Concurrent Operations

- - -
-
-

Safety -

- -

These operations may be invoked concurrently on the - same - flattened2d. - -

The following table provides additional information on the member - of this template class. - - - - - - - - - - - - - - - - - - - -
Member - Description -
size_type size() const - -

Returns: The sum of the sizes of - the inner containers that are viewable in the - flattened2d. -

- -
-
- -

- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/flattened2d_cls/iterators_2d_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/flattened2d_cls/iterators_2d_cls.htm deleted file mode 100644 index 884a593a9..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/flattened2d_cls/iterators_2d_cls.htm +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - -Iterators - - - - - - - - - -

Iterators

- - -
-
-

Template class - flattened2d supports forward iterators only. - -

The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
iterator begin() - -

Returns: - iterator pointing to the beginning of the - set of local copies. -

- -
iterator end() - -

Returns: - iterator pointing to the end of the set of - local copies. -

- -
const_iterator begin() - const - -

Returns: - const_iterator pointing to the beginning of - the set of local copies. -

- -
const_iterator end() - const - -

Returns: - const_iterator pointing to the end of the - set of local copies. -

- -
-
- -

- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/flattened2d_cls/utility_funcs.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/flattened2d_cls/utility_funcs.htm deleted file mode 100644 index a1004cd16..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/flattened2d_cls/utility_funcs.htm +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - -Utility Functions - - - - - - - - - -

Utility Functions

- - -
- -
The following table provides additional information on the members - of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
template <typename Container>  - flattened2d<Container> flatten2d(const Container &c, const typename - Container::const_iterator b, const typename Container::const_iterator - e) - -

Returns: Constructs and returns a - flattened2d that provides iterators that - traverse the elements in the containers within the half-open range - [b, e) of Container c. -

- -
template <typename Container> - flattened2d( const Container &c ) - -

Returns: Constructs and returns a - flattened2d that provides iterators that - traverse the elements in all of the containers within Container c. -

- -
-
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/flattened2d_cls/whole_container_operations_2d_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/flattened2d_cls/whole_container_operations_2d_cls.htm deleted file mode 100644 index 0c9491a8e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/thread_local_storage/flattened2d_cls/whole_container_operations_2d_cls.htm +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - - - - - - - -Whole Container Operations - - - - - - - - - -

Whole Container Operations

- - -
-
-

Safety -

- -

These operations must not be invoked concurrently - on the same - flattened2d. -

- - -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
flattened2d( const Container& - c ) - -

Constructs a - flattened2d representing the sequence of - elements in the inner containers contained by outer container c. -

- -
flattened2d( const Container& - c, typename Container::const_iterator first, typename Container::const_iterator - last ) - -

Constructs a - flattened2d representing the sequence of - elements in the inner containers in the half-open interval - [first, last) of Container c. -

- -
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/threads.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/threads.htm deleted file mode 100644 index 0e927a7ed..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/threads.htm +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - -Threads - - - - - - - - - -

Threads

- - -
-
-

Intel® Threading Building Blocks (Intel® TBB) - provides a wrapper around the platform's native threads, based upon the N3000 - working draft for C++11. Using this wrapper has two benefits: -

- -
    -
  • -

    It makes threaded code portable across - platforms. -

    - -
  • - -
  • -

    It eases later migration to ISO C++11 - threads. -

    - -
  • - -
- -

The library defines the wrapper in namespace - std, not namespace - tbb, as explained in Section Namespace. -

- -

The significant departures from N3000 are shown in - the table below. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Differences Between N3000 and Intel® TBB - Thread Class
-

N3000 -

- -
-

Intel® TBB -

- -
-

template<class Rep, class - Period> std::this_thread::sleep_for( -

- -

const chrono::duration<Rep, - Period>& rel_time) -

- -
-

std::this_thread::sleep_for( - tick_count::interval_t ) -

- -
-

rvalue reference parameters -

- -
-

Parameter changed to plain value, or - function removed, as appropriate. -

- -
-

constructor for - std::thread takes arbitrary number of - arguments. -

- -
-

constructor for - std::thread takes 0-3 arguments. -

- -
-
- -

The other changes are for compatibility with the - current C++ standard or Intel® TBB. For example, constructors that have an - arbitrary number of arguments require the variadic template features of C++11. -

- -

- Caution

-

Threads are heavy weight entities on most - systems, and running too many threads on a system can seriously degrade - performance. Consider using a task based solution instead if practical. -

- -
-
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/threads/this_thread_namespace.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/threads/this_thread_namespace.htm deleted file mode 100644 index a585a5b8a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/threads/this_thread_namespace.htm +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - - - - -this_thread Namespace - - - - - - - - - -

this_thread Namespace

- - -
-

Description

- -

Namespace this_thread contains global functions - related to threading. -

- -
- -

Members

- -
 namepace tbb {
-        namespace this_thread {
-            thread::id get_id();
-            void yield();
-            void sleep( const tick_count::interval_t );
-        }
-    }
-     
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
thread::id get_id() - -

Returns: Id of the current thread. - -

- -
void yield() - -

Offers to suspend current thread so that - another thread may run. -

- -
void sleep_for( const - tick_count::interval_t & i) - -

Current thread blocks for at least time - interval - i. -

- -

Example -

- -
            using namespace tbb;
-     
-    void Foo() {
-        // Sleep 30 seconds
-        this_thread::sleep_for( tick_count::interval_t(30) );
-    }
-     
-
-
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/threads/thread_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/threads/thread_cls.htm deleted file mode 100644 index 875a6d7db..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/threads/thread_cls.htm +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - -thread Class - - - - - - - - - -

thread Class

- - -
-

Summary

-

Represents a thread of execution.

-
- - -

Syntax

- -
class thread;
-

Header

-

-

#include "tbb/compat/thread"
-

-
-

Description

-

Class thread provides a platform independent interface to native - threads. An instance represents a thread. A platform-specific thread handle can be - obtained via method native_handle().

-
-

Members

-
namespace std {    
-    class thread {
-    public:
-    #if _WIN32||_WIN64
-    typedef HANDLE native_handle_type;
-    #else
-    typedef pthread_t native_handle_type;
-    #endif // _WIN32||_WIN64
-    
-    class id;
-    
-    thread();
-    template <typename F> explicit thread(F f);
-        template <typename F, typename X> thread(F f, X x);
-            template <typename F, typename X, typename Y>
-                thread (F f, X x, Y y);
-                thread& operator=( thread& x);
-                ~thread();
-                
-                bool joinable() const;
-                void join();
-                void detach();
-                id get_id() const;
-                native_handle_type native_handle();
-                
-                static unsigned hardware_concurrency();
-
- - -
- - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/threads/thread_cls/thread_cls_members.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/threads/thread_cls/thread_cls_members.htm deleted file mode 100644 index 02ed212f1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/threads/thread_cls/thread_cls_members.htm +++ /dev/null @@ -1,229 +0,0 @@ - - - - - - - - - - - - - -thread Class Members - - - - - - - - - -

thread Class Members

- - -
- -
The following table provides additional information on the members - of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
thread() - -

Constructs a thread that does not represent - a thread of execution, with get_id()==id(). -

- -
template<typename F> thread(F - f) - -

Construct a thread that evaluates f() -

- -
template<typename F, typename - X> thread(F f, X x) - -

Constructs a thread that evaluates f(x). -

- -
template<typename F, typename X, - typename Y> thread(F f, X x, Y y) - -

Constructs thread that evaluates f(x,y). -

- -
thread& operator=(thread& - x) - -

If joinable(), calls detach(). Then assigns the state of x to - *this and sets x to default constructed state. -

- -

- Caution

-

Assignment moves the state instead of copying it. -

- -
-
~thread - -

if( joinable() ) detach(). -

- -
bool joinable() const - -

Returns: get_id()!=id() -

- -
void join() - -

Requirements: joinable()==true -

- -

Effects: Wait for thread to complete. Afterwards, - joinable()==false. -

- -
void detach() - -

Requirements: joinable()==true -

- -

Effects: Sets *this to default constructed state and - returns without blocking. The thread represented by *this continues execution. -

- -
id get_id() const - -

Returns: id of the thread, or a default-constructed id - if *this does not represent a thread. -

- -
native_handle_type - native_handle() - -

Returns: Native thread handle. The handle is a HANDLE - on Windows* operating systems and a pthread_t on Linux* and OS X* operating - systems. For these systems, native_handle() returns 0 if joinable()==false. -

- -
static unsigned - hardware_concurrency() - -

Returns: The number of hardware - threads. For example, 4 on a system with a single Intel® Core™2 Quad processor. - -

- -
-
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/threads/thread_id.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/threads/thread_id.htm deleted file mode 100644 index de7b15bb3..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/threads/thread_id.htm +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - - - -thread::id - - - - - - - - - -

thread::id

- - -
-

Summary

- -

Unique identifier for a thread.

- -
-

Syntax

-
class thread::id;
-
-

Header

-
#include "tbb/compat/thread"
-
-

Description

-

A thread::id is an identifier value for a thread that remains unique over the thread's lifetime. A special value thread::id() represents no thread of execution. The instances are totally ordered.

- -
-

Members

-
namespace tbb {    
-                    class thread::id {
-                    public:
-                        id();
-                    };
-                    template<typename charT, typename traits>
-                    std::basic_ostream<charT, traits>& 
-                        operator<< (std::basic_ostream<charT, traits> &out,
-                                    thread::id id)
-                        
-                    bool operator==(thread::id x, thread::id y);
-                    bool operator!=(thread::id x, thread::id y);
-                    bool operator<(thread::id x, thread::id y);
-                    bool operator<=(thread::id x, thread::id y);
-                    bool operator>(thread::id x, thread::id y);
-                    bool operator>=(thread::id x, thread::id y);
-                } // namespace tbb
- -
- - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/timing.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/timing.htm deleted file mode 100644 index 481e927cb..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/timing.htm +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - -Timing - - - - - - - - - -

Timing

- - -
-

Parallel programming is about speeding up wall - clock time, which is the real time that it takes a program to run. - Unfortunately, some of the obvious wall clock timing routines provided by operating - systems do not always work reliably across threads, because the hardware thread - clocks are not synchronized. The library provides support for timing across threads. - The routines are wrappers around operating services that we have verified as safe to - use across threads.

- -
- -
- - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/timing/tick_count_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/timing/tick_count_cls.htm deleted file mode 100644 index 62a66ef62..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/timing/tick_count_cls.htm +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - - - - - - - - -tick_count Class - - - - - - - - - -

tick_count Class

- - -
-

Summary

- -

Class for computing wall-clock times.

- -
-

Syntax

-
class tick_count;
-
-

Header

-
#include "tbb/tick_count.h"
-
-

Description

-

A tick_count is an absolute timestamp. Two tick_count objects may be subtracted to compute a relative time tick_count::interval_t, which can be converted to seconds.

- -

Example

- -
using namespace tbb;
-    
-    void Foo() {
-        tick_count t0 = tick_count::now();
-        ...action being timed...
-        tick_count t1 = tick_count::now();
-        printf("time for action = %g seconds\n", (t1-t0).seconds() );
-    }
-
-

Members

-
- namespace tbb {
-
-        class tick_count {
-        public:
-            class interval_t;
-            static tick_count now();
-            static double resolution();
-        };
-
-        tick_count::interval_t  operator-( const tick_count&  t1, 
-                                           const tick_count& t0 );
-    } // tbb
-
- -
- - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/timing/tick_count_cls/tick_count_cls_members.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/timing/tick_count_cls/tick_count_cls_members.htm deleted file mode 100644 index b3b58d1e5..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/timing/tick_count_cls/tick_count_cls_members.htm +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - - - - - - - -tick_count Class Members - - - - - - - - - -

tick_count Class Members

- - -
-
- -
The following table provides additional information on the members - of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
static tick_count now() - -

- Current wall clock timestamp. -

- -
static double resolution() - -

- The resolution of the clock in seconds. -

- -
tick_count::interval_t operator-( const tick_count& t1, - const tick_count& t0 ) - -

- Relative time that t1 occurred after t0. -

- -
-
- -

- Caution

-

- On Microsoft Windows* operating systems, the current implementation - uses the function QueryPerformanceCounter. Some - systems may have bugs in their basic input/output system (BIOS) or - hardware abstraction layer (HAL) that cause different processors to - return different time results. -

- -
-
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/timing/tick_count_cls/tick_count_interval_t_cls.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/timing/tick_count_cls/tick_count_interval_t_cls.htm deleted file mode 100644 index 12ac0d4b8..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/reference/timing/tick_count_cls/tick_count_interval_t_cls.htm +++ /dev/null @@ -1,237 +0,0 @@ - - - - - - - - - - - - - -tick_count::interval_t Class - - - - - - - - - -

tick_count::interval_t Class

- - -
-

Summary

- -

Class for relative wall-clock time. -

- -
- -

Syntax

- -
class tick_count::interval_t;
-
- -

Header

- -
#include "tbb/tick_count.h"
-
- -

Description

- -

A - tick_count::interval_t represents relative wall clock - duration. -

- -
- -

Members

- -
-namespace tbb {
-
-    class tick_count::interval_t {
-    public:
-        interval_t();
-        explicit interval_t( double sec );
-        double seconds() const;
-        interval_t operator+=( const interval_t& i );
-        interval_t operator-=( const interval_t& i );
-    };
-
-    tick_count::interval_t operator+( 
-        const tick_count::interval_t& i, 
-        const tick_count::interval_t& j );
-
-    tick_count::interval_t operator-( 
-        const tick_count::interval_t& i, 
-        const tick_count::interval_t& j );
-
-} // namespace tbb
-                
- -
The following table provides additional information on the - members of this template class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Member - Description -
interval_t() - -

Constructs - interval_t representing zero time duration. -

- -
interval_t( double sec ) - - -

Constructs - interval_t representing specified number of - seconds. -

- -
double seconds() const - -

Returns: Time interval measured in - seconds. -

- -
interval_t operator+=( const - interval_t& i ) - -

*this = *this + i -

- -

Returns: Reference to - *this. -

- -
interval_t operator-=( const - interval_t& i ) - -

*this = *this - i -

- -

Returns: Reference to - *this. -

- -
interval_t operator+ ( const - interval_t& i, const interval_t& j ) - -

Returns: Interval_t representing - sum of intervals - i - and - j. -

- -
interval_t operator- ( const - interval_t& i, const interval_t& j ) - -

Returns -

- -

Interval_t representing - difference of intervals - i - and - j. -

- -
-
- -

- Caution

-

- On Microsoft Windows* operating systems, the current implementation of - tick_count::seconds() uses the function - QueryPerformanceFrequency. Repeated calls to - tick_count::seconds() result in multiple calls to - QueryPerformanceFrequency, which can be inefficient. - In tight loops accumulated time should be stored as - tick_count::interval_t values, with conversion to - tick_count::seconds() performed outside measured code. -

- -
-
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/search.js b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/search.js deleted file mode 100644 index aa65d8a41..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/search.js +++ /dev/null @@ -1,471 +0,0 @@ -//*============================================================================== -//* ** DO NOT REMOVE OR MODIFY THIS COPYRIGHT MESSAGE ** -//* -//* Helpware Search 1.1 -//* Copyright (c) 2004-2011 The Helpware Group -//* http://helpware.net/FAR/ -//* Requires a Modern Browser that supports JavaScript such as Firefox/IE4/GoogleChrome/Opera/Safari/Netscape -//* WARNING: You must purchase a copy of FAR HTML v4 or greater to use this file. -//* -//*============================================================================== -//* 31-May-2005: RWC - Fixed Offby one error in highlighting. First word would not highlight. -//* 10-June-2009: RWC - All files now saved in UTF-8 file format. Search is now Unicode based. Previously ANSI based. -//* - Added reBreakChars to allow multiple text break chars. Was just space char (0x20). -//* 12-Sept-2011: RWC - Search highlighting now works for all browsers (previously just Internet Explorer). -//* 04-Sept-2012: RWC - Select first item when result list loads. -//* - - -//var SearchFiles = ["index.htm","Search_OzNet.html"... -//var SearchTitles =["Molecular products","OzNet Web"... -//var SearchIndexes = [["0-0",[128,129,256,257,323]]... -// ...,["WATER;",[355,361]],["WATER-CIRCULATOR",[383]],... - - -//Options -var PARAM_PartialMatchOK = true; -var PARAM_TargetWindow = 'content'; - -//Globals - SearchResults is an array of Page Indexes -var SearchResults = []; -var gFindList = []; -var gFirstFindCall = true; - -//Chars that break words in an entry field //RWC002 - Space, Ideographic Space -var reBreakChars = new RegExp( "[\u0020\u3000]{1}", "gi" ); - -//------------------------------------------------------------------------------ -// Get Operator Type -// text should be Uppercase. Return 0 = normal search text -//------------------------------------------------------------------------------ -var OPT_AND = 1; -var OPT_OR = 2; -var OPT_NOT = 3; -function xxGetOpType(text) { - if ((text=="NOT")||(text=="!")) return OPT_NOT; - else if ((text=="AND")||(text== "&")||(text== "+")) return OPT_AND; - else if ((text=="OR")||(text== "|")) return OPT_OR; - else return(0); - } - - -//---------------------------------------------------------------------------- -// ProcessSearchTerms() -//---------------------------------------------------------------------------- -// Params -// ss -- string of terms to parse and find -// DefaultOp - Search Operator to default to for each list term (OPT_OR, OPT_AND, OPT_NOT) -// Desc -// Parse ss string --> String list. Default Return. -// Items forced Uppercase (since Database and all calls use uppercase for speed) -// User can insert override 'AND', 'OR', 'NOT' into the list of terms to -// alter how the next item is searched. After that we go back to Defaultop. -// Optimization -// Pass in SearchIndexes + SearchResults arrays (by ref) so no global lookups - speed up loops -//---------------------------------------------------------------------------- -function ProcessSearchTerms(ss, DefaultOp) { - //Parse string into array - var items = ss.split(reBreakChars); - - //---------------------------------------- - // Remove empty list entried due to multiple spaces passed to split() - // Force all items to Uppercase - //---------------------------------------- - var c = 0; - for (var i = 0; i < items.length; i++) - if (items[i] != "") { items[c] = items[i].toUpperCase(); c++; } - items.length = c; - - var CheckOp = true; - var otype = DefaultOp; - for (var i = 0; i < items.length; i++) { - - //---------------------------------------- - // Check for Override Operators. - // Don't allow Op override if working with NOT terms - //---------------------------------------- - if ((CheckOp) && (DefaultOp != OPT_NOT)) { - otype = xxGetOpType(items[i]); - CheckOp = (otype == 0); - if (CheckOp) otype = DefaultOp; - else continue; - } - CheckOp = true; - - //---------------------------------------- - // Find Text results ==> SearchResults - //---------------------------------------- - if (otype==OPT_OR) FindText_OR(items[i], SearchIndexes, SearchResults); - if (otype==OPT_AND) FindText_AND(items[i], SearchIndexes, SearchResults); - if (otype==OPT_NOT) FindText_DEL(items[i], SearchIndexes, SearchResults); - - //build list of find words - if (DefaultOp!=OPT_NOT) - gFindList[gFindList.length] = items[i]; - - //Clear global flag - gFirstFindCall = false; - } -} - -//------------------------------------------------------------------------------ -// s1 - Any words (OR) -->> one or more words present in a document is a result. Ie. Get the OR of all word search results. -// s2 - All words (AND) -->> all words must be present in each result document. Ie. Get the AND of all word search results. -// s3 - Not these words (NOT) -->> Only makes sense when used with the above. Knock out Topics containing these words. -// b4 - Partial Word matching is ok - otherwise we match exaclty what is entered -// s5 - target window -- default = 'content' -// ---------------------------------------------- -// -- To match similar spellings in a full-text search, select the Match similar words check box. -// eg "add", "adds", and "added". -// -- To search for words in document titles only, select the Search titles only check box. -// -- To highlight words in searched topics -//------------------------------------------------------------------------------ -// Notes -// - DoSearch(s1, s2, s3. partial) -// S1 is a string of words separated by spaces. Words are OR'd together -// S2 is a string of words separated by spaces. Words are AND'd together -// S3 is a string of words separated by spaces. Words are Deleted from other results -// - User can override default properties of S1 and S2 by using the following keywords -// "OR","|" the next word is OR'd -// "AND","&","+" the next word is AND'd -// "NOT","!" the next word is removed -// -//------------------------------------------------------------------------------ -function DoSearch(s1, s2, s3, b4, s5) -{ - //---------------------------------------------------------------------------- - // Init - // - Reset First AND call flag. The first time must be an OR. - // - Clear SearchResults list - // - Clear target list control - //---------------------------------------------------------------------------- - gFirstFindCall = true; - SearchResults.length = 0; - gFindList.length = 0; - if (document.forms['searchform'].SearchResultList) - document.forms['searchform'].SearchResultList.length = 0; - PARAM_PartialMatchOK = b4; - if (s5 == '') PARAM_TargetWindow = 'content'; - else PARAM_TargetWindow = s5; - - //---------------------------------------------------------------------------- - //1. (OR) Find documents with "Any of these Words" ==> SearchResults - //2. (AND) Find documents with "All these Words" ==> SearchResults - //3. (NOT) SearchResults must NOT files containing these words ==> Remove from SearchResults - //---------------------------------------------------------------------------- - ProcessSearchTerms(s1, OPT_OR); - ProcessSearchTerms(s2, OPT_AND); - ProcessSearchTerms(s3, OPT_NOT); - - //---------------------------------------------------------------------------- - // Display SearchResults - //---------------------------------------------------------------------------- - if (SearchResults.length == 0) { - alert("No matches found!"); - return(0); } - - //Search Results list exists - if (document.forms['searchform'].SearchResultList) - { - //Fill SearchResults List -- 500 item limit same as H1.x and H2.x - for(var i=0;((i= SrchText.length) - && (SearchIndexes[i][0].indexOf(SrchText) >= 0)) { - OR_WithSearchResults(SearchIndexes[i][1], SearchResults); - } - } - else { - //Not Partial - Fast - Find exact match and break out - for(var i=0;i= SrchText.length) - && (SearchIndexes[i][0].indexOf(SrchText) >= 0)) - OR_WithSearchResults(SearchIndexes[i][1], tempList); - } - else { - //Not Partial - Fast - Find exact match and break out - for(var i=0;i= 0) { - if (FirstFindCall) - OR_WithSearchResults(tempList, SearchResults); - else - AND_WithSearchResults(tempList, SearchResults); - } - else - //No Results + not first call -- AND will wipe out all results - if (!FirstFindCall) - SearchResults.length = 0; -} - - -//Find Text (in SearchIndex passed in by ref) and DELETE matches from SearchResults list -function FindText_DEL(SrchText, SearchIndexes, SearchResults) -{ - //first check there is something to delete from - if (SearchResults.length) - for(var i=0;i 0) { - i = lcBodyText.indexOf(lcSearchTerm, i+1); - if (i < 0) { - newText += bodyText; - bodyText = ""; - } else { - // skip anything inside an HTML tag - if (bodyText.lastIndexOf(">", i) >= bodyText.lastIndexOf("<", i)) { - // skip anything inside a - - - - - -

Advanced Example

- - -
-

An example of a more advanced associative operation is to find the index - where - Foo(i) is minimized. A serial version might look like - this: -

- -
long SerialMinIndexFoo( const float a[], size_t n ) {
-    float value_of_min = FLT_MAX;        // FLT_MAX from <climits>
-    long index_of_min = -1;
-    for( size_t i=0; i<n; ++i ) {
-        float value = Foo(a[i]);
-        if( value<value_of_min ) {
-            value_of_min = value;
-            index_of_min = i;
-        }
-    }  
-    return index_of_min;
-}
-

The loop works by keeping track of the minimum value found so far, and - the index of this value. This is the only information carried between loop - iterations. To convert the loop to use - parallel_reduce, the function object must keep track of - the carried information, and how to merge this information when iterations are - spread across multiple threads. Also, the function object must record a pointer - to - a to provide context. -

- -

The following code shows the complete function object. -

- -
class MinIndexFoo {
-    const float *const my_a;
-public:
-    float value_of_min;
-    long index_of_min; 
-    void operator()( const blocked_range<size_t>& r ) {
-        const float *a = my_a;
-        for( size_t i=r.begin(); i!=r.end(); ++i ) {
-           float value = Foo(a[i]);    
-           if( value<value_of_min ) {
-               value_of_min = value;
-               index_of_min = i;
-           }
-        }
-    }
- 
-    MinIndexFoo( MinIndexFoo& x, split ) : 
-        my_a(x.my_a), 
-        value_of_min(FLT_MAX),    // FLT_MAX from <climits>
-        index_of_min(-1) 
-   {}
- 
-    void join( const SumFoo& y ) {
-        if( y.value_of_min<value_of_min ) {
-            value_of_min = y.value_of_min;
-            index_of_min = y.index_of_min;
-        }
-    }
-             
-    MinIndexFoo( const float a[] ) :
-        my_a(a), 
-        value_of_min(FLT_MAX),    // FLT_MAX from <climits>
-        index_of_min(-1),
-    {}
-};
-

Now - SerialMinIndex can be rewritten using - parallel_reduce as shown below: -

- -
long ParallelMinIndexFoo( float a[], size_t n ) {
-    MinIndexFoo mif(a);
-    parallel_reduce(blocked_range<size_t>(0,n), mif );
-    return mif.index_of_min;
-}
-

The directory - examples/parallel_reduce/primes contains a prime number - finder based on - parallel_reduce. -

- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Advanced_Idiom_Waiting_on_an_Element.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Advanced_Idiom_Waiting_on_an_Element.htm deleted file mode 100644 index ae8a95e4a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Advanced_Idiom_Waiting_on_an_Element.htm +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - - - - - - - -Advanced Idiom: Waiting on an Element - - - - - - - - - - - - - - -

Advanced Idiom: Waiting on an Element

- - -
-

Sometimes a thread must wait for an element - v[i] that is being - asynchronously added by another thread. The following idiom can be used for the - wait: -

- -
    -
  1. -

    Wait until - i<v.size(). - Afterwards, - v[i] is known - to be allocated, but perhaps not constructed. -

    - -
  2. - -
  3. -

    Wait for - v[i] to be - constructed. -

    - -
  4. - -
- -

A good way to do step 2 is to wait for an atomic flag in the element to - become non-zero. Sometimes the entire element is the flag. To ensure that the - flag is zero until the element is constructed, do the following: -

- -
    -
  • -

    Instantiate - concurrent_vector with an allocator that allocates - zeroed memory, such as - tbb::zero_allocator. -

    - -
  • - -
  • -

    Making the element constructor set the flag to non-zero as its last - action. -

    - -
  • - -
- -

Below is an example where the vector elements are atomic pointers. It - assumes that pointers added to the vector are non-NULL, hence the flag is the - pointer itself. -

- -
#include ″tbb/compat/thread″
-#include ″tbb/tbb_allocator.h″ // zero_allocator defined here
-#include ″tbb/atomic.h″
-#include ″tbb/concurrent_vector.h″
- 
-using namespace tbb;
-typedef concurrent_vector<atomic<Foo*>, zero_allocator<atomic<Foo*> > > FooVector;
- 
-Foo* FetchElement( const FooVector& v, size_t i ) {
-    // Wait for ith element to be allocated
-    while( i>=v.size() )
-        std::this_thread::yield();
-    // Wait for ith element to be constructed
-    while( v[i]==NULL )
-        std::this_thread::yield();
-    return v[i];
-}
-

In general, the flag must be an atomic type to ensure proper memory - consistency. -

- -
- - - -
-

See Also

- -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Advanced_Topic_Other_Kinds_of_Iteration_Spaces.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Advanced_Topic_Other_Kinds_of_Iteration_Spaces.htm deleted file mode 100644 index 50ad43810..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Advanced_Topic_Other_Kinds_of_Iteration_Spaces.htm +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - -Advanced Topic: Other Kinds of Iteration Spaces - - - - - - - - - - - - - - -

Advanced Topic: Other Kinds of Iteration Spaces

- - -
-

The examples so far have used the class - blocked_range<T> to specify ranges. This class is - useful in many situations, but it does not fit every situation. You can use - Intel® Threading Building Blocks to define your own iteration space objects. - The object must specify how it can be split into subspaces by providing two - methods and a "splitting constructor". If your class is called - R, the methods and constructor could be as follows: -

- -
class R {
-    // True if range is empty
-    bool empty() const;
-    // True if range can be split into non-empty subranges
-    bool is_divisible() const;
-    // Split r into subranges r and *this
-    R( R& r, split );
-    ...
-};
-

The method - empty should return true if the range is empty. The - method - is_divisible should return true if the range can be - split into two non-empty subspaces, and such a split is worth the overhead. The - splitting constructor should take two arguments: -

- -
    -
  • -

    The first of type - R -

    - -
  • - -
  • -

    The second of type - tbb::split -

    - -
  • - -
- -

The second argument is not used; it serves only to distinguish the - constructor from an ordinary copy constructor. The splitting constructor should - attempt to split - r roughly into two halves, and update - r to be the first half, and let constructed object be - the second half. The two halves should be non-empty. The parallel algorithm - templates call the splitting constructor on - r only if - r.is_divisible is true. -

- -

The iteration space does not have to be linear. Look at - tbb/blocked_range2d.h for an example of a range that is - two-dimensional. Its splitting constructor attempts to split the range along - its longest axis. When used with - parallel_for, it causes the loop to be "recursively - blocked" in a way that improves cache usage. This nice cache behavior means - that using - parallel_for over a - blocked_range2d<T> can make a loop run faster than - the sequential equivalent, even on a single processor. -

- -

Code Samples

- -

The directory - examples/parallel_for/seismic contains a simple - seismic wave simulation based on - parallel_for and - blocked_range. The directory - examples/parallel_for/tachyon contains a more complex - example of a ray tracer based on - parallel_for and - blocked_range2d. -

- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Atomic_Operations.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Atomic_Operations.htm deleted file mode 100644 index 77f9a9b05..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Atomic_Operations.htm +++ /dev/null @@ -1,388 +0,0 @@ - - - - - - - - - - - - - - -Atomic Operations - - - - - - - - - - - - - - -

Atomic Operations

- - -
-

You can avoid mutual exclusion using atomic operations. When a thread - performs an atomic operation, the other threads see it as happening - instantaneously. The advantage of atomic operations is that they are relatively - quick compared to locks, and do not suffer from deadlock and convoying. The - disadvantage is that they only do a limited set of operations, and often these - are not enough to synthesize more complicated operations efficiently. But - nonetheless you should not pass up an opportunity to use an atomic operation in - place of mutual exclusion. Class - atomic<T> implements atomic - operations with C++ style. -

- -

A classic use of atomic operations is for thread-safe reference - counting. Suppose x is a reference count of type - int, and the program needs to take some action when the - reference count becomes zero. In single-threaded code, you could use a plain - int for x, and write - --x; if(x==0) action(). But this method might fail for - multithreaded code, because two threads might interleave their operations as - shown in the following table, where ta and tb represent - machine registers, and time progresses downwards: -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Interleaving of Machine Instructions
-

Thread A -

- -
-

Thread B -

- -
-
ta  = x
-
-
 
-
-
 
-
-
tb = x
-
-
x = ta - 1
-
-
 
-
-
 
-
-
x = tb 1
-
-
if( x==0 )
-
-
 
-
-
 
-
-
if( x==0 )
-
-
- -

Though the code intended for - x to be decremented twice, it ends up with only one less - than its original value. Also, another problem results because the test of - x is separate from the decrement: If - x starts out as two, and both threads decrement - x before either thread evaluates the - if condition, - both threads would call - action(). To correct this problem, you need to ensure that - only one thread at a time does the decrement - and ensure that the value checked by the "if" is the result of the - decrement. You can do this by introducing a mutex, but it is much faster and - simpler to declare - x as - atomic<int> and write - "if(--x==0) action()". The method - atomic<int>::operator-- acts atomically; no other - thread can interfere. -

- -

atomic<T> supports atomic - operations on type - T, which must be an integral, enumeration, or pointer - type. There are five fundamental operations supported, with additional - interfaces in the form of overloaded operators for syntactic convenience. For - example, - ++, - --, - -=, and - += operations on - atomic<T> are all forms of the - fundamental operation - fetch-and-add. The following are the five fundamental operations on - a variable - x of type - atomic<T>. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Fundamental Operations on a Variable x of Type atomic<T>
-

= - x -

- -
-

read the value of - x -

- -
-

x= -

- -
-

write the value of - x, and return it -

- -
-

x.fetch_and_store(y) -

- -
-

do - x=y and - return the old value of - x -

- -
-

x.fetch_and_add(y) -

- -
-

do - x+=y and - return the old value of - x -

- -
-

x.compare_and_swap(y,z) -

- -
-

if - x equals - z, then do - x=y. In - either case, return old value of - x. -

- -
-
- -

Because these operations happen atomically, they can be used safely - without mutual exclusion. Consider the following example: -

- -
atomic<unsigned> counter;
- 
-unsigned GetUniqueInteger() {
-    return counter.fetch_and_add(1);
-}
-

The routine - GetUniqueInteger returns a different integer each time it - is called, until the counter wraps around. This is true no matter how many - threads call - GetUniqueInteger simultaneously. -

- -

The operation - compare_and_swap is a fundamental operation to many - non-blocking algorithms. A problem with mutual exclusion is that if a thread - holding a lock is suspended, all other threads are blocked until the holding - thread resumes. Non-blocking algorithms avoid this problem by using atomic - operations instead of locking. They are generally complicated and require - sophisticated analysis to verify. However, the following idiom is - straightforward and worth knowing. It updates a shared variable - globalx in a way that is somehow based on its old value: -

- -
atomic<int> globalx;
- 
-int UpdateX() {      // Update x and return old value of x.
-    do {
-        // Read globalX
-        oldx = globalx;
-        // Compute new value 
-        newx = ...expression involving oldx....
-        // Store new value if another thread has not changed globalX.
-    } while( globalx.compare_and_swap(newx,oldx)!=oldx );
-    return oldx;
-}
-

Worse, some threads iterate the loop until no other thread interferes. - Typically, if the update takes only a few instructions, the idiom is faster - than the corresponding mutual-exclusion solution. -

- -

- Caution

-

If the following sequence thwarts your intent, then the update idiom is - inappropriate: -

- -
    -
  1. -

    A thread reads a value - A from - globalx -

    - -
  2. - -
  3. -

    Other threads change - globalx from - A to - B to - A -

    - -
  4. - -
  5. -

    The thread in step 1 does its - compare_and_swap, reading - A and thus not detecting the intervening change to - - B. -

    - -
  6. - -
- -
-

The problem is called the - ABA - problem. It is frequently a problem in designing non-blocking - algorithms for linked data structures. See the Internet for more information. -

- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Automatic_Chunking.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Automatic_Chunking.htm deleted file mode 100644 index 0955ad64d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Automatic_Chunking.htm +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - -Automatic Chunking - - - - - - - - - - - - - - -

Automatic Chunking

- - -
-

A parallel loop construct incurs overhead cost for every chunk of work - that it schedules. Since version 2.2, Intel® Threading Building Blocks (Intel® TBB) chooses chunk sizes - automatically, depending upon load balancing needs.[1] - The heuristic attempts to limit overheads while still providing ample - opportunities for load balancing. -

- -

- Caution

-

Typically a loop needs to take at least a million clock cycles to make - it worth using - parallel_for. For example, a loop that takes at least - 500 microseconds on a 2 GHz processor might benefit from - parallel_for. -

- -
-

The default automatic chunking is recommended for most uses. As with - most heuristics, however, there are situations where controlling the chunk size - more precisely might yield better performance. -

- -
- - - - -

[1] In Intel® TBB 2.1, the default - was - not automatic. Compile with - TBB_DEPRECATED=1 to get the old default behavior.

- - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Automically_Replacing_malloc.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Automically_Replacing_malloc.htm deleted file mode 100644 index cec28c4ca..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Automically_Replacing_malloc.htm +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - - - - -Automatically Replacing malloc and Other C/C++ Functions for Dynamic Memory Allocation - - - - - - - - - - - - - - -

Automatically Replacing - malloc and Other C/C++ Functions for Dynamic Memory - Allocation

- - -
-

On Windows* and Linux* operating systems, it is possible to - automatically replace all calls to standard functions for dynamic memory - allocation (such as - malloc) with the Intel® Threading Building Blocks - (Intel® TBB) scalable equivalents. Doing so can sometimes improve application - performance. -

- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Bandwidth_and_Cache_Affinity.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Bandwidth_and_Cache_Affinity.htm deleted file mode 100644 index 1541a8c00..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Bandwidth_and_Cache_Affinity.htm +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - - - - - - - -Bandwidth and Cache Affinity - - - - - - - - - - - - - - -

Bandwidth and Cache Affinity

- - -
-

For a sufficiently simple function - Foo, the examples might not show good speedup when - written as parallel loops. The cause could be insufficient system bandwidth - between the processors and memory. In that case, you may have to rethink your - algorithm to take better advantage of cache. Restructuring to better utilize - the cache usually benefits the parallel program as well as the serial program. -

- -

An alternative to restructuring that works in some cases is - affinity_partitioner. It not only automatically chooses - the grainsize, but also optimizes for cache affinity. Using - affinity_partitioner can significantly improve - performance when: -

- -
    -
  • -

    The computation does a few operations per data access. -

    - -
  • - -
  • -

    The data acted upon by the loop fits in cache. -

    - -
  • - -
  • -

    The loop, or a similar loop, is re-executed over the same data. -

    - -
  • - -
  • -

    There are more than two hardware threads available. If only two - threads are available, the default scheduling in Intel® Threading Building - Blocks (Intel® TBB) usually provides sufficient cache affinity. -

    - -
  • - -
- -

The following code shows how to use - affinity_partitioner. -

- -
#include "tbb/tbb.h"
- 
-void ParallelApplyFoo( float a[], size_t n ) {
-    static affinity_partitioner ap;
-    parallel_for(blocked_range<size_t>(0,n), ApplyFoo(a), ap);
-}
- 
-void TimeStepFoo( float a[], size_t n, int steps ) {    
-    for( int t=0; t<steps; ++t )
-        ParallelApplyFoo( a, n );
-}
-

In the example, the - affinity_partitioner object - ap lives between loop iterations. It remembers where - iterations of the loop ran, so that each iteration can be handed to the same - thread that executed it before. The example code gets the lifetime of the - partitioner right by declaring the - affinity_partitioner as a local static object. Another - approach would be to declare it at a scope outside the iterative loop in - TimeStepFoo, and hand it down the call chain to - parallel_for. -

- -

If the data does not fit across the system’s caches, there may be little - benefit. The following figure shows the situations. -

- -
Benefit of Affinity Determined by Relative Size of Data Set and - Cache -

-
- -

The next figure shows how parallel speedup might vary with the size of a - data set. The computation for the example is - A[i]+=B[i] for - i in the range [0,N). It was chosen for dramatic effect. - You are unlikely to see quite this much variation in your code. The graph shows - not much improvement at the extremes. For small N, parallel scheduling overhead - dominates, resulting in little speedup. For large N, the data set is too large - to be carried in cache between loop invocations. The peak in the middle is the - sweet spot for affinity. Hence - affinity_partitioner should be considered a tool, not a - cure-all, when there is a low ratio of computations to memory accesses. -

- -
Improvement from Affinity Dependent on Array Size -

-
- -

- -

- - - - - - - - - - - - - - - - -
-

Optimization Notice -

- -
- Intel's compilers may or may not optimize to the same degree for non-Intel - microprocessors for optimizations that are not unique to Intel microprocessors. - These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other - optimizations. Intel does not guarantee the availability, functionality, or - effectiveness of any optimization on microprocessors not manufactured by Intel. - Microprocessor-dependent optimizations in this product are intended for use - with Intel microprocessors. Certain optimizations not specific to Intel - microarchitecture are reserved for Intel microprocessors. Please refer to the - applicable product User and Reference Guides for more information regarding the - specific instruction sets covered by this notice. -

Notice revision #20110804 -

- -
-
- -

- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Cancellation_Without_An_Exception.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Cancellation_Without_An_Exception.htm deleted file mode 100644 index 72fe3676c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Cancellation_Without_An_Exception.htm +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - - -Cancellation Without An Exception - - - - - - - - - - - - - - -

Cancellation Without An Exception

- - -
-

To cancel an algorithm but not throw an exception, use the expression - task::self().cancel_group_execution(). The part - task::self() references the innermost Intel® TBB task on - the current thread. Calling - cancel_group_execution() cancels all tasks in its - task_group_context, which is explained in more detail in - - Cancellation and Nested Parallelism. The method returns - true if it actually causes cancellation, - false if the - task_group_context was already cancelled. -

- -

The example below shows how to use - task::self().cancel_group_execution(). -

- -
#include "tbb/tbb.h"
-#include <vector>
-#include <iostream>
- 
-using namespace tbb;
-using namespace std;
- 
-vector<int> Data;
- 
-struct Update {
-    void operator()( const blocked_range<int>& r ) const {
-        for( int i=r.begin(); i!=r.end(); ++i )
-            if( i<Data.size() ) {
-                ++Data[i];
-            } else {
-                // Cancel related tasks.
-                if( task::self().cancel_group_execution() )
-                    cout << "Index " << i << " caused cancellation\n";
-                return;
-            }
-    }
-};
- 
-int main() {
-    Data.resize(1000);
-    parallel_for( blocked_range<int>(0, 2000), Update());
-    return 0;
-}
-
- - - -
-

See Also

- -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Cancellation_and_Nested_Parallelism.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Cancellation_and_Nested_Parallelism.htm deleted file mode 100644 index fa4050cc1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Cancellation_and_Nested_Parallelism.htm +++ /dev/null @@ -1,234 +0,0 @@ - - - - - - - - - - - - - - -Cancellation and Nested Parallelism - - - - - - - - - - - - - - -

Cancellation and Nested Parallelism

- - -
-

The discussion so far was simplified by assuming non-nested parallelism - and skipping details of - task_group_context. This topic explains both. -

- -

An Intel® Threading Building Blocks (Intel® TBB) algorithm executes by - creating - task objects that execute the snippets of code that you - supply to the algorithm template. By default, these - task objects are associated with a - task_group_context created by the algorithm. Nested - Intel® TBB algorithms create a tree of these - task_group_context objects. Cancelling a - task_group_context cancels all of its child - task_group_context objects, and transitively all its - descendants. Hence an algorithm and all algorithms it called can be cancelled - with a single request. -

- -

Exceptions propagate upwards. Cancellation propagates downwards. The - opposition interplays to cleanly stop a nested computation when an exception - occurs. For example, consider the tree in the following figure. Imagine that - each node represents an algorithm and its - task_group_context. -

- -
Tree of - task_group_context -

-
- -

Suppose that the algorithm in C throws an exception and no node catches - the exception. Intel® TBB propagates the exception upwards, cancelling related - subtrees downwards, as follows: -

- -
    -
  1. -

    Handle exception in C: -

    - -
      -
    1. -

      Capture exception in C. -

      - -
    2. - -
    3. -

      Cancel tasks in C. -

      - -
    4. - -
    5. -

      Throw exception from C to B. -

      - -
    6. - -
    - -
  2. - -
  3. -

    Handle exception in B: -

    - -
      -
    1. -

      Capture exception in B. -

      - -
    2. - -
    3. -

      Cancel tasks in B and, by downwards propagation, in D. -

      - -
    4. - -
    5. -

      Throw an exception out of B to A. -

      - -
    6. - -
    - -
  4. - -
  5. -

    Handle exception in A: -

    - -
      -
    1. -

      Capture exception in A. -

      - -
    2. - -
    3. -

      Cancel tasks in A and, by downwards propagation, in E, F, and G. - -

      - -
    4. - -
    5. -

      Throw an exception upwards out of A. -

      - -
    6. - -
    - -
  6. - -
- -

If your code catches the exception at any level, then Intel® TBB does - not propagate it any further. For example, an exception that does not escape - outside the body of a - parallel_for does not cause cancellation of other - iterations. -

- -

To prevent downwards propagation of cancellation into an algorithm, - construct an 'isolated' - task_group_context on the stack and pass it to the - algorithm explicitly. The - bold font in - the following example shows how. The example uses C++11 lambda expressions for - brevity. -

- -
#include "tbb/tbb.h"
- 
-bool Data[1000][1000];
- 
-int main() {
-    try {
-        parallel_for( 0, 1000, 1, 
-            []( int i ) {
-                task_group_context root(task_group_context::isolated);
-                parallel_for( 0, 1000, 1,
-                   []( int  ) {
-                       Data[i][j] = true;
-                   },
-                   root);
-                throw "oops";
-            });
-    } catch(...) {
-    }
-    return 0;
-}
-

The example performs two parallel loops: an outer loop over - i and inner loop over - j. The creation of the isolated - task_group_context - root protects the inner loop from downwards propagation - of cancellation from the - i loop. When the exception propagates to the outer loop, - any pending - outer iterations are cancelled, but not inner iterations - for an outer iteration that started. Hence when the program completes, each row - of - Data may be different, depending upon whether its - iteration - i ran at all, but within a row, the elements will be - homogenously - false or - true, not a mixture. -

- -

Removing the blue text would permit cancellation to propagate down into - the inner loop. In that case, a row of - Data might end up with both - true and - false values. -

- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Concurrent_Queue_Classes.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Concurrent_Queue_Classes.htm deleted file mode 100644 index aa4d27af7..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Concurrent_Queue_Classes.htm +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - - - - - -Concurrent Queue Classes - - - - - - - - - - - - - - -

Concurrent Queue Classes

- -

Template class concurrent_queue<T,Alloc> implements a concurrent queue with values of type T. Multiple threads may simultaneously push and pop elements from the queue. The queue is unbounded and has no blocking operations. The fundamental operations on it are push and try_pop. The push operation works just like push for a std::queue. The operation try_pop pops an item if it is available. The check and popping have to be done in a single operation for sake of thread safety.

-

For example, consider the following serial code:

- -
        extern std::queue<T> MySerialQueue;
-        T item;
-        if( !MySerialQueue.empty() ) {
-            item = MySerialQueue.front(); 
-            MySerialQueue.pop_front();
-            ... process item...
-        }
-

Even if each std::queue method were implemented in a thread-safe manner, the composition of those methods as shown in the example would not be thread safe if there were other threads also popping from the same queue. For example, MySerialQueue.empty() might return true just before another thread snatches the last item from MySerialQueue.

-

The equivalent thread-safe Intel® Threading Building Blocks (Intel® TBB) code is:

- -
        extern concurrent_queue<T> MyQueue;
-        T item;
-        if( MyQueue.try_pop(item) ) {
-            ...process item...
-        }            
-

In a single-threaded program, a queue is a first-in first-out structure. But if multiple threads are pushing and popping concurrently, the definition of "first" is uncertain. Use of concurrent_queue guarantees that if a thread pushes two values, and another thread pops those two values, they will be popped in the same order that they were pushed.

-

Template class concurrent_queue is unbounded and has no methods that wait. It is up to the user to provide synchronization to avoid overflow, or to wait for the queue to become non-empty. Typically this is appropriate when the synchronization has to be done at a higher level.

-

Template class concurrent_bounded_queue<T,Alloc> is a variant that adds blocking operations and the ability to specify a capacity. The methods of particular interest on it are:

- -
  • pop(item) waits until it can succeed.

    -
  • -
  • push(item) waits until it can succeed without exceeding the queue's capacity.

    -
  • -
  • try_push(item) pushes item only if it would not exceed the queue's capacity.

    -
  • -
  • size() returns a signed integer.

    -
  • -
-

The value of concurrent_queue::size() is defined as the number of push operations started minus the number of pop operations started. If pops outnumber pushes, size() becomes negative. For example, if a concurrent_queue is empty, and there are n pending pop operations, size() returns -n. This provides an easy way for producers to know how many consumers are waiting on the queue. Method empty() is defined to be true if and only if size() is not positive.

-

By default, a concurrent_bounded_queue is unbounded. It may hold any number of values, until memory runs out. It can be bounded by setting the queue capacity with method set_capacity.Setting the capacity causes push to block until there is room in the queue. Bounded queues are slower than unbounded queues, so if there is a constraint elsewhere in your program that prevents the queue from becoming too large, it is better not to set the capacity. If you do not need the bounds or the blocking pop, consider using concurrent_queue instead.

-
- - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Containers.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Containers.htm deleted file mode 100644 index 6d7941a52..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Containers.htm +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - - - - - - - - - - - -Containers - - - - - - - - - - - - - - -

Containers

- - -
-

Intel® Threading Building Blocks (Intel® TBB) provides highly concurrent - container classes. These containers can be used with raw Windows* OS or Linux* - OS threads, or in conjunction with task-based programming. -

- -

A concurrent container allows multiple threads to concurrently access - and update items in the container. Typical C++ STL containers do not permit - concurrent update; attempts to modify them concurrently often result in - corrupting the container. STL containers can be wrapped in a mutex to make them - safe for concurrent access, by letting only one thread operate on the container - at a time, but that approach eliminates concurrency, thus restricting parallel - speedup. -

- -

Containers provided by Intel® TBB offer a much higher level of - concurrency, via one or both of the following methods: -

- -
    -
  • -

    Fine-grained locking: Multiple threads operate on the - container by locking only those portions they really need to lock. As long as - different threads access different portions, they can proceed concurrently. -

    - -
  • - -
  • -

    Lock-free techniques: Different threads account and correct - for the effects of other interfering threads. -

    - -
  • - -
- -

Notice that highly-concurrent containers come at a cost. They - typically have higher overheads than regular STL containers. Operations on - highly-concurrent containers may take longer than for STL containers. - Therefore, use highly-concurrent containers when the speedup from the - additional concurrency that they enable outweighs their slower sequential - performance. -

- -

- Caution

-

As with most objects in C++, the constructor or destructor of a - container object must not be invoked concurrently with another operation on the - same object. Otherwise the resulting race may cause the operation to be - executed on an undefined object. -

- -
-
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Continuation_Passing.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Continuation_Passing.htm deleted file mode 100644 index ec2f1e8f7..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Continuation_Passing.htm +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - - - - - - - -Continuation Passing - - - - - - - - - - - - - - -

Continuation Passing

- - -
-

Method - spawn_and_wait_for_all enables an executing parent task - to wait until its child tasks complete, but can incur some inefficiency. When a - thread calls - spawn_and_wait_for_all, it keeps busy until all of the - childen complete by working on other tasks. Sometimes the parent task becomes - ready to continue, but cannot do so immediately because its thread is still - executing one of the other tasks. The solution is for the parent to not wait on - its children, and instead spawn both children and return. The children are - allocated not as children of the parent, but as children of the parent’s - continuation task. Any idle thread can steal and run the - continuation task when its children complete. -

- -

The "continuation-passing" variant of - FibTask described in - Simple Example is shown below. -

    -
  • -

    Insertions are shown in - bold font -

    - -
  • - -
  • -

    Deletions are commented out. -

    - -
  • - -
- -

- -
struct FibContinuation: public task {
-    long* const sum;
-    long x, y;
-    FibContinuation( long* sum_ ) : sum(sum_) {}
-    task* execute() {
-        *sum = x+y;
-        return NULL;
-    }
-};
- 
-struct FibTask: public task {
-    const long n;
-    long* const sum;
-    FibTask( long n_, long* sum_ ) :
-        n(n_), sum(sum_)
-    {}
-    task* execute() {
-        if( n<CutOff ) {
-            *sum = SerialFib(n);
-            return NULL;
-        } else {
-            // long x, y; This line removed 
-            FibContinuation& c = 
-                *new( allocate_continuation() ) FibContinuation(sum);
-            FibTask& a = *new( c.allocate_child() ) FibTask(n-2,&c.x);
-            FibTask& b = *new( c.allocate_child() ) FibTask(n-1,&c.y);
-            // Set ref_count to "two children plus one for the wait".
-            c.set_ref_count(2);
-            spawn( b );
-            spawn( a );
-	    // *sum = x+y; This line removed
-            return NULL;
-        }
-    }
-};
-

The following differences between the original version and the - continuation version need to be understood: -

- -

The big difference is that in the original version - x and - y were local variables in method - execute. In the continuation-passing version, they - cannot be local variables, because the parent returns before its children - complete. Instead, they are fields of the continuation task - FibContinuation. -

- -

The allocation logic is changed. The continuation is allocated with - allocate_continuation. It is similar to - allocate_child, except that it forwards the - successor of - this to - c, and sets the - successor of - this to NULL. The following figure summarizes the - transformation: -

- -
Action of - allocate_continuation -

-
- -

A property of the transformation is that it does not change the - reference count of the successor, and thus avoids interfering with - reference-counting logic. -

- -

The reference count is set to - 2, the number of children. In the original version, it - was set to - 3 because - spawn_and_wait_for_all required the augmented count. - Furthermore, the code sets the reference count of the continuation instead of - the parent, because it is the execution of the continuation that waits on the - children. -

- -

The pointer - sum is passed to the continuation by the constructor, - because it is now - FibContinuation that stores into - *sum. The children are still allocated with - allocate_child, but notice that now they are allocated - as children of the continuation - c, not the parent. This is so that - c, and not - this, becomes the successor of the children that is - automatically spawned when both children complete. If you accidentally used - this.allocate_child(), then the parent task would run - again after both children completed. -

- -

If you remember how the original top-level code, - ParallelFib, was written, you might be worried now that - continuation-passing style breaks the code, because now the root - FibTask completes before the children are done, and the - top-level code used - spawn_root_and_wait to wait on the root - FibTask. This is not a problem, because - spawn_root_and_wait is designed to work correctly with - continuation-passing style. An invocation - spawn_root_and_wait(x) does not - actually wait for - x to complete. Instead, it constructs a dummy - successor of - x, and waits for the successors’s reference count to - be decremented. Because - allocate_continuation forwards this dummy successor to - the continuation, the dummy successor’s reference count is not decremented - until the continuation completes. -

- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Controlling_Chunking.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Controlling_Chunking.htm deleted file mode 100644 index 1b587824a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Controlling_Chunking.htm +++ /dev/null @@ -1,302 +0,0 @@ - - - - - - - - - - - - - - -Controlling Chunking - - - - - - - - - - - - - - -

Controlling Chunking

- - -
-

Chunking is controlled by a - partitioner and a - grainsize.To gain the most control over chunking, you specify - both. -

- -
    -
  • -

    Specify - simple_partitioner() as the third argument to - parallel_for. Doing so turns off automatic chunking. - -

    - -
  • - -
  • -

    Specify the grainsize when constructing the range. The thread - argument form of the constructor is - blocked_range<T>(begin,end,grainsize). - The default value of - grainsize is 1. It is in units of loop iterations - per chunk. -

    - -
  • - -
- -

If the chunks are too small, the overhead may exceed the performance - advantage. -

- -

The following code is the last example from - parallel_for, modified to use an explicit grainsize - G. Additions are shown in - bold font. -

- -
#include "tbb/tbb.h"
- 
-void ParallelApplyFoo( float a[], size_t n ) {
-    parallel_for(blocked_range<size_t>(0,n,G), ApplyFoo(a), 
-                 simple_partitioner());
-}
-

The grainsize sets a minimum threshold for parallelization. The - parallel_for in the example invokes - ApplyFoo::operator() on chunks, possibly of different - sizes. Let - chunksize be the number of iterations in a chunk. Using - simple_partitioner guarantees that - G/2 - - - chunksize - G. -

- -

There is also an intermediate level of control where you specify the - grainsize for the range, but use an - auto_partitioner and - affinity_partitioner. An - auto_partitioner is the default partitioner. Both - partitioners implement the automatic grainsize heuristic described in - Automatic Chunking. An - affinity_partitioner implies an additional hint, as - explained later in Section - Bandwidth and Cache Affinity. Though these partitioners may cause - chunks to have more than G iterations, they never generate chunks with less - than - G/2 - iterations. Specifying a range with an explicit grainsize may occasionally be - useful to prevent these partitioners from generating wastefully small chunks if - their heuristics fail. -

- -

Because of the impact of grainsize on parallel loops, it is worth - reading the following material even if you rely on - auto_partitioner and - affinity_partitioner to choose the grainsize - automatically. -

- - -
- - - - - - - - - - - - - - - - - -
Packaging Overhead Versus Grainsize


-


-
-

Case A -

- -
-

Case B -

- -
-
- -

The above figure illustrates the impact of grainsize by showing the - useful work as the gray area inside a brown border that represents overhead. - Both Case A and Case B have the same total gray area. Case A shows how too - small a grainsize leads to a relatively high proportion of overhead. Case B - shows how a large grainsize reduces this proportion, at the cost of reducing - potential parallelism. The overhead as a fraction of useful work depends upon - the grainsize, not on the number of grains. Consider this relationship and not - the total number of iterations or number of processors when setting a - grainsize. -

- -

A rule of thumb is that - grainsize iterations of - operator() should take at least 100,000 clock cycles to - execute. For example, if a single iteration takes 100 clocks, then the - grainsize needs to be at least 1000 iterations. When in - doubt, do the following experiment: -

- -
    -
  1. -

    Set the - grainsize parameter higher than necessary. The - grainsize is specified in units of loop iterations. If you have no idea of how - many clock cycles an iteration might take, start with - grainsize=100,000. The rationale is that each - iteration normally requires at least one clock per iteration. In most cases, - step 3 will guide you to a much smaller value. -

    - -
  2. - -
  3. -

    Run your algorithm. -

    - -
  4. - -
  5. -

    Iteratively halve the - grainsize parameter and see how much the algorithm - slows down or speeds up as the value decreases. -

    - -
  6. - -
- -

A drawback of setting a grainsize too high is that it can reduce - parallelism. For example, if the grainsize is 1000 and the loop has 2000 - iterations, the - parallel_for distributes the loop across only two - processors, even if more are available. However, if you are unsure, err on the - side of being a little too high instead of a little too low, because too low a - value hurts serial performance, which in turns hurts parallel performance if - there is other parallelism available higher up in the call tree. -

- -

- Tip

-

You do not have to set the grainsize too precisely. -

- -
-

The next figure shows the typical "bathtub curve" for execution time - versus grainsize, based on the floating point - a[i]=b[i]*c computation over a million indices. There is - little work per iteration. The times were collected on a four-socket machine - with eight hardware threads. -

- -
Wall Clock Time Versus Grainsize -

-
- -

The scale is logarithmic. The downward slope on the left side indicates - that with a grainsize of one, most of the overhead is parallel scheduling - overhead, not useful work. An increase in grainsize brings a proportional - decrease in parallel overhead. Then the curve flattens out because the parallel - overhead becomes insignificant for a sufficiently large grainsize. At the end - on the right, the curve turns up because the chunks are so large that there are - fewer chunks than available hardware threads. Notice that a grainsize over the - wide range 100-100,000 works quite well. -

- -

- Tip

-

A general rule of thumb for parallelizing loop nests is to parallelize - the outermost one possible. The reason is that each iteration of an outer loop - is likely to provide a bigger grain of work than an iteration of an inner loop. - -

- -
-

- -

- - - - - - - - - - - - - - - - -
-

Optimization Notice -

- -
- Intel's compilers may or may not optimize to the same degree for non-Intel - microprocessors for optimizations that are not unique to Intel microprocessors. - These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other - optimizations. Intel does not guarantee the availability, functionality, or - effectiveness of any optimization on microprocessors not manufactured by Intel. - Microprocessor-dependent optimizations in this product are intended for use - with Intel microprocessors. Certain optimizations not specific to Intel - microarchitecture are reserved for Intel microprocessors. Please refer to the - applicable product User and Reference Guides for more information regarding the - specific instruction sets covered by this notice. -

Notice revision #20110804 -

- -
-
- -

- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Cook_Until_Done_parallel_do.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Cook_Until_Done_parallel_do.htm deleted file mode 100644 index 7f437fe44..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Cook_Until_Done_parallel_do.htm +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - - - - - - -Cook Until Done: parallel_do - - - - - - - - - - - - - - -

Cook Until Done: parallel_do

- - -
-

For some loops, the end of the iteration space is not known in advance, - or the loop body may add more iterations to do before the loop exits. You can - deal with both situations using the template class - tbb::parallel_do. -

- -

A linked list is an example of an iteration space that is not known in - advance. In parallel programming, it is usually better to use dynamic arrays - instead of linked lists, because accessing items in a linked list is inherently - serial. But if you are limited to linked lists, the items can be safely - processed in parallel, and processing each item takes at least a few thousand - instructions, you can use - parallel_do to gain some parallelism. -

- -

For example, consider the following serial code: -

- -
void SerialApplyFooToList( const std::list<Item>& list ) {
-    for( std::list<Item>::const_iterator i=list.begin() i!=list.end(); ++i ) 
-        Foo(*i);
-}
-

If - Foo takes at least a few thousand instructions to run, you - can get parallel speedup by converting the loop to use - parallel_do. To do so, define an object with a - const qualified - operator(). This is similar to a C++ function object from - the C++ standard header - <functional>, except that - operator() must be - const. -

- -
class ApplyFoo {
-public:
-    void operator()( Item& item ) const {
-        Foo(item);
-    }
-};
-

The parallel form of - SerialApplyFooToList is as follows: -

- -
void ParallelApplyFooToList( const std::list<Item>& list ) {
-    parallel_do( list.begin(), list.end(), ApplyFoo() ); 
-}
-

An invocation of - parallel_do never causes two threads to act on an input - iterator concurrently. Thus typical definitions of input iterators for - sequential programs work correctly. This convenience makes - parallel_do unscalable, because the fetching of work is - serial. But in many situations, you still get useful speedup over doing things - sequentially. -

- -

There are two ways that - parallel_do can acquire work scalably. -

- -
    -
  • -

    The iterators can be random-access iterators. -

    - -
  • - -
  • -

    The body argument to - parallel_do, if it takes a second argument - feeder of type - parallel_do<Item>&, can add more work by - calling - feeder.add(item). For example, suppose - processing a node in a tree is a prerequisite to processing its descendants. - With - parallel_do, after processing a node, you could use - feeder.add to add the descendant - nodes. The instance of - parallel_do does not terminate until all items have - been processed. -

    - -
  • - -
- -

Code Sample

- -

The directory - examples/parallel_do/parallel_preorder contains a small - application that uses - parallel_do to perform parallel preorder traversal of an - acyclic directed graph. The example shows how - parallel_do_feeder can be used to add more work. -

- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Debug_Versus_Release_Libraries.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Debug_Versus_Release_Libraries.htm deleted file mode 100644 index c8f91660c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Debug_Versus_Release_Libraries.htm +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - - - - - - - - -Debug Versus Release Libraries - - - - - - - - - - - - - - -

Debug Versus Release Libraries

- - -
-

The following table details the Intel® Threading Building - Blocks (Intel® TBB) dynamic shared libraries that - come in debug and release versions. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Dynamic Shared Libraries Included in Intel® Threading Building - Blocks
-

Library -

- -

(*.dll, lib*.so, or lib*.dylib) -

- -
-

Description -

- -
-

When to Use -

- -
-

tbb_debug -

- -

tbbmalloc_debug -

- -

tbbmalloc_proxy_debug -

- -
-

These versions have extensive internal checking for correct use of - the library. -

- -
-

Use with code that is compiled with the macro - TBB_USE_DEBUG set to 1. -

- -
-

tbb -

- -

tbbmalloc -

- -

tbbmalloc_proxy -

- -
-

These versions deliver top performance. They eliminate most - checking for correct use of the library. -

- -
-

Use with code compiled with - TBB_USE_DEBUG undefined or set to zero. -

- -
-
- -

- Tip

-

Test your programs with the debug versions of the libraries first, to - assure that you are using the library correctly.  With the release versions, - incorrect usage may result in unpredictable program behavior. -

- -
-

Intel® TBB supports Intel® Parallel Inspector, Intel® Inspector XE, Intel® - Parallel Amplifier, and Intel® VTune™ Amplifier XE. Full support of these tools - requires compiling with macro - TBB_USE_THREADING_TOOLS=1. That symbol defaults to 1 in - the following conditions: -

- -
    -
  • -

    When - TBB_USE_DEBUG=1. -

    - -
  • - -
  • -

    On the Microsoft Windows* operating system, when - _DEBUG=1. -

    - -
  • - -
- -

The Intel® Threading Building Blocks Reference section explains the - default values in more detail. -

- -

- Caution

-

The instrumentation support for Intel® Parallel Inspector and Intel® - Inspector XE becomes live after the first initialization of the task library. - If the library components are used before this initialization occurs, Intel® - Parallel Inspector and Intel® Inspector XE may falsely report race conditions - that are not really races. -

- -
-
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Agglomeration.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Agglomeration.htm deleted file mode 100644 index 796c60517..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Agglomeration.htm +++ /dev/null @@ -1,214 +0,0 @@ - - - - - - - - - - - - -Agglomeration - - - - - - - - - - - - - - -

Agglomeration

- - -
-

Problem

- -

Parallelism is so fine grained that overhead of parallel scheduling or - communication swamps the useful work. -

- -
- -

Context

- -

Many algorithms permit parallelism at a very fine grain, on the order - of a few instructions per task. But synchronization between threads usually - requires orders of magnitude more cycles. For example, elementwise addition of - two arrays can be done fully in parallel, but if each scalar addition is - scheduled as a separate task, most of the time will be spent doing - synchronization instead of useful addition. -

- -
- -

Forces

- -
    -
  • -

    Individual computations can be done in parallel, but are small. - For practical use of Intel® Threading Building Blocks (Intel® TBB), - "small" here means less than 10,000 clock cycles. -

    - -
  • - -
  • -

    The parallelism is for sake of performance and not required for - semantic reasons. -

    - -
  • - -
- -
- -

Solution

- -

Group the computations into blocks. Evaluate computations within a - block serially. -

- -

The block size should be chosen to be large enough to amortize - parallel overhead. Too large a block size may limit parallelism or load - balancing because the number of blocks becomes too small to distribute work - evenly across processors. -

- -

The choice of block topology is typically driven by two concerns: -

- -
    -
  • -

    Minimizing synchronization between blocks. -

    - -
  • - -
  • -

    Minimizing cache traffic between blocks. -

    - -
  • - -
- -

If the computations are completely independent, then the blocks will - be independent too, and then only cache traffic issues must be considered. -

- -

If the loop is "small", on the order of less than 10,000 clock cycles, - then it may be impractical to parallelize at all, because the optimal - agglomeration might be a single block, -

- -
- -

Examples

- -

Intel® TBB loop templates such as - tbb::parallel_for that take a - range argument support automatic agglomeration. -

- -

When agglomerating, think about cache effects. Avoid having cache - lines cross between groups if possible. -

- -

There may be boundary to interior ratio effects. For example, if the - computations form a 2D grid, and communicate only with nearest neighbors, then - the computation per block grows quadratically (with the block’s area), but the - cross-block communication grows with linearly (with the block’s perimeter). The - following figure shows four different ways to agglomerate an 8×8 grid. If doing - such analysis, be careful to consider that information is transferred in cache - line units. For a given area, the perimeter may be minimized when the block is - square with respect to the underlying grid of cache lines, not square with - respect to the logical grid. -

- -
Four different agglomerations of an 8×8 grid. - -
- -

Also consider vectorization. Blocks that contain long contiguous - subsets of data may better enable vectorization. -

- -

For recursive computations, most of the work is towards the leaves, so - the solution is to treat subtrees as a groups as shown in the following figure. - -

- -
Agglomeration of a recursive computation - -
- -

Often such an agglomeration is achieved by recursing serially once - some threshold is reached. For example, a recursive sort might solve - sub-problems in parallel only if they are above a certain threshold size. -

- -
- -

Reference

- -

Ian Foster introduced the term "agglomeration" in his book - Designing and Building Parallel Programs - http://www.mcs.anl.gov/~itf/dbpp. There agglomeration is part of a four step - PCAM design method: -

- -
    -
  1. -

    Partitioning - break the program into the smallest tasks - possible. -

    - -
  2. - -
  3. -

    Communication – figure out what communication is required - between tasks. When using Intel® TBB, communication is usually cache line - transfers. Though they are automatic, understanding which ones happen between - tasks helps guide the agglomeration step. -

    - -
  4. - -
  5. -

    Agglomeration – combine tasks into larger tasks. His book - has an extensive list of considerations that is worth reading. -

    - -
  6. - -
  7. -

    Mapping – map tasks onto processors. The Intel® TBB task - scheduler does this step for you. -

    - -
  8. - -
- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Compare_and_Swap_Loop.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Compare_and_Swap_Loop.htm deleted file mode 100644 index 9d9881c1a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Compare_and_Swap_Loop.htm +++ /dev/null @@ -1,209 +0,0 @@ - - - - - - - - - - - - - - -Compare and Swap Loop - - - - - - - - - - - - - - -

Compare and Swap Loop

- - -
-

Problem

- -

Atomically update a scalar value so that a predicate is satisfied. -

- -
- -

Context

- -

Often a shared variable must be updated atomically, by a transform - that maps its old value to a new value. The transform might be a transition of - a finite state machine, or recording global knowledge. For instance, the shared - variable might be recording the maximum value that any thread has seen so far. -

- -
- -

Forces

- -
    -
  • -

    The variable is read and updated by multiple threads. -

    - -
  • - -
  • -

    The hardware implements "compare and swap" for a variable of that - type. -

    - -
  • - -
  • -

    Protecting the update with a mutex is to be avoided. -

    - -
  • - -
- -
- -

Related

- -
    -
  • Reduction -
  • - -
  • Reference Counting -
  • - -
- -
- -

Solution

- -

The solution is to atomically snapshot the current value, and then use - - atomic<T>::compare_and_swap to update it. Retry - until the - compare_and_swap succeeds. In some cases it may be - possible to exit before the - compare_and_swap succeeds because the current value - meets some condition. -

- -

The template below does the update x=f(x) atomically. -

- -
// Atomically perform x=f(x).
-template<typename F, typename T>
-void AtomicUpdate( atomic<T>& x, F f ) {
-   int o;
-   do {
-       // Take a snapshot
-       o = x;
-       // Attempt to install new value computed from snapshot
-   } while( x.compare_and_swap(f(o),o)!=o );
-}
-

It is critical to take a snapshot and use it for intermediate - calculations, because the value of X may be changed by other threads in the - meantime. -

- -

The following code shows how the template might be used to maintain a - global maximum of any value seen by - RecordMax. -

- -
// Atomically perform UpperBound = max(UpperBound,y) 
-void RecordMax( int y ) {
-   extern atomic<int> UpperBound;
-   AtomicUpdate(UpperBound, [&](int value){return std::max(value,y);} );
-}
-

When y is not going to increase - UpperBound, the call to - AtomicUpdate will waste time doing the redundant - operation - compare_and_swap(o,o). In general, this kind of - redundancy can be eliminated by making the loop in - AtomicUpdate exit early if - f(o)==o. In this particular case where - F==std::max<int>, that test can be further - simplified. The following custom version of - RecordMax has the simplified test. -

- -
// Atomically perform UpperBound =max(UpperBound,y) 
-void RecordMax( int y ) . .
-   extern atomic<int> UpperBound;
-   do {
-       // Take a snapshot
-       int o = UpperBound;
-       // Quit if snapshot meets condition.
-       if( o>=y ) break;
-       // Attempt to install new value.
-   } while( UpperBound.compare_and_swap(y,o)!=o );
-}
-

Because all participating threads modify a common location, the - performance of a compare and swap loop can be poor under high contention. Thus - the applicability of more efficient patterns should be considered first. In - particular: -

- -
    -
  • -

    If the overall purpose is a reduction, use the reduction pattern - instead. -

    - -
  • - -
  • -

    If the update is addition or subtraction, use - atomic<T>::fetch_and_add. If the update is - addition or subtraction by one, use - atomic<T>::operater++ or - atomic<T>::operator--. These methods - typically employ direct hardware support that avoids a compare and swap loop. -

    - -
  • - -
- -

- Caution

-

When using - compare_and_swap to update links in a linked - structure, be sure you understand if the "ABA problem" is an issue. See the - Internet for discourses on the subject. -

- -
-
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Design_Patterns.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Design_Patterns.htm deleted file mode 100644 index fe9887f55..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Design_Patterns.htm +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - -Design Patterns - - - - - - - - - - - - - - -

Design Patterns

- - -
-

This section provides some common parallel programming patterns and how - to implement them in Intel® Threading Building Blocks (Intel® TBB). -

- -

The description of each pattern has the following format: -

- -
    -
  • -

    Problem – describes the problem to be solved. -

    - -
  • - -
  • -

    Context – describes contexts in which the problem arises. -

    - -
  • - -
  • -

    Forces . considerations that drive use of the pattern. -

    - -
  • - -
  • -

    Solution . describes how to implement the pattern. -

    - -
  • - -
  • -

    Example – presents an example implementation. -

    - -
  • - -
- -

Variations and examples are sometimes discussed. The code examples are - intended to emphasize key points and are not full-fledged code. Examples may - omit obvious const overloads of non-const methods. -

- -

Much of the nomenclature and examples are adapted from Web pages created - by Eun-Gyu and Marc Snir, and the Berkeley parallel patterns wiki. See links in - the General References section. -

- -

For brevity, some of the code examples use C++11 lambda expressions. It - is straightforward, albeit sometimes tedious, to translate such lambda - expressions into equivalent C++98 code. -

- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Divide_and_Conquer.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Divide_and_Conquer.htm deleted file mode 100644 index a5dcd34af..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Divide_and_Conquer.htm +++ /dev/null @@ -1,259 +0,0 @@ - - - - - - - - - - - - - -Divide and Conquer - - - - - - - - - - - - - - -

Divide and Conquer

- - -
-

Problem

- -

Parallelize a divide and conquer algorithm. -

- -
- -

Context

- -

Divide and conquer is widely used in serial algorithms. Common - examples are quicksort and mergesort. -

- -
- -

Forces

- -
    -
  • -

    Problem can be transformed into subproblems that can be solved - independently. -

    - -
  • - -
  • -

    Splitting problem or merging solutions is relatively cheap - compared to cost of solving the subproblems. -

    - -
  • - -
- -
- -

Solution

- -

There are several ways to implement divide and conquer in Intel® - Threading Building Blocks (Intel® TBB). The best choice depends upon - circumstances. -

- -
    -
  • -

    If division always yields the same number of subproblems, use - recursion and - tbb::parallel_invoke. -

    - -
  • - -
  • -

    If the number of subproblems varies, use recursion and - tbb::task_group. -

    - -
  • - -
  • -

    If ultimate efficiency and scalability is important, use - tbb::task and continuation passing style. -

    - -
  • - -
- -
- -

Example

- -

Quicksort is a classic divide-and-conquer algorithm. It divides a - sorting problem into two subsorts. A simple serial version looks - like:1 -

- -
void SerialQuicksort( T* begin, T* end ) {
-   if( end-begin>1  ) {
-       using namespace std;
-       T* mid = partition( begin+1, end, bind2nd(less<T>(),*begin) );
-       swap( *begin, mid[-1] );
-       SerialQuicksort( begin, mid-1 );
-       SerialQuicksort( mid, end );
-   }
-}
-

The number of subsorts is fixed at two, so - tbb::parallel_invoke provides a simple way to - parallelize it. The parallel code is shown below: -

- -
void ParallelQuicksort( T* begin, T* end ) {
-   if( end-begin>1 ) {
-       using namespace std;
-       T* mid = partition( begin+1, end, bind2nd(less<T>(),*begin) );
-       swap( *begin, mid[-1] );
-       tbb::parallel_invoke( [=]{ParallelQuicksort( begin, mid-1 );},
-                             [=]{ParallelQuicksort( mid, end );} );
-   }
-}
-

Eventually the subsorts become small enough that serial execution is - more efficient. The following variation, with the change shown in - bold font, - does sorts of less than 500 elements using the earlier serial code. -

- -
void ParallelQuicksort( T* begin, T* end ) {
-   if( end-begin>=500 ) {
-       using namespace std;
-       T* mid = partition( begin+1, end, bind2nd(less<T>(),*begin) );
-       swap( *begin, mid[-1] );
-       tbb::parallel_invoke( [=]{ParallelQuicksort( begin, mid-1 );},
-                             [=]{ParallelQuicksort( mid, end );} );
-   } else {
-       SerialQuicksort( begin, end );
-   }
-}
-

The change is an instance of the Agglomeration pattern. -

- -

The next example considers a problem where there are a variable number - of subproblems. The problem involves a tree-like description of a mechanical - assembly. There are two kinds of nodes: -

- -
    -
  • -

    Leaf nodes represent individual parts. -

    - -
  • - -
  • -

    Internal nodes represent groups of parts. -

    - -
  • - -
- -

The problem is to find all nodes that collide with a target node. The - following code shows a serial solution that walks the tree. It records in - Hits any nodes that collide with - Target. -

- -
std::list<Node*> Hits;
-Node* Target;
- 
-void SerialFindCollisions( Node& x ) {
-   if( x.is_leaf() ) {
-       if( x.collides_with( *Target ) )
-           Hits.push_back(&x);
-   } else {
-       for( Node::const_iterator y=x.begin();y!=x.end(); ++y )
-           SerialFindCollisions(*y);
-   }
-} 
-

A parallel version is shown below. -

- -
typedef tbb::enumerable_thread_specific<std::list<Node*> > LocalList;
-LocalList LocalHits; 
-Node* Target;    // Target node    
- 
-void ParallelWalk( Node& x ) {
-   if( x.is_leaf() ) {
-       if( x.collides_with( *Target ) )
-           LocalHits.local().push_back(&x);
-   } else {
-       // Recurse on each child y of x in parallel
-       tbb::task_group g;
-       for( Node::const_iterator y=x.begin(); y!=x.end(); ++y )
-           g.run( [=]{ParallelWalk(*y);} );
-       // Wait for recursive calls to complete
-       g.wait();
-   }
-}
- 
-void ParallelFindCollisions( Node& x ) {
-   ParallelWalk(x);
-   for(LocalList::iterator i=LocalHits.begin();i!=LocalHits.end(); ++i)
-       Hits.splice( Hits.end(), *i );
-} 
-

The recursive walk is parallelized using class - task_group to do recursive calls in parallel. -

- -

There is another significant change because of the parallelism that is - introduced. Because it would be unsafe to update - Hits concurrently, the parallel walk uses variable - LocalHits to accumulate results. Because it is of type - - enumerable_thread_specific, each thread accumulates - its own private result. The results are spliced together into Hits after the - walk completes. -

- -

The results will - not be in the same order as the original serial code. -

- -

If parallel overhead is high, use the agglomeration pattern. For - example, use the serial walk for subtrees under a certain threshold. -

- -
- -
- - - -
-

See Also

- -
-

1 Production quality quicksort implementations typically use more - sophisticated pivot selection, explicit stacks instead of recursion, and some - other sorting algorithm for small subsorts. The simple algorithm is used here - to focus on exposition of the parallel pattern.

- - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Elementwise.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Elementwise.htm deleted file mode 100644 index b7379e4c6..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Elementwise.htm +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - - - - - - - - - -Elementwise - - - - - - - - - - - - - - -

Elementwise

- - -
-

Problem

- -

Initiate similar independent computations across items in a data set, - and wait until all complete. -

- -
- -

Context

- -

Many serial algorithms sweep over a set of items and do an independent - computation on each item. However, if some kind of summary information is - collected, use the Reduction pattern instead. -

- -
- -

Forces

- -

No information is carried or merged between the computations. -

- -
- -

Solution

- -

If the number of items is known in advance, use - tbb::parallel_for. If not, consider using - tbb::parallel_do. -

- -

Use agglomeration if the individual computations are small relative to - scheduler overheads. -

- -

If the pattern is followed by a reduction on the same data, consider - doing the element-wise operation as part of the reduction, so that the - combination of the two patterns is accomplished in a single sweep instead of - two sweeps. Doing so may improve performance by reducing traffic through the - memory hierarchy. -

- -
- -

Example

- -

Convolution is often used in signal processing. The convolution of a - filter - c and signal - x is computed as: -

-

-

Serial code for this computation might look like: -

- -
// Assumes c[0..clen-1] and x[1-clen..xlen-1] are defined
-for( int i=0; i<xlen+clen-1; ++i ) {
-   float tmp = 0;
-   for( int j=0; j<clen; ++j )
-       tmp += c[j]*x[i-j];
-   y[i] = tmp;
-}
-

For simplicity, the fragment assumes that - x is a pointer into an array padded with zeros such - that - x[k]returns zero when - k<0 or - k≥xlen. -

- -

The inner loop does not fit the elementwise pattern, because each - iteration depends on the previous iteration. However, the outer loop fits the - elementwise pattern. It is straightforward to render it using - tbb::parallel_for as shown: -

- -
tbb::parallel_for( 0, xlen+clen-1, [=]( int i ) { 
-   float tmp = 0;
-   for( int j=0; j<clen; ++j )
-       tmp += c[j]*x[i-j];
-   y[i] = tmp;
-});
-

tbb::parallel_for does automatic agglomeration by - implicitly using tbb::auto_partitioner in its underlying - implementation. If there is reason to agglomerate explicitly, use the overload - of - tbb::parallel_for that takes an explicit range - argument. The following shows the example transformed to use the overload. -

- -
tbb::parallel_for(
-   tbb::blocked_range<int>(0,xlen+clen-1,1000),
-   [=]( tbb::blocked_range<int> r ) { 
-		 int end = r.end();
-       for( int i=r.begin(); i!=end; ++i ) {
-           float tmp = 0;
-           for( int j=0; j<clen; ++j )
-               tmp += c[j]*x[i-j];
-           y[i] = tmp;
-       }
-   }
-);
-

  -

- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Fenced_Data_Transfer.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Fenced_Data_Transfer.htm deleted file mode 100644 index 2576d2b89..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Fenced_Data_Transfer.htm +++ /dev/null @@ -1,218 +0,0 @@ - - - - - - - - - - - - - -Fenced Data Transfer - - - - - - - - - - - - - - -

Fenced Data Transfer

- - -
-

Problem

- -

Write a message to memory and have another processor read it on - hardware that does not have a sequentially consistent memory model. -

- -
- -

Context

- -

The problem normally arises only when unsynchronized threads - concurrently act on a memory location, or are using reads and writes to create - synchronization. High level synchronization constructs normally include - mechanisms that prevent unwanted reordering. -

- -

Modern hardware and compilers can reorder memory operations in a way - that preserves the order of a thread's operation from its viewpoint, but not as - observed by other threads. A serial common idiom is to write a message and mark - it as ready to ready as shown in the following code: -

- -
bool Ready;                    
-std::string Message;
- 
-void Send( const std::string& src ) {. // Executed by thread 1
-   Message=src;
-   Ready = true;
-}
- 
-bool Receive( std::string& dst ) {    // Executed by thread 2
-   bool result = Ready;
-   if( result ) dst=Message;
-   return result;              // Return true if message was received.
-}
-

Two key assumptions of the code are: -

- -
    -
  1. -

    Ready does not become true until - Message is written. -

    - -
  2. - -
  3. -

    Message is not read until - Ready becomes true. -

    - -
  4. - -
- -

These assumptions are trivially true on uniprocessor hardware. - However, they may break on multiprocessor hardware. Reordering by the hardware - or compiler can cause the sender's writes to appear out of order to the - receiver (thus breaking condition a) or the receiver's reads to appear out of - order (thus breaking condition b). -

- -
- -

Forces

- -
    -
  • -

    Creating synchronization via raw reads and writes. -

    - -
  • - -
- -
- -

Related

- -
    -
  • Lazy Initialization -
  • - -
- -
- -

Solution

- -

Change the flag from - bool to - tbb::atomic<bool> for the flag that indicates - when the message is ready. Here is the previous example, with modifications - shown in - bold font. -

- -
tbb::atomic<bool> Ready;
-std::string Message;
- 
-void Send( const std::string& src ) {. // Executed by thread 1
-   Message=src;
-   Ready = true;
-}
- 
-bool Receive( std::string& dst ) {    // Executed by thread 2
-   bool result = Ready;
-   if( result ) dst=Message;
-   return result;              // Return true if message was received.
-}
-

A write to a - tbb::atomic value has - release semantics, which means that all of its prior writes will - be seen before the releasing write. A read from - tbb::atomic value has - acquire semantics, which means that all of its subsequent reads - will happen after the acquiring read. The implementation of - tbb::atomic ensures that both the compiler and the - hardware observe these ordering constraints. -

- -
- -

Variations

- -

Higher level synchronization constructs normally include the necessary - - acquire and - release fences. For example, mutexes are normally implemented - such that acquisition of a lock has - acquire semantics and release of a lock has - release semantics. Thus a thread that acquires a lock on a mutex - always sees any memory writes done by another thread before it released a lock - on that mutex. -

- -
- -

Non Solutions

- -

Mistaken solutions are so often proposed that it is worth - understanding why they are wrong. -

- -

One common mistake is to assume that declaring the flag with the - volatile keyword solves the problem. Though the - volatile keyword forces a write to happen immediately, - it generally has no effect on the visible ordering of that write with respect - to other memory operations. An exception to this rule are processors from the - Intel® Itanium® processor family, which by convention assign acquire semantics - to - volatile reads and release semantics to volatile - writes. -

- -

Another mistake is to assume that conditionally executed code cannot - happen before the condition is tested. However, the compiler or hardware may - speculatively hoist the conditional code above the condition. -

- -

Similarly, it is a mistake to assume that a processor cannot read the - target of a pointer before reading the pointer. A modern processor does not - read individual values from main memory. It reads cache lines. The target of a - pointer may be in a cache line that has already been read before the pointer - was read, thus giving the appearance that the processor presciently read the - pointer target. -

- -
- -
- - - -
-

See Also

- -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/GUI_Thread.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/GUI_Thread.htm deleted file mode 100644 index 597e0cca7..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/GUI_Thread.htm +++ /dev/null @@ -1,284 +0,0 @@ - - - - - - - - - - - - - - -GUI Thread - - - - - - - - - - - - - - -

GUI Thread

- - -
-

Problem

- -

A user interface thread must remain responsive to user requests, and - must not get bogged down in long computations. -

- -
- -

Context

- -

Graphical user interfaces often have a dedicated thread ("GUI thread") - for servicing user interactions. The thread must remain responsive to user - requests even while the application has long computations running. For example, - the user might want to press a "cancel" button to stop the long running - computation. If the GUI thread takes part in the long running computation, it - will not be able to respond to user requests. -

- -
- -

Forces

- -
    -
  • -

    The GUI thread services an event loop. -

    - -
  • - -
  • -

    The GUI thread needs to offload work onto other threads without - waiting for the work to complete. -

    - -
  • - -
  • -

    The GUI thread must be responsive to the event loop and not become - dedicated to doing the offloaded work. -

    - -
  • - -
- -
- -

Related

- -
    -
  • Non-Preemptive Priorities -
  • - -
  • Local Serializer -
  • - -
- -
- -

Solution

- -

The GUI thread offloads the work by firing off a task to do it using - method - task::enqueue. When finished, the task posts an event - to the GUI thread to indicate that the work is done. The semantics of - enqueue cause the task to eventually run on a worker - thread distinct from the calling thread. The method was introduced in Intel® - Threading Building Blocks (Intel® TBB) 3.0. -

- -

The following figure sketches the communication paths. Items in black - are executed by the GUI thread; items in blue are executed by another thread. -

- -
GUI Thread pattern -

-
- -
- -

Example

- -

The example is for the Microsoft Windows* operating systems, though - similar principles apply to any GUI using an event loop idiom. For each event, - the GUI thread calls a user-defined function - WndProc. to process an event. The key parts are shown - in - bold font. -

- -
// Event posted from enqueued task when it finishes its work.
-const UINT WM_POP_FOO = WM_USER+0;
-
-// Queue for transmitting results from enqueued task to GUI thread.
-tbb::concurrent_queue<Foo>ResultQueue;
-
-// GUI thread’s private copy of most recently computed result.
-Foo CurrentResult;
- 
-LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {
-   switch(msg) {
-       case WM_COMMAND:
-           switch (LOWORD(wParam)) {
-               case IDM_LONGRUNNINGWORK:
-                   // User requested a long computation. Delegate it to another thread.
-                   LaunchLongRunningWork(hWnd);
-                   break;
-               case IDM_EXIT:
-                   DestroyWindow(hWnd);
-                   break;
-               default:
-                   return DefWindowProc(hWnd, msg, wParam, lParam);
-           }
-           break;
-       case WM_POP_FOO:
-           // There is another result in ResultQueue for me to grab.
-           ResultQueue.try_pop(CurrentResult);
-           // Update the window with the latest result.
-           RedrawWindow( hWnd, NULL, NULL, RDW_ERASE|RDW_INVALIDATE );
-           break;
-       case WM_PAINT: 
-           Repaint the window using CurrentResult
-           break;
-       case WM_DESTROY:
-           PostQuitMessage(0);
-           break;
-       default:
-           return DefWindowProc( hWnd, msg, wParam, lParam );
-   }
-   return 0;
-} 
-

The GUI thread processes long computations as follows: -

- -
    -
  1. -

    The GUI thread calls - LongRunningWork, which hands off the work to a - worker thread and immediately returns. -

    - -
  2. - -
  3. -

    The GUI thread continues servicing the event loop. If it has to - repaint the window, it uses the value ofCurrentResult, which - is the most recent - Foo that it has seen. -

    - -
  4. - -
- -

When a worker finishes the long computation, it pushes the result into - ResultQueue, and sends a message WM_POP_FOO to the GUI thread. -

- -
    -
  1. -

    The GUI thread services a - WM_POP_FOO message by popping an item from - ResultQueue into CurrentResult. The - try_pop always succeeds because there is exactly - one - WM_POP_FOO message for each item in - ResultQueue. -

    - -
  2. - -
- -

Routine - LaunchLongRunningWork creates a root task and launches - it using method - task::enqeueue. The task is a root task because it has - no successor task waiting on it. -

- -
class LongTask: public tbb::task {
-   HWND hWnd;
-   tbb::task* execute() {
-       Do long computation
-       Foo x = result of long computation
-       ResultQueue.push( x );
-       // Notify GUI thread that result is available.
-        PostMessage(hWnd,WM_POP_FOO,0,0);
-       return NULL;
-   }
-public:
-   LongTask( HWND hWnd_ ) : hWnd(hWnd_) {}
-};
- 
-void LaunchLongRunningWork( HWND hWnd ) {
-   LongTask* t = new( tbb::task::allocate_root() ) LongTask(hWnd); 
-   tbb::task::enqueue(*t);
-}
-

It is essential to use method - task::enqueue and not method - task::spawn. The reason is that method - enqueue ensures that the task eventually executes when - resources permit, even if no thread explicitly waits on the task. In contrast, - method - spawn may postpone execution of the task until it is - explicitly waited upon. -

- -

The example uses a - concurrent_queue for workers to communicate results - back to the GUI thread. Since only the most recent result matters in the - example, and alternative would be to use a shared variable protected by a - mutex. However, doing so would block the worker while the GUI thread was - holding a lock on the mutex, and vice versa. Using - concurrent_queue provides a simple robust solution. -

- -

If two long computations are in flight, there is a chance that the - first computation completes after the second one. If displaying the result of - the most recently requested computation is important, then associate a request - serial number with the computation. The GUI thread can pop from - ResultQueue into a temporary variable, check the - serial number, and update - CurrentResult only if doing so advances the serial - number. -

- -
- -
- - - -
-

See Also

- -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/General_References.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/General_References.htm deleted file mode 100644 index 95f12977e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/General_References.htm +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - - - -General References - - - - - - - - - - - - - - -

General References

- - -
-

This section lists general references. References specific to a pattern - are listed at the end of the topic for the pattern. -

- -
    -
  • -

    E. Gamma, R. Helm, R. Johnson, J. Vlissides. - Design Patterns (1995). -

    - -
  • - -
  • -

    Berkeley Pattern Language for Parallel Programming, - http://parlab.eecs.berkeley.edu/wiki/patterns -

    - -
  • - -
  • -

    T. Mattson, B. Sanders, B. Massingill. - Patterns for Parallel Programming (2005). -

    - -
  • - -
  • -

    ParaPLoP 2009, - http://www.upcrc.illinois.edu/workshops/paraplop09/program.html -

    - -
  • - -
  • -

    ParaPLoP 2010, - http://www.upcrc.illinois.edu/workshops/paraplop10/program.html -

    - -
  • - -
  • -

    Eun-Gyu Kim and Marc Snir, - Parallel Programming Patterns, - http://www.cs.illinois.edu/homes/snir/PPP/index.html -

    - -
  • - -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Images/image002.jpg b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Images/image002.jpg deleted file mode 100644 index 63ef8c6dd..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Images/image002.jpg and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Images/image003.jpg b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Images/image003.jpg deleted file mode 100644 index 30feff069..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Images/image003.jpg and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Images/image004.jpg b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Images/image004.jpg deleted file mode 100644 index c32972c6c..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Images/image004.jpg and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Images/image005.jpg b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Images/image005.jpg deleted file mode 100644 index bd7938153..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Images/image005.jpg and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Images/image006.jpg b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Images/image006.jpg deleted file mode 100644 index 414551985..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Images/image006.jpg and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Images/image007.jpg b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Images/image007.jpg deleted file mode 100644 index dcaba0e58..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Images/image007.jpg and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Lazy_Initialization.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Lazy_Initialization.htm deleted file mode 100644 index ba4691c04..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Lazy_Initialization.htm +++ /dev/null @@ -1,283 +0,0 @@ - - - - - - - - - - - - - -Lazy Initialization - - - - - - - - - - - - - - -

Lazy Initialization

- - -
-

Problem

- -

Perform an initialization the first time it is needed. -

- -
- -

Context

- -

Initializing data structures lazily is a common technique. Not only - does it avoid the cost of initializing unused data structures, it is often a - more convenient way to structure a program. -

- -
- -

Forces

- -
    -
  • -

    Threads share access to an object. -

    - -
  • - -
  • -

    The object should not be created until the first access. -

    - -
  • - -
- -

The second force covers several possible motivations: -

- -
    -
  • -

    The object is expensive to create and creating it early would slow - down program startup. -

    - -
  • - -
  • -

    It is not used in every run of the program. -

    - -
  • - -
  • -

    Early initialization would require adding code where it is - undesirable for readability or structural reasons. -

    - -
  • - -
- -
- -

Related

- -
    -
  • Fenced Data Transfer -
  • - -
- -
- -

Solutions

- -

A parallel solution is substantially trickier, because it must deal - with several concurrency issues. -

- -
- -

Races: If two threads attempt to simultaneously access to - the object for the first time, and thus cause creation of the object, the race - must be resolved in a way that both threads end up with a reference to the same - object of type - T. -

- - - -

Memory leaks: In the event of a race, the implementation - must ensure that any extra transient - T objects are cleaned up. -

- - - -

Memory consistency: If thread X executes - value=new T(), all other threads must see stores - by - new T() occur before the assignment - value=. -

- - - -

Deadlock: What if the constructor of - T() requires acquiring a lock, but the current - holder of that lock is also racing to access the object for the first time? -

- - -
- -

There are two solutions. One is based on double-check locking. The - other relies on compare-and-swap. Because the tradeoffs and issues are subtle, - most of the discussion is in the following examples section. -

- -
- -

Examples

- -

An Intel® Threading Building Blocks (Intel® TBB) implementation of the "double-check" pattern is shown - below. -

- -
template<typename T, typename Mutex=tbb::mutex>
-class lazy {
-   tbb::atomic<T*> value;
-   Mutex mut;
-public:
-   lazy() : value() {}                    // Initializes value to NULL
-   ~lazy() {delete value;}
-   T& get() {
-       if( !value ) {                     // Read of value has acquire semantics. 
-           Mutex::scoped_lock lock(mut);
-           if( !value ) value = new T();. // Write of value has release semantics 
-       }
-       return *value;
-   }
-};
-

The name comes from the way that the pattern deals with races. There - is one check done without locking and one check done after locking. The first - check handles the presumably common case that the initialization has already - been done, without any locking. The second check deals with cases where two - threads both see an uninitialized value, and both try to acquire the lock. In - that case, the second thread to acquire the lock will see that the - initialization has already occurred. -

- -

If - T() throws an exception, the solution is correct - because - value will still be NULL and the mutex unlocked when - object - lock is destroyed. -

- -

The solution correctly addresses memory consistency issues. A write to - a - tbb::atomic value has - release semantics, which means that all of its prior writes will - be seen before the releasing write. A read from - tbb::atomic value has - acquire semantics, which means that all of its subsequent reads - will happen after the acquiring read. Both of these properties are critical to - the solution. The releasing write ensures that the construction of - T() is seen to occur before the assignment to value. The - acquiring read ensures that when the caller reads from - *value, the reads occur after the - "if(!value)" check. The release/acquire is - essentially the Fenced Data Transfer pattern, where the - "message" is the fully constructed instance - T(), and the "ready" flag is the pointer - value. -

- -

The solution described involves blocking threads while initialization - occurs. Hence it can suffer the usual pathologies associated with blocking. For - example, if the thread first acquires the lock is suspended by the OS, all - other threads will have to wait until that thread resumes. A lock-free - variation avoids this problem by making all contending threads attempt - initialization, and atomically deciding which attempt succeeds. -

- -

An Intel® TBB implementation of the non-blocking variant follows. It - also uses double-check, but without a lock. -

- -
template<typename T>
-class lazy {
-   tbb::atomic<T*> value;
-public:
-   lazy() : value() {}                    // Initializes value to NULL
-   ~lazy() {delete value;}
-   T& get() {
-       if( !value ) {
-           T* tmp = new T();
-           if( value.compare_and_swap(tmp,NULL)!=NULL )
-               // Another thread installed the value, so throw away mine.
-               delete tmp;
-       }
-       return *value;
-   }
-};
-

The second check is performed by the expression - value.compare_and_swap(tmp,NULL)!=NULL, which conditionally assigns - value=tmp if - value==NULL, and returns true if the old - value was NULL. Thus if multiple threads attempt - simultaneous initialization, the first thread to execute the - compare_and_swap will set value to point to its T - object. Other contenders that execute the - compare_and_swap will get back a non-NULL pointer, - and know that they should delete their transient T objects. -

- -

As with the locking solution, memory consistency issues are addressed - by the semantics of - tbb::atomic. The first check has - acquire semantics and the - compare_and_swap has both - acquire and - release semantics. -

- -
- -

References

- -

Lawrence Crowl, "Dynamic Initialization and Destruction with Concurrency", - http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2660.htm -

- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Local_Serializer.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Local_Serializer.htm deleted file mode 100644 index b7eac9a08..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Local_Serializer.htm +++ /dev/null @@ -1,410 +0,0 @@ - - - - - - - - - - - - - -Local Serializer - - - - - - - - - - - - - - -

Local Serializer

- - -
-

Context

- -

Consider an interactive program. To maximize concurrency and - responsiveness, operations requested by the user can be implemented as tasks. - The order of operations can be important. For example, suppose the program - presents editable text to the user. There might be operations to select text - and delete selected text. Reversing the order of "select" and "delete" - operations on the same buffer would be bad. However, commuting operations on - different buffers might be okay. Hence the goal is to establish serial ordering - of tasks associated with a given object, but not constrain ordering of tasks - between different objects. -

- -
- -

Forces

- -
    -
  • -

    Operations associated with a certain object must be performed in - serial order. -

    - -
  • - -
  • -

    Serializing with a lock would be wasteful because threads would be - waiting at the lock when they could be doing useful work elsewhere. -

    - -
  • - -
- -
- -

Solution

- -

Sequence the work items using a FIFO (first-in first-out structure). - Always keep an item in flight if possible. If no item is in flight when a work - item appears, put the item in flight. Otherwise, push the item onto the FIFO. - When the current item in flight completes, pop another item from the FIFO and - put it in flight. -

- -

The logic can be implemented without mutexes, by using - concurrent_queue for the FIFO and - atomic<int> to count the number of items waiting - and in flight. The example explains the accounting in detail. -

- -
- -

Example

- -

The following example builds on the Non-Preemptive Priorities example - to implement local serialization in addition to priorities. It implements three - priority levels and local serializers. The user interface for it follows: -

- -
enum Priority {
-   P_High,
-   P_Medium,
-   P_Low
-};
- 
-template<typename Func>
-void EnqueueWork( Priority p, Func f, Serializer* s=NULL );
-

Template function - EnqueueWork causes functor - f to run when the three constraints in the following - table are met. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Implementation of Constraints
-

Constraint -

- -
-

Resolved by class... -

- -
-

Any prior work for the - Serializer has completed. -

- -
-

Serializer -

- -
-

A thread is available. -

- -
-

RunWorkItem -

- -
-

No higher priority work is ready to run. -

- -
-

ReadyPileType -

- -
-
- -

Constraints on a given functor are resolved from top to bottom in the - table. The first constraint does not exist when s is NULL. The implementation - of - EnqueueWork packages the functor in a - SerializedWorkItem and routes it to the class that - enforces the first relevant constraint between pieces of work. -

- -
template<typename Func>
-void EnqueueWork( Priority p, Func f, Serializer* s=NULL ) {
-   WorkItem* item = new SerializedWorkItem<Func>( p, f, s );
-   if( s )
-       s->add(item);
-   else
-       ReadyPile.add(item);
-}
-

A - SerializedWorkItem is derived from a - WorkItem, which serves as a way to pass around a - prioritized piece of work without knowing further details of the work. -

- -
// Abstract base class for a prioritized piece of work.
-class WorkItem {
-public:
-   WorkItem( Priority p ) : priority(p) {}
-   // Derived class defines the actual work.
-   virtual void run() = 0;
-   const Priority priority;
-};
- 
-template<typename Func>
-class SerializedWorkItem: public WorkItem {
-   Serializer* serializer;
-   Func f;
-   /*override*/ void run() {
-       f();
-       Serializer* s = serializer;
-       // Destroy f before running Serializer’s next functor.
-       delete this;
-       if( s )
-           s->noteCompletion();
-   }
-public:
-   SerializedWorkItem( Priority p, const Func& f_, Serializer* s ) :
-       WorkItem(p), serializer(s), f(f_) 
-   {}
-};
-

Base class - WorkItem is the same as class WorkItem in the example - for Non-Preemptive Priorities. The notion of serial constraints is completely - hidden from the base class, thus permitting the framework to extend other kinds - of constraints or lack of constraints. Class - SerializedWorkItem is essentially - ConcreteWorkItem from the example for Non-Preemptive - Priorities, extended with a - Serializer aspect. -

- -

Virtual method - run() is invoked when it becomes time to run the - functor. It performs three steps: -

- -
    -
  1. -

    Run the functor -

    - -
  2. - -
  3. -

    Destroy the functor. -

    - -
  4. - -
  5. -

    Notify the - Serializer that the functor completed, and thus - unconstraining the next waiting functor. -

    - -
  6. - -
- -

Step 3 is the difference from the operation of ConcreteWorkItem::run. - Step 2 could be done after step 3 in some contexts to increase concurrency - slightly. However, the presented order is recommended because if step 2 takes - non-trivial time, it likely has side effects that should complete before the - next functor runs. -

- -

Class - Serializer implements the core of the Local Serializer - pattern: -

- -
class Serializer {
-   tbb::concurrent_queue<WorkItem*> queue;
-   tbb::atomic<int> count;         // Count of queued items and in-flight item
-   void moveOneItemToReadyPile() { // Transfer item from queue to ReadyPile
-       WorkItem* item;
-       queue.try_pop(item);
-       ReadyPile.add(item);
-   }
-public:
-   void add( WorkItem* item ) {
-       queue.push(item);
-       if( ++count==1 )
-           moveOneItemToReadyPile();
-   }
-   void noteCompletion() {        // Called when WorkItem completes.
-       if( ‐‐count!=0 )
-           moveOneItemToReadyPile();
-   }
-};
-

The class maintains two members: -

- -
    -
  • -

    A queue of WorkItem waiting for prior work to complete. -

    - -
  • - -
  • -

    A count of queued or in-flight work. -

    - -
  • - -
- -

Mutexes are avoided by using - concurrent_queue<WorkItem*> and - atomic<int> along with careful ordering of - operations. The transitions of count are the key understanding how class - Serializer works. -

- -
    -
  • -

    If method - add increments - count from 0 to 1, this indicates that no other - work is in flight and thus the work should be moved to the - ReadyPile. -

    - -
  • - -
  • -

    If method - noteCompletion decrements count and it is - not from 1 to 0, then the queue is non-empty and another - item in the queue should be moved to - ReadyPile. -

    - -
  • - -
- -

Class - ReadyPile is explained in the example for - Non-Preemptive Priorities. -

- -

If priorities are not necessary, there are two variations on method - moveOneItemToReadyPile, with different implications. -

- -
    -
  • -

    Method - moveOneItemToReadyPile could directly - invokeitem->run(). This approach has relatively low - overhead and high thread locality for a given - Serializer. But it is unfair. If the - Serializer has a continual stream of tasks, the - thread operating on it will keep servicing those tasks to the exclusion of - others. -

    - -
  • - -
  • -

    Method - moveOneItemToReadyPile could invoke - task::enqueue to enqueue a task that invokes - item->run(). Doing so introduces higher - overhead and less locality than the first approach, but avoids starvation. -

    - -
  • - -
- -

The conflict between fairness and maximum locality is fundamental. The - best resolution depends upon circumstance. -

- -

The pattern generalizes to constraints on work items more general than - those maintained by class Serializer. A generalized - Serializer::add determines if a work item is - unconstrained, and if so, runs it immediately. A generalized - Serializer::noteCompletion runs all previously - constrained items that have become unconstrained by the completion of the - current work item. The term "run" means to run work immediately, or if there - are more constraints, forwarding the work to the next constraint resolver. -

- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Non-Preemptive_Priorities.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Non-Preemptive_Priorities.htm deleted file mode 100644 index 119a1530a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Non-Preemptive_Priorities.htm +++ /dev/null @@ -1,214 +0,0 @@ - - - - - - - - - - - - -Non-Preemptive Priorities - - - - - - - - - - - - - - -

Non-Preemptive Priorities

- - -
-

Problem

- -

Choose the next work item to do, based on priorities. -

- -
- -

Context

- -

The scheduler in Intel® Threading Building Blocks (Intel® TBB) chooses - tasks using rules based on scalability concerns. The rules are based on the - order in which tasks were spawned or enqueued, and are oblivious to the - contents of tasks. However, sometimes it is best to choose work based on some - kind of priority relationship. -

- -
- -

Forces

- -
    -
  • -

    Given multiple work items, there is a rule for which item should - be done next that is - not the default Intel® TBB rule. -

    - -
  • - -
  • -

    Preemptive priorities are not necessary. If a higher priority item - appears, it is not necessary to immediately stop lower priority items in - flight. If preemptive priorities are necessary, then non-preemptive tasking is - inappropriate. Use threads instead. -

    - -
  • - -
- -
- -

Solution

- -

Put the work in a shared work pile. Decouple tasks from specific work, - so that task execution chooses the actual piece of work to be selected from the - pile. -

- -
- -

Example

- -

The following example implements - three priority levels. The user interface for it and top-level implementation - follow: -

- -
enum Priority {
-   P_High,
-   P_Medium,
-   P_Low
-};
- 
-template<typename Func>
-void EnqueueWork( Priority p, Func f ) {
-   WorkItem* item = new ConcreteWorkItem<Func>( p, f );
-   ReadyPile.add(item);
-}
-

The caller provides a priority - p and a functor - f to routine - EnqueueWork. The functor may be the result of a - lambda expression. - EnqueueWork packages - f as a - WorkItem and adds it to global object - ReadyPile. -

- -

Class - WorkItem provides a uniform interface for running - functors of unknown type: -

- -
// Abstract base class for a prioritized piece of work.
-class WorkItem {
-public:
-   WorkItem( Priority p ) : priority(p) {}
-   // Derived class defines the actual work.
-   virtual void run() = 0;
-   const Priority priority;
-};
- 
-template<typename Func>
-
class ConcreteWorkItem: public WorkItem {
-   Func f;
-   /*override*/ void run() {
-       f();
-       delete this;
-   }
-public:
-   ConcreteWorkItem( Priority p, const Func& f_ ) :
-       WorkItem(p), f(f_)
-   {}
-};
-

Class - ReadyPile contains the core pattern. It maintains a - collection of work and fires off tasks that choose work from the collection: -

- -
class ReadyPileType {
-   // One queue for each priority level
-   tbb::concurrent_queue<WorkItem*> level[P_Low+1];
-public:
-   void add( WorkItem* item ) {
-       level[item->priority].push(item);
-       tbb::task::enqueue(*new(tbb::task::allocate_root()) RunWorkItem);
-   }
-   void runNextWorkItem() {
-       // Scan queues in priority order for an item.
-       WorkItem* item=NULL;
-       for( int i=P_High; i<=P_Low; ++i )
-           if( level[i].try_pop(item) )
-               break;
-       assert(item);
-       item->run();
-   }
-};
- 
-ReadyPileType ReadyPile;
-

The task enqueued by - add(item) does - not necessarily execute that item. The task executes - runNextWorkItem(), which may find a higher priority - item. There is one task for each item, but the mapping resolves when the task - actually executes, not when it is created. -

- -

Here are the details of class - RunWorkItem: -

- -
class RunWorkItem: public tbb::task {
-   /*override*/tbb::task* execute(); // Private override of virtual method
-};
-...
-tbb::task* RunWorkItem::execute() { 
-   ReadyPile.runNextWorkItem();
-   return NULL;
-};
-

RunWorkItem objects are fungible. They enable the - Intel® TBB scheduler to choose when to do a work item, not which work item to - do. The override of virtual method - task::execute is private because all calls to it are - dispatched via base class - task. -

- -

Other priority schemes can be implemented by changing the internals - for - ReadyPileType. A priority queue could be used to - implement very fine grained priorities. -

- -

The scalability of the pattern is limited by the scalability of - ReadyPileType. Ideally scalable concurrent - containers should be used for it. -

- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Odd-Even_Communication.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Odd-Even_Communication.htm deleted file mode 100644 index 0f8849968..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Odd-Even_Communication.htm +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - -Odd-Even Communication - - - - - - - - - - - - - - -

Odd-Even Communication

- - -
-

Problem

- -

Operations on data cannot be done entirely independently, but data can - be partitioned into two subsets such that all operations on a subset can run in - parallel. -

- -
- -

Context

- -

Solvers for partial differential equations can often be modified to - follow this pattern. For example, for a 2D grid with only nearest-neighbor - communication, it may be possible to treat the grid as a checkerboard, and - alternate between updating red squares and black squares. -

- -

Another context is staggered grid ("leap frog") Finite - Difference Time Domain (FDTD. solvers, which naturally fit the pattern. The - code - examples/parallel_for/seismic/ uses such a solver. -

- -
- -

Forces

- -
    -
  • -

    Dependencies between items form a bipartite graph. -

    - -
  • - -
- -
- -

Solution

- -

Alternate between updating one subset and then the other subset. Apply - the elementwise pattern to each subset. -

- -
- -

Example

- -

The example in - examples/parallel_for/seismic demonstrates the - principle. In it, two physical fields - velocity and - stress each depend upon each other, and so cannot all be updated - simultaneously. However, the - velocity calculations can be done independently as long as the - stress values remain fixed, and vice-versa. So the code - alternates updates of the - velocity and - stress fields. Each update is done using - tbb::parallel_for. -

- -
- -

References

- -

Eun-Gyu Kim and Mark Snir, "Odd-Even Communication Group", - http://www.cs.uiuc.edu/homes/snir/PPP/patterns/oddeven.pdf -

- -
- -
- - - -
-

See Also

- -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Reduction.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Reduction.htm deleted file mode 100644 index 88111c696..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Reduction.htm +++ /dev/null @@ -1,267 +0,0 @@ - - - - - - - - - - - - - - - -Reduction - - - - - - - - - - - - - - -

Reduction

- - -
-

Problem

- -

Perform an associative reduction operation across a data set. -

- -
- -

Context

- -

Many serial algorithms sweep over a set of items to collect summary - information. -

- -
- -

Forces

- -

The summary can be expressed as an associative operation over the data - set, or at least is close enough to associative that reassociation does not - matter. -

- -
- -

Solution

- -

Two solutions exist in Intel® Threading Building Blocks (Intel® TBB). - The choice on which to use depends upon several considerations: -

- -
    -
  • -

    Is the operation commutative as well as associative? -

    - -
  • - -
  • -

    Are instances of the reduction type expensive to construct and - destroy. For example, a floating point number is inexpensive to construct. A - sparse floating-point matrix might be very expensive to construct. -

    - -
  • - -
- -

Use - tbb::parallel_reduce when the objects are inexpensive - to construct. It works even if the reduction operation is not commutative. The - Intel® TBB Tutorial describes how to use - tbb::parallel_reduce for basic reductions. -

- -

Use - tbb::parallel_for and - tbb::combinable if the reduction operation is - commutative and instances of the type are expensive. -

- -

If the operation is not precisely associative but a precisely - deterministic result is required, use recursive reduction and parallelize it - using - tbb::parallel_invoke. -

- -
- -

Examples

- -

The examples presented here illustrate the various solutions and some - tradeoffs. -

- -

The first example uses - tbb::parallel_reduce to do a + reduction over sequence - of type T. The sequence is defined by a half-open interval [first,last). -

- -
T AssocReduce( const T* first, const T* last, T identity ) {
-   return tbb::parallel_reduce(
-       // Index range for reduction
-       tbb::blocked_range<const T*>(first,last),
-       // Identity element
-       identity,
-       // Reduce a subrange and partial sum
-       [&]( tbb::blocked_range<const T*> r, T partial_sum )->float {
-           return std::accumulate( r.begin(), r.end(), partial_sum );
-       },
-       // Reduce two partial sums
-       std::plus<T>()
-   );
-} 
-

The third and fourth arguments to this form of parallel_reduce are a - built in form of the agglomeration pattern. If there is an elementwise action - to be performed before the reduction, incorporating it into the third argument - (reduction of a subrange) may improve performance because of better locality of - reference. -

- -

The second example assumes the + is commutative on T. It is a good - solution when T objects are expensive to construct. -

- -
T CombineReduce( const T* first, const T* last, T identity ) {
-   tbb::combinable<T> sum(identity);
-   tbb::parallel_for(
-       tbb::blocked_range<const T*>(first,last),
-       [&]( tbb::blocked_range<const T*> r ) {
-           sum.local() += std::accumulate(r.begin(), r.end(), identity);
-       }
-   );
-   return sum.combine( []( const T& x, const T& y ) {return x+y;} );
-}
-

Sometimes it is desirable to destructively use the partial results to - generate the final result. For example, if the partial results are lists, they - can be spliced together to form the final result. In that case use class - tbb::enumerable_thread_specific instead of - combinable. The - ParallelFindCollisions - example in Divide amd Conquer demonstrates the technique. -

- -

Floating-point addition and multiplication are almost associative. - Reassociation can cause changes because of rounding effects. The techniques - shown so far reassociate terms non-deterministically. Fully deterministic - parallel reduction for a not quite associative operation requires using - deterministic reassociation. The code below demonstrates this in the form of a - template that does a + reduction over a sequence of values of type T. -

- -
template<typename T>
-T RepeatableReduce( const T* first, const T* last, T identity ) {
-   if( last-first<=1000 ) {
-       // Use serial reduction
-       return std::accumulate( first, last, identity );
-   } else {
-       // Do parallel divide-and-conquer reduction
-       const T* mid = first+(last-first)/2;
-       T left, right;
-       tbb::parallel_invoke(
-           [&]{left=RepeatableReduce(first,mid,identity);},
-           [&]{right=RepeatableReduce(mid,last,identity);} 
-       );
-       return left+right;
-   }
-}
-

The outer if-else is an instance of the agglomeration pattern for - recursive computations. The reduction graph, though not a strict binary tree, - is fully deterministic. Thus the result will always be the same for a given - input sequence, assuming all threads do identical floating-point rounding. -

- -

The final example shows how a problem that typically is not viewed as - a reduction can be parallelized by viewing it as a reduction. The problem is - retrieving floating-point exception flags for a computation across a data set. - The serial code might look something like: -

- -
   feclearexcept(FE_ALL_EXCEPT); 
-   for( int i=0; i<N; ++i )
-       C[i]=A[i]*B[i];
-   int flags = fetestexcept(FE_ALL_EXCEPT);
-   if (flags & FE_DIVBYZERO) ...;
-   if (flags & FE_OVERFLOW) ...;
-   ...
-

The code can be parallelized by computing chunks of the loop - separately, and merging floating-point flags from each chunk. To do this with - tbb:parallel_reduce, first define a - "body" type, as shown below. -

- -
struct ComputeChunk {
-   int flags;          // Holds floating-point exceptions seen so far.
-   void reset_fpe() {
-       flags=0;
-       feclearexcept(FE_ALL_EXCEPT);
-   }
-   ComputeChunk () {
-       reset_fpe();
-   }
-   // "Splitting constructor"called by parallel_reduce when splitting a range into subranges.
-   ComputeChunk ( const ComputeChunk&, tbb::split ) {
-       reset_fpe();
-   }
-   // Operates on a chunk and collects floating-point exception state into flags member.
-   void operator()( tbb::blocked_range<int> r ) {
-       int end=r.end();
-       for( int i=r.begin(); i!=end; ++i )
-           C[i] = A[i]/B[i];
-       // It is critical to do |= here, not =, because otherwise we
-       // might lose earlier exceptions from the same thread.
-       flags |= fetestexcept(FE_ALL_EXCEPT);
-   }
-   // Called by parallel_reduce when joining results from two subranges.
-   void join( Body& other ) {
-       flags |= other.flags;
-   }
-};
-

Then invoke it as follows: -

- -
// Construction of cc implicitly resets FP exception state.
-   ComputeChunk cc;
-   tbb::parallel_reduce( tbb::blocked_range<int>(0,N), cc );
-   if (cc.flags & FE_DIVBYZERO) ...;
-   if (cc.flags & FE_OVERFLOW) ...;
-   ...
-

  -

- -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Reference_Counting.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Reference_Counting.htm deleted file mode 100644 index ed594a137..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Reference_Counting.htm +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - - - - - - -Reference Counting - - - - - - - - - - - - - - -

Reference Counting

- - -
-

Problem

- -

Destroy an object when it will no longer be used. -

- -
- -

Context

- -

Often it is desirable to destroy an object when it is known that it - will not be used in the future. Reference counting is a common serial solution - that extends to parallel programming if done carefully. -

- -
- -

Forces

- -
    -
  • -

    If there are cycles of references, basic reference counting is - insufficient unless the cycle is explicitly broken. -

    - -
  • - -
  • -

    Atomic counting is relatively expensive in hardware. -

    - -
  • - -
- -
- -

Solution

- -

Thread-safe reference counting is like serial reference counting, - except that the increment/decrement is done atomically, and the decrement and - test "count is zero?" must act as a single atomic operation. The - following example uses - tbb::atomic<int> to achieve this. -

- -
template<typename T>
-class counted {
-   tbb::atomic<int> my_count;
-   T value;
-public:
-   // Construct object with a single reference to it.
-   counted() {my_count=1;}
-   // Add reference
-   void add_ref() {++my_count;}
-   // Remove reference. Return true if it was the last reference.
-   bool remove_ref() {return ‐‐my_count==0;}
-   // Get reference to underlying object
-   T& get() {
-       assert(my_count>0);
-       return my_value;
-   }
-};
-

It is incorrect to use a separate read for testing if the count is - zero. The following code would be an incorrect implementation of method - remove_ref() because two threads might both execute - the decrement, and then both read - my_count as zero. Hence two callers would both be told - incorrectly that they had removed the last reference. -

- -
      ‐‐my_count;
-      return my_count==0. // WRONG!
-

The decrement may need to have a - release fence so that any pending writes complete before the - object is deleted. -

- -

There is no simple way to atomically copy a pointer and increment its - reference count, because there will be a timing hole between the copying and - the increment where the reference count is too low, and thus another thread - might decrement the count to zero and delete the object. Two ways to address - the problem are "hazard pointers" and "pass the buck". See the references below - for details. -

- -
- -

Variations

- -

Atomic increment/decrement can be more than an order of magnitude more - expensive than ordinary increment/decrement. The serial optimization of - eliminating redundant increment/decrement operations becomes more important - with atomic reference counts. -

- -

Weighted reference counting can be used to reduce costs if the - pointers are unshared but the referent is shared. Associate a - weight with each pointer. The reference count is the sum of the - weights. A pointer - x can be copied as a pointer - x' without updating the reference count by splitting - the original weight between x and x'. If the weight of x is too low to split, - then first add a constant W to the reference count and weight of x. -

- -
- -

References

- -

D. Bacon and V.T. Rajan, "Concurrent Cycle Collection in Reference - Counted Systems" in - Proc. European Conf. on Object-Oriented Programming (June - 2001). Describes a garbage collector based on reference counting that does - collect cycles. -

- -

M. Michael, "Hazard Pointers: Safe Memory Reclamation for Lock-Free - Objects" in IEEE Transactions on Parallel and Distributed Systems (June 2004). - Describes the "hazard pointer" technique. -

- -

M. Herlihy, V. Luchangco, and M. Moir, "The Repeat Offender Problem: A - Mechanism for Supporting Dynamic-Sized, Lock-Free Data Structures" in - Proceedings of the 16th International Symposium on Distributed - Computing (Oct. 2002). Describes the "pass the buck" technique. -

- -
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Wavefront.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Wavefront.htm deleted file mode 100644 index 9644cab1e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Design_Patterns/Wavefront.htm +++ /dev/null @@ -1,225 +0,0 @@ - - - - - - - - - - - - - -Wavefront - - - - - - - - - - - - - - -

Wavefront

- - -
-

Problem

- -

Perform computations on items in a data set, where the computation on - an item uses results from computations on predecessor items. -

- -
- -

Context

- -

The dependences between computations form an acyclic graph. -

- -
- -

Forces

- -
    -
  • -

    Dependence constraints between items form an acyclic graph. -

    - -
  • - -
  • -

    The number of immediate predecessors in the graph is known in - advance, or can be determined some time before the last predecessor completes. -

    - -
  • - -
- -
- -

Solution

- -

The solution is a parallel variant of topological sorting, using - tbb::parallel_do to process items. Associate an atomic - counter with each item. Initialize each counter to the number of predecessors. - Invoke tbb::parallel_do to process the items that have no predessors (have - counts of zero). After an item is processed, decrement the counters of its - successors. If a successor's counter reaches zero, add that successor to the - tbb::parallel_do via a "feeder". -

- -

If the number of predecessors for an item cannot be determined in - advance, treat the information "know number of predecessors" as an - additional predecessor. When the number of predecessors becomes known, treat - this conceptual predecessor as completed. -

- -

If the overhead of counting individual items is excessive, aggregate - items into blocks, and do the wavefront over the blocks. -

- -
- -

Example

- -

Below is a serial kernel for the longest common subsequence algorithm. - The parameters are strings - x and - y with respective lengths - xlen and - ylen. -

- -
int F[MAX_LEN+1][MAX_LEN+1];
-
-void SerialLCS( const char* x, size_t xlen, const char* y, size_t ylen )
-{
-   for( size_t i=1; i<=xlen; ++i )
-       for( size_t j=1; j<=ylen; ++j )
-           F[i][j] = x[i-1]==y[j-1] ? F[i-1][j-1]+1:
-                                      max(F[i][j-1],F[i-1][j]);
-}
-

The kernel sets - F[i][j] to the length of the longest common - subsequence shared by - x[0..i-1] and - y[0..j-1]. It assumes that F[0][0..ylen] and - F[0..xlen][0] have already been initialized to zero. -

- -

The following figure shows the data dependences for calculating - F[i][j]. -

- -
Data dependences for longest common substring - calculation. -

-
- -

The following figure shows the gray diagonal dependence is the - transitive closure of other dependencies. Thus for parallelization purposes it - is a redundant dependence that can be ignored. -

- -
Diagonal dependence is redundant. -

-
- -

It is generally good to remove redundant dependences from - consideration, because the atomic counting incurs a cost for each dependence - considered. -

- -

Another consideration is grain size. Scheduling each - F[i][j] element calculation separately is - prohibitively expensive. A good solution is to aggregate the elements into - contiguous blocks, and process the contents of a block serially. The blocks - have the same dependence pattern, but at a block scale. Hence scheduling - overheads can be amortized over blocks. -

- -

The parallel code follows. Each block consists of - N×N elements. Each block has an associated atomic - counter. Array - Count organizes these counters for easy lookup. The - code initializes the counters and then rolls a wavefront using - parallel_do, starting with the block at the origin - since it has no predecessors. -

- -
const int N = 64;
-tbb::atomic<char> Count[MAX_LEN/N+1][MAX_LEN/N+1];
- 
-void ParallelLCS( const char* x, size_t xlen, const char* y, size_t ylen ) {
-   // Initialize predecessor counts for blocks.
-   size_t m = (xlen+N-1)/N;
-   size_t n = (ylen+N-1)/N;
-   for( int i=0; i<m; ++i )
-       for( int j=0; j<n; ++j )
-           Count[i][j] = (i>0)+(j>0);
-   // Roll the wavefront from the origin.
-   typedef pair<size_t,size_t> block;
-   block origin(0,0);
-   tbb::parallel_do( &origin, &origin+1,
-       [=]( const block& b, tbb::parallel_do_feeder<block>&feeder ) {
-           // Extract bounds on block
-           size_t bi = b.first;
-           size_t bj = b.second;
-           size_t xl = N*bi+1;
-           size_t xu = min(xl+N,xlen+1);
-           size_t yl = N*bj+1;
-           size_t yu = min(yl+N,ylen+1);
-           // Process the block
-           for( size_t i=xl; i<xu; ++i )
-               for( size_t j=yl; j<yu; ++j )
-                   F[i][j] = x[i-1]==y[j-1] ? F[i-1][j-1]+1:
-                                              max(F[i][j-1],F[i-1][j]);
-           // Account for successors
-           if( bj+1<n && ‐‐Count[bi][bj+1]==0 )
-               feeder.add( block(bi,bj+1) );
-           if( bi+1<m && ‐‐Count[bi+1][bj]==0 )
-               feeder.add( block(bi+1,bj) );       }
-   );
-}
-

A regular structure simplifies implementation of the wavefront - pattern, but is not required. The parallel preorder traversal in - examples/parallel_do/parallel_preorder applies the - wavefront pattern to traverse each node of a graph in parallel, subject to the - constraint that a node is traversed after its predecessors are traversed. In - that example, each node in the graph stores its predecessor count. -

- -
- -

References

- -

Eun-Gyu Kim and Mark Snir, "Wavefront Pattern", - http://www.cs.uiuc.edu/homes/snir/PPP/patterns/wavefront.pdf -

- -
- -
- - - -
-

See Also

- -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Empty_Tasks.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Empty_Tasks.htm deleted file mode 100644 index 30620ff21..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Empty_Tasks.htm +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - -Empty Tasks - - - - - - - - - - - - - - -

Empty Tasks

- -

You might need a task that does not do anything but wait for its children to complete. The header task.h defines class empty_task for this purpose. Its definition is as follows:

-
// Task that does nothing. Useful for synchronization.
-class empty_task: public task {
-    /*override*/ task* execute() {
-        return NULL;
-    }
-};

A good example of empty_task in action is provided in tbb/parallel_for.h, in method start_for::execute(). The code there uses continuation-passing style. It creates two child tasks, and uses an empty_task as the continuation when the child tasks complete. The top level routine parallel_for (in tbb/parallel_for.h) waits on the root.

-
- - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Exceptions_and_Cancellation.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Exceptions_and_Cancellation.htm deleted file mode 100644 index c935615b2..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Exceptions_and_Cancellation.htm +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - - - - - - - - - -Exceptions and Cancellation - - - - - - - - - - - - - - -

Exceptions and Cancellation

- - -
-

Intel® Threading Building Blocks (Intel® TBB) supports exceptions and - cancellation. When code inside an Intel® TBB algorithm throws an exception, the - following steps generally occur: -

- -
    -
  1. -

    The exception is captured. Any further exceptions inside the - algorithm are ignored. -

    - -
  2. - -
  3. -

    The algorithm is cancelled. Pending iterations are not executed. If - there is Intel® TBB parallelism nested inside, the nested parallelism may also - be cancelled as explained in - Cancellation and Nested Parallelism. -

    - -
  4. - -
  5. -

    Once all parts of the algorithm stop, an exception is thrown on the - thread that invoked the algorithm. -

    - -
  6. - -
- -

The exception thrown in step 3 might be the original exception, or might - merely be a summary of type - captured_exception. The latter usually occurs on current - systems because propagating exceptions between threads requires support for the - C++ - std::exception_ptr functionality. As compilers evolve to - support this functionality, future versions of Intel® TBB might throw the - original exception. So be sure your code can catch either type of exception. - The following example demonstrates exception handling. -

- -
#include "tbb/tbb.h"
-#include <vector>
-#include <iostream>
- 
-using namespace tbb;
-using namespace std;
- 
-vector<int> Data;
- 
-struct Update {
-    void operator()( const blocked_range<int>& r ) const {
-        for( int i=r.begin(); i!=r.end(); ++i )
-            Data.at(i) += 1;
-    }
-};
- 
-int main() {
-    Data.resize(1000);
-    try {
-        parallel_for( blocked_range<int>(0, 2000), Update());
-    } catch( captured_exception& ex ) {
-       cout << "captured_exception: " << ex.what() << endl;
-    } catch( out_of_range& ex ) {
-       cout << "out_of_range: " << ex.what() << endl;
-    }
-    return 0;
-}
-

The - parallel_for attempts to iterate over 2000 elements of a - vector with only 1000 elements. Hence the expression - Data.at(i) sometimes throws an exception - std::out_of_range during execution of the algorithm. - When the exception happens, the algorithm is cancelled and an exception thrown - at the call site to - parallel_for. -

- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/General_Acyclic_Graphs_of_Tasks.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/General_Acyclic_Graphs_of_Tasks.htm deleted file mode 100644 index 7741b3b2d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/General_Acyclic_Graphs_of_Tasks.htm +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - - - - - - - -General Acyclic Graphs of Tasks - - - - - - - - - - - - - - -

General Acyclic Graphs of Tasks

- - -
-

The task graphs considered so far have a tree structure where each task - has a single successor - task::parent() waiting for it to complete. To - accommodate more complex graphs where a task has multiple successors, - Intel® Threading Building Blocks (Intel® TBB) 2.2 and later has methods - that allow direct manipulation of a task's reference count. -

- -

For example, consider a MxN array of tasks where each task depends on - the tasks to the left and above it. The following figure shows such an example: -

- -
Task graph where some tasks have more than one - successor. -

-
- -

The following code evaluates such a task graph, where each task computes - a sum of inputs from its neighbors to the left and above it. -

- -
const int M=3, N=4;
- 
-class DagTask: public tbb::task {
-public:
-    const int i, j;
-    // input[0] = sum from above, input[1] = sum from left
-    double input[2];
-    double sum;
-    // successor[0] = successor below, successor[1] = successor to right
-    DagTask* successor[2];
-    DagTask( int i_, int j_ ) : i(i_), j(j_) {
-        input[0] = input[1] = 0;
-    }
-    task* execute() {
-        __TBB_ASSERT( ref_count()==0, NULL );
-        sum = i==0 && j==0 ? 1 : input[0]+input[1];
-        for( int k=0; k<2; ++k )
-            if( DagTask* t = successor[k] ) {
-                t->input[k] = sum;
-                if( t->decrement_ref_count()==0 )
-                    spawn( *t );
-            }
-        return NULL;
-    }
-};
- 
-double BuildAndEvaluateDAG() {
-    DagTask* x[M][N];
-    for( int i=M; --i>=0; )
-        for( int j=N; --j>=0; ) {
-            x[i][j] = new( tbb::task::allocate_root() ) DagTask(i,j);
-            x[i][j]->successor[0] = i+1<M ? x[i+1][j] : NULL;
-            x[i][j]->successor[1] = j+1<N ? x[i][j+1] : NULL;
-            x[i][j]->set_ref_count((i>0)+(j>0));
-        }
-    // Add extra reference to last task, because it is waited on
-    // by spawn_and_wait_for_all.
-    x[M-1][N-1]->increment_ref_count();
-    // Wait for all but last task to complete.
-    x[M-1][N-1]->spawn_and_wait_for_all(*x[0][0]);
-    // Last task is not executed implicitly, so execute it explicitly.
-    x[M-1][N-1]->execute();
-    double result = x[M-1][N-1]->sum;
-    // Destroy last task.
-    task::destroy(*x[M-1][N-1]);
-    return result;
-}
-

Function - BuildAndEvaluateDAG first builds an array of - DagTask. It allocates each task as a root task because - task::parent() is not used to record successor - relationships. The reference count of each task is initialized to the number of - its predecessors. It evaluates the graph by spawning the initial task - x[0][0] and waiting for - x[M-1][N-1] to complete. As each task completes, it - decrements the reference count of its successors, and spawns any successor - whose count becomes zero. Given a sufficient number of processors, execution - sweeps diagonally over the graph like a wave front from top left to bottom - right. -

- -

The last task - x[M-1][N-1] requires special handling because of its - special interaction with - BuildAndEvaluateDAG: -

- -
    -
  • -

    The last task is used to wait explicitly for other tasks to - complete. Method - wait_for_all requires that the last task's reference - count be set to one more than the number of its predecessors. Thus the last - task is not implicitly executed when its predecessors complete. -

    - -
  • - -
  • -

    The value - sum must be extracted from the last task before it - is destroyed. -

    - -
  • - -
- -

Hence the example explicitly executes the last task, extracts its sum, - and then destroys it. -

- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/How_Task_Scheduling_Works.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/How_Task_Scheduling_Works.htm deleted file mode 100644 index e244daf69..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/How_Task_Scheduling_Works.htm +++ /dev/null @@ -1,244 +0,0 @@ - - - - - - - - - - - - - - - -How Task Scheduling Works - - - - - - - - - - - - - - -

How Task Scheduling Works

- - -
-

The scheduler evaluates a - task graph. The graph is a directed graph where each node is a - task. Each task points to its - successor, which is another task that is waiting on it to - complete, or NULL. Method - task::parent() - gives you read-only access to the successor pointer. Each task has a - refcount that counts the number of tasks that have it as a successor. - The graph evolves over time. -

- -
Snapshot of Task Graph for the Fibonacci Example -

-
- -

The figure above shows a snapshot of a task graph for the Fibonacci - example where: -

- -
    -
  • -

    Tasks A, B, and C spawned child tasks that they are waiting upon. - Their - refcount values are the number of children in flight plus one. - The extra one is part of a convention for explicit waiting that is explained - later in this section. -

    - -
  • - -
  • -

    Task D is running, but has not yet spawned any children, and so it has - not had to set its reference count yet. -

    - -
  • - -
  • -

    Tasks E, F, and G have been spawned, but have not yet started - executing. -

    - -
  • - -
- -

The scheduler runs tasks in a way that tends to minimize both memory - demands and cross-thread communication. The intuition is that a balance must be - reached between depth-first and breadth-first execution. Assuming that the tree - is finite, depth-first is best for sequential execution for the following - reasons: -

- -
    -
  • -

    Strike when the cache is hot. The deepest tasks are the most - recently created tasks, and therefore are hottest in cache. Also, if they can - complete, then task C can continue executing, and though not the hottest in - cache, it is still warmer than the older tasks above it. -

    - -
  • - -
  • -

    Minimize space. Executing the shallowest task leads to - breadth-first unfolding of the tree. This creates an exponential number of - nodes that coexist simultaneously. In contrast, depth-first execution creates - the same number of nodes, but only a linear number have to exist at the same - time, because it stacks the other ready tasks (E, F, and G in the picture). -

    - -
  • - -
- -

Though breadth-first execution has a severe problem with memory - consumption, it does maximize parallelism if you have an unlimited number of - physical threads. Since physical threads are limited, it is better to use only - enough breadth-first execution to keep the available processors busy. -

- -

The scheduler implements a hybrid of depth-first and breadth-first - execution. Each thread has its own deque[8] of tasks that are ready to - run. When a thread spawns a task, it pushes it onto the bottom of its deque. - The following figure shows a snapshot of a thread's deque that corresponds to - the task graph in figure above. -

- -
A Thread's Deque -

-
- -

When a thread participates in task graph evaluation, it continually - executes a task obtained by the first rule below that applies: -

- -
    -
  1. -

    Get the task returned by method - execute for the previous task. This rule does not - apply if - execute returned - NULL. -

    - -
  2. - -
  3. -

    Pop a task from the - bottom of its - own deque. This rule does not apply if the deque is empty. -

    - -
  4. - -
  5. -

    Steal a task from the - top of - another randomly chosen deque. If the chosen deque is empty, the - thread tries this rule again until it succeeds. -

    - -
  6. - -
- -

Rule 1 is discussed in - Scheduler Bypass. The overall effect of rule 2 is to execute the - youngest task spawned by the thread, which causes depth-first - execution until the thread runs out of work. Then rule 3 applies. It steals the - - oldest task spawned by another thread, which causes temporary - breadth-first execution that converts potential parallelism into actual - parallelism. -

- -

Getting a task is always automatic; it happens as part of task graph - evaluation. Putting a task into a deque can be explicit or implicit. A thread - always pushes a task onto the bottom of its own deque, never another thread's - deque. Only theft can transfer a task spawned by one thread to another thread. -

- -

There are three conditions that cause a thread to push a task onto its - deque: -

- -
    -
  • -

    The task is explicitly spawned by the thread, for example, by method - spawn. -

    - -
  • - -
  • -

    A task has been marked for re-execution by method - task::recycle_to_reexecute. -

    - -
  • - -
  • -

    The thread completes execution of the last predecessor task - and after doing so implicitly decrements the task's reference - count to zero. If so, the thread implicitly pushes the successor task onto the - bottom of its deque. Completing the last child does not cause the reference - count to become zero if the reference count includes extra references. -

    - -
  • - -
- -

The example in - Fibonacci Numbers does not have implicit pushing, because it - explicitly waits for children to complete. It uses - set_ref_count(3) for a task having only two children. The - extra reference protects the successor from being implicitly pushed. - Continuation Passing has a similar example that employs implicit - pushing. It uses - set_ref_count(2) for a task having two children, so that - that task executes automatically when the children complete. -

- -

To summarize, the task scheduler's fundamental strategy is 'breadth-first - theft and depth-first work". The breadth-first theft rule raises - parallelism sufficiently to keep threads busy. The depth-first work rule keeps - each thread operating efficiently once it has sufficient work to do. -

- -
- - - - -

[8] Double-ended queue.

- - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image002.jpg b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image002.jpg deleted file mode 100644 index 5e06ac8e7..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image002.jpg and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image004.jpg b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image004.jpg deleted file mode 100644 index 678460516..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image004.jpg and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image006.jpg b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image006.jpg deleted file mode 100644 index 23f2393c8..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image006.jpg and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image007.jpg b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image007.jpg deleted file mode 100644 index 726b44d76..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image007.jpg and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image008.jpg b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image008.jpg deleted file mode 100644 index e5a2a4bd3..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image008.jpg and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image009.jpg b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image009.jpg deleted file mode 100644 index 1a326c1aa..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image009.jpg and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image010.jpg b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image010.jpg deleted file mode 100644 index c84ab1d56..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image010.jpg and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image011.jpg b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image011.jpg deleted file mode 100644 index 2297c1cc6..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image011.jpg and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image012.jpg b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image012.jpg deleted file mode 100644 index e9b011c85..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image012.jpg and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image013.jpg b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image013.jpg deleted file mode 100644 index 838f39e1d..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image013.jpg and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image014.jpg b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image014.jpg deleted file mode 100644 index 7def57eec..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image014.jpg and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image015.jpg b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image015.jpg deleted file mode 100644 index 7fbedc783..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image015.jpg and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image016.jpg b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image016.jpg deleted file mode 100644 index a35a2c997..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image016.jpg and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image017.jpg b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image017.jpg deleted file mode 100644 index bd8bfb152..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image017.jpg and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image018.jpg b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image018.jpg deleted file mode 100644 index b727bac5d..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Images/image018.jpg and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Initializing_and_Terminating_the_Library.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Initializing_and_Terminating_the_Library.htm deleted file mode 100644 index 671ea1cdb..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Initializing_and_Terminating_the_Library.htm +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - -Initializing and Terminating the Library - - - - - - - - - - - - - - -

Initializing and Terminating the Library

- - -
-

Intel® Threading Building Blocks (Intel® TBB) 2.2 and later automatically initializes the - task scheduler. You can use class - task_scheduler_init to explicitly initialize the task - scheduler, which can be useful for doing any of the following: -

- -
    -
  • -

    Control when the task scheduler is constructed and destroyed. -

    - -
  • - -
  • -

    Specify the number of threads used by the task scheduler. -

    - -
  • - -
  • -

    Specify the stack size for worker threads. -

    - -
  • - -
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Integration_Plug-In_for_Microsoft_Visual_Studio_Projects.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Integration_Plug-In_for_Microsoft_Visual_Studio_Projects.htm deleted file mode 100644 index bd2cad664..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Integration_Plug-In_for_Microsoft_Visual_Studio_Projects.htm +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - -Integration Plug-In for Microsoft Visual Studio* Projects - - - - - - - - - - - - - - -

Integration Plug-In for Microsoft Visual Studio* Projects

- -

The plug-in simplifies integration of Intel® Threading Building Blocks (Intel® TBB) into Microsoft Visual Studio* projects. It can be downloaded from http://threadingbuildingblocks.org > Downloads > Extras. The plug-in enables you to quickly add the following to Microsoft Visual C++* projects:

- -
  • The path to the Intel® TBB header files

    -
  • -
  • The path to the Intel® TBB libraries

    -
  • -
  • The specific Intel® TBB libraries to link with

    -
  • -
  • The specific Intel® TBB settings

    -
  • -
-

The plug-in works with C++ projects created in Microsoft Visual Studio* 2003, 2005 and 2008 (except Express editions).

-

To use this functionality unzip the downloaded package msvs_plugin.zip, open it, and follow the instructions in README.txt to install it.

-
- - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Iterating_Over_a_Concurrent_Queue_for_Debugging.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Iterating_Over_a_Concurrent_Queue_for_Debugging.htm deleted file mode 100644 index dec5bd04d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Iterating_Over_a_Concurrent_Queue_for_Debugging.htm +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - -Iterating Over a Concurrent Queue for Debugging - - - - - - - - - - - - - - -

Iterating Over a Concurrent Queue for Debugging

- -

The template classes concurrent_queue and concurrent_bounded_queue support STL-style iteration. This support is intended only for debugging, when you need to dump a queue. The iterators go forwards only, and are too slow to be very useful in production code. If a queue is modified, all iterators pointing to it become invalid and unsafe to use. The following snippet dumps a queue. The operator<< is defined for a Foo.

- -
concurrent_queue<Foo> q;
-...
-typedef concurrent_queue<Foo>::const_iterator iter;
-for(iter i(q.unsafe_begin()); i!=q.unsafe_end(); ++i ) {
-    cout << *i;
-}
-

The prefix unsafe_ on the methods is a reminder that they are not concurrency safe.

-
- - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Lambda_Expressions.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Lambda_Expressions.htm deleted file mode 100644 index bffca8399..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Lambda_Expressions.htm +++ /dev/null @@ -1,175 +0,0 @@ - - - - - - - - - - - - -Lambda Expressions - - - - - - - - - - - - - - -

Lambda Expressions

- - -
-

Version 11.0 and later of the Intel® C++ Compiler implements C++11 - lambda expressions, which make the Intel® Threading Building Blocks (Intel® - TBB) - parallel_for much easier to use. A lambda expression - lets the compiler do the tedious work of creating a function object. -

- -

Below is the example from the previous section, rewritten with a lambda - expression. The lambda expression, shown in - bold font, - replaces both the declaration and construction of function object - ApplyFoo in the example of the previous section. -

- -
#include "tbb/tbb.h"
- 
-using namespace tbb;
- 
-void ParallelApplyFoo( float* a, size_t n ) {
-   parallel_for( blocked_range<size_t>(0,n), 
-      [=](const blocked_range<size_t>& r) {
-                      for(size_t i=r.begin(); i!=r.end(); ++i) 
-                          Foo(a[i]); 
-                  }
-    );
-}
-

The [=] introduces the lambda expression. The expression creates a - function object very similar to - ApplyFoo. When local variables like - a and - n are declared outside the lambda expression, but used - inside it, they are "captured" as fields inside the function object. The [=] - specifies that capture is by value. Writing [&] instead would capture the - values by reference. After the [=] is the parameter list and definition for the - - operator() of the generated function object. The - compiler documentation says more about lambda expressions and other implemented - C++11 features. It is worth reading more complete descriptions of lambda - expressions than can fit here, because lambda expressions are a powerful - feature for using template libraries in general. -

- -

C++11 support is off by default in the compiler. The following table - shows the option for turning it on. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - -
Sample Compilation Commands for Using Lambda Expressions
-

Environment -

- -
-

Intel® C++ Compiler (Version 11.0) -

- -

Compilation Command and Option -

- -
-

Windows* OS systems -

- -
-

icl /Qstd:c++0x foo.cpp -

- -
-

Linux* OS systems -

- -

OS X* systems -

- -
-

icc -std=c++0x foo.cpp -

- -
-
- -

For further compactness, Intel® TBB has a form of - parallel_for expressly for parallel looping over a - consecutive range of integers. The expression - parallel_for(first,last,step,f) - is like writing - for(auto i=first; - i<last; - i+=step)f(i) except that each - f(i) can be evaluated in parallel if resources permit. The - step parameter is optional. Here is the previous - example rewritten in the compact form: -

- -
#include "tbb/tbb.h"
- 
-using namespace tbb;
- 
-#pragma warning(disable: 588)
- 
-void ParallelApplyFoo(float a[], size_t n) {
-    parallel_for(size_t(0), n, [=](size_t i) {Foo(a[i]);});
-}
-

The compact form supports only unidimensional iteration spaces of - integers and the automatic chunking feature detailed on the following section. -

- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Linux_C_Dynamic_Memory_Interface_Replacement.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Linux_C_Dynamic_Memory_Interface_Replacement.htm deleted file mode 100644 index be867ba16..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Linux_C_Dynamic_Memory_Interface_Replacement.htm +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - -Linux* OS C/C++ Dynamic Memory Interface Replacement - - - - - - - - - - - - - - -

Linux* OS C/C++ Dynamic Memory Interface Replacement

- -

Replacements are provided by the proxy library (release version libtbbmalloc_proxy.so.2, debug version libtbbmalloc_proxy_debug.so.2). Replacement can be done either via loading the proxy library at run-time (without changing of executable file via LD_PRELOAD), or by linking with the proxy library.

-

The proxy library implements the following dynamic memory functions:

- -
  • C library: malloc, calloc, realloc, free

    -
  • -
  • Standard POSIX* function: posix_memalign

    -
  • -
  • Obsolete functions: valloc, memalign, pvalloc, mallopt

    -
  • -
  • Global C++ operators new and delete.

    -
  • -
-

A directory with the proxy library and the appropriate scalable memory allocator library must be available for dynamic loading. To make it available for loading, either include it in LD_LIBRARY_PATH or add it to /etc/ld.so.conf.

-

The following limitations for replacement exist:

- -
  • Replacement does not work for applications that use non-standard calls to the glibc memory allocator.

    -
  • -
  • Mono is not supported.

    -
  • -
- -

Examples

-

Below is an example of how to set LD_PRELOAD and link a program to use the replacements.

-
# Set LD_PRELOAD so that loader loads release version of proxy 
-LD_PRELOAD=libtbbmalloc_proxy.so.2 
-# Link with release version of proxy and scalable allocator
-g++ foo.o bar.o -ltbbmalloc_proxy -ltbbmalloc -o a.out

Here is a variation that shows how to link in the debug versions of the library.

-
# Set LD_PRELOAD so that loader loads debug version of proxy
-LD_PRELOAD=libtbbmalloc_proxy_debug.so.2 
-# Link with debug version of proxy and scalable allocator
-g++ foo.o bar.o -ltbbmalloc_proxy_debug -ltbbmalloc_debug -o a.out
-
- - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Linux_OS.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Linux_OS.htm deleted file mode 100644 index ebce9805a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Linux_OS.htm +++ /dev/null @@ -1,484 +0,0 @@ - - - - - - - - - - - - -Linux* OS - - - - - - - - - - - - - - -

Linux* OS

- - -
-

On Linux* operating systems, the default installation location is - /opt/intel/composer_xe_2013/tbb. The following table - describes the subdirectories. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Intel® Threading Building Blocks Subdirectories on Linux* OS
-

Item -

- -
-

Location -

- -
-

Environment Variable -

- -
-

Include files -

- -
-

include/tbb/*.h -

- -
-

CPATH -

- -
-

Shared libraries -

- -
-
lib/<arch>/<gccversion>/lib<lib><variant>.so
-

where -

- -

- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

<arch> -

- -
-

Processor and OS -

- -
-

android -

- -
-

Android -

- -
-

ia32 -

- -
-

IA-32 processors -

- -
-

intel64 -

- -
-

Intel® 64 architecture processors -

- -
-

mic -

- -
-

Intel® Many Integrated Core architecture -

- -
-
- -

- -

- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

<gccversion> -

- -
-

Linux OS configuration -

- -
-

gcc4.1 -

- -
-

gcc version number between 4.1 and 4.4 that do not support - exception_ptr -

- -
-

gcc4.4 -

- -
-

gcc version 4.4 or higher that may or may not support - exception_ptr -

- -
-

(none)

- -
-

For the case where - <arch> is - android or mic. -

- -
-
- -

- -

- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

<lib> -

- -
-

Version -

- -
-

tbb -

- -
-

General library -

- -
-

tbbmalloc -

- -
-

Memory allocator -

- -
-

tbbmalloc_proxy -

- -
-

Substitution for default memory allocator -

- -
-

tbb_preview -

- -
-

Community preview features library -

- -
-
- -

- -

- -

- - - - - - - - - - - - - - - - - - - - - - - - - - -
-

<variant> -

- -
-

Version -

- -
-

(none) -

- -
-

Release version -

- -
-

_debug -

- -
-

Debug version -

- -
-
- -

- -
-

LIBRARY_PATH -

- -

LD_LIBRARY_PATH -

- -
-

Examples -

- -
-

examples/<class>/*/. -

- -
-

  -

- -
-

GNU Makefile for example -

- -
-

examples/<class>/*/Makefile - -

- -

where - class describes the class being demonstrated. -

- -
-

  -

- -
-
- -

  -

- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Lock_Pathologies.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Lock_Pathologies.htm deleted file mode 100644 index b0dc6d819..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Lock_Pathologies.htm +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - - - - - - - -Lock Pathologies - - - - - - - - - - - - - - -

Lock Pathologies

- - -
-

Locks can introduce performance and correctness problems. If you are new - to locking, here are some of the problems to avoid: -

- -

Deadlock

- -

Deadlock happens when threads are trying to acquire more than one - lock, and each holds some of the locks the other threads need to proceed. More - precisely, deadlock happens when: -

- -
    -
  • -

    There is a cycle of threads -

    - -
  • - -
  • -

    Each thread holds at least one lock on a mutex, and is waiting on - a mutex for which the - next thread in the cycle already has a lock. -

    - -
  • - -
  • -

    No thread is willing to give up its lock. -

    - -
  • - -
- -

Think of classic gridlock at an intersection – each car has "acquired" - part of the road, but needs to "acquire" the road under another car to get - through. Two common ways to avoid deadlock are: -

- -
    -
  • -

    Avoid needing to hold two locks at the same time. Break your - program into small actions in which each can be accomplished while holding a - single lock. -

    - -
  • - -
  • -

    Always acquire locks in the same order. For example, if you have - "outer container" and "inner container" mutexes, and need to acquire a lock on - one of each, you could always acquire the "outer sanctum" one first. Another - example is "acquire locks in alphabetical order" in a situation where the locks - have names. Or if the locks are unnamed, acquire locks in order of the mutex’s - numerical addresses. -

    - -
  • - -
  • -

    Use atomic operations instead of locks. -

    - -
  • - -
- -
- -

Convoying

- -

Another common problem with locks is - convoying. Convoying occurs when the operating system interrupts - a thread that is holding a lock. All other threads must wait until the - interrupted thread resumes and releases the lock. Fair mutexes can make the - situation even worse, because if a waiting thread is interrupted, all the - threads behind it must wait for it to resume. -

- -

To minimize convoying, try to hold the lock as briefly as possible. - Precompute whatever you can before acquiring the lock. -

- -

To avoid convoying, use atomic operations instead of locks where - possible. -

- -
- -
- - - -
-

See Also

- -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Memory_Allocation.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Memory_Allocation.htm deleted file mode 100644 index 820a4e891..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Memory_Allocation.htm +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - -Memory Allocation - - - - - - - - - - - - - - -

Memory Allocation

- - -
- -

Intel® Threading Building Blocks (Intel® TBB) provides two memory allocator templates that are similar to the STL template class std::allocator. These two templates, scalable_allocator<T> and cache_aligned_allocator<T>, address critical issues in parallel programming as follows:

- - -
  • Scalability. Problems of scalability arise when using memory allocators originally designed for serial programs, on threads that might have to compete for a single shared pool in a way that allows only one thread to allocate at a time. Use the memory allocator template scalable_allocator<T> to avoid such scalability bottlenecks. This template can improve the performance of programs that rapidly allocate and free memory.

    -
  • - -
  • False sharing. Problems of sharing arise when two threads access different words that share the same cache line. The problem is that a cache line is the unit of information interchange between processor caches. If one processor modifies a cache line and another processor reads (or writes) the same cache line, the cache line must be moved from one processor to the other, even if the two processors are dealing with different words within the line. False sharing can hurt performance because cache lines can take hundreds of clocks to move.

    -
  • -
- - -

Use the class cache_aligned_allocator<T> to always allocate on a cache line. Two objects allocated by cache_aligned_allocator are guaranteed to not have false sharing. If an object is allocated by cache_aligned_allocator and another object is allocated some other way, there is no guarantee. The interface to cache_aligned_allocator is identical to std::allocator, so you can use it as the allocator argument to STL template classes.

- - -

The following code shows how to declare an STL vector that uses cache_aligned_allocator for allocation:

- - -
std::vector<int,cache_aligned_allocator<int> >;
- -

- Tip

The functionality of cache_aligned_allocator<T> comes at some cost in space, because it must allocate at least one cache line’s worth of memory, even for a small object. So use cache_aligned_allocator<T> only if false sharing is likely to be a real problem.

- - -

The scalable memory allocator incorporates McRT technology developed by Intel’s PSL  CTG team.

- - -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Memory_Consistency.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Memory_Consistency.htm deleted file mode 100644 index 6eb5c0d3e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Memory_Consistency.htm +++ /dev/null @@ -1,188 +0,0 @@ - - - - - - - - - - - - -Memory Consistency - - - - - - - - - - - - - - -

Memory Consistency

- - -
-

Some architectures, such as IA-64 architecture, have "weak memory - consistency", in which memory operations on different addresses may be - reordered by the hardware for sake of efficiency. The subject is complex, and - it is recommended that the interested reader consult other works (Intel 2002, - Robison 2003) on the subject. If you are programming only for IA-32 and Intel® - 64 architecture platforms, you can skip this section. -

- -

Class - atomic<T> permits you to enforce certain ordering - of memory operations as described in the following table. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Ordering Constraints
-

Kind -

- -
-

Description -

- -
-

Default For -

- -
-

acquire - -

- -
-

Operations after the atomic operation never move over it. -

- -
-

read -

- -
-

release -

- -
-

Operations before the atomic operation never move over it. -

- -
-

write -

- -
-

sequentially consistent -

- -
-

Operations on either side never move over the atomic operation and - the sequentially consistent atomic operations have a global order. -

- -
-

fetch_and_store -

- -

fetch_and_add - -

- -

compare_and_swap -

- -
-
- -

The rightmost column lists the operations that default to a particular - constraint. Use these defaults to avoid unexpected surprises. For read and - write, the defaults are the only constraints available. However, if you are - familiar with weak memory consistency, you might want to change the default - sequential consistency for the other operations to weaker constraints. To do - this, use variants that take a template argument. The argument can be - acquire or - release, which are values of the enum type - memory_semantics. -

- -

For example, suppose various threads are producing parts of a data - structure, and you want to signal a consuming thread when the data structure is - ready. One way to do this is to initialize an atomic counter with the number of - busy producers, and as each producer finishes, it executes: -

- -
refcount.fetch_and_add<release>(-1);
-

The argument - release guarantees that the producer's writes to shared - memory occurs before - refcount is decremented. Similarly, when the consumer - checks - refcount, the consumer must use an - acquire fence, which is the default for reads, so that the - consumer's reads of the data structure do not happen until after the consumer - sees - refcount become 0. -

- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Microsoft_Visual_Studio_Code_Examples.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Microsoft_Visual_Studio_Code_Examples.htm deleted file mode 100644 index ff722a3ca..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Microsoft_Visual_Studio_Code_Examples.htm +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - - - - -Microsoft Visual Studio* Code Examples - - - - - - - - - - - - - - -

Microsoft Visual Studio* Code Examples

- - -
-

The solution files in the package are for Microsoft Visual Studio* 2005. - Later versions of Microsoft* Visual Studio can convert them. Each example has - two solution files, one for the Microsoft compiler (*_cl.sln) - and one for the Intel compiler (*_icl.sln). -

- -

To run one of the solution files in - examples\*\*\msvs\.: -

- -
    -
  1. -

    Start Microsoft Visual Studio*. -

    - -
  2. - -
  3. -

    Open a solution file in the - msvs directory. -

    - -
  4. - -
  5. -

    In Microsoft Visual Studio*, press - Ctrl-F5 to compile and run the example. Use - Ctrl-F5, not - Shift-F5, so that you can inspect the console window after the - example finishes. -

    - -
  6. - -
- -

The Microsoft Visual Studio* solution files for the examples require - that an environment variable specify where the library is installed. The - installer sets this variable. -

- -

The makefiles for the examples require that - INCLUDE, - LIB, and - PATH variables are set as indicated in the Windows* OS - topic. You can set these variables in the following way: -

- -

-

    -
  • Go to - <install_dir>\bin\ directory and run the - batch file - tbbvars.bat. -
  • - -
- -

- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/More_on_HashCompare.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/More_on_HashCompare.htm deleted file mode 100644 index e3e27a5fb..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/More_on_HashCompare.htm +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - - - - - - -More on HashCompare - - - - - - - - - - - - - - -

More on HashCompare

- -

There are several ways to make the HashCompare argument for concurrent_hash_map work for your own types.

- -
  • Specify the HashCompare argument explicitly

    -
  • -
  • Let the HashCompare default to tbb_hash_compare<Key> and do one of the following:

    - -
    • Define a specialization of template tbb_hash_compare<Key>.

      -
    • -
    • Define an overload of function tbb_hasher(Key).

      -
    • -
    • Rely on the definitions of tbb_hasher(Key) provided by the library.

      -
    • -
    -
  • -
-

Function tbb_hasher is predefined for the following types:

- -
  • Types convertible to size_t, such as integral types.

    -
  • -
  • Pointer types.

    -
  • -
  • Instances of std::basic_string.

    -
  • -
  • std::pair<Key1,Key2>, where tbb_hasher(Key) and tbb_hasher(Key2) are defined.

    -
  • -
-

For example, if you have keys of type Foo, and operator== is defined for Foo, you just have to provide a definition of tbb_hasher as shown below:

- -
size_t tbb_hasher(const Foo& f) {
-    size_t h = ...compute hash code for f...
-    return h;
-};
-

In general, the definition of tbb_hash_compare<Key> or HashCompare must provide two signatures:

- -
  • A method hash that maps a Key to a size_t

    -
  • -
  • A method equal that determines if two keys are equal

    -
  • -
-

The signatures go together in a single class because if two keys are equal, then they must hash to the same value, otherwise the hash table might not work. You could trivially meet this requirement by always hashing to 0, but that would cause tremendous inefficiency. Ideally, each key should hash to a different value, or at least the probability of two distinct keys hashing to the same value should be kept low.

-

The methods of HashCompare should be static unless you need to have them behave differently for different instances. If so, then you should construct the concurrent_hash_map using the constructor that takes a HashCompare as a parameter. The following example is a variation on an earlier example with instance-dependent methods. The instance performs both case-sensitive or case-insensitive hashing, and comparison, depending upon an internal flag ignore_case.

- -
// Structure that defines hashing and comparison operations
-class VariantHashCompare {
-    // If true, then case of letters is ignored.
-    bool ignore_case;
-public:
-    size_t hash(const string& x) const {
-        size_t h = 0;
-        for(const char* s = x.c_str(); *s; s++) 
-            h = (h*16777179)^*(ignore_case?tolower(*s):*s);
-        return h;
-    }
-    // True if strings are equal
-    bool equal(const string& x, const string& y) const {
-        if( ignore_case )
-            strcasecmp(x.c_str(), y.c_str())==0;
-        else
-            return x==y;
-    }
-    VariantHashCompare(bool ignore_case_) : ignore_case(ignore_case_) {}
-};
- 
-typedef concurrent_hash_map<string,int, VariantHashCompare> VariantStringTable;
- 
-VariantStringTable CaseSensitiveTable(VariantHashCompare(false));
-VariantStringTable CaseInsensitiveTable(VariantHashCompare(true));
-

The directory examples/concurrent_hash_map/count_strings contains a complete example that uses concurrent_hash_map to enable multiple processors to cooperatively build a histogram.

-
- - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Mutex_Flavors.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Mutex_Flavors.htm deleted file mode 100644 index 153334a67..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Mutex_Flavors.htm +++ /dev/null @@ -1,536 +0,0 @@ - - - - - - - - - - - - -Mutex Flavors - - - - - - - - - - - - - - -

Mutex Flavors

- - -
-

Connoisseurs of mutexes distinguish various attributes of mutexes. It - helps to know some of these, because they involve tradeoffs of generality and - efficiency. Picking the right one often helps performance. Mutexes can be - described by the following qualities, also summarized in the table below. -

- -
    -
  • -

    Scalable. Some mutexes are called - scalable. In a strict sense, this is not an accurate name, - because a mutex limits execution to one thread at a time. A - scalable mutex is one that does not do - worse than this. A mutex can do worse than serialize execution - if the waiting threads consume excessive processor cycles and memory bandwidth, - reducing the speed of threads trying to do real work. Scalable mutexes are - often slower than non-scalable mutexes under light contention, so a - non-scalable mutex may be better. When in doubt, use a scalable mutex. -

    - -
  • - -
  • -

    Fair. Mutexes can be - fair or - unfair. A fair mutex lets threads through in the order they - arrived. Fair mutexes avoid starving threads. Each thread gets its turn. - However, unfair mutexes can be faster, because they let threads that are - running go through first, instead of the thread that is next in line which may - be sleeping on account of an interrupt. -

    - -
  • - -
  • -

    Recursive. Mutexes can be - recursive or - non-recursive. A recursive mutex allows a thread that is - already holding a lock on the mutex to acquire another lock on the mutex. This - is useful in some recursive algorithms, but typically adds overhead to the lock - implementation. -

    - -
  • - -
  • -

    Yield or Block. This is an implementation detail that impacts - performance. On long waits, an Intel® Threading Building Blocks (Intel® TBB) - mutex either - yields or - blocks. Here - yields means to repeatedly poll whether progress can be made, - and if not, temporarily yield[5] the - processor. To - block means to yield the processor until the mutex permits - progress. Use the yielding mutexes if waits are typically short and blocking - mutexes if waits are typically long. -

    - -
  • - -
- -

The following is a summary of mutex behaviors: -

- -
    -
  • -

    spin_mutex is non-scalable, unfair, non-recursive, - and spins in user space. It would seem to be the worst of all possible worlds, - except that it is - very fast in - lightly contended situations. If you can design your program - so that contention is somehow spread out among many - spin_mutex objects, you can improve performance over - using other kinds of mutexes. If a mutex is heavily contended, your algorithm - will not scale anyway. Consider redesigning the algorithm instead of looking - for a more efficient lock. -

    - -
  • - -
  • -

    queuing_mutex is scalable, fair, non-recursive, and - spins in user space. Use it when scalability and fairness are important. -

    - -
  • - -
  • -

    spin_rw_mutex and - queuing_rw_mutex are similar to - spin_mutex and - queuing_mutex, but additionally support - reader locks. -

    - -
  • - -
  • -

    mutex and - recursive_mutex are wrappers around the system’s - "native" mutual exclusion. On Windows* operating systems it is implemented on - top of - CRITICAL_SECTION. On Linux* and OS X* operating - systems it is implemented on top of - pthread mutex. The advantages of using the wrapper - are that it adds an exception-safe interface and it provides an interface - identical to the other mutexes in Intel® TBB, which makes it easy to swap in a - different kind of mutex later if warranted by performance measurements. -

    - -
  • - -
  • -

    null_mutex and - null_rw_mutex do nothing. They can be useful as - template arguments. For example, suppose you are defining a container template - and know that some instantiations will be shared by multiple threads and need - internal locking, but others will be private to a thread and not need locking. - You can define the template to take a Mutex type parameter. The parameter can - be one of the real mutex types when locking is necessary, and - null_mutex when locking is unnecessary. -

    - -
  • - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Traits and Behaviors of Mutexes
-

Mutex -

- -
-

Scalable -

- -
-

Fair -

- -
-

Recursive -

- -
-

Long Wait -

- -
-

Size -

- -
-

mutex -

- -
-

OS dependent -

- -
-

OS dependent -

- -
-

no -

- -
-

blocks -

- -
-

≥ 3 words -

- -
-

recursive_mutex -

- -
-

OS dependent -

- -
-

OS dependent -

- -
-

yes -

- -
-

blocks -

- -
-

≥ 3 words -

- -
-

spin_mutex -

- -
-

no -

- -
-

no -

- -
-

no -

- -
-

yields -

- -
-

1 byte -

- -
-

queuing_mutex -

- -
-

✓ -

- -
-

✓ -

- -
-

no -

- -
-

yields -

- -
-

1 word -

- -
-

spin_rw_mutex -

- -
-

no -

- -
-

no -

- -
-

no -

- -
-

yields -

- -
-

1 word -

- -
-

queuing_rw_mutex -

- -
-

✓ -

- -
-

✓ -

- -
-

no -

- -
-

yields -

- -
-

1 word -

- -
-

null_mutex[6] -

- -
-

moot -

- -
-

✓ -

- -
-

✓ -

- -
-

never -

- -
-

empty -

- -
-

null_rw_mutex -

- -
-

moot -

- -
-

✓ -

- -
-

✓ -

- -
-

never -

- -
-

empty -

- -
-
- -
- - - -
-

[5] The yielding is implemented via - SwitchToThread() on Microsoft Windows* operating - systems and by - sched_yield() on other systems.

[6] Null mutexes are considered - fair by Intel® TBB because they cannot cause starvation. They lack any - non-static data members.

- - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Mutual_Exclusion.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Mutual_Exclusion.htm deleted file mode 100644 index 84469b253..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Mutual_Exclusion.htm +++ /dev/null @@ -1,187 +0,0 @@ - - - - - - - - - - - - - - - - -Mutual Exclusion - - - - - - - - - - - - - - -

Mutual Exclusion

- - -
-

Mutual exclusion controls how many threads can simultaneously run a - region of code. In Intel® Threading Building Blocks (Intel® TBB), mutual - exclusion is implemented by - mutexes and - locks. A mutex is an object on which a thread can acquire a lock. - Only one thread at a time can have a lock on a mutex; other threads have to - wait their turn. -

- -

The simplest mutex is - spin_mutex. A thread trying to acquire a lock on a - spin_mutex busy waits until it can acquire the lock. A - spin_mutex is appropriate when the lock is held for only - a few instructions. For example, the following code uses a mutex - FreeListMutex to protect a shared variable - FreeList. It checks that only a single thread has access - to - FreeList at a time. The black font shows the usual - sequential code. Insertions added to make the code thread-safe, are shown in - bold font. -

- -
Node* FreeList;
-typedef spin_mutex FreeListMutexType;
-FreeListMutexType FreeListMutex;
- 
-Node* AllocateNode() {
-    Node* n;
-    {
-        FreeListMutexType::scoped_lock lock(FreeListMutex);
-        n = FreeList;
-        if( n )
-            FreeList = n->next;
-    }
-    if( !n ) 
-        n = new Node();
-    return n;
-}
- 
-void FreeNode( Node* n ) {
-    FreeListMutexType::scoped_lock lock(FreeListMutex);
-    n->next = FreeList;
-    FreeList = n;
-}
-

The constructor for - scoped_lock waits until there are no other locks on - FreeListMutex. The destructor releases the lock. The - braces inside routine - AllocateNode may look unusual. Their role is to keep the - lifetime of the lock as short as possible, so that other waiting threads can - get their chance as soon as possible. -

- -

- Caution

-

Be sure to name the lock object, otherwise it will be destroyed too - soon. For example, if the creation of the - scoped_lock object in the example is changed to -

- -
FreeListMutexType::scoped_lock (FreeListMutex);
-

then the - scoped_lock is destroyed when execution reaches the - semicolon, which releases the lock - before - FreeList is accessed. -

- -
-

The following shows an alternative way to write - AllocateNode: -

- -
Node* AllocateNode() {
-    Node* n;
-    FreeListMutexType::scoped_lock lock;
-    lock.acquire(FreeListMutex);
-    n = FreeList;
-    if( n )
-        FreeList = n->next;
-    lock.release();
-    if( !n ) 
-        n = new Node();
-    return n;
-}
-

Method - acquire waits until it can acquire a lock on the mutex; - method - release releases the lock. -

- -

It is recommended that you add extra braces where possible, to clarify - to maintainers which code is protected by the lock. -

- -

If you are familiar with C interfaces for locks, you may be wondering - why there are not simply acquire and release methods on the mutex object - itself. The reason is that the C interface would not be exception safe, because - if the protected region threw an exception, control would skip over the - release. With the object-oriented interface, destruction of the - scoped_lock object causes the lock to be released, no - matter whether the protected region was exited by normal control flow or an - exception. This is true even for our version of - AllocateNode that used methods - acquire and - release – the explicit release causes the lock to be - released earlier, and the destructor then sees that the lock was released and - does nothing. -

- -

All mutexes in Intel® TBB have a similar interface, which not only makes - them easier to learn, but enables generic programming. For example, all of the - mutexes have a nested - scoped_lock type, so given a mutex of type - M, the corresponding lock type is - M::scoped_lock. -

- -

- Tip

-

It is recommended that you always use a - typedef for the mutex type, as shown in the previous - examples. That way, you can change the type of the lock later without having to - edit the rest of the code. In the examples, you could replace the - typedef with - typedef queuing_mutex FreeListMutexType, and the code - would still be correct. -

- -
-
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Non-Linear_Pipelines.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Non-Linear_Pipelines.htm deleted file mode 100644 index 03f75421d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Non-Linear_Pipelines.htm +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - -Non-Linear Pipelines - - - - - - - - - - - - - - -

Non-Linear Pipelines

- -

Template function parallel_pipeline supports only linear pipelines. It does not directly handle more baroque plumbing, such as in the diagram below.

-


-

However, you can still use a pipeline for this. Just topologically sort the filters into a linear order, like this:

-

The light gray arrows are the original arrows that are now implied by transitive closure of the other arrows. It might seem that lot of parallelism is lost by forcing a linear order on the filters, but in fact the only loss is in the latency of the pipeline, not the throughput. The latency is the time it takes a token to flow from the beginning to the end of the pipeline. Given a sufficient number of processors, the latency of the original non-linear pipeline is three filters. This is because filters A and B could process the token concurrently, and likewise filters D and E could process the token concurrently.

-


-

In the linear pipeline, the latency is five filters. The behavior of filters A, B, D and E above may need to be modified in order to properly handle objects that don’t need to be acted upon by the filter other than to be passed along to the next filter in the pipeline.

-

The throughput remains the same, because regardless of the topology, the throughput is still limited by the throughput of the slowest serial filter. If parallel_pipeline supported non-linear pipelines, it would add a lot of programming complexity, and not improve throughput. The linear limitation of parallel_pipeline is a good tradeoff of gain versus pain.

-
- - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/OS_X_Systems.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/OS_X_Systems.htm deleted file mode 100644 index 8cb5fbb06..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/OS_X_Systems.htm +++ /dev/null @@ -1,386 +0,0 @@ - - - - - - - - - - - - -OS X* Systems - - - - - - - - - - - - - - -

OS X* Systems

- - -
-

This section uses <install_dir> to indicate the - top-level installation directory. The following table describes the - subdirectory structure for OS X*, relative to <install_dir>. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Intel® Threading Building Blocks Subdirectories on OS X* - Systems
-

Item -

- -
-

Location -

- -
-

Environment Variable -

- -
-

Include files -

- -
-

include/tbb/*.h -

- -
-

CPATH -

- -
-

Shared libraries -

- -
-

lib/<libc++>/<lib><variant>.dylib - -

- -

where: -

- -

- -

- - - - - - - - - - - - - - - - - - - - - - - - - - -
-

<libc++> -

- -
-

Version -

- -
-

libc++ -

- -
-

Libraries that depend on libc++ standard library -

- -
-

(none) -

- -
-

Libraries that depend on libstdc++ standard library -

- -
-
- -

- -

- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

<lib> -

- -
-

Version -

- -
-

libtbb -

- -
-

General library -

- -
-

libtbbmalloc -

- -
-

Memory allocator -

- -
-

libtbb_preview -

- -
-

Community preview features library -

- -
-
- -

- -

- -

- - - - - - - - - - - - - - - - - - - - - - - - - - -
-

<variant> -

- -
-

Version -

- -
-

(none) -

- -
-

Release version -

- -
-

_debug -

- -
-

Debug version -

- -
-
- -

- -
-

LIBRARY_PATH -

- -

DYLD_LIBRARY_PATH -

- -
-

Examples -

- -
-

examples/<class>/*/. -

- -
-

  -

- -
-

GNU Makefile for example -

- -
-

examples/<class>/*/Makefile - -

- -

where - class describes the class being demonstrated. -

- -
-

  -

- -
-

Xcode* Project -

- -
-

examples/<class>/*/xcode/ - -

- -
-

  -

- -
-
- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Open_Source_Version.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Open_Source_Version.htm deleted file mode 100644 index 022635410..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Open_Source_Version.htm +++ /dev/null @@ -1,474 +0,0 @@ - - - - - - - - - - - - - - - -Open Source Version - - - - - - - - - - - - - - -

Open Source Version

- - -
-

The following table describes typical subdirectories of an open source - version of the library. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Typical Intel® Threading Building Blocks Subdirectories in Open Source - Release
-

Include files -

- -
-

include/tbb/*.h -

- -
-

Source files -

- -
-

src/ -

- -
-

Documentation -

- -
-

doc/ -

- -
-

Environment scripts -

- -
-

bin/*.{sh,csh,bat} -

- -
-

Binaries -

- -
-

lib/<arch>/<version>/<lib><variant>.{lib,so,dylib} - -

- -

bin /<arch> - /<version> - /<lib><variant> .{dll,pdb} -

- -

where: -

- -

- -

- - - - - - - - - - - - - - - - - - - - - - - - - - -
-

<arch> -

- -
-

Processor -

- -
-

ia32 -

- -
-

Intel® IA-32 processors -

- -
-

intel64 -

- -
-

Intel® 64 architecture processors -

- -
-
- -

- -

- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

<version> -

- -
-

OS -

- -
-

Environment -

- -
-

8, 9, _mt -

- -
-

Microsoft Windows* -

- -
-

See <vcversion> - Windows* OS topic -

- -
-

cc< - gccversion >_libc< - glibcversion >_kernel< - kernelversion > -

- -
-

Linux* -

- -
-

See - Linux* OS topic. -

- -
-

cc<gccversion>_os<osversion> - -

- -
-

OS X* -

- -
-

See - OS X* Systems Topic -

- -
-
- -

- -

- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

<lib> -

- -
-

Version -

- -
-

tbb -

- -
-

General library -

- -
-

tbbmalloc -

- -
-

Memory allocator -

- -
-

tbbmalloc_proxy -

- -
-

Substitution for default memory allocator -

- -
-

tbb_preview -

- -
-

Community preview features library -

- -
-
- -

- -

- -

- - - - - - - - - - - - - - - - - - - - - - - - - - -
-

<variant> -

- -
-

Version -

- -
-

(none) -

- -
-

Release version -

- -
-

_debug -

- -
-

Debug version -

- -
-
- -

- -
-

Examples -

- -
-

examples\<class>\*\. -

- -
-
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Package_Contents.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Package_Contents.htm deleted file mode 100644 index a5895070b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Package_Contents.htm +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - - -Package Contents - - - - - - - - - - - - - - -

Package Contents

- - -
-

Intel® Threading Building Blocks (Intel® TBB) includes dynamic shared - library files, header files, and code examples for Windows*, Linux*, and OS X* - operating systems that you can compile and run as described in this section. -

- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Parallelizing_Complex_Loops.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Parallelizing_Complex_Loops.htm deleted file mode 100644 index e05ea7110..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Parallelizing_Complex_Loops.htm +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - -Parallelizing Complex Loops - - - - - - - - - - - - - - -

Parallelizing Complex Loops

- - -
-

You can successfully parallelize many applications using only the - constructs in the - Parallelizing Simple Loops section. However, some situations call - for other parallel patterns. This section describes the support for some of - these alternate patterns. -

- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Parallelizing_Simple_Loops.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Parallelizing_Simple_Loops.htm deleted file mode 100644 index e52b81475..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Parallelizing_Simple_Loops.htm +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - - - - - - - - - - - - - - -Parallelizing Simple Loops - - - - - - - - - - - - - - -

Parallelizing Simple Loops

- - -
-

The simplest form of scalable parallelism is a loop of iterations that - can each run simultaneously without interfering with each other. The following - sections demonstrate how to parallelize simple loops. -

- -

- Note

-

Intel® Threading Building Blocks (Intel® TBB) components are defined - in namespace - tbb. For brevity’s sake, the namespace is explicit in - the first mention of a component, but implicit afterwards. -

- -
-

When compiling Intel® TBB programs, be sure to link in the Intel® TBB - shared library, otherwise undefined references will occur. The following table - shows compilation commands that use the debug version of the library. Remove - the "_debug" portion to link against the production version of - the library. See - doc/Getting_Started.pdf for other command line - possibilities. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Sample command lines for simple debug builds
Operating System - Command line -
-

Windows* OS -

- -
-

- icl /MD example.cpp tbb_debug.lib - -

- -
-

Linux* OS -

- -
-

- icc example.cpp -ltbb_debug -

- -
-

OS X* Systems -

- -
-

- icc example.cpp -ltbb_debug -

- -
-
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Partitioner_Summary.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Partitioner_Summary.htm deleted file mode 100644 index 6e9a1487b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Partitioner_Summary.htm +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - - - - - - - - - -Partitioner Summary - - - - - - - - - - - - - - -

Partitioner Summary

- - -
-

The parallel loop templates - parallel_for and - parallel_reduce take an optional - partitioner argument, which specifies a strategy for executing the - loop. The following table summarizes the three partitioners and their effect - when used in conjunction with - blocked_range. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Partitioners
-

Partitioner -

- -
-

Description -

- -
-

When Used with blocked_range(i,j,g) -

- -
-

simple_partitioner -

- -
-

Chunksize bounded by grain size. -

- -
-

g/2 ≤ - chunksize ≤ - g -

- -
-

auto_partitioner (default)[4] -

- -
-

Automatic chunk size. -

- -
-

g/2 ≤ - chunksize -

- -
-

affinity_partitioner -

- -
-

Automatic chunk size and cache affinity. -

- -
-
- -

An - auto_partitioner is used when no partitioner is specified. - In general, the - auto_partitioner or - affinity_partitioner should be used, because these tailor - the number of chunks based on available execution resources. However, - simple_partitioner can be useful in the following - situations: -

- -
    -
  • -

    The subrange size for - operator() must not exceed a limit. That might be - advantageous, for example, if your - operator() needs a temporary array proportional to the - size of the range. With a limited subrange size, you can use an automatic - variable for the array instead of having to use dynamic memory allocation. -

    - -
  • - -
  • -

    A large subrange might use cache inefficiently. For example, suppose - the processing of a subrange involves repeated sweeps over the same memory - locations. Keeping the subrange below a limit might enable the repeatedly - referenced memory locations to fit in cache. See the use of - parallel_reduce in - examples/parallel_reduce/primes/primes.cpp for an - example of this scenario. -

    - -
  • - -
  • -

    You want to tune to a specific machine. -

    - -
  • - -
- -
- - - - -

[4] >Prior to - Intel® Threading Building Blocks (Intel® TBB) 2.2, the default was - simple_partitioner. Compile with - TBB_DEPRECATED=1 to get the old default.

- - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Reader_Writer_Mutexes.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Reader_Writer_Mutexes.htm deleted file mode 100644 index c4ae30dc8..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Reader_Writer_Mutexes.htm +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - - - -Reader Writer Mutexes - - - - - - - - - - - - - - -

Reader Writer Mutexes

- - -
-

Mutual exclusion is necessary when at least one thread - writes to a shared variable. But it does no harm to permit - multiple readers into a protected region. The reader-writer variants of the - mutexes, denoted by - _rw_ in the class names, enable multiple readers by - distinguishing - reader locks from - writer locks. There can be more than one reader lock on a given - mutex. -

- -

Requests for a reader lock are distinguished from requests for a writer - lock via an extra boolean parameter in the constructor for - scoped_lock. The parameter is - false to request a reader lock and - true to request a writer lock. It defaults to - true so that when omitted, a - spin_rw_mutex or - queuing_rw_mutex behaves like its - non-_rw_ counterpart. -

- -
- - - -
-

See Also

- -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Recursive_Chain_Reaction_.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Recursive_Chain_Reaction_.htm deleted file mode 100644 index fe88cf79b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Recursive_Chain_Reaction_.htm +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - -Recursive Chain Reaction - - - - - - - - - - - - - - -

Recursive Chain Reaction

- - -
-

The scheduler works best with tree-structured task graphs, because that - is where the strategy of "breadth-first theft and depth-first work" applies - very well. Also, tree-structured task graphs allow fast creation of many tasks. - For example, if a master task tries to create - N children directly, it will take - O(N) steps. But with tree structured forking, it takes only - O(lg(N)) steps. -

- -

Often domains are not obviously tree structured, but you can easily map - them to trees. For example, - parallel_for (in - tbb/parallel_for) works over an iteration space, such as a sequence of integers. Template function - parallel_for uses that definition to recursively map the - iteration space onto a binary tree. -

- -
- - - -
-

See Also

- -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Recycling.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Recycling.htm deleted file mode 100644 index 367f72389..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Recycling.htm +++ /dev/null @@ -1,175 +0,0 @@ - - - - - - - - - - - - - -Recycling - - - - - - - - - - - - - - -

Recycling

- - -
-

Not only can you bypass the scheduler, you might also bypass task - allocation and deallocation. The opportunity frequently arises for recursive - tasks that do scheduler bypass. Consider the example in the - Scheduler Bypass section. After it creates continuation task - "c", it performs the following steps: -

- -
    -
  1. -

    Create child task "a". -

    - -
  2. - -
  3. -

    Create and spawn child task "b" -

    - -
  4. - -
  5. -

    Return from method - execute() with pointer to task "a". - -

    - -
  6. - -
  7. -

    Destroy parent task. -

    - -
  8. - -
- -

Recycling the parent as "a" can avoid the task creation - destruction done by steps 1 and 4. Furthermore, in many scenarios step 1 copies - state from the parent. Recycling the parent as task "a" - eliminates the copying overhead. -

- -

The following code shows the changes required to implement recycling in - the scheduler-bypass example. -

- -
struct FibTask: public task {
-    long n;
-    long* sum;
-    ...
-    task* execute() {
-        if( n<CutOff ) {
-            *sum = SerialFib(n);
-            return NULL;
-        } else {
-            FibContinuation& c = 
-                *new( allocate_continuation() ) FibContinuation(sum);
-            // FibTask& a = *new( c.allocate_child() ) FibTask(n-2,&c.x); This line removed
-            FibTask& b = *new( c.allocate_child() ) FibTask(n-1,&c.y);
-            recycle_as_child_of(c);
-            n -= 2;
-            sum = &c.x;
-            // Set ref_count to "two children".
-            c.set_ref_count(2);
-            spawn( b );
-            // return &a; This line removed
-            return this;
-        }
-    }
-};
-

The child that was previously called - a is now the recycled - this. The call - recycle_as_child_of(c) has several effects: -

- -
    -
  • -

    It marks - this as to - not be automatically destroyed when - execute() returns. -

    - -
  • - -
  • -

    It sets the successor of - this to be - c. -

    - -
  • - -
- -

To prevent reference-counting problems, - recycle_as_child_of has a prerequisite that - this must have a NULL successor. This is the case after - allocate_continuation occurs. The following figure shows - how - allocate_continuation and - recycle_as_child_of transform the task graph. -

- -
Action of - allocate_continuation Followed By - recycle_as_child_of -

-
- -

When recycling, ensure that the original task’s fields are not used - after the task might start running. The example uses the scheduler bypass trick - to ensure this. You can spawn the recycled task instead, as long as none of its - fields are used after the spawning. This restriction applies even to any - const fields, because after spawning the task might run - and be destroyed before the parent progresses any further. -

- -

- Note

-

A similar method, - task::recycle_as_continuation() recycles a task as a - continuation instead of a child. -

- -
-
- - - -
-

See Also

- -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/References.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/References.htm deleted file mode 100644 index 53a461319..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/References.htm +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - -References - - - - - - - - - - - - - - -

References

- - -
-

[1]   "Memory Consistency & .NET", Arch D. Robison, Dr. - Dobb’s Journal, April 2003. -

- -

[2]   A Formal Specification of Intel® Itanium® Processor Family - Memory Ordering, Intel Corporation, October 2002. -

- -

[3]   "Cilk: An Efficient Multithreaded Runtime System", Robert - Blumofe, Christopher Joerg, Bradley Kuszmaul, C. Leiserson, and Keith Randall, - Proceedings of the fifth ACM SIGPLAN symposium on Principles and practice of - parallel programming, 1995. -

- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Scalable_Memory_Allocator.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Scalable_Memory_Allocator.htm deleted file mode 100644 index 0b9f1a290..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Scalable_Memory_Allocator.htm +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - -Scalable Memory Allocator - - - - - - - - - - - - - - -

Scalable Memory Allocator

- - -
-

Both the debug and release versions of Intel® Threading Building Blocks - (Intel® TBB) consists of two dynamic shared libraries, one with general support - and the other with a scalable memory allocator. The latter is distinguished by - malloc in its name. For example, the release versions - for Windows* OS are - tbb.dll and - tbbmalloc.dll respectively. Applications may choose - to use only the general library, or only the scalable memory allocator, or - both. See the links below for more information on memory allocation. -

- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Scheduler_Bypass.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Scheduler_Bypass.htm deleted file mode 100644 index c5a9e693c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Scheduler_Bypass.htm +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - - - - - - - -Scheduler Bypass - - - - - - - - - - - - - - -

Scheduler Bypass

- - -
-

Scheduler bypass is an optimization where you directly specify the next - task to run. Continuation-passing style often opens up an opportunity for - scheduler bypass. For example, at the end of the continuation-passing example - in the previous section, method - execute() spawns task "a" and returns. By the execution - rules in - How Task Scheduling Works, that sequence causes the executing - thread to do the following: -

- -
    -
  1. -

    Push task "a" onto the thread's deque. -

    - -
  2. - -
  3. -

    Return from method - execute(). -

    - -
  4. - -
  5. -

    Pop task "a" from the thread's deque, unless it is - stolen by another thread. -

    - -
  6. - -
- -

Steps 1 and 3 introduce unnecessary deque operations, or worse yet, - permit stealing that can hurt locality without adding significant parallelism. - Method - execute()can avoid these problems by returning a pointer - to - a instead of spawning it. When using the method shown in - - How Task Scheduling Works, - a becomes the next task executed by the thread. - Furthermore, this approach guarantees that the thread executes - a, not some other thread. - -

- -

The following example shows the changes to the example in the previous - section in - bold font: -

- -
struct FibTask: public task {
-    ...
-    task* execute() {
-        if( n<CutOff ) {
-            *sum = SerialFib(n);
-            return NULL;
-        } else {
-            FibContinuation& c = 
-                *new( allocate_continuation() ) FibContinuation(sum);
- 
-            FibTask& a = *new( c.allocate_child() ) FibTask(n-2,&c.x);
-            FibTask& b = *new( c.allocate_child() ) FibTask(n-1,&c.y);
-            // Set ref_count to "two children".
-            c.set_ref_count(2);
-            spawn( b );
-            // spawn( a ); This line removed
-            // return NULL; This line removed
-            return &a;
-        }
-    }
-};
-
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Simple_Example_Fibonacci_Numbers.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Simple_Example_Fibonacci_Numbers.htm deleted file mode 100644 index 7189ad885..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Simple_Example_Fibonacci_Numbers.htm +++ /dev/null @@ -1,247 +0,0 @@ - - - - - - - - - - - - - - -Simple Example: Fibonacci Numbers - - - - - - - - - - - - - - -

Simple Example: Fibonacci Numbers

- - -
-

This section uses computation of the - nth Fibonacci number as an example. This example uses - an inefficient method to compute Fibonacci numbers, but it demonstrates the - basics of a task library using a simple recursive pattern. To get scalable - speedup out of task-based programming, you need to specify a lot of tasks. This - is typically done in Intel® TBB with a recursive task pattern. -

- -

This is the serial code: -

- -
long SerialFib( long n ) {
-    if( n<2 )
-        return n;
-    else
-        return SerialFib(n-1)+SerialFib(n-2);
-}
-

The top-level code for the parallel task-based version is: -

- -
long ParallelFib( long n ) {
-    long sum;
-    FibTask& a = *new(task::allocate_root()) FibTask(n,&sum);
-    task::spawn_root_and_wait(a);
-    return sum;
-}
-

This code uses a task of type - FibTask to do the real work. It involves the following - distinct steps: -

- -
    -
  1. -

    Allocate space for the task. This is done by a special "overloaded - new" and method - task::allocate_root. The - _root suffix in the name denotes the fact that the task - created has no parent. It is the root of a task tree. Tasks must be allocated - by special methods so that the space can be efficiently recycled when the task - completes. -

    - -
  2. - -
  3. -

    Construct the task with the constructor - FibTask(n,&sum) invoked by - new. When the task is run in step 3, it computes the - nth Fibonacci number and stores it into - *sum. -

    - -
  4. - -
  5. -

    Run the task to completion with - task::spawn_root_and_wait. -

    - -
  6. - -
- -

The real work is inside struct - FibTask. Its definition is shown below. -

- -
class FibTask: public task {
-public:
-    const long n;
-    long* const sum;
-    FibTask( long n_, long* sum_ ) :
-        n(n_), sum(sum_)
-    {}
-    task* execute() {      // Overrides virtual function task::execute
-        if( n<CutOff ) {
-            *sum = SerialFib(n);
-        } else {
-            long x, y;
-            FibTask& a = *new( allocate_child() ) FibTask(n-1,&x);
-            FibTask& b = *new( allocate_child() ) FibTask(n-2,&y);
-            // Set ref_count to 'two children plus one for the wait".
-            set_ref_count(3);
-            // Start b running.
-            spawn( b );
-            // Start a running and wait for all children (a and b).
-            spawn_and_wait_for_all(a);
-            // Do the sum
-            *sum = x+y;
-        }
-        return NULL;
-    }
-};
-

It is a relatively large piece of code, compared to - SerialFib, because it expresses parallelism without the - help of any extensions to standard C++. -

- -

Like all tasks scheduled by Intel® TBB, - FibTask is derived from class - task. Fields - n and - sum hold respectively the input value and pointer to the - output. These are copies of the arguments passed to the constructor for - FibTask. Method - execute does the actual computation. Every task must - provide a definition of - execute that overrides the pure virtual method - task::execute. The definition should do the work of the - task, and return either NULL, or a pointer to the next task to run. In this - simple example, it returns NULL. For more information on the non-NULL case see - Scheduler Bypass. -

- -

Method - FibTask::execute()does the following: -

- -
    -
  • -

    Checks if - n is so small that serial execution would be faster. - Finding the right value of - CutOff requires some experimentation. A value of at - least 16 works well in practice for getting most of the possible speedup out of - this example. Resorting to a sequential algorithm when the problem size becomes - small is characteristic of most divide-and-conquer patterns for parallelism. - Finding the point at which to switch requires experimentation, so be sure to - write your code in a way that allows you to experiment. -

    - -
  • - -
  • -

    If the - else is taken, the code creates and runs two child - tasks that compute the (n-1)th and (n-2)th - Fibonacci numbers. Here, inherited method - allocate_child() is used to allocate space for the - task. Remember that the top-level routine - ParallelFib used - allocate_root() to allocate space for a task. The - difference is that here the task is creating - child tasks. This relationship is indicated by the choice of - allocation method. -

    - -
  • - -
  • -

    Calls - set_ref_count(3). The number - 3 represents the two children and an additional - implicit reference that is required by method - spawn_and_wait_for_all. Make sure to call - set_reference_count(3) before spawning any children. - Failure to do so results in undefined behavior. The debug version of the - library usually detects and reports this type of error. -

    - -
  • - -
  • -

    Spawns two child tasks. Spawning a task indicates to the scheduler - that it can run the task whenever it chooses, possibly in parallel with other - tasks. For more information on the execution policy see - How Task Scheduling Works. The first spawning, by method - spawn, returns immediately without waiting for the - child task to start executing. The second spawning, by method - spawn_and_wait_for_all, causes the parent to wait - until all currently allocated child tasks are finished. -

    - -
  • - -
  • -

    After the two child tasks complete, the parent computes - x+y and stores it in - *sum. -

    - -
  • - -
- -

At first glance, the parallelism might appear to be limited, because the - task creates only two child tasks. The trick here is - recursive parallelism. The two child tasks each create two child - tasks, and so on, until - n<Cutoff. This chain reaction creates a lot of - potential parallelism. The advantage of the task scheduler is that it turns - this potential parallelism into real parallelism in a very efficient way, - because it chooses tasks to run in a way that keeps physical threads busy with - relatively little context switching. -

- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Summary_of_Containers.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Summary_of_Containers.htm deleted file mode 100644 index 81b543895..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Summary_of_Containers.htm +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - -Summary of Containers - - - - - - - - - - - - - - -

Summary of Containers

- -

The high-level containers in Intel® Threading Building Blocks enable common idioms for concurrent access. They are suitable for scenarios where the alternative would be a serial container with a lock around it.

-
- - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Summary_of_Loops_and_Pipelines.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Summary_of_Loops_and_Pipelines.htm deleted file mode 100644 index 320280dab..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Summary_of_Loops_and_Pipelines.htm +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - -Summary of Loops and Pipelines - - - - - - - - - - - - - - -

Summary of Loops and Pipelines

- -

The high-level loop and pipeline templates in Intel® Threading Building Blocks give you efficient scalable ways to exploit the power of multi-core chips without having to start from scratch. They let you design your software at a high task-pattern level and not worry about low-level manipulation of threads. Because they are generic, you can customize them to your specific needs. Have fun using these templates to unlock the power of multi-core.

-
- - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Task-Based_Programming.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Task-Based_Programming.htm deleted file mode 100644 index 81c61ac73..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Task-Based_Programming.htm +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - - - -Task-Based Programming - - - - - - - - - - - - - - -

Task-Based Programming

- - -
-

When striving for performance, programming in terms of threads can be a - poor way to do multithreaded programming. It is much better to formulate your - program in terms of - logical tasks, not threads, for several reasons. -

- -
    -
  • -

    Matching parallelism to available resources -

    - -
  • - -
  • -

    Faster task startup and shutdown -

    - -
  • - -
  • -

    More efficient evaluation order -

    - -
  • - -
  • -

    Improved load balancing -

    - -
  • - -
  • -

    Higher–level thinking -

    - -
  • - -
- -

The following paragraphs explain these points in detail. -

- -

The threads you create with a threading package are - logical threads, which map onto the - physical threads of the hardware. For computations that do not - wait on external devices, highest efficiency usually occurs when there is - exactly one running logical thread per physical thread. Otherwise, there can be - inefficiencies from the mismatch. Undersubscription occurs when there - are not enough running logical threads to keep the physical threads working. - Oversubscription occurs when there are more running logical - threads than physical threads. Oversubscription usually leads to - time sliced execution of logical threads, which incurs overheads - as discussed in Appendix A, - Costs of Time Slicing. The scheduler tries to avoid - oversubscription, by having one logical thread per physical thread, and mapping - tasks to logical threads, in a way that tolerates interference by other threads - from the same or other processes. -

- -

The key advantage of tasks versus logical threads is that tasks are much - - lighter weight than logical threads. On Linux systems, starting - and terminating a task is about 18 times faster than starting and terminating a - thread. On Windows systems, the ratio is more than 100. This is because a - thread has its own copy of a lot of resources, such as register state and a - stack. On Linux, a thread even has its own process id. A task in Intel® - Threading Building Blocks, in contrast, is typically a small routine, and also, - cannot be preempted at the task level (though its logical thread can be - preempted). -

- -

Tasks in Intel® Threading Building Blocks are efficient too because - the scheduler is unfair. Thread schedulers typically distribute - time slices in a round-robin fashion. This distribution is called "fair", - because each logical thread gets its fair share of time. Thread schedulers are - typically fair because it is the safest strategy to undertake without - understanding the higher-level organization of a program. In task-based - programming, the task scheduler does have some higher-level information, and so - can sacrifice fairness for efficiency. Indeed, it often delays starting a task - until it can make useful progress. -

- -

The scheduler does - load balancing. In addition to using the right number of threads, - it is important to distribute work evenly across those threads. As long as you - break your program into enough small tasks, the scheduler usually does a good - job of assigning tasks to threads to balance load. With thread-based - programming, you are often stuck dealing with load-balancing - yourself, which can be tricky to get right. -

- -

- Tip

-

Design your programs to try to create many more tasks than there are - threads, and let the task scheduler choose the mapping from tasks to threads. -

- -
-

Finally, the main advantage of using tasks instead of threads is that - they let you think at a higher, task-based, level. With thread-based - programming, you are forced to think at the low level of physical threads to - get good efficiency, because you have one logical thread per physical thread to - avoid undersubscription or oversubscription. You also have to deal with the - relatively coarse grain of threads. With tasks, you can concentrate on the - logical dependences between tasks, and leave the efficient scheduling to the - scheduler. -

- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Task_Scheduler_Summary.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Task_Scheduler_Summary.htm deleted file mode 100644 index 7ae20772c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Task_Scheduler_Summary.htm +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - -Task Scheduler Summary - - - - - - - - - - - - - - -

Task Scheduler Summary

- -

The task scheduler works most efficiently for fork-join parallelism with lots of forks, so that the task-stealing can cause sufficient breadth-first behavior to occupy threads, which then conduct themselves in a depth-first manner until they need to steal more work.

-

The task scheduler is not the simplest possible scheduler because it is designed for speed. If you need to use it directly, it may be best to hide it behind a higher-level interface, as the templates parallel_for, parallel_reduce, etc. do. Some of the details to remember are:

- -
  • Always use new(allocation_method) T to allocate a task, where allocation_method is one of the allocation methods of class task. Do not create local or file-scope instances of a task.

    -
  • -
  • All siblings should be allocated before any start running, unless you are using allocate_additional_child_of.

    -
  • -
  • Exploit continuation passing, scheduler bypass, and task recycling to squeeze out maximum performance.

    -
  • -
  • If a task completes, and was not marked for re-execution, it is automatically destroyed. Also, its successor’s reference count is decremented, and if it hits zero, the successor is automatically spawned.

    -
  • -
-
- - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/The_Task_Scheduler.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/The_Task_Scheduler.htm deleted file mode 100644 index 49a135482..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/The_Task_Scheduler.htm +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - -The Task Scheduler - - - - - - - - - - - - - - -

The Task Scheduler

- -

This section introduces the Intel® Threading Building Blocks (Intel® TBB) task scheduler. The task scheduler is the engine that powers the loop templates. When practical, you should use the loop templates instead of the task scheduler, because the templates hide the complexity of the scheduler. However, if you have an algorithm that does not naturally map onto one of the high-level templates, use the task scheduler. All of the scheduler functionality that is used by the high-level templates is available for you to use directly, so you can build new high-level templates that are just as powerful as the existing ones.

-
- - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Throughput_of_pipeline.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Throughput_of_pipeline.htm deleted file mode 100644 index 4aa80651b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Throughput_of_pipeline.htm +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - -Throughput of pipeline - - - - - - - - - - - - - - -

Throughput of pipeline

- - -
-

The throughput of a pipeline is the rate at which tokens flow through - it, and is limited by two constraints. First, if a pipeline is run with - N tokens, then obviously there cannot be more than - N operations running in parallel. Selecting the right - value of - N may involve some experimentation. Too low a value - limits parallelism; too high a value may demand too many resources (for - example, more buffers). Second, the throughput of a pipeline is limited by the - throughput of the slowest sequential filter. This is true even for a pipeline - with no parallel filters. No matter how fast the other filters are, the slowest - sequential filter is the bottleneck. So in general you should try to keep the - sequential filters fast, and when possible, shift work to the parallel filters. -

- -

The text processing example has relatively poor speedup, because the - serial filters are limited by the I/O speed of the system. Indeed, even with - files that are on a local disk, you are unlikely to see a speedup much more - than 2. To really benefit from a pipeline, the parallel filters need to be - doing some heavy lifting compared to the serial filters. -

- -

The window size, or sub-problem size for each token, can also limit - throughput. Making windows too small may cause overheads to dominate the useful - work. Making windows too large may cause them to spill out of cache. A good - guideline is to try for a large window size that still fits in cache. You may - have to experiment a bit to find a good window size. -

- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Timing.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Timing.htm deleted file mode 100644 index 349b2af9e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Timing.htm +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - -Timing - - - - - - - - - - - - - - -

Timing

- -

When measuring the performance of parallel programs, it is usually wall clock time, not CPU time, that matters. The reason is that better parallelization typically increases aggregate CPU time by employing more CPUs. The goal of parallelizing a program is usually to make it run faster in real time.

-

The class tick_count in Intel® Threading Building Blocks (Intel® TBB) provides a simple interface for measuring wall clock time. A tick_count value obtained from the static method tick_count::now() represents the current absolute time. Subtracting two tick_count values yields a relative time in tick_count::interval_t, which you can convert to seconds, as in the following example:

-
tick_count t0 = tick_count::now();
-... do some work ...
-tick_count t1 = tick_count::now();
-printf("work took %g seconds\n",(t1-t0).seconds());

Unlike some timing interfaces, tick_count is guaranteed to be safe to use across threads. It is valid to subtract tick_count values that were created by different threads. A tick_count difference can be converted to seconds.

-

The resolution of tick_count corresponds to the highest resolution timing service on the platform that is valid across threads in the same process. Since the CPU timer registers are not valid across threads on some platforms, this means that the resolution of tick_count can not be guaranteed to be consistent across platforms.

-
- - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/UpgradeDowngrade.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/UpgradeDowngrade.htm deleted file mode 100644 index 84bae8f99..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/UpgradeDowngrade.htm +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - - - - - - - -Upgrade/Downgrade - - - - - - - - - - - - - - -

Upgrade/Downgrade

- - -
-

It is possible to upgrade a reader lock to a writer lock, by using the - method - upgrade_to_writer. Here is an example. -

- -
std::vector<string> MyVector;
-typedef spin_rw_mutex MyVectorMutexType;
-MyVectorMutexType MyVectorMutex;
- 
-void AddKeyIfMissing( const string& key ) {
-    // Obtain a reader lock on MyVectorMutex
-    MyVectorMutexType::scoped_lock lock(MyVectorMutex,/*is_writer=*/false);
-    size_t n = MyVector.size();
-    for( size_t i=0; i<n; ++i )
-        if( MyVector[i]==key ) return;
-    if( !lock.upgrade_to_writer() )
-        // Check if key was added while lock was temporarily released
-        for( int i=n; i<MyVector.size(); ++i )
-           if(MyVector[i]==key ) return; 
-    vector.push_back(key);
-}
-

Note that the vector must sometimes be searched again. This is necessary - because - upgrade_to_writer might have to temporarily release the - lock before it can upgrade. Otherwise, deadlock might ensue, as discussed in - Lock Pathologies. Method - upgrade_to_writer returns a - bool that is true if it successfully upgraded the lock - without releasing it, and false if the lock was released temporarily. Thus when - - upgrade_to_writer returns false, the code must rerun the - search to check that the key was not inserted by another writer. The example - presumes that keys are always added to the end of the vector, and that keys are - never removed. Because of these assumptions, it does not have to re-search the - entire vector, but only the elements beyond those originally searched. The key - point to remember is that when - upgrade_to_writer returns false, any assumptions - established while holding a reader lock may have been invalidated, and must be - rechecked. -

- -

For symmetry, there is a corresponding method - downgrade_to_reader, though in practice there are few - reasons to use it. -

- -
- - - -
-

See Also

- -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Useful_Task_Techniques.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Useful_Task_Techniques.htm deleted file mode 100644 index f99f1a995..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Useful_Task_Techniques.htm +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - - - - - -Useful Task Techniques - - - - - - - - - - - - - - -

Useful Task Techniques

- -

This section explains programming techniques for making best use of the scheduler.

-
- - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Using_Circular_Buffers.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Using_Circular_Buffers.htm deleted file mode 100644 index 02140b456..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Using_Circular_Buffers.htm +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - -Using Circular Buffers - - - - - - - - - - - - - - -

Using Circular Buffers

- - -
-

Circular buffers can sometimes be used to minimize the overhead of - allocating and freeing the items passed between pipeline filters. If the first - filter to create an item and last filter to consume an item are both - serial_in_order, the items can be allocated and freed - via a circular buffer of size at least - ntoken, where - ntoken is the first parameter to - parallel_pipeline. Under these conditions, no checking - of whether an item is still in use is necessary. -

- -

The reason this works is that at most - ntoken items can be in flight, and items will be freed - in the order that they were allocated. Hence by the time the circular buffer - wraps around to reallocate an item, the item must have been freed from its - previous use in the pipeline. If the first and last filter are - not - serial_in_order, then you have to keep track of which - buffers are currently in use, because buffers might not be retired in the same - order they were allocated. -

- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/When_Not_to_Use_Queues.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/When_Not_to_Use_Queues.htm deleted file mode 100644 index d9d3a56da..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/When_Not_to_Use_Queues.htm +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - - - - - -When Not to Use Queues - - - - - - - - - - - - - - -

When Not to Use Queues

- - -
-

Queues are widely used in parallel programs to buffer consumers from - producers. Before using an explicit queue, however, consider using - parallel_do or - pipeline instead. These options are often more efficient - than queues for the following reasons: -

- -
    -
  • -

    A queue is inherently a bottle neck, because it must maintain - first-in first-out order. -

    - -
  • - -
  • -

    A thread that is popping a value may have to wait idly until the - value is pushed. -

    - -
  • - -
  • -

    A queue is a passive data structure. If a thread pushes a value, it - could take time until it pops the value, and in the meantime the value (and - whatever it references) becomes "cold" in cache. Or worse yet, another thread - pops the value, and the value (and whatever it references) must be moved to the - other processor. -

    - -
  • - -
- -

In contrast, - parallel_do and - pipeline avoid these bottlenecks. Because their - threading is implicit, they optimize use of worker threads so that they do - other work until a value shows up. They also try to keep items hot in cache. - For example, when another work item is added to a - parallel_do, it is kept local to the thread that added - it unless another idle thread can steal it before the "hot" thread processes - it. This way, items are more often processed by the hot thread. -

- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/When_Task-Based_Programming_Is_Inappropriate.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/When_Task-Based_Programming_Is_Inappropriate.htm deleted file mode 100644 index e6c7c3b09..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/When_Task-Based_Programming_Is_Inappropriate.htm +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - -When Task-Based Programming Is Inappropriate - - - - - - - - - - - - - - -

When Task-Based Programming Is Inappropriate

- -

Using the task scheduler is usually the best approach to threading for performance, however there are cases when the task scheduler is not appropriate. The task scheduler is intended for high-performance algorithms composed from non-blocking tasks. It still works if the tasks rarely block. However, if threads block frequently, there is a performance loss when using the task scheduler because while the thread is blocked, it is not working on any tasks. Blocking typically occurs while waiting for I/O or mutexes for long periods. If threads hold mutexes for long periods, your code is not likely to perform well anyway, no matter how many threads it has. If you have blocking tasks, it is best to use full-blown threads for those. The task scheduler is designed so that you can safely mix your own threads with Intel® Threading Building Blocks tasks.

-
- - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Which_Dynamic_Libraries_to_Use.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Which_Dynamic_Libraries_to_Use.htm deleted file mode 100644 index 2e77e8451..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Which_Dynamic_Libraries_to_Use.htm +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - - - - - - - -Which Dynamic Libraries to Use - - - - - - - - - - - - - - -

Which Dynamic Libraries to Use

- - -
-

The template - scalable_allocator<T> requires the Intel® Threading Building Blocks (Intel® TBB) - scalable memory allocator library as described in - Scalable Memory Allocator. It does not require the Intel® TBB - general library, and can be used independently of the rest of Intel® TBB. -

- -

The templates - tbb_allocator<T> and - cache_aligned_allocator<T> use the scalable - allocator library if it is present otherwise it reverts to using - malloc and - free. Thus, you can use these templates even in - applications that choose to omit the scalable memory allocator library. -

- -

The rest of Intel® Threading Building Blocks can be used with or without - the Intel® TBB scalable memory allocator library. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Templates and Libraries
-

Template -

- -
-

Requirements -

- -
-

Notes -

- -
-

scalable_allocator<T> -

- -
-

Intel® Threading Building Blocks scalable memory allocator - library. See - Scalable Memory Allocator. -

- -
-

  -

- -
-

tbb_allocator<T> -

- -

cache_aligned_allocator<T> -

- -
-

  -

- -
-

Uses the scalable allocator library if it is present, otherwise it - reverts to using - malloc and - free. -

- -
-
- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Why_atomic_T_Has_No_Constructors.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Why_atomic_T_Has_No_Constructors.htm deleted file mode 100644 index 90b597624..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Why_atomic_T_Has_No_Constructors.htm +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - -Why atomic<T> Has No Constructors in C++03 mode - - - - - - - - - - - - - - -

Why atomic<T> Has No Constructors in C++03 mode

- - -
-

In C++03 mode template class - atomic<T> deliberately has no - declared constructors, because examples like - GetUniqueInteger, shown in the Atomic Operations - section, are commonly required to work correctly even before all file-scope - constructors have been called. If - atomic<T> declared a - constructor, a file-scope instance might be initialized after it had been - referenced. -

- -

As for any C++ class with no declared constructors, an object - X of type - atomic<T> is automatically - initialized to zero in the following contexts: -

- -
    -
  • -

    X is declared as a file-scope variable or as a - static data member of a class. -

    - -
  • - -
  • -

    x is a member of a class and explicitly listed in - the constructor's initializer list. -

    - -
  • - -
- -

The code below illustrates these points. -

- -
atomic<int> x;  // zero-initialized because it is at file scope
- 
-class Foo {
-    atomic<int> y;
-    atomic<int> notzeroed;
-    static atomic<int> z;
-public:
-    Foo() :
-        y()     // zero-initializes y.
-    {
-        // notzeroed has unspecified value here.
-    }
-};
- 
-atomic<int> Foo::z; // zero-initialized because it is a static member
-

In C++11 mode, template class - atomic<T> has two constructors - : -

- -
    -
  • -

    atomic() = default; default constructor generated - by compiler. This constructor behaves same as if there were no user defined - constrcutors declared at all. This constructor keeps backward compatibilty with - C++03 mode, e.g. allow zero-initilization of global objects. -

    - -
  • - -
  • -

    constexpr atomic(T arg); this - constructor allows initialization of atomic variable during translation time, - only if the argument is itself a translation time constant, otherwise - initialization is performed at run time. -

    - -
  • - -
- -
- - - -
-

See Also

- -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Windows_C_Dynamic_Memory_Interface_Replacement.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Windows_C_Dynamic_Memory_Interface_Replacement.htm deleted file mode 100644 index e12f6b99e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Windows_C_Dynamic_Memory_Interface_Replacement.htm +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - -Windows* OS C/C++ Dynamic Memory Interface Replacement - - - - - - - - - - - - - - -

Windows* OS C/C++ Dynamic Memory Interface Replacement

- -

Replacements are provided by a proxy library (release version tbbmalloc_proxy.dll, debug version tbbmalloc_debug_proxy.dll). Replacement can be done in one of two ways:

- -
  • Add the following header to a source code of any binary which is loaded during application startup.

    -
    #include "tbb/tbbmalloc_proxy.h"
  • -
  • Alternatively, add the following parameters to the linker options for the .exe or .dll file that is loaded during application startup.

    -

    For 32-bit code (note the triple underscore):

    -
    tbbmalloc_proxy.lib /INCLUDE:"___TBB_malloc_proxy"

    For 64-bit code (note the double underscore):

    -
    tbbmalloc_proxy.lib /INCLUDE:"__TBB_malloc_proxy"
  • -
-

The proxy library implements the following dynamic memory functions:

- -
  • Standard C run-time dynamic memory functions: malloc, calloc, realloc, free

    -
  • -
  • Global C++ operators new and delete.

    -
  • -
  • Microsoft* C run-time library function _msize

    -
  • -
-

A directory with the proxy library and the appropriate scalable memory allocator library must be available for loading. For example, include the directory in %PATH%.

-
- - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Windows_OS.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Windows_OS.htm deleted file mode 100644 index 80f68ae07..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Windows_OS.htm +++ /dev/null @@ -1,638 +0,0 @@ - - - - - - - - - - - - - - -Windows* OS - - - - - - - - - - - - - - -

Windows* OS

- - -
-

This section uses <install_dir> to indicate the - top-level installation directory. The following table describes the - subdirectory structure for Windows* OS, relative to <install_dir>. -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Intel® Threading Building Blocks Subdirectories - Windows* OS
-

Item -

- -
-

Location -

- -
-

Environment Variable -

- -
-

Include files -

- -
-

include\tbb\*.h -

- -
-

INCLUDE -

- -
-

.lib files -

- -
-

lib\<arch >\vc - <vcversion >\<lib - ><variant >.lib -

- -
-

LIB -

- -
-

.dll - files -

- -
-

..\redist\ <arch>\tbb\vc - <vcversion> \<lib - ><variant >.dll - -

- - - - - - - - - - - - - - - - - - - - - - - - - - -
-

<arch> -

- -
-

Processor -

- -
-

ia32 -

- -
-

Intel® IA-32 processors -

- -
-

intel64 -

- -
-

Intel® 64 architecture processors -

- -
-
- -

- -

- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

<vcversion> -

- -
-

Environment -

- -
-

9 -

- -
-

Microsoft Visual Studio* 2008 -

- -
-

10 -

- -
-

Microsoft Visual Studio* 2010 -

- -
-

11 -

- -
-

Microsoft Visual Studio* 2012 -

- -
-

11_ui -

- -
-

Microsoft Windows Store* applications -

- -
-

12 -

- -
-

Microsoft Visual Studio* 2013 -

- -
-

_mt -

- -
-

Independent of Microsoft Visual Studio* version. -

- -
-
- -

- -

- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

<lib> -

- -
-

Version -

- -
-

tbb -

- -
-

General library -

- -
-

tbbmalloc -

- -
-

Memory allocator -

- -
-

tbbmalloc_proxy -

- -
-

Substitution for default memory allocator -

- -
-

tbb_preview -

- -
-

Community preview features library -

- -
-
- -

- -

- -

- - - - - - - - - - - - - - - - - - - - - - - - - - -
-

<variant> -

- -
-

Version -

- -
-

(none) -

- -
-

Release version -

- -
-

_debug -

- -
-

Debug version -

- -
-
- -

- -
-

PATH -

- -
-

.pdb files -

- -
-

Same as corresponding - .dll file. -

- -
-

Examples -

- -
-

examples\<class>\*\. -

- -
-

  -

- -
-

Microsoft Visual Studio Solution File for Example -

- -
-

examples\<class>\*\msvs\*<compiler>.sln - -

- -

where: -

- -

class describes the class being demonstrated. - -

- - - - - - - - - - - - - - - - - - - - - - - - - - -
-

<compiler> -

- -
-

Version -

- -
-

cl - -

- -
-

Microsoft* Visual C++* -

- -
-

icl -

- -
-

Intel® C++ Compiler -

- -
-
- -

- -
-

  -

- -
-
- -

The last column shows which environment variables are used by the - Microsoft or Intel compilers to find these subdirectories. -

- -

- Caution

-

Ensure that the relevant product directories are mentioned by the - environment variables; otherwise the compiler might not find the required - files. -

- -
-

- Caution

-

Windows* OS run-time libraries come in thread-safe and thread-unsafe - forms. Using non-thread-safe versions with Intel® TBB may cause undefined - results. When using Intel® TBB, be sure to link with the thread-safe versions. - The following shows the compiler options for linking with thread-safe versions - of C/C++ run-time for - cl or - icl: -

    -
  • Options for dynamic linking: - /MDd (debug); - /MD (release) -
  • - -
  • Options for static linking: - /MTd (debug); - /MT (release) -
  • - -
- -

- -

Not using one of these options causes Intel® TBB to report an error - during compilation. In all cases, linking to the Intel® TBB library is dynamic. - -

- -
-
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Working_on_the_Assembly_Line_pipeline.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Working_on_the_Assembly_Line_pipeline.htm deleted file mode 100644 index beec83322..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/Working_on_the_Assembly_Line_pipeline.htm +++ /dev/null @@ -1,432 +0,0 @@ - - - - - - - - - - - - - - - - -Working on the Assembly Line: pipeline - - - - - - - - - - - - - - -

Working on the Assembly Line: pipeline

- - -
-

Pipelining is a common parallel pattern that mimics a traditional - manufacturing assembly line. Data flows through a series of pipeline filters - and each filter processes the data in some way. Given an incoming stream of - data, some of these filters can operate in parallel, and others cannot. For - example, in video processing, some operations on frames do not depend on other - frames, and so can be done on multiple frames at the same time. On the other - hand, some operations on frames require processing prior frames first. -

- -

The Intel® Threading Building Blocks (Intel® TBB) classes - pipeline and - filter implement the pipeline pattern. A simple text - processing example will be used to demonstrate the usage of - pipeline and - filter to perform parallel formatting. The example reads - a text file, squares each decimal numeral in the text, and writes the modified - text to a new file. Below is a picture of the pipeline. -

- -

- Caution

Because the body object provided to the filters of - the - parallel_pipline might be copied, its - operator() should not modify the body. Otherwise the - modification might or might not become visible to the thread that invoked - parallel_pipeline, depending upon whether - operator() is acting on the original or a copy. As a - reminder of this nuance, - parallel_pipeline requires that the body object's - operator() be declared - const. -
- -
- - - - - - - - - - - - - - - - -
-

Read chunk
from input file -

- -


-
-

Square numerals -
in chunk -

- -


-
-

Write chunk -
to output file -

- -
-
- -

Assume that the raw file I/O is sequential. The squaring filter can be - done in parallel. That is, if you can serially read - n chunks very quickly, you can transform each of the - n chunks in parallel, as long as they are written in - the proper order to the output file. Though the raw I/O is sequential, the - formatting of input and output can be moved to the middle filter, and thus be - parallel. -

- -

To amortize parallel scheduling overheads, the filters operate on chunks - of text. Each input chunk is approximately 4000 characters. Each chunk is - represented by an instance of class - TextSlice: -

- -
// Holds a slice of text.
-/** Instances *must* be allocated/freed using methods herein, because the C++ declaration
-   represents only the header of a much larger object in memory. */
-class TextSlice {
-    // Pointer to one past last character in sequence
-    char* logical_end;
-    // Pointer to one past last available byte in sequence.
-    char* physical_end;
-public:
-    // Allocate a TextSlice object that can hold up to max_size characters.
-    static TextSlice* allocate( size_t max_size ) {
-        // +1 leaves room for a terminating null character.
-        TextSlice* t = (TextSlice*)tbb::tbb_allocator<char>().allocate( sizeof(TextSlice)+max_size+1 );
-        t->logical_end = t->begin();
-        t->physical_end = t->begin()+max_size;
-        return t;
-    }
-    // Free this TextSlice object
-    void free() {
-        tbb::tbb_allocator<char>().deallocate((char*)this, sizeof(TextSlice)+(physical_end-begin())+1);
-    }
-    // Pointer to beginning of sequence
-    char* begin() {return (char*)(this+1);}
-    // Pointer to one past last character in sequence
-    char* end() {return logical_end;}
-    // Length of sequence
-    size_t size() const {return logical_end-(char*)(this+1);}
-    // Maximum number of characters that can be appended to sequence
-    size_t avail() const {return physical_end-logical_end;}
-    // Append sequence [first,last) to this sequence.
-    void append( char* first, char* last ) {
-        memcpy( logical_end, first, last-first );
-        logical_end += last-first;
-    }
-    // Set end() to given value.
-    void set_end( char* p ) {logical_end=p;}
-};
-

Below is the top-level code for building and running the pipeline. - TextSlice objects are passed between filters using - pointers to avoid the overhead of copying a - TextSlice. -

- -
void RunPipeline( int ntoken, FILE* input_file, FILE* output_file ) {
-    tbb::parallel_pipeline(
-        ntoken,
-        tbb::make_filter<void,TextSlice*>(
-            tbb::filter::serial_in_order, MyInputFunc(input_file) )
-    &
-        tbb::make_filter<TextSlice*,TextSlice*>(
-            tbb::filter::parallel, MyTransformFunc() )
-    &
-        tbb::make_filter<TextSlice*,void>(
-            tbb::filter::serial_in_order, MyOutputFunc(output_file) ) );
-} 
-

The parameter - ntoken to method - parallel_pipeline controls the level of parallelism. - Conceptually, tokens flow through the pipeline. In a serial in-order filter, - each token must be processed serially in order. In a parallel filter, multiple - tokens can by processed in parallel by the filter. If the number of tokens were - unlimited, there might be a problem where the unordered filter in the middle - keeps gaining tokens because the output filter cannot keep up. This situation - typically leads to undesirable resource consumption by the middle filter. The - parameter to method - parallel_pipeline specifies the maximum number of tokens - that can be in flight. Once this limit is reached, the pipeline never creates a - new token at the input filter until another token is destroyed at the output - filter. -

- -

The second parameter specifies the sequence of filters. Each filter is - constructed by function - make_filter<inputType,outputType>(mode,functor). - -

- -
    -
  • -

    The - inputType specifies the type of values input by a filter. For - the input filter, the type is - void. -

    - -
  • - -
  • -

    The - outputType specifies the type of values output by a filter. - For the output filter, the type is - void. -

    - -
  • - -
  • -

    The - mode specifies whether the filter processes items in parallel, - serial in-order, or serial out-of-order. -

    - -
  • - -
  • -

    The - functor specifies how to produce an output value from an input - value. -

    - -
  • - -
- -

The filters are concatenated with - operator&. When concatenating two filters, the - outputType of the first filter must match the - inputType of the second filter. -

- -

The filters can be constructed and concatenated ahead of time. An - equivalent version of the previous example that does this follows: -

- -
void RunPipeline( int ntoken, FILE* input_file, FILE* output_file ) {
-    tbb::filter_t<void,TextSlice*> f1( tbb::filter::serial_in_order, 
-                                       MyInputFunc(input_file) );
-    tbb::filter_t<TextSlice*,TextSlice*> f2(tbb::filter::parallel, 
-                                            MyTransformFunc() );
-    tbb::filter_t<TextSlice*,void> f3(tbb::filter::serial_in_order, 
-                                      MyOutputFunc(output_file) );
-    tbb::filter_t<void,void> f = f1 & f2 & f3;
-    tbb::parallel_pipeline(ntoken,f);
-}
-

The input filter must be - serial_in_order in this example because the filter reads - chunks from a sequential file and the output filter must write the chunks in - the same order. All - serial_in_order filters process items in the same order. - Thus if an item arrives at - MyOutputFunc out of the order established by - MyInputFunc, the pipeline automatically delays invoking - MyOutputFunc::operator() on the item until its - predecessors are processed. There is another kind of serial filter, - serial_out_of_order, that does not preserve order. -

- -

The middle filter operates on purely local data. Thus any number of - invocations of its functor can run concurrently. Hence it is specified as a - parallel filter. -

- -

The functors for each filter are explained in detail now. The output - functor is the simplest. All it has to do is write a - TextSlice to a file and free the - TextSlice. -

- -
// Functor that writes a TextSlice to a file.
-class MyOutputFunc {
-    FILE* my_output_file;
-public:
-    MyOutputFunc( FILE* output_file );
-    void operator()( TextSlice* item ) const;
-};
- 
-MyOutputFunc::MyOutputFunc( FILE* output_file ) :
-    my_output_file(output_file)
-{
-}
- 
-void MyOutputFunc::operator()( TextSlice* out ) const {
-    size_t n = fwrite( out->begin(), 1, out->size(), my_output_file );
-    if( n!=out->size() ) {
-        fprintf(stderr,"Can't write into file '%s'\n", OutputFileName);
-        exit(1);
-    }
-    out->free();
-} 
-

Method - operator() processes a - TextSlice. The parameter - out points to the - TextSlice to be processed. Since it is used for the last - filter of the pipeline, it returns - void. -

- -

The functor for the middle filter is similar, but a bit more complex. It - returns a pointer to the - TextSlice that it produces. -

- -
// Functor that changes each decimal number to its square.
-class MyTransformFunc {
-public:
-    TextSlice* operator()( TextSlice* input ) const;
-};
-
-TextSlice* MyTransformFunc::operator()( TextSlice* input ) const {
-    // Add terminating null so that strtol works right even if number is at end of the input.
-    *input->end() = '\0';
-    char* p = input->begin();
-    TextSlice* out = TextSlice::allocate( 2*MAX_CHAR_PER_INPUT_SLICE );
-    char* q = out->begin();
-    for(;;) {
-        while( p<input->end() && !isdigit(*p) )
-            *q++ = *p++;
-        if( p==input->end() )
-            break;
-        long x = strtol( p, &p, 10 );
-        // Note: no overflow checking is needed here, as we have twice the
-        // input string length, but the square of a non-negative integer n
-        // cannot have more than twice as many digits as n.
-        long y = x*x;
-        sprintf(q,"%ld",y);
-        q = strchr(q,0);
-    }
-    out->set_end(q);
-    input->free();
-    return out;
-} 
-

The input functor is the most complicated, because it has to ensure that - no numeral crosses a boundary. When it finds what could be a numeral crossing - into the next slice, it copies the partial numeral to the next slice. - Furthermore, it has to indicate when the end of input is reached. It does this - by invoking method - stop() on a special argument of type - flow_control. This idiom is required for any functor - used for the first filter of a pipline. It is shown in - bold font in - the following code for the functor: -

- -
TextSlice* next_slice = NULL;
-
-class MyInputFunc {
-public:
-    MyInputFunc( FILE* input_file_ );
-    MyInputFunc( const MyInputFunc& f ) : input_file(f.input_file) { }
-    ~MyInputFunc();
-    TextSlice* operator()( tbb::flow_control& fc ) const;
-private:
-    FILE* input_file;
-};
- 
-MyInputFunc::MyInputFunc( FILE* input_file_ ) :
-    input_file(input_file_) { }
- 
-MyInputFunc::~MyInputFunc() {
-}
- 
-TextSlice* MyInputFunc::operator()( tbb::flow_control& fc ) const {
-    // Read characters into space that is available in the next slice.
-    if( !next_slice )
-        next_slice = TextSlice::allocate( MAX_CHAR_PER_INPUT_SLICE );
-    size_t m = next_slice->avail();
-    size_t n = fread( next_slice->end(), 1, m, input_file );
-    if( !n && next_slice->size()==0 ) {
-        // No more characters to process
-        fc.stop();
-        return NULL;
-    } else {
-        // Have more characters to process.
-        TextSlice* t = next_slice;
-        next_slice = TextSlice::allocate( MAX_CHAR_PER_INPUT_SLICE );
-        char* p = t->end()+n;
-        if( n==m ) {
-            // Might have read partial number.  
-            // If so, transfer characters of partial number to next slice.
-            while( p>t->begin() && isdigit(p[-1]) )
-                --p;
-            assert(p>t->begin(),"Number too large to fit in buffer.\n");
-            next_slice->append( p, t->end()+n );
-        }
-        t->set_end(p);
-        return t;
-    }
-}
-

The copy constructor must be defined because the functor is copied when - the filter_t is built from the functor, and again when the pipeline runs. -

- -

The - parallel_pipeline syntax is new in Intel® TBB 3.0. The - directory - examples/pipeline/square contains the complete code for - the squaring example in an older lower-level syntax where the filters are - defined via inheritance. The Reference manual describes both syntaxes. -

- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/appendix_A.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/appendix_A.htm deleted file mode 100644 index c8a2765d1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/appendix_A.htm +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - -Appendix A Costs of Time Slicing - - - - - - - - - - - - - - -

Appendix A Costs of Time Slicing

- - -
-

Time slicing enables there to be more logical threads than physical - threads. Each logical thread is serviced for a - time slice by a physical thread. If a thread runs longer than a - time slice, as most do, it relinquishes the physical thread until it gets - another turn. This appendix details the costs incurred by time slicing. -

- -

The most obvious is the time for - context switching between logical threads. Each context switch - requires that the processor save all its registers for the previous logical - thread that it was executing, and load its registers for the next logical - thread that it runs. -

- -

A more subtle cost is - cache cooling. Processors keep recently accessed data in cache - memory, which is very fast, but also relatively small compared to main memory. - When the processor runs out of cache memory, it has to evict items from cache - and put them back into main memory. Typically, it chooses the least recently - used items in the cache. (The reality of set-associative caches is a bit more - complicated, but this is not a cache primer.) When a logical thread gets its - time slice, as it references a piece of data for the first time, this data will - be pulled into cache, taking hundreds of cycles. If it is referenced frequently - enough to not be evicted, each subsequent reference will find it in cache, and - only take a few cycles. Such data is called "hot in cache". Time slicing undoes - this, because if a thread A finishes its time slice, and subsequently thread B - runs on the same physical thread, B will tend to evict data that was hot in - cache for A, unless both threads need the data. When thread A gets its next - time slice, it will need to reload evicted data, at the cost of hundreds of - cycles for each cache miss. Or worse yet, the next time slice for thread A may - be on a different physical thread that has a different cache altogether. -

- -

Another cost is - lock preemption. This happens if a thread acquires a lock on a - resource, and its time slice runs out before it releases the lock. No matter - how short a time the thread intended to hold the lock, it is now going to hold - it for at least as long as it takes for its next turn at a time slice to come - up. Any other threads waiting on the lock either pointlessly busy-wait, or lose - the rest of their time slice. The effect is called - convoying, because the threads end up "bumper to bumper" waiting - for the preempted thread in front to resume driving. -

- -
- - - -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/appendix_B.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/appendix_B.htm deleted file mode 100644 index 9d2320dcf..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/appendix_B.htm +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - -Appendix B Mixing With Other Threading Packages - - - - - - - - - - - - - - -

Appendix B Mixing With Other Threading Packages

- -

Intel® Threading Building Blocks (Intel® TBB) can be mixed with other threading packages. No special effort is required to use any part of Intel® TBB with other threading packages.[9]

-

Here is an example that parallelizes an outer loop with OpenMP and an inner loop with Intel® Threading Building Blocks.

- -
int M, N;
- 
-struct InnerBody {
-    ...
-};
- 
-void TBB_NestedInOpenMP() {
-#pragma omp parallel
-    {
-#pragma omp for
-        for( int i=0; i<M; ++ ) {
-            parallel_for( blocked_range<int>(0,N,10), InnerBody(i) );
-        }
-    }
-}
-

The details of InnerBody are omitted for brevity. The #pragma omp parallel causes the OpenMP to create a team of threads, and each thread executes the block statement associated with the pragma. The #pragma omp for indicates that the compiler should use the previously created thread team to execute the loop in parallel.

-

Here is the same example written using POSIX* Threads.

- -
int M, N;
- 
-struct InnerBody {
-    ...
-};
- 
-void* OuterLoopIteration( void* args ) {
-    int i = (int)args;
-    parallel_for( blocked_range<int>(0,N,10), InnerBody(i) );
-}
- 
-void TBB_NestedInPThreads() {
-    std::vector<pthread_t> id( M );
-    // Create thread for each outer loop iteration
-    for( int i=0; i<M; ++i )
-        pthread_create( &id[i], NULL, OuterLoopIteration, NULL );
-    // Wait for outer loop threads to finish
-    for( int i=0; i<M; ++i )
-        pthread_join( &id[i], NULL );
-} 
-
- - -
-

[9] Intel® TBB 2.1 required creating a tbb::task_scheduler_init object in each thread that invokes the task scheduler or a parallel algorithm. Intel® TBB 2.2 and later versions automatically create the task scheduler.

- - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/concurrent_hash_map.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/concurrent_hash_map.htm deleted file mode 100644 index e43a6a6ca..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/concurrent_hash_map.htm +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - - - - - - - -concurrent_hash_map - - - - - - - - - - - - - - -

concurrent_hash_map

- -

A concurrent_hash_map<Key, T, HashCompare > is a hash table that permits concurrent accesses. The table is a map from a key to a type T. The traits type HashCompare defines how to hash a key and how to compare two keys.

-

The following example builds a concurrent_hash_map where the keys are strings and the corresponding data is the number of times each string occurs in the array Data.

- -
#include "tbb/concurrent_hash_map.h"
-#include "tbb/blocked_range.h"
-#include "tbb/parallel_for.h"
-#include <string>
- 
-using namespace tbb;
-using namespace std;
- 
-// Structure that defines hashing and comparison operations for user's type.
-struct MyHashCompare {
-    static size_t hash( const string& x ) {
-        size_t h = 0;
-        for( const char* s = x.c_str(); *s; ++s )
-            h = (h*17)^*s;
-        return h;
-    }
-    //! True if strings are equal
-    static bool equal( const string& x, const string& y ) {
-        return x==y;
-    }
-};
- 
-// A concurrent hash table that maps strings to ints.
-typedef concurrent_hash_map<string,int,MyHashCompare> StringTable;
- 
-// Function object for counting occurrences of strings.
-struct Tally {
-    StringTable& table;
-    Tally( StringTable& table_ ) : table(table_) {}
-    void operator()( const blocked_range<string*> range ) const {
-        for( string* p=range.begin(); p!=range.end(); ++p ) {
-            StringTable::accessor a;
-            table.insert( a, *p );
-            a->second += 1;
-        }
-    }
-};
- 
-const size_t N = 1000000;
- 
-string Data[N];
- 
-void CountOccurrences() {
-    // Construct empty table.
-    StringTable table;
- 
-    // Put occurrences into the table
-    parallel_for( blocked_range<string*>( Data, Data+N, 1000 ),
-                  Tally(table) );
- 
-    // Display the occurrences
-    for( StringTable::iterator i=table.begin(); i!=table.end(); ++i )
-        printf("%s %d\n",i->first.c_str(),i->second);
-}
-

A concurrent_hash_map acts as a container of elements of type std::pair<const Key,T>. Typically, when accessing a container element, you are interested in either updating it or reading it. The template class concurrent_hash_map supports these two purposes respectively with the classes accessor and const_accessor that act as smart pointers. An accessor represents update (write) access. As long as it points to an element, all other attempts to look up that key in the table block until the accessor is done. A const_accessor is similar, except that is represents read-only access. Multiple const_accessors can point to the same element at the same time. This feature can greatly improve concurrency in situations where elements are frequently read and infrequently updated.

-

The methods find and insert take an accessor or const_accessor as an argument. The choice tells concurrent_hash_map whether you are asking for update or read-only access. Once the method returns, the access lasts until the accessor or const_accessor is destroyed. Because having access to an element can block other threads, try to shorten the lifetime of the accessor or const_accessor. To do so, declare it in the innermost block possible. To release access even sooner than the end of the block, use method release. The following example is a rework of the loop body that uses release instead of depending upon destruction to end thread lifetime:

- -
        StringTable accessor a;
-        for( string* p=range.begin(); p!=range.end(); ++p ) {
-            table.insert( a, *p );
-            a->second += 1;
-            a.release();
-        }
-

The method remove(key) can also operate concurrently. It implicitly requests write access. Therefore before removing the key, it waits on any other extant accesses on key.

-
- - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/concurrent_vector.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/concurrent_vector.htm deleted file mode 100644 index 85032a7a6..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/concurrent_vector.htm +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - - - - - -concurrent_vector - - - - - - - - - - - - - - -

concurrent_vector

- - -
-

A concurrent_vector<T> is a - dynamically growable array of - T. It is safe to grow a - concurrent_vector while other threads are also operating - on elements of it, or even growing it themselves. For safe concurrent growing, - concurrent_vector has three methods that support common - uses of dynamic arrays: - push_back, - grow_by, and - grow_to_at_least. -

- -

Method - push_back(x) safely appends x to the - array. Method - grow_by(n) safely appends - n consecutive elements initialized - with - T(). Both methods return an iterator - pointing to the first appended element. Each element is initialized with - T(). So for example, the following - routine safely appends a C string to a shared vector: -

- -
void Append( concurrent_vector<char>& vector, const char* string ) {
-    size_t n = strlen(string)+1;
-    std::copy( string, string+n, vector.grow_by(n) );
-}
-

The related method - grow_to_at_least(n)grows a vector to - size - n if it is shorter. Concurrent calls to the growth - methods do not necessarily return in the order that elements are appended to - the vector. -

- -

Method - size() returns the number of elements in the vector, - which may include elements that are still undergoing concurrent construction by - methods - push_back, - grow_by, or - grow_to_at_least. The example uses - std::copy and iterators, not - strcpy and pointers, because elements in a - concurrent_vector might not be at consecutive addresses. - It is safe to use the iterators while the - concurrent_vector is being grown, as long as the iterators - never go past the current value of - end(). However, the iterator may reference an element - undergoing concurrent construction. You must synchronize construction and - access. -

- -

A - concurrent_vector<T> never - moves an element until the array is cleared, which can be an advantage over the - STL - std::vector even for single-threaded code. However, - concurrent_vector does have more overhead than - std::vector. Use - concurrent_vector only if you really need the ability to - dynamically resize it while other accesses are (or might be) in flight, or - require that an element never move. -

- -

- Caution

-

Operations on - concurrent_vector are concurrency safe with respect to - - growing, not for clearing or destroying a vector. Never invoke - method - clear() if there are other operations in flight on the - - concurrent_vector. -

- -
-
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/parallel_for.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/parallel_for.htm deleted file mode 100644 index 3ae80e063..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/parallel_for.htm +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - - - - - - - - - - - - -parallel_for - - - - - - - - - - - - - - -

parallel_for

- - -
-

Suppose you want to apply a function - Foo to each element of an array, and it is safe to - process each element concurrently. Here is the sequential code to do this: -

- -
void SerialApplyFoo( float a[], size_t n ) {
-    for( size_t i=0; i!=n; ++i )
-        Foo(a[i]);
-}
-

The iteration space here is of type - size_t, and goes from - 0 to - n-1. The template function - tbb::parallel_for breaks this iteration space into chunks, - and runs each chunk on a separate thread. The first step in parallelizing this - loop is to convert the loop body into a form that operates on a chunk. The form - is an STL-style function object, called the - body object, in which - operator() processes a chunk. The following code declares - the body object. The extra code required for Intel® Threading Building Blocks - is shown in - bold font. -

- -
#include "tbb/tbb.h"
- 
-using namespace tbb;
- 
-class ApplyFoo {
-    float *const my_a;
-public:
-    void operator()( const blocked_range<size_t>& r ) const {
-        float *a = my_a;
-        for( size_t i=r.begin(); i!=r.end(); ++i ) 
-           Foo(a[i]);
-    }
-    ApplyFoo( float a[] ) :
-        my_a(a)
-    {}
-};
-

The - using directive in the example enables you to use the - library identifiers without having to write out the namespace prefix - tbb before each identifier. The rest of the examples - assume that such a - using directive is present. -

- -

Note the argument to - operator(). A - blocked_range<T> is a template class provided by - the library. It describes a one-dimensional iteration space over type - T. Class - parallel_for works with other kinds of iteration spaces - too. The library provides - blocked_range2d for two-dimensional spaces. You can - define your own spaces as explained in - Advanced Topic: Other Kinds of Iteration Spaces. -

- -

An instance of - ApplyFoo needs member fields that remember all the local - variables that were defined outside the original loop but used inside it. - Usually, the constructor for the body object will initialize these fields, - though - parallel_for does not care how the body object is - created. Template function - parallel_for requires that the body object have a copy - constructor, which is invoked to create a separate copy (or copies) for each - worker thread. It also invokes the destructor to destroy these copies. In most - cases, the implicitly generated copy constructor and destructor work correctly. - If they do not, it is almost always the case (as usual in C++) that you must - define - both to be consistent. -

- -

Because the body object might be copied, its - operator() should not modify the body. Otherwise the - modification might or might not become visible to the thread that invoked - parallel_for, depending upon whether - operator() is acting on the original or a copy. As a - reminder of this nuance, - parallel_for requires that the body object's - operator() be declared - const. -

- -

The example - operator() loads - my_a into a local variable - a. Though not necessary, there are two reasons for doing - this in the example: -

- -
    -
  • -

    Style. It makes the loop body look more like the original. -

    - -
  • - -
  • -

    Performance. Sometimes putting frequently accessed values - into local variables helps the compiler optimize the loop better, because local - variables are often easier for the compiler to track. -

    - -
  • - -
- -

Once you have the loop body written as a body object, invoke the - template function - parallel_for, as follows: -

- -
#include "tbb/tbb.h"
- 
-void ParallelApplyFoo( float a[], size_t n ) {
-    parallel_for(blocked_range<size_t>(0,n), ApplyFoo(a));
-}
-

The - blocked_range constructed here represents the entire - iteration space from 0 to n-1, which - parallel_for divides into subspaces for each processor. - The general form of the constructor is - blocked_range<T>(begin,end,grainsize). - The - T specifies the value type. The arguments - begin and - end specify the iteration space STL-style as a - half-open interval [begin,end). The - argument - grainsize is explained in the - Controlling Chunking - section. The example uses the default grainsize of 1 because by - default - parallel_for applies a heuristic that works well with - the default grainsize. -

- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/parallel_reduce.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/parallel_reduce.htm deleted file mode 100644 index bdbba8ce1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/parallel_reduce.htm +++ /dev/null @@ -1,230 +0,0 @@ - - - - - - - - - - - - - -parallel_reduce - - - - - - - - - - - - - - -

parallel_reduce

- - -
-

A loop can do a reduction, as in this summation: -

- -
float SerialSumFoo( float a[], size_t n ) {
-    float sum = 0;
-    for( size_t i=0; i!=n; ++i )
-        sum += Foo(a[i]);
-    return sum;
-}
-

If the iterations are independent, you can parallelize this loop using - the template class - parallel_reduce as follows: -

- -
float ParallelSumFoo( const float a[], size_t n ) {
-    SumFoo sf(a);
-    parallel_reduce( blocked_range<size_t>(0,n), sf );
-    return sf.my_sum;
-}
-

The class - SumFoo specifies details of the reduction, such as how - to accumulate subsums and combine them. Here is the definition of class - SumFoo: -

- -
class SumFoo {
-    float* my_a;
-public:
-    float my_sum; 
-    void operator()( const blocked_range<size_t>& r ) {
-        float *a = my_a;
-        float sum = my_sum;
-        size_t end = r.end();
-        for( size_t i=r.begin(); i!=end; ++i ) 
-            sum += Foo(a[i]); 
-        my_sum = sum;    
-    }
- 
-    SumFoo( SumFoo& x, split ) : my_a(x.my_a), my_sum(0) {}
- 
-    void join( const SumFoo& y ) {my_sum+=y.my_sum;}
-             
-    SumFoo(float a[] ) :
-        my_a(a), my_sum(0)
-    {}
-};
-

Note the differences with class - ApplyFoo from - parallel_for. First, - operator() is - not - const. This is because it must update - SumFoo::my_sum. Second, - SumFoo has a - splitting constructor and a method - join that must be present for - parallel_reduce to work. The splitting constructor takes - as arguments a reference to the original object, and a dummy argument of type - split, which is defined by the library. The dummy argument - distinguishes the splitting constructor from a copy constructor. -

- -

- Tip

-

In the example, the definition of - operator() uses local temporary variables - (a, - sum, - end) for scalar values accessed inside the loop. This - technique can improve performance by making it obvious to the compiler that the - values can be held in registers instead of memory. If the values are too large - to fit in registers, or have their address taken in a way the compiler cannot - track, the technique might not help. With a typical optimizing compiler, using - local temporaries for only written variables (such as - sum in the example) can suffice, because then the - compiler can deduce that the loop does not write to any of the other locations, - and hoist the other reads to outside the loop. -

- -
-

When a worker thread is available, as decided by the task scheduler, - parallel_reduce invokes the splitting constructor to - create a subtask for the worker. When the subtask completes, - parallel_reduce uses method - join to accumulate the result of the subtask. The graph - at the top of the following figure shows the split-join sequence that happens - when a worker is available: -

- -
Graph of the Split-join Sequence -

-
- -

An arc in the above figure indicates order in time. The splitting - constructor might run concurrently while object x is being used for the first - half of the reduction. Therefore, all actions of the splitting constructor that - creates y must be made thread safe with respect to x. So if the splitting - constructor needs to increment a reference count shared with other objects, it - should use an atomic increment. -

- -

If a worker is not available, the second half of the iteration is - reduced using the same body object that reduced the first half. That is the - reduction of the second half starts where reduction of the first half finished. - -

- -

- Caution

-

Because split/join are not used if workers are unavailable, - parallel_reduce does not necessarily do recursive - splitting. -

- -
-

- Caution

-

Because the same body might be used to accumulate multiple subranges, - it is critical that - operator() not discard earlier accumulations. The code - below shows an incorrect definition of - SumFoo::operator(). -

- -
-
class SumFoo {
-    ...
-public:
-    float my_sum; 
-    void operator()( const blocked_range<size_t>& r ) {
-        ...
-        float sum = 0;  // WRONG – should be 'sum = my_sum".
-        ...
-        for( ... ) 
-            sum += Foo(a[i]); 
-        my_sum = sum;   
-    }
-    ...
-};
-

With the mistake, the body returns a partial sum for the last subrange - instead of all subranges to which - parallel_reduce applies it. -

- -

The rules for partitioners and grain sizes for - parallel_reduce are the same as for - parallel_for. -

- -

parallel_reduce generalizes to any associative - operation. In general, the splitting constructor does two things: -

- -
    -
  • -

    Copy read-only information necessary to run the loop body. -

    - -
  • - -
  • -

    Initialize the reduction variable(s) to the identity element of the - operation(s). -

    - -
  • - -
- -

The join method should do the corresponding merge(s). You can do more - than one reduction at the same time: you can gather the min and max with a - single - parallel_reduce. -

- -

- Note

-

The reduction operation can be non-commutative. The example still - works if floating-point addition is replaced by string concatenation. -

- -
-
- - - -
-

See Also

- -
- - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/title.htm b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/title.htm deleted file mode 100644 index dcc31283a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tbb_userguide/title.htm +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - -Intel® Threading Building Blocks (Intel® TBB) User Guide - - - - - - - - - - - - - - -

Intel® Threading Building Blocks (Intel® - TBB) User Guide

- - -
-

Intel® TBB 4.2 - Windows* OS -

- -
- - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tree.css b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tree.css deleted file mode 100644 index 5dba944ec..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tree.css +++ /dev/null @@ -1,106 +0,0 @@ - -.treeDiv -{ - font-family: verdana,arial,sans-serif; - font-size: 70.5%; - font-weight: normal; - background-color: #F1F1F1; /* main background color */ - color: #000000; /* text color */ - overflow: auto; - margin: 0px 0px 0px 0px; - padding: 0px 0px 0px 2px; // 8px is better left padding but obscures the scroll bar in Chrome */ -} -.treeNode -{ - white-space: nowrap; - text-indent: -14px; - margin: 5px 2px 5px 14px; -} - -A.treeUnselected:hover, A.treeSelected:hover - -{ - border-top: 1px solid #999999; - border-right: 1px solid #999999; - border-left: 1px solid #999999; - border-bottom: 1px solid #999999; - background-color: #CCCCCC; /* Rollover color */ - color: #000000; /* Rollover text color */ - text-decoration: none; - -} - -A.treeUnselected, A.treeSelected - -{ - - color: Black; - - padding: 1px 3px 1px 3px; - - text-decoration: none; - -} - -A.treeSelected - -{ - - background-color: #FFFFFF; /* Node selection color */ - border-top: 1px solid #999999; - - border-right: 1px solid #999999; - border-left: 1px solid #999999; - border-bottom: 1px solid #999999; - color: #000000; /* selected text color */ -} -A.treeUnselected - -{ - - border-top: solid 1px transparent; /* Non Select color - Should match background color */ - border-right: solid 1px transparent; - - border-left: solid 1px transparent; - border-bottom: solid 1px transparent; - background-color: transparent; - - - color: #000000; /* text color */ -} - -.treeSubnodes - -{ - - display: block; - -} - -.treeSubnodesHidden - -{ - - display: none; -} - -.treeNode IMG.treeNoLinkImage, .treeNode IMG.treeLinkImage - -{ - - width: 9px; /* Icon size in pixels*/ - height: 9px; - - margin-left: 5px; - - margin-right: 0px; - -} - -.treeNode IMG.treeLinkImage - -{ - - cursor: pointer; - -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tree.js b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tree.js deleted file mode 100644 index 2846ab766..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/tree.js +++ /dev/null @@ -1,394 +0,0 @@ -// Copyright © 2009-2011, Rob Chandler. -// Please don't use this file without purchasing FAR. http://helpware.net/FAR/ -// This effectively licenses you to use my code. This code (before modification) was -// first written by Jean-Claude Manoli. -// Changes -// RWC: 2005-04-01 - Fix image pre-load section. Last line had typo causing some images not to load -// RWC: 2005-05-21 - Some work fixing TOC Sync -// RWC: 2008-01-30 - Change resizeTree() to be compatible with non-MS browsers -// RWC: 2009-06-10 - All files now saved in UTF-8 file format. -// RWC: 2009-09-26 - Allow Opera browser to scroll the tree when syncing TOC. -// RWC: 2011-09-10 - Fix Sync for \\server\ UNC paths. -// RWC: 2011-09-11 - Fix Sync for CJK paths. -// RWC: 2012-09-04 - Added selectNext(fwd) & findLinkNode() - - -/* Original Copyright © 2002 Jean-Claude Manoli [jc@manoli.net] - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the author(s) be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software - * in a product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not - * be misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - */ - - - -var treeSelected = null; //last treeNode clicked - -//pre-load tree nodes images -var imgPlus = new Image(); -imgPlus.src="treenodeplus.gif"; -var imgMinus = new Image(); -imgMinus.src="treenodeminus.gif"; -var imgDot = new Image(); -imgDot.src="treenodedot.gif"; //rwc - fixed. Was... imgPlus.src="treenodedot.gif"; - - -function findNode(el) -{ -// Takes element and determines if it is a treeNode. -// If not, seeks a treeNode in its parents. - while (el != null) - { - if (el.className == "treeNode") - { - break; - } - else - { - el = el.parentNode; - } - } - return el; -} - - -function clickAnchor(el) -{ -// handles click on a TOC link -// - expandNode(el.parentNode); - selectNode(el.parentNode); - el.blur(); -} - -function findLinkNode(node) -{ - if (node == null || node == undefined) - node = treeSelected; - node = findNode(node); - if (node == null) - return null; - var anchors = node.getElementsByTagName('A'); - if (anchors.length > 0) - return anchors[0]; - return null; -} - - -function selectNext(fwd) -{ -// Sync forward or back from current selected. Return href of newly selected node. -// - var el; - var aref = ""; - var node = document.getElementById('treeRoot'); - var anchors = node.getElementsByTagName('A'); - - //nothing selected? - Select the first node - if (treeSelected == null) - { - if (anchors.length > 0 && anchors[0] != null && anchors[0] != undefined) - { - el = anchors[0]; - selectAndShowNode(el); - aref = el.getAttribute('href'); - } - } - else //select the next node - { - for(var i = 0; i < anchors.length; i++) - { - el = anchors[i]; - if (findNode(el) == treeSelected) // find the current selected node & walk fwd or back - { - if (fwd) el = anchors[i+1]; - else el = anchors[i-1]; - if (el != null && el != undefined) - { - selectAndShowNode(el); - aref = el.getAttribute('href'); - } - break; - } - } - } - return aref; -} - - -function selectNode(el) -{ -// Un-selects currently selected node, if any, and selects the specified node -// - if (treeSelected != null) - { - setSubNodeClass(treeSelected, 'A', 'treeUnselected'); - } - setSubNodeClass(el, 'A', 'treeSelected'); - treeSelected = el; -} - - -function setSubNodeClass(el, nodeName, className) -{ -// Sets the specified class name on el's first child that is a nodeName element -// - var child; - for (var i=0; i < el.childNodes.length; i++) - { - child = el.childNodes[i]; - if (child.nodeName == nodeName) - { - child.className = className; - break; - } - } -} - - -function expandCollapse(el) -{ -// If source treeNode has child nodes, expand or collapse view of treeNode -// - if (el == null) - return; //Do nothing if it isn't a treeNode - - var child; - var imgEl; - for(var i=0; i < el.childNodes.length; i++) - { - child = el.childNodes[i]; - if (child.src) - { - imgEl = child; - } - else if (child.className == "treeSubnodesHidden") - { - child.className = "treeSubnodes"; - imgEl.src = "treenodeminus.gif"; - break; - } - else if (child.className == "treeSubnodes") - { - child.className = "treeSubnodesHidden"; - imgEl.src = "treenodeplus.gif"; - break; - } - } -} - - -function expandNode(el) -{ -// If source treeNode has child nodes, expand it -// - var child; - var imgEl; - for(var i=0; i < el.childNodes.length; i++) - { - child = el.childNodes[i]; - if (child.src) - { - imgEl = child; - } - if (child.className == "treeSubnodesHidden") - { - child.className = "treeSubnodes"; - imgEl.src = "treenodeminus.gif"; - break; - } - } -} - -function GetUnixPath(url) -{ - var path = url.replace(/\\/g, '/'); // DOS to Unix slash - path = path.replace(/\/\/\//, "//"); // Force 2 slashes xxx://xxx - path = path.replace(/\/\/\//, "//"); - path = path.replace(/\/\/\//, "//"); - path = path.replace(/\/\/\//, "//"); - return path; -} - - -function syncTree(href) -{ -// Selects and scrolls into view the node that references the specified URL -// - //RWC 2005-05-21 - This is the real URL base of the TOC - var gbase = GetUnixPath(location.href); - gbase = decodeURI(gbase); - gbase = gbase.substr(0, gbase.lastIndexOf('/') + 1); //trim off file name. Leave trailing / - - var loc = new String(); - loc = GetUnixPath(href); - - loc = encodeURI(loc); //encode as valid URI - //RWC 2005-05-21 - properly Scrub URL of encoding - loc = decodeURI(loc); //Converts %2520 -> %20 (under FireFox) - loc = decodeURI(loc); //Converts %20 = ' ' - - var tocEl = findHref(document.getElementById('treeRoot'), loc, gbase); - if (tocEl != null) - { - selectAndShowNode(tocEl); - } -} - -function findHref(node, href, base) -{ -// find the element with the specified href value -// - //RWC 24/3/2006: Consider any bookmark on the URL to test - var href_BaseURL = ''; - var iBookmark = href.indexOf('#'); - if (iBookmark > 0) - href_BaseURL = href.substr(0, iBookmark); - - - var el; - var anchors = node.getElementsByTagName('A'); - for (var i = 0; i < anchors.length; i++) - { - el = anchors[i]; - var aref = new String(); - aref = el.getAttribute('href'); - - if ((aref.substring(0, 7) != 'http://') - && (aref.substring(0, 8) != 'https://') - && (aref.substring(0, 7) != 'file://')) - { - aref = base + aref; - } - - aref = GetUnixPath(decodeURI(aref)); - //if (i < 5) - // alert('aref=' + aref + ', href=' + href + ', base=' + base); - - //RWC: If href has #bookmark and aref does not then compare without bookmarks - if ((href_BaseURL.length > 0) && (aref.indexOf('#') < 0)) - if (aref == href_BaseURL) - return el; - - if (aref == href) - { - return el; - } - } - return null; -} - -function selectAndShowNode(node) -{ -// Selects and scrolls into view the specified node -// - var el = findNode(node); - if (el != null) - { - selectNode(el); - do - { - expandNode(el); - el = findNode(el.parentNode); - } while ((el != null)) - - //vertical scroll element into view - var windowTop; - var windowBottom; - var treeDiv = document.getElementById('tree'); - - var ua = window.navigator.userAgent.toLowerCase(); - if ((i = ua.indexOf('msie')) != -1) - { - windowTop = node.offsetTop - treeDiv.scrollTop; - windowBottom = treeDiv.clientHeight - windowTop - node.offsetHeight; - } - else if (ua.indexOf('gecko') != -1) - { - windowTop = node.offsetTop - treeDiv.offsetTop - treeDiv.scrollTop; - windowBottom = treeDiv.clientHeight - windowTop - node.offsetHeight; - } - else if (ua.indexOf('opera') != -1) - { - windowTop = node.offsetTop - treeDiv.offsetTop - treeDiv.scrollTop; - windowBottom = treeDiv.clientHeight - windowTop - node.offsetHeight; - } - else - { - return; - } - - if (windowTop < 0) - { - treeDiv.scrollTop += windowTop - 18; - return; - } - if (windowBottom < 0) - { - treeDiv.scrollTop -= windowBottom - 18; - return; - } - } -} - - - -function GetFrameWidth() -{ - var x = 300; - if (self.innerHeight) // all except Explorer - x = self.innerWidth; - else if (document.documentElement && document.documentElement.clientHeight) // Explorer 6 Strict Mode - x = document.documentElement.clientWidth; - else if (document.body) // other Explorers - x = document.body.clientWidth; - return(x); -} - -function GetFrameHeight() -{ - var y = 400; - if (self.innerHeight) // all except Explorer - y = self.innerHeight; - else if (document.documentElement && document.documentElement.clientWidth) // Explorer 6 Strict Mode - y = document.documentElement.clientHeight; - else if (document.body) // other Explorers - y = document.body.clientHeight; - return(y); -} - -function resizeTree() -{ - var treeDiv = document.getElementById("tree"); - var DivFooter = document.getElementById("DivFooter"); - var xTop = treeDiv.offsetTop; - if ((DivFooter != null) && (DivFooter != undefined)) - xTop = xTop + DivFooter.offsetHeight; - treeDiv.style.width = GetFrameWidth(); - var HH = GetFrameHeight(); - if (HH - xTop > 0) - treeDiv.style.height = HH - xTop; -} - -// old original func -//function resizeTree() -//{ -// var treeDiv = document.getElementById('tree'); -// //treeDiv.setAttribute('style', 'width: ' + document.body.offsetWidth + 'px; height: ' + (document.body.offsetHeight - 27) + 'px;'); -// treeDiv.style.width = document.documentElement.offsetWidth; -// treeDiv.style.height = document.documentElement.offsetHeight - 27; -//} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/treenodedot.gif b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/treenodedot.gif deleted file mode 100644 index c13560333..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/treenodedot.gif and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/treenodeminus.gif b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/treenodeminus.gif deleted file mode 100644 index 1deac2fe1..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/treenodeminus.gif and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/treenodeplus.gif b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/treenodeplus.gif deleted file mode 100644 index 2d15c1417..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/help/treenodeplus.gif and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00001.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00001.html deleted file mode 100644 index 55b5a4398..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00001.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - -Requirements on range concept - - - - - - - -
-
-
Requirements on range concept
-
-
-

Class R implementing the concept of range must define:

-
    -
  • R::R( const R& );
    -
    Copy constructor
  • -
  • R::~R();
    -
    Destructor
  • -
  • bool R::is_divisible() const;
    -
    True if range can be partitioned into two subranges
  • -
  • bool R::empty() const;
    -
    True if range is empty
  • -
  • R::R( R& r, split );
    -
    Split range r into two subranges.
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00002.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00002.html deleted file mode 100644 index 97196c9e6..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00002.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - -Requirements on parallel_do body - - - - - - - -
-
-
Requirements on parallel_do body
-
-
-

Class Body implementing the concept of parallel_do body must define:

-
    -
  • B::operator()(
    -
    cv_item_type item,
    -
    parallel_do_feeder<item_type>& feeder
    -
    ) const
    -
    -
    OR
    -
    -
    B::operator()( cv_item_type& item ) const
    -
    Process item. May be invoked concurrently for the same this but different item.
  • -
  • item_type( const item_type& )
    -
    Copy a work item.
  • -
  • ~item_type()
    -
    Destroy a work item
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00003.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00003.html deleted file mode 100644 index ae3564823..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00003.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - -Requirements on parallel_for body - - - - - - - -
-
-
Requirements on parallel_for body
-
-
-

Class Body implementing the concept of parallel_for body must define:

-
    -
  • Body::Body( const Body& );
    -
    Copy constructor
  • -
  • Body::~Body();
    -
    Destructor
  • -
  • void Body::operator()( Range& r ) const;
    -
    Function call operator applying the body to range r.
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00004.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00004.html deleted file mode 100644 index 62957d929..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00004.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - -Requirements on parallel_reduce body - - - - - - - -
-
-
Requirements on parallel_reduce body
-
-
-

Class Body implementing the concept of parallel_reduce body must define:

-
    -
  • Body::Body( Body&, split );
    -
    Splitting constructor. Must be able to run concurrently with operator() and method join
  • -
  • Body::~Body();
    -
    Destructor
  • -
  • void Body::operator()( Range& r );
    -
    Function call operator applying body to range r and accumulating the result
  • -
  • void Body::join( Body& b );
    -
    Join results. The result in b should be merged into the result of this
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00005.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00005.html deleted file mode 100644 index bb7dcf97d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00005.html +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - -Requirements on parallel_reduce anonymous function objects (lambda functions) - - - - - - - -
-
-
Requirements on parallel_reduce anonymous function objects (lambda functions)
-
-
-

TO BE DOCUMENTED

-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00006.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00006.html deleted file mode 100644 index 4413dc5f3..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00006.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - -Requirements on parallel_scan body - - - - - - - -
-
-
Requirements on parallel_scan body
-
-
-

Class Body implementing the concept of parallel_scan body must define:

-
    -
  • Body::Body( Body&, split );
    -
    Splitting constructor. Split b so that this and b can accumulate separately
  • -
  • Body::~Body();
    -
    Destructor
  • -
  • void Body::operator()( const Range& r, pre_scan_tag );
    -
    Preprocess iterations for range r
  • -
  • void Body::operator()( const Range& r, final_scan_tag );
    -
    Do final processing for iterations of range r
  • -
  • void Body::reverse_join( Body& a );
    -
    Merge preprocessing state of a into this, where a was created earlier from b by b's splitting constructor
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00007.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00007.html deleted file mode 100644 index fcc6d223f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00007.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - -Requirements on iterators for parallel_sort - - - - - - - -
-
-
Requirements on iterators for parallel_sort
-
-
-

Requirements on value type T of RandomAccessIterator for parallel_sort:

-
    -
  • void swap( T& x, T& y )
    -
    Swaps x and y
  • -
  • bool Compare::operator()( const T& x, const T& y )
    -
    True if x comes before y;
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00008.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00008.html deleted file mode 100644 index 679bbb659..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00008.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - -TBB concepts - - - - - - - -
-
-
TBB concepts
-
-
-

A concept is a set of requirements to a type, which are necessary and sufficient for the type to model a particular behavior or a set of behaviors. Some concepts are specific to a particular algorithm (e.g. algorithm body), while other ones are common to several algorithms (e.g. range concept).

-

All TBB algorithms make use of different classes implementing various concepts. Implementation classes are supplied by the user as type arguments of template parameters and/or as objects passed as function call arguments. The library provides predefined implementations of some concepts (e.g. several kinds of ranges), while other ones must always be implemented by the user.

-

TBB defines a set of minimal requirements each concept must conform to. Here is the list of different concepts hyperlinked to the corresponding requirements specifications:

- -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00009.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00009.html deleted file mode 100644 index 8d1cdb174..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00009.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - -__TBB_malloc_proxy_caller Struct Reference - - - - - - - -
- -
-
__TBB_malloc_proxy_caller Struct Reference
-
-
-
The documentation for this struct was generated from the following file:
    -
  • tbbmalloc_proxy.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00010.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00010.html deleted file mode 100644 index a9913cda4..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00010.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - -tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor Class Reference - - - - - - - -
- -
-
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor Class Reference
-
-
- -

Allows write access to elements and combines data access, locking, and garbage collection. - More...

- -

#include <concurrent_hash_map.h>

-
-Inheritance diagram for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor:
-
-
- - -tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor - -
- - - - - - - - - -

-Public Types

-typedef
-concurrent_hash_map::value_type 
value_type
 Type of value.
 
- Public Types inherited from tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor
-typedef const
-concurrent_hash_map::value_type 
value_type
 Type of value.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-reference operator* () const
 Return reference to associated value in hash table.
 
-pointer operator-> () const
 Return pointer to associated value in hash table.
 
- Public Member Functions inherited from tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor
-bool empty () const
 True if result is empty.
 
-void release ()
 Set to null.
 
-const_reference operator* () const
 Return reference to associated value in hash table.
 
-const_pointer operator-> () const
 Return pointer to associated value in hash table.
 
const_accessor ()
 Create empty result.
 
~const_accessor ()
 Destroy result after releasing the underlying reference.
 
- - - - - - - - - -

-Additional Inherited Members

- Protected Member Functions inherited from tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor
-bool is_writer ()
 
- Protected Attributes inherited from tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor
-nodemy_node
 
-hashcode_t my_hash
 
-

Detailed Description

-

template<typename Key, typename T, typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
-class tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor

- -

Allows write access to elements and combines data access, locking, and garbage collection.

-

The documentation for this class was generated from the following file:
    -
  • concurrent_hash_map.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00010.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00010.png deleted file mode 100644 index 4a5d25e3f..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00010.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00011.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00011.html deleted file mode 100644 index c8a05177a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00011.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - -tbb::interface6::aggregator Class Reference - - - - - - - -
- -
-
tbb::interface6::aggregator Class Reference
-
-
- -

Basic aggregator interface. - More...

- -

#include <aggregator.h>

-
-Inheritance diagram for tbb::interface6::aggregator:
-
-
- - -tbb::interface6::aggregator_ext< internal::basic_handler > - -
- - - - - - -

-Public Member Functions

template<typename Body >
void execute (const Body &b)
 BASIC INTERFACE: Enter a function for exclusvie execution by the aggregator. More...
 
- - - - - - - - - -

-Additional Inherited Members

- Private Member Functions inherited from tbb::interface6::aggregator_ext< internal::basic_handler >
aggregator_ext (const internal::basic_handler &h)
 
void process (aggregator_operation *op)
 EXPERT INTERFACE: Enter a user-made operation into the aggregator's mailbox. More...
 
void execute_impl (aggregator_operation &op)
 
-

Detailed Description

-

Basic aggregator interface.

-

Member Function Documentation

- -
-
-
-template<typename Body >
- - - - - -
- - - - - - - - -
void tbb::interface6::aggregator::execute (const Body & b)
-
-inline
-
- -

BASIC INTERFACE: Enter a function for exclusvie execution by the aggregator.

-

The calling thread stores the function object in a basic_operation and places the operation in the aggregator's mailbox

- -
-
-
The documentation for this class was generated from the following file:
    -
  • aggregator.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00011.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00011.png deleted file mode 100644 index d78b2dbf9..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00011.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00012.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00012.html deleted file mode 100644 index 07959882c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00012.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - -tbb::interface6::aggregator_ext< handler_type > Class Template Reference - - - - - - - -
- -
-
tbb::interface6::aggregator_ext< handler_type > Class Template Reference
-
-
- -

Aggregator base class and expert interface. - More...

- -

#include <aggregator.h>

-
-Inheritance diagram for tbb::interface6::aggregator_ext< handler_type >:
-
-
- - - -
- - - - - - - -

-Public Member Functions

aggregator_ext (const handler_type &h)
 
void process (aggregator_operation *op)
 EXPERT INTERFACE: Enter a user-made operation into the aggregator's mailbox. More...
 
- - - -

-Protected Member Functions

void execute_impl (aggregator_operation &op)
 
-

Detailed Description

-

template<typename handler_type>
-class tbb::interface6::aggregator_ext< handler_type >

- -

Aggregator base class and expert interface.

-

An aggregator for collecting operations coming from multiple sources and executing them serially on a single thread.

-

Member Function Documentation

- -
-
-
-template<typename handler_type>
- - - - - -
- - - - - - - - -
void tbb::interface6::aggregator_ext< handler_type >::execute_impl (aggregator_operationop)
-
-inlineprotected
-
-

Place operation in mailbox, then either handle mailbox or wait for the operation to be completed by a different thread.

- -
-
- -
-
-
-template<typename handler_type>
- - - - - -
- - - - - - - - -
void tbb::interface6::aggregator_ext< handler_type >::process (aggregator_operationop)
-
-inline
-
- -

EXPERT INTERFACE: Enter a user-made operation into the aggregator's mailbox.

-

Details of user-made operations must be handled by user-provided handler

- -
-
-
The documentation for this class was generated from the following file:
    -
  • aggregator.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00012.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00012.png deleted file mode 100644 index 75772ae76..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00012.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00013.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00013.html deleted file mode 100644 index 3a50329ad..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00013.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - -tbb::interface6::aggregator_operation Class Reference - - - - - - - -
- -
-
tbb::interface6::aggregator_operation Class Reference
-
-
-
-Inheritance diagram for tbb::interface6::aggregator_operation:
-
-
- - -tbb::interface6::internal::basic_operation_base -tbb::interface6::internal::basic_operation< Body > - -
- - - - -

-Public Types

enum  aggregator_operation_status { agg_waiting =0, -agg_finished - }
 
- - - - - - - - - - - -

-Public Member Functions

-void start ()
 Call start before handling this operation.
 
void finish ()
 Call finish when done handling this operation. More...
 
-aggregator_operationnext ()
 
-void set_next (aggregator_operation *n)
 
- - - - -

-Friends

-template<typename handler_type >
class aggregator_ext
 
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
void tbb::interface6::aggregator_operation::finish ()
-
-inline
-
- -

Call finish when done handling this operation.

-

The operation will be released to its originating thread, and possibly deleted.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • aggregator.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00013.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00013.png deleted file mode 100644 index 70eef8354..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00013.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00014.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00014.html deleted file mode 100644 index bf6806d0e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00014.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - -tbb::aligned_space< T, N > Class Template Reference - - - - - - - -
- -
-
tbb::aligned_space< T, N > Class Template Reference
-
-
- -

Block of space aligned sufficiently to construct an array T with N elements. - More...

- -

#include <aligned_space.h>

- - - - - - - - -

-Public Member Functions

-T * begin ()
 Pointer to beginning of array.
 
-T * end ()
 Pointer to one past last element in array.
 
-

Detailed Description

-

template<typename T, size_t N>
-class tbb::aligned_space< T, N >

- -

Block of space aligned sufficiently to construct an array T with N elements.

-

The elements are not constructed or destroyed by this class.

-

The documentation for this class was generated from the following file:
    -
  • aligned_space.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00015.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00015.html deleted file mode 100644 index ee605ad72..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00015.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - -tbb::atomic< T > Struct Template Reference - - - - - - - -
- -
-
tbb::atomic< T > Struct Template Reference
-
-
- -

Primary template for atomic. - More...

- -

#include <atomic.h>

-
-Inheritance diagram for tbb::atomic< T >:
-
-
- - - -
- - - - - - - - -

-Public Member Functions

-constexpr atomic (T arg)
 
-T operator= (T rhs)
 
-atomic< T > & operator= (const atomic< T > &rhs)
 
-

Detailed Description

-

template<typename T>
-struct tbb::atomic< T >

- -

Primary template for atomic.

-

See the Reference for details.

-

The documentation for this struct was generated from the following file:
    -
  • atomic.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00015.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00015.png deleted file mode 100644 index 257e92316..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00015.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00016.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00016.html deleted file mode 100644 index abea826e8..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00016.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - -tbb::atomic< void * > Struct Template Reference - - - - - - - -
- -
-
tbb::atomic< void * > Struct Template Reference
-
-
- -

Specialization for atomic<void*>, for sake of not allowing arithmetic or operator->. - More...

- -

#include <atomic.h>

-
-Inheritance diagram for tbb::atomic< void * >:
-
-
- - - -
- - - - - - - - -

-Public Member Functions

-constexpr atomic (void *arg)
 
-void * operator= (void *rhs)
 
-atomic< void * > & operator= (const atomic< void * > &rhs)
 
-

Detailed Description

-

template<>
-struct tbb::atomic< void * >

- -

Specialization for atomic<void*>, for sake of not allowing arithmetic or operator->.

-

The documentation for this struct was generated from the following file:
    -
  • atomic.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00016.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00016.png deleted file mode 100644 index c5aaf08d4..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00016.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00017.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00017.html deleted file mode 100644 index 25f6debef..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00017.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - -tbb::bad_last_alloc Class Reference - - - - - - - -
- -
-
tbb::bad_last_alloc Class Reference
-
-
- -

Exception for concurrent containers. - More...

- -

#include <tbb_exception.h>

-
-Inheritance diagram for tbb::bad_last_alloc:
-
-
- - - -
- - - - -

-Public Member Functions

-const char * what () const throw ()
 
-

Detailed Description

-

Exception for concurrent containers.

-

The documentation for this class was generated from the following file:
    -
  • tbb_exception.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00017.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00017.png deleted file mode 100644 index 6cb758af9..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00017.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00018.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00018.html deleted file mode 100644 index 814977b58..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00018.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - -tbb::interface6::internal::basic_handler Class Reference - - - - - - -
- - - - - -
-
- -
-
tbb::interface6::internal::basic_handler Class Reference
-
-
- - - - -

-Public Member Functions

-void operator() (aggregator_operation *op_list) const
 
-
The documentation for this class was generated from the following file:
    -
  • aggregator.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00019.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00019.html deleted file mode 100644 index 2c77b970a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00019.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - -tbb::interface6::internal::basic_operation< Body > Class Template Reference - - - - - - -
- - - - - -
-
- -
-
tbb::interface6::internal::basic_operation< Body > Class Template Reference
-
-
-
-Inheritance diagram for tbb::interface6::internal::basic_operation< Body >:
-
-
- - -tbb::interface6::internal::basic_operation_base -tbb::interface6::aggregator_operation - -
- - - - -

-Public Member Functions

basic_operation (const Body &b)
 
- - - - -

-Additional Inherited Members

- Public Types inherited from tbb::interface6::aggregator_operation
enum  aggregator_operation_status { agg_waiting =0, -agg_finished - }
 
-
The documentation for this class was generated from the following file:
    -
  • aggregator.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00019.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00019.png deleted file mode 100644 index cadf33aed..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00019.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00020.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00020.html deleted file mode 100644 index 09d65204d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00020.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - -tbb::interface6::internal::basic_operation_base Class Reference - - - - - - - -
- -
-
tbb::interface6::internal::basic_operation_base Class Referenceabstract
-
-
-
-Inheritance diagram for tbb::interface6::internal::basic_operation_base:
-
-
- - -tbb::interface6::aggregator_operation -tbb::interface6::internal::basic_operation< Body > - -
- - - - -

-Friends

-class basic_handler
 
- - - - - - - - - - - - - - - -

-Additional Inherited Members

- Public Types inherited from tbb::interface6::aggregator_operation
enum  aggregator_operation_status { agg_waiting =0, -agg_finished - }
 
- Public Member Functions inherited from tbb::interface6::aggregator_operation
-void start ()
 Call start before handling this operation.
 
void finish ()
 Call finish when done handling this operation. More...
 
-aggregator_operationnext ()
 
-void set_next (aggregator_operation *n)
 
-
The documentation for this class was generated from the following file:
    -
  • aggregator.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00020.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00020.png deleted file mode 100644 index 0f94299e8..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00020.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00021.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00021.html deleted file mode 100644 index 4dbefc948..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00021.html +++ /dev/null @@ -1,275 +0,0 @@ - - - - - - -tbb::blocked_range< Value > Class Template Reference - - - - - - - -
- -
-
tbb::blocked_range< Value > Class Template Reference
-
-
- -

A range over which to iterate. - More...

- -

#include <blocked_range.h>

- - - - - - - - -

-Public Types

typedef Value const_iterator
 Type of a value. More...
 
-typedef std::size_t size_type
 Type for size of a range.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 blocked_range ()
 Construct range with default-constructed values for begin and end. More...
 
blocked_range (Value begin_, Value end_, size_type grainsize_=1)
 Construct range over half-open interval [begin,end), with the given grainsize.
 
-const_iterator begin () const
 Beginning of range.
 
-const_iterator end () const
 One past last value in range.
 
size_type size () const
 Size of the range. More...
 
-size_type grainsize () const
 The grain size for this range.
 
-bool empty () const
 True if range is empty.
 
bool is_divisible () const
 True if range is divisible. More...
 
 blocked_range (blocked_range &r, split)
 Split range. More...
 
- - - - - - - -

-Friends

-template<typename RowValue , typename ColValue >
class blocked_range2d
 
-template<typename RowValue , typename ColValue , typename PageValue >
class blocked_range3d
 
-

Detailed Description

-

template<typename Value>
-class tbb::blocked_range< Value >

- -

A range over which to iterate.

-

Member Typedef Documentation

- -
-
-
-template<typename Value>
- - - - -
typedef Value tbb::blocked_range< Value >::const_iterator
-
- -

Type of a value.

-

Called a const_iterator for sake of algorithms that need to treat a blocked_range as an STL container.

- -
-
-

Constructor & Destructor Documentation

- -
-
-
-template<typename Value>
- - - - - -
- - - - - - - -
tbb::blocked_range< Value >::blocked_range ()
-
-inline
-
- -

Construct range with default-constructed values for begin and end.

-

Requires that Value have a default constructor.

- -
-
- -
-
-
-template<typename Value>
- - - - - -
- - - - - - - - - - - - - - - - - - -
tbb::blocked_range< Value >::blocked_range (blocked_range< Value > & r,
split  
)
-
-inline
-
- -

Split range.

-

The new Range *this has the second half, the old range r has the first half. Unspecified if end()<begin() or !is_divisible().

- -
-
-

Member Function Documentation

- -
-
-
-template<typename Value>
- - - - - -
- - - - - - - -
bool tbb::blocked_range< Value >::is_divisible () const
-
-inline
-
-
- -
-
-
-template<typename Value>
- - - - - -
- - - - - - - -
size_type tbb::blocked_range< Value >::size () const
-
-inline
-
- -

Size of the range.

-

Unspecified if end()<begin().

- -

Referenced by tbb::blocked_range< I >::is_divisible().

- -
-
-
The documentation for this class was generated from the following file:
    -
  • blocked_range.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00022.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00022.html deleted file mode 100644 index 9e423a320..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00022.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - -tbb::blocked_range2d< RowValue, ColValue > Class Template Reference - - - - - - - -
- -
-
tbb::blocked_range2d< RowValue, ColValue > Class Template Reference
-
-
- -

A 2-dimensional range that models the Range concept. - More...

- -

#include <blocked_range2d.h>

- - - - - - - -

-Public Types

-typedef blocked_range< RowValue > row_range_type
 Type for size of an iteration range.
 
-typedef blocked_range< ColValue > col_range_type
 
- - - - - - - - - - - - - - - - - - - -

-Public Member Functions

blocked_range2d (RowValue row_begin, RowValue row_end, typename row_range_type::size_type row_grainsize, ColValue col_begin, ColValue col_end, typename col_range_type::size_type col_grainsize)
 
blocked_range2d (RowValue row_begin, RowValue row_end, ColValue col_begin, ColValue col_end)
 
-bool empty () const
 True if range is empty.
 
-bool is_divisible () const
 True if range is divisible into two pieces.
 
blocked_range2d (blocked_range2d &r, split)
 
-const row_range_typerows () const
 The rows of the iteration space.
 
-const col_range_typecols () const
 The columns of the iteration space.
 
-

Detailed Description

-

template<typename RowValue, typename ColValue = RowValue>
-class tbb::blocked_range2d< RowValue, ColValue >

- -

A 2-dimensional range that models the Range concept.

-

The documentation for this class was generated from the following file:
    -
  • blocked_range2d.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00023.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00023.html deleted file mode 100644 index 67dd32e8c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00023.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - -tbb::blocked_range3d< PageValue, RowValue, ColValue > Class Template Reference - - - - - - - -
- -
-
tbb::blocked_range3d< PageValue, RowValue, ColValue > Class Template Reference
-
-
- -

A 3-dimensional range that models the Range concept. - More...

- -

#include <blocked_range3d.h>

- - - - - - - - - -

-Public Types

-typedef blocked_range< PageValue > page_range_type
 Type for size of an iteration range.
 
-typedef blocked_range< RowValue > row_range_type
 
-typedef blocked_range< ColValue > col_range_type
 
- - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

blocked_range3d (PageValue page_begin, PageValue page_end, RowValue row_begin, RowValue row_end, ColValue col_begin, ColValue col_end)
 
blocked_range3d (PageValue page_begin, PageValue page_end, typename page_range_type::size_type page_grainsize, RowValue row_begin, RowValue row_end, typename row_range_type::size_type row_grainsize, ColValue col_begin, ColValue col_end, typename col_range_type::size_type col_grainsize)
 
-bool empty () const
 True if range is empty.
 
-bool is_divisible () const
 True if range is divisible into two pieces.
 
blocked_range3d (blocked_range3d &r, split)
 
-const page_range_typepages () const
 The pages of the iteration space.
 
-const row_range_typerows () const
 The rows of the iteration space.
 
-const col_range_typecols () const
 The columns of the iteration space.
 
-

Detailed Description

-

template<typename PageValue, typename RowValue = PageValue, typename ColValue = RowValue>
-class tbb::blocked_range3d< PageValue, RowValue, ColValue >

- -

A 3-dimensional range that models the Range concept.

-

The documentation for this class was generated from the following file:
    -
  • blocked_range3d.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00024.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00024.html deleted file mode 100644 index 65b54ff3f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00024.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - -tbb::flow::interface7::internal::broadcast_cache< T, M > Class Template Reference - - - - - - -
- - - - - -
-
-
-
tbb::flow::interface7::internal::broadcast_cache< T, M > Class Template Reference
-
-
-
The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00025.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00025.html deleted file mode 100644 index bb8b3df2f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00025.html +++ /dev/null @@ -1,220 +0,0 @@ - - - - - - -tbb::flow::interface7::broadcast_node< T > Class Template Reference - - - - - - - -
- -
-
tbb::flow::interface7::broadcast_node< T > Class Template Reference
-
-
- -

Forwards messages of type T to all successors. - More...

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface7::broadcast_node< T >:
-
-
- - -tbb::flow::interface7::graph_node -tbb::flow::interface7::receiver< T > -tbb::flow::interface7::sender< T > - -
- - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
- Public Types inherited from tbb::flow::interface7::receiver< T >
-typedef T input_type
 The input type of this receiver.
 
-typedef sender< T > predecessor_type
 The predecessor type for this node.
 
- Public Types inherited from tbb::flow::interface7::sender< T >
-typedef T output_type
 The output type of this sender.
 
-typedef receiver< T > successor_type
 The successor type for this node.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

broadcast_node (graph &g)
 
broadcast_node (const broadcast_node &src)
 
-void set_name (const char *name)
 
-virtual bool register_successor (receiver< T > &r)
 Adds a successor.
 
-virtual bool remove_successor (receiver< T > &r)
 Removes s as a successor.
 
- Public Member Functions inherited from tbb::flow::interface7::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface7::receiver< T >
-virtual ~receiver ()
 Destructor.
 
-bool try_put (const T &t)
 Put an item to the receiver.
 
-virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
-virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
- Public Member Functions inherited from tbb::flow::interface7::sender< T >
-virtual bool try_get (T &)
 Request an item from the sender.
 
-virtual bool try_reserve (T &)
 Reserves an item in the sender.
 
-virtual bool try_release ()
 Releases the reserved item.
 
-virtual bool try_consume ()
 Consumes the reserved item.
 
- - - - - - - - - - - -

-Protected Member Functions

-task * try_put_task (const T &t)
 build a task to run the successor if possible. Default is old behavior.
 
-void reset ()
 
-void reset_receiver ()
 
- Protected Member Functions inherited from tbb::flow::interface7::receiver< T >
-virtual bool is_continue_receiver ()
 
- - - - - - - - - - -

-Friends

-template<typename R , typename B >
class run_and_put_task
 
-template<typename X , typename Y >
class internal::broadcast_cache
 
-template<typename X , typename Y >
class internal::round_robin_cache
 
- - - - - - - - -

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface7::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
-

Detailed Description

-

template<typename T>
-class tbb::flow::interface7::broadcast_node< T >

- -

Forwards messages of type T to all successors.

-

The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00025.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00025.png deleted file mode 100644 index 1ccd735f5..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00025.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00026.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00026.html deleted file mode 100644 index 6c07f2300..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00026.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - -tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor Class Reference - - - - - - - -
- -
-
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor Class Reference
-
-
- -

bucket accessor is to find, rehash, acquire a lock, and access a bucket - More...

- -

#include <concurrent_hash_map.h>

-
-Inheritance diagram for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor:
-
-
- - - -
- - - - - - - - - - - - - -

-Public Member Functions

bucket_accessor (concurrent_hash_map *base, const hashcode_t h, bool writer=false)
 
-void acquire (concurrent_hash_map *base, const hashcode_t h, bool writer=false)
 find a bucket by masked hashcode, optionally rehash, and acquire the lock
 
-bool is_writer ()
 check whether bucket is locked for write
 
-bucket * operator() ()
 get bucket pointer
 
-

Detailed Description

-

template<typename Key, typename T, typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
-class tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor

- -

bucket accessor is to find, rehash, acquire a lock, and access a bucket

-

The documentation for this class was generated from the following file:
    -
  • concurrent_hash_map.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00026.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00026.png deleted file mode 100644 index 9dea0c02f..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00026.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00027.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00027.html deleted file mode 100644 index 1ebc40364..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00027.html +++ /dev/null @@ -1,502 +0,0 @@ - - - - - - -tbb::flow::interface7::buffer_node< T, A > Class Template Reference - - - - - - - -
- -
-
tbb::flow::interface7::buffer_node< T, A > Class Template Reference
-
-
- -

Forwards messages in arbitrary order. - More...

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface7::buffer_node< T, A >:
-
-
- - -tbb::flow::interface7::graph_node -tbb::flow::interface7::receiver< T > -tbb::flow::interface7::sender< T > -tbb::flow::interface7::priority_queue_node< T, Compare, A > -tbb::flow::interface7::queue_node< T, A > -tbb::flow::interface7::sequencer_node< T, A > - -
- - - - -

-Classes

class  buffer_operation
 
- - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
-typedef buffer_node< T, A > my_class
 
- Public Types inherited from tbb::flow::interface7::receiver< T >
-typedef T input_type
 The input type of this receiver.
 
-typedef sender< T > predecessor_type
 The predecessor type for this node.
 
- Public Types inherited from tbb::flow::interface7::sender< T >
-typedef T output_type
 The output type of this sender.
 
-typedef receiver< T > successor_type
 The successor type for this node.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

buffer_node (graph &g)
 Constructor.
 
buffer_node (const buffer_node &src)
 Copy constructor.
 
-void set_name (const char *name)
 
bool register_successor (receiver< output_type > &r)
 Adds a new successor. More...
 
bool remove_successor (receiver< output_type > &r)
 Removes a successor. More...
 
bool try_get (T &v)
 Request an item from the buffer_node. More...
 
bool try_reserve (T &v)
 Reserves an item. More...
 
bool try_release ()
 Release a reserved item. More...
 
bool try_consume ()
 Consumes a reserved item. More...
 
- Public Member Functions inherited from tbb::flow::interface7::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface7::receiver< T >
-virtual ~receiver ()
 Destructor.
 
-bool try_put (const T &t)
 Put an item to the receiver.
 
-virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
-virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
- - - - - - - - - -

-Protected Types

enum  op_type {
-  reg_succ, -rem_succ, -req_item, -res_item, -
-  rel_res, -con_res, -put_item, -try_fwd_task -
- }
 
enum  op_stat { WAIT =0, -SUCCEEDED, -FAILED - }
 
-typedef size_t size_type
 
-typedef
-internal::aggregating_functor
-< my_class, buffer_operation
my_handler
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Protected Member Functions

-virtual void handle_operations (buffer_operation *op_list)
 
-task * grab_forwarding_task (buffer_operation &op_data)
 
-bool enqueue_forwarding_task (buffer_operation &op_data)
 
-virtual task * forward_task ()
 This is executed by an enqueued task, the "forwarder".
 
-virtual void internal_reg_succ (buffer_operation *op)
 Register successor.
 
-virtual void internal_rem_succ (buffer_operation *op)
 Remove successor.
 
-virtual void internal_forward_task (buffer_operation *op)
 Tries to forward valid items to successors.
 
-virtual void internal_push (buffer_operation *op)
 
-virtual void internal_pop (buffer_operation *op)
 
-virtual void internal_reserve (buffer_operation *op)
 
-virtual void internal_consume (buffer_operation *op)
 
-virtual void internal_release (buffer_operation *op)
 
-task * try_put_task (const T &t)
 receive an item, return a task *if possible
 
-void reset ()
 
-void reset_receiver ()
 
- Protected Member Functions inherited from tbb::flow::interface7::receiver< T >
-virtual bool is_continue_receiver ()
 
- - - - - - - - - - - - - - -

-Protected Attributes

-internal::round_robin_cache< T,
-null_rw_mutex
my_successors
 
-bool forwarder_busy
 
-internal::aggregator
-< my_handler, buffer_operation
my_aggregator
 
- Protected Attributes inherited from tbb::flow::interface7::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
- - - - - - - - - - - - - - -

-Friends

-class internal::forward_task_bypass< buffer_node< T, A > >
 
-class internal::aggregating_functor< my_class, buffer_operation >
 
-template<typename R , typename B >
class run_and_put_task
 
-template<typename X , typename Y >
class internal::broadcast_cache
 
-template<typename X , typename Y >
class internal::round_robin_cache
 
-

Detailed Description

-

template<typename T, typename A = cache_aligned_allocator<T>>
-class tbb::flow::interface7::buffer_node< T, A >

- -

Forwards messages in arbitrary order.

-

Member Function Documentation

- -
-
-
-template<typename T, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
bool tbb::flow::interface7::buffer_node< T, A >::register_successor (receiver< output_type > & r)
-
-inlinevirtual
-
- -

Adds a new successor.

-

Adds successor r to the list of successors; may forward tasks.

- -

Implements tbb::flow::interface7::sender< T >.

- -
-
- -
-
-
-template<typename T, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
bool tbb::flow::interface7::buffer_node< T, A >::remove_successor (receiver< output_type > & r)
-
-inlinevirtual
-
- -

Removes a successor.

-

Removes successor r from the list of successors. It also calls r.remove_predecessor(*this) to remove this node as a predecessor.

- -

Implements tbb::flow::interface7::sender< T >.

- -
-
- -
-
-
-template<typename T, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - -
bool tbb::flow::interface7::buffer_node< T, A >::try_consume ()
-
-inlinevirtual
-
- -

Consumes a reserved item.

-

true = item is removed from sender and reservation removed

- -

Reimplemented from tbb::flow::interface7::sender< T >.

- -
-
- -
-
-
-template<typename T, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
bool tbb::flow::interface7::buffer_node< T, A >::try_get (T & v)
-
-inlinevirtual
-
- -

Request an item from the buffer_node.

-

true = v contains the returned item
- false = no item has been returned

- -

Reimplemented from tbb::flow::interface7::sender< T >.

- -
-
- -
-
-
-template<typename T, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - -
bool tbb::flow::interface7::buffer_node< T, A >::try_release ()
-
-inlinevirtual
-
- -

Release a reserved item.

-

true = item has been released and so remains in sender

- -

Reimplemented from tbb::flow::interface7::sender< T >.

- -
-
- -
-
-
-template<typename T, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
bool tbb::flow::interface7::buffer_node< T, A >::try_reserve (T & v)
-
-inlinevirtual
-
- -

Reserves an item.

-

false = no item can be reserved
- true = an item is reserved

- -

Reimplemented from tbb::flow::interface7::sender< T >.

- -
-
-
The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00027.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00027.png deleted file mode 100644 index f834ddad0..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00027.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00028.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00028.html deleted file mode 100644 index 9ab93b875..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00028.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - -tbb::flow::interface7::buffer_node< T, A >::buffer_operation Class Reference - - - - - - - -
- -
-
tbb::flow::interface7::buffer_node< T, A >::buffer_operation Class Reference
-
-
-
-Inheritance diagram for tbb::flow::interface7::buffer_node< T, A >::buffer_operation:
-
-
- - - -
- - - - - - -

-Public Member Functions

buffer_operation (const T &e, op_type t)
 
buffer_operation (op_type t)
 
- - - - - - - - - -

-Public Attributes

-char type
 
-T * elem
 
-task * ltask
 
-successor_typer
 
-
The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00028.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00028.png deleted file mode 100644 index 742b4d19e..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00028.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00029.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00029.html deleted file mode 100644 index 8f3af5fbc..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00029.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - -tbb::cache_aligned_allocator< T > Class Template Reference - - - - - - - -
- -
-
tbb::cache_aligned_allocator< T > Class Template Reference
-
-
- -

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. - More...

- -

#include <cache_aligned_allocator.h>

- - - - -

-Classes

struct  rebind
 
- - - - - - - - - - - - - - - -

-Public Types

-typedef
-internal::allocator_type< T >
-::value_type 
value_type
 
-typedef value_type * pointer
 
-typedef const value_type * const_pointer
 
-typedef value_type & reference
 
-typedef const value_type & const_reference
 
-typedef size_t size_type
 
-typedef ptrdiff_t difference_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

cache_aligned_allocator (const cache_aligned_allocator &) throw ()
 
-template<typename U >
 cache_aligned_allocator (const cache_aligned_allocator< U > &) throw ()
 
-pointer address (reference x) const
 
-const_pointer address (const_reference x) const
 
-pointer allocate (size_type n, const void *hint=0)
 Allocate space for n objects, starting on a cache/sector line.
 
-void deallocate (pointer p, size_type)
 Free block of memory that starts on a cache line.
 
-size_type max_size () const throw ()
 Largest value for which method allocate might succeed.
 
-template<typename U , typename... Args>
void construct (U *p, Args &&...args)
 Copy-construct value at location pointed to by p.
 
-void construct (pointer p, const value_type &value)
 
-void destroy (pointer p)
 Destroy value at location pointed to by p.
 
-

Detailed Description

-

template<typename T>
-class tbb::cache_aligned_allocator< T >

- -

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5.

-

The members are ordered the same way they are in section 20.4.1 of the ISO C++ standard.

-

The documentation for this class was generated from the following file:
    -
  • cache_aligned_allocator.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00030.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00030.html deleted file mode 100644 index 58bfb6bda..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00030.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - -tbb::cache_aligned_allocator< void > Class Template Reference - - - - - - - -
- -
-
tbb::cache_aligned_allocator< void > Class Template Reference
-
-
- -

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. - More...

- -

#include <cache_aligned_allocator.h>

- - - - -

-Classes

struct  rebind
 
- - - - - - - -

-Public Types

-typedef void * pointer
 
-typedef const void * const_pointer
 
-typedef void value_type
 
-

Detailed Description

-

template<>
-class tbb::cache_aligned_allocator< void >

- -

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1.

-

The documentation for this class was generated from the following file:
    -
  • cache_aligned_allocator.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00031.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00031.html deleted file mode 100644 index 9916d5486..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00031.html +++ /dev/null @@ -1,214 +0,0 @@ - - - - - - -tbb::captured_exception Class Reference - - - - - - - -
- -
-
tbb::captured_exception Class Reference
-
-
- -

This class is used by TBB to propagate information about unhandled exceptions into the root thread. - More...

- -

#include <tbb_exception.h>

-
-Inheritance diagram for tbb::captured_exception:
-
-
- - -tbb::tbb_exception - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

captured_exception (const captured_exception &src)
 
captured_exception (const char *name_, const char *info)
 
-captured_exceptionoperator= (const captured_exception &src)
 
captured_exception
-*__TBB_EXPORTED_METHOD 
move () throw ()
 Creates and returns pointer to the deep copy of this exception object. More...
 
void __TBB_EXPORTED_METHOD destroy () throw ()
 Destroys objects created by the move() method. More...
 
void throw_self ()
 Throws this exception object. More...
 
-const char *__TBB_EXPORTED_METHOD name () const throw ()
 Returns RTTI name of the originally intercepted exception.
 
-const char *__TBB_EXPORTED_METHOD what () const throw ()
 Returns the result of originally intercepted exception's what() method.
 
-void __TBB_EXPORTED_METHOD set (const char *name, const char *info) throw ()
 
-void __TBB_EXPORTED_METHOD clear () throw ()
 
- Public Member Functions inherited from tbb::tbb_exception
void operator delete (void *p)
 
-

Detailed Description

-

This class is used by TBB to propagate information about unhandled exceptions into the root thread.

-

Exception of this type is thrown by TBB in the root thread (thread that started a parallel algorithm ) if an unhandled exception was intercepted during the algorithm execution in one of the workers.

-
See Also
tbb::tbb_exception
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - - - - - - - -
void __TBB_EXPORTED_METHOD tbb::captured_exception::destroy ()
throw (
)
-
-virtual
-
- -

Destroys objects created by the move() method.

-

Frees memory and calls destructor for this exception object. Can and must be used only on objects created by the move method.

- -

Implements tbb::tbb_exception.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - -
captured_exception* __TBB_EXPORTED_METHOD tbb::captured_exception::move ()
throw (
)
-
-virtual
-
- -

Creates and returns pointer to the deep copy of this exception object.

-

Move semantics is allowed.

- -

Implements tbb::tbb_exception.

- -
-
- -
-
- - - - - -
- - - - - - - -
void tbb::captured_exception::throw_self ()
-
-inlinevirtual
-
- -

Throws this exception object.

-

Make sure that if you have several levels of derivation from this interface you implement or override this method on the most derived level. The implementation is as simple as "throw *this;". Failure to do this will result in exception of a base class type being thrown.

- -

Implements tbb::tbb_exception.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • tbb_exception.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00031.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00031.png deleted file mode 100644 index 131abf604..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00031.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00032.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00032.html deleted file mode 100644 index 87f4cd816..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00032.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - -tbb::combinable< T > Class Template Reference - - - - - - - -
- -
-
tbb::combinable< T > Class Template Reference
-
-
- -

Thread-local storage with optional reduction. - More...

- -

#include <combinable.h>

- - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-template<typename finit >
 combinable (finit _finit)
 
~combinable ()
 destructor
 
combinable (const combinable &other)
 
-combinableoperator= (const combinable &other)
 
-void clear ()
 
-T & local ()
 
-T & local (bool &exists)
 
-template<typename combine_func_t >
combine (combine_func_t f_combine)
 
-template<typename combine_func_t >
void combine_each (combine_func_t f_combine)
 
-

Detailed Description

-

template<typename T>
-class tbb::combinable< T >

- -

Thread-local storage with optional reduction.

-

The documentation for this class was generated from the following file:
    -
  • combinable.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00033.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00033.html deleted file mode 100644 index 00e700c7a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00033.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - -tbb::interface6::internal::concrete_filter< T, U, Body > Class Template Reference - - - - - - -
- - - - - -
-
-
-
tbb::interface6::internal::concrete_filter< T, U, Body > Class Template Reference
-
-
-
The documentation for this class was generated from the following file:
    -
  • pipeline.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00034.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00034.html deleted file mode 100644 index 7d035ff30..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00034.html +++ /dev/null @@ -1,365 +0,0 @@ - - - - - - -tbb::concurrent_bounded_queue< T, A > Class Template Reference - - - - - - - -
- -
-
tbb::concurrent_bounded_queue< T, A > Class Template Reference
-
-
- -

A high-performance thread-safe blocking concurrent bounded queue. - More...

- -

#include <concurrent_queue.h>

-
-Inheritance diagram for tbb::concurrent_bounded_queue< T, A >:
-
-
- - -tbb::deprecated::concurrent_queue< T, A > - -
- - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef T value_type
 Element type in the queue.
 
-typedef A allocator_type
 Allocator type.
 
-typedef T & reference
 Reference type.
 
-typedef const T & const_reference
 Const reference type.
 
typedef std::ptrdiff_t size_type
 Integral type for representing size of the queue. More...
 
-typedef std::ptrdiff_t difference_type
 Difference type for iterator.
 
-typedef
-internal::concurrent_queue_iterator
-< concurrent_bounded_queue, T > 
iterator
 
-typedef
-internal::concurrent_queue_iterator
-< concurrent_bounded_queue,
-const T > 
const_iterator
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

concurrent_bounded_queue (const allocator_type &a=allocator_type())
 Construct empty queue.
 
concurrent_bounded_queue (const concurrent_bounded_queue &src, const allocator_type &a=allocator_type())
 Copy constructor.
 
-template<typename InputIterator >
 concurrent_bounded_queue (InputIterator begin, InputIterator end, const allocator_type &a=allocator_type())
 [begin,end) constructor
 
~concurrent_bounded_queue ()
 Destroy queue.
 
-void push (const T &source)
 Enqueue an item at tail of queue.
 
void pop (T &destination)
 Dequeue item from head of queue. More...
 
-void abort ()
 Abort all pending queue operations.
 
bool try_push (const T &source)
 Enqueue an item at tail of queue if queue is not already full. More...
 
bool try_pop (T &destination)
 Attempt to dequeue an item from head of queue. More...
 
size_type size () const
 Return number of pushes minus number of pops. More...
 
-bool empty () const
 Equivalent to size()<=0.
 
-size_type capacity () const
 Maximum number of allowed elements.
 
void set_capacity (size_type new_capacity)
 Set the capacity. More...
 
-allocator_type get_allocator () const
 return allocator object
 
-void clear ()
 clear the queue. not thread-safe.
 
-iterator unsafe_begin ()
 
-iterator unsafe_end ()
 
-const_iterator unsafe_begin () const
 
-const_iterator unsafe_end () const
 
- - - - -

-Friends

-template<typename Container , typename Value >
class internal::concurrent_queue_iterator
 
-

Detailed Description

-

template<typename T, class A = cache_aligned_allocator<T>>
-class tbb::concurrent_bounded_queue< T, A >

- -

A high-performance thread-safe blocking concurrent bounded queue.

-

This is the pre-PPL TBB concurrent queue which supports boundedness and blocking semantics. Note that method names agree with the PPL-style concurrent queue. Multiple threads may each push and pop concurrently. Assignment construction is not allowed.

-

Member Typedef Documentation

- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - -
typedef std::ptrdiff_t tbb::concurrent_bounded_queue< T, A >::size_type
-
- -

Integral type for representing size of the queue.

-

Note that the size_type is a signed integral type. This is because the size can be negative if there are pending pops without corresponding pushes.

- -
-
-

Member Function Documentation

- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
void tbb::concurrent_bounded_queue< T, A >::pop (T & destination)
-
-inline
-
- -

Dequeue item from head of queue.

-

Block until an item becomes available, and then dequeue it.

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
void tbb::concurrent_bounded_queue< T, A >::set_capacity (size_type new_capacity)
-
-inline
-
- -

Set the capacity.

-

Setting the capacity to 0 causes subsequent try_push operations to always fail, and subsequent push operations to block forever.

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - -
size_type tbb::concurrent_bounded_queue< T, A >::size () const
-
-inline
-
- -

Return number of pushes minus number of pops.

-

Note that the result can be negative if there are pops waiting for the corresponding pushes. The result can also exceed capacity() if there are push operations in flight.

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
bool tbb::concurrent_bounded_queue< T, A >::try_pop (T & destination)
-
-inline
-
- -

Attempt to dequeue an item from head of queue.

-

Does not wait for item to become available. Returns true if successful; false otherwise.

- -

Referenced by tbb::deprecated::concurrent_queue< T, A >::pop_if_present().

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
bool tbb::concurrent_bounded_queue< T, A >::try_push (const T & source)
-
-inline
-
- -

Enqueue an item at tail of queue if queue is not already full.

-

Does not wait for queue to become not full. Returns true if item is pushed; false if queue was already full.

- -

Referenced by tbb::deprecated::concurrent_queue< T, A >::push_if_not_full().

- -
-
-
The documentation for this class was generated from the following file:
    -
  • concurrent_queue.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00034.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00034.png deleted file mode 100644 index 690944f32..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00034.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00035.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00035.html deleted file mode 100644 index 22c9604b7..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00035.html +++ /dev/null @@ -1,785 +0,0 @@ - - - - - - -tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A > Class Template Reference - - - - - - - -
- -
-
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A > Class Template Reference
-
-
- -

Unordered map from Key to T. - More...

- -

#include <concurrent_hash_map.h>

-
-Inheritance diagram for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >:
-
-
- - - -
- - - - - - - - - - - - - -

-Classes

class  accessor
 Allows write access to elements and combines data access, locking, and garbage collection. More...
 
class  bucket_accessor
 bucket accessor is to find, rehash, acquire a lock, and access a bucket More...
 
class  const_accessor
 Combines data access, locking, and garbage collection. More...
 
struct  node
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef Key key_type
 
-typedef T mapped_type
 
-typedef std::pair< const Key, T > value_type
 
-typedef hash_map_base::size_type size_type
 
-typedef ptrdiff_t difference_type
 
-typedef value_type * pointer
 
-typedef const value_type * const_pointer
 
-typedef value_type & reference
 
-typedef const value_type & const_reference
 
-typedef
-internal::hash_map_iterator
-< concurrent_hash_map,
-value_type > 
iterator
 
-typedef
-internal::hash_map_iterator
-< concurrent_hash_map, const
-value_type > 
const_iterator
 
-typedef
-internal::hash_map_range
-< iterator > 
range_type
 
-typedef
-internal::hash_map_range
-< const_iterator > 
const_range_type
 
-typedef Allocator allocator_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

concurrent_hash_map (const allocator_type &a=allocator_type())
 Construct empty table.
 
concurrent_hash_map (size_type n, const allocator_type &a=allocator_type())
 Construct empty table with n preallocated buckets. This number serves also as initial concurrency level.
 
concurrent_hash_map (const concurrent_hash_map &table, const allocator_type &a=allocator_type())
 Copy constructor.
 
-template<typename I >
 concurrent_hash_map (I first, I last, const allocator_type &a=allocator_type())
 Construction with copying iteration range and given allocator instance.
 
concurrent_hash_map (const std::initializer_list< value_type > &il, const allocator_type &a=allocator_type())
 Construct empty table with n preallocated buckets. This number serves also as initial concurrency level.
 
-concurrent_hash_mapoperator= (const concurrent_hash_map &table)
 Assignment.
 
-concurrent_hash_mapoperator= (const std::initializer_list< value_type > &il)
 Assignment.
 
void rehash (size_type n=0)
 Rehashes and optionally resizes the whole table. More...
 
-void clear ()
 Clear table.
 
~concurrent_hash_map ()
 Clear table and destroy it.
 
-range_type range (size_type grainsize=1)
 
-const_range_type range (size_type grainsize=1) const
 
-iterator begin ()
 
-iterator end ()
 
-const_iterator begin () const
 
-const_iterator end () const
 
-std::pair< iterator, iterator > equal_range (const Key &key)
 
-std::pair< const_iterator,
-const_iterator > 
equal_range (const Key &key) const
 
-size_type size () const
 Number of items in table.
 
-bool empty () const
 True if size()==0.
 
-size_type max_size () const
 Upper bound on size.
 
-size_type bucket_count () const
 Returns the current number of buckets.
 
-allocator_type get_allocator () const
 return allocator object
 
-void swap (concurrent_hash_map &table)
 swap two instances. Iterators are invalidated
 
-size_type count (const Key &key) const
 Return count of items (0 or 1)
 
bool find (const_accessor &result, const Key &key) const
 Find item and acquire a read lock on the item. More...
 
bool find (accessor &result, const Key &key)
 Find item and acquire a write lock on the item. More...
 
bool insert (const_accessor &result, const Key &key)
 Insert item (if not already present) and acquire a read lock on the item. More...
 
bool insert (accessor &result, const Key &key)
 Insert item (if not already present) and acquire a write lock on the item. More...
 
bool insert (const_accessor &result, const value_type &value)
 Insert item by copying if there is no such key present already and acquire a read lock on the item. More...
 
bool insert (accessor &result, const value_type &value)
 Insert item by copying if there is no such key present already and acquire a write lock on the item. More...
 
bool insert (const value_type &value)
 Insert item by copying if there is no such key present already. More...
 
-template<typename I >
void insert (I first, I last)
 Insert range [first, last)
 
bool erase (const Key &key)
 Erase item. More...
 
bool erase (const_accessor &item_accessor)
 Erase item by const_accessor. More...
 
bool erase (accessor &item_accessor)
 Erase item by accessor. More...
 
- - - -

-Protected Types

-typedef Allocator::template
-rebind< node >::other 
node_allocator_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - -

-Protected Member Functions

-void delete_node (node_base *n)
 
-nodesearch_bucket (const key_type &key, bucket *b) const
 
-void rehash_bucket (bucket *b_new, const hashcode_t h)
 
-bool lookup (bool op_insert, const Key &key, const T *t, const_accessor *result, bool write)
 Insert or find item and optionally acquire a lock on the item.
 
-bool exclude (const_accessor &item_accessor)
 delete item by accessor
 
-template<typename I >
std::pair< I, I > internal_equal_range (const Key &key, I end) const
 Returns an iterator for an item defined by the key, or for the next item after it (if upper==true)
 
-void internal_copy (const concurrent_hash_map &source)
 Copy "source" to *this, where *this must start out empty.
 
-template<typename I >
void internal_copy (I first, I last)
 
const_pointer internal_fast_find (const Key &key) const
 Fast find when no concurrent erasure is used. For internal use inside TBB only! More...
 
- - - - - -

-Protected Attributes

-node_allocator_type my_allocator
 
-HashCompare my_hash_compare
 
- - - - - - - - - -

-Friends

-template<typename Container , typename Value >
class internal::hash_map_iterator
 
-template<typename I >
class internal::hash_map_range
 
-class const_accessor
 
-

Detailed Description

-

template<typename Key, typename T, typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
-class tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >

- -

Unordered map from Key to T.

-
concurrent_hash_map is associative container with concurrent access.
-
Compatibility
The class meets all Container Requirements from C++ Standard (See ISO/IEC 14882:2003(E), clause 23.1).
-
Exception Safety
    -
  • Hash function is not permitted to throw an exception. User-defined types Key and T are forbidden from throwing an exception in destructors.
  • -
  • If exception happens during insert() operations, it has no effect (unless exception raised by HashCompare::hash() function during grow_segment).
  • -
  • If exception happens during operator=() operation, the container can have a part of source items, and methods size() and empty() can return wrong results.
  • -
-
-
Changes since TBB 2.1
    -
  • Replaced internal algorithm and data structure. Patent is pending.
  • -
  • Added buckets number argument for constructor
  • -
-
-
Changes since TBB 2.0
    -
  • Fixed exception-safety
  • -
  • Added template argument for allocator
  • -
  • Added allocator argument in constructors
  • -
  • Added constructor from a range of iterators
  • -
  • Added several new overloaded insert() methods
  • -
  • Added get_allocator()
  • -
  • Added swap()
  • -
  • Added count()
  • -
  • Added overloaded erase(accessor &) and erase(const_accessor&)
  • -
  • Added equal_range() [const]
  • -
  • Added [const_]pointer, [const_]reference, and allocator_type types
  • -
  • Added global functions: operator==(), operator!=(), and swap()
  • -
-
-

Member Function Documentation

- -
-
-
-template<typename Key , typename T , typename HashCompare , typename A >
- - - - - - - - -
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::erase (const Key & key)
-
- -

Erase item.

-

Return true if item was erased by particularly this call.

- -

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor::is_writer().

- -
-
- -
-
-
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
- - - - - -
- - - - - - - - -
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::erase (const_accessoritem_accessor)
-
-inline
-
- -

Erase item by const_accessor.

-

Return true if item was erased by particularly this call.

- -
-
- -
-
-
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
- - - - - -
- - - - - - - - -
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::erase (accessoritem_accessor)
-
-inline
-
- -

Erase item by accessor.

-

Return true if item was erased by particularly this call.

- -
-
- -
-
-
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::find (const_accessorresult,
const Key & key 
) const
-
-inline
-
- -

Find item and acquire a read lock on the item.

-

Return true if item is found, false otherwise.

- -

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor::release().

- -
-
- -
-
-
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::find (accessorresult,
const Key & key 
)
-
-inline
-
- -

Find item and acquire a write lock on the item.

-

Return true if item is found, false otherwise.

- -

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor::release().

- -
-
- -
-
-
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert (const_accessorresult,
const Key & key 
)
-
-inline
-
- -

Insert item (if not already present) and acquire a read lock on the item.

-

Returns true if item is new.

- -

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor::release().

- -
-
- -
-
-
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert (accessorresult,
const Key & key 
)
-
-inline
-
- -

Insert item (if not already present) and acquire a write lock on the item.

-

Returns true if item is new.

- -

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor::release().

- -
-
- -
-
-
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert (const_accessorresult,
const value_type & value 
)
-
-inline
-
- -

Insert item by copying if there is no such key present already and acquire a read lock on the item.

-

Returns true if item is new.

- -

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor::release().

- -
-
- -
-
-
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert (accessorresult,
const value_type & value 
)
-
-inline
-
- -

Insert item by copying if there is no such key present already and acquire a write lock on the item.

-

Returns true if item is new.

- -

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor::release().

- -
-
- -
-
-
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
- - - - - -
- - - - - - - - -
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert (const value_type & value)
-
-inline
-
- -

Insert item by copying if there is no such key present already.

-

Returns true if item is inserted.

- -
-
- -
-
-
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
- - - - - -
- - - - - - - - -
const_pointer tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::internal_fast_find (const Key & key) const
-
-inlineprotected
-
- -

Fast find when no concurrent erasure is used. For internal use inside TBB only!

-

Return pointer to item with given key, or NULL if no such item exists. Must not be called concurrently with erasure operations.

- -
-
- -
-
-
-template<typename Key , typename T , typename HashCompare , typename A >
- - - - - - - - -
void tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::rehash (size_type n = 0)
-
- -

Rehashes and optionally resizes the whole table.

-

Useful to optimize performance before or after concurrent operations. Also enables using of find() and count() concurrent methods in serial context.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • concurrent_hash_map.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00035.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00035.png deleted file mode 100644 index 3f0a8f264..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00035.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00036.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00036.html deleted file mode 100644 index 53789c762..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00036.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - -tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type > Class Template Reference - - - - - - - -
- -
-
tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type > Class Template Reference
-
-
-
-Inheritance diagram for tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >:
-
-
- - - -
- - - - -

-Public Types

-typedef handle_object handle
 
- - - - - -

-Public Member Functions

concurrent_lru_cache (value_function_type f, std::size_t number_of_lru_history_items)
 
-handle_object operator[] (key_type k)
 
- - - -

-Friends

-class tbb::internal::aggregating_functor< self_type, aggregated_operation_type >
 
-
The documentation for this class was generated from the following file:
    -
  • concurrent_lru_cache.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00036.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00036.png deleted file mode 100644 index 856b3afbc..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00036.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00037.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00037.html deleted file mode 100644 index b4200207c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00037.html +++ /dev/null @@ -1,433 +0,0 @@ - - - - - - -tbb::interface5::concurrent_priority_queue< T, Compare, A > Class Template Reference - - - - - - - -
- -
-
tbb::interface5::concurrent_priority_queue< T, Compare, A > Class Template Reference
-
-
- -

Concurrent priority queue. - More...

- -

#include <concurrent_priority_queue.h>

- - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef T value_type
 Element type in the queue.
 
-typedef T & reference
 Reference type.
 
-typedef const T & const_reference
 Const reference type.
 
-typedef size_t size_type
 Integral type for representing size of the queue.
 
-typedef ptrdiff_t difference_type
 Difference type for iterator.
 
-typedef A allocator_type
 Allocator type.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

concurrent_priority_queue (const allocator_type &a=allocator_type())
 Constructs a new concurrent_priority_queue with default capacity.
 
concurrent_priority_queue (size_type init_capacity, const allocator_type &a=allocator_type())
 Constructs a new concurrent_priority_queue with init_sz capacity.
 
-template<typename InputIterator >
 concurrent_priority_queue (InputIterator begin, InputIterator end, const allocator_type &a=allocator_type())
 [begin,end) constructor
 
concurrent_priority_queue (std::initializer_list< T > const &init_list, const allocator_type &a=allocator_type())
 Constructor from std::initializer_list.
 
 concurrent_priority_queue (const concurrent_priority_queue &src)
 Copy constructor. More...
 
 concurrent_priority_queue (const concurrent_priority_queue &src, const allocator_type &a)
 Copy constructor with specific allocator. More...
 
concurrent_priority_queueoperator= (const concurrent_priority_queue &src)
 Assignment operator. More...
 
-template<typename InputIterator >
void assign (InputIterator begin, InputIterator end)
 Assign the queue from [begin,end) range, not thread-safe.
 
-void assign (std::initializer_list< T > const &il)
 Assign the queue from std::initializer_list, not thread-safe.
 
-concurrent_priority_queueoperator= (std::initializer_list< T > const &il)
 Assign from std::initializer_list, not thread-safe.
 
bool empty () const
 Returns true if empty, false otherwise. More...
 
size_type size () const
 Returns the current number of elements contained in the queue. More...
 
void push (const_reference elem)
 Pushes elem onto the queue, increasing capacity of queue if necessary. More...
 
bool try_pop (reference elem)
 Gets a reference to and removes highest priority element. More...
 
void clear ()
 Clear the queue; not thread-safe. More...
 
void swap (concurrent_priority_queue &q)
 Swap this queue with another; not thread-safe. More...
 
-allocator_type get_allocator () const
 Return allocator object.
 
-

Detailed Description

-

template<typename T, typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
-class tbb::interface5::concurrent_priority_queue< T, Compare, A >

- -

Concurrent priority queue.

-

Constructor & Destructor Documentation

- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
tbb::interface5::concurrent_priority_queue< T, Compare, A >::concurrent_priority_queue (const concurrent_priority_queue< T, Compare, A > & src)
-
-inlineexplicit
-
- -

Copy constructor.

-

This operation is unsafe if there are pending concurrent operations on the src queue.

- -
-
- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - - - - - - - - - - - -
tbb::interface5::concurrent_priority_queue< T, Compare, A >::concurrent_priority_queue (const concurrent_priority_queue< T, Compare, A > & src,
const allocator_typea 
)
-
-inline
-
- -

Copy constructor with specific allocator.

-

This operation is unsafe if there are pending concurrent operations on the src queue.

- -
-
-

Member Function Documentation

- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - -
void tbb::interface5::concurrent_priority_queue< T, Compare, A >::clear ()
-
-inline
-
- -

Clear the queue; not thread-safe.

-

This operation is unsafe if there are pending concurrent operations on the queue. Resets size, effectively emptying queue; does not free space. May not clear elements added in pending operations.

- -
-
- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - -
bool tbb::interface5::concurrent_priority_queue< T, Compare, A >::empty () const
-
-inline
-
- -

Returns true if empty, false otherwise.

-

Returned value may not reflect results of pending operations. This operation reads shared data and will trigger a race condition.

- -
-
- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
concurrent_priority_queue& tbb::interface5::concurrent_priority_queue< T, Compare, A >::operator= (const concurrent_priority_queue< T, Compare, A > & src)
-
-inline
-
- -

Assignment operator.

-

This operation is unsafe if there are pending concurrent operations on the src queue.

- -
-
- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
void tbb::interface5::concurrent_priority_queue< T, Compare, A >::push (const_reference elem)
-
-inline
-
- -

Pushes elem onto the queue, increasing capacity of queue if necessary.

-

This operation can be safely used concurrently with other push, try_pop or reserve operations.

- -
-
- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - -
size_type tbb::interface5::concurrent_priority_queue< T, Compare, A >::size () const
-
-inline
-
- -

Returns the current number of elements contained in the queue.

-

Returned value may not reflect results of pending operations. This operation reads shared data and will trigger a race condition.

- -
-
- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
void tbb::interface5::concurrent_priority_queue< T, Compare, A >::swap (concurrent_priority_queue< T, Compare, A > & q)
-
-inline
-
- -

Swap this queue with another; not thread-safe.

-

This operation is unsafe if there are pending concurrent operations on the queue.

- -
-
- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
bool tbb::interface5::concurrent_priority_queue< T, Compare, A >::try_pop (reference elem)
-
-inline
-
- -

Gets a reference to and removes highest priority element.

-

If a highest priority element was found, sets elem and returns true, otherwise returns false. This operation can be safely used concurrently with other push, try_pop or reserve operations.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • concurrent_priority_queue.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00038.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00038.html deleted file mode 100644 index 650fe5741..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00038.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - - - -tbb::strict_ppl::concurrent_queue< T, A > Class Template Reference - - - - - - - -
- -
-
tbb::strict_ppl::concurrent_queue< T, A > Class Template Reference
-
-
- -

A high-performance thread-safe non-blocking concurrent queue. - More...

- -

#include <concurrent_queue.h>

-
-Inheritance diagram for tbb::strict_ppl::concurrent_queue< T, A >:
-
-
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef T value_type
 Element type in the queue.
 
-typedef T & reference
 Reference type.
 
-typedef const T & const_reference
 Const reference type.
 
-typedef size_t size_type
 Integral type for representing size of the queue.
 
-typedef ptrdiff_t difference_type
 Difference type for iterator.
 
-typedef A allocator_type
 Allocator type.
 
-typedef
-internal::concurrent_queue_iterator
-< concurrent_queue, T > 
iterator
 
-typedef
-internal::concurrent_queue_iterator
-< concurrent_queue, const T > 
const_iterator
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

concurrent_queue (const allocator_type &a=allocator_type())
 Construct empty queue.
 
-template<typename InputIterator >
 concurrent_queue (InputIterator begin, InputIterator end, const allocator_type &a=allocator_type())
 [begin,end) constructor
 
concurrent_queue (const concurrent_queue &src, const allocator_type &a=allocator_type())
 Copy constructor.
 
~concurrent_queue ()
 Destroy queue.
 
-void push (const T &source)
 Enqueue an item at tail of queue.
 
bool try_pop (T &result)
 Attempt to dequeue an item from head of queue. More...
 
-size_type unsafe_size () const
 Return the number of items in the queue; thread unsafe.
 
-bool empty () const
 Equivalent to size()==0.
 
-void clear ()
 Clear the queue. not thread-safe.
 
-allocator_type get_allocator () const
 Return allocator object.
 
-iterator unsafe_begin ()
 
-iterator unsafe_end ()
 
-const_iterator unsafe_begin () const
 
-const_iterator unsafe_end () const
 
- - - - -

-Friends

-template<typename Container , typename Value >
class internal::concurrent_queue_iterator
 
-

Detailed Description

-

template<typename T, typename A = cache_aligned_allocator<T>>
-class tbb::strict_ppl::concurrent_queue< T, A >

- -

A high-performance thread-safe non-blocking concurrent queue.

-

Multiple threads may each push and pop concurrently. Assignment construction is not allowed.

-

Member Function Documentation

- -
-
-
-template<typename T , typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
bool tbb::strict_ppl::concurrent_queue< T, A >::try_pop (T & result)
-
-inline
-
- -

Attempt to dequeue an item from head of queue.

-

Does not wait for item to become available. Returns true if successful; false otherwise.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • concurrent_queue.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00038.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00038.png deleted file mode 100644 index c7a9a4dd8..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00038.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00039.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00039.html deleted file mode 100644 index 77008eb6e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00039.html +++ /dev/null @@ -1,304 +0,0 @@ - - - - - - -tbb::deprecated::concurrent_queue< T, A > Class Template Reference - - - - - - - -
- -
-
tbb::deprecated::concurrent_queue< T, A > Class Template Reference
-
-
- -

A high-performance thread-safe blocking concurrent bounded queue. - More...

- -

#include <concurrent_queue.h>

-
-Inheritance diagram for tbb::deprecated::concurrent_queue< T, A >:
-
-
- - -tbb::concurrent_bounded_queue< T, A > - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef
-concurrent_bounded_queue< T, A >
-::iterator 
iterator
 
-typedef
-concurrent_bounded_queue< T, A >
-::const_iterator 
const_iterator
 
- Public Types inherited from tbb::concurrent_bounded_queue< T, A >
-typedef T value_type
 Element type in the queue.
 
-typedef A allocator_type
 Allocator type.
 
-typedef T & reference
 Reference type.
 
-typedef const T & const_reference
 Const reference type.
 
typedef std::ptrdiff_t size_type
 Integral type for representing size of the queue. More...
 
-typedef std::ptrdiff_t difference_type
 Difference type for iterator.
 
-typedef
-internal::concurrent_queue_iterator
-< concurrent_bounded_queue, T > 
iterator
 
-typedef
-internal::concurrent_queue_iterator
-< concurrent_bounded_queue,
-const T > 
const_iterator
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

concurrent_queue (const A &a=A())
 Construct empty queue.
 
concurrent_queue (const concurrent_queue &src, const A &a=A())
 Copy constructor.
 
-template<typename InputIterator >
 concurrent_queue (InputIterator b, InputIterator e, const A &a=A())
 [begin,end) constructor
 
bool push_if_not_full (const T &source)
 Enqueue an item at tail of queue if queue is not already full. More...
 
bool pop_if_present (T &destination)
 Attempt to dequeue an item from head of queue. More...
 
-iterator begin ()
 
-iterator end ()
 
-const_iterator begin () const
 
-const_iterator end () const
 
- Public Member Functions inherited from tbb::concurrent_bounded_queue< T, A >
concurrent_bounded_queue (const allocator_type &a=allocator_type())
 Construct empty queue.
 
concurrent_bounded_queue (const concurrent_bounded_queue &src, const allocator_type &a=allocator_type())
 Copy constructor.
 
-template<typename InputIterator >
 concurrent_bounded_queue (InputIterator begin, InputIterator end, const allocator_type &a=allocator_type())
 [begin,end) constructor
 
~concurrent_bounded_queue ()
 Destroy queue.
 
-void push (const T &source)
 Enqueue an item at tail of queue.
 
void pop (T &destination)
 Dequeue item from head of queue. More...
 
-void abort ()
 Abort all pending queue operations.
 
bool try_push (const T &source)
 Enqueue an item at tail of queue if queue is not already full. More...
 
bool try_pop (T &destination)
 Attempt to dequeue an item from head of queue. More...
 
size_type size () const
 Return number of pushes minus number of pops. More...
 
-bool empty () const
 Equivalent to size()<=0.
 
-size_type capacity () const
 Maximum number of allowed elements.
 
void set_capacity (size_type new_capacity)
 Set the capacity. More...
 
-allocator_type get_allocator () const
 return allocator object
 
-void clear ()
 clear the queue. not thread-safe.
 
-iterator unsafe_begin ()
 
-iterator unsafe_end ()
 
-const_iterator unsafe_begin () const
 
-const_iterator unsafe_end () const
 
- - - - -

-Friends

-template<typename Container , typename Value >
class internal::concurrent_queue_iterator
 
-

Detailed Description

-

template<typename T, class A = cache_aligned_allocator<T>>
-class tbb::deprecated::concurrent_queue< T, A >

- -

A high-performance thread-safe blocking concurrent bounded queue.

-

This is the pre-PPL TBB concurrent queue which support boundedness and blocking semantics. Note that method names agree with the PPL-style concurrent queue. Multiple threads may each push and pop concurrently. Assignment construction is not allowed.

-

Member Function Documentation

- -
-
-
-template<typename T , class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
bool tbb::deprecated::concurrent_queue< T, A >::pop_if_present (T & destination)
-
-inline
-
- -

Attempt to dequeue an item from head of queue.

-

Does not wait for item to become available. Returns true if successful; false otherwise.

-
Deprecated:
Use try_pop()
- -

References tbb::concurrent_bounded_queue< T, A >::try_pop().

- -
-
- -
-
-
-template<typename T , class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
bool tbb::deprecated::concurrent_queue< T, A >::push_if_not_full (const T & source)
-
-inline
-
- -

Enqueue an item at tail of queue if queue is not already full.

-

Does not wait for queue to become not full. Returns true if item is pushed; false if queue was already full.

- -

References tbb::concurrent_bounded_queue< T, A >::try_push().

- -
-
-
The documentation for this class was generated from the following file:
    -
  • concurrent_queue.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00039.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00039.png deleted file mode 100644 index 7228766e0..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00039.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00040.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00040.html deleted file mode 100644 index 00adb8e17..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00040.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - -tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator > Class Template Reference - - - - - - - -
- -
-
tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator > Class Template Reference
-
-
-
-Inheritance diagram for tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >:
-
-
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef Key key_type
 
-typedef base_type::value_type value_type
 
-typedef T mapped_type
 
-typedef Hasher hasher
 
-typedef Key_equality key_equal
 
-typedef hash_compare key_compare
 
-typedef base_type::allocator_type allocator_type
 
-typedef base_type::pointer pointer
 
-typedef base_type::const_pointer const_pointer
 
-typedef base_type::reference reference
 
-typedef base_type::const_reference const_reference
 
-typedef base_type::size_type size_type
 
-typedef base_type::difference_type difference_type
 
-typedef base_type::iterator iterator
 
-typedef base_type::const_iterator const_iterator
 
-typedef base_type::iterator local_iterator
 
-typedef base_type::const_iterator const_local_iterator
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

concurrent_unordered_map (size_type n_of_buckets=8, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_map (const Allocator &a)
 
-template<typename Iterator >
 concurrent_unordered_map (Iterator first, Iterator last, size_type n_of_buckets=8, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_map (std::initializer_list< value_type > const &il, size_type n_of_buckets=8, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 Constructor from initializer_list.
 
concurrent_unordered_map (const concurrent_unordered_map &table)
 
concurrent_unordered_map (const concurrent_unordered_map &table, const Allocator &a)
 
-concurrent_unordered_mapoperator= (const concurrent_unordered_map &table)
 
-concurrent_unordered_mapoperator= (std::initializer_list< value_type > const &il)
 assignment operator from initializer_list
 
-iterator unsafe_erase (const_iterator where)
 
-size_type unsafe_erase (const key_type &key)
 
-iterator unsafe_erase (const_iterator first, const_iterator last)
 
-void swap (concurrent_unordered_map &table)
 
-hasher hash_function () const
 
-key_equal key_eq () const
 
-mapped_type & operator[] (const key_type &key)
 
-mapped_type & at (const key_type &key)
 
-const mapped_type & at (const key_type &key) const
 
-
The documentation for this class was generated from the following file:
    -
  • concurrent_unordered_map.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00040.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00040.png deleted file mode 100644 index 0e3c40436..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00040.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00041.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00041.html deleted file mode 100644 index 1a8d63cbf..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00041.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - -tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping > Class Template Reference - - - - - - - -
- -
-
tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping > Class Template Reference
-
-
- - - - -

-Classes

class  value_compare
 
- - - - - - - - - - - -

-Protected Types

enum  { allow_multimapping = Allow_multimapping - }
 
-typedef std::pair< const Key, T > value_type
 
-typedef Key key_type
 
-typedef Hash_compare hash_compare
 
-typedef Allocator::template
-rebind< value_type >::other 
allocator_type
 
- - - -

-Protected Member Functions

concurrent_unordered_map_traits (const hash_compare &hc)
 
- - - - -

-Static Protected Member Functions

-template<class Type1 , class Type2 >
static const Key & get_key (const std::pair< Type1, Type2 > &value)
 
- - - -

-Protected Attributes

-hash_compare my_hash_compare
 
-
The documentation for this class was generated from the following file:
    -
  • concurrent_unordered_map.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00042.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00042.html deleted file mode 100644 index 4c2fb401d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00042.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - -tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator > Class Template Reference - - - - - - - -
- -
-
tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator > Class Template Reference
-
-
-
-Inheritance diagram for tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >:
-
-
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef Key key_type
 
-typedef base_type::value_type value_type
 
-typedef T mapped_type
 
-typedef Hasher hasher
 
-typedef Key_equality key_equal
 
-typedef hash_compare key_compare
 
-typedef base_type::allocator_type allocator_type
 
-typedef base_type::pointer pointer
 
-typedef base_type::const_pointer const_pointer
 
-typedef base_type::reference reference
 
-typedef base_type::const_reference const_reference
 
-typedef base_type::size_type size_type
 
-typedef base_type::difference_type difference_type
 
-typedef base_type::iterator iterator
 
-typedef base_type::const_iterator const_iterator
 
-typedef base_type::iterator local_iterator
 
-typedef base_type::const_iterator const_local_iterator
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

concurrent_unordered_multimap (size_type n_of_buckets=8, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_multimap (const Allocator &a)
 
-template<typename Iterator >
 concurrent_unordered_multimap (Iterator first, Iterator last, size_type n_of_buckets=8, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_multimap (std::initializer_list< value_type > const &il, size_type n_of_buckets=8, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 Constructor from initializer_list.
 
concurrent_unordered_multimap (const concurrent_unordered_multimap &table)
 
concurrent_unordered_multimap (const concurrent_unordered_multimap &table, const Allocator &a)
 
-concurrent_unordered_multimapoperator= (const concurrent_unordered_multimap &table)
 
-concurrent_unordered_multimapoperator= (std::initializer_list< value_type > const &il)
 assignment operator from initializer_list
 
-iterator unsafe_erase (const_iterator where)
 
-size_type unsafe_erase (const key_type &key)
 
-iterator unsafe_erase (const_iterator first, const_iterator last)
 
-void swap (concurrent_unordered_multimap &table)
 
-hasher hash_function () const
 
-key_equal key_eq () const
 
-
The documentation for this class was generated from the following file:
    -
  • concurrent_unordered_map.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00042.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00042.png deleted file mode 100644 index 6fa3b58c9..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00042.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00043.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00043.html deleted file mode 100644 index bdc3a47fb..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00043.html +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - -tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator > Class Template Reference - - - - - - - -
- -
-
tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator > Class Template Reference
-
-
-
-Inheritance diagram for tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >:
-
-
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef internal::hash_compare
-< Key, Hasher, Key_equality > 
hash_compare
 
-typedef
-concurrent_unordered_set_traits
-< Key, hash_compare, Allocator,
-true > 
traits_type
 
-typedef
-internal::concurrent_unordered_base
-< traits_type
base_type
 
-typedef Key key_type
 
-typedef base_type::value_type value_type
 
-typedef Key mapped_type
 
-typedef Hasher hasher
 
-typedef Key_equality key_equal
 
-typedef hash_compare key_compare
 
-typedef base_type::allocator_type allocator_type
 
-typedef base_type::pointer pointer
 
-typedef base_type::const_pointer const_pointer
 
-typedef base_type::reference reference
 
-typedef base_type::const_reference const_reference
 
-typedef base_type::size_type size_type
 
-typedef base_type::difference_type difference_type
 
-typedef base_type::iterator iterator
 
-typedef base_type::const_iterator const_iterator
 
-typedef base_type::iterator local_iterator
 
-typedef base_type::const_iterator const_local_iterator
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

concurrent_unordered_multiset (size_type n_of_buckets=8, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_multiset (const Allocator &a)
 
-template<typename Iterator >
 concurrent_unordered_multiset (Iterator first, Iterator last, size_type n_of_buckets=8, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_multiset (std::initializer_list< value_type > const &il, size_type n_of_buckets=8, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type())
 Constructor from initializer_list.
 
concurrent_unordered_multiset (const concurrent_unordered_multiset &table)
 
concurrent_unordered_multiset (const concurrent_unordered_multiset &table, const Allocator &a)
 
-concurrent_unordered_multisetoperator= (const concurrent_unordered_multiset &table)
 
-concurrent_unordered_multisetoperator= (std::initializer_list< value_type > const &il)
 assignment operator from initializer_list
 
-std::pair< iterator, bool > insert (const value_type &value)
 
-iterator insert (const_iterator where, const value_type &value)
 
-template<class Iterator >
void insert (Iterator first, Iterator last)
 
-iterator unsafe_erase (const_iterator where)
 
-size_type unsafe_erase (const key_type &key)
 
-iterator unsafe_erase (const_iterator first, const_iterator last)
 
-void swap (concurrent_unordered_multiset &table)
 
-hasher hash_function () const
 
-key_equal key_eq () const
 
-
The documentation for this class was generated from the following file:
    -
  • concurrent_unordered_set.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00043.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00043.png deleted file mode 100644 index 3ef6d1904..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00043.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00044.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00044.html deleted file mode 100644 index a67cbdc9d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00044.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - -tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator > Class Template Reference - - - - - - - -
- -
-
tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator > Class Template Reference
-
-
-
-Inheritance diagram for tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >:
-
-
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef Key key_type
 
-typedef base_type::value_type value_type
 
-typedef Key mapped_type
 
-typedef Hasher hasher
 
-typedef Key_equality key_equal
 
-typedef hash_compare key_compare
 
-typedef base_type::allocator_type allocator_type
 
-typedef base_type::pointer pointer
 
-typedef base_type::const_pointer const_pointer
 
-typedef base_type::reference reference
 
-typedef base_type::const_reference const_reference
 
-typedef base_type::size_type size_type
 
-typedef base_type::difference_type difference_type
 
-typedef base_type::iterator iterator
 
-typedef base_type::const_iterator const_iterator
 
-typedef base_type::iterator local_iterator
 
-typedef base_type::const_iterator const_local_iterator
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

concurrent_unordered_set (size_type n_of_buckets=8, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_set (const Allocator &a)
 
-template<typename Iterator >
 concurrent_unordered_set (Iterator first, Iterator last, size_type n_of_buckets=8, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_set (std::initializer_list< value_type > const &il, size_type n_of_buckets=8, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type())
 Constructor from initializer_list.
 
concurrent_unordered_set (const concurrent_unordered_set &table)
 
concurrent_unordered_set (const concurrent_unordered_set &table, const Allocator &a)
 
-concurrent_unordered_setoperator= (const concurrent_unordered_set &table)
 
-concurrent_unordered_setoperator= (std::initializer_list< value_type > const &il)
 assignment operator from initializer_list
 
-iterator unsafe_erase (const_iterator where)
 
-size_type unsafe_erase (const key_type &key)
 
-iterator unsafe_erase (const_iterator first, const_iterator last)
 
-void swap (concurrent_unordered_set &table)
 
-hasher hash_function () const
 
-key_equal key_eq () const
 
-
The documentation for this class was generated from the following file:
    -
  • concurrent_unordered_set.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00044.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00044.png deleted file mode 100644 index 9f9a09925..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00044.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00045.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00045.html deleted file mode 100644 index 0819ac763..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00045.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - -tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping > Class Template Reference - - - - - - - -
- -
-
tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping > Class Template Reference
-
-
- - - - - - - - - - - - - - -

-Protected Types

enum  { allow_multimapping = Allow_multimapping - }
 
-typedef Key value_type
 
-typedef Key key_type
 
-typedef Hash_compare hash_compare
 
-typedef Allocator::template
-rebind< value_type >::other 
allocator_type
 
-typedef hash_compare value_compare
 
- - - -

-Protected Member Functions

concurrent_unordered_set_traits (const hash_compare &hc)
 
- - - -

-Static Protected Member Functions

-static const Key & get_key (const value_type &value)
 
- - - -

-Protected Attributes

-hash_compare my_hash_compare
 
-
The documentation for this class was generated from the following file:
    -
  • concurrent_unordered_set.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00046.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00046.html deleted file mode 100644 index 1de1a05b2..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00046.html +++ /dev/null @@ -1,719 +0,0 @@ - - - - - - -tbb::concurrent_vector< T, A > Class Template Reference - - - - - - - -
- -
-
tbb::concurrent_vector< T, A > Class Template Reference
-
-
- -

Concurrent vector container. - More...

- -

#include <concurrent_vector.h>

-
-Inheritance diagram for tbb::concurrent_vector< T, A >:
-
-
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef
-internal::concurrent_vector_base_v3::size_type 
size_type
 
-typedef
-internal::allocator_base< T, A >
-::allocator_type 
allocator_type
 
-typedef T value_type
 
-typedef ptrdiff_t difference_type
 
-typedef T & reference
 
-typedef const T & const_reference
 
-typedef T * pointer
 
-typedef const T * const_pointer
 
-typedef
-internal::vector_iterator
-< concurrent_vector, T > 
iterator
 
-typedef
-internal::vector_iterator
-< concurrent_vector, const T > 
const_iterator
 
-typedef std::reverse_iterator
-< iterator > 
reverse_iterator
 
-typedef std::reverse_iterator
-< const_iterator > 
const_reverse_iterator
 
-typedef std::reverse_iterator
-< iterator, T, T &, T * > 
reverse_iterator
 
-typedef std::reverse_iterator
-< const_iterator, T, const T
-&, const T * > 
const_reverse_iterator
 
-typedef generic_range_type
-< iterator > 
range_type
 
-typedef generic_range_type
-< const_iterator > 
const_range_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

concurrent_vector (const allocator_type &a=allocator_type())
 Construct empty vector.
 
concurrent_vector (std::initializer_list< T > init_list, const allocator_type &a=allocator_type())
 Constructor from initializer_list.
 
concurrent_vector (const concurrent_vector &vector, const allocator_type &a=allocator_type())
 Copying constructor.
 
-template<class M >
 concurrent_vector (const concurrent_vector< T, M > &vector, const allocator_type &a=allocator_type())
 Copying constructor for vector with different allocator type.
 
concurrent_vector (size_type n)
 Construction with initial size specified by argument n.
 
concurrent_vector (size_type n, const_reference t, const allocator_type &a=allocator_type())
 Construction with initial size specified by argument n, initialization by copying of t, and given allocator instance.
 
-template<class I >
 concurrent_vector (I first, I last, const allocator_type &a=allocator_type())
 Construction with copying iteration range and given allocator instance.
 
-concurrent_vectoroperator= (const concurrent_vector &vector)
 Assignment.
 
-template<class M >
concurrent_vectoroperator= (const concurrent_vector< T, M > &vector)
 Assignment for vector with different allocator type.
 
-concurrent_vectoroperator= (const std::initializer_list< T > &init_list)
 Assignment for initializer_list.
 
size_type grow_by (size_type delta)
 Grow by "delta" elements. More...
 
iterator grow_by (size_type delta)
 
size_type grow_by (size_type delta, const_reference t)
 Grow by "delta" elements using copying constructor. More...
 
iterator grow_by (size_type delta, const_reference t)
 
void grow_to_at_least (size_type n)
 Append minimal sequence of elements such that size()>=n. More...
 
iterator grow_to_at_least (size_type n)
 
size_type push_back (const_reference item) iterator push_back(const _reference item)
 Push item. More...
 
reference operator[] (size_type index)
 Get reference to element at given index. More...
 
-const_reference operator[] (size_type index) const
 Get const reference to element at given index.
 
-reference at (size_type index)
 Get reference to element at given index. Throws exceptions on errors.
 
-const_reference at (size_type index) const
 Get const reference to element at given index. Throws exceptions on errors.
 
-range_type range (size_t grainsize=1)
 Get range for iterating with parallel algorithms.
 
-const_range_type range (size_t grainsize=1) const
 Get const range for iterating with parallel algorithms.
 
-size_type size () const
 Return size of vector. It may include elements under construction.
 
-bool empty () const
 Return false if vector is not empty or has elements under construction at least.
 
-size_type capacity () const
 Maximum size to which array can grow without allocating more memory. Concurrent allocations are not included in the value.
 
void reserve (size_type n)
 Allocate enough space to grow to size n without having to allocate more memory later. More...
 
-void resize (size_type n)
 Resize the vector. Not thread-safe.
 
-void resize (size_type n, const_reference t)
 Resize the vector, copy t for new elements. Not thread-safe.
 
-void compact ()
 An alias for shrink_to_fit()
 
-void shrink_to_fit ()
 Optimize memory usage and fragmentation.
 
-size_type max_size () const
 Upper bound on argument to reserve.
 
-iterator begin ()
 start iterator
 
-iterator end ()
 end iterator
 
-const_iterator begin () const
 start const iterator
 
-const_iterator end () const
 end const iterator
 
-const_iterator cbegin () const
 start const iterator
 
-const_iterator cend () const
 end const iterator
 
-reverse_iterator rbegin ()
 reverse start iterator
 
-reverse_iterator rend ()
 reverse end iterator
 
-const_reverse_iterator rbegin () const
 reverse start const iterator
 
-const_reverse_iterator rend () const
 reverse end const iterator
 
-const_reverse_iterator crbegin () const
 reverse start const iterator
 
-const_reverse_iterator crend () const
 reverse end const iterator
 
-reference front ()
 the first item
 
-const_reference front () const
 the first item const
 
-reference back ()
 the last item
 
-const_reference back () const
 the last item const
 
-allocator_type get_allocator () const
 return allocator object
 
-void assign (size_type n, const_reference t)
 assign n items by copying t item
 
-template<class I >
void assign (I first, I last)
 assign range [first, last)
 
-void assign (std::initializer_list< T > init_list)
 assigns an initializer list
 
-void swap (concurrent_vector &vector)
 swap two instances
 
void clear ()
 Clear container while keeping memory allocated. More...
 
~concurrent_vector ()
 Clear and destroy vector.
 
-const
-internal::concurrent_vector_base_v3 & 
internal_vector_base () const
 
- - - - -

-Friends

-template<typename C , typename U >
class internal::vector_iterator
 
-

Detailed Description

-

template<typename T, class A = cache_aligned_allocator<T>>
-class tbb::concurrent_vector< T, A >

- -

Concurrent vector container.

-
concurrent_vector is a container having the following main properties:
-- It provides random indexed access to its elements. The index of the first element is 0.
-- It ensures safe concurrent growing its size (different threads can safely append new elements).
-- Adding new elements does not invalidate existing iterators and does not change indices of existing items.
-
Compatibility
The class meets all Container Requirements and Reversible Container Requirements from C++ Standard (See ISO/IEC 14882:2003(E), clause 23.1). But it doesn't meet Sequence Requirements due to absence of insert() and erase() methods.
-
Exception Safety
Methods working with memory allocation and/or new elements construction can throw an exception if allocator fails to allocate memory or element's default constructor throws one. Concurrent vector's element of type T must conform to the following requirements:
    -
  • Throwing an exception is forbidden for destructor of T.
  • -
  • Default constructor of T must not throw an exception OR its non-virtual destructor must safely work when its object memory is zero-initialized.
  • -
-Otherwise, the program's behavior is undefined.
-
If an exception happens inside growth or assignment operation, an instance of the vector becomes invalid unless it is stated otherwise in the method documentation. Invalid state means:
    -
  • There are no guarantees that all items were initialized by a constructor. The rest of items is zero-filled, including item where exception happens.
  • -
  • An invalid vector instance cannot be repaired; it is unable to grow anymore.
  • -
  • Size and capacity reported by the vector are incorrect, and calculated as if the failed operation were successful.
  • -
  • Attempt to access not allocated elements using operator[] or iterators results in access violation or segmentation fault exception, and in case of using at() method a C++ exception is thrown.
  • -
-If a concurrent grow operation successfully completes, all the elements it has added to the vector will remain valid and accessible even if one of subsequent grow operations fails.
-
Fragmentation
Unlike an STL vector, a concurrent_vector does not move existing elements if it needs to allocate more memory. The container is divided into a series of contiguous arrays of elements. The first reservation, growth, or assignment operation determines the size of the first array. Using small number of elements as initial size incurs fragmentation that may increase element access time. Internal layout can be optimized by method compact() that merges several smaller arrays into one solid.
-
Changes since TBB 2.1
    -
  • Fixed guarantees of concurrent_vector::size() and grow_to_at_least() methods to assure elements are allocated.
  • -
  • Methods end()/rbegin()/back() are partly thread-safe since they use size() to get the end of vector
  • -
  • Added resize() methods (not thread-safe)
  • -
  • Added cbegin/cend/crbegin/crend methods
  • -
  • Changed return type of methods grow* and push_back to iterator
  • -
-
-
Changes since TBB 2.0
    -
  • Implemented exception-safety guarantees
  • -
  • Added template argument for allocator
  • -
  • Added allocator argument in constructors
  • -
  • Faster index calculation
  • -
  • First growth call specifies a number of segments to be merged in the first allocation.
  • -
  • Fixed memory blow up for swarm of vector's instances of small size
  • -
  • Added grow_by(size_type n, const_reference t) growth using copying constructor to init new items.
  • -
  • Added STL-like constructors.
  • -
  • Added operators ==, < and derivatives
  • -
  • Added at() method, approved for using after an exception was thrown inside the vector
  • -
  • Added get_allocator() method.
  • -
  • Added assign() methods
  • -
  • Added compact() method to defragment first segments
  • -
  • Added swap() method
  • -
  • range() defaults on grainsize = 1 supporting auto grainsize algorithms.
  • -
-
-

Member Function Documentation

- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - -
void tbb::concurrent_vector< T, A >::clear ()
-
-inline
-
- -

Clear container while keeping memory allocated.

-

To free up the memory, use in conjunction with method compact(). Not thread safe

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
size_type tbb::concurrent_vector< T, A >::grow_by (size_type delta)
-
-inline
-
- -

Grow by "delta" elements.

-

Returns old size.

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
iterator tbb::concurrent_vector< T, A >::grow_by (size_type delta)
-
-inline
-
-

Returns iterator pointing to the first new element.

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - - - - - - - - - - - -
size_type tbb::concurrent_vector< T, A >::grow_by (size_type delta,
const_reference t 
)
-
-inline
-
- -

Grow by "delta" elements using copying constructor.

-

Returns old size.

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - - - - - - - - - - - -
iterator tbb::concurrent_vector< T, A >::grow_by (size_type delta,
const_reference t 
)
-
-inline
-
-

Returns iterator pointing to the first new element.

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
void tbb::concurrent_vector< T, A >::grow_to_at_least (size_type n)
-
-inline
-
- -

Append minimal sequence of elements such that size()>=n.

-

The new elements are default constructed. Blocks until all elements in range [0..n) are allocated. May return while other elements are being constructed by other threads.

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
iterator tbb::concurrent_vector< T, A >::grow_to_at_least (size_type n)
-
-inline
-
-

The new elements are default constructed. Blocks until all elements in range [0..n) are allocated. May return while other elements are being constructed by other threads. Returns iterator that points to beginning of appended sequence. If no elements were appended, returns iterator pointing to nth element.

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
reference tbb::concurrent_vector< T, A >::operator[] (size_type index)
-
-inline
-
- -

Get reference to element at given index.

-

This method is thread-safe for concurrent reads, and also while growing the vector, as long as the calling thread has checked that index<size().

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
size_type tbb::concurrent_vector< T, A >::push_back (const_reference item) const
-
-inline
-
- -

Push item.

-

Returns iterator pointing to the new element.

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
void tbb::concurrent_vector< T, A >::reserve (size_type n)
-
-inline
-
- -

Allocate enough space to grow to size n without having to allocate more memory later.

-

Like most of the methods provided for STL compatibility, this method is not thread safe. The capacity afterwards may be bigger than the requested reservation.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • concurrent_vector.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00046.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00046.png deleted file mode 100644 index 4ffff4fb1..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00046.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00047.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00047.html deleted file mode 100644 index 908e9af58..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00047.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - -tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor Class Reference - - - - - - - -
- -
-
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor Class Reference
-
-
- -

Combines data access, locking, and garbage collection. - More...

- -

#include <concurrent_hash_map.h>

-
-Inheritance diagram for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor:
-
-
- - -tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor - -
- - - - - -

-Public Types

-typedef const
-concurrent_hash_map::value_type 
value_type
 Type of value.
 
- - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-bool empty () const
 True if result is empty.
 
-void release ()
 Set to null.
 
-const_reference operator* () const
 Return reference to associated value in hash table.
 
-const_pointer operator-> () const
 Return pointer to associated value in hash table.
 
const_accessor ()
 Create empty result.
 
~const_accessor ()
 Destroy result after releasing the underlying reference.
 
- - - -

-Protected Member Functions

-bool is_writer ()
 
- - - - - -

-Protected Attributes

-nodemy_node
 
-hashcode_t my_hash
 
- - - - - -

-Friends

-class concurrent_hash_map< Key, T, HashCompare, Allocator >
 
-class accessor
 
-

Detailed Description

-

template<typename Key, typename T, typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
-class tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor

- -

Combines data access, locking, and garbage collection.

-

The documentation for this class was generated from the following file:
    -
  • concurrent_hash_map.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00047.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00047.png deleted file mode 100644 index e861a116a..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00047.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00048.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00048.html deleted file mode 100644 index f5c860c12..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00048.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - -tbb::flow::interface7::continue_msg Class Reference - - - - - - - -
-
-
tbb::flow::interface7::continue_msg Class Reference
-
-
- -

An empty class used for messages that mean "I'm done". - More...

- -

#include <flow_graph.h>

-

Detailed Description

-

An empty class used for messages that mean "I'm done".

-

The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00049.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00049.html deleted file mode 100644 index 16d6a4271..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00049.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - -tbb::flow::interface7::continue_node< Output > Class Template Reference - - - - - - - -
- -
-
tbb::flow::interface7::continue_node< Output > Class Template Reference
-
-
- -

Implements an executable node that supports continue_msg -> Output. - More...

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface7::continue_node< Output >:
-
-
- - -tbb::flow::interface7::graph_node - -
- - - - - - - - - - - - - - -

-Public Types

-typedef continue_msg input_type
 
-typedef Output output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_type > successor_type
 
-typedef
-internal::continue_input
-< Output > 
fInput_type
 
-typedef
-internal::function_output
-< output_type > 
fOutput_type
 
- - - - - - - - - - - - - - - - - -

-Public Member Functions

-template<typename Body >
 continue_node (graph &g, Body body)
 Constructor for executable node with continue_msg -> Output.
 
-template<typename Body >
 continue_node (graph &g, int number_of_predecessors, Body body)
 Constructor for executable node with continue_msg -> Output.
 
continue_node (const continue_node &src)
 Copy constructor.
 
-void set_name (const char *name)
 
- Public Member Functions inherited from tbb::flow::interface7::graph_node
graph_node (graph &g)
 
- - - - - -

-Protected Member Functions

-void reset ()
 
-internal::broadcast_cache
-< output_type > & 
successors ()
 
- - - - - - - - - - -

-Friends

-template<typename R , typename B >
class run_and_put_task
 
-template<typename X , typename Y >
class internal::broadcast_cache
 
-template<typename X , typename Y >
class internal::round_robin_cache
 
- - - - - - - - -

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface7::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
-

Detailed Description

-

template<typename Output>
-class tbb::flow::interface7::continue_node< Output >

- -

Implements an executable node that supports continue_msg -> Output.

-

The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00049.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00049.png deleted file mode 100644 index b695c1131..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00049.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00050.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00050.html deleted file mode 100644 index 329cac9c3..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00050.html +++ /dev/null @@ -1,241 +0,0 @@ - - - - - - -tbb::flow::interface7::continue_receiver Class Reference - - - - - - - -
- -
-
tbb::flow::interface7::continue_receiver Class Referenceabstract
-
-
- -

Base class for receivers of completion messages. - More...

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface7::continue_receiver:
-
-
- - -tbb::flow::interface7::receiver< continue_msg > - -
- - - - - - - - - - - - - - - -

-Public Types

-typedef continue_msg input_type
 The input type.
 
-typedef sender< continue_msgpredecessor_type
 The predecessor type for this node.
 
- Public Types inherited from tbb::flow::interface7::receiver< continue_msg >
-typedef continue_msg input_type
 The input type of this receiver.
 
-typedef sender< continue_msgpredecessor_type
 The predecessor type for this node.
 
- - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

continue_receiver (int number_of_predecessors=0)
 Constructor.
 
continue_receiver (const continue_receiver &src)
 Copy constructor.
 
-virtual ~continue_receiver ()
 Destructor.
 
-bool register_predecessor (predecessor_type &)
 Increments the trigger threshold.
 
bool remove_predecessor (predecessor_type &)
 Decrements the trigger threshold. More...
 
- Public Member Functions inherited from tbb::flow::interface7::receiver< continue_msg >
-virtual ~receiver ()
 Destructor.
 
-bool try_put (const continue_msg &t)
 Put an item to the receiver.
 
- - - - - - - - - - -

-Protected Member Functions

-task * try_put_task (const input_type &)
 
-void reset_receiver ()
 
virtual task * execute ()=0
 Does whatever should happen when the threshold is reached. More...
 
-bool is_continue_receiver ()
 
- - - - - - - - - -

-Protected Attributes

-spin_mutex my_mutex
 
-int my_predecessor_count
 
-int my_current_count
 
-int my_initial_predecessor_count
 
- - - - - - - - - - - - - - - - -

-Friends

-template<typename R , typename B >
class run_and_put_task
 
-template<typename X , typename Y >
class internal::broadcast_cache
 
-template<typename X , typename Y >
class internal::round_robin_cache
 
-template<typename U >
class limiter_node
 
-template<typename TT , typename M >
class internal::successor_cache
 
-

Detailed Description

-

Base class for receivers of completion messages.

-

These receivers automatically reset, but cannot be explicitly waited on

-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
virtual task* tbb::flow::interface7::continue_receiver::execute ()
-
-protectedpure virtual
-
- -

Does whatever should happen when the threshold is reached.

-

This should be very fast or else spawn a task. This is called while the sender is blocked in the try_put().

- -
-
- -
-
- - - - - -
- - - - - - - - -
bool tbb::flow::interface7::continue_receiver::remove_predecessor (predecessor_type)
-
-inlinevirtual
-
- -

Decrements the trigger threshold.

-

Does not check to see if the removal of the predecessor now makes the current count exceed the new threshold. So removing a predecessor while the graph is active can cause unexpected results.

- -

Reimplemented from tbb::flow::interface7::receiver< continue_msg >.

- -
-
-
The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00050.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00050.png deleted file mode 100644 index a069fbb3c..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00050.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00051.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00051.html deleted file mode 100644 index f14be14c6..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00051.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - -tbb::internal::critical_section_v4 Class Reference - - - - - - - -
- -
-
tbb::internal::critical_section_v4 Class Reference
-
-
-
-Inheritance diagram for tbb::internal::critical_section_v4:
-
-
- - - -
- - - - -

-Classes

class  scoped_lock
 
- - - - - - - - - -

-Public Member Functions

-void __TBB_EXPORTED_METHOD internal_construct ()
 
-void lock ()
 
-bool try_lock ()
 
-void unlock ()
 
- - - - - - - -

-Static Public Attributes

-static const bool is_rw_mutex = false
 
-static const bool is_recursive_mutex = false
 
-static const bool is_fair_mutex = true
 
-
The documentation for this class was generated from the following file:
    -
  • critical_section.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00051.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00051.png deleted file mode 100644 index 835e586da..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00051.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00052.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00052.html deleted file mode 100644 index 24500669d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00052.html +++ /dev/null @@ -1,239 +0,0 @@ - - - - - - -tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type > Class Template Reference - - - - - - - -
- -
-
tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type > Class Template Reference
-
-
- -

The enumerable_thread_specific container. - More...

- -

#include <enumerable_thread_specific.h>

-
-Inheritance diagram for tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >:
-
-
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef Allocator allocator_type
 Basic types.
 
-typedef T value_type
 
-typedef T & reference
 
-typedef const T & const_reference
 
-typedef T * pointer
 
-typedef const T * const_pointer
 
-typedef
-internal_collection_type::size_type 
size_type
 
-typedef
-internal_collection_type::difference_type 
difference_type
 
-typedef
-internal::enumerable_thread_specific_iterator
-< internal_collection_type,
-value_type > 
iterator
 
-typedef
-internal::enumerable_thread_specific_iterator
-< internal_collection_type,
-const value_type > 
const_iterator
 
-typedef generic_range_type
-< iterator > 
range_type
 
-typedef generic_range_type
-< const_iterator > 
const_range_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

enumerable_thread_specific ()
 Default constructor. Each local instance of T is default constructed.
 
-template<typename Finit >
 enumerable_thread_specific (Finit finit)
 Constructor with initializer functor. Each local instance of T is constructed by T(finit()).
 
enumerable_thread_specific (const T &exemplar)
 Constructor with exemplar. Each local instance of T is copied-constructed from the exemplar.
 
~enumerable_thread_specific ()
 Destructor.
 
-reference local ()
 returns reference to local, discarding exists
 
-reference local (bool &exists)
 Returns reference to calling thread's local copy, creating one if necessary.
 
-size_type size () const
 Get the number of local copies.
 
-bool empty () const
 true if there have been no local copies created
 
-iterator begin ()
 begin iterator
 
-iterator end ()
 end iterator
 
-const_iterator begin () const
 begin const iterator
 
-const_iterator end () const
 end const iterator
 
-range_type range (size_t grainsize=1)
 Get range for parallel algorithms.
 
-const_range_type range (size_t grainsize=1) const
 Get const range for parallel algorithms.
 
-void clear ()
 Destroys local copies.
 
-template<typename U , typename Alloc , ets_key_usage_type Cachetype>
 enumerable_thread_specific (const enumerable_thread_specific< U, Alloc, Cachetype > &other)
 
enumerable_thread_specific (const enumerable_thread_specific &other)
 
-enumerable_thread_specificoperator= (const enumerable_thread_specific &other)
 
-template<typename U , typename Alloc , ets_key_usage_type Cachetype>
enumerable_thread_specificoperator= (const enumerable_thread_specific< U, Alloc, Cachetype > &other)
 
-template<typename combine_func_t >
combine (combine_func_t f_combine)
 
-template<typename combine_func_t >
void combine_each (combine_func_t f_combine)
 
- - - - -

-Friends

-template<typename U , typename A , ets_key_usage_type C>
class enumerable_thread_specific
 
-

Detailed Description

-

template<typename T, typename Allocator = cache_aligned_allocator<T>, ets_key_usage_type ETS_key_type = ets_no_key>
-class tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >

- -

The enumerable_thread_specific container.

-
enumerable_thread_specific has the following properties:
-- thread-local copies are lazily created, with default, exemplar or function initialization.
-- thread-local copies do not move (during lifetime, and excepting clear()) so the address of a copy is invariant.
-- the contained objects need not have operator=() defined if combine is not used.
-- enumerable_thread_specific containers may be copy-constructed or assigned.
-- thread-local copies can be managed by hash-table, or can be accessed via TLS storage for speed.
-- outside of parallel contexts, the contents of all thread-local copies are accessible by iterator or using combine or combine_each methods
-
Segmented iterator
When the thread-local objects are containers with input_iterators defined, a segmented iterator may be used to iterate over all the elements of all thread-local copies.
-
combine and combine_each
    -
  • Both methods are defined for enumerable_thread_specific.
  • -
  • combine() requires the the type T have operator=() defined.
  • -
  • neither method modifies the contents of the object (though there is no guarantee that the applied methods do not modify the object.)
  • -
  • Both are evaluated in serial context (the methods are assumed to be non-benign.)
  • -
-
-

The documentation for this class was generated from the following file:
    -
  • enumerable_thread_specific.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00052.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00052.png deleted file mode 100644 index fba36b8c9..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00052.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00053.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00053.html deleted file mode 100644 index 060cc5e5a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00053.html +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - -tbb::filter Class Reference - - - - - - - -
- -
-
tbb::filter Class Reference
-
-
- -

A stage in a pipeline. - More...

- -

#include <pipeline.h>

-
-Inheritance diagram for tbb::filter:
-
-
- - -tbb::thread_bound_filter - -
- - - - - - - - - - - - - - - - - -

-Static Protected Attributes

-static const unsigned char filter_is_serial = 0x1
 The lowest bit 0 is for parallel vs. serial.
 
static const unsigned char filter_is_out_of_order = 0x1<<4
 4th bit distinguishes ordered vs unordered filters. More...
 
-static const unsigned char filter_is_bound = 0x1<<5
 5th bit distinguishes thread-bound and regular filters.
 
-static const unsigned char filter_may_emit_null = 0x1<<6
 6th bit marks input filters emitting small objects
 
static const unsigned char exact_exception_propagation
 7th bit defines exception propagation mode expected by the application. More...
 
-

Detailed Description

-

A stage in a pipeline.

-

Member Data Documentation

- -
-
- - - - - -
- - - - -
const unsigned char tbb::filter::exact_exception_propagation
-
-staticprotected
-
-Initial value:
=
-
#if TBB_USE_CAPTURED_EXCEPTION
-
0x0
-
-

7th bit defines exception propagation mode expected by the application.

- -
-
- -
-
- - - - - -
- - - - -
const unsigned char tbb::filter::filter_is_out_of_order = 0x1<<4
-
-staticprotected
-
- -

4th bit distinguishes ordered vs unordered filters.

-

The bit was not set for parallel filters in TBB 2.1 and earlier, but is_ordered() function always treats parallel filters as out of order.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • pipeline.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00053.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00053.png deleted file mode 100644 index a4923e5f6..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00053.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00054.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00054.html deleted file mode 100644 index e8c343ec5..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00054.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - -tbb::interface6::filter_t< T, U > Class Template Reference - - - - - - - -
- -
-
tbb::interface6::filter_t< T, U > Class Template Reference
-
-
- -

Class representing a chain of type-safe pipeline filters. - More...

- -

#include <pipeline.h>

- - - - - - - - - - - -

-Public Member Functions

filter_t (const filter_t< T, U > &rhs)
 
-template<typename Body >
 filter_t (tbb::filter::mode mode, const Body &body)
 
-void operator= (const filter_t< T, U > &rhs)
 
-void clear ()
 
- - - - - - - - - - -

-Friends

-class internal::pipeline_proxy
 
-template<typename T_ , typename U_ , typename Body >
filter_t< T_, U_ > make_filter (tbb::filter::mode, const Body &)
 Create a filter to participate in parallel_pipeline.
 
-template<typename T_ , typename V_ , typename U_ >
filter_t< T_, U_ > operator& (const filter_t< T_, V_ > &, const filter_t< V_, U_ > &)
 
-

Detailed Description

-

template<typename T, typename U>
-class tbb::interface6::filter_t< T, U >

- -

Class representing a chain of type-safe pipeline filters.

-

The documentation for this class was generated from the following file:
    -
  • pipeline.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00055.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00055.html deleted file mode 100644 index a18a6aa92..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00055.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - -tbb::final_scan_tag Struct Reference - - - - - - - -
- -
-
tbb::final_scan_tag Struct Reference
-
-
- -

Used to indicate that the final scan is being performed. - More...

- -

#include <parallel_scan.h>

- - - - -

-Static Public Member Functions

-static bool is_final_scan ()
 
-

Detailed Description

-

Used to indicate that the final scan is being performed.

-

The documentation for this struct was generated from the following file:
    -
  • parallel_scan.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00056.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00056.html deleted file mode 100644 index bda5059c5..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00056.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - -tbb::interface6::fixed_pool Class Reference - - - - - - - -
- -
-
tbb::interface6::fixed_pool Class Reference
-
-
-
-Inheritance diagram for tbb::interface6::fixed_pool:
-
-
- - - -
- - - - - - - - -

-Public Member Functions

fixed_pool (void *buf, size_t size)
 construct pool with underlying allocator
 
~fixed_pool ()
 destroy pool
 
-
The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00056.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00056.png deleted file mode 100644 index 8cf0f936e..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00056.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00057.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00057.html deleted file mode 100644 index c249418be..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00057.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - -tbb::interface6::flattened2d< Container > Class Template Reference - - - - - - - -
- -
-
tbb::interface6::flattened2d< Container > Class Template Reference
-
-
- - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef conval_type::size_type size_type
 Basic types.
 
-typedef
-conval_type::difference_type 
difference_type
 
-typedef conval_type::allocator_type allocator_type
 
-typedef conval_type::value_type value_type
 
-typedef conval_type::reference reference
 
-typedef
-conval_type::const_reference 
const_reference
 
-typedef conval_type::pointer pointer
 
-typedef conval_type::const_pointer const_pointer
 
-typedef
-internal::segmented_iterator
-< Container, value_type > 
iterator
 
-typedef
-internal::segmented_iterator
-< Container, const value_type > 
const_iterator
 
- - - - - - - - - - - - - - - -

-Public Member Functions

flattened2d (const Container &c, typename Container::const_iterator b, typename Container::const_iterator e)
 
flattened2d (const Container &c)
 
-iterator begin ()
 
-iterator end ()
 
-const_iterator begin () const
 
-const_iterator end () const
 
-size_type size () const
 
-
The documentation for this class was generated from the following file:
    -
  • enumerable_thread_specific.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00058.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00058.html deleted file mode 100644 index 9d1020eeb..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00058.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - -tbb::interface6::flow_control Class Reference - - - - - - - -
- -
-
tbb::interface6::flow_control Class Reference
-
-
- -

input_filter control to signal end-of-input for parallel_pipeline - More...

- -

#include <pipeline.h>

- - - - -

-Public Member Functions

-void stop ()
 
- - - - -

-Friends

-template<typename T , typename U , typename Body >
class internal::concrete_filter
 
-

Detailed Description

-

input_filter control to signal end-of-input for parallel_pipeline

-

The documentation for this class was generated from the following file:
    -
  • pipeline.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00059.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00059.html deleted file mode 100644 index 89c754776..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00059.html +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - -tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator > Class Template Reference - - - - - - - -
- -
-
tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator > Class Template Reference
-
-
- -

Implements a function node that supports Input -> Output. - More...

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator >:
-
-
- - -tbb::flow::interface7::graph_node - -
- - - - - - - - - - - - - - -

-Public Types

-typedef Input input_type
 
-typedef Output output_type
 
-typedef sender< input_type > predecessor_type
 
-typedef receiver< output_type > successor_type
 
-typedef
-internal::function_input
-< input_type, output_type,
-Allocator > 
fInput_type
 
-typedef
-internal::function_output
-< output_type > 
fOutput_type
 
- - - - - - - - - - - - - -

-Public Member Functions

-template<typename Body >
 function_node (graph &g, size_t concurrency, Body body)
 Constructor.
 
function_node (const function_node &src)
 Copy constructor.
 
-void set_name (const char *name)
 
- Public Member Functions inherited from tbb::flow::interface7::graph_node
graph_node (graph &g)
 
- - - - - -

-Protected Member Functions

-void reset ()
 
-internal::broadcast_cache
-< output_type > & 
successors ()
 
- - - - - - - - - - -

-Friends

-template<typename R , typename B >
class run_and_put_task
 
-template<typename X , typename Y >
class internal::broadcast_cache
 
-template<typename X , typename Y >
class internal::round_robin_cache
 
- - - - - - - - -

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface7::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
-

Detailed Description

-

template<typename Input, typename Output = continue_msg, graph_buffer_policy = queueing, typename Allocator = cache_aligned_allocator<Input>>
-class tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator >

- -

Implements a function node that supports Input -> Output.

-

The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00059.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00059.png deleted file mode 100644 index 3696c7384..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00059.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00060.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00060.html deleted file mode 100644 index cc9b5b070..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00060.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - -tbb::flow::interface7::function_node< Input, Output, queueing, Allocator > Class Template Reference - - - - - - - -
- -
-
tbb::flow::interface7::function_node< Input, Output, queueing, Allocator > Class Template Reference
-
-
- -

Implements a function node that supports Input -> Output. - More...

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface7::function_node< Input, Output, queueing, Allocator >:
-
-
- - -tbb::flow::interface7::graph_node - -
- - - - - - - - - - - - - - - - -

-Public Types

-typedef Input input_type
 
-typedef Output output_type
 
-typedef sender< input_type > predecessor_type
 
-typedef receiver< output_type > successor_type
 
-typedef
-internal::function_input
-< input_type, output_type,
-Allocator > 
fInput_type
 
-typedef
-internal::function_input_queue
-< input_type, Allocator > 
queue_type
 
-typedef
-internal::function_output
-< output_type > 
fOutput_type
 
- - - - - - - - - - - - - -

-Public Member Functions

-template<typename Body >
 function_node (graph &g, size_t concurrency, Body body)
 Constructor.
 
function_node (const function_node &src)
 Copy constructor.
 
-void set_name (const char *name)
 
- Public Member Functions inherited from tbb::flow::interface7::graph_node
graph_node (graph &g)
 
- - - - - -

-Protected Member Functions

-void reset ()
 
-internal::broadcast_cache
-< output_type > & 
successors ()
 
- - - - - - - - - - -

-Friends

-template<typename R , typename B >
class run_and_put_task
 
-template<typename X , typename Y >
class internal::broadcast_cache
 
-template<typename X , typename Y >
class internal::round_robin_cache
 
- - - - - - - - -

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface7::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
-

Detailed Description

-

template<typename Input, typename Output, typename Allocator>
-class tbb::flow::interface7::function_node< Input, Output, queueing, Allocator >

- -

Implements a function node that supports Input -> Output.

-

The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00060.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00060.png deleted file mode 100644 index c06756745..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00060.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00061.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00061.html deleted file mode 100644 index d6f947626..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00061.html +++ /dev/null @@ -1,346 +0,0 @@ - - - - - - -tbb::flow::interface7::graph Class Reference - - - - - - -
- - - - - -
-
- -
-
tbb::flow::interface7::graph Class Reference
-
-
- -

The graph class. - More...

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface7::graph:
-
-
- - - -
- - - - - - -

-Public Types

-typedef graph_iterator< graph,
-graph_node
iterator
 
-typedef graph_iterator< const
-graph, const graph_node
const_iterator
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

graph ()
 Constructs a graph with isolated task_group_context.
 
graph (task_group_context &use_this_context)
 Constructs a graph with use_this_context as context.
 
 ~graph ()
 Destroys the graph. More...
 
-void set_name (const char *name)
 
void increment_wait_count ()
 Used to register that an external entity may still interact with the graph. More...
 
void decrement_wait_count ()
 Deregisters an external entity that may have interacted with the graph. More...
 
template<typename Receiver , typename Body >
void run (Receiver &r, Body body)
 Spawns a task that runs a body and puts its output to a specific receiver. More...
 
template<typename Body >
void run (Body body)
 Spawns a task that runs a function object. More...
 
void wait_for_all ()
 Wait until graph is idle and decrement_wait_count calls equals increment_wait_count calls. More...
 
-task * root_task ()
 Returns the root task of the graph.
 
-iterator begin ()
 start iterator
 
-iterator end ()
 end iterator
 
-const_iterator begin () const
 start const iterator
 
-const_iterator end () const
 end const iterator
 
-const_iterator cbegin () const
 start const iterator
 
-const_iterator cend () const
 end const iterator
 
-bool is_cancelled ()
 return status of graph execution
 
-bool exception_thrown ()
 
-void reset ()
 
- - - - - - -

-Friends

-class graph_node
 
-template<typename C , typename N >
class graph_iterator
 
-

Detailed Description

-

The graph class.

-

This class serves as a handle to the graph

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - -
tbb::flow::interface7::graph::~graph ()
-
-inline
-
- -

Destroys the graph.

-

Calls wait_for_all, then destroys the root task and context.

- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
void tbb::flow::interface7::graph::decrement_wait_count ()
-
-inline
-
- -

Deregisters an external entity that may have interacted with the graph.

-

The graph will not return from wait_for_all until all the number of decrement_wait_count calls matches the number of increment_wait_count calls.

- -
-
- -
-
- - - - - -
- - - - - - - -
void tbb::flow::interface7::graph::increment_wait_count ()
-
-inline
-
- -

Used to register that an external entity may still interact with the graph.

-

The graph will not return from wait_for_all until a matching number of decrement_wait_count calls is made.

- -
-
- -
-
-
-template<typename Receiver , typename Body >
- - - - - -
- - - - - - - - - - - - - - - - - - -
void tbb::flow::interface7::graph::run (Receiver & r,
Body body 
)
-
-inline
-
- -

Spawns a task that runs a body and puts its output to a specific receiver.

-

The task is spawned as a child of the graph. This is useful for running tasks that need to block a wait_for_all() on the graph. For example a one-off source.

- -
-
- -
-
-
-template<typename Body >
- - - - - -
- - - - - - - - -
void tbb::flow::interface7::graph::run (Body body)
-
-inline
-
- -

Spawns a task that runs a function object.

-

The task is spawned as a child of the graph. This is useful for running tasks that need to block a wait_for_all() on the graph. For example a one-off source.

- -
-
- -
-
- - - - - -
- - - - - - - -
void tbb::flow::interface7::graph::wait_for_all ()
-
-inline
-
- -

Wait until graph is idle and decrement_wait_count calls equals increment_wait_count calls.

-

The waiting thread will go off and steal work while it is block in the wait_for_all.

- -
-
-
The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00061.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00061.png deleted file mode 100644 index 9ec4ddfec..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00061.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00062.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00062.html deleted file mode 100644 index 15a03f51e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00062.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - -tbb::flow::interface7::graph_iterator< GraphContainerType, GraphNodeType > Class Template Reference - - - - - - - -
- -
-
tbb::flow::interface7::graph_iterator< GraphContainerType, GraphNodeType > Class Template Reference
-
-
- - - - - - - - - - - - - - -

-Public Types

-typedef size_t size_type
 
-typedef GraphNodeType value_type
 
-typedef GraphNodeType * pointer
 
-typedef GraphNodeType & reference
 
-typedef const GraphNodeType & const_reference
 
-typedef std::forward_iterator_tag iterator_category
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

graph_iterator ()
 Default constructor.
 
graph_iterator (const graph_iterator &other)
 Copy constructor.
 
-graph_iteratoroperator= (const graph_iterator &other)
 Assignment.
 
-reference operator* () const
 Dereference.
 
-pointer operator-> () const
 Dereference.
 
-bool operator== (const graph_iterator &other) const
 Equality.
 
-bool operator!= (const graph_iterator &other) const
 Inequality.
 
-graph_iteratoroperator++ ()
 Pre-increment.
 
-graph_iterator operator++ (int)
 Post-increment.
 
- - - - - -

-Friends

-class graph
 
-class graph_node
 
-
The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00063.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00063.html deleted file mode 100644 index c53f3ada1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00063.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - -tbb::flow::interface7::graph_node Class Reference - - - - - - - -
- -
-
tbb::flow::interface7::graph_node Class Referenceabstract
-
-
- -

The base of all graph nodes. - More...

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface7::graph_node:
-
-
- - -tbb::flow::interface7::multifunction_node< TupleType, TupleType, rejecting, Allocator > -tbb::flow::interface7::broadcast_node< T > -tbb::flow::interface7::buffer_node< T, A > -tbb::flow::interface7::continue_node< Output > -tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator > -tbb::flow::interface7::function_node< Input, Output, queueing, Allocator > -tbb::flow::interface7::limiter_node< T > -tbb::flow::interface7::multifunction_node< Input, Output, graph_buffer_policy, Allocator > -tbb::flow::interface7::multifunction_node< Input, Output, queueing, Allocator > -tbb::flow::interface7::overwrite_node< T > -tbb::flow::interface7::source_node< Output > - -
- - - - - - -

-Public Member Functions

graph_node (graph &g)
 
-virtual void set_name (const char *name)=0
 
- - - -

-Protected Member Functions

-virtual void reset ()=0
 
- - - - - - - -

-Protected Attributes

-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
- - - - - - -

-Friends

-class graph
 
-template<typename C , typename N >
class graph_iterator
 
-

Detailed Description

-

The base of all graph nodes.

-

The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00063.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00063.png deleted file mode 100644 index 6a2f58cb8..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00063.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00064.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00064.html deleted file mode 100644 index d447d88ba..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00064.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - -tbb::internal::tbb_thread_v3::id Class Reference - - - - - - - -
- -
-
tbb::internal::tbb_thread_v3::id Class Reference
-
-
- - - - - - - - - - - - - - - - - - - - - -

-Friends

-class tbb_thread_v3
 
-bool operator== (tbb_thread_v3::id x, tbb_thread_v3::id y)
 
-bool operator!= (tbb_thread_v3::id x, tbb_thread_v3::id y)
 
-bool operator< (tbb_thread_v3::id x, tbb_thread_v3::id y)
 
-bool operator<= (tbb_thread_v3::id x, tbb_thread_v3::id y)
 
-bool operator> (tbb_thread_v3::id x, tbb_thread_v3::id y)
 
-bool operator>= (tbb_thread_v3::id x, tbb_thread_v3::id y)
 
-template<class charT , class traits >
std::basic_ostream< charT,
-traits > & 
operator<< (std::basic_ostream< charT, traits > &out, tbb_thread_v3::id id)
 
-tbb_thread_v3::id
-__TBB_EXPORTED_FUNC 
thread_get_id_v3 ()
 
-
The documentation for this class was generated from the following file:
    -
  • tbb_thread.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00065.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00065.html deleted file mode 100644 index 7fd657f1c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00065.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - -tbb::improper_lock Class Reference - - - - - - - -
- -
-
tbb::improper_lock Class Reference
-
-
- -

Exception for PPL locks. - More...

- -

#include <tbb_exception.h>

-
-Inheritance diagram for tbb::improper_lock:
-
-
- - - -
- - - - -

-Public Member Functions

-const char * what () const throw ()
 
-

Detailed Description

-

Exception for PPL locks.

-

The documentation for this class was generated from the following file:
    -
  • tbb_exception.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00065.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00065.png deleted file mode 100644 index 7f4f5571e..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00065.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00066.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00066.html deleted file mode 100644 index 76391ef14..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00066.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - -tbb::tick_count::interval_t Class Reference - - - - - - - -
- -
-
tbb::tick_count::interval_t Class Reference
-
-
- -

Relative time interval. - More...

- -

#include <tick_count.h>

- - - - - - - - - - - - - - - - - -

-Public Member Functions

interval_t ()
 Construct a time interval representing zero time duration.
 
interval_t (double sec)
 Construct a time interval representing sec seconds time duration.
 
-double seconds () const
 Return the length of a time interval in seconds.
 
-interval_toperator+= (const interval_t &i)
 Accumulation operator.
 
-interval_toperator-= (const interval_t &i)
 Subtraction operator.
 
- - - - - - - - - - - - -

-Friends

-class tbb::tick_count
 
-interval_t operator- (const tick_count &t1, const tick_count &t0)
 Extract the intervals from the tick_counts and subtract them.
 
-interval_t operator+ (const interval_t &i, const interval_t &j)
 Add two intervals.
 
-interval_t operator- (const interval_t &i, const interval_t &j)
 Subtract two intervals.
 
-

Detailed Description

-

Relative time interval.

-

The documentation for this class was generated from the following file:
    -
  • tick_count.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00067.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00067.html deleted file mode 100644 index d957dca56..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00067.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - -tbb::invalid_multiple_scheduling Class Reference - - - - - - - -
- -
-
tbb::invalid_multiple_scheduling Class Reference
-
-
- -

Exception for repeated scheduling of the same task_handle. - More...

- -

#include <tbb_exception.h>

-
-Inheritance diagram for tbb::invalid_multiple_scheduling:
-
-
- - - -
- - - - -

-Public Member Functions

-const char * what () const throw ()
 
-

Detailed Description

-

Exception for repeated scheduling of the same task_handle.

-

The documentation for this class was generated from the following file:
    -
  • tbb_exception.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00067.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00067.png deleted file mode 100644 index ba8483c1c..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00067.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00068.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00068.html deleted file mode 100644 index 386ef792a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00068.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - -tbb::flow::interface7::join_node< OutputTuple, JP > Class Template Reference - - - - - - -
- - - - - -
-
-
-
tbb::flow::interface7::join_node< OutputTuple, JP > Class Template Reference
-
-
-
The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00069.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00069.html deleted file mode 100644 index 197410432..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00069.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - -tbb::flow::interface7::join_node< OutputTuple, queueing > Class Template Reference - - - - - - - -
- -
-
tbb::flow::interface7::join_node< OutputTuple, queueing > Class Template Reference
-
-
-
-Inheritance diagram for tbb::flow::interface7::join_node< OutputTuple, queueing >:
-
-
- - - -
- - - - - - -

-Public Types

-typedef OutputTuple output_type
 
-typedef
-unfolded_type::input_ports_type 
input_ports_type
 
- - - - - - - -

-Public Member Functions

join_node (graph &g)
 
join_node (const join_node &other)
 
-void set_name (const char *name)
 
-
The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00069.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00069.png deleted file mode 100644 index 4c63cb9ef..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00069.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00070.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00070.html deleted file mode 100644 index aa45d97be..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00070.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - -tbb::flow::interface7::join_node< OutputTuple, reserving > Class Template Reference - - - - - - - -
- -
-
tbb::flow::interface7::join_node< OutputTuple, reserving > Class Template Reference
-
-
-
-Inheritance diagram for tbb::flow::interface7::join_node< OutputTuple, reserving >:
-
-
- - - -
- - - - - - -

-Public Types

-typedef OutputTuple output_type
 
-typedef
-unfolded_type::input_ports_type 
input_ports_type
 
- - - - - - - -

-Public Member Functions

join_node (graph &g)
 
join_node (const join_node &other)
 
-void set_name (const char *name)
 
-
The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00070.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00070.png deleted file mode 100644 index 2e87a799d..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00070.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00071.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00071.html deleted file mode 100644 index f2a062695..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00071.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - -tbb::flow::interface7::join_node< OutputTuple, tag_matching > Class Template Reference - - - - - - - -
- -
-
tbb::flow::interface7::join_node< OutputTuple, tag_matching > Class Template Reference
-
-
-
-Inheritance diagram for tbb::flow::interface7::join_node< OutputTuple, tag_matching >:
-
-
- - - -
- - - - - - -

-Public Types

-typedef OutputTuple output_type
 
-typedef
-unfolded_type::input_ports_type 
input_ports_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-template<typename __TBB_B0 , typename __TBB_B1 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1)
 
-template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2)
 
-template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3)
 
-template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 , typename __TBB_B4 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4)
 
-template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 , typename __TBB_B4 , typename __TBB_B5 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5)
 
-template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 , typename __TBB_B4 , typename __TBB_B5 , typename __TBB_B6 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6)
 
-template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 , typename __TBB_B4 , typename __TBB_B5 , typename __TBB_B6 , typename __TBB_B7 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6, __TBB_B7 b7)
 
-template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 , typename __TBB_B4 , typename __TBB_B5 , typename __TBB_B6 , typename __TBB_B7 , typename __TBB_B8 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6, __TBB_B7 b7, __TBB_B8 b8)
 
-template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 , typename __TBB_B4 , typename __TBB_B5 , typename __TBB_B6 , typename __TBB_B7 , typename __TBB_B8 , typename __TBB_B9 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6, __TBB_B7 b7, __TBB_B8 b8, __TBB_B9 b9)
 
join_node (const join_node &other)
 
-void set_name (const char *name)
 
-
The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00071.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00071.png deleted file mode 100644 index f228a8048..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00071.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00072.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00072.html deleted file mode 100644 index 72aad5b80..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00072.html +++ /dev/null @@ -1,269 +0,0 @@ - - - - - - -tbb::flow::interface7::limiter_node< T > Class Template Reference - - - - - - - -
- -
-
tbb::flow::interface7::limiter_node< T > Class Template Reference
-
-
- -

Forwards messages only if the threshold has not been reached. - More...

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface7::limiter_node< T >:
-
-
- - -tbb::flow::interface7::graph_node -tbb::flow::interface7::receiver< T > -tbb::flow::interface7::sender< T > - -
- - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
- Public Types inherited from tbb::flow::interface7::receiver< T >
-typedef T input_type
 The input type of this receiver.
 
-typedef sender< T > predecessor_type
 The predecessor type for this node.
 
- Public Types inherited from tbb::flow::interface7::sender< T >
-typedef T output_type
 The output type of this sender.
 
-typedef receiver< T > successor_type
 The successor type for this node.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

limiter_node (graph &g, size_t threshold, int num_decrement_predecessors=0)
 Constructor.
 
limiter_node (const limiter_node &src)
 Copy constructor.
 
-void set_name (const char *name)
 
-bool register_successor (receiver< output_type > &r)
 Replace the current successor with this new successor.
 
bool remove_successor (receiver< output_type > &r)
 Removes a successor from this node. More...
 
-bool register_predecessor (predecessor_type &src)
 Adds src to the list of cached predecessors.
 
-bool remove_predecessor (predecessor_type &src)
 Removes src from the list of cached predecessors.
 
- Public Member Functions inherited from tbb::flow::interface7::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface7::receiver< T >
-virtual ~receiver ()
 Destructor.
 
-bool try_put (const T &t)
 Put an item to the receiver.
 
- Public Member Functions inherited from tbb::flow::interface7::sender< T >
-virtual bool try_get (T &)
 Request an item from the sender.
 
-virtual bool try_reserve (T &)
 Reserves an item in the sender.
 
-virtual bool try_release ()
 Releases the reserved item.
 
-virtual bool try_consume ()
 Consumes the reserved item.
 
- - - - -

-Public Attributes

-internal::decrementer
-< limiter_node< T > > 
decrement
 The internal receiver< continue_msg > that decrements the count.
 
- - - - - - - - - - - -

-Protected Member Functions

-task * try_put_task (const T &t)
 Puts an item to this receiver.
 
-void reset ()
 
-void reset_receiver ()
 
- Protected Member Functions inherited from tbb::flow::interface7::receiver< T >
-virtual bool is_continue_receiver ()
 
- - - - - - - - - - - - - - -

-Friends

-class internal::forward_task_bypass< limiter_node< T > >
 
-class internal::decrementer< limiter_node< T > >
 
-template<typename R , typename B >
class run_and_put_task
 
-template<typename X , typename Y >
class internal::broadcast_cache
 
-template<typename X , typename Y >
class internal::round_robin_cache
 
- - - - - - - - -

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface7::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
-

Detailed Description

-

template<typename T>
-class tbb::flow::interface7::limiter_node< T >

- -

Forwards messages only if the threshold has not been reached.

-

This node forwards items until its threshold is reached. It contains no buffering. If the downstream node rejects, the message is dropped.

-

Member Function Documentation

- -
-
-
-template<typename T >
- - - - - -
- - - - - - - - -
bool tbb::flow::interface7::limiter_node< T >::remove_successor (receiver< output_type > & r)
-
-inlinevirtual
-
- -

Removes a successor from this node.

-

r.remove_predecessor(*this) is also called.

- -

Implements tbb::flow::interface7::sender< T >.

- -
-
-
The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00072.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00072.png deleted file mode 100644 index e821303ad..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00072.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00073.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00073.html deleted file mode 100644 index ea857251d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00073.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - -tbb::interface6::memory_pool< Alloc > Class Template Reference - - - - - - - -
- -
-
tbb::interface6::memory_pool< Alloc > Class Template Reference
-
-
- -

Thread-safe growable pool allocator for variable-size requests. - More...

- -

#include <memory_pool.h>

-
-Inheritance diagram for tbb::interface6::memory_pool< Alloc >:
-
-
- - - -
- - - - - - - - -

-Public Member Functions

memory_pool (const Alloc &src=Alloc())
 construct pool with underlying allocator
 
~memory_pool ()
 destroy pool
 
-

Detailed Description

-

template<typename Alloc>
-class tbb::interface6::memory_pool< Alloc >

- -

Thread-safe growable pool allocator for variable-size requests.

-

The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00073.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00073.png deleted file mode 100644 index 040c525da..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00073.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00074.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00074.html deleted file mode 100644 index 087577e93..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00074.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - -tbb::interface6::memory_pool_allocator< T, P > Class Template Reference - - - - - - - -
- -
-
tbb::interface6::memory_pool_allocator< T, P > Class Template Reference
-
-
- -

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. - More...

- -

#include <memory_pool.h>

- - - - -

-Classes

struct  rebind
 
- - - - - - - - - - - - - - - -

-Public Types

-typedef
-tbb::internal::allocator_type
-< T >::value_type 
value_type
 
-typedef value_type * pointer
 
-typedef const value_type * const_pointer
 
-typedef value_type & reference
 
-typedef const value_type & const_reference
 
-typedef size_t size_type
 
-typedef ptrdiff_t difference_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

memory_pool_allocator (pool_type &pool) throw ()
 
memory_pool_allocator (const memory_pool_allocator &src) throw ()
 
-template<typename U >
 memory_pool_allocator (const memory_pool_allocator< U, P > &src) throw ()
 
-pointer address (reference x) const
 
-const_pointer address (const_reference x) const
 
-pointer allocate (size_type n, const void *=0)
 Allocate space for n objects.
 
-void deallocate (pointer p, size_type)
 Free previously allocated block of memory.
 
-size_type max_size () const throw ()
 Largest value for which method allocate might succeed.
 
-template<typename U , typename... Args>
void construct (U *p, Args &&...args)
 Copy-construct value at location pointed to by p.
 
-void construct (pointer p, const value_type &value)
 
-void destroy (pointer p)
 Destroy value at location pointed to by p.
 
- - - -

-Protected Types

-typedef P pool_type
 
- - - -

-Protected Attributes

-pool_type * my_pool
 
- - - - - - - - - - -

-Friends

-template<typename U , typename R >
class memory_pool_allocator
 
-template<typename V , typename U , typename R >
bool operator== (const memory_pool_allocator< V, R > &a, const memory_pool_allocator< U, R > &b)
 
-template<typename V , typename U , typename R >
bool operator!= (const memory_pool_allocator< V, R > &a, const memory_pool_allocator< U, R > &b)
 
-

Detailed Description

-

template<typename T, typename P = internal::pool_base>
-class tbb::interface6::memory_pool_allocator< T, P >

- -

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5.

-

The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00075.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00075.html deleted file mode 100644 index d361e26c1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00075.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - -tbb::interface6::memory_pool_allocator< void, P > Class Template Reference - - - - - - - -
- -
-
tbb::interface6::memory_pool_allocator< void, P > Class Template Reference
-
-
- -

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. - More...

- -

#include <memory_pool.h>

- - - - -

-Classes

struct  rebind
 
- - - - - - - - - -

-Public Types

-typedef P pool_type
 
-typedef void * pointer
 
-typedef const void * const_pointer
 
-typedef void value_type
 
- - - - - - - - -

-Public Member Functions

memory_pool_allocator (pool_type &pool) throw ()
 
memory_pool_allocator (const memory_pool_allocator &src) throw ()
 
-template<typename U >
 memory_pool_allocator (const memory_pool_allocator< U, P > &src) throw ()
 
- - - -

-Protected Attributes

-pool_type * my_pool
 
- - - - - - - - - - -

-Friends

-template<typename U , typename R >
class memory_pool_allocator
 
-template<typename V , typename U , typename R >
bool operator== (const memory_pool_allocator< V, R > &a, const memory_pool_allocator< U, R > &b)
 
-template<typename V , typename U , typename R >
bool operator!= (const memory_pool_allocator< V, R > &a, const memory_pool_allocator< U, R > &b)
 
-

Detailed Description

-

template<typename P>
-class tbb::interface6::memory_pool_allocator< void, P >

- -

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1.

-

The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00076.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00076.html deleted file mode 100644 index 8db3e9699..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00076.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - -rml::MemPoolPolicy Struct Reference - - - - - - - -
- -
-
rml::MemPoolPolicy Struct Reference
-
-
- - - - -

-Public Types

enum  { TBBMALLOC_POOL_VERSION = 1 - }
 
- - - -

-Public Member Functions

MemPoolPolicy (rawAllocType pAlloc_, rawFreeType pFree_, size_t granularity_=0, bool fixedPool_=false, bool keepAllMemory_=false)
 
- - - - - - - - - - - - - - - -

-Public Attributes

-rawAllocType pAlloc
 
-rawFreeType pFree
 
-size_t granularity
 
-int version
 
-unsigned fixedPool: 1
 
-unsigned keepAllMemory: 1
 
-unsigned reserved: 30
 
-
The documentation for this struct was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00077.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00077.html deleted file mode 100644 index 29faa106e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00077.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - -tbb::missing_wait Class Reference - - - - - - - -
- -
-
tbb::missing_wait Class Reference
-
-
- -

Exception for missing wait on structured_task_group. - More...

- -

#include <tbb_exception.h>

-
-Inheritance diagram for tbb::missing_wait:
-
-
- - - -
- - - - -

-Public Member Functions

-const char * what () const throw ()
 
-

Detailed Description

-

Exception for missing wait on structured_task_group.

-

The documentation for this class was generated from the following file:
    -
  • tbb_exception.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00077.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00077.png deleted file mode 100644 index 7f9c4b314..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00077.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00078.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00078.html deleted file mode 100644 index 0fee0f644..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00078.html +++ /dev/null @@ -1,230 +0,0 @@ - - - - - - -tbb::movable_exception< ExceptionData > Class Template Reference - - - - - - - -
- -
-
tbb::movable_exception< ExceptionData > Class Template Reference
-
-
- -

Template that can be used to implement exception that transfers arbitrary ExceptionData to the root thread. - More...

- -

#include <tbb_exception.h>

-
-Inheritance diagram for tbb::movable_exception< ExceptionData >:
-
-
- - -tbb::tbb_exception - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

movable_exception (const ExceptionData &data_)
 
movable_exception (const movable_exception &src) throw ()
 
-const movable_exceptionoperator= (const movable_exception &src)
 
-ExceptionData & data () throw ()
 
-const ExceptionData & data () const throw ()
 
-const char * name () const throw ()
 Returns RTTI name of the originally intercepted exception.
 
-const char * what () const throw ()
 Returns the result of originally intercepted exception's what() method.
 
movable_exceptionmove () throw ()
 Creates and returns pointer to the deep copy of this exception object. More...
 
void destroy () throw ()
 Destroys objects created by the move() method. More...
 
void throw_self ()
 Throws this exception object. More...
 
- Public Member Functions inherited from tbb::tbb_exception
void operator delete (void *p)
 
- - - - -

-Protected Attributes

-ExceptionData my_exception_data
 User data.
 
-

Detailed Description

-

template<typename ExceptionData>
-class tbb::movable_exception< ExceptionData >

- -

Template that can be used to implement exception that transfers arbitrary ExceptionData to the root thread.

-

Code using TBB can instantiate this template with an arbitrary ExceptionData type and throw this exception object. Such exceptions are intercepted by the TBB scheduler and delivered to the root thread ().

-
See Also
tbb::tbb_exception
-

Member Function Documentation

- -
-
-
-template<typename ExceptionData >
- - - - - -
- - - - - - - - - - - - - -
void tbb::movable_exception< ExceptionData >::destroy ()
throw (
)
-
-inlinevirtual
-
- -

Destroys objects created by the move() method.

-

Frees memory and calls destructor for this exception object. Can and must be used only on objects created by the move method.

- -

Implements tbb::tbb_exception.

- -
-
- -
-
-
-template<typename ExceptionData >
- - - - - -
- - - - - - - - - - - - - -
movable_exception* tbb::movable_exception< ExceptionData >::move ()
throw (
)
-
-inlinevirtual
-
- -

Creates and returns pointer to the deep copy of this exception object.

-

Move semantics is allowed.

- -

Implements tbb::tbb_exception.

- -
-
- -
-
-
-template<typename ExceptionData >
- - - - - -
- - - - - - - -
void tbb::movable_exception< ExceptionData >::throw_self ()
-
-inlinevirtual
-
- -

Throws this exception object.

-

Make sure that if you have several levels of derivation from this interface you implement or override this method on the most derived level. The implementation is as simple as "throw *this;". Failure to do this will result in exception of a base class type being thrown.

- -

Implements tbb::tbb_exception.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • tbb_exception.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00078.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00078.png deleted file mode 100644 index 2c2e3fe83..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00078.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00079.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00079.html deleted file mode 100644 index f433e8ceb..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00079.html +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - -tbb::flow::interface7::multifunction_node< Input, Output, graph_buffer_policy, Allocator > Class Template Reference - - - - - - - -
- -
-
tbb::flow::interface7::multifunction_node< Input, Output, graph_buffer_policy, Allocator > Class Template Reference
-
-
- -

implements a function node that supports Input -> (set of outputs) - More...

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface7::multifunction_node< Input, Output, graph_buffer_policy, Allocator >:
-
-
- - -tbb::flow::interface7::graph_node - -
- - - - - - -

-Public Types

-typedef Input input_type
 
-typedef
-internal::wrap_tuple_elements
-< N,
-internal::multifunction_output,
-Output >::type 
output_ports_type
 
- - - - - - - - - - - -

-Public Member Functions

-template<typename Body >
 multifunction_node (graph &g, size_t concurrency, Body body)
 
multifunction_node (const multifunction_node &other)
 
-void set_name (const char *name)
 
- Public Member Functions inherited from tbb::flow::interface7::graph_node
graph_node (graph &g)
 
- - - -

-Protected Member Functions

-void reset ()
 
- - - - - - - - -

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface7::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
-

Detailed Description

-

template<typename Input, typename Output, graph_buffer_policy = queueing, typename Allocator = cache_aligned_allocator<Input>>
-class tbb::flow::interface7::multifunction_node< Input, Output, graph_buffer_policy, Allocator >

- -

implements a function node that supports Input -> (set of outputs)

-

The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00079.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00079.png deleted file mode 100644 index f16eb1461..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00079.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00080.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00080.html deleted file mode 100644 index c030c220d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00080.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - -tbb::flow::interface7::multifunction_node< Input, Output, queueing, Allocator > Class Template Reference - - - - - - - -
- -
-
tbb::flow::interface7::multifunction_node< Input, Output, queueing, Allocator > Class Template Reference
-
-
-
-Inheritance diagram for tbb::flow::interface7::multifunction_node< Input, Output, queueing, Allocator >:
-
-
- - -tbb::flow::interface7::graph_node - -
- - - - - - -

-Public Types

-typedef Input input_type
 
-typedef
-internal::wrap_tuple_elements
-< N,
-internal::multifunction_output,
-Output >::type 
output_ports_type
 
- - - - - - - - - - - -

-Public Member Functions

-template<typename Body >
 multifunction_node (graph &g, size_t concurrency, Body body)
 
multifunction_node (const multifunction_node &other)
 
-void set_name (const char *name)
 
- Public Member Functions inherited from tbb::flow::interface7::graph_node
graph_node (graph &g)
 
- - - -

-Protected Member Functions

-void reset ()
 
- - - -

-Static Protected Attributes

-static const int N = tbb::flow::tuple_size<Output>::value
 
- - - - - - - - -

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface7::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
-
The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00080.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00080.png deleted file mode 100644 index 542e23592..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00080.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00081.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00081.html deleted file mode 100644 index 859319a31..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00081.html +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - -tbb::mutex Class Reference - - - - - - - - -
- -

Wrapper around the platform's native reader-writer lock. - More...

- -

#include <mutex.h>

- - - - - -

-Classes

class  scoped_lock
 The scoped locking pattern. More...
 
- - - - - - - - -

-Public Types

enum  state_t { INITIALIZED =0x1234, -DESTROYED =0x789A, -HELD =0x56CD - }
 
-typedef LPCRITICAL_SECTION native_handle_type
 Return native_handle.
 
-typedef pthread_mutex_t * native_handle_type
 
- - - - - - - - - - - - - - - - - - -

-Public Member Functions

mutex ()
 Construct unacquired mutex.
 
-void lock ()
 Acquire lock.
 
bool try_lock ()
 Try acquiring lock (non-blocking) More...
 
-void unlock ()
 Release lock.
 
-native_handle_type native_handle ()
 
-void set_state (state_t to)
 Set the internal state.
 
- - - - - - - -

-Static Public Attributes

-static const bool is_rw_mutex = false
 
-static const bool is_recursive_mutex = false
 
-static const bool is_fair_mutex = false
 
- - - -

-Friends

-class scoped_lock
 
-

Detailed Description

-

Wrapper around the platform's native reader-writer lock.

-

For testing purposes only.

-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
bool tbb::mutex::try_lock ()
-
-inline
-
- -

Try acquiring lock (non-blocking)

-

Return true if lock acquired; false otherwise.

- -

References tbb::aligned_space< T, N >::begin().

- -

Referenced by tbb::mutex::scoped_lock::try_acquire().

- -
-
-
The documentation for this class was generated from the following file:
    -
  • mutex.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00082.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00082.html deleted file mode 100644 index 197409e7d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00082.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - -tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node Struct Reference - - - - - - - -
- -
-
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node Struct Reference
-
-
-
-Inheritance diagram for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node:
-
-
- - - -
- - - - - - - - - - -

-Public Member Functions

node (const Key &key)
 
node (const Key &key, const T &t)
 
-void * operator new (size_t, node_allocator_type &a)
 
-void operator delete (void *ptr, node_allocator_type &a)
 
- - - -

-Public Attributes

-value_type item
 
-
The documentation for this struct was generated from the following file:
    -
  • concurrent_hash_map.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00082.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00082.png deleted file mode 100644 index b91437953..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00082.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00083.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00083.html deleted file mode 100644 index 2eadc0750..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00083.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - -tbb::null_mutex Class Reference - - - - - - - -
- -
-
tbb::null_mutex Class Reference
-
-
- -

A mutex which does nothing. - More...

- -

#include <null_mutex.h>

- - - - - -

-Classes

class  scoped_lock
 Represents acquisition of a mutex. More...
 
- - - - - - - -

-Static Public Attributes

-static const bool is_rw_mutex = false
 
-static const bool is_recursive_mutex = true
 
-static const bool is_fair_mutex = true
 
-

Detailed Description

-

A mutex which does nothing.

-

A null_mutex does no operation and simulates success.

-

The documentation for this class was generated from the following file:
    -
  • null_mutex.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00084.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00084.html deleted file mode 100644 index f920503c0..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00084.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - -tbb::null_rw_mutex Class Reference - - - - - - - -
- -
-
tbb::null_rw_mutex Class Reference
-
-
- -

A rw mutex which does nothing. - More...

- -

#include <null_rw_mutex.h>

- - - - - -

-Classes

class  scoped_lock
 Represents acquisition of a mutex. More...
 
- - - - - - - -

-Static Public Attributes

-static const bool is_rw_mutex = true
 
-static const bool is_recursive_mutex = true
 
-static const bool is_fair_mutex = true
 
-

Detailed Description

-

A rw mutex which does nothing.

-

A null_rw_mutex is a rw mutex that does nothing and simulates successful operation.

-

The documentation for this class was generated from the following file:
    -
  • null_rw_mutex.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00085.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00085.html deleted file mode 100644 index 0bec958b8..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00085.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - -tbb::flow::interface7::or_node< InputTuple > Class Template Reference - - - - - - -
- - - - - -
-
- -
-
tbb::flow::interface7::or_node< InputTuple > Class Template Reference
-
-
-
-Inheritance diagram for tbb::flow::interface7::or_node< InputTuple >:
-
-
- - - -
- - - - - - -

-Public Types

-typedef
-internal::or_output_type
-< InputTuple >::type 
output_type
 
-typedef
-internal::unfolded_or_node
-< InputTuple > 
unfolded_type
 
- - - - - - - -

-Public Member Functions

or_node (graph &g)
 
or_node (const or_node &other)
 
-void set_name (const char *name)
 
-
The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00085.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00085.png deleted file mode 100644 index c79e0afce..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00085.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00086.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00086.html deleted file mode 100644 index e13e69ba0..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00086.html +++ /dev/null @@ -1,230 +0,0 @@ - - - - - - -tbb::flow::interface7::overwrite_node< T > Class Template Reference - - - - - - - -
- -
-
tbb::flow::interface7::overwrite_node< T > Class Template Reference
-
-
-
-Inheritance diagram for tbb::flow::interface7::overwrite_node< T >:
-
-
- - -tbb::flow::interface7::graph_node -tbb::flow::interface7::receiver< T > -tbb::flow::interface7::sender< T > -tbb::flow::interface7::write_once_node< T > - -
- - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
- Public Types inherited from tbb::flow::interface7::receiver< T >
-typedef T input_type
 The input type of this receiver.
 
-typedef sender< T > predecessor_type
 The predecessor type for this node.
 
- Public Types inherited from tbb::flow::interface7::sender< T >
-typedef T output_type
 The output type of this sender.
 
-typedef receiver< T > successor_type
 The successor type for this node.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

overwrite_node (graph &g)
 
overwrite_node (const overwrite_node &src)
 
-void set_name (const char *name)
 
-bool register_successor (successor_type &s)
 Add a new successor to this node.
 
-bool remove_successor (successor_type &s)
 Removes a successor from this node.
 
-bool try_get (T &v)
 Request an item from the sender.
 
-bool is_valid ()
 
-void clear ()
 
- Public Member Functions inherited from tbb::flow::interface7::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface7::receiver< T >
-virtual ~receiver ()
 Destructor.
 
-bool try_put (const T &t)
 Put an item to the receiver.
 
-virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
-virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
- Public Member Functions inherited from tbb::flow::interface7::sender< T >
-virtual bool try_reserve (T &)
 Reserves an item in the sender.
 
-virtual bool try_release ()
 Releases the reserved item.
 
-virtual bool try_consume ()
 Consumes the reserved item.
 
- - - - - - - - - - -

-Protected Member Functions

-task * try_put_task (const T &v)
 
-void reset ()
 
-void reset_receiver ()
 
- Protected Member Functions inherited from tbb::flow::interface7::receiver< T >
-virtual bool is_continue_receiver ()
 
- - - - - - - - - - - - - - - - -

-Protected Attributes

-spin_mutex my_mutex
 
-internal::broadcast_cache< T,
-null_rw_mutex
my_successors
 
-T my_buffer
 
-bool my_buffer_is_valid
 
- Protected Attributes inherited from tbb::flow::interface7::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
- - - - - - - - - - -

-Friends

-template<typename R , typename B >
class run_and_put_task
 
-template<typename X , typename Y >
class internal::broadcast_cache
 
-template<typename X , typename Y >
class internal::round_robin_cache
 
-
The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00086.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00086.png deleted file mode 100644 index f2d7752f5..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00086.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00087.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00087.html deleted file mode 100644 index a6f59e1cd..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00087.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - -tbb::parallel_do_feeder< Item > Class Template Reference - - - - - - - -
- -
-
tbb::parallel_do_feeder< Item > Class Template Referenceabstract
-
-
- -

Class the user supplied algorithm body uses to add new tasks. - More...

- -

#include <parallel_do.h>

-
-Inheritance diagram for tbb::parallel_do_feeder< Item >:
-
-
- - - -
- - - - - -

-Public Member Functions

-void add (const Item &item)
 Add a work item to a running parallel_do.
 
- - - - -

-Friends

-template<typename Body_ , typename Item_ >
class internal::parallel_do_feeder_impl
 
-

Detailed Description

-

template<typename Item>
-class tbb::parallel_do_feeder< Item >

- -

Class the user supplied algorithm body uses to add new tasks.

-
Parameters
- - -
ItemWork item type
-
-
-

The documentation for this class was generated from the following file:
    -
  • parallel_do.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00087.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00087.png deleted file mode 100644 index 742cad9d0..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00087.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00088.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00088.html deleted file mode 100644 index cc0e7ae8b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00088.html +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - -tbb::parallel_while< Body > Class Template Reference - - - - - - - -
- -
-
tbb::parallel_while< Body > Class Template Reference
-
-
- -

Parallel iteration over a stream, with optional addition of more work. - More...

- -

#include <parallel_while.h>

-
-Inheritance diagram for tbb::parallel_while< Body >:
-
-
- - - -
- - - - - -

-Public Types

-typedef Body::argument_type value_type
 Type of items.
 
- - - - - - - - - - - - - - -

-Public Member Functions

parallel_while ()
 Construct empty non-running parallel while.
 
~parallel_while ()
 Destructor cleans up data members before returning.
 
template<typename Stream >
void run (Stream &stream, const Body &body)
 Apply body.apply to each item in the stream. More...
 
void add (const value_type &item)
 Add a work item while running. More...
 
-

Detailed Description

-

template<typename Body>
-class tbb::parallel_while< Body >

- -

Parallel iteration over a stream, with optional addition of more work.

-

The Body b has the requirement:
- "b(v)"
- "b.argument_type"
- where v is an argument_type

-

Member Function Documentation

- -
-
-
-template<typename Body >
- - - - - - - - -
void tbb::parallel_while< Body >::add (const value_typeitem)
-
- -

Add a work item while running.

-

Should be executed only by body.apply or a thread spawned therefrom.

- -
-
- -
-
-
-template<typename Body >
-
-template<typename Stream >
- - - - - - - - - - - - - - - - - - -
void tbb::parallel_while< Body >::run (Stream & stream,
const Body & body 
)
-
- -

Apply body.apply to each item in the stream.

-

A Stream s has the requirements
- "S::value_type"
- "s.pop_if_present(value) is convertible to bool

- -
-
-
The documentation for this class was generated from the following file:
    -
  • parallel_while.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00088.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00088.png deleted file mode 100644 index fc86480fb..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00088.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00089.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00089.html deleted file mode 100644 index 114276d1f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00089.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - -tbb::pipeline Class Reference - - - - - - - -
- -
-
tbb::pipeline Class Reference
-
-
- -

A processing pipeline that applies filters to items. - More...

- -

#include <pipeline.h>

- - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-__TBB_EXPORTED_METHOD pipeline ()
 Construct empty pipeline.
 
virtual __TBB_EXPORTED_METHOD ~pipeline ()
 
-void __TBB_EXPORTED_METHOD add_filter (filter &filter_)
 Add filter to end of pipeline.
 
-void __TBB_EXPORTED_METHOD run (size_t max_number_of_live_tokens)
 Run the pipeline to completion.
 
-void __TBB_EXPORTED_METHOD run (size_t max_number_of_live_tokens, tbb::task_group_context &context)
 Run the pipeline to completion with user-supplied context.
 
-void __TBB_EXPORTED_METHOD clear ()
 Remove all filters from the pipeline.
 
- - - - - - - - - - - - - -

-Friends

-class internal::stage_task
 
-class internal::pipeline_root_task
 
-class filter
 
-class thread_bound_filter
 
-class internal::pipeline_cleaner
 
-class tbb::interface6::internal::pipeline_proxy
 
-

Detailed Description

-

A processing pipeline that applies filters to items.

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - -
virtual __TBB_EXPORTED_METHOD tbb::pipeline::~pipeline ()
-
-virtual
-
-

Though the current implementation declares the destructor virtual, do not rely on this detail. The virtualness is deprecated and may disappear in future versions of TBB.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • pipeline.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00090.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00090.html deleted file mode 100644 index 08400b8f2..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00090.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - -tbb::pre_scan_tag Struct Reference - - - - - - - -
- -
-
tbb::pre_scan_tag Struct Reference
-
-
- -

Used to indicate that the initial scan is being performed. - More...

- -

#include <parallel_scan.h>

- - - - -

-Static Public Member Functions

-static bool is_final_scan ()
 
-

Detailed Description

-

Used to indicate that the initial scan is being performed.

-

The documentation for this struct was generated from the following file:
    -
  • parallel_scan.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00091.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00091.html deleted file mode 100644 index dbfd9da19..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00091.html +++ /dev/null @@ -1,319 +0,0 @@ - - - - - - -tbb::flow::interface7::priority_queue_node< T, Compare, A > Class Template Reference - - - - - - - -
- -
-
tbb::flow::interface7::priority_queue_node< T, Compare, A > Class Template Reference
-
-
- -

Forwards messages in priority order. - More...

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface7::priority_queue_node< T, Compare, A >:
-
-
- - -tbb::flow::interface7::buffer_node< T, A > -tbb::flow::interface7::graph_node -tbb::flow::interface7::receiver< T > -tbb::flow::interface7::sender< T > - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef T input_type
 
-typedef T output_type
 
-typedef buffer_node< T, A > base_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
- Public Types inherited from tbb::flow::interface7::buffer_node< T, A >
-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
-typedef buffer_node< T, A > my_class
 
- Public Types inherited from tbb::flow::interface7::receiver< T >
-typedef T input_type
 The input type of this receiver.
 
-typedef sender< T > predecessor_type
 The predecessor type for this node.
 
- Public Types inherited from tbb::flow::interface7::sender< T >
-typedef T output_type
 The output type of this sender.
 
-typedef receiver< T > successor_type
 The successor type for this node.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

priority_queue_node (graph &g)
 Constructor.
 
priority_queue_node (const priority_queue_node &src)
 Copy constructor.
 
-void set_name (const char *name)
 
- Public Member Functions inherited from tbb::flow::interface7::buffer_node< T, A >
buffer_node (graph &g)
 Constructor.
 
buffer_node (const buffer_node &src)
 Copy constructor.
 
bool register_successor (receiver< output_type > &r)
 Adds a new successor. More...
 
bool remove_successor (receiver< output_type > &r)
 Removes a successor. More...
 
bool try_get (T &v)
 Request an item from the buffer_node. More...
 
bool try_reserve (T &v)
 Reserves an item. More...
 
bool try_release ()
 Release a reserved item. More...
 
bool try_consume ()
 Consumes a reserved item. More...
 
- Public Member Functions inherited from tbb::flow::interface7::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface7::receiver< T >
-virtual ~receiver ()
 Destructor.
 
-bool try_put (const T &t)
 Put an item to the receiver.
 
-virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
-virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
- - - - - - - - - - - - - - - - - - -

-Protected Types

enum  op_stat { WAIT =0, -SUCCEEDED, -FAILED - }
 
-typedef buffer_node< T, A >
-::size_type 
size_type
 
-typedef buffer_node< T, A >
-::item_type 
item_type
 
-typedef buffer_node< T, A >
-::buffer_operation 
prio_operation
 
- Protected Types inherited from tbb::flow::interface7::buffer_node< T, A >
enum  op_type {
-  reg_succ, -rem_succ, -req_item, -res_item, -
-  rel_res, -con_res, -put_item, -try_fwd_task -
- }
 
enum  op_stat { WAIT =0, -SUCCEEDED, -FAILED - }
 
-typedef size_t size_type
 
-typedef
-internal::aggregating_functor
-< my_class, buffer_operation
my_handler
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Protected Member Functions

-void reset ()
 
-void handle_operations (prio_operation *op_list)
 
-void internal_forward_task (prio_operation *op)
 Tries to forward valid items to successors.
 
-void internal_push (prio_operation *op)
 
-void internal_pop (prio_operation *op)
 
-void internal_reserve (prio_operation *op)
 
-void internal_consume (prio_operation *op)
 
-void internal_release (prio_operation *op)
 
- Protected Member Functions inherited from tbb::flow::interface7::buffer_node< T, A >
-task * grab_forwarding_task (buffer_operation &op_data)
 
-bool enqueue_forwarding_task (buffer_operation &op_data)
 
-virtual task * forward_task ()
 This is executed by an enqueued task, the "forwarder".
 
-virtual void internal_reg_succ (buffer_operation *op)
 Register successor.
 
-virtual void internal_rem_succ (buffer_operation *op)
 Remove successor.
 
-task * try_put_task (const T &t)
 receive an item, return a task *if possible
 
-void reset_receiver ()
 
- Protected Member Functions inherited from tbb::flow::interface7::receiver< T >
-virtual bool is_continue_receiver ()
 
- - - - - - - - -

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface7::buffer_node< T, A >
-internal::round_robin_cache< T,
-null_rw_mutex
my_successors
 
-bool forwarder_busy
 
-internal::aggregator
-< my_handler, buffer_operation
my_aggregator
 
-

Detailed Description

-

template<typename T, typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
-class tbb::flow::interface7::priority_queue_node< T, Compare, A >

- -

Forwards messages in priority order.

-

The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00091.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00091.png deleted file mode 100644 index a84ee0648..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00091.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00092.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00092.html deleted file mode 100644 index d7cffb1a2..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00092.html +++ /dev/null @@ -1,313 +0,0 @@ - - - - - - -tbb::flow::interface7::queue_node< T, A > Class Template Reference - - - - - - - -
- -
-
tbb::flow::interface7::queue_node< T, A > Class Template Reference
-
-
- -

Forwards messages in FIFO order. - More...

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface7::queue_node< T, A >:
-
-
- - -tbb::flow::interface7::buffer_node< T, A > -tbb::flow::interface7::graph_node -tbb::flow::interface7::receiver< T > -tbb::flow::interface7::sender< T > -tbb::flow::interface7::sequencer_node< T, A > - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
- Public Types inherited from tbb::flow::interface7::buffer_node< T, A >
-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
-typedef buffer_node< T, A > my_class
 
- Public Types inherited from tbb::flow::interface7::receiver< T >
-typedef T input_type
 The input type of this receiver.
 
-typedef sender< T > predecessor_type
 The predecessor type for this node.
 
- Public Types inherited from tbb::flow::interface7::sender< T >
-typedef T output_type
 The output type of this sender.
 
-typedef receiver< T > successor_type
 The successor type for this node.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

queue_node (graph &g)
 Constructor.
 
queue_node (const queue_node &src)
 Copy constructor.
 
-void set_name (const char *name)
 
- Public Member Functions inherited from tbb::flow::interface7::buffer_node< T, A >
buffer_node (graph &g)
 Constructor.
 
buffer_node (const buffer_node &src)
 Copy constructor.
 
bool register_successor (receiver< output_type > &r)
 Adds a new successor. More...
 
bool remove_successor (receiver< output_type > &r)
 Removes a successor. More...
 
bool try_get (T &v)
 Request an item from the buffer_node. More...
 
bool try_reserve (T &v)
 Reserves an item. More...
 
bool try_release ()
 Release a reserved item. More...
 
bool try_consume ()
 Consumes a reserved item. More...
 
- Public Member Functions inherited from tbb::flow::interface7::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface7::receiver< T >
-virtual ~receiver ()
 Destructor.
 
-bool try_put (const T &t)
 Put an item to the receiver.
 
-virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
-virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
- - - - - - - - - - - - - - - - -

-Protected Types

enum  op_stat { WAIT =0, -SUCCEEDED, -FAILED - }
 
-typedef buffer_node< T, A >
-::size_type 
size_type
 
-typedef buffer_node< T, A >
-::buffer_operation 
queue_operation
 
- Protected Types inherited from tbb::flow::interface7::buffer_node< T, A >
enum  op_type {
-  reg_succ, -rem_succ, -req_item, -res_item, -
-  rel_res, -con_res, -put_item, -try_fwd_task -
- }
 
enum  op_stat { WAIT =0, -SUCCEEDED, -FAILED - }
 
-typedef size_t size_type
 
-typedef
-internal::aggregating_functor
-< my_class, buffer_operation
my_handler
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Protected Member Functions

-void internal_forward_task (queue_operation *op)
 Tries to forward valid items to successors.
 
-void internal_pop (queue_operation *op)
 
-void internal_reserve (queue_operation *op)
 
-void internal_consume (queue_operation *op)
 
- Protected Member Functions inherited from tbb::flow::interface7::buffer_node< T, A >
-virtual void handle_operations (buffer_operation *op_list)
 
-task * grab_forwarding_task (buffer_operation &op_data)
 
-bool enqueue_forwarding_task (buffer_operation &op_data)
 
-virtual task * forward_task ()
 This is executed by an enqueued task, the "forwarder".
 
-virtual void internal_reg_succ (buffer_operation *op)
 Register successor.
 
-virtual void internal_rem_succ (buffer_operation *op)
 Remove successor.
 
-virtual void internal_push (buffer_operation *op)
 
-virtual void internal_release (buffer_operation *op)
 
-task * try_put_task (const T &t)
 receive an item, return a task *if possible
 
-void reset ()
 
-void reset_receiver ()
 
- Protected Member Functions inherited from tbb::flow::interface7::receiver< T >
-virtual bool is_continue_receiver ()
 
- - - - - - - - -

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface7::buffer_node< T, A >
-internal::round_robin_cache< T,
-null_rw_mutex
my_successors
 
-bool forwarder_busy
 
-internal::aggregator
-< my_handler, buffer_operation
my_aggregator
 
-

Detailed Description

-

template<typename T, typename A = cache_aligned_allocator<T>>
-class tbb::flow::interface7::queue_node< T, A >

- -

Forwards messages in FIFO order.

-

The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00092.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00092.png deleted file mode 100644 index 98df659f0..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00092.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00093.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00093.html deleted file mode 100644 index 28ca6c44a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00093.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - -tbb::queuing_mutex Class Reference - - - - - - - - -
- -

Queuing mutex with local-only spinning. - More...

- -

#include <queuing_mutex.h>

- - - - - -

-Classes

class  scoped_lock
 The scoped locking pattern. More...
 
- - - - - - -

-Public Member Functions

queuing_mutex ()
 Construct unacquired mutex.
 
-void __TBB_EXPORTED_METHOD internal_construct ()
 
- - - - - - - -

-Static Public Attributes

-static const bool is_rw_mutex = false
 
-static const bool is_recursive_mutex = false
 
-static const bool is_fair_mutex = true
 
-

Detailed Description

-

Queuing mutex with local-only spinning.

-

The documentation for this class was generated from the following file:
    -
  • queuing_mutex.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00094.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00094.html deleted file mode 100644 index 2af5a7029..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00094.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - -tbb::queuing_rw_mutex Class Reference - - - - - - - -
- -
-
tbb::queuing_rw_mutex Class Reference
-
-
- -

Queuing reader-writer mutex with local-only spinning. - More...

- -

#include <queuing_rw_mutex.h>

- - - - - -

-Classes

class  scoped_lock
 The scoped locking pattern. More...
 
- - - - - - - - - -

-Public Member Functions

queuing_rw_mutex ()
 Construct unacquired mutex.
 
~queuing_rw_mutex ()
 Destructor asserts if the mutex is acquired, i.e. q_tail is non-NULL.
 
-void __TBB_EXPORTED_METHOD internal_construct ()
 
- - - - - - - -

-Static Public Attributes

-static const bool is_rw_mutex = true
 
-static const bool is_recursive_mutex = false
 
-static const bool is_fair_mutex = true
 
-

Detailed Description

-

Queuing reader-writer mutex with local-only spinning.

-

Adapted from Krieger, Stumm, et al. pseudocode at http://www.eecg.toronto.edu/parallel/pubs_abs.html#Krieger_etal_ICPP93

-

The documentation for this class was generated from the following file:
    -
  • queuing_rw_mutex.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00095.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00095.html deleted file mode 100644 index 09ef8863f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00095.html +++ /dev/null @@ -1,231 +0,0 @@ - - - - - - -tbb::interface5::reader_writer_lock Class Reference - - - - - - - -
- -
-
tbb::interface5::reader_writer_lock Class Reference
-
-
- -

Writer-preference reader-writer lock with local-only spinning on readers. - More...

- -

#include <reader_writer_lock.h>

-
-Inheritance diagram for tbb::interface5::reader_writer_lock:
-
-
- - - -
- - - - - - - - -

-Classes

class  scoped_lock
 The scoped lock pattern for write locks. More...
 
class  scoped_lock_read
 The scoped lock pattern for read locks. More...
 
- - - - -

-Public Types

enum  status_t { waiting_nonblocking, -waiting, -active, -invalid - }
 Status type for nodes associated with lock instances. More...
 
- - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

reader_writer_lock ()
 Constructs a new reader_writer_lock.
 
~reader_writer_lock ()
 Destructs a reader_writer_lock object.
 
void __TBB_EXPORTED_METHOD lock ()
 Acquires the reader_writer_lock for write. More...
 
bool __TBB_EXPORTED_METHOD try_lock ()
 Tries to acquire the reader_writer_lock for write. More...
 
void __TBB_EXPORTED_METHOD lock_read ()
 Acquires the reader_writer_lock for read. More...
 
bool __TBB_EXPORTED_METHOD try_lock_read ()
 Tries to acquire the reader_writer_lock for read. More...
 
-void __TBB_EXPORTED_METHOD unlock ()
 Releases the reader_writer_lock.
 
- - - - - -

-Friends

-class scoped_lock
 
-class scoped_lock_read
 
-

Detailed Description

-

Writer-preference reader-writer lock with local-only spinning on readers.

-

Loosely adapted from Mellor-Crummey and Scott pseudocode at http://www.cs.rochester.edu/research/synchronization/pseudocode/rw.html#s_wp

-

Member Enumeration Documentation

- -
-
- -

Status type for nodes associated with lock instances.

-

waiting_nonblocking: the wait state for nonblocking lock instances; for writes, these transition straight to active states; for reads, these are unused.

-

waiting: the start and spin state for all lock instances; these will transition to active state when appropriate. Non-blocking write locks transition from this state to waiting_nonblocking immediately.

-

active: the active state means that the lock instance holds the lock; it will transition to invalid state during node deletion

-

invalid: the end state for all nodes; this is set in the destructor so if we encounter this state, we are looking at memory that has already been freed

-

The state diagrams below describe the status transitions. Single arrows indicate that the thread that owns the node is responsible for the transition; double arrows indicate that any thread could make the transition.

-

State diagram for scoped_lock status:

-

waiting -------—> waiting_nonblocking | _____________/ | V V V active --------------—> invalid

-

State diagram for scoped_lock_read status:

-

waiting | V active --------------—>invalid

- -
-
-

Member Function Documentation

- -
-
- - - - - - - -
void __TBB_EXPORTED_METHOD tbb::interface5::reader_writer_lock::lock ()
-
- -

Acquires the reader_writer_lock for write.

-

If the lock is currently held in write mode by another context, the writer will block by spinning on a local variable. Exceptions thrown: improper_lock The context tries to acquire a reader_writer_lock that it already has write ownership of.

- -
-
- -
-
- - - - - - - -
void __TBB_EXPORTED_METHOD tbb::interface5::reader_writer_lock::lock_read ()
-
- -

Acquires the reader_writer_lock for read.

-

If the lock is currently held by a writer, this reader will block and wait until the writers are done. Exceptions thrown: improper_lock The context tries to acquire a reader_writer_lock that it already has write ownership of.

- -
-
- -
-
- - - - - - - -
bool __TBB_EXPORTED_METHOD tbb::interface5::reader_writer_lock::try_lock ()
-
- -

Tries to acquire the reader_writer_lock for write.

-

This function does not block. Return Value: True or false, depending on whether the lock is acquired or not. If the lock is already held by this acquiring context, try_lock() returns false.

- -
-
- -
-
- - - - - - - -
bool __TBB_EXPORTED_METHOD tbb::interface5::reader_writer_lock::try_lock_read ()
-
- -

Tries to acquire the reader_writer_lock for read.

-

This function does not block. Return Value: True or false, depending on whether the lock is acquired or not.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • reader_writer_lock.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00095.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00095.png deleted file mode 100644 index 12ea5c618..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00095.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00096.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00096.html deleted file mode 100644 index 42e9be360..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00096.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - -tbb::cache_aligned_allocator< void >::rebind< U > Struct Template Reference - - - - - - - -
- -
-
tbb::cache_aligned_allocator< void >::rebind< U > Struct Template Reference
-
-
- - - - -

-Public Types

-typedef
-cache_aligned_allocator< U > 
other
 
-
The documentation for this struct was generated from the following file:
    -
  • cache_aligned_allocator.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00097.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00097.html deleted file mode 100644 index 6a3e2d031..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00097.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - -tbb::scalable_allocator< void >::rebind< U > Struct Template Reference - - - - - - - -
- -
-
tbb::scalable_allocator< void >::rebind< U > Struct Template Reference
-
-
- - - - -

-Public Types

-typedef scalable_allocator< U > other
 
-
The documentation for this struct was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00098.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00098.html deleted file mode 100644 index b37238a0f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00098.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - -tbb::tbb_allocator< T >::rebind< U > Struct Template Reference - - - - - - - -
- -
-
tbb::tbb_allocator< T >::rebind< U > Struct Template Reference
-
-
- - - - -

-Public Types

-typedef tbb_allocator< U > other
 
-
The documentation for this struct was generated from the following file:
    -
  • tbb_allocator.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00099.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00099.html deleted file mode 100644 index a1d12eb40..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00099.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - -tbb::tbb_allocator< void >::rebind< U > Struct Template Reference - - - - - - - -
- -
-
tbb::tbb_allocator< void >::rebind< U > Struct Template Reference
-
-
- - - - -

-Public Types

-typedef tbb_allocator< U > other
 
-
The documentation for this struct was generated from the following file:
    -
  • tbb_allocator.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00100.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00100.html deleted file mode 100644 index 91ca2484b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00100.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - -tbb::zero_allocator< T, Allocator >::rebind< U > Struct Template Reference - - - - - - - -
- -
-
tbb::zero_allocator< T, Allocator >::rebind< U > Struct Template Reference
-
-
- - - - -

-Public Types

-typedef zero_allocator< U,
-Allocator > 
other
 
-
The documentation for this struct was generated from the following file:
    -
  • tbb_allocator.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00101.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00101.html deleted file mode 100644 index 9991356f1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00101.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - -tbb::interface6::memory_pool_allocator< T, P >::rebind< U > Struct Template Reference - - - - - - - -
- -
-
tbb::interface6::memory_pool_allocator< T, P >::rebind< U > Struct Template Reference
-
-
- - - - -

-Public Types

-typedef memory_pool_allocator
-< U, P > 
other
 
-
The documentation for this struct was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00102.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00102.html deleted file mode 100644 index 38a0e5618..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00102.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - -tbb::interface6::memory_pool_allocator< void, P >::rebind< U > Struct Template Reference - - - - - - - -
- -
-
tbb::interface6::memory_pool_allocator< void, P >::rebind< U > Struct Template Reference
-
-
- - - - -

-Public Types

-typedef memory_pool_allocator
-< U, P > 
other
 
-
The documentation for this struct was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00103.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00103.html deleted file mode 100644 index bb4976f41..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00103.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - -tbb::zero_allocator< void, Allocator >::rebind< U > Struct Template Reference - - - - - - - -
- -
-
tbb::zero_allocator< void, Allocator >::rebind< U > Struct Template Reference
-
-
- - - - -

-Public Types

-typedef zero_allocator< U,
-Allocator > 
other
 
-
The documentation for this struct was generated from the following file:
    -
  • tbb_allocator.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00104.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00104.html deleted file mode 100644 index 5787d8dde..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00104.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - -tbb::cache_aligned_allocator< T >::rebind< U > Struct Template Reference - - - - - - - -
- -
-
tbb::cache_aligned_allocator< T >::rebind< U > Struct Template Reference
-
-
- - - - -

-Public Types

-typedef
-cache_aligned_allocator< U > 
other
 
-
The documentation for this struct was generated from the following file:
    -
  • cache_aligned_allocator.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00105.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00105.html deleted file mode 100644 index 908cf4d44..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00105.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - -tbb::scalable_allocator< T >::rebind< U > Struct Template Reference - - - - - - - -
- -
-
tbb::scalable_allocator< T >::rebind< U > Struct Template Reference
-
-
- - - - -

-Public Types

-typedef scalable_allocator< U > other
 
-
The documentation for this struct was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00106.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00106.html deleted file mode 100644 index 07716109a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00106.html +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - -tbb::flow::interface7::receiver< T > Class Template Reference - - - - - - -
- - - - - -
-
- -
-
tbb::flow::interface7::receiver< T > Class Template Referenceabstract
-
-
- -

Pure virtual template class that defines a receiver of messages of type T. - More...

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface7::receiver< T >:
-
-
- - -tbb::flow::interface7::broadcast_node< T > -tbb::flow::interface7::buffer_node< T, A > -tbb::flow::interface7::limiter_node< T > -tbb::flow::interface7::overwrite_node< T > -tbb::flow::interface7::priority_queue_node< T, Compare, A > -tbb::flow::interface7::queue_node< T, A > -tbb::flow::interface7::write_once_node< T > -tbb::flow::interface7::sequencer_node< T, A > - -
- - - - - - - - -

-Public Types

-typedef T input_type
 The input type of this receiver.
 
-typedef sender< T > predecessor_type
 The predecessor type for this node.
 
- - - - - - - - - - - - - -

-Public Member Functions

-virtual ~receiver ()
 Destructor.
 
-bool try_put (const T &t)
 Put an item to the receiver.
 
-virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
-virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
- - - - - - - -

-Protected Member Functions

-virtual task * try_put_task (const T &t)=0
 
-virtual void reset_receiver ()=0
 
-virtual bool is_continue_receiver ()
 
- - - - - - - - - - - - - - - - - - -

-Friends

-template<typename R , typename B >
class run_and_put_task
 put item to successor; return task to run the successor if possible.
 
-template<typename X , typename Y >
class internal::broadcast_cache
 
-template<typename X , typename Y >
class internal::round_robin_cache
 
-template<typename U >
class limiter_node
 put receiver back in initial state
 
-template<typename TT , typename M >
class internal::successor_cache
 
-

Detailed Description

-

template<typename T>
-class tbb::flow::interface7::receiver< T >

- -

Pure virtual template class that defines a receiver of messages of type T.

-

The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00106.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00106.png deleted file mode 100644 index 80adf903e..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00106.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00107.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00107.html deleted file mode 100644 index 0a37a7418..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00107.html +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - -tbb::recursive_mutex Class Reference - - - - - - - - -
- -

#include <recursive_mutex.h>

- - - - - -

-Classes

class  scoped_lock
 The scoped locking pattern. More...
 
- - - - - - -

-Public Types

-typedef LPCRITICAL_SECTION native_handle_type
 Return native_handle.
 
-typedef pthread_mutex_t * native_handle_type
 
- - - - - - - - - - - - - - - -

-Public Member Functions

recursive_mutex ()
 Construct unacquired recursive_mutex.
 
-void lock ()
 Acquire lock.
 
bool try_lock ()
 Try acquiring lock (non-blocking) More...
 
-void unlock ()
 Release lock.
 
-native_handle_type native_handle ()
 
- - - - - - - -

-Static Public Attributes

-static const bool is_rw_mutex = false
 
-static const bool is_recursive_mutex = true
 
-static const bool is_fair_mutex = false
 
- - - -

-Friends

-class scoped_lock
 
-

Detailed Description

-

Mutex that allows recursive mutex acquisition.

-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
bool tbb::recursive_mutex::try_lock ()
-
-inline
-
- -

Try acquiring lock (non-blocking)

-

Return true if lock acquired; false otherwise.

- -

References tbb::aligned_space< T, N >::begin().

- -

Referenced by tbb::recursive_mutex::scoped_lock::try_acquire().

- -
-
-
The documentation for this class was generated from the following file:
    -
  • recursive_mutex.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00108.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00108.html deleted file mode 100644 index ffb785f61..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00108.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - -tbb::flow::interface7::internal::round_robin_cache< T, M > Class Template Reference - - - - - - -
- - - - - -
-
-
-
tbb::flow::interface7::internal::round_robin_cache< T, M > Class Template Reference
-
-
-
The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00109.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00109.html deleted file mode 100644 index 878c9999a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00109.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - -tbb::flow::interface7::run_and_put_task< R, B > Class Template Reference - - - - - - - -
-
-
tbb::flow::interface7::run_and_put_task< R, B > Class Template Reference
-
-
-
The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00110.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00110.html deleted file mode 100644 index fa5fea40f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00110.html +++ /dev/null @@ -1,321 +0,0 @@ - - - - - - -tbb::interface6::runtime_loader Class Reference - - - - - - - -
- -
-
tbb::interface6::runtime_loader Class Reference
-
-
- -

Load TBB at runtime. - More...

- -

#include <runtime_loader.h>

-
-Inheritance diagram for tbb::interface6::runtime_loader:
-
-
- - - -
- - - - - - - - -

-Public Types

enum  error_mode { em_status, -em_throw, -em_abort - }
 Error mode constants. More...
 
enum  error_code {
-  ec_ok, -ec_bad_call, -ec_bad_arg, -ec_bad_lib, -
-  ec_bad_ver, -ec_no_lib -
- }
 Error codes. More...
 
- - - - - - - - - - - - - - - - -

-Public Member Functions

runtime_loader (error_mode mode=em_abort)
 Initialize object but do not load TBB.
 
 runtime_loader (char const *path[], int min_ver=TBB_INTERFACE_VERSION, int max_ver=INT_MAX, error_mode mode=em_abort)
 Initialize object and load TBB. More...
 
~runtime_loader ()
 Destroy object.
 
error_code load (char const *path[], int min_ver=TBB_INTERFACE_VERSION, int max_ver=INT_MAX)
 Load TBB. More...
 
error_code status ()
 Report status. More...
 
-

Detailed Description

-

Load TBB at runtime.

-

Usage:

-

In source code:

-
#include "tbb/runtime_loader.h"
-
-
char const * path[] = { "<install dir>/lib/ia32", NULL };
-
tbb::runtime_loader loader( path );
-
-
// Now use TBB.
-

Link with tbbproxy.lib (or libtbbproxy.a) instead of tbb.lib (libtbb.dylib, libtbb.so).

-

TBB library will be loaded at runtime from <install dir>="">/lib/ia32 directory.

-

Attention:

-

All runtime_loader objects (in the same module, i.e. exe or dll) share some global state. The most noticeable piece of global state is loaded TBB library. There are some implications:

-
-   Only one TBB library can be loaded per module.
-
--   If one object has already loaded TBB library, another object will not load TBB.
-    If the loaded TBB library is suitable for the second object, both will use TBB
-    cooperatively, otherwise the second object will report an error.
-
--   \c runtime_loader objects will not work (correctly) in parallel due to absence of
-    syncronization.

Member Enumeration Documentation

- -
-
- -

Error codes.

- - - - - - - -
Enumerator
ec_ok  -

No errors.

-
ec_bad_call  -

Invalid function call (e. g. load() called when TBB is already loaded).

-
ec_bad_arg  -

Invalid argument passed.

-
ec_bad_lib  -

Invalid library found (e. g. TBB_runtime_version symbol not found).

-
ec_bad_ver  -

TBB found but version is not suitable.

-
ec_no_lib  -

No suitable TBB library found.

-
- -
-
- -
-
- -

Error mode constants.

- - - - -
Enumerator
em_status  -

Save status of operation and continue.

-
em_throw  -

Throw an exception of tbb::runtime_loader::error_code type.

-
em_abort  -

Print message to stderr and call abort().

-
- -
-
-

Constructor & Destructor Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
tbb::interface6::runtime_loader::runtime_loader (char const * path[],
int min_ver = TBB_INTERFACE_VERSION,
int max_ver = INT_MAX,
error_mode mode = em_abort 
)
-
- -

Initialize object and load TBB.

-

See load() for details.

-

If error mode is em_status, call status() to check whether TBB was loaded or not.

-
Parameters
- - - - - -
pathList of directories to search TBB in.
min_verMinimal suitable version of TBB.
max_verMaximal suitable version of TBB.
modeError mode for this object.
-
-
- -
-
-

Member Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
error_code tbb::interface6::runtime_loader::load (char const * path[],
int min_ver = TBB_INTERFACE_VERSION,
int max_ver = INT_MAX 
)
-
- -

Load TBB.

-

The method searches the directories specified in path[] array for the TBB library. When the library is found, it is loaded and its version is checked. If the version is not suitable, the library is unloaded, and the search continues.

-

Note:

-

For security reasons, avoid using relative directory names. For example, never load TBB from current ("."), parent ("..") or any other relative directory (like "lib" ). Use only absolute directory names (e. g. "/usr/local/lib").

-

For the same security reasons, avoid using system default directories ("") on Windows. (See http://www.microsoft.com/technet/security/advisory/2269637.mspx for details.)

-

Neglecting these rules may cause your program to execute 3-rd party malicious code.

-

Errors:

-
    -
  • ec_bad_call - TBB already loaded by this object.
  • -
  • ec_bad_arg - min_ver and/or max_ver negative or zero, or min_ver > max_ver.
  • -
  • ec_bad_ver - TBB of unsuitable version already loaded by another object.
  • -
  • ec_no_lib - No suitable library found.
  • -
-
Parameters
- - - - -
pathList of directories to search TBB in.
min_verMinimal suitable version of TBB.
max_verMaximal suitable version of TBB.
-
-
- -
-
- -
-
- - - - - - - -
error_code tbb::interface6::runtime_loader::status ()
-
- -

Report status.

-

If error mode is em_status, the function returns status of the last operation.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • runtime_loader.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00110.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00110.png deleted file mode 100644 index 56b89a68f..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00110.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00111.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00111.html deleted file mode 100644 index b9fa466bf..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00111.html +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - -tbb::scalable_allocator< T > Class Template Reference - - - - - - - -
- -
-
tbb::scalable_allocator< T > Class Template Reference
-
-
- -

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. - More...

- -

#include <scalable_allocator.h>

- - - - -

-Classes

struct  rebind
 
- - - - - - - - - - - - - - - -

-Public Types

-typedef
-internal::allocator_type< T >
-::value_type 
value_type
 
-typedef value_type * pointer
 
-typedef const value_type * const_pointer
 
-typedef value_type & reference
 
-typedef const value_type & const_reference
 
-typedef size_t size_type
 
-typedef ptrdiff_t difference_type
 
- - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

scalable_allocator (const scalable_allocator &) throw ()
 
-template<typename U >
 scalable_allocator (const scalable_allocator< U > &) throw ()
 
-pointer address (reference x) const
 
-const_pointer address (const_reference x) const
 
-pointer allocate (size_type n, const void *=0)
 Allocate space for n objects.
 
-void deallocate (pointer p, size_type)
 Free previously allocated block of memory.
 
-size_type max_size () const throw ()
 Largest value for which method allocate might succeed.
 
-template<typename U , typename... Args>
void construct (U *p, Args &&...args)
 
-void destroy (pointer p)
 
- - - -

-Public Attributes

-::new((void *) p) U(std voi construct )(pointer p, const value_type &value)
 
-

Detailed Description

-

template<typename T>
-class tbb::scalable_allocator< T >

- -

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5.

-

The members are ordered the same way they are in section 20.4.1 of the ISO C++ standard.

-

The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00112.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00112.html deleted file mode 100644 index 24c39b2c2..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00112.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - -tbb::scalable_allocator< void > Class Template Reference - - - - - - - -
- -
-
tbb::scalable_allocator< void > Class Template Reference
-
-
- -

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. - More...

- -

#include <scalable_allocator.h>

- - - - -

-Classes

struct  rebind
 
- - - - - - - -

-Public Types

-typedef void * pointer
 
-typedef const void * const_pointer
 
-typedef void value_type
 
-

Detailed Description

-

template<>
-class tbb::scalable_allocator< void >

- -

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1.

-

The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00113.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00113.html deleted file mode 100644 index e2663cc7c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00113.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - -tbb::spin_mutex::scoped_lock Class Reference - - - - - - - -
- -
-
tbb::spin_mutex::scoped_lock Class Reference
-
-
- -

Represents acquisition of a mutex. - More...

- -

#include <spin_mutex.h>

-
-Inheritance diagram for tbb::spin_mutex::scoped_lock:
-
-
- - - -
- - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

scoped_lock ()
 Construct without acquiring a mutex.
 
scoped_lock (spin_mutex &m)
 Construct and acquire lock on a mutex.
 
-void acquire (spin_mutex &m)
 Acquire lock.
 
bool try_acquire (spin_mutex &m)
 Try acquiring lock (non-blocking) More...
 
-void release ()
 Release lock.
 
~scoped_lock ()
 Destroy lock. If holding a lock, releases the lock first.
 
- - - -

-Friends

-class spin_mutex
 
-

Detailed Description

-

Represents acquisition of a mutex.

-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - - -
bool tbb::spin_mutex::scoped_lock::try_acquire (spin_mutexm)
-
-inline
-
- -

Try acquiring lock (non-blocking)

-

Return true if lock acquired; false otherwise.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • spin_mutex.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00113.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00113.png deleted file mode 100644 index 25da9c6ba..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00113.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00114.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00114.html deleted file mode 100644 index 255ad9418..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00114.html +++ /dev/null @@ -1,211 +0,0 @@ - - - - - - -tbb::spin_rw_mutex_v3::scoped_lock Class Reference - - - - - - - -
- -
-
tbb::spin_rw_mutex_v3::scoped_lock Class Reference
-
-
- -

The scoped locking pattern. - More...

- -

#include <spin_rw_mutex.h>

-
-Inheritance diagram for tbb::spin_rw_mutex_v3::scoped_lock:
-
-
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 scoped_lock ()
 Construct lock that has not acquired a mutex. More...
 
scoped_lock (spin_rw_mutex &m, bool write=true)
 Acquire lock on given mutex.
 
~scoped_lock ()
 Release lock (if lock is held).
 
-void acquire (spin_rw_mutex &m, bool write=true)
 Acquire lock on given mutex.
 
bool upgrade_to_writer ()
 Upgrade reader to become a writer. More...
 
-void release ()
 Release lock.
 
-bool downgrade_to_reader ()
 Downgrade writer to become a reader.
 
-bool try_acquire (spin_rw_mutex &m, bool write=true)
 Try acquire lock on given mutex.
 
-spin_rw_mutex__internal_get_mutex ()
 
-void __internal_set_mutex (spin_rw_mutex *m)
 
-void __internal_set_writer (bool flag=true)
 
- - - - - - - -

-Protected Attributes

-spin_rw_mutexmutex
 The pointer to the current mutex that is held, or NULL if no mutex is held.
 
bool is_writer
 If mutex!=NULL, then is_writer is true if holding a writer lock, false if holding a reader lock. More...
 
-

Detailed Description

-

The scoped locking pattern.

-

It helps to avoid the common problem of forgetting to release lock. It also nicely provides the "node" for queuing locks.

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - -
tbb::spin_rw_mutex_v3::scoped_lock::scoped_lock ()
-
-inline
-
- -

Construct lock that has not acquired a mutex.

-

Equivalent to zero-initialization of *this.

- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
bool tbb::spin_rw_mutex_v3::scoped_lock::upgrade_to_writer ()
-
-inline
-
- -

Upgrade reader to become a writer.

-

Returns whether the upgrade happened without releasing and re-acquiring the lock

- -

References is_writer.

- -
-
-

Member Data Documentation

- -
-
- - - - - -
- - - - -
bool tbb::spin_rw_mutex_v3::scoped_lock::is_writer
-
-protected
-
- -

If mutex!=NULL, then is_writer is true if holding a writer lock, false if holding a reader lock.

-

Not defined if not holding a lock.

- -

Referenced by acquire(), downgrade_to_reader(), release(), try_acquire(), and upgrade_to_writer().

- -
-
-
The documentation for this class was generated from the following file:
    -
  • spin_rw_mutex.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00114.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00114.png deleted file mode 100644 index 13249c6a5..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00114.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00115.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00115.html deleted file mode 100644 index 1c275d68e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00115.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - -tbb::null_mutex::scoped_lock Class Reference - - - - - - - -
- -
-
tbb::null_mutex::scoped_lock Class Reference
-
-
- -

Represents acquisition of a mutex. - More...

- -

#include <null_mutex.h>

- - - - - - - - - - -

-Public Member Functions

scoped_lock (null_mutex &)
 
-void acquire (null_mutex &)
 
-bool try_acquire (null_mutex &)
 
-void release ()
 
-

Detailed Description

-

Represents acquisition of a mutex.

-

The documentation for this class was generated from the following file:
    -
  • null_mutex.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00116.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00116.html deleted file mode 100644 index bcd3aca9b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00116.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - -tbb::mutex::scoped_lock Class Reference - - - - - - - -
- -
-
tbb::mutex::scoped_lock Class Reference
-
-
- -

The scoped locking pattern. - More...

- -

#include <mutex.h>

-
-Inheritance diagram for tbb::mutex::scoped_lock:
-
-
- - - -
- - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

scoped_lock ()
 Construct lock that has not acquired a mutex.
 
scoped_lock (mutex &mutex)
 Acquire lock on given mutex.
 
~scoped_lock ()
 Release lock (if lock is held).
 
-void acquire (mutex &mutex)
 Acquire lock on given mutex.
 
-bool try_acquire (mutex &mutex)
 Try acquire lock on given mutex.
 
-void release ()
 Release lock.
 
- - - -

-Friends

-class mutex
 
-

Detailed Description

-

The scoped locking pattern.

-

It helps to avoid the common problem of forgetting to release lock. It also nicely provides the "node" for queuing locks.

-

The documentation for this class was generated from the following file:
    -
  • mutex.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00116.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00116.png deleted file mode 100644 index 5450176d7..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00116.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00117.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00117.html deleted file mode 100644 index df6dd8821..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00117.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - -tbb::null_rw_mutex::scoped_lock Class Reference - - - - - - - -
- -
-
tbb::null_rw_mutex::scoped_lock Class Reference
-
-
- -

Represents acquisition of a mutex. - More...

- -

#include <null_rw_mutex.h>

- - - - - - - - - - - - - - -

-Public Member Functions

scoped_lock (null_rw_mutex &, bool=true)
 
-void acquire (null_rw_mutex &, bool=true)
 
-bool upgrade_to_writer ()
 
-bool downgrade_to_reader ()
 
-bool try_acquire (null_rw_mutex &, bool=true)
 
-void release ()
 
-

Detailed Description

-

Represents acquisition of a mutex.

-

The documentation for this class was generated from the following file:
    -
  • null_rw_mutex.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00118.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00118.html deleted file mode 100644 index cee3b5626..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00118.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - -tbb::interface5::reader_writer_lock::scoped_lock Class Reference - - - - - - - -
- -
-
tbb::interface5::reader_writer_lock::scoped_lock Class Reference
-
-
- -

The scoped lock pattern for write locks. - More...

- -

#include <reader_writer_lock.h>

-
-Inheritance diagram for tbb::interface5::reader_writer_lock::scoped_lock:
-
-
- - - -
- - - - - - - - - - - - -

-Public Member Functions

scoped_lock (reader_writer_lock &lock)
 Construct with blocking attempt to acquire write lock on the passed-in lock.
 
~scoped_lock ()
 Destructor, releases the write lock.
 
-void * operator new (size_t s)
 
-void operator delete (void *p)
 
- - - -

-Friends

-class reader_writer_lock
 
-

Detailed Description

-

The scoped lock pattern for write locks.

-

Scoped locks help avoid the common problem of forgetting to release the lock. This type also serves as the node for queuing locks.

-

The documentation for this class was generated from the following file:
    -
  • reader_writer_lock.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00118.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00118.png deleted file mode 100644 index a999a7d0c..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00118.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00119.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00119.html deleted file mode 100644 index b0850cd93..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00119.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - -tbb::queuing_rw_mutex::scoped_lock Class Reference - - - - - - - -
- -
-
tbb::queuing_rw_mutex::scoped_lock Class Reference
-
-
- -

The scoped locking pattern. - More...

- -

#include <queuing_rw_mutex.h>

-
-Inheritance diagram for tbb::queuing_rw_mutex::scoped_lock:
-
-
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 scoped_lock ()
 Construct lock that has not acquired a mutex. More...
 
scoped_lock (queuing_rw_mutex &m, bool write=true)
 Acquire lock on given mutex.
 
~scoped_lock ()
 Release lock (if lock is held).
 
-void acquire (queuing_rw_mutex &m, bool write=true)
 Acquire lock on given mutex.
 
-bool try_acquire (queuing_rw_mutex &m, bool write=true)
 Acquire lock on given mutex if free (i.e. non-blocking)
 
-void release ()
 Release lock.
 
bool upgrade_to_writer ()
 Upgrade reader to become a writer. More...
 
-bool downgrade_to_reader ()
 Downgrade writer to become a reader.
 
-

Detailed Description

-

The scoped locking pattern.

-

It helps to avoid the common problem of forgetting to release lock. It also nicely provides the "node" for queuing locks.

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - -
tbb::queuing_rw_mutex::scoped_lock::scoped_lock ()
-
-inline
-
- -

Construct lock that has not acquired a mutex.

-

Equivalent to zero-initialization of *this.

- -
-
-

Member Function Documentation

- -
-
- - - - - - - -
bool tbb::queuing_rw_mutex::scoped_lock::upgrade_to_writer ()
-
- -

Upgrade reader to become a writer.

-

Returns whether the upgrade happened without releasing and re-acquiring the lock

- -
-
-
The documentation for this class was generated from the following file:
    -
  • queuing_rw_mutex.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00119.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00119.png deleted file mode 100644 index 227e99a9e..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00119.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00120.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00120.html deleted file mode 100644 index 9eae4cb97..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00120.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - -tbb::recursive_mutex::scoped_lock Class Reference - - - - - - - -
- -
-
tbb::recursive_mutex::scoped_lock Class Reference
-
-
- -

The scoped locking pattern. - More...

- -

#include <recursive_mutex.h>

-
-Inheritance diagram for tbb::recursive_mutex::scoped_lock:
-
-
- - - -
- - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

scoped_lock ()
 Construct lock that has not acquired a recursive_mutex.
 
scoped_lock (recursive_mutex &mutex)
 Acquire lock on given mutex.
 
~scoped_lock ()
 Release lock (if lock is held).
 
-void acquire (recursive_mutex &mutex)
 Acquire lock on given mutex.
 
-bool try_acquire (recursive_mutex &mutex)
 Try acquire lock on given recursive_mutex.
 
-void release ()
 Release lock.
 
- - - -

-Friends

-class recursive_mutex
 
-

Detailed Description

-

The scoped locking pattern.

-

It helps to avoid the common problem of forgetting to release lock. It also nicely provides the "node" for queuing locks.

-

The documentation for this class was generated from the following file:
    -
  • recursive_mutex.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00120.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00120.png deleted file mode 100644 index 9d4ec98b9..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00120.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00121.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00121.html deleted file mode 100644 index e3abd74cc..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00121.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - -tbb::queuing_mutex::scoped_lock Class Reference - - - - - - - -
- -
-
tbb::queuing_mutex::scoped_lock Class Reference
-
-
- -

The scoped locking pattern. - More...

- -

#include <queuing_mutex.h>

-
-Inheritance diagram for tbb::queuing_mutex::scoped_lock:
-
-
- - - -
- - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 scoped_lock ()
 Construct lock that has not acquired a mutex. More...
 
scoped_lock (queuing_mutex &m)
 Acquire lock on given mutex.
 
~scoped_lock ()
 Release lock (if lock is held).
 
-void __TBB_EXPORTED_METHOD acquire (queuing_mutex &m)
 Acquire lock on given mutex.
 
-bool __TBB_EXPORTED_METHOD try_acquire (queuing_mutex &m)
 Acquire lock on given mutex if free (i.e. non-blocking)
 
-void __TBB_EXPORTED_METHOD release ()
 Release lock.
 
-

Detailed Description

-

The scoped locking pattern.

-

It helps to avoid the common problem of forgetting to release lock. It also nicely provides the "node" for queuing locks.

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - -
tbb::queuing_mutex::scoped_lock::scoped_lock ()
-
-inline
-
- -

Construct lock that has not acquired a mutex.

-

Equivalent to zero-initialization of *this.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • queuing_mutex.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00121.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00121.png deleted file mode 100644 index 611457f0e..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00121.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00122.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00122.html deleted file mode 100644 index 8286c5623..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00122.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - -tbb::internal::critical_section_v4::scoped_lock Class Reference - - - - - - - -
- -
-
tbb::internal::critical_section_v4::scoped_lock Class Reference
-
-
-
-Inheritance diagram for tbb::internal::critical_section_v4::scoped_lock:
-
-
- - - -
- - - - -

-Public Member Functions

scoped_lock (critical_section_v4 &lock_me)
 
-
The documentation for this class was generated from the following file:
    -
  • critical_section.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00122.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00122.png deleted file mode 100644 index 15626cfa0..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00122.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00123.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00123.html deleted file mode 100644 index 3d39c81ed..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00123.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - -tbb::interface5::reader_writer_lock::scoped_lock_read Class Reference - - - - - - - -
- -
-
tbb::interface5::reader_writer_lock::scoped_lock_read Class Reference
-
-
- -

The scoped lock pattern for read locks. - More...

- -

#include <reader_writer_lock.h>

-
-Inheritance diagram for tbb::interface5::reader_writer_lock::scoped_lock_read:
-
-
- - - -
- - - - - - - - - - - - -

-Public Member Functions

scoped_lock_read (reader_writer_lock &lock)
 Construct with blocking attempt to acquire read lock on the passed-in lock.
 
~scoped_lock_read ()
 Destructor, releases the read lock.
 
-void * operator new (size_t s)
 
-void operator delete (void *p)
 
- - - -

-Friends

-class reader_writer_lock
 
-

Detailed Description

-

The scoped lock pattern for read locks.

-

The documentation for this class was generated from the following file:
    -
  • reader_writer_lock.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00123.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00123.png deleted file mode 100644 index 10066bd98..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00123.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00124.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00124.html deleted file mode 100644 index 28d324e72..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00124.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - -tbb::flow::interface7::sender< T > Class Template Reference - - - - - - -
- - - - - -
-
- -
-
tbb::flow::interface7::sender< T > Class Template Referenceabstract
-
-
- -

Pure virtual template class that defines a sender of messages of type T. - More...

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface7::sender< T >:
-
-
- - -tbb::flow::interface7::broadcast_node< T > -tbb::flow::interface7::buffer_node< T, A > -tbb::flow::interface7::limiter_node< T > -tbb::flow::interface7::overwrite_node< T > -tbb::flow::interface7::priority_queue_node< T, Compare, A > -tbb::flow::interface7::queue_node< T, A > -tbb::flow::interface7::write_once_node< T > -tbb::flow::interface7::sequencer_node< T, A > - -
- - - - - - - - -

-Public Types

-typedef T output_type
 The output type of this sender.
 
-typedef receiver< T > successor_type
 The successor type for this node.
 
- - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-virtual bool register_successor (successor_type &r)=0
 Add a new successor to this node.
 
-virtual bool remove_successor (successor_type &r)=0
 Removes a successor from this node.
 
-virtual bool try_get (T &)
 Request an item from the sender.
 
-virtual bool try_reserve (T &)
 Reserves an item in the sender.
 
-virtual bool try_release ()
 Releases the reserved item.
 
-virtual bool try_consume ()
 Consumes the reserved item.
 
-

Detailed Description

-

template<typename T>
-class tbb::flow::interface7::sender< T >

- -

Pure virtual template class that defines a sender of messages of type T.

-

The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00124.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00124.png deleted file mode 100644 index 4f10ba444..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00124.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00125.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00125.html deleted file mode 100644 index b27089d5d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00125.html +++ /dev/null @@ -1,309 +0,0 @@ - - - - - - -tbb::flow::interface7::sequencer_node< T, A > Class Template Reference - - - - - - - -
- -
-
tbb::flow::interface7::sequencer_node< T, A > Class Template Reference
-
-
- -

Forwards messages in sequence order. - More...

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface7::sequencer_node< T, A >:
-
-
- - -tbb::flow::interface7::queue_node< T, A > -tbb::flow::interface7::buffer_node< T, A > -tbb::flow::interface7::graph_node -tbb::flow::interface7::receiver< T > -tbb::flow::interface7::sender< T > - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
- Public Types inherited from tbb::flow::interface7::queue_node< T, A >
-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
- Public Types inherited from tbb::flow::interface7::buffer_node< T, A >
-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
-typedef buffer_node< T, A > my_class
 
- Public Types inherited from tbb::flow::interface7::receiver< T >
-typedef T input_type
 The input type of this receiver.
 
-typedef sender< T > predecessor_type
 The predecessor type for this node.
 
- Public Types inherited from tbb::flow::interface7::sender< T >
-typedef T output_type
 The output type of this sender.
 
-typedef receiver< T > successor_type
 The successor type for this node.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-template<typename Sequencer >
 sequencer_node (graph &g, const Sequencer &s)
 Constructor.
 
sequencer_node (const sequencer_node &src)
 Copy constructor.
 
~sequencer_node ()
 Destructor.
 
-void set_name (const char *name)
 
- Public Member Functions inherited from tbb::flow::interface7::queue_node< T, A >
queue_node (graph &g)
 Constructor.
 
queue_node (const queue_node &src)
 Copy constructor.
 
- Public Member Functions inherited from tbb::flow::interface7::buffer_node< T, A >
buffer_node (graph &g)
 Constructor.
 
buffer_node (const buffer_node &src)
 Copy constructor.
 
bool register_successor (receiver< output_type > &r)
 Adds a new successor. More...
 
bool remove_successor (receiver< output_type > &r)
 Removes a successor. More...
 
bool try_get (T &v)
 Request an item from the buffer_node. More...
 
bool try_reserve (T &v)
 Reserves an item. More...
 
bool try_release ()
 Release a reserved item. More...
 
bool try_consume ()
 Consumes a reserved item. More...
 
- Public Member Functions inherited from tbb::flow::interface7::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface7::receiver< T >
-virtual ~receiver ()
 Destructor.
 
-bool try_put (const T &t)
 Put an item to the receiver.
 
-virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
-virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
- - - - - - - - - - - - - - - - - - - - - - - -

-Protected Types

enum  op_stat { WAIT =0, -SUCCEEDED, -FAILED - }
 
-typedef buffer_node< T, A >
-::size_type 
size_type
 
-typedef buffer_node< T, A >
-::buffer_operation 
sequencer_operation
 
- Protected Types inherited from tbb::flow::interface7::queue_node< T, A >
enum  op_stat { WAIT =0, -SUCCEEDED, -FAILED - }
 
-typedef buffer_node< T, A >
-::size_type 
size_type
 
-typedef buffer_node< T, A >
-::buffer_operation 
queue_operation
 
- Protected Types inherited from tbb::flow::interface7::buffer_node< T, A >
enum  op_type {
-  reg_succ, -rem_succ, -req_item, -res_item, -
-  rel_res, -con_res, -put_item, -try_fwd_task -
- }
 
enum  op_stat { WAIT =0, -SUCCEEDED, -FAILED - }
 
-typedef size_t size_type
 
-typedef
-internal::aggregating_functor
-< my_class, buffer_operation
my_handler
 
- - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Protected Member Functions inherited from tbb::flow::interface7::queue_node< T, A >
-void internal_forward_task (queue_operation *op)
 Tries to forward valid items to successors.
 
-void internal_pop (queue_operation *op)
 
-void internal_reserve (queue_operation *op)
 
-void internal_consume (queue_operation *op)
 
- Protected Attributes inherited from tbb::flow::interface7::buffer_node< T, A >
-internal::round_robin_cache< T,
-null_rw_mutex
my_successors
 
-bool forwarder_busy
 
-internal::aggregator
-< my_handler, buffer_operation
my_aggregator
 
-

Detailed Description

-

template<typename T, typename A = cache_aligned_allocator<T>>
-class tbb::flow::interface7::sequencer_node< T, A >

- -

Forwards messages in sequence order.

-

The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00125.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00125.png deleted file mode 100644 index ba8cb4d8e..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00125.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00126.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00126.html deleted file mode 100644 index d79f73699..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00126.html +++ /dev/null @@ -1,214 +0,0 @@ - - - - - - -tbb::flow::interface7::source_node< Output > Class Template Reference - - - - - - - -
- -
-
tbb::flow::interface7::source_node< Output > Class Template Reference
-
-
- -

An executable node that acts as a source, i.e. it has no predecessors. - More...

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface7::source_node< Output >:
-
-
- - -tbb::flow::interface7::graph_node -tbb::flow::interface7::sender< Output > - -
- - - - - - - - - - - - - - - -

-Public Types

-typedef Output output_type
 The type of the output message, which is complete.
 
-typedef receiver< Output > successor_type
 The type of successors of this node.
 
- Public Types inherited from tbb::flow::interface7::sender< Output >
-typedef Output output_type
 The output type of this sender.
 
-typedef receiver< Output > successor_type
 The successor type for this node.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-template<typename Body >
 source_node (graph &g, Body body, bool is_active=true)
 Constructor for a node with a successor.
 
source_node (const source_node &src)
 Copy constructor.
 
~source_node ()
 The destructor.
 
-void set_name (const char *name)
 
-bool register_successor (receiver< output_type > &r)
 Add a new successor to this node.
 
-bool remove_successor (receiver< output_type > &r)
 Removes a successor from this node.
 
-bool try_get (output_type &v)
 Request an item from the node.
 
-bool try_reserve (output_type &v)
 Reserves an item.
 
bool try_release ()
 Release a reserved item. More...
 
-bool try_consume ()
 Consumes a reserved item.
 
-void activate ()
 Activates a node that was created in the inactive state.
 
-template<typename Body >
Body copy_function_object ()
 
- Public Member Functions inherited from tbb::flow::interface7::graph_node
graph_node (graph &g)
 
- - - - -

-Protected Member Functions

-void reset ()
 resets the node to its initial state
 
- - - -

-Friends

-class internal::source_task_bypass< source_node< output_type > >
 
- - - - - - - - -

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface7::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
-

Detailed Description

-

template<typename Output>
-class tbb::flow::interface7::source_node< Output >

- -

An executable node that acts as a source, i.e. it has no predecessors.

-

Member Function Documentation

- -
-
-
-template<typename Output >
- - - - - -
- - - - - - - -
bool tbb::flow::interface7::source_node< Output >::try_release ()
-
-inlinevirtual
-
- -

Release a reserved item.

-

true = item has been released and so remains in sender, dest must request or reserve future items

- -

Reimplemented from tbb::flow::interface7::sender< Output >.

- -
-
-
The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00126.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00126.png deleted file mode 100644 index a81f0d4ae..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00126.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00127.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00127.html deleted file mode 100644 index afd622089..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00127.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - -tbb::spin_mutex Class Reference - - - - - - - - -
- -

A lock that occupies a single byte. - More...

- -

#include <spin_mutex.h>

- - - - - -

-Classes

class  scoped_lock
 Represents acquisition of a mutex. More...
 
- - - - - - - - - - - - - - - - -

-Public Member Functions

 spin_mutex ()
 Construct unacquired lock. More...
 
-void __TBB_EXPORTED_METHOD internal_construct ()
 Internal constructor with ITT instrumentation.
 
-void lock ()
 Acquire lock.
 
bool try_lock ()
 Try acquiring lock (non-blocking) More...
 
-void unlock ()
 Release lock.
 
- - - - - - - -

-Static Public Attributes

-static const bool is_rw_mutex = false
 
-static const bool is_recursive_mutex = false
 
-static const bool is_fair_mutex = false
 
- - - -

-Friends

-class scoped_lock
 
-

Detailed Description

-

A lock that occupies a single byte.

-

A spin_mutex is a spin mutex that fits in a single byte. It should be used only for locking short critical sections (typically less than 20 instructions) when fairness is not an issue. If zero-initialized, the mutex is considered unheld.

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - -
tbb::spin_mutex::spin_mutex ()
-
-inline
-
- -

Construct unacquired lock.

-

Equivalent to zero-initialization of *this.

- -

References internal_construct().

- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
bool tbb::spin_mutex::try_lock ()
-
-inline
-
- -

Try acquiring lock (non-blocking)

-

Return true if lock acquired; false otherwise.

- -

References tbb::aligned_space< T, N >::begin().

- -
-
-
The documentation for this class was generated from the following file:
    -
  • spin_mutex.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00128.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00128.html deleted file mode 100644 index 599407f32..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00128.html +++ /dev/null @@ -1,228 +0,0 @@ - - - - - - -tbb::spin_rw_mutex_v3 Class Reference - - - - - - - - -
- -

Fast, unfair, spinning reader-writer lock with backoff and writer-preference. - More...

- -

#include <spin_rw_mutex.h>

- - - - - -

-Classes

class  scoped_lock
 The scoped locking pattern. More...
 
- - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

spin_rw_mutex_v3 ()
 Construct unacquired mutex.
 
~spin_rw_mutex_v3 ()
 Destructor asserts if the mutex is acquired, i.e. state is zero.
 
-void lock ()
 Acquire writer lock.
 
bool try_lock ()
 Try acquiring writer lock (non-blocking) More...
 
-void unlock ()
 Release lock.
 
-void lock_read ()
 Acquire reader lock.
 
bool try_lock_read ()
 Try acquiring reader lock (non-blocking) More...
 
- - - - - - - -

-Static Public Attributes

-static const bool is_rw_mutex = true
 
-static const bool is_recursive_mutex = false
 
-static const bool is_fair_mutex = false
 
- - - -

-Protected Types

-typedef intptr_t state_t
 
- - - - -

-Protected Attributes

state_t state
 State of lock. More...
 
- - - - - - - - - - - -

-Static Protected Attributes

-static const state_t WRITER = 1
 
-static const state_t WRITER_PENDING = 2
 
-static const state_t READERS = ~(WRITER | WRITER_PENDING)
 
-static const state_t ONE_READER = 4
 
-static const state_t BUSY = WRITER | READERS
 
-

Detailed Description

-

Fast, unfair, spinning reader-writer lock with backoff and writer-preference.

-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
bool tbb::spin_rw_mutex_v3::try_lock ()
-
-inline
-
- -

Try acquiring writer lock (non-blocking)

-

Return true if lock acquired; false otherwise.

- -
-
- -
-
- - - - - -
- - - - - - - -
bool tbb::spin_rw_mutex_v3::try_lock_read ()
-
-inline
-
- -

Try acquiring reader lock (non-blocking)

-

Return true if reader lock acquired; false otherwise.

- -
-
-

Member Data Documentation

- -
-
- - - - - -
- - - - -
state_t tbb::spin_rw_mutex_v3::state
-
-protected
-
- -

State of lock.

-

Bit 0 = writer is holding lock Bit 1 = request by a writer to acquire lock (hint to readers to wait) Bit 2..N = number of readers holding lock

- -

Referenced by tbb::spin_rw_mutex_v3::scoped_lock::release(), and unlock().

- -
-
-
The documentation for this class was generated from the following file:
    -
  • spin_rw_mutex.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00129.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00129.html deleted file mode 100644 index fa3beb017..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00129.html +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - -tbb::split Class Reference - - - - - - - -
-
-
tbb::split Class Reference
-
-
- -

Dummy type that distinguishes splitting constructor from copy constructor. - More...

- -

#include <tbb_stddef.h>

-

Detailed Description

-

Dummy type that distinguishes splitting constructor from copy constructor.

-

See description of parallel_for and parallel_reduce for example usages.

-

The documentation for this class was generated from the following file:
    -
  • tbb_stddef.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00130.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00130.html deleted file mode 100644 index 65a7e0892..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00130.html +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - -tbb::flow::interface7::split_node< TupleType, Allocator > Class Template Reference - - - - - - - -
- -
-
tbb::flow::interface7::split_node< TupleType, Allocator > Class Template Reference
-
-
- -

split_node: accepts a tuple as input, forwards each element of the tuple to its - More...

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface7::split_node< TupleType, Allocator >:
-
-
- - -tbb::flow::interface7::multifunction_node< TupleType, TupleType, rejecting, Allocator > -tbb::flow::interface7::graph_node - -
- - - - - - - - - - - - - -

-Public Types

-typedef
-base_type::output_ports_type 
output_ports_type
 
-typedef TupleType input_type
 
-typedef Allocator allocator_type
 
- Public Types inherited from tbb::flow::interface7::multifunction_node< TupleType, TupleType, rejecting, Allocator >
-typedef TupleType input_type
 
-typedef
-internal::wrap_tuple_elements
-< N,
-internal::multifunction_output,
-TupleType >::type 
output_ports_type
 
- - - - - - - - - - - - - - - - - -

-Public Member Functions

split_node (graph &g)
 
split_node (const split_node &other)
 
-void set_name (const char *name)
 
- Public Member Functions inherited from tbb::flow::interface7::multifunction_node< TupleType, TupleType, rejecting, Allocator >
multifunction_node (graph &g, size_t concurrency, Body body)
 
multifunction_node (const multifunction_node &other)
 
-void set_name (const char *name)
 
- Public Member Functions inherited from tbb::flow::interface7::graph_node
graph_node (graph &g)
 
- - - - - - - - - - - -

-Additional Inherited Members

- Protected Member Functions inherited from tbb::flow::interface7::multifunction_node< TupleType, TupleType, rejecting, Allocator >
-void reset ()
 
- Protected Attributes inherited from tbb::flow::interface7::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
-

Detailed Description

-

template<typename TupleType, typename Allocator = cache_aligned_allocator<TupleType>>
-class tbb::flow::interface7::split_node< TupleType, Allocator >

- -

split_node: accepts a tuple as input, forwards each element of the tuple to its

-

The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00130.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00130.png deleted file mode 100644 index 280b87516..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00130.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00131.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00131.html deleted file mode 100644 index ee4953427..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00131.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - -tbb::internal::STATIC_ASSERTION_FAILED< condition > Struct Template Reference - - - - - - - -
-
-
tbb::internal::STATIC_ASSERTION_FAILED< condition > Struct Template Reference
-
-
-
The documentation for this struct was generated from the following file:
    -
  • tbb_stddef.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00132.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00132.html deleted file mode 100644 index 044a16177..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00132.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - -tbb::internal::STATIC_ASSERTION_FAILED< false > Struct Template Reference - - - - - - - -
- -
-
tbb::internal::STATIC_ASSERTION_FAILED< false > Struct Template Reference
-
-
- - - - -

-Public Types

enum  { value =1 - }
 
-
The documentation for this struct was generated from the following file:
    -
  • tbb_stddef.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00133.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00133.html deleted file mode 100644 index c471193aa..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00133.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - -tbb::structured_task_group Class Reference - - - - - - - -
- -
-
tbb::structured_task_group Class Reference
-
-
-
-Inheritance diagram for tbb::structured_task_group:
-
-
- - -tbb::internal::task_group_base - -
- - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-template<typename F >
task_group_status run_and_wait (task_handle< F > &h)
 
-task_group_status wait ()
 
- Public Member Functions inherited from tbb::internal::task_group_base
task_group_base (uintptr_t traits=0)
 
-template<typename F >
void run (task_handle< F > &h)
 
-task_group_status wait ()
 
-bool is_canceling ()
 
-void cancel ()
 
- - - - - - - - - - - - - - - -

-Additional Inherited Members

- Protected Member Functions inherited from tbb::internal::task_group_base
-task & owner ()
 
-template<typename F >
task_group_status internal_run_and_wait (F &f)
 
-template<typename F , typename Task >
void internal_run (F &f)
 
- Protected Attributes inherited from tbb::internal::task_group_base
-empty_task * my_root
 
-task_group_context my_context
 
-
The documentation for this class was generated from the following file:
    -
  • task_group.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00133.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00133.png deleted file mode 100644 index f9335edce..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00133.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00134.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00134.html deleted file mode 100644 index 2d5b3a2cc..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00134.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - -tbb::flow::interface7::internal::successor_cache< T, M > Class Template Reference - - - - - - -
- - - - - -
-
-
-
tbb::flow::interface7::internal::successor_cache< T, M > Class Template Reference
-
-
-
The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00135.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00135.html deleted file mode 100644 index c7a5259f3..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00135.html +++ /dev/null @@ -1,382 +0,0 @@ - - - - - - -tbb::interface7::task_arena Class Reference - - - - - - - -
- -
-
tbb::interface7::task_arena Class Reference
-
-
- -

#include <task_arena.h>

-
-Inheritance diagram for tbb::interface7::task_arena:
-
-
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 task_arena (int max_concurrency=automatic, unsigned reserved_for_masters=1)
 Creates task_arena with certain concurrency limits. More...
 
task_arena (const task_arena &s)
 Copies settings from another task_arena.
 
-void initialize ()
 Forces allocation of the resources for the task_arena as specified in constructor arguments.
 
-void initialize (int max_concurrency, unsigned reserved_for_masters=1)
 Overrides concurrency level and forces initialization of internal representation.
 
void terminate ()
 
 ~task_arena ()
 
bool is_active () const
 
template<typename F >
void enqueue (const F &f)
 
template<typename F >
void enqueue (const F &f, priority_t p)
 
template<typename F >
void execute (F &f)
 
template<typename F >
void execute (const F &f)
 
void debug_wait_until_empty ()
 
- - - - -

-Static Public Member Functions

-static int current_slot ()
 Returns the index, aka slot number, of the calling thread in its current arena.
 
- - - -

-Friends

-class tbb::internal::task_scheduler_observer_v3
 
-

Detailed Description

-

1-to-1 proxy representation class of scheduler's arena Constructors set up settings only, real construction is deferred till the first method invocation Destructor only removes one of the references to the inner arena representation. Final destruction happens when all the references (and the work) are gone.

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
tbb::interface7::task_arena::task_arena (int max_concurrency = automatic,
unsigned reserved_for_masters = 1 
)
-
-inline
-
- -

Creates task_arena with certain concurrency limits.

-

Sets up settings only, real construction is deferred till the first method invocation

-
    -
  • max_concurrency specifies total number of slots in arena where threads work
  • -
  • reserved_for_masters specifies number of slots to be used by master threads only. Value of 1 is default and reflects behavior of implicit arenas.
  • -
- -
-
- -
-
- - - - - -
- - - - - - - -
tbb::interface7::task_arena::~task_arena ()
-
-inline
-
-

Removes the reference to the internal arena representation, and destroys the external object. Not thread safe wrt concurrent invocations of other methods.

- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
void tbb::interface7::task_arena::debug_wait_until_empty ()
-
-inline
-
-

Wait for all work in the arena to be completed Even submitted by other application threads Joins arena if/when possible (in the same way as execute())

- -
-
- -
-
-
-template<typename F >
- - - - - -
- - - - - - - - -
void tbb::interface7::task_arena::enqueue (const F & f)
-
-inline
-
-

Enqueues a task into the arena to process a functor, and immediately returns. Does not require the calling thread to join the arena

- -
-
- -
-
-
-template<typename F >
- - - - - -
- - - - - - - - - - - - - - - - - - -
void tbb::interface7::task_arena::enqueue (const F & f,
priority_t p 
)
-
-inline
-
-

Enqueues a task with priority p into the arena to process a functor f, and immediately returns. Does not require the calling thread to join the arena

- -
-
- -
-
-
-template<typename F >
- - - - - -
- - - - - - - - -
void tbb::interface7::task_arena::execute (F & f)
-
-inline
-
-

Joins the arena and executes a functor, then returns If not possible to join, wraps the functor into a task, enqueues it and waits for task completion Can decrement the arena demand for workers, causing a worker to leave and free a slot to the calling thread

- -
-
- -
-
-
-template<typename F >
- - - - - -
- - - - - - - - -
void tbb::interface7::task_arena::execute (const F & f)
-
-inline
-
-

Joins the arena and executes a functor, then returns If not possible to join, wraps the functor into a task, enqueues it and waits for task completion Can decrement the arena demand for workers, causing a worker to leave and free a slot to the calling thread

- -
-
- -
-
- - - - - -
- - - - - - - -
bool tbb::interface7::task_arena::is_active () const
-
-inline
-
-

Returns true if the arena is active (initialized); false otherwise. The name was chosen to match a task_scheduler_init method with the same semantics.

- -
-
- -
-
- - - - - -
- - - - - - - -
void tbb::interface7::task_arena::terminate ()
-
-inline
-
-

Removes the reference to the internal arena representation. Not thread safe wrt concurrent invocations of other methods.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • task_arena.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00135.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00135.png deleted file mode 100644 index e9685d417..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00135.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00136.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00136.html deleted file mode 100644 index 1ed3b67af..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00136.html +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - -tbb::task_group Class Reference - - - - - - - -
- -
-
tbb::task_group Class Reference
-
-
-
-Inheritance diagram for tbb::task_group:
-
-
- - -tbb::internal::task_group_base - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

catch (...)
 
-template<typename F >
void run (task_handle< F > &h)
 
-template<typename F >
void run (const F &f)
 
-template<typename F >
task_group_status run_and_wait (const F &f)
 
-template<typename F >
task_group_status run_and_wait (task_handle< F > &h)
 
- Public Member Functions inherited from tbb::internal::task_group_base
task_group_base (uintptr_t traits=0)
 
-template<typename F >
void run (task_handle< F > &h)
 
-task_group_status wait ()
 
-bool is_canceling ()
 
-void cancel ()
 
- - - - - - - - - - - - - - - -

-Additional Inherited Members

- Protected Member Functions inherited from tbb::internal::task_group_base
-task & owner ()
 
-template<typename F >
task_group_status internal_run_and_wait (F &f)
 
-template<typename F , typename Task >
void internal_run (F &f)
 
- Protected Attributes inherited from tbb::internal::task_group_base
-empty_task * my_root
 
-task_group_context my_context
 
-
The documentation for this class was generated from the following file:
    -
  • task_group.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00136.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00136.png deleted file mode 100644 index d42b601be..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00136.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00137.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00137.html deleted file mode 100644 index f8b715d19..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00137.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - -tbb::internal::task_group_base Class Reference - - - - - - - -
- -
-
tbb::internal::task_group_base Class Reference
-
-
-
-Inheritance diagram for tbb::internal::task_group_base:
-
-
- - -tbb::structured_task_group -tbb::task_group - -
- - - - - - - - - - - - - -

-Public Member Functions

task_group_base (uintptr_t traits=0)
 
-template<typename F >
void run (task_handle< F > &h)
 
-task_group_status wait ()
 
-bool is_canceling ()
 
-void cancel ()
 
- - - - - - - - - -

-Protected Member Functions

-task & owner ()
 
-template<typename F >
task_group_status internal_run_and_wait (F &f)
 
-template<typename F , typename Task >
void internal_run (F &f)
 
- - - - - -

-Protected Attributes

-empty_task * my_root
 
-task_group_context my_context
 
-
The documentation for this class was generated from the following file:
    -
  • task_group.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00137.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00137.png deleted file mode 100644 index e95fec554..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00137.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00138.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00138.html deleted file mode 100644 index 7dc9ed027..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00138.html +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - -tbb::task_group_context Struct Reference - - - - - - - -
-
-
tbb::task_group_context Struct Reference
-
-
- -

#include <parallel_invoke.h>

-

Detailed Description

-

Dummy to avoid cluttering the bulk of the header with enormous amount of ifdefs.

-

The documentation for this struct was generated from the following file:
    -
  • parallel_invoke.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00139.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00139.html deleted file mode 100644 index ebc109bd7..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00139.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - -tbb::task_handle< F > Class Template Reference - - - - - - - -
- -
-
tbb::task_handle< F > Class Template Reference
-
-
-
-Inheritance diagram for tbb::task_handle< F >:
-
-
- - - -
- - - - - - -

-Public Member Functions

task_handle (const F &f)
 
-void operator() () const
 
- - - - - - - - -

-Friends

-template<typename _F >
class internal::task_handle_task
 
-class task_group
 
-class structured_task_group
 
-
The documentation for this class was generated from the following file:
    -
  • task_group.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00139.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00139.png deleted file mode 100644 index 5f640e9e7..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00139.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00140.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00140.html deleted file mode 100644 index 5e306d8cb..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00140.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - -tbb::internal::task_handle_task< F > Class Template Reference - - - - - - - -
- -
-
tbb::internal::task_handle_task< F > Class Template Reference
-
-
-
-Inheritance diagram for tbb::internal::task_handle_task< F >:
-
-
- - - -
- - - - -

-Public Member Functions

task_handle_task (task_handle< F > &h)
 
-
The documentation for this class was generated from the following file:
    -
  • task_group.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00140.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00140.png deleted file mode 100644 index 229263c62..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00140.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00141.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00141.html deleted file mode 100644 index c045a16d3..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00141.html +++ /dev/null @@ -1,215 +0,0 @@ - - - - - - -tbb::task_scheduler_init Class Reference - - - - - - - - -
- -

Class delimiting the scope of task scheduler activity. - More...

- -

#include <task_scheduler_init.h>

-
-Inheritance diagram for tbb::task_scheduler_init:
-
-
- - - -
- - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

void __TBB_EXPORTED_METHOD initialize (int number_of_threads=automatic)
 Ensure that scheduler exists for this thread. More...
 
void __TBB_EXPORTED_METHOD initialize (int number_of_threads, stack_size_type thread_stack_size)
 The overloaded method with stack size parameter. More...
 
-void __TBB_EXPORTED_METHOD terminate ()
 Inverse of method initialize.
 
if (wait_workers_in_terminate) my_scheduler
 
initialize (number_of_threads, thread_stack_size)
 
~task_scheduler_init ()
 Destroy scheduler for this thread if thread has no other live task_scheduler_inits.
 
-bool is_active () const
 Returns true if scheduler is active (initialized); false otherwise.
 
- - - - -

-Static Public Member Functions

static int __TBB_EXPORTED_FUNC default_num_threads ()
 Returns the number of threads TBB scheduler would create if initialized by default. More...
 
- - - - -

-Public Attributes

-task_scheduler_init(int
-number_of_threads=automatic,
-stack_size_type
-thread_stack_size=0, bool
-wait_workers_in_terminate=false) 
thread_stack_size = TBB_USE_CAPTURED_EXCEPTION ? propagation_mode_captured : propagation_mode_exact
 Shorthand for default constructor followed by call to initialize(number_of_threads).
 
- - - - - - - -

-Static Public Attributes

-static const int automatic = -1
 Typedef for number of threads that is automatic.
 
-static const int deferred = -2
 Argument to initialize() or constructor that causes initialization to be deferred.
 
-

Detailed Description

-

Class delimiting the scope of task scheduler activity.

-

A thread can construct a task_scheduler_init object and keep it alive while it uses TBB's tasking subsystem (including parallel algorithms).

-

This class allows to customize properties of the TBB task pool to some extent. For example it can limit concurrency level of parallel work initiated by the given thread. It also can be used to specify stack size of the TBB worker threads, though this setting is not effective if the thread pool has already been created.

-

If a parallel construct is used without task_scheduler_init object previously created, the scheduler will be initialized automatically with default settings, and will persist until this thread exits. Default concurrency level is defined as described in task_scheduler_init::initialize().

-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
static int __TBB_EXPORTED_FUNC tbb::task_scheduler_init::default_num_threads ()
-
-static
-
- -

Returns the number of threads TBB scheduler would create if initialized by default.

-

Result returned by this method does not depend on whether the scheduler has already been initialized.

-

Because tbb 2.0 does not support blocking tasks yet, you may use this method to boost the number of threads in the tbb's internal pool, if your tasks are doing I/O operations. The optimal number of additional threads depends on how much time your tasks spend in the blocked state.

-

Before TBB 3.0 U4 this method returned the number of logical CPU in the system. Currently on Windows, Linux and FreeBSD it returns the number of logical CPUs available to the current process in accordance with its affinity mask.

-

NOTE: The return value of this method never changes after its first invocation. This means that changes in the process affinity mask that took place after this method was first invoked will not affect the number of worker threads in the TBB worker threads pool.

- -
-
- -
-
- - - - - - - - -
void __TBB_EXPORTED_METHOD tbb::task_scheduler_init::initialize (int number_of_threads = automatic)
-
- -

Ensure that scheduler exists for this thread.

-

A value of -1 lets TBB decide on the number of threads, which is usually maximal hardware concurrency for this process, that is the number of logical CPUs on the machine (possibly limited by the processor affinity mask of this process (Windows) or of this thread (Linux, FreeBSD). It is preferable option for production code because it helps to avoid nasty surprises when several TBB based components run side-by-side or in a nested fashion inside the same process.

-

The number_of_threads is ignored if any other task_scheduler_inits currently exist. A thread may construct multiple task_scheduler_inits. Doing so does no harm because the underlying scheduler is reference counted.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
void __TBB_EXPORTED_METHOD tbb::task_scheduler_init::initialize (int number_of_threads,
stack_size_type thread_stack_size 
)
-
- -

The overloaded method with stack size parameter.

-

Overloading is necessary to preserve ABI compatibility

- -
-
-
The documentation for this class was generated from the following file:
    -
  • task_scheduler_init.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00141.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00141.png deleted file mode 100644 index 58550fd5a..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00141.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00142.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00142.html deleted file mode 100644 index 2c10e55da..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00142.html +++ /dev/null @@ -1,206 +0,0 @@ - - - - - - -tbb::interface6::task_scheduler_observer Class Reference - - - - - - - -
- -
-
tbb::interface6::task_scheduler_observer Class Reference
-
-
-
-Inheritance diagram for tbb::interface6::task_scheduler_observer:
-
-
- - -tbb::internal::task_scheduler_observer_v3 - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 task_scheduler_observer (bool local=false)
 Construct local or global observer in inactive state (observation disabled). More...
 
 task_scheduler_observer (task_arena &a)
 Construct local observer for a given arena in inactive state (observation disabled). More...
 
-virtual ~task_scheduler_observer ()
 Destructor additionally protects concurrent on_scheduler_leaving notification.
 
virtual bool on_scheduler_leaving ()
 The callback can be invoked in a worker thread before it leaves an arena. More...
 
- Public Member Functions inherited from tbb::internal::task_scheduler_observer_v3
void __TBB_EXPORTED_METHOD observe (bool state=true)
 Enable or disable observation. More...
 
-bool is_observing () const
 Returns true if observation is enabled, false otherwise.
 
task_scheduler_observer_v3 ()
 Construct observer with observation disabled.
 
virtual void on_scheduler_entry (bool)
 Entry notification. More...
 
virtual void on_scheduler_exit (bool)
 Exit notification. More...
 
-virtual ~task_scheduler_observer_v3 ()
 Destructor automatically switches observation off if it is enabled.
 
- - - - - - - -

-Friends

-class internal::task_scheduler_observer_v3
 
-class internal::observer_proxy
 
-class internal::observer_list
 
-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - - -
tbb::interface6::task_scheduler_observer::task_scheduler_observer (bool local = false)
-
-inline
-
- -

Construct local or global observer in inactive state (observation disabled).

-

For a local observer entry/exit notifications are invoked whenever a worker thread joins/leaves the arena of the observer's owner thread. If a thread is already in the arena when the observer is activated, the entry notification is called before it executes the first stolen task. TODO: Obsolete. Global observer semantics is obsolete as it violates master thread isolation guarantees and is not composable. Thus the current default behavior of the constructor is obsolete too and will be changed in one of the future versions of the library.

- -

References tbb::relaxed.

- -
-
- -
-
- - - - - -
- - - - - - - - -
tbb::interface6::task_scheduler_observer::task_scheduler_observer (task_arena & a)
-
-inline
-
- -

Construct local observer for a given arena in inactive state (observation disabled).

-

entry/exit notifications are invoked whenever a thread joins/leaves arena. If a thread is already in the arena when the observer is activated, the entry notification is called before it executes the first stolen task.

- -

References tbb::relaxed.

- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
virtual bool tbb::interface6::task_scheduler_observer::on_scheduler_leaving ()
-
-inlinevirtual
-
- -

The callback can be invoked in a worker thread before it leaves an arena.

-

If it returns false, the thread remains in the arena. Will not be called for masters or if the worker leaves arena due to rebalancing or priority changes, etc. NOTE: The preview library must be linked for this method to take effect

- -
-
-
The documentation for this class was generated from the following file:
    -
  • task_scheduler_observer.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00142.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00142.png deleted file mode 100644 index 37496e907..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00142.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00143.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00143.html deleted file mode 100644 index 08b8027c4..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00143.html +++ /dev/null @@ -1,185 +0,0 @@ - - - - - - -tbb::internal::task_scheduler_observer_v3 Class Reference - - - - - - - -
- -
-
tbb::internal::task_scheduler_observer_v3 Class Reference
-
-
-
-Inheritance diagram for tbb::internal::task_scheduler_observer_v3:
-
-
- - -tbb::interface6::task_scheduler_observer - -
- - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

void __TBB_EXPORTED_METHOD observe (bool state=true)
 Enable or disable observation. More...
 
-bool is_observing () const
 Returns true if observation is enabled, false otherwise.
 
task_scheduler_observer_v3 ()
 Construct observer with observation disabled.
 
virtual void on_scheduler_entry (bool)
 Entry notification. More...
 
virtual void on_scheduler_exit (bool)
 Exit notification. More...
 
-virtual ~task_scheduler_observer_v3 ()
 Destructor automatically switches observation off if it is enabled.
 
- - - - - - - -

-Friends

-class observer_proxy
 
-class observer_list
 
-class interface6::task_scheduler_observer
 
-

Member Function Documentation

- -
-
- - - - - - - - -
void __TBB_EXPORTED_METHOD tbb::internal::task_scheduler_observer_v3::observe (bool state = true)
-
- -

Enable or disable observation.

-

For local observers the method can be used only when the current thread has the task scheduler initialized or is attached to an arena.

-

Repeated calls with the same state are no-ops.

- -

Referenced by tbb::interface6::task_scheduler_observer::~task_scheduler_observer(), and ~task_scheduler_observer_v3().

- -
-
- -
-
- - - - - -
- - - - - - - - -
virtual void tbb::internal::task_scheduler_observer_v3::on_scheduler_entry (bool )
-
-inlinevirtual
-
- -

Entry notification.

-

Invoked from inside observe(true) call and whenever a worker enters the arena this observer is associated with. If a thread is already in the arena when the observer is activated, the entry notification is called before it executes the first stolen task.

-

Obsolete semantics. For global observers it is called by a thread before the first steal since observation became enabled.

- -
-
- -
-
- - - - - -
- - - - - - - - -
virtual void tbb::internal::task_scheduler_observer_v3::on_scheduler_exit (bool )
-
-inlinevirtual
-
- -

Exit notification.

-

Invoked from inside observe(false) call and whenever a worker leaves the arena this observer is associated with.

-

Obsolete semantics. For global observers it is called by a thread before the first steal since observation became enabled.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • task_scheduler_observer.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00143.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00143.png deleted file mode 100644 index b87088c72..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00143.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00144.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00144.html deleted file mode 100644 index 4fbac5011..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00144.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - -tbb::tbb_allocator< T > Class Template Reference - - - - - - - -
- -
-
tbb::tbb_allocator< T > Class Template Reference
-
-
- -

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. - More...

- -

#include <tbb_allocator.h>

- - - - -

-Classes

struct  rebind
 
- - - - - - - - - - - - - - - - - - -

-Public Types

enum  malloc_type { scalable, -standard - }
 Specifies current allocator.
 
-typedef
-internal::allocator_type< T >
-::value_type 
value_type
 
-typedef value_type * pointer
 
-typedef const value_type * const_pointer
 
-typedef value_type & reference
 
-typedef const value_type & const_reference
 
-typedef size_t size_type
 
-typedef ptrdiff_t difference_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

tbb_allocator (const tbb_allocator &) throw ()
 
-template<typename U >
 tbb_allocator (const tbb_allocator< U > &) throw ()
 
-pointer address (reference x) const
 
-const_pointer address (const_reference x) const
 
-pointer allocate (size_type n, const void *=0)
 Allocate space for n objects.
 
-void deallocate (pointer p, size_type)
 Free previously allocated block of memory.
 
-size_type max_size () const throw ()
 Largest value for which method allocate might succeed.
 
-template<typename U , typename... Args>
void construct (U *p, Args &&...args)
 Copy-construct value at location pointed to by p.
 
-void construct (pointer p, const value_type &value)
 
-void destroy (pointer p)
 Destroy value at location pointed to by p.
 
- - - - -

-Static Public Member Functions

-static malloc_type allocator_type ()
 Returns current allocator.
 
-

Detailed Description

-

template<typename T>
-class tbb::tbb_allocator< T >

- -

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5.

-

The class selects the best memory allocation mechanism available from scalable_malloc and standard malloc. The members are ordered the same way they are in section 20.4.1 of the ISO C++ standard.

-

The documentation for this class was generated from the following file:
    -
  • tbb_allocator.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00145.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00145.html deleted file mode 100644 index 97027b5b7..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00145.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - -tbb::tbb_allocator< void > Class Template Reference - - - - - - - -
- -
-
tbb::tbb_allocator< void > Class Template Reference
-
-
- -

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. - More...

- -

#include <tbb_allocator.h>

- - - - -

-Classes

struct  rebind
 
- - - - - - - -

-Public Types

-typedef void * pointer
 
-typedef const void * const_pointer
 
-typedef void value_type
 
-

Detailed Description

-

template<>
-class tbb::tbb_allocator< void >

- -

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1.

-

The documentation for this class was generated from the following file:
    -
  • tbb_allocator.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00146.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00146.html deleted file mode 100644 index fd3142dda..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00146.html +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - -tbb::tbb_exception Class Reference - - - - - - - -
- -
-
tbb::tbb_exception Class Referenceabstract
-
-
- -

Interface to be implemented by all exceptions TBB recognizes and propagates across the threads. - More...

- -

#include <tbb_exception.h>

-
-Inheritance diagram for tbb::tbb_exception:
-
-
- - -tbb::captured_exception -tbb::movable_exception< ExceptionData > - -
- - - - - - - - - - - - - - - - - - - -

-Public Member Functions

virtual tbb_exceptionmove ()=0 throw ()
 Creates and returns pointer to the deep copy of this exception object. More...
 
virtual void destroy ()=0 throw ()
 Destroys objects created by the move() method. More...
 
virtual void throw_self ()=0
 Throws this exception object. More...
 
-virtual const char * name () const =0 throw ()
 Returns RTTI name of the originally intercepted exception.
 
-virtual const char * what () const =0 throw ()
 Returns the result of originally intercepted exception's what() method.
 
void operator delete (void *p)
 
-

Detailed Description

-

Interface to be implemented by all exceptions TBB recognizes and propagates across the threads.

-

If an unhandled exception of the type derived from tbb::tbb_exception is intercepted by the TBB scheduler in one of the worker threads, it is delivered to and re-thrown in the root thread. The root thread is the thread that has started the outermost algorithm or root task sharing the same task_group_context with the guilty algorithm/task (the one that threw the exception first).

-

Note: when documentation mentions workers with respect to exception handling, masters are implied as well, because they are completely equivalent in this context. Consequently a root thread can be master or worker thread.

-

NOTE: In case of nested algorithms or complex task hierarchies when the nested levels share (explicitly or by means of implicit inheritance) the task group context of the outermost level, the exception may be (re-)thrown multiple times (ultimately - in each worker on each nesting level) before reaching the root thread at the outermost level. IMPORTANT: if you intercept an exception derived from this class on a nested level, you must re-throw it in the catch block by means of the "throw;" operator.

-

TBB provides two implementations of this interface: tbb::captured_exception and template class tbb::movable_exception. See their declarations for more info.

-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - - - - - - - -
virtual void tbb::tbb_exception::destroy ()
throw (
)
-
-pure virtual
-
- -

Destroys objects created by the move() method.

-

Frees memory and calls destructor for this exception object. Can and must be used only on objects created by the move method.

- -

Implemented in tbb::movable_exception< ExceptionData >, and tbb::captured_exception.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - -
virtual tbb_exception* tbb::tbb_exception::move ()
throw (
)
-
-pure virtual
-
- -

Creates and returns pointer to the deep copy of this exception object.

-

Move semantics is allowed.

- -

Implemented in tbb::movable_exception< ExceptionData >, and tbb::captured_exception.

- -
-
- -
-
- - - - - -
- - - - - - - - -
void tbb::tbb_exception::operator delete (void * p)
-
-inline
-
-

Operator delete is provided only to allow using existing smart pointers with TBB exception objects obtained as the result of applying move() operation on an exception thrown out of TBB scheduler.

-

When overriding method move() make sure to override operator delete as well if memory is allocated not by TBB's scalable allocator.

- -
-
- -
-
- - - - - -
- - - - - - - -
virtual void tbb::tbb_exception::throw_self ()
-
-pure virtual
-
- -

Throws this exception object.

-

Make sure that if you have several levels of derivation from this interface you implement or override this method on the most derived level. The implementation is as simple as "throw *this;". Failure to do this will result in exception of a base class type being thrown.

- -

Implemented in tbb::movable_exception< ExceptionData >, and tbb::captured_exception.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • tbb_exception.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00146.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00146.png deleted file mode 100644 index a067095e0..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00146.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00147.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00147.html deleted file mode 100644 index 2fa4922a1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00147.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - -tbb::internal::tbb_exception_ptr Class Reference - - - - - - - -
- -
-
tbb::internal::tbb_exception_ptr Class Reference
-
-
- -

Exception container that preserves the exact copy of the original exception. - More...

- -

#include <tbb_exception.h>

- - - - - - - - -

-Public Member Functions

void destroy () throw ()
 Destroys this objects. More...
 
-void throw_self ()
 Throws the contained exception .
 
- - - - - - - - -

-Static Public Member Functions

-static tbb_exception_ptrallocate ()
 
-static tbb_exception_ptrallocate (const tbb_exception &tag)
 
-static tbb_exception_ptrallocate (captured_exception &src)
 This overload uses move semantics (i.e. it empties src)
 
-

Detailed Description

-

Exception container that preserves the exact copy of the original exception.

-

This class can be used only when the appropriate runtime support (mandated by C++0x) is present

-

Member Function Documentation

- -
-
- - - - - - - - - - - - - -
void tbb::internal::tbb_exception_ptr::destroy ()
throw (
)
-
- -

Destroys this objects.

-

Note that objects of this type can be created only by the allocate() method.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • tbb_exception.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00148.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00148.html deleted file mode 100644 index d8a964fc7..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00148.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - -tbb::tbb_hash_compare< Key > Struct Template Reference - - - - - - - -
- -
-
tbb::tbb_hash_compare< Key > Struct Template Reference
-
-
- -

hash_compare that is default argument for concurrent_hash_map - More...

- -

#include <concurrent_hash_map.h>

- - - - - - -

-Static Public Member Functions

-static size_t hash (const Key &a)
 
-static bool equal (const Key &a, const Key &b)
 
-

Detailed Description

-

template<typename Key>
-struct tbb::tbb_hash_compare< Key >

- -

hash_compare that is default argument for concurrent_hash_map

-

The documentation for this struct was generated from the following file:
    -
  • concurrent_hash_map.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00149.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00149.html deleted file mode 100644 index 375236520..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00149.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - -tbb::internal::tbb_thread_v3 Class Reference - - - - - - - -
- -
-
tbb::internal::tbb_thread_v3 Class Reference
-
-
- -

Versioned thread class. - More...

- -

#include <tbb_thread.h>

- - - - -

-Classes

class  id
 
- - - - - -

-Public Types

-typedef HANDLE native_handle_type
 
-typedef pthread_t native_handle_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

tbb_thread_v3 ()
 Constructs a thread object that does not represent a thread of execution.
 
-template<class F >
 tbb_thread_v3 (F f)
 Constructs an object and executes f() in a new thread.
 
-template<class F , class X >
 tbb_thread_v3 (F f, X x)
 Constructs an object and executes f(x) in a new thread.
 
-template<class F , class X , class Y >
 tbb_thread_v3 (F f, X x, Y y)
 Constructs an object and executes f(x,y) in a new thread.
 
-tbb_thread_v3operator= (tbb_thread_v3 &x)
 
-void swap (tbb_thread_v3 &t)
 
-bool joinable () const
 
-void __TBB_EXPORTED_METHOD join ()
 The completion of the thread represented by *this happens before join() returns.
 
-void __TBB_EXPORTED_METHOD detach ()
 When detach() returns, *this no longer represents the possibly continuing thread of execution.
 
-id get_id () const
 
-native_handle_type native_handle ()
 
- - - - -

-Static Public Member Functions

static unsigned __TBB_EXPORTED_FUNC hardware_concurrency ()
 The number of hardware thread contexts. More...
 
- - - - - -

-Friends

-void __TBB_EXPORTED_FUNC move_v3 (tbb_thread_v3 &t1, tbb_thread_v3 &t2)
 
-void tbb::swap (tbb_thread_v3 &t1, tbb_thread_v3 &t2)
 
-

Detailed Description

-

Versioned thread class.

-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
static unsigned __TBB_EXPORTED_FUNC tbb::internal::tbb_thread_v3::hardware_concurrency ()
-
-static
-
- -

The number of hardware thread contexts.

-

Before TBB 3.0 U4 this methods returned the number of logical CPU in the system. Currently on Windows, Linux and FreeBSD it returns the number of logical CPUs available to the current process in accordance with its affinity mask.

-

NOTE: The return value of this method never changes after its first invocation. This means that changes in the process affinity mask that took place after this method was first invoked will not affect the number of worker threads in the TBB worker threads pool.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • tbb_thread.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00150.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00150.html deleted file mode 100644 index 340ee572e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00150.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - -tbb::thread_bound_filter Class Reference - - - - - - - -
- -
-
tbb::thread_bound_filter Class Reference
-
-
- -

A stage in a pipeline served by a user thread. - More...

- -

#include <pipeline.h>

-
-Inheritance diagram for tbb::thread_bound_filter:
-
-
- - -tbb::filter - -
- - - - -

-Public Types

enum  result_type { success, -item_not_available, -end_of_stream - }
 
- - - - - - - -

-Public Member Functions

result_type __TBB_EXPORTED_METHOD try_process_item ()
 If a data item is available, invoke operator() on that item. More...
 
result_type __TBB_EXPORTED_METHOD process_item ()
 Wait until a data item becomes available, and invoke operator() on that item. More...
 
- - - -

-Protected Member Functions

thread_bound_filter (mode filter_mode)
 
- - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Static Protected Attributes inherited from tbb::filter
-static const unsigned char filter_is_serial = 0x1
 The lowest bit 0 is for parallel vs. serial.
 
static const unsigned char filter_is_out_of_order = 0x1<<4
 4th bit distinguishes ordered vs unordered filters. More...
 
-static const unsigned char filter_is_bound = 0x1<<5
 5th bit distinguishes thread-bound and regular filters.
 
-static const unsigned char filter_may_emit_null = 0x1<<6
 6th bit marks input filters emitting small objects
 
static const unsigned char exact_exception_propagation
 7th bit defines exception propagation mode expected by the application. More...
 
-

Detailed Description

-

A stage in a pipeline served by a user thread.

-

Member Function Documentation

- -
-
- - - - - - - -
result_type __TBB_EXPORTED_METHOD tbb::thread_bound_filter::process_item ()
-
- -

Wait until a data item becomes available, and invoke operator() on that item.

-

This interface is blocking. Returns 'success' if an item was processed. Returns 'end_of_stream' if there are no more items to process. Never returns 'item_not_available', as it blocks until another return condition applies.

- -
-
- -
-
- - - - - - - -
result_type __TBB_EXPORTED_METHOD tbb::thread_bound_filter::try_process_item ()
-
- -

If a data item is available, invoke operator() on that item.

-

This interface is non-blocking. Returns 'success' if an item was processed. Returns 'item_not_available' if no item can be processed now but more may arrive in the future, or if token limit is reached. Returns 'end_of_stream' if there are no more items to process.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • pipeline.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00150.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00150.png deleted file mode 100644 index 7eab1d511..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00150.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00151.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00151.html deleted file mode 100644 index d00656f6d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00151.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - -tbb::internal::thread_closure_0< F > Struct Template Reference - - - - - - - -
- -
-
tbb::internal::thread_closure_0< F > Struct Template Reference
-
-
-
-Inheritance diagram for tbb::internal::thread_closure_0< F >:
-
-
- - -tbb::internal::thread_closure_base - -
- - - - - - - - - -

-Public Member Functions

thread_closure_0 (const F &f)
 
- Public Member Functions inherited from tbb::internal::thread_closure_base
-void * operator new (size_t size)
 
-void operator delete (void *ptr)
 
- - - -

-Static Public Member Functions

-static __TBB_NATIVE_THREAD_ROUTINE start_routine (void *c)
 
- - - -

-Public Attributes

-F function
 
-
The documentation for this struct was generated from the following file:
    -
  • tbb_thread.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00151.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00151.png deleted file mode 100644 index ca33e7fe1..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00151.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00152.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00152.html deleted file mode 100644 index 9c90fe6c1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00152.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - -tbb::internal::thread_closure_1< F, X > Struct Template Reference - - - - - - - -
- -
-
tbb::internal::thread_closure_1< F, X > Struct Template Reference
-
-
- -

Structure used to pass user function with 1 argument to thread. - More...

- -

#include <tbb_thread.h>

-
-Inheritance diagram for tbb::internal::thread_closure_1< F, X >:
-
-
- - -tbb::internal::thread_closure_base - -
- - - - - - - - - -

-Public Member Functions

thread_closure_1 (const F &f, const X &x)
 
- Public Member Functions inherited from tbb::internal::thread_closure_base
-void * operator new (size_t size)
 
-void operator delete (void *ptr)
 
- - - - -

-Static Public Member Functions

-static __TBB_NATIVE_THREAD_ROUTINE start_routine (void *c)
 Routine passed to Windows's _beginthreadex by thread::internal_start() inside tbb.dll.
 
- - - - - -

-Public Attributes

-F function
 
-X arg1
 
-

Detailed Description

-

template<class F, class X>
-struct tbb::internal::thread_closure_1< F, X >

- -

Structure used to pass user function with 1 argument to thread.

-

The documentation for this struct was generated from the following file:
    -
  • tbb_thread.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00152.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00152.png deleted file mode 100644 index 961925b53..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00152.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00153.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00153.html deleted file mode 100644 index 67a577cd6..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00153.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - -tbb::internal::thread_closure_2< F, X, Y > Struct Template Reference - - - - - - - -
- -
-
tbb::internal::thread_closure_2< F, X, Y > Struct Template Reference
-
-
-
-Inheritance diagram for tbb::internal::thread_closure_2< F, X, Y >:
-
-
- - -tbb::internal::thread_closure_base - -
- - - - - - - - - -

-Public Member Functions

thread_closure_2 (const F &f, const X &x, const Y &y)
 
- Public Member Functions inherited from tbb::internal::thread_closure_base
-void * operator new (size_t size)
 
-void operator delete (void *ptr)
 
- - - - -

-Static Public Member Functions

-static __TBB_NATIVE_THREAD_ROUTINE start_routine (void *c)
 Routine passed to Windows's _beginthreadex by thread::internal_start() inside tbb.dll.
 
- - - - - - - -

-Public Attributes

-F function
 
-X arg1
 
-Y arg2
 
-
The documentation for this struct was generated from the following file:
    -
  • tbb_thread.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00153.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00153.png deleted file mode 100644 index aa52099a9..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00153.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00154.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00154.html deleted file mode 100644 index 039469558..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00154.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - -tbb::internal::thread_closure_base Struct Reference - - - - - - - -
- -
-
tbb::internal::thread_closure_base Struct Reference
-
-
-
-Inheritance diagram for tbb::internal::thread_closure_base:
-
-
- - -tbb::internal::thread_closure_0< F > -tbb::internal::thread_closure_1< F, X > -tbb::internal::thread_closure_2< F, X, Y > - -
- - - - - - -

-Public Member Functions

-void * operator new (size_t size)
 
-void operator delete (void *ptr)
 
-
The documentation for this struct was generated from the following file:
    -
  • tbb_thread.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00154.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00154.png deleted file mode 100644 index 0324577e7..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00154.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00155.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00155.html deleted file mode 100644 index c0287c12f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00155.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - -tbb::tick_count Class Reference - - - - - - - - -
- -

Absolute timestamp. - More...

- -

#include <tick_count.h>

- - - - - -

-Classes

class  interval_t
 Relative time interval. More...
 
- - - - -

-Public Member Functions

tick_count ()
 Construct an absolute timestamp initialized to zero.
 
- - - - - - - -

-Static Public Member Functions

-static tick_count now ()
 Return current time.
 
-static double resolution ()
 Return the resolution of the clock in seconds per tick.
 
- - - - -

-Friends

-interval_t operator- (const tick_count &t1, const tick_count &t0)
 Subtract two timestamps to get the time interval between.
 
-

Detailed Description

-

Absolute timestamp.

-

The documentation for this class was generated from the following file:
    -
  • tick_count.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00156.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00156.html deleted file mode 100644 index 56b342473..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00156.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - -tbb::user_abort Class Reference - - - - - - - -
- -
-
tbb::user_abort Class Reference
-
-
- -

Exception for user-initiated abort. - More...

- -

#include <tbb_exception.h>

-
-Inheritance diagram for tbb::user_abort:
-
-
- - - -
- - - - -

-Public Member Functions

-const char * what () const throw ()
 
-

Detailed Description

-

Exception for user-initiated abort.

-

The documentation for this class was generated from the following file:
    -
  • tbb_exception.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00156.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00156.png deleted file mode 100644 index a1f23345c..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00156.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00157.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00157.html deleted file mode 100644 index 9308951c2..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00157.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - -tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare Class Reference - - - - - - - -
- -
-
tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare Class Reference
-
-
-
-Inheritance diagram for tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare:
-
-
- - - -
- - - - - - -

-Public Member Functions

-bool operator() (const value_type &left, const value_type &right) const
 
value_compare (const hash_compare &comparator)
 
- - - -

-Protected Attributes

-hash_compare my_hash_compare
 
- - - -

-Friends

-class concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >
 
-
The documentation for this class was generated from the following file:
    -
  • concurrent_unordered_map.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00157.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00157.png deleted file mode 100644 index d6754637d..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00157.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00158.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00158.html deleted file mode 100644 index e6d282525..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00158.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - -tbb::vector_iterator< Container, Value > Class Template Reference - - - - - - - -
-
-
tbb::vector_iterator< Container, Value > Class Template Reference
-
-
-
The documentation for this class was generated from the following file:
    -
  • concurrent_vector.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00159.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00159.html deleted file mode 100644 index ceb0e2def..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00159.html +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - -tbb::flow::interface7::write_once_node< T > Class Template Reference - - - - - - - -
- -
-
tbb::flow::interface7::write_once_node< T > Class Template Reference
-
-
-
-Inheritance diagram for tbb::flow::interface7::write_once_node< T >:
-
-
- - -tbb::flow::interface7::overwrite_node< T > -tbb::flow::interface7::graph_node -tbb::flow::interface7::receiver< T > -tbb::flow::interface7::sender< T > - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
- Public Types inherited from tbb::flow::interface7::overwrite_node< T >
-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
- Public Types inherited from tbb::flow::interface7::receiver< T >
-typedef T input_type
 The input type of this receiver.
 
-typedef sender< T > predecessor_type
 The predecessor type for this node.
 
- Public Types inherited from tbb::flow::interface7::sender< T >
-typedef T output_type
 The output type of this sender.
 
-typedef receiver< T > successor_type
 The successor type for this node.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

write_once_node (graph &g)
 Constructor.
 
write_once_node (const write_once_node &src)
 Copy constructor: call base class copy constructor.
 
-void set_name (const char *name)
 
- Public Member Functions inherited from tbb::flow::interface7::overwrite_node< T >
overwrite_node (graph &g)
 
overwrite_node (const overwrite_node &src)
 
-bool register_successor (successor_type &s)
 Add a new successor to this node.
 
-bool remove_successor (successor_type &s)
 Removes a successor from this node.
 
-bool try_get (T &v)
 Request an item from the sender.
 
-bool is_valid ()
 
-void clear ()
 
- Public Member Functions inherited from tbb::flow::interface7::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface7::receiver< T >
-virtual ~receiver ()
 Destructor.
 
-bool try_put (const T &t)
 Put an item to the receiver.
 
-virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
-virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
- Public Member Functions inherited from tbb::flow::interface7::sender< T >
-virtual bool try_reserve (T &)
 Reserves an item in the sender.
 
-virtual bool try_release ()
 Releases the reserved item.
 
-virtual bool try_consume ()
 Consumes the reserved item.
 
- - - - - - - - - - - -

-Protected Member Functions

-task * try_put_task (const T &v)
 
- Protected Member Functions inherited from tbb::flow::interface7::overwrite_node< T >
-void reset ()
 
-void reset_receiver ()
 
- Protected Member Functions inherited from tbb::flow::interface7::receiver< T >
-virtual bool is_continue_receiver ()
 
- - - - - - - - - - -

-Friends

-template<typename R , typename B >
class run_and_put_task
 
-template<typename X , typename Y >
class internal::broadcast_cache
 
-template<typename X , typename Y >
class internal::round_robin_cache
 
- - - - - - - - - - -

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface7::overwrite_node< T >
-spin_mutex my_mutex
 
-internal::broadcast_cache< T,
-null_rw_mutex
my_successors
 
-T my_buffer
 
-bool my_buffer_is_valid
 
-
The documentation for this class was generated from the following file: -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00159.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00159.png deleted file mode 100644 index 696962a1f..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00159.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00160.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00160.html deleted file mode 100644 index 57f7cf644..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00160.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - -tbb::zero_allocator< T, Allocator > Class Template Reference - - - - - - - -
- -
-
tbb::zero_allocator< T, Allocator > Class Template Reference
-
-
- -

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. - More...

- -

#include <tbb_allocator.h>

-
-Inheritance diagram for tbb::zero_allocator< T, Allocator >:
-
-
- - - -
- - - - -

-Classes

struct  rebind
 
- - - - - - - - - - - - - - - - - -

-Public Types

-typedef Allocator< T > base_allocator_type
 
-typedef
-base_allocator_type::value_type 
value_type
 
-typedef
-base_allocator_type::pointer 
pointer
 
-typedef
-base_allocator_type::const_pointer 
const_pointer
 
-typedef
-base_allocator_type::reference 
reference
 
-typedef
-base_allocator_type::const_reference 
const_reference
 
-typedef
-base_allocator_type::size_type 
size_type
 
-typedef
-base_allocator_type::difference_type 
difference_type
 
- - - - - - - - -

-Public Member Functions

zero_allocator (const zero_allocator &a) throw ()
 
-template<typename U >
 zero_allocator (const zero_allocator< U > &a) throw ()
 
-pointer allocate (const size_type n, const void *hint=0)
 
-

Detailed Description

-

template<typename T, template< typename X > class Allocator = tbb_allocator>
-class tbb::zero_allocator< T, Allocator >

- -

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5.

-

The class is an adapter over an actual allocator that fills the allocation using memset function with template argument C as the value. The members are ordered the same way they are in section 20.4.1 of the ISO C++ standard.

-

The documentation for this class was generated from the following file:
    -
  • tbb_allocator.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00160.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00160.png deleted file mode 100644 index f03aec2f3..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00160.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00161.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00161.html deleted file mode 100644 index b0d0bc589..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00161.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - -tbb::zero_allocator< void, Allocator > Class Template Reference - - - - - - - -
- -
-
tbb::zero_allocator< void, Allocator > Class Template Reference
-
-
- -

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. - More...

- -

#include <tbb_allocator.h>

-
-Inheritance diagram for tbb::zero_allocator< void, Allocator >:
-
-
- - - -
- - - - -

-Classes

struct  rebind
 
- - - - - - - - - -

-Public Types

-typedef Allocator< void > base_allocator_type
 
-typedef
-base_allocator_type::value_type 
value_type
 
-typedef
-base_allocator_type::pointer 
pointer
 
-typedef
-base_allocator_type::const_pointer 
const_pointer
 
-

Detailed Description

-

template<template< typename T > class Allocator>
-class tbb::zero_allocator< void, Allocator >

- -

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1.

-

The documentation for this class was generated from the following file:
    -
  • tbb_allocator.h
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00161.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00161.png deleted file mode 100644 index f97e606d7..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00161.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00179.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00179.html deleted file mode 100644 index ee888099c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00179.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - -flow_graph.h File Reference - - - - - - - -
- -
-
flow_graph.h File Reference
-
-
- -

The graph related classes and functions. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Classes

class  tbb::flow::interface7::internal::successor_cache< T, M >
 
class  tbb::flow::interface7::internal::broadcast_cache< T, M >
 
class  tbb::flow::interface7::internal::round_robin_cache< T, M >
 
class  tbb::flow::interface7::continue_msg
 An empty class used for messages that mean "I'm done". More...
 
class  tbb::flow::interface7::sender< T >
 Pure virtual template class that defines a sender of messages of type T. More...
 
class  tbb::flow::interface7::receiver< T >
 Pure virtual template class that defines a receiver of messages of type T. More...
 
class  tbb::flow::interface7::sender< T >
 Pure virtual template class that defines a sender of messages of type T. More...
 
class  tbb::flow::interface7::limiter_node< T >
 Forwards messages only if the threshold has not been reached. More...
 
class  tbb::flow::interface7::run_and_put_task< R, B >
 
class  tbb::flow::interface7::receiver< T >
 Pure virtual template class that defines a receiver of messages of type T. More...
 
class  tbb::flow::interface7::continue_receiver
 Base class for receivers of completion messages. More...
 
class  tbb::flow::interface7::graph_iterator< GraphContainerType, GraphNodeType >
 
class  tbb::flow::interface7::graph
 The graph class. More...
 
class  tbb::flow::interface7::graph_node
 The base of all graph nodes. More...
 
class  tbb::flow::interface7::source_node< Output >
 An executable node that acts as a source, i.e. it has no predecessors. More...
 
class  tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator >
 Implements a function node that supports Input -> Output. More...
 
class  tbb::flow::interface7::function_node< Input, Output, queueing, Allocator >
 Implements a function node that supports Input -> Output. More...
 
class  tbb::flow::interface7::multifunction_node< Input, Output, graph_buffer_policy, Allocator >
 implements a function node that supports Input -> (set of outputs) More...
 
class  tbb::flow::interface7::multifunction_node< Input, Output, queueing, Allocator >
 
class  tbb::flow::interface7::split_node< TupleType, Allocator >
 split_node: accepts a tuple as input, forwards each element of the tuple to its More...
 
class  tbb::flow::interface7::continue_node< Output >
 Implements an executable node that supports continue_msg -> Output. More...
 
class  tbb::flow::interface7::overwrite_node< T >
 
class  tbb::flow::interface7::write_once_node< T >
 
class  tbb::flow::interface7::broadcast_node< T >
 Forwards messages of type T to all successors. More...
 
class  tbb::flow::interface7::buffer_node< T, A >
 Forwards messages in arbitrary order. More...
 
class  tbb::flow::interface7::buffer_node< T, A >::buffer_operation
 
class  tbb::flow::interface7::queue_node< T, A >
 Forwards messages in FIFO order. More...
 
class  tbb::flow::interface7::sequencer_node< T, A >
 Forwards messages in sequence order. More...
 
class  tbb::flow::interface7::priority_queue_node< T, Compare, A >
 Forwards messages in priority order. More...
 
class  tbb::flow::interface7::limiter_node< T >
 Forwards messages only if the threshold has not been reached. More...
 
class  tbb::flow::interface7::join_node< OutputTuple, JP >
 
class  tbb::flow::interface7::join_node< OutputTuple, reserving >
 
class  tbb::flow::interface7::join_node< OutputTuple, queueing >
 
class  tbb::flow::interface7::join_node< OutputTuple, tag_matching >
 
class  tbb::flow::interface7::or_node< InputTuple >
 
- - - - -

-Namespaces

 tbb
 The namespace tbb contains all components of the library.
 
- - - - -

-Constant Groups

 tbb
 The namespace tbb contains all components of the library.
 
- - - - -

-Enumerations

enum  concurrency { unlimited = 0, -serial = 1 - }
 An enumeration the provides the two most common concurrency levels: unlimited and serial.
 
- - - - - - - - - - - - - - - -

-Functions

-static tbb::task * tbb::flow::interface7::combine_tasks (tbb::task *left, tbb::task *right)
 
-template<typename T >
void tbb::flow::interface7::make_edge (sender< T > &p, receiver< T > &s)
 Makes an edge between a single predecessor and a single successor.
 
-template<typename T >
void tbb::flow::interface7::remove_edge (sender< T > &p, receiver< T > &s)
 Makes an edge between a single predecessor and a single successor.
 
-template<typename Body , typename Node >
Body tbb::flow::interface7::copy_body (Node &n)
 Returns a copy of the body from a function or continue node.
 
- - - -

-Variables

-static tbb::task *const tbb::flow::interface7::SUCCESSFULLY_ENQUEUED = (task *)-1
 
-

Detailed Description

-

The graph related classes and functions.

-

There are some applications that best express dependencies as messages passed between nodes in a graph. These messages may contain data or simply act as signals that a predecessors has completed. The graph class and its associated node classes can be used to express such applcations.

-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00180.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00180.html deleted file mode 100644 index efd8e4df1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00180.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - -memory_pool.h File Reference - - - - - - - -
- -
-
memory_pool.h File Reference
-
-
- - - - - - - - - - - - - - - - - -

-Classes

class  tbb::interface6::memory_pool_allocator< T, P >
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
 
struct  tbb::interface6::memory_pool_allocator< T, P >::rebind< U >
 
class  tbb::interface6::memory_pool_allocator< void, P >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
 
struct  tbb::interface6::memory_pool_allocator< void, P >::rebind< U >
 
class  tbb::interface6::memory_pool< Alloc >
 Thread-safe growable pool allocator for variable-size requests. More...
 
class  tbb::interface6::fixed_pool
 
- - - - -

-Namespaces

 tbb
 The namespace tbb contains all components of the library.
 
- - - - -

-Constant Groups

 tbb
 The namespace tbb contains all components of the library.
 
- - - - - - - -

-Functions

-template<typename T , typename U , typename P >
bool tbb::interface6::operator== (const memory_pool_allocator< T, P > &a, const memory_pool_allocator< U, P > &b)
 
-template<typename T , typename U , typename P >
bool tbb::interface6::operator!= (const memory_pool_allocator< T, P > &a, const memory_pool_allocator< U, P > &b)
 
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00199.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00199.html deleted file mode 100644 index 9c3a40d4a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00199.html +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - -scalable_allocator.h File Reference - - - - - - - -
- -
-
scalable_allocator.h File Reference
-
-
- - - - - - - - - - - - - - -

-Classes

struct  rml::MemPoolPolicy
 
class  tbb::scalable_allocator< T >
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
 
struct  tbb::scalable_allocator< T >::rebind< U >
 
class  tbb::scalable_allocator< void >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
 
struct  tbb::scalable_allocator< void >::rebind< U >
 
- - - - - - - -

-Namespaces

 rml
 The namespace rml contains components of low-level memory pool interface.
 
 tbb
 The namespace tbb contains all components of the library.
 
- - - - - - - -

-Constant Groups

 rml
 The namespace rml contains components of low-level memory pool interface.
 
 tbb
 The namespace tbb contains all components of the library.
 
- - - - - -

-Typedefs

-typedef void *(* rml::rawAllocType )(intptr_t pool_id, size_t &bytes)
 
-typedef int(* rml::rawFreeType )(intptr_t pool_id, void *raw_ptr, size_t raw_bytes)
 
- - - - - - - - - -

-Enumerations

enum  ScalableAllocationResult {
-  TBBMALLOC_OK, -TBBMALLOC_INVALID_PARAM, -TBBMALLOC_UNSUPPORTED, -TBBMALLOC_NO_MEMORY, -
-  TBBMALLOC_NO_EFFECT -
- }
 
enum  AllocationModeParam { TBBMALLOC_USE_HUGE_PAGES, -USE_HUGE_PAGES = TBBMALLOC_USE_HUGE_PAGES, -TBBMALLOC_SET_SOFT_HEAP_LIMIT - }
 
enum  ScalableAllocationCmd { TBBMALLOC_CLEAN_ALL_BUFFERS, -TBBMALLOC_CLEAN_THREAD_BUFFERS - }
 
enum  MemPoolError {
-  POOL_OK = TBBMALLOC_OK, -INVALID_POLICY = TBBMALLOC_INVALID_PARAM, -UNSUPPORTED_POLICY = TBBMALLOC_UNSUPPORTED, -NO_MEMORY = TBBMALLOC_NO_MEMORY, -
-  NO_EFFECT = TBBMALLOC_NO_EFFECT -
- }
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

void *__TBB_EXPORTED_FUNC scalable_malloc (size_t size)
 
void __TBB_EXPORTED_FUNC scalable_free (void *ptr)
 
void *__TBB_EXPORTED_FUNC scalable_realloc (void *ptr, size_t size)
 
void *__TBB_EXPORTED_FUNC scalable_calloc (size_t nobj, size_t size)
 
int __TBB_EXPORTED_FUNC scalable_posix_memalign (void **memptr, size_t alignment, size_t size)
 
void *__TBB_EXPORTED_FUNC scalable_aligned_malloc (size_t size, size_t alignment)
 
void *__TBB_EXPORTED_FUNC scalable_aligned_realloc (void *ptr, size_t size, size_t alignment)
 
void __TBB_EXPORTED_FUNC scalable_aligned_free (void *ptr)
 
size_t __TBB_EXPORTED_FUNC scalable_msize (void *ptr)
 
int __TBB_EXPORTED_FUNC scalable_allocation_mode (int param, intptr_t value)
 
int __TBB_EXPORTED_FUNC scalable_allocation_command (int cmd, void *param)
 
-MemPoolError rml::pool_create_v1 (intptr_t pool_id, const MemPoolPolicy *policy, rml::MemoryPool **pool)
 
-bool rml::pool_destroy (MemoryPool *memPool)
 
-void * rml::pool_malloc (MemoryPool *memPool, size_t size)
 
-void * rml::pool_realloc (MemoryPool *memPool, void *object, size_t size)
 
-void * rml::pool_aligned_malloc (MemoryPool *mPool, size_t size, size_t alignment)
 
-void * rml::pool_aligned_realloc (MemoryPool *mPool, void *ptr, size_t size, size_t alignment)
 
-bool rml::pool_reset (MemoryPool *memPool)
 
-bool rml::pool_free (MemoryPool *memPool, void *object)
 
-template<typename T , typename U >
bool tbb::operator== (const scalable_allocator< T > &, const scalable_allocator< U > &)
 
-template<typename T , typename U >
bool tbb::operator!= (const scalable_allocator< T > &, const scalable_allocator< U > &)
 
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00219.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00219.html deleted file mode 100644 index 192415991..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00219.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - -rml Namespace Reference - - - - - - - -
- -
-
rml Namespace Reference
-
-
- -

The namespace rml contains components of low-level memory pool interface. -More...

- - - - -

-Classes

struct  MemPoolPolicy
 
- - - - - -

-Typedefs

-typedef void *(* rawAllocType )(intptr_t pool_id, size_t &bytes)
 
-typedef int(* rawFreeType )(intptr_t pool_id, void *raw_ptr, size_t raw_bytes)
 
- - - -

-Enumerations

enum  MemPoolError {
-  POOL_OK = TBBMALLOC_OK, -INVALID_POLICY = TBBMALLOC_INVALID_PARAM, -UNSUPPORTED_POLICY = TBBMALLOC_UNSUPPORTED, -NO_MEMORY = TBBMALLOC_NO_MEMORY, -
-  NO_EFFECT = TBBMALLOC_NO_EFFECT -
- }
 
- - - - - - - - - - - - - - - - - -

-Functions

-MemPoolError pool_create_v1 (intptr_t pool_id, const MemPoolPolicy *policy, rml::MemoryPool **pool)
 
-bool pool_destroy (MemoryPool *memPool)
 
-void * pool_malloc (MemoryPool *memPool, size_t size)
 
-void * pool_realloc (MemoryPool *memPool, void *object, size_t size)
 
-void * pool_aligned_malloc (MemoryPool *mPool, size_t size, size_t alignment)
 
-void * pool_aligned_realloc (MemoryPool *mPool, void *ptr, size_t size, size_t alignment)
 
-bool pool_reset (MemoryPool *memPool)
 
-bool pool_free (MemoryPool *memPool, void *object)
 
-

Detailed Description

-

The namespace rml contains components of low-level memory pool interface.

-

Assert that x is true.

-

If x is false, print assertion failure message. If the comment argument is not NULL, it is printed as part of the failure message. The comment argument has no other effect.

-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00222.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00222.html deleted file mode 100644 index 49f68d0fd..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00222.html +++ /dev/null @@ -1,641 +0,0 @@ - - - - - - -tbb Namespace Reference - - - - - - - -
- -
-
tbb Namespace Reference
-
-
- -

The namespace tbb contains all components of the library. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Classes

class  aligned_space
 Block of space aligned sufficiently to construct an array T with N elements. More...
 
struct  atomic
 Primary template for atomic. More...
 
struct  atomic< void * >
 Specialization for atomic<void*>, for sake of not allowing arithmetic or operator->. More...
 
class  blocked_range
 A range over which to iterate. More...
 
class  blocked_range2d
 A 2-dimensional range that models the Range concept. More...
 
class  blocked_range3d
 A 3-dimensional range that models the Range concept. More...
 
class  cache_aligned_allocator
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
 
class  cache_aligned_allocator< void >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
 
class  combinable
 Thread-local storage with optional reduction. More...
 
struct  tbb_hash_compare
 hash_compare that is default argument for concurrent_hash_map More...
 
class  concurrent_bounded_queue
 A high-performance thread-safe blocking concurrent bounded queue. More...
 
class  concurrent_vector
 Concurrent vector container. More...
 
class  vector_iterator
 
class  mutex
 Wrapper around the platform's native reader-writer lock. More...
 
class  null_mutex
 A mutex which does nothing. More...
 
class  null_rw_mutex
 A rw mutex which does nothing. More...
 
class  parallel_do_feeder
 Class the user supplied algorithm body uses to add new tasks. More...
 
struct  task_group_context
 
struct  pre_scan_tag
 Used to indicate that the initial scan is being performed. More...
 
struct  final_scan_tag
 Used to indicate that the final scan is being performed. More...
 
class  parallel_while
 Parallel iteration over a stream, with optional addition of more work. More...
 
class  filter
 A stage in a pipeline. More...
 
class  thread_bound_filter
 A stage in a pipeline served by a user thread. More...
 
class  pipeline
 A processing pipeline that applies filters to items. More...
 
class  queuing_mutex
 Queuing mutex with local-only spinning. More...
 
class  queuing_rw_mutex
 Queuing reader-writer mutex with local-only spinning. More...
 
class  recursive_mutex
 
class  scalable_allocator
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
 
class  scalable_allocator< void >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
 
class  spin_mutex
 A lock that occupies a single byte. More...
 
class  spin_rw_mutex_v3
 Fast, unfair, spinning reader-writer lock with backoff and writer-preference. More...
 
class  task_handle
 
class  task_group
 
class  structured_task_group
 
class  task_scheduler_init
 Class delimiting the scope of task scheduler activity. More...
 
class  tbb_allocator
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
 
class  tbb_allocator< void >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
 
class  zero_allocator
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
 
class  zero_allocator< void, Allocator >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
 
class  bad_last_alloc
 Exception for concurrent containers. More...
 
class  improper_lock
 Exception for PPL locks. More...
 
class  user_abort
 Exception for user-initiated abort. More...
 
class  missing_wait
 Exception for missing wait on structured_task_group. More...
 
class  invalid_multiple_scheduling
 Exception for repeated scheduling of the same task_handle. More...
 
class  tbb_exception
 Interface to be implemented by all exceptions TBB recognizes and propagates across the threads. More...
 
class  captured_exception
 This class is used by TBB to propagate information about unhandled exceptions into the root thread. More...
 
class  movable_exception
 Template that can be used to implement exception that transfers arbitrary ExceptionData to the root thread. More...
 
class  split
 Dummy type that distinguishes splitting constructor from copy constructor. More...
 
class  tick_count
 Absolute timestamp. More...
 
- - - - - - - - - - - - - - - -

-Typedefs

-typedef
-internal::critical_section_v4 
critical_section
 
typedef
-interface7::internal::padded_mutex
-< interface7::internal::x86_eliding_mutex,
-false > 
speculative_spin_mutex
 A cross-platform spin mutex with speculative lock acquisition. More...
 
-typedef spin_rw_mutex_v3 spin_rw_mutex
 
-typedef std::size_t stack_size_type
 
-typedef
-tbb::internal::task_scheduler_observer_v3 
task_scheduler_observer
 
-typedef internal::tbb_thread_v3 tbb_thread
 Users reference thread class by name tbb_thread.
 
- - - - - - - - - -

-Enumerations

enum  memory_semantics { full_fence, -acquire, -release, -relaxed - }
 Specifies memory semantics. More...
 
enum  ets_key_usage_type { ets_key_per_instance, -ets_no_key - }
 enum for selecting between single key and key-per-instance versions
 
enum  task_group_status { not_complete, -complete, -canceled - }
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

__TBB_DECL_ATOMIC (__TBB_LONG_LONG) __TBB_DECL_ATOMIC(unsigned __TBB_LONG_LONG) __TBB_DECL_ATOMIC(long) __TBB_DECL_ATOMIC(unsigned long) __TBB_DECL_ATOMIC_ALT(unsigned
 
-size_t __TBB_DECL_ATOMIC_ALT (int, ptrdiff_t) __TBB_DECL_ATOMIC(unsigned) __TBB_DECL_ATOMIC(int) __TBB_DECL_ATOMIC(unsigned short) __TBB_DECL_ATOMIC(short) __TBB_DECL_ATOMIC(char) __TBB_DECL_ATOMIC(signed char) __TBB_DECL_ATOMIC(unsigned char) __TBB_DECL_ATOMIC(wchar_t) template< typename T > struct atomic< T * >
 Specialization for atomic<T*> with arithmetic and operator->.
 
-template<memory_semantics M, typename T >
load (const atomic< T > &a)
 
-template<memory_semantics M, typename T >
void store (atomic< T > &a, T value)
 
-template<typename T , typename U >
bool operator== (const cache_aligned_allocator< T > &, const cache_aligned_allocator< U > &)
 
-template<typename T , typename U >
bool operator!= (const cache_aligned_allocator< T > &, const cache_aligned_allocator< U > &)
 
-template<typename Key , typename T , typename HashCompare , typename A1 , typename A2 >
bool operator== (const concurrent_hash_map< Key, T, HashCompare, A1 > &a, const concurrent_hash_map< Key, T, HashCompare, A2 > &b)
 
-template<typename Key , typename T , typename HashCompare , typename A1 , typename A2 >
bool operator!= (const concurrent_hash_map< Key, T, HashCompare, A1 > &a, const concurrent_hash_map< Key, T, HashCompare, A2 > &b)
 
-template<typename Key , typename T , typename HashCompare , typename A >
void swap (concurrent_hash_map< Key, T, HashCompare, A > &a, concurrent_hash_map< Key, T, HashCompare, A > &b)
 
-template<typename T , class A1 , class A2 >
bool operator== (const concurrent_vector< T, A1 > &a, const concurrent_vector< T, A2 > &b)
 
-template<typename T , class A1 , class A2 >
bool operator!= (const concurrent_vector< T, A1 > &a, const concurrent_vector< T, A2 > &b)
 
-template<typename T , class A1 , class A2 >
bool operator< (const concurrent_vector< T, A1 > &a, const concurrent_vector< T, A2 > &b)
 
-template<typename T , class A1 , class A2 >
bool operator> (const concurrent_vector< T, A1 > &a, const concurrent_vector< T, A2 > &b)
 
-template<typename T , class A1 , class A2 >
bool operator<= (const concurrent_vector< T, A1 > &a, const concurrent_vector< T, A2 > &b)
 
-template<typename T , class A1 , class A2 >
bool operator>= (const concurrent_vector< T, A1 > &a, const concurrent_vector< T, A2 > &b)
 
-template<typename T , class A >
void swap (concurrent_vector< T, A > &a, concurrent_vector< T, A > &b)
 
-template<typename T , typename U >
bool operator== (const scalable_allocator< T > &, const scalable_allocator< U > &)
 
-template<typename T , typename U >
bool operator!= (const scalable_allocator< T > &, const scalable_allocator< U > &)
 
-bool is_current_task_group_canceling ()
 
-template<class F >
task_handle< F > make_task (const F &f)
 
-template<typename T , typename U >
bool operator== (const tbb_allocator< T > &, const tbb_allocator< U > &)
 
-template<typename T , typename U >
bool operator!= (const tbb_allocator< T > &, const tbb_allocator< U > &)
 
-template<typename T1 , template< typename X1 > class B1, typename T2 , template< typename X2 > class B2>
bool operator== (const zero_allocator< T1, B1 > &a, const zero_allocator< T2, B2 > &b)
 
-template<typename T1 , template< typename X1 > class B1, typename T2 , template< typename X2 > class B2>
bool operator!= (const zero_allocator< T1, B1 > &a, const zero_allocator< T2, B2 > &b)
 
int __TBB_EXPORTED_FUNC TBB_runtime_interface_version ()
 The function returns the interface version of the TBB shared library being used. More...
 
-void swap (internal::tbb_thread_v3 &t1, internal::tbb_thread_v3 &t2)
 
-void move (tbb_thread &t1, tbb_thread &t2)
 
-tick_count::interval_t operator- (const tick_count &t1, const tick_count &t0)
 
parallel_do

See also requirements on parallel_do Body.

-
template<typename Iterator , typename Body >
void parallel_do (Iterator first, Iterator last, const Body &body)
 Parallel iteration over a range, with optional addition of more work. More...
 
template<typename Iterator , typename Body >
void parallel_do (Iterator first, Iterator last, const Body &body, task_group_context &context)
 Parallel iteration over a range, with optional addition of more work and user-supplied context. More...
 
parallel_for

See also requirements on Range and parallel_for Body.

-
template<typename Range , typename Body >
void parallel_for (const Range &range, const Body &body)
 Parallel iteration over range with default partitioner. More...
 
template<typename Range , typename Body >
void parallel_for (const Range &range, const Body &body, const simple_partitioner &partitioner)
 Parallel iteration over range with simple partitioner. More...
 
template<typename Range , typename Body >
void parallel_for (const Range &range, const Body &body, const auto_partitioner &partitioner)
 Parallel iteration over range with auto_partitioner. More...
 
template<typename Range , typename Body >
void parallel_for (const Range &range, const Body &body, affinity_partitioner &partitioner)
 Parallel iteration over range with affinity_partitioner. More...
 
template<typename Range , typename Body >
void parallel_for (const Range &range, const Body &body, task_group_context &context)
 Parallel iteration over range with default partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void parallel_for (const Range &range, const Body &body, const simple_partitioner &partitioner, task_group_context &context)
 Parallel iteration over range with simple partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void parallel_for (const Range &range, const Body &body, const auto_partitioner &partitioner, task_group_context &context)
 Parallel iteration over range with auto_partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void parallel_for (const Range &range, const Body &body, affinity_partitioner &partitioner, task_group_context &context)
 Parallel iteration over range with affinity_partitioner and user-supplied context. More...
 
parallel_for_each
template<typename InputIterator , typename Function >
void parallel_for_each (InputIterator first, InputIterator last, const Function &f, task_group_context &context)
 Calls function f for all items from [first, last) interval using user-supplied context. More...
 
-template<typename InputIterator , typename Function >
void parallel_for_each (InputIterator first, InputIterator last, const Function &f)
 Uses default context.
 
parallel_invoke
template<typename F0 , typename F1 >
void parallel_invoke (const F0 &f0, const F1 &f1, tbb::task_group_context &context)
 Executes a list of tasks in parallel and waits for all tasks to complete. More...
 
-template<typename F0 , typename F1 , typename F2 >
void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, tbb::task_group_context &context)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 >
void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, tbb::task_group_context &context)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 >
void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, tbb::task_group_context &context)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 >
void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, tbb::task_group_context &context)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 >
void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, tbb::task_group_context &context)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 >
void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7, tbb::task_group_context &context)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 , typename F8 >
void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7, const F8 &f8, tbb::task_group_context &context)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 , typename F8 , typename F9 >
void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7, const F8 &f8, const F9 &f9, tbb::task_group_context &context)
 
-template<typename F0 , typename F1 >
void parallel_invoke (const F0 &f0, const F1 &f1)
 
-template<typename F0 , typename F1 , typename F2 >
void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 >
void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 >
void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 >
void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 >
void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 >
void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 , typename F8 >
void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7, const F8 &f8)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 , typename F8 , typename F9 >
void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7, const F8 &f8, const F9 &f9)
 
parallel_reduce

See also requirements on Range and parallel_reduce Body.

-
template<typename Range , typename Body >
void parallel_reduce (const Range &range, Body &body)
 Parallel iteration with reduction and default partitioner. More...
 
template<typename Range , typename Body >
void parallel_reduce (const Range &range, Body &body, const simple_partitioner &partitioner)
 Parallel iteration with reduction and simple_partitioner. More...
 
template<typename Range , typename Body >
void parallel_reduce (const Range &range, Body &body, const auto_partitioner &partitioner)
 Parallel iteration with reduction and auto_partitioner. More...
 
template<typename Range , typename Body >
void parallel_reduce (const Range &range, Body &body, affinity_partitioner &partitioner)
 Parallel iteration with reduction and affinity_partitioner. More...
 
template<typename Range , typename Body >
void parallel_reduce (const Range &range, Body &body, const simple_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, simple partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void parallel_reduce (const Range &range, Body &body, const auto_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, auto_partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void parallel_reduce (const Range &range, Body &body, affinity_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, affinity_partitioner and user-supplied context. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction)
 Parallel iteration with reduction and default partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const simple_partitioner &partitioner)
 Parallel iteration with reduction and simple_partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const auto_partitioner &partitioner)
 Parallel iteration with reduction and auto_partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, affinity_partitioner &partitioner)
 Parallel iteration with reduction and affinity_partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const simple_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, simple partitioner and user-supplied context. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const auto_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, auto_partitioner and user-supplied context. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, affinity_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, affinity_partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void parallel_deterministic_reduce (const Range &range, Body &body)
 Parallel iteration with deterministic reduction and default partitioner. More...
 
template<typename Range , typename Body >
void parallel_deterministic_reduce (const Range &range, Body &body, task_group_context &context)
 Parallel iteration with deterministic reduction, simple partitioner and user-supplied context. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value parallel_deterministic_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction)
 Parallel iteration with deterministic reduction and default partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value parallel_deterministic_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, task_group_context &context)
 Parallel iteration with deterministic reduction, simple partitioner and user-supplied context. More...
 
parallel_scan

See also requirements on Range and parallel_scan Body.

-
template<typename Range , typename Body >
void parallel_scan (const Range &range, Body &body)
 Parallel prefix with default partitioner. More...
 
template<typename Range , typename Body >
void parallel_scan (const Range &range, Body &body, const simple_partitioner &partitioner)
 Parallel prefix with simple_partitioner. More...
 
template<typename Range , typename Body >
void parallel_scan (const Range &range, Body &body, const auto_partitioner &partitioner)
 Parallel prefix with auto_partitioner. More...
 
parallel_sort

See also requirements on iterators for parallel_sort.

-
template<typename RandomAccessIterator , typename Compare >
void parallel_sort (RandomAccessIterator begin, RandomAccessIterator end, const Compare &comp)
 Sorts the data in [begin,end) using the given comparator. More...
 
template<typename RandomAccessIterator >
void parallel_sort (RandomAccessIterator begin, RandomAccessIterator end)
 Sorts the data in [begin,end) with a default comparator std::less<RandomAccessIterator> More...
 
template<typename T >
void parallel_sort (T *begin, T *end)
 Sorts the data in the range [begin,end) with a default comparator std::less<T> More...
 
-

Detailed Description

-

The namespace tbb contains all components of the library.

-

Enumeration Type Documentation

- -
-
- - - - -
enum tbb::memory_semantics
-
- -

Specifies memory semantics.

- - - - - -
Enumerator
full_fence  -

Sequential consistency.

-
acquire  -

Acquire.

-
release  -

Release.

-
relaxed  -

No ordering.

-
- -
-
-

Function Documentation

- -
-
- - - - - - - -
int __TBB_EXPORTED_FUNC tbb::TBB_runtime_interface_version ()
-
- -

The function returns the interface version of the TBB shared library being used.

-

The version it returns is determined at runtime, not at compile/link time. So it can be different than the value of TBB_INTERFACE_VERSION obtained at compile time.

- -
-
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00234.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00234.html deleted file mode 100644 index d3ff781c2..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00234.html +++ /dev/null @@ -1,1779 +0,0 @@ - - - - - - -Algorithms - - - - - - - -
- -
-
Algorithms
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Classes

class  tbb::blocked_range< Value >
 A range over which to iterate. More...
 
class  tbb::blocked_range2d< RowValue, ColValue >
 A 2-dimensional range that models the Range concept. More...
 
class  tbb::blocked_range3d< PageValue, RowValue, ColValue >
 A 3-dimensional range that models the Range concept. More...
 
struct  tbb::pre_scan_tag
 Used to indicate that the initial scan is being performed. More...
 
struct  tbb::final_scan_tag
 Used to indicate that the final scan is being performed. More...
 
class  tbb::parallel_while< Body >
 Parallel iteration over a stream, with optional addition of more work. More...
 
class  tbb::filter
 A stage in a pipeline. More...
 
class  tbb::thread_bound_filter
 A stage in a pipeline served by a user thread. More...
 
class  tbb::pipeline
 A processing pipeline that applies filters to items. More...
 
class  tbb::split
 Dummy type that distinguishes splitting constructor from copy constructor. More...
 
- - - - - - - - - - -

-parallel_do

See also requirements on parallel_do Body.

-
template<typename Iterator , typename Body >
void tbb::parallel_do (Iterator first, Iterator last, const Body &body)
 Parallel iteration over a range, with optional addition of more work. More...
 
template<typename Iterator , typename Body >
void tbb::parallel_do (Iterator first, Iterator last, const Body &body, task_group_context &context)
 Parallel iteration over a range, with optional addition of more work and user-supplied context. More...
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-parallel_for

See also requirements on Range and parallel_for Body.

-
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body)
 Parallel iteration over range with default partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, const simple_partitioner &partitioner)
 Parallel iteration over range with simple partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, const auto_partitioner &partitioner)
 Parallel iteration over range with auto_partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, affinity_partitioner &partitioner)
 Parallel iteration over range with affinity_partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, task_group_context &context)
 Parallel iteration over range with default partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, const simple_partitioner &partitioner, task_group_context &context)
 Parallel iteration over range with simple partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, const auto_partitioner &partitioner, task_group_context &context)
 Parallel iteration over range with auto_partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, affinity_partitioner &partitioner, task_group_context &context)
 Parallel iteration over range with affinity_partitioner and user-supplied context. More...
 
- - - - - - - - - -

-parallel_for_each

template<typename InputIterator , typename Function >
void tbb::parallel_for_each (InputIterator first, InputIterator last, const Function &f, task_group_context &context)
 Calls function f for all items from [first, last) interval using user-supplied context. More...
 
-template<typename InputIterator , typename Function >
void tbb::parallel_for_each (InputIterator first, InputIterator last, const Function &f)
 Uses default context.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-parallel_invoke

template<typename F0 , typename F1 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, tbb::task_group_context &context)
 Executes a list of tasks in parallel and waits for all tasks to complete. More...
 
-template<typename F0 , typename F1 , typename F2 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, tbb::task_group_context &context)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, tbb::task_group_context &context)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, tbb::task_group_context &context)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, tbb::task_group_context &context)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, tbb::task_group_context &context)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7, tbb::task_group_context &context)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 , typename F8 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7, const F8 &f8, tbb::task_group_context &context)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 , typename F8 , typename F9 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7, const F8 &f8, const F9 &f9, tbb::task_group_context &context)
 
-template<typename F0 , typename F1 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1)
 
-template<typename F0 , typename F1 , typename F2 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 , typename F8 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7, const F8 &f8)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 , typename F8 , typename F9 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7, const F8 &f8, const F9 &f9)
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-parallel_reduce

See also requirements on Range and parallel_reduce Body.

-
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body)
 Parallel iteration with reduction and default partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body, const simple_partitioner &partitioner)
 Parallel iteration with reduction and simple_partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body, const auto_partitioner &partitioner)
 Parallel iteration with reduction and auto_partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body, affinity_partitioner &partitioner)
 Parallel iteration with reduction and affinity_partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body, const simple_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, simple partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body, const auto_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, auto_partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body, affinity_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, affinity_partitioner and user-supplied context. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction)
 Parallel iteration with reduction and default partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const simple_partitioner &partitioner)
 Parallel iteration with reduction and simple_partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const auto_partitioner &partitioner)
 Parallel iteration with reduction and auto_partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, affinity_partitioner &partitioner)
 Parallel iteration with reduction and affinity_partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const simple_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, simple partitioner and user-supplied context. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const auto_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, auto_partitioner and user-supplied context. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, affinity_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, affinity_partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_deterministic_reduce (const Range &range, Body &body)
 Parallel iteration with deterministic reduction and default partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_deterministic_reduce (const Range &range, Body &body, task_group_context &context)
 Parallel iteration with deterministic reduction, simple partitioner and user-supplied context. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_deterministic_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction)
 Parallel iteration with deterministic reduction and default partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_deterministic_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, task_group_context &context)
 Parallel iteration with deterministic reduction, simple partitioner and user-supplied context. More...
 
- - - - - - - - - - - - - - -

-parallel_scan

See also requirements on Range and parallel_scan Body.

-
template<typename Range , typename Body >
void tbb::parallel_scan (const Range &range, Body &body)
 Parallel prefix with default partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_scan (const Range &range, Body &body, const simple_partitioner &partitioner)
 Parallel prefix with simple_partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_scan (const Range &range, Body &body, const auto_partitioner &partitioner)
 Parallel prefix with auto_partitioner. More...
 
- - - - - - - - - - - - - - -

-parallel_sort

See also requirements on iterators for parallel_sort.

-
template<typename RandomAccessIterator , typename Compare >
void tbb::parallel_sort (RandomAccessIterator begin, RandomAccessIterator end, const Compare &comp)
 Sorts the data in [begin,end) using the given comparator. More...
 
template<typename RandomAccessIterator >
void tbb::parallel_sort (RandomAccessIterator begin, RandomAccessIterator end)
 Sorts the data in [begin,end) with a default comparator std::less<RandomAccessIterator> More...
 
template<typename T >
void tbb::parallel_sort (T *begin, T *end)
 Sorts the data in the range [begin,end) with a default comparator std::less<T> More...
 
-

Detailed Description

-

Function Documentation

- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - -
void tbb::parallel_deterministic_reduce (const Range & range,
Body & body 
)
-
- -

Parallel iteration with deterministic reduction and default partitioner.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_deterministic_reduce (const Range & range,
Body & body,
task_group_context & context 
)
-
- -

Parallel iteration with deterministic reduction, simple partitioner and user-supplied context.

- -
-
- -
-
-
-template<typename Range , typename Value , typename RealBody , typename Reduction >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Value tbb::parallel_deterministic_reduce (const Range & range,
const Value & identity,
const RealBody & real_body,
const Reduction & reduction 
)
-
- -

Parallel iteration with deterministic reduction and default partitioner.

-

parallel_reduce overloads that work with anonymous function objects (see also requirements on parallel_reduce anonymous function objects).

- -
-
- -
-
-
-template<typename Range , typename Value , typename RealBody , typename Reduction >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Value tbb::parallel_deterministic_reduce (const Range & range,
const Value & identity,
const RealBody & real_body,
const Reduction & reduction,
task_group_context & context 
)
-
- -

Parallel iteration with deterministic reduction, simple partitioner and user-supplied context.

- -
-
- -
-
-
-template<typename Iterator , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_do (Iterator first,
Iterator last,
const Body & body 
)
-
- -

Parallel iteration over a range, with optional addition of more work.

- -

Referenced by tbb::parallel_for_each().

- -
-
- -
-
-
-template<typename Iterator , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_do (Iterator first,
Iterator last,
const Body & body,
task_group_context & context 
)
-
- -

Parallel iteration over a range, with optional addition of more work and user-supplied context.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - -
void tbb::parallel_for (const Range & range,
const Body & body 
)
-
- -

Parallel iteration over range with default partitioner.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_for (const Range & range,
const Body & body,
const simple_partitioner & partitioner 
)
-
- -

Parallel iteration over range with simple partitioner.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_for (const Range & range,
const Body & body,
const auto_partitioner & partitioner 
)
-
- -

Parallel iteration over range with auto_partitioner.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_for (const Range & range,
const Body & body,
affinity_partitioner & partitioner 
)
-
- -

Parallel iteration over range with affinity_partitioner.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_for (const Range & range,
const Body & body,
task_group_context & context 
)
-
- -

Parallel iteration over range with default partitioner and user-supplied context.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_for (const Range & range,
const Body & body,
const simple_partitioner & partitioner,
task_group_context & context 
)
-
- -

Parallel iteration over range with simple partitioner and user-supplied context.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_for (const Range & range,
const Body & body,
const auto_partitioner & partitioner,
task_group_context & context 
)
-
- -

Parallel iteration over range with auto_partitioner and user-supplied context.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_for (const Range & range,
const Body & body,
affinity_partitioner & partitioner,
task_group_context & context 
)
-
- -

Parallel iteration over range with affinity_partitioner and user-supplied context.

- -
-
- -
-
-
-template<typename InputIterator , typename Function >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_for_each (InputIterator first,
InputIterator last,
const Function & f,
task_group_context & context 
)
-
- -

Calls function f for all items from [first, last) interval using user-supplied context.

- -

References tbb::parallel_do().

- -
-
- -
-
-
-template<typename F0 , typename F1 >
- - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_invoke (const F0 & f0,
const F1 & f1,
tbb::task_group_contextcontext 
)
-
- -

Executes a list of tasks in parallel and waits for all tasks to complete.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - -
void tbb::parallel_reduce (const Range & range,
Body & body 
)
-
- -

Parallel iteration with reduction and default partitioner.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_reduce (const Range & range,
Body & body,
const simple_partitioner & partitioner 
)
-
- -

Parallel iteration with reduction and simple_partitioner.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_reduce (const Range & range,
Body & body,
const auto_partitioner & partitioner 
)
-
- -

Parallel iteration with reduction and auto_partitioner.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_reduce (const Range & range,
Body & body,
affinity_partitioner & partitioner 
)
-
- -

Parallel iteration with reduction and affinity_partitioner.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_reduce (const Range & range,
Body & body,
const simple_partitioner & partitioner,
task_group_context & context 
)
-
- -

Parallel iteration with reduction, simple partitioner and user-supplied context.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_reduce (const Range & range,
Body & body,
const auto_partitioner & partitioner,
task_group_context & context 
)
-
- -

Parallel iteration with reduction, auto_partitioner and user-supplied context.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_reduce (const Range & range,
Body & body,
affinity_partitioner & partitioner,
task_group_context & context 
)
-
- -

Parallel iteration with reduction, affinity_partitioner and user-supplied context.

- -
-
- -
-
-
-template<typename Range , typename Value , typename RealBody , typename Reduction >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Value tbb::parallel_reduce (const Range & range,
const Value & identity,
const RealBody & real_body,
const Reduction & reduction 
)
-
- -

Parallel iteration with reduction and default partitioner.

-

parallel_reduce overloads that work with anonymous function objects (see also requirements on parallel_reduce anonymous function objects).

- -
-
- -
-
-
-template<typename Range , typename Value , typename RealBody , typename Reduction >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Value tbb::parallel_reduce (const Range & range,
const Value & identity,
const RealBody & real_body,
const Reduction & reduction,
const simple_partitioner & partitioner 
)
-
- -

Parallel iteration with reduction and simple_partitioner.

- -
-
- -
-
-
-template<typename Range , typename Value , typename RealBody , typename Reduction >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Value tbb::parallel_reduce (const Range & range,
const Value & identity,
const RealBody & real_body,
const Reduction & reduction,
const auto_partitioner & partitioner 
)
-
- -

Parallel iteration with reduction and auto_partitioner.

- -
-
- -
-
-
-template<typename Range , typename Value , typename RealBody , typename Reduction >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Value tbb::parallel_reduce (const Range & range,
const Value & identity,
const RealBody & real_body,
const Reduction & reduction,
affinity_partitioner & partitioner 
)
-
- -

Parallel iteration with reduction and affinity_partitioner.

- -
-
- -
-
-
-template<typename Range , typename Value , typename RealBody , typename Reduction >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Value tbb::parallel_reduce (const Range & range,
const Value & identity,
const RealBody & real_body,
const Reduction & reduction,
const simple_partitioner & partitioner,
task_group_context & context 
)
-
- -

Parallel iteration with reduction, simple partitioner and user-supplied context.

- -
-
- -
-
-
-template<typename Range , typename Value , typename RealBody , typename Reduction >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Value tbb::parallel_reduce (const Range & range,
const Value & identity,
const RealBody & real_body,
const Reduction & reduction,
const auto_partitioner & partitioner,
task_group_context & context 
)
-
- -

Parallel iteration with reduction, auto_partitioner and user-supplied context.

- -
-
- -
-
-
-template<typename Range , typename Value , typename RealBody , typename Reduction >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Value tbb::parallel_reduce (const Range & range,
const Value & identity,
const RealBody & real_body,
const Reduction & reduction,
affinity_partitioner & partitioner,
task_group_context & context 
)
-
- -

Parallel iteration with reduction, affinity_partitioner and user-supplied context.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - -
void tbb::parallel_scan (const Range & range,
Body & body 
)
-
- -

Parallel prefix with default partitioner.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_scan (const Range & range,
Body & body,
const simple_partitioner & partitioner 
)
-
- -

Parallel prefix with simple_partitioner.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_scan (const Range & range,
Body & body,
const auto_partitioner & partitioner 
)
-
- -

Parallel prefix with auto_partitioner.

- -
-
- -
-
-
-template<typename RandomAccessIterator , typename Compare >
- - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_sort (RandomAccessIterator begin,
RandomAccessIterator end,
const Compare & comp 
)
-
- -

Sorts the data in [begin,end) using the given comparator.

-

The compare function object is used for all comparisons between elements during sorting. The compare object must define a bool operator() function.

- -

Referenced by tbb::parallel_sort().

- -
-
- -
-
-
-template<typename RandomAccessIterator >
- - - - - -
- - - - - - - - - - - - - - - - - - -
void tbb::parallel_sort (RandomAccessIterator begin,
RandomAccessIterator end 
)
-
-inline
-
- -

Sorts the data in [begin,end) with a default comparator std::less<RandomAccessIterator>

- -

References tbb::parallel_sort().

- -
-
- -
-
-
-template<typename T >
- - - - - -
- - - - - - - - - - - - - - - - - - -
void tbb::parallel_sort (T * begin,
T * end 
)
-
-inline
-
- -

Sorts the data in the range [begin,end) with a default comparator std::less<T>

- -

References tbb::parallel_sort().

- -
-
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00235.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00235.html deleted file mode 100644 index 67399fa22..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00235.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - -Containers - - - - - - - -
- -
-
Containers
-
-
- - - - - - - - - - - - - - - - - - - - -

-Classes

class  tbb::combinable< T >
 Thread-local storage with optional reduction. More...
 
class  tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
 Unordered map from Key to T. More...
 
class  tbb::strict_ppl::concurrent_queue< T, A >
 A high-performance thread-safe non-blocking concurrent queue. More...
 
class  tbb::concurrent_bounded_queue< T, A >
 A high-performance thread-safe blocking concurrent bounded queue. More...
 
class  tbb::concurrent_vector< T, A >
 Concurrent vector container. More...
 
class  tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
 The enumerable_thread_specific container. More...
 
-

Detailed Description

-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00236.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00236.html deleted file mode 100644 index 8efb9b740..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00236.html +++ /dev/null @@ -1,382 +0,0 @@ - - - - - - -Memory Allocation - - - - - - - -
- -
-
Memory Allocation
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Classes

class  tbb::aligned_space< T, N >
 Block of space aligned sufficiently to construct an array T with N elements. More...
 
class  tbb::cache_aligned_allocator< T >
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
 
class  tbb::cache_aligned_allocator< void >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
 
class  tbb::interface6::memory_pool_allocator< T, P >
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
 
class  tbb::interface6::memory_pool_allocator< void, P >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
 
class  tbb::scalable_allocator< T >
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
 
class  tbb::scalable_allocator< void >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
 
class  tbb::tbb_allocator< T >
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
 
class  tbb::tbb_allocator< void >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
 
class  tbb::zero_allocator< T, Allocator >
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
 
class  tbb::zero_allocator< void, Allocator >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
 
- - - - - - - - - - - - - - - - - - - - - - - -

-Functions

void *__TBB_EXPORTED_FUNC scalable_malloc (size_t size)
 
void __TBB_EXPORTED_FUNC scalable_free (void *ptr)
 
void *__TBB_EXPORTED_FUNC scalable_realloc (void *ptr, size_t size)
 
void *__TBB_EXPORTED_FUNC scalable_calloc (size_t nobj, size_t size)
 
int __TBB_EXPORTED_FUNC scalable_posix_memalign (void **memptr, size_t alignment, size_t size)
 
void *__TBB_EXPORTED_FUNC scalable_aligned_malloc (size_t size, size_t alignment)
 
void *__TBB_EXPORTED_FUNC scalable_aligned_realloc (void *ptr, size_t size, size_t alignment)
 
void __TBB_EXPORTED_FUNC scalable_aligned_free (void *ptr)
 
size_t __TBB_EXPORTED_FUNC scalable_msize (void *ptr)
 
int __TBB_EXPORTED_FUNC scalable_allocation_mode (int param, intptr_t value)
 
int __TBB_EXPORTED_FUNC scalable_allocation_command (int cmd, void *param)
 
-

Detailed Description

-

Function Documentation

- -
-
- - - - - - - - -
void __TBB_EXPORTED_FUNC scalable_aligned_free (void * ptr)
-
-

The "_aligned_free" analogue.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
void* __TBB_EXPORTED_FUNC scalable_aligned_malloc (size_t size,
size_t alignment 
)
-
-

The "_aligned_malloc" analogue.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
void* __TBB_EXPORTED_FUNC scalable_aligned_realloc (void * ptr,
size_t size,
size_t alignment 
)
-
-

The "_aligned_realloc" analogue.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
int __TBB_EXPORTED_FUNC scalable_allocation_command (int cmd,
void * param 
)
-
-

Call TBB allocator-specific commands.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
int __TBB_EXPORTED_FUNC scalable_allocation_mode (int param,
intptr_t value 
)
-
-

Set TBB allocator-specific allocation modes.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
void* __TBB_EXPORTED_FUNC scalable_calloc (size_t nobj,
size_t size 
)
-
-

The "calloc" analogue complementing scalable_malloc.

- -
-
- -
-
- - - - - - - - -
void __TBB_EXPORTED_FUNC scalable_free (void * ptr)
-
-

The "free" analogue to discard a previously allocated piece of memory.

- -

Referenced by tbb::scalable_allocator< T >::deallocate().

- -
-
- -
-
- - - - - - - - -
void* __TBB_EXPORTED_FUNC scalable_malloc (size_t size)
-
-

The "malloc" analogue to allocate block of memory of size bytes.

- -

Referenced by tbb::scalable_allocator< T >::allocate().

- -
-
- -
-
- - - - - - - - -
size_t __TBB_EXPORTED_FUNC scalable_msize (void * ptr)
-
-

The analogue of msize/malloc_size/malloc_usable_size. Returns the usable size of a memory block previously allocated by scalable*, or 0 (zero) if ptr does not point to such a block.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
int __TBB_EXPORTED_FUNC scalable_posix_memalign (void ** memptr,
size_t alignment,
size_t size 
)
-
-

The "posix_memalign" analogue.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
void* __TBB_EXPORTED_FUNC scalable_realloc (void * ptr,
size_t size 
)
-
-

The "realloc" analogue complementing scalable_malloc.

- -
-
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00237.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00237.html deleted file mode 100644 index 416ea18da..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00237.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - -Synchronization - - - - - - - -
- -
-
Synchronization
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Classes

struct  tbb::atomic< T >
 Primary template for atomic. More...
 
class  tbb::mutex
 Wrapper around the platform's native reader-writer lock. More...
 
class  tbb::null_mutex
 A mutex which does nothing. More...
 
class  tbb::null_rw_mutex
 A rw mutex which does nothing. More...
 
class  tbb::queuing_mutex
 Queuing mutex with local-only spinning. More...
 
class  tbb::queuing_rw_mutex
 Queuing reader-writer mutex with local-only spinning. More...
 
class  tbb::interface5::reader_writer_lock
 Writer-preference reader-writer lock with local-only spinning on readers. More...
 
class  tbb::recursive_mutex
 
class  tbb::spin_mutex
 A lock that occupies a single byte. More...
 
class  tbb::spin_rw_mutex_v3
 Fast, unfair, spinning reader-writer lock with backoff and writer-preference. More...
 
- - - - - - - -

-Typedefs

typedef
-interface7::internal::padded_mutex
-< interface7::internal::x86_eliding_mutex,
-false > 
tbb::speculative_spin_mutex
 A cross-platform spin mutex with speculative lock acquisition. More...
 
typedef
-interface7::internal::padded_mutex
-< tbb::interface7::internal::x86_rtm_rw_mutex,
-true > 
tbb::interface7::speculative_spin_rw_mutex
 A cross-platform spin reader/writer mutex with speculative lock acquisition. More...
 
-

Detailed Description

-

Typedef Documentation

- -
-
- - - - -
typedef interface7::internal::padded_mutex< spin_mutex, false > tbb::speculative_spin_mutex
-
- -

A cross-platform spin mutex with speculative lock acquisition.

-

On platforms with proper HW support, this lock may speculatively execute its critical sections, using HW mechanisms to detect real data races and ensure atomicity of the critical sections. In particular, it uses Intel(R) Transactional Synchronization Extensions (Intel(R) TSX). Without such HW support, it behaves like a spin_mutex. It should be used for locking short critical sections where the lock is contended but the data it protects are not. If zero-initialized, the mutex is considered unheld.

- -
-
- -
-
- - - - -
typedef interface7::internal::padded_mutex< tbb::spin_rw_mutex, true > tbb::interface7::speculative_spin_rw_mutex
-
- -

A cross-platform spin reader/writer mutex with speculative lock acquisition.

-

On platforms with proper HW support, this lock may speculatively execute its critical sections, using HW mechanisms to detect real data races and ensure atomicity of the critical sections. In particular, it uses Intel(R) Transactional Synchronization Extensions (Intel(R) TSX). Without such HW support, it behaves like a spin_rw_mutex. It should be used for locking short critical sections where the lock is contended but the data it protects are not.

- -
-
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00238.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00238.html deleted file mode 100644 index ac7208b08..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00238.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - -Timing - - - - - - - -
- -
-
Timing
-
-
- - - - - -

-Classes

class  tbb::tick_count
 Absolute timestamp. More...
 
-

Detailed Description

-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00239.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00239.html deleted file mode 100644 index 4ff11ee90..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00239.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - -Task Scheduling - - - - - - - -
- -
-
Task Scheduling
-
-
- - - - - -

-Classes

class  tbb::task_scheduler_init
 Class delimiting the scope of task scheduler activity. More...
 
-

Detailed Description

-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00240.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00240.html deleted file mode 100644 index 12c13fc76..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00240.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - -Deprecated List - - - - - - - -
-
-
Deprecated List
-
-
-
-
Member tbb::deprecated::concurrent_queue< T, A >::pop_if_present (T &destination)
-
Use try_pop()
-
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00242.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00242.html deleted file mode 100644 index 58862db98..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00242.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
__TBB_malloc_proxy_caller Member List
-
-
- -

This is the complete list of members for __TBB_malloc_proxy_caller, including all inherited members.

- - -
__TBB_malloc_proxy_caller() (defined in __TBB_malloc_proxy_caller)__TBB_malloc_proxy_callerinline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00243.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00243.html deleted file mode 100644 index 5579f71fb..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00243.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
rml::MemPoolPolicy Member List
-
-
- -

This is the complete list of members for rml::MemPoolPolicy, including all inherited members.

- - - - - - - - - - -
fixedPool (defined in rml::MemPoolPolicy)rml::MemPoolPolicy
granularity (defined in rml::MemPoolPolicy)rml::MemPoolPolicy
keepAllMemory (defined in rml::MemPoolPolicy)rml::MemPoolPolicy
MemPoolPolicy(rawAllocType pAlloc_, rawFreeType pFree_, size_t granularity_=0, bool fixedPool_=false, bool keepAllMemory_=false) (defined in rml::MemPoolPolicy)rml::MemPoolPolicyinline
pAlloc (defined in rml::MemPoolPolicy)rml::MemPoolPolicy
pFree (defined in rml::MemPoolPolicy)rml::MemPoolPolicy
reserved (defined in rml::MemPoolPolicy)rml::MemPoolPolicy
TBBMALLOC_POOL_VERSION enum value (defined in rml::MemPoolPolicy)rml::MemPoolPolicy
version (defined in rml::MemPoolPolicy)rml::MemPoolPolicy
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00244.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00244.html deleted file mode 100644 index 0ab255f41..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00244.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::aligned_space< T, N > Member List
-
-
- -

This is the complete list of members for tbb::aligned_space< T, N >, including all inherited members.

- - - -
begin()tbb::aligned_space< T, N >inline
end()tbb::aligned_space< T, N >inline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00245.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00245.html deleted file mode 100644 index c15753868..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00245.html +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::atomic< T > Member List
-
-
- -

This is the complete list of members for tbb::atomic< T >, including all inherited members.

- - - - - -
atomic()=default (defined in tbb::atomic< T >)tbb::atomic< T >
atomic(T arg) (defined in tbb::atomic< T >)tbb::atomic< T >inline
operator=(T rhs) (defined in tbb::atomic< T >)tbb::atomic< T >inline
operator=(const atomic< T > &rhs) (defined in tbb::atomic< T >)tbb::atomic< T >inline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00246.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00246.html deleted file mode 100644 index 3ab7f202d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00246.html +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::atomic< void * > Member List
-
-
- -

This is the complete list of members for tbb::atomic< void * >, including all inherited members.

- - - - - -
atomic()=default (defined in tbb::atomic< void * >)tbb::atomic< void * >
atomic(void *arg) (defined in tbb::atomic< void * >)tbb::atomic< void * >inline
operator=(void *rhs) (defined in tbb::atomic< void * >)tbb::atomic< void * >inline
operator=(const atomic< void * > &rhs) (defined in tbb::atomic< void * >)tbb::atomic< void * >inline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00247.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00247.html deleted file mode 100644 index 247397dc4..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00247.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::blocked_range< Value > Member List
-
-
- -

This is the complete list of members for tbb::blocked_range< Value >, including all inherited members.

- - - - - - - - - - - - - - -
begin() const tbb::blocked_range< Value >inline
blocked_range()tbb::blocked_range< Value >inline
blocked_range(Value begin_, Value end_, size_type grainsize_=1)tbb::blocked_range< Value >inline
blocked_range(blocked_range &r, split)tbb::blocked_range< Value >inline
blocked_range2d (defined in tbb::blocked_range< Value >)tbb::blocked_range< Value >friend
blocked_range3d (defined in tbb::blocked_range< Value >)tbb::blocked_range< Value >friend
const_iterator typedeftbb::blocked_range< Value >
empty() const tbb::blocked_range< Value >inline
end() const tbb::blocked_range< Value >inline
grainsize() const tbb::blocked_range< Value >inline
is_divisible() const tbb::blocked_range< Value >inline
size() const tbb::blocked_range< Value >inline
size_type typedeftbb::blocked_range< Value >
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00248.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00248.html deleted file mode 100644 index e79e50d7a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00248.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::blocked_range2d< RowValue, ColValue > Member List
-
-
- -

This is the complete list of members for tbb::blocked_range2d< RowValue, ColValue >, including all inherited members.

- - - - - - - - - - -
blocked_range2d(RowValue row_begin, RowValue row_end, typename row_range_type::size_type row_grainsize, ColValue col_begin, ColValue col_end, typename col_range_type::size_type col_grainsize) (defined in tbb::blocked_range2d< RowValue, ColValue >)tbb::blocked_range2d< RowValue, ColValue >inline
blocked_range2d(RowValue row_begin, RowValue row_end, ColValue col_begin, ColValue col_end) (defined in tbb::blocked_range2d< RowValue, ColValue >)tbb::blocked_range2d< RowValue, ColValue >inline
blocked_range2d(blocked_range2d &r, split) (defined in tbb::blocked_range2d< RowValue, ColValue >)tbb::blocked_range2d< RowValue, ColValue >inline
col_range_type typedef (defined in tbb::blocked_range2d< RowValue, ColValue >)tbb::blocked_range2d< RowValue, ColValue >
cols() const tbb::blocked_range2d< RowValue, ColValue >inline
empty() const tbb::blocked_range2d< RowValue, ColValue >inline
is_divisible() const tbb::blocked_range2d< RowValue, ColValue >inline
row_range_type typedeftbb::blocked_range2d< RowValue, ColValue >
rows() const tbb::blocked_range2d< RowValue, ColValue >inline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00249.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00249.html deleted file mode 100644 index 7e2d4afc0..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00249.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::blocked_range3d< PageValue, RowValue, ColValue > Member List
-
-
- -

This is the complete list of members for tbb::blocked_range3d< PageValue, RowValue, ColValue >, including all inherited members.

- - - - - - - - - - - - -
blocked_range3d(PageValue page_begin, PageValue page_end, RowValue row_begin, RowValue row_end, ColValue col_begin, ColValue col_end) (defined in tbb::blocked_range3d< PageValue, RowValue, ColValue >)tbb::blocked_range3d< PageValue, RowValue, ColValue >inline
blocked_range3d(PageValue page_begin, PageValue page_end, typename page_range_type::size_type page_grainsize, RowValue row_begin, RowValue row_end, typename row_range_type::size_type row_grainsize, ColValue col_begin, ColValue col_end, typename col_range_type::size_type col_grainsize) (defined in tbb::blocked_range3d< PageValue, RowValue, ColValue >)tbb::blocked_range3d< PageValue, RowValue, ColValue >inline
blocked_range3d(blocked_range3d &r, split) (defined in tbb::blocked_range3d< PageValue, RowValue, ColValue >)tbb::blocked_range3d< PageValue, RowValue, ColValue >inline
col_range_type typedef (defined in tbb::blocked_range3d< PageValue, RowValue, ColValue >)tbb::blocked_range3d< PageValue, RowValue, ColValue >
cols() const tbb::blocked_range3d< PageValue, RowValue, ColValue >inline
empty() const tbb::blocked_range3d< PageValue, RowValue, ColValue >inline
is_divisible() const tbb::blocked_range3d< PageValue, RowValue, ColValue >inline
page_range_type typedeftbb::blocked_range3d< PageValue, RowValue, ColValue >
pages() const tbb::blocked_range3d< PageValue, RowValue, ColValue >inline
row_range_type typedef (defined in tbb::blocked_range3d< PageValue, RowValue, ColValue >)tbb::blocked_range3d< PageValue, RowValue, ColValue >
rows() const tbb::blocked_range3d< PageValue, RowValue, ColValue >inline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00250.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00250.html deleted file mode 100644 index 12ffe6809..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00250.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::cache_aligned_allocator< T > Member List
-
-
- -

This is the complete list of members for tbb::cache_aligned_allocator< T >, including all inherited members.

- - - - - - - - - - - - - - - - - - - -
address(reference x) const (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >inline
address(const_reference x) const (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >inline
allocate(size_type n, const void *hint=0)tbb::cache_aligned_allocator< T >inline
cache_aligned_allocator() (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >inline
cache_aligned_allocator(const cache_aligned_allocator &) (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >inline
cache_aligned_allocator(const cache_aligned_allocator< U > &) (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >inline
const_pointer typedef (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >
const_reference typedef (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >
construct(U *p, Args &&...args)tbb::cache_aligned_allocator< T >inline
construct(pointer p, const value_type &value) (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >inline
deallocate(pointer p, size_type)tbb::cache_aligned_allocator< T >inline
destroy(pointer p)tbb::cache_aligned_allocator< T >inline
difference_type typedef (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >
max_size() const tbb::cache_aligned_allocator< T >inline
pointer typedef (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >
reference typedef (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >
size_type typedef (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >
value_type typedef (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00251.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00251.html deleted file mode 100644 index 2dc21d3eb..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00251.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::cache_aligned_allocator< T >::rebind< U > Member List
-
-
- -

This is the complete list of members for tbb::cache_aligned_allocator< T >::rebind< U >, including all inherited members.

- - -
other typedef (defined in tbb::cache_aligned_allocator< T >::rebind< U >)tbb::cache_aligned_allocator< T >::rebind< U >
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00252.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00252.html deleted file mode 100644 index 78321c125..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00252.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::cache_aligned_allocator< void > Member List
-
-
- -

This is the complete list of members for tbb::cache_aligned_allocator< void >, including all inherited members.

- - - - -
const_pointer typedef (defined in tbb::cache_aligned_allocator< void >)tbb::cache_aligned_allocator< void >
pointer typedef (defined in tbb::cache_aligned_allocator< void >)tbb::cache_aligned_allocator< void >
value_type typedef (defined in tbb::cache_aligned_allocator< void >)tbb::cache_aligned_allocator< void >
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00253.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00253.html deleted file mode 100644 index c8b1fe2ad..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00253.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::cache_aligned_allocator< void >::rebind< U > Member List
-
-
- -

This is the complete list of members for tbb::cache_aligned_allocator< void >::rebind< U >, including all inherited members.

- - -
other typedef (defined in tbb::cache_aligned_allocator< void >::rebind< U >)tbb::cache_aligned_allocator< void >::rebind< U >
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00254.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00254.html deleted file mode 100644 index 795138c29..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00254.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::combinable< T > Member List
-
-
- -

This is the complete list of members for tbb::combinable< T >, including all inherited members.

- - - - - - - - - - - -
clear() (defined in tbb::combinable< T >)tbb::combinable< T >inline
combinable() (defined in tbb::combinable< T >)tbb::combinable< T >inline
combinable(finit _finit) (defined in tbb::combinable< T >)tbb::combinable< T >inline
combinable(const combinable &other) (defined in tbb::combinable< T >)tbb::combinable< T >inline
combine(combine_func_t f_combine) (defined in tbb::combinable< T >)tbb::combinable< T >inline
combine_each(combine_func_t f_combine) (defined in tbb::combinable< T >)tbb::combinable< T >inline
local() (defined in tbb::combinable< T >)tbb::combinable< T >inline
local(bool &exists) (defined in tbb::combinable< T >)tbb::combinable< T >inline
operator=(const combinable &other) (defined in tbb::combinable< T >)tbb::combinable< T >inline
~combinable()tbb::combinable< T >inline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00255.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00255.html deleted file mode 100644 index b077bd200..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00255.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::tbb_hash_compare< Key > Member List
-
-
- -

This is the complete list of members for tbb::tbb_hash_compare< Key >, including all inherited members.

- - - -
equal(const Key &a, const Key &b) (defined in tbb::tbb_hash_compare< Key >)tbb::tbb_hash_compare< Key >inlinestatic
hash(const Key &a) (defined in tbb::tbb_hash_compare< Key >)tbb::tbb_hash_compare< Key >inlinestatic
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00256.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00256.html deleted file mode 100644 index 5f987bba7..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00256.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::concurrent_bounded_queue< T, A > Member List
-
-
- -

This is the complete list of members for tbb::concurrent_bounded_queue< T, A >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
abort()tbb::concurrent_bounded_queue< T, A >inline
allocator_type typedeftbb::concurrent_bounded_queue< T, A >
capacity() const tbb::concurrent_bounded_queue< T, A >inline
clear()tbb::concurrent_bounded_queue< T, A >
concurrent_bounded_queue(const allocator_type &a=allocator_type())tbb::concurrent_bounded_queue< T, A >inlineexplicit
concurrent_bounded_queue(const concurrent_bounded_queue &src, const allocator_type &a=allocator_type())tbb::concurrent_bounded_queue< T, A >inline
concurrent_bounded_queue(InputIterator begin, InputIterator end, const allocator_type &a=allocator_type())tbb::concurrent_bounded_queue< T, A >inline
const_iterator typedef (defined in tbb::concurrent_bounded_queue< T, A >)tbb::concurrent_bounded_queue< T, A >
const_reference typedeftbb::concurrent_bounded_queue< T, A >
difference_type typedeftbb::concurrent_bounded_queue< T, A >
empty() const tbb::concurrent_bounded_queue< T, A >inline
get_allocator() const tbb::concurrent_bounded_queue< T, A >inline
internal::concurrent_queue_iterator (defined in tbb::concurrent_bounded_queue< T, A >)tbb::concurrent_bounded_queue< T, A >friend
iterator typedef (defined in tbb::concurrent_bounded_queue< T, A >)tbb::concurrent_bounded_queue< T, A >
pop(T &destination)tbb::concurrent_bounded_queue< T, A >inline
push(const T &source)tbb::concurrent_bounded_queue< T, A >inline
reference typedeftbb::concurrent_bounded_queue< T, A >
set_capacity(size_type new_capacity)tbb::concurrent_bounded_queue< T, A >inline
size() const tbb::concurrent_bounded_queue< T, A >inline
size_type typedeftbb::concurrent_bounded_queue< T, A >
try_pop(T &destination)tbb::concurrent_bounded_queue< T, A >inline
try_push(const T &source)tbb::concurrent_bounded_queue< T, A >inline
unsafe_begin() (defined in tbb::concurrent_bounded_queue< T, A >)tbb::concurrent_bounded_queue< T, A >inline
unsafe_begin() const (defined in tbb::concurrent_bounded_queue< T, A >)tbb::concurrent_bounded_queue< T, A >inline
unsafe_end() (defined in tbb::concurrent_bounded_queue< T, A >)tbb::concurrent_bounded_queue< T, A >inline
unsafe_end() const (defined in tbb::concurrent_bounded_queue< T, A >)tbb::concurrent_bounded_queue< T, A >inline
value_type typedeftbb::concurrent_bounded_queue< T, A >
~concurrent_bounded_queue()tbb::concurrent_bounded_queue< T, A >
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00257.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00257.html deleted file mode 100644 index beeddb5d1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00257.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::concurrent_vector< T, A > Member List
-
-
- -

This is the complete list of members for tbb::concurrent_vector< T, A >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
allocator_type typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
assign(size_type n, const_reference t)tbb::concurrent_vector< T, A >inline
assign(I first, I last)tbb::concurrent_vector< T, A >inline
assign(std::initializer_list< T > init_list)tbb::concurrent_vector< T, A >inline
at(size_type index)tbb::concurrent_vector< T, A >inline
at(size_type index) const tbb::concurrent_vector< T, A >inline
back()tbb::concurrent_vector< T, A >inline
back() const tbb::concurrent_vector< T, A >inline
begin()tbb::concurrent_vector< T, A >inline
begin() const tbb::concurrent_vector< T, A >inline
capacity() const tbb::concurrent_vector< T, A >inline
cbegin() const tbb::concurrent_vector< T, A >inline
cend() const tbb::concurrent_vector< T, A >inline
clear()tbb::concurrent_vector< T, A >inline
compact()tbb::concurrent_vector< T, A >inline
concurrent_vector(const allocator_type &a=allocator_type())tbb::concurrent_vector< T, A >inlineexplicit
concurrent_vector(std::initializer_list< T > init_list, const allocator_type &a=allocator_type())tbb::concurrent_vector< T, A >inline
concurrent_vector(const concurrent_vector &vector, const allocator_type &a=allocator_type())tbb::concurrent_vector< T, A >inline
concurrent_vector(const concurrent_vector< T, M > &vector, const allocator_type &a=allocator_type())tbb::concurrent_vector< T, A >inline
concurrent_vector(size_type n)tbb::concurrent_vector< T, A >inlineexplicit
concurrent_vector(size_type n, const_reference t, const allocator_type &a=allocator_type())tbb::concurrent_vector< T, A >inline
concurrent_vector(I first, I last, const allocator_type &a=allocator_type())tbb::concurrent_vector< T, A >inline
const_iterator typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
const_pointer typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
const_range_type typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
const_reference typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
const_reverse_iterator typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
const_reverse_iterator typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
crbegin() const tbb::concurrent_vector< T, A >inline
crend() const tbb::concurrent_vector< T, A >inline
difference_type typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
empty() const tbb::concurrent_vector< T, A >inline
end()tbb::concurrent_vector< T, A >inline
end() const tbb::concurrent_vector< T, A >inline
front()tbb::concurrent_vector< T, A >inline
front() const tbb::concurrent_vector< T, A >inline
get_allocator() const tbb::concurrent_vector< T, A >inline
grow_by(size_type delta)tbb::concurrent_vector< T, A >inline
grow_by(size_type delta)tbb::concurrent_vector< T, A >inline
grow_by(size_type delta, const_reference t)tbb::concurrent_vector< T, A >inline
grow_by(size_type delta, const_reference t)tbb::concurrent_vector< T, A >inline
grow_to_at_least(size_type n)tbb::concurrent_vector< T, A >inline
grow_to_at_least(size_type n)tbb::concurrent_vector< T, A >inline
internal::vector_iterator (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >friend
internal_vector_base() const (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >inline
iterator typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
max_size() const tbb::concurrent_vector< T, A >inline
operator=(const concurrent_vector &vector)tbb::concurrent_vector< T, A >inline
operator=(const concurrent_vector< T, M > &vector)tbb::concurrent_vector< T, A >inline
operator=(const std::initializer_list< T > &init_list)tbb::concurrent_vector< T, A >inline
operator[](size_type index)tbb::concurrent_vector< T, A >inline
operator[](size_type index) const tbb::concurrent_vector< T, A >inline
pointer typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
push_back(const_reference item) iterator push_back(const _reference item)tbb::concurrent_vector< T, A >inline
range(size_t grainsize=1)tbb::concurrent_vector< T, A >inline
range(size_t grainsize=1) const tbb::concurrent_vector< T, A >inline
range_type typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
rbegin()tbb::concurrent_vector< T, A >inline
rbegin() const tbb::concurrent_vector< T, A >inline
reference typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
rend()tbb::concurrent_vector< T, A >inline
rend() const tbb::concurrent_vector< T, A >inline
reserve(size_type n)tbb::concurrent_vector< T, A >inline
resize(size_type n)tbb::concurrent_vector< T, A >inline
resize(size_type n, const_reference t)tbb::concurrent_vector< T, A >inline
reverse_iterator typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
reverse_iterator typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
shrink_to_fit()tbb::concurrent_vector< T, A >
size() const tbb::concurrent_vector< T, A >inline
size_type typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
swap(concurrent_vector &vector)tbb::concurrent_vector< T, A >inline
value_type typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
~concurrent_vector()tbb::concurrent_vector< T, A >inline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00258.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00258.html deleted file mode 100644 index 6c2db24d2..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00258.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::mutex Member List
-
-
- -

This is the complete list of members for tbb::mutex, including all inherited members.

- - - - - - - - - - - - - - - - - - -
DESTROYED enum value (defined in tbb::mutex)tbb::mutex
HELD enum value (defined in tbb::mutex)tbb::mutex
INITIALIZED enum value (defined in tbb::mutex)tbb::mutex
is_fair_mutex (defined in tbb::mutex)tbb::mutexstatic
is_recursive_mutex (defined in tbb::mutex)tbb::mutexstatic
is_rw_mutex (defined in tbb::mutex)tbb::mutexstatic
lock()tbb::mutexinline
mutex()tbb::mutexinline
native_handle() (defined in tbb::mutex)tbb::mutexinline
native_handle_type typedeftbb::mutex
native_handle_type typedef (defined in tbb::mutex)tbb::mutex
scoped_lock (defined in tbb::mutex)tbb::mutexfriend
set_state(state_t to)tbb::mutexinline
state_t enum name (defined in tbb::mutex)tbb::mutex
try_lock()tbb::mutexinline
unlock()tbb::mutexinline
~mutex() (defined in tbb::mutex)tbb::mutexinline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00259.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00259.html deleted file mode 100644 index f303b5dd2..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00259.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::mutex::scoped_lock Member List
-
-
- -

This is the complete list of members for tbb::mutex::scoped_lock, including all inherited members.

- - - - - - - - -
acquire(mutex &mutex)tbb::mutex::scoped_lockinline
mutex (defined in tbb::mutex::scoped_lock)tbb::mutex::scoped_lockfriend
release()tbb::mutex::scoped_lockinline
scoped_lock()tbb::mutex::scoped_lockinline
scoped_lock(mutex &mutex)tbb::mutex::scoped_lockinline
try_acquire(mutex &mutex)tbb::mutex::scoped_lockinline
~scoped_lock()tbb::mutex::scoped_lockinline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00260.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00260.html deleted file mode 100644 index 34ab65c8a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00260.html +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::null_mutex Member List
-
-
- -

This is the complete list of members for tbb::null_mutex, including all inherited members.

- - - - - -
is_fair_mutex (defined in tbb::null_mutex)tbb::null_mutexstatic
is_recursive_mutex (defined in tbb::null_mutex)tbb::null_mutexstatic
is_rw_mutex (defined in tbb::null_mutex)tbb::null_mutexstatic
null_mutex() (defined in tbb::null_mutex)tbb::null_mutexinline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00261.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00261.html deleted file mode 100644 index 3717aaf22..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00261.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::null_mutex::scoped_lock Member List
-
-
- -

This is the complete list of members for tbb::null_mutex::scoped_lock, including all inherited members.

- - - - - - - -
acquire(null_mutex &) (defined in tbb::null_mutex::scoped_lock)tbb::null_mutex::scoped_lockinline
release() (defined in tbb::null_mutex::scoped_lock)tbb::null_mutex::scoped_lockinline
scoped_lock() (defined in tbb::null_mutex::scoped_lock)tbb::null_mutex::scoped_lockinline
scoped_lock(null_mutex &) (defined in tbb::null_mutex::scoped_lock)tbb::null_mutex::scoped_lockinline
try_acquire(null_mutex &) (defined in tbb::null_mutex::scoped_lock)tbb::null_mutex::scoped_lockinline
~scoped_lock() (defined in tbb::null_mutex::scoped_lock)tbb::null_mutex::scoped_lockinline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00262.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00262.html deleted file mode 100644 index 430a03399..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00262.html +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::null_rw_mutex Member List
-
-
- -

This is the complete list of members for tbb::null_rw_mutex, including all inherited members.

- - - - - -
is_fair_mutex (defined in tbb::null_rw_mutex)tbb::null_rw_mutexstatic
is_recursive_mutex (defined in tbb::null_rw_mutex)tbb::null_rw_mutexstatic
is_rw_mutex (defined in tbb::null_rw_mutex)tbb::null_rw_mutexstatic
null_rw_mutex() (defined in tbb::null_rw_mutex)tbb::null_rw_mutexinline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00263.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00263.html deleted file mode 100644 index b4975a01c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00263.html +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::null_rw_mutex::scoped_lock Member List
-
-
- -

This is the complete list of members for tbb::null_rw_mutex::scoped_lock, including all inherited members.

- - - - - - - - - -
acquire(null_rw_mutex &, bool=true) (defined in tbb::null_rw_mutex::scoped_lock)tbb::null_rw_mutex::scoped_lockinline
downgrade_to_reader() (defined in tbb::null_rw_mutex::scoped_lock)tbb::null_rw_mutex::scoped_lockinline
release() (defined in tbb::null_rw_mutex::scoped_lock)tbb::null_rw_mutex::scoped_lockinline
scoped_lock() (defined in tbb::null_rw_mutex::scoped_lock)tbb::null_rw_mutex::scoped_lockinline
scoped_lock(null_rw_mutex &, bool=true) (defined in tbb::null_rw_mutex::scoped_lock)tbb::null_rw_mutex::scoped_lockinline
try_acquire(null_rw_mutex &, bool=true) (defined in tbb::null_rw_mutex::scoped_lock)tbb::null_rw_mutex::scoped_lockinline
upgrade_to_writer() (defined in tbb::null_rw_mutex::scoped_lock)tbb::null_rw_mutex::scoped_lockinline
~scoped_lock() (defined in tbb::null_rw_mutex::scoped_lock)tbb::null_rw_mutex::scoped_lockinline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00264.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00264.html deleted file mode 100644 index 77fe792d4..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00264.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::parallel_do_feeder< Item > Member List
-
-
- -

This is the complete list of members for tbb::parallel_do_feeder< Item >, including all inherited members.

- - - -
add(const Item &item)tbb::parallel_do_feeder< Item >inline
internal::parallel_do_feeder_impl (defined in tbb::parallel_do_feeder< Item >)tbb::parallel_do_feeder< Item >friend
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00265.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00265.html deleted file mode 100644 index ddd997501..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00265.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::pre_scan_tag Member List
-
-
- -

This is the complete list of members for tbb::pre_scan_tag, including all inherited members.

- - -
is_final_scan() (defined in tbb::pre_scan_tag)tbb::pre_scan_taginlinestatic
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00266.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00266.html deleted file mode 100644 index 0b9a2e8e7..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00266.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::final_scan_tag Member List
-
-
- -

This is the complete list of members for tbb::final_scan_tag, including all inherited members.

- - -
is_final_scan() (defined in tbb::final_scan_tag)tbb::final_scan_taginlinestatic
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00267.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00267.html deleted file mode 100644 index bd6413052..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00267.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::parallel_while< Body > Member List
-
-
- -

This is the complete list of members for tbb::parallel_while< Body >, including all inherited members.

- - - - - - -
add(const value_type &item)tbb::parallel_while< Body >
parallel_while()tbb::parallel_while< Body >inline
run(Stream &stream, const Body &body)tbb::parallel_while< Body >
value_type typedeftbb::parallel_while< Body >
~parallel_while()tbb::parallel_while< Body >inline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00268.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00268.html deleted file mode 100644 index 239d68ceb..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00268.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::filter Member List
-
-
- -

This is the complete list of members for tbb::filter, including all inherited members.

- - - - - - -
exact_exception_propagationtbb::filterprotectedstatic
filter_is_boundtbb::filterprotectedstatic
filter_is_out_of_ordertbb::filterprotectedstatic
filter_is_serialtbb::filterprotectedstatic
filter_may_emit_nulltbb::filterprotectedstatic
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00269.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00269.html deleted file mode 100644 index 1fc4e6413..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00269.html +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::thread_bound_filter Member List
-
-
- -

This is the complete list of members for tbb::thread_bound_filter, including all inherited members.

- - - - - - - - - - - - - -
end_of_stream enum value (defined in tbb::thread_bound_filter)tbb::thread_bound_filter
exact_exception_propagationtbb::filterprotectedstatic
filter_is_boundtbb::filterprotectedstatic
filter_is_out_of_ordertbb::filterprotectedstatic
filter_is_serialtbb::filterprotectedstatic
filter_may_emit_nulltbb::filterprotectedstatic
item_not_available enum value (defined in tbb::thread_bound_filter)tbb::thread_bound_filter
process_item()tbb::thread_bound_filter
result_type enum name (defined in tbb::thread_bound_filter)tbb::thread_bound_filter
success enum value (defined in tbb::thread_bound_filter)tbb::thread_bound_filter
thread_bound_filter(mode filter_mode) (defined in tbb::thread_bound_filter)tbb::thread_bound_filterinlineprotected
try_process_item()tbb::thread_bound_filter
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00270.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00270.html deleted file mode 100644 index a97550c44..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00270.html +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::pipeline Member List
-
-
- -

This is the complete list of members for tbb::pipeline, including all inherited members.

- - - - - - - - - - - - - -
add_filter(filter &filter_)tbb::pipeline
clear()tbb::pipeline
filter (defined in tbb::pipeline)tbb::pipelinefriend
internal::pipeline_cleaner (defined in tbb::pipeline)tbb::pipelinefriend
internal::pipeline_root_task (defined in tbb::pipeline)tbb::pipelinefriend
internal::stage_task (defined in tbb::pipeline)tbb::pipelinefriend
pipeline()tbb::pipeline
run(size_t max_number_of_live_tokens)tbb::pipeline
run(size_t max_number_of_live_tokens, tbb::task_group_context &context)tbb::pipeline
tbb::interface6::internal::pipeline_proxy (defined in tbb::pipeline)tbb::pipelinefriend
thread_bound_filter (defined in tbb::pipeline)tbb::pipelinefriend
~pipeline()tbb::pipelinevirtual
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00271.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00271.html deleted file mode 100644 index d51057433..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00271.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::queuing_mutex Member List
-
-
- -

This is the complete list of members for tbb::queuing_mutex, including all inherited members.

- - - - - - -
internal_construct() (defined in tbb::queuing_mutex)tbb::queuing_mutex
is_fair_mutex (defined in tbb::queuing_mutex)tbb::queuing_mutexstatic
is_recursive_mutex (defined in tbb::queuing_mutex)tbb::queuing_mutexstatic
is_rw_mutex (defined in tbb::queuing_mutex)tbb::queuing_mutexstatic
queuing_mutex()tbb::queuing_mutexinline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00272.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00272.html deleted file mode 100644 index cc54708e0..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00272.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::queuing_mutex::scoped_lock Member List
-
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00273.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00273.html deleted file mode 100644 index 076a67668..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00273.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::queuing_rw_mutex Member List
-
-
- -

This is the complete list of members for tbb::queuing_rw_mutex, including all inherited members.

- - - - - - - -
internal_construct() (defined in tbb::queuing_rw_mutex)tbb::queuing_rw_mutex
is_fair_mutex (defined in tbb::queuing_rw_mutex)tbb::queuing_rw_mutexstatic
is_recursive_mutex (defined in tbb::queuing_rw_mutex)tbb::queuing_rw_mutexstatic
is_rw_mutex (defined in tbb::queuing_rw_mutex)tbb::queuing_rw_mutexstatic
queuing_rw_mutex()tbb::queuing_rw_mutexinline
~queuing_rw_mutex()tbb::queuing_rw_mutexinline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00274.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00274.html deleted file mode 100644 index 71184dd73..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00274.html +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::queuing_rw_mutex::scoped_lock Member List
-
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00275.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00275.html deleted file mode 100644 index c486c273b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00275.html +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::recursive_mutex Member List
-
-
- -

This is the complete list of members for tbb::recursive_mutex, including all inherited members.

- - - - - - - - - - - - - -
is_fair_mutex (defined in tbb::recursive_mutex)tbb::recursive_mutexstatic
is_recursive_mutex (defined in tbb::recursive_mutex)tbb::recursive_mutexstatic
is_rw_mutex (defined in tbb::recursive_mutex)tbb::recursive_mutexstatic
lock()tbb::recursive_mutexinline
native_handle() (defined in tbb::recursive_mutex)tbb::recursive_mutexinline
native_handle_type typedeftbb::recursive_mutex
native_handle_type typedef (defined in tbb::recursive_mutex)tbb::recursive_mutex
recursive_mutex()tbb::recursive_mutexinline
scoped_lock (defined in tbb::recursive_mutex)tbb::recursive_mutexfriend
try_lock()tbb::recursive_mutexinline
unlock()tbb::recursive_mutexinline
~recursive_mutex() (defined in tbb::recursive_mutex)tbb::recursive_mutexinline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00276.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00276.html deleted file mode 100644 index 087cb7dac..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00276.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::recursive_mutex::scoped_lock Member List
-
-
- -

This is the complete list of members for tbb::recursive_mutex::scoped_lock, including all inherited members.

- - - - - - - - -
acquire(recursive_mutex &mutex)tbb::recursive_mutex::scoped_lockinline
recursive_mutex (defined in tbb::recursive_mutex::scoped_lock)tbb::recursive_mutex::scoped_lockfriend
release()tbb::recursive_mutex::scoped_lockinline
scoped_lock()tbb::recursive_mutex::scoped_lockinline
scoped_lock(recursive_mutex &mutex)tbb::recursive_mutex::scoped_lockinline
try_acquire(recursive_mutex &mutex)tbb::recursive_mutex::scoped_lockinline
~scoped_lock()tbb::recursive_mutex::scoped_lockinline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00277.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00277.html deleted file mode 100644 index 47fd0efe2..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00277.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::scalable_allocator< T > Member List
-
-
- -

This is the complete list of members for tbb::scalable_allocator< T >, including all inherited members.

- - - - - - - - - - - - - - - - - - - -
address(reference x) const (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >inline
address(const_reference x) const (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >inline
allocate(size_type n, const void *=0)tbb::scalable_allocator< T >inline
const_pointer typedef (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >
const_reference typedef (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >
construct (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >inline
construct(U *p, Args &&...args) (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >inline
deallocate(pointer p, size_type)tbb::scalable_allocator< T >inline
destroy(pointer p) (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >inline
difference_type typedef (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >
max_size() const tbb::scalable_allocator< T >inline
pointer typedef (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >
reference typedef (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >
scalable_allocator() (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >inline
scalable_allocator(const scalable_allocator &) (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >inline
scalable_allocator(const scalable_allocator< U > &) (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >inline
size_type typedef (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >
value_type typedef (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00278.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00278.html deleted file mode 100644 index a6f97e605..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00278.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::scalable_allocator< T >::rebind< U > Member List
-
-
- -

This is the complete list of members for tbb::scalable_allocator< T >::rebind< U >, including all inherited members.

- - -
other typedef (defined in tbb::scalable_allocator< T >::rebind< U >)tbb::scalable_allocator< T >::rebind< U >
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00279.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00279.html deleted file mode 100644 index ad6b31733..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00279.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::scalable_allocator< void > Member List
-
-
- -

This is the complete list of members for tbb::scalable_allocator< void >, including all inherited members.

- - - - -
const_pointer typedef (defined in tbb::scalable_allocator< void >)tbb::scalable_allocator< void >
pointer typedef (defined in tbb::scalable_allocator< void >)tbb::scalable_allocator< void >
value_type typedef (defined in tbb::scalable_allocator< void >)tbb::scalable_allocator< void >
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00280.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00280.html deleted file mode 100644 index ebabc30c7..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00280.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::scalable_allocator< void >::rebind< U > Member List
-
-
- -

This is the complete list of members for tbb::scalable_allocator< void >::rebind< U >, including all inherited members.

- - -
other typedef (defined in tbb::scalable_allocator< void >::rebind< U >)tbb::scalable_allocator< void >::rebind< U >
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00281.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00281.html deleted file mode 100644 index 17bad58d7..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00281.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::spin_mutex Member List
-
-
- -

This is the complete list of members for tbb::spin_mutex, including all inherited members.

- - - - - - - - - - -
internal_construct()tbb::spin_mutex
is_fair_mutex (defined in tbb::spin_mutex)tbb::spin_mutexstatic
is_recursive_mutex (defined in tbb::spin_mutex)tbb::spin_mutexstatic
is_rw_mutex (defined in tbb::spin_mutex)tbb::spin_mutexstatic
lock()tbb::spin_mutexinline
scoped_lock (defined in tbb::spin_mutex)tbb::spin_mutexfriend
spin_mutex()tbb::spin_mutexinline
try_lock()tbb::spin_mutexinline
unlock()tbb::spin_mutexinline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00282.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00282.html deleted file mode 100644 index 755e23e05..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00282.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::spin_mutex::scoped_lock Member List
-
-
- -

This is the complete list of members for tbb::spin_mutex::scoped_lock, including all inherited members.

- - - - - - - - -
acquire(spin_mutex &m)tbb::spin_mutex::scoped_lockinline
release()tbb::spin_mutex::scoped_lockinline
scoped_lock()tbb::spin_mutex::scoped_lockinline
scoped_lock(spin_mutex &m)tbb::spin_mutex::scoped_lockinline
spin_mutex (defined in tbb::spin_mutex::scoped_lock)tbb::spin_mutex::scoped_lockfriend
try_acquire(spin_mutex &m)tbb::spin_mutex::scoped_lockinline
~scoped_lock()tbb::spin_mutex::scoped_lockinline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00283.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00283.html deleted file mode 100644 index 163b5fae6..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00283.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::spin_rw_mutex_v3 Member List
-
-
- -

This is the complete list of members for tbb::spin_rw_mutex_v3, including all inherited members.

- - - - - - - - - - - - - - - - - - -
BUSY (defined in tbb::spin_rw_mutex_v3)tbb::spin_rw_mutex_v3protectedstatic
is_fair_mutex (defined in tbb::spin_rw_mutex_v3)tbb::spin_rw_mutex_v3static
is_recursive_mutex (defined in tbb::spin_rw_mutex_v3)tbb::spin_rw_mutex_v3static
is_rw_mutex (defined in tbb::spin_rw_mutex_v3)tbb::spin_rw_mutex_v3static
lock()tbb::spin_rw_mutex_v3inline
lock_read()tbb::spin_rw_mutex_v3inline
ONE_READER (defined in tbb::spin_rw_mutex_v3)tbb::spin_rw_mutex_v3protectedstatic
READERS (defined in tbb::spin_rw_mutex_v3)tbb::spin_rw_mutex_v3protectedstatic
spin_rw_mutex_v3()tbb::spin_rw_mutex_v3inline
statetbb::spin_rw_mutex_v3protected
state_t typedef (defined in tbb::spin_rw_mutex_v3)tbb::spin_rw_mutex_v3protected
try_lock()tbb::spin_rw_mutex_v3inline
try_lock_read()tbb::spin_rw_mutex_v3inline
unlock()tbb::spin_rw_mutex_v3inline
WRITER (defined in tbb::spin_rw_mutex_v3)tbb::spin_rw_mutex_v3protectedstatic
WRITER_PENDING (defined in tbb::spin_rw_mutex_v3)tbb::spin_rw_mutex_v3protectedstatic
~spin_rw_mutex_v3()tbb::spin_rw_mutex_v3inline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00284.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00284.html deleted file mode 100644 index 88cc31199..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00284.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::spin_rw_mutex_v3::scoped_lock Member List
-
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00285.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00285.html deleted file mode 100644 index ade1579c1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00285.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::task_handle< F > Member List
-
-
- -

This is the complete list of members for tbb::task_handle< F >, including all inherited members.

- - - - - - -
internal::task_handle_task (defined in tbb::task_handle< F >)tbb::task_handle< F >friend
operator()() const (defined in tbb::task_handle< F >)tbb::task_handle< F >inline
structured_task_group (defined in tbb::task_handle< F >)tbb::task_handle< F >friend
task_group (defined in tbb::task_handle< F >)tbb::task_handle< F >friend
task_handle(const F &f) (defined in tbb::task_handle< F >)tbb::task_handle< F >inline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00286.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00286.html deleted file mode 100644 index da4e44a62..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00286.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::task_group Member List
-
-
- -

This is the complete list of members for tbb::task_group, including all inherited members.

- - - - - - - - - - - - - - - - - - -
cancel() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
catch(...) (defined in tbb::task_group)tbb::task_groupinline
internal_run(F &f) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinlineprotected
internal_run_and_wait(F &f) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinlineprotected
is_canceling() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
my_context (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseprotected
my_root (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseprotected
owner() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinlineprotected
run(task_handle< F > &h) (defined in tbb::task_group)tbb::task_groupinline
run(const F &f) (defined in tbb::task_group)tbb::task_groupinline
run_and_wait(const F &f) (defined in tbb::task_group)tbb::task_groupinline
run_and_wait(task_handle< F > &h) (defined in tbb::task_group)tbb::task_groupinline
task_group() (defined in tbb::task_group)tbb::task_groupinline
task_group_base(uintptr_t traits=0) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
wait() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
~task_group() __TBB_TRY (defined in tbb::task_group)tbb::task_groupinline
~task_group_base() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00287.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00287.html deleted file mode 100644 index 89b6966df..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00287.html +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::structured_task_group Member List
-
-
- -

This is the complete list of members for tbb::structured_task_group, including all inherited members.

- - - - - - - - - - - - - -
cancel() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
internal_run(F &f) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinlineprotected
internal_run_and_wait(F &f) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinlineprotected
is_canceling() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
my_context (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseprotected
my_root (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseprotected
owner() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinlineprotected
run(task_handle< F > &h) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
run_and_wait(task_handle< F > &h) (defined in tbb::structured_task_group)tbb::structured_task_groupinline
task_group_base(uintptr_t traits=0) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
wait() (defined in tbb::structured_task_group)tbb::structured_task_groupinline
~task_group_base() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00288.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00288.html deleted file mode 100644 index 4f2a94bb2..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00288.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::task_scheduler_init Member List
-
-
- -

This is the complete list of members for tbb::task_scheduler_init, including all inherited members.

- - - - - - - - - - - - -
automatictbb::task_scheduler_initstatic
default_num_threads()tbb::task_scheduler_initstatic
deferredtbb::task_scheduler_initstatic
if(wait_workers_in_terminate) my_scheduler (defined in tbb::task_scheduler_init)tbb::task_scheduler_init
initialize(int number_of_threads=automatic)tbb::task_scheduler_init
initialize(int number_of_threads, stack_size_type thread_stack_size)tbb::task_scheduler_init
initialize(number_of_threads, thread_stack_size) (defined in tbb::task_scheduler_init)tbb::task_scheduler_init
is_active() const tbb::task_scheduler_initinline
terminate()tbb::task_scheduler_init
thread_stack_sizetbb::task_scheduler_init
~task_scheduler_init()tbb::task_scheduler_initinline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00289.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00289.html deleted file mode 100644 index b7bbaac8a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00289.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::tbb_allocator< T > Member List
-
-
- -

This is the complete list of members for tbb::tbb_allocator< T >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - -
address(reference x) const (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >inline
address(const_reference x) const (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >inline
allocate(size_type n, const void *=0)tbb::tbb_allocator< T >inline
allocator_type()tbb::tbb_allocator< T >inlinestatic
const_pointer typedef (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >
const_reference typedef (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >
construct(U *p, Args &&...args)tbb::tbb_allocator< T >inline
construct(pointer p, const value_type &value) (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >inline
deallocate(pointer p, size_type)tbb::tbb_allocator< T >inline
destroy(pointer p)tbb::tbb_allocator< T >inline
difference_type typedef (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >
malloc_type enum nametbb::tbb_allocator< T >
max_size() const tbb::tbb_allocator< T >inline
pointer typedef (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >
reference typedef (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >
scalable enum value (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >
size_type typedef (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >
standard enum value (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >
tbb_allocator() (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >inline
tbb_allocator(const tbb_allocator &) (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >inline
tbb_allocator(const tbb_allocator< U > &) (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >inline
value_type typedef (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00290.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00290.html deleted file mode 100644 index c35ac6d98..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00290.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::tbb_allocator< T >::rebind< U > Member List
-
-
- -

This is the complete list of members for tbb::tbb_allocator< T >::rebind< U >, including all inherited members.

- - -
other typedef (defined in tbb::tbb_allocator< T >::rebind< U >)tbb::tbb_allocator< T >::rebind< U >
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00291.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00291.html deleted file mode 100644 index 79883cd3f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00291.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::tbb_allocator< void > Member List
-
-
- -

This is the complete list of members for tbb::tbb_allocator< void >, including all inherited members.

- - - - -
const_pointer typedef (defined in tbb::tbb_allocator< void >)tbb::tbb_allocator< void >
pointer typedef (defined in tbb::tbb_allocator< void >)tbb::tbb_allocator< void >
value_type typedef (defined in tbb::tbb_allocator< void >)tbb::tbb_allocator< void >
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00292.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00292.html deleted file mode 100644 index 980b88358..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00292.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::tbb_allocator< void >::rebind< U > Member List
-
-
- -

This is the complete list of members for tbb::tbb_allocator< void >::rebind< U >, including all inherited members.

- - -
other typedef (defined in tbb::tbb_allocator< void >::rebind< U >)tbb::tbb_allocator< void >::rebind< U >
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00293.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00293.html deleted file mode 100644 index e68d99d7d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00293.html +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::zero_allocator< T, Allocator > Member List
-
-
- -

This is the complete list of members for tbb::zero_allocator< T, Allocator >, including all inherited members.

- - - - - - - - - - - - - -
allocate(const size_type n, const void *hint=0) (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >inline
base_allocator_type typedef (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >
const_pointer typedef (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >
const_reference typedef (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >
difference_type typedef (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >
pointer typedef (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >
reference typedef (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >
size_type typedef (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >
value_type typedef (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >
zero_allocator() (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >inline
zero_allocator(const zero_allocator &a) (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >inline
zero_allocator(const zero_allocator< U > &a) (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >inline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00294.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00294.html deleted file mode 100644 index 229bcc4f1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00294.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::zero_allocator< T, Allocator >::rebind< U > Member List
-
-
- -

This is the complete list of members for tbb::zero_allocator< T, Allocator >::rebind< U >, including all inherited members.

- - -
other typedef (defined in tbb::zero_allocator< T, Allocator >::rebind< U >)tbb::zero_allocator< T, Allocator >::rebind< U >
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00295.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00295.html deleted file mode 100644 index 7491ae3de..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00295.html +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::zero_allocator< void, Allocator > Member List
-
-
- -

This is the complete list of members for tbb::zero_allocator< void, Allocator >, including all inherited members.

- - - - - -
base_allocator_type typedef (defined in tbb::zero_allocator< void, Allocator >)tbb::zero_allocator< void, Allocator >
const_pointer typedef (defined in tbb::zero_allocator< void, Allocator >)tbb::zero_allocator< void, Allocator >
pointer typedef (defined in tbb::zero_allocator< void, Allocator >)tbb::zero_allocator< void, Allocator >
value_type typedef (defined in tbb::zero_allocator< void, Allocator >)tbb::zero_allocator< void, Allocator >
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00296.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00296.html deleted file mode 100644 index 691935505..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00296.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::zero_allocator< void, Allocator >::rebind< U > Member List
-
-
- -

This is the complete list of members for tbb::zero_allocator< void, Allocator >::rebind< U >, including all inherited members.

- - -
other typedef (defined in tbb::zero_allocator< void, Allocator >::rebind< U >)tbb::zero_allocator< void, Allocator >::rebind< U >
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00297.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00297.html deleted file mode 100644 index 775b2daea..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00297.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::bad_last_alloc Member List
-
-
- -

This is the complete list of members for tbb::bad_last_alloc, including all inherited members.

- - - -
what() const (defined in tbb::bad_last_alloc)tbb::bad_last_alloc
~bad_last_alloc() (defined in tbb::bad_last_alloc)tbb::bad_last_allocinline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00298.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00298.html deleted file mode 100644 index 9e8e02c24..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00298.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::improper_lock Member List
-
-
- -

This is the complete list of members for tbb::improper_lock, including all inherited members.

- - -
what() const (defined in tbb::improper_lock)tbb::improper_lock
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00299.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00299.html deleted file mode 100644 index a5d545b5d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00299.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::user_abort Member List
-
-
- -

This is the complete list of members for tbb::user_abort, including all inherited members.

- - -
what() const (defined in tbb::user_abort)tbb::user_abort
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00300.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00300.html deleted file mode 100644 index fca871076..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00300.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::missing_wait Member List
-
-
- -

This is the complete list of members for tbb::missing_wait, including all inherited members.

- - -
what() const (defined in tbb::missing_wait)tbb::missing_wait
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00301.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00301.html deleted file mode 100644 index ba2815566..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00301.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::invalid_multiple_scheduling Member List
-
-
- -

This is the complete list of members for tbb::invalid_multiple_scheduling, including all inherited members.

- - -
what() const (defined in tbb::invalid_multiple_scheduling)tbb::invalid_multiple_scheduling
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00302.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00302.html deleted file mode 100644 index 232415496..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00302.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::tbb_exception Member List
-
-
- -

This is the complete list of members for tbb::tbb_exception, including all inherited members.

- - - - - - - - -
destroy()=0tbb::tbb_exceptionpure virtual
move()=0tbb::tbb_exceptionpure virtual
name() const =0tbb::tbb_exceptionpure virtual
operator delete(void *p)tbb::tbb_exceptioninline
throw_self()=0tbb::tbb_exceptionpure virtual
what() const =0tbb::tbb_exceptionpure virtual
~tbb_exception() (defined in tbb::tbb_exception)tbb::tbb_exceptioninline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00303.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00303.html deleted file mode 100644 index 018478d6c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00303.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::captured_exception Member List
-
-
- -

This is the complete list of members for tbb::captured_exception, including all inherited members.

- - - - - - - - - - - - - - -
captured_exception(const captured_exception &src) (defined in tbb::captured_exception)tbb::captured_exceptioninline
captured_exception(const char *name_, const char *info) (defined in tbb::captured_exception)tbb::captured_exceptioninline
clear() (defined in tbb::captured_exception)tbb::captured_exception
destroy()tbb::captured_exceptionvirtual
move()tbb::captured_exceptionvirtual
name() const tbb::captured_exceptionvirtual
operator delete(void *p)tbb::tbb_exceptioninline
operator=(const captured_exception &src) (defined in tbb::captured_exception)tbb::captured_exceptioninline
set(const char *name, const char *info) (defined in tbb::captured_exception)tbb::captured_exception
throw_self()tbb::captured_exceptioninlinevirtual
what() const tbb::captured_exceptionvirtual
~captured_exception() (defined in tbb::captured_exception)tbb::captured_exception
~tbb_exception() (defined in tbb::tbb_exception)tbb::tbb_exceptioninline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00304.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00304.html deleted file mode 100644 index 0acf54512..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00304.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::movable_exception< ExceptionData > Member List
-
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00305.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00305.html deleted file mode 100644 index 93913a2f9..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00305.html +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::tick_count Member List
-
-
- -

This is the complete list of members for tbb::tick_count, including all inherited members.

- - - - - -
now()tbb::tick_countinlinestatic
operator-(const tick_count &t1, const tick_count &t0)tbb::tick_countfriend
resolution()tbb::tick_countinlinestatic
tick_count()tbb::tick_countinline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00306.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00306.html deleted file mode 100644 index a9b03d7b3..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00306.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::tick_count::interval_t Member List
-
-
- -

This is the complete list of members for tbb::tick_count::interval_t, including all inherited members.

- - - - - - - - - - -
interval_t()tbb::tick_count::interval_tinline
interval_t(double sec)tbb::tick_count::interval_tinlineexplicit
operator+(const interval_t &i, const interval_t &j)tbb::tick_count::interval_tfriend
operator+=(const interval_t &i)tbb::tick_count::interval_tinline
operator-(const tick_count &t1, const tick_count &t0)tbb::tick_count::interval_tfriend
operator-(const interval_t &i, const interval_t &j)tbb::tick_count::interval_tfriend
operator-=(const interval_t &i)tbb::tick_count::interval_tinline
seconds() const tbb::tick_count::interval_tinline
tbb::tick_count (defined in tbb::tick_count::interval_t)tbb::tick_count::interval_tfriend
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00307.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00307.html deleted file mode 100644 index 4e2ab9a29..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00307.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::deprecated::concurrent_queue< T, A > Member List
-
-
- -

This is the complete list of members for tbb::deprecated::concurrent_queue< T, A >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
abort()tbb::concurrent_bounded_queue< T, A >inline
allocator_type typedeftbb::concurrent_bounded_queue< T, A >
begin() (defined in tbb::deprecated::concurrent_queue< T, A >)tbb::deprecated::concurrent_queue< T, A >inline
begin() const (defined in tbb::deprecated::concurrent_queue< T, A >)tbb::deprecated::concurrent_queue< T, A >inline
capacity() const tbb::concurrent_bounded_queue< T, A >inline
clear()tbb::concurrent_bounded_queue< T, A >
concurrent_bounded_queue(const allocator_type &a=allocator_type())tbb::concurrent_bounded_queue< T, A >inlineexplicit
concurrent_bounded_queue(const concurrent_bounded_queue &src, const allocator_type &a=allocator_type())tbb::concurrent_bounded_queue< T, A >inline
concurrent_bounded_queue(InputIterator begin, InputIterator end, const allocator_type &a=allocator_type())tbb::concurrent_bounded_queue< T, A >inline
concurrent_queue(const A &a=A())tbb::deprecated::concurrent_queue< T, A >inlineexplicit
concurrent_queue(const concurrent_queue &src, const A &a=A())tbb::deprecated::concurrent_queue< T, A >inline
concurrent_queue(InputIterator b, InputIterator e, const A &a=A())tbb::deprecated::concurrent_queue< T, A >inline
const_iterator typedef (defined in tbb::deprecated::concurrent_queue< T, A >)tbb::deprecated::concurrent_queue< T, A >
const_reference typedeftbb::concurrent_bounded_queue< T, A >
difference_type typedeftbb::concurrent_bounded_queue< T, A >
empty() const tbb::concurrent_bounded_queue< T, A >inline
end() (defined in tbb::deprecated::concurrent_queue< T, A >)tbb::deprecated::concurrent_queue< T, A >inline
end() const (defined in tbb::deprecated::concurrent_queue< T, A >)tbb::deprecated::concurrent_queue< T, A >inline
get_allocator() const tbb::concurrent_bounded_queue< T, A >inline
internal::concurrent_queue_iterator (defined in tbb::deprecated::concurrent_queue< T, A >)tbb::deprecated::concurrent_queue< T, A >friend
iterator typedef (defined in tbb::deprecated::concurrent_queue< T, A >)tbb::deprecated::concurrent_queue< T, A >
pop(T &destination)tbb::concurrent_bounded_queue< T, A >inline
pop_if_present(T &destination)tbb::deprecated::concurrent_queue< T, A >inline
push(const T &source)tbb::concurrent_bounded_queue< T, A >inline
push_if_not_full(const T &source)tbb::deprecated::concurrent_queue< T, A >inline
reference typedeftbb::concurrent_bounded_queue< T, A >
set_capacity(size_type new_capacity)tbb::concurrent_bounded_queue< T, A >inline
size() const tbb::concurrent_bounded_queue< T, A >inline
size_type typedeftbb::concurrent_bounded_queue< T, A >
try_pop(T &destination)tbb::concurrent_bounded_queue< T, A >inline
try_push(const T &source)tbb::concurrent_bounded_queue< T, A >inline
unsafe_begin() (defined in tbb::concurrent_bounded_queue< T, A >)tbb::concurrent_bounded_queue< T, A >inline
unsafe_begin() const (defined in tbb::concurrent_bounded_queue< T, A >)tbb::concurrent_bounded_queue< T, A >inline
unsafe_end() (defined in tbb::concurrent_bounded_queue< T, A >)tbb::concurrent_bounded_queue< T, A >inline
unsafe_end() const (defined in tbb::concurrent_bounded_queue< T, A >)tbb::concurrent_bounded_queue< T, A >inline
value_type typedeftbb::concurrent_bounded_queue< T, A >
~concurrent_bounded_queue()tbb::concurrent_bounded_queue< T, A >
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00308.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00308.html deleted file mode 100644 index d157c3c38..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00308.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - -Member List - - - - - - -
- - - - - -
-
-
-
tbb::flow::interface7::sender< T > Member List
-
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00309.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00309.html deleted file mode 100644 index 466c3990f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00309.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - -Member List - - - - - - -
- - - - - -
-
-
-
tbb::flow::interface7::receiver< T > Member List
-
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00310.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00310.html deleted file mode 100644 index d276b0cb9..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00310.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::flow::interface7::limiter_node< T > Member List
-
-
- -

This is the complete list of members for tbb::flow::interface7::limiter_node< T >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
decrementtbb::flow::interface7::limiter_node< T >
graph_node(graph &g) (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeinline
input_type typedef (defined in tbb::flow::interface7::limiter_node< T >)tbb::flow::interface7::limiter_node< T >
internal::broadcast_cache (defined in tbb::flow::interface7::limiter_node< T >)tbb::flow::interface7::limiter_node< T >friend
internal::decrementer< limiter_node< T > > (defined in tbb::flow::interface7::limiter_node< T >)tbb::flow::interface7::limiter_node< T >friend
internal::forward_task_bypass< limiter_node< T > > (defined in tbb::flow::interface7::limiter_node< T >)tbb::flow::interface7::limiter_node< T >friend
internal::round_robin_cache (defined in tbb::flow::interface7::limiter_node< T >)tbb::flow::interface7::limiter_node< T >friend
is_continue_receiver() (defined in tbb::flow::interface7::receiver< T >)tbb::flow::interface7::receiver< T >inlineprotectedvirtual
limiter_node(graph &g, size_t threshold, int num_decrement_predecessors=0)tbb::flow::interface7::limiter_node< T >inline
limiter_node(const limiter_node &src)tbb::flow::interface7::limiter_node< T >inline
my_graph (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
next (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
output_type typedef (defined in tbb::flow::interface7::limiter_node< T >)tbb::flow::interface7::limiter_node< T >
predecessor_type typedef (defined in tbb::flow::interface7::limiter_node< T >)tbb::flow::interface7::limiter_node< T >
prev (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
register_predecessor(predecessor_type &src)tbb::flow::interface7::limiter_node< T >inlinevirtual
register_successor(receiver< output_type > &r)tbb::flow::interface7::limiter_node< T >inlinevirtual
remove_predecessor(predecessor_type &src)tbb::flow::interface7::limiter_node< T >inlinevirtual
remove_successor(receiver< output_type > &r)tbb::flow::interface7::limiter_node< T >inlinevirtual
reset() (defined in tbb::flow::interface7::limiter_node< T >)tbb::flow::interface7::limiter_node< T >inlineprotectedvirtual
reset_receiver() (defined in tbb::flow::interface7::limiter_node< T >)tbb::flow::interface7::limiter_node< T >inlineprotectedvirtual
run_and_put_task (defined in tbb::flow::interface7::limiter_node< T >)tbb::flow::interface7::limiter_node< T >friend
set_name(const char *name) (defined in tbb::flow::interface7::limiter_node< T >)tbb::flow::interface7::limiter_node< T >inlinevirtual
successor_type typedef (defined in tbb::flow::interface7::limiter_node< T >)tbb::flow::interface7::limiter_node< T >
try_consume()tbb::flow::interface7::sender< T >inlinevirtual
try_get(T &)tbb::flow::interface7::sender< T >inlinevirtual
try_put(const T &t)tbb::flow::interface7::receiver< T >inline
try_put_task(const T &t)tbb::flow::interface7::limiter_node< T >inlineprotectedvirtual
try_release()tbb::flow::interface7::sender< T >inlinevirtual
try_reserve(T &)tbb::flow::interface7::sender< T >inlinevirtual
~graph_node() (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeinlinevirtual
~receiver()tbb::flow::interface7::receiver< T >inlinevirtual
~sender() (defined in tbb::flow::interface7::sender< T >)tbb::flow::interface7::sender< T >inlinevirtual
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00311.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00311.html deleted file mode 100644 index 1a800b577..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00311.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::flow::interface7::continue_receiver Member List
-
-
- -

This is the complete list of members for tbb::flow::interface7::continue_receiver, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - -
continue_receiver(int number_of_predecessors=0)tbb::flow::interface7::continue_receiverinline
continue_receiver(const continue_receiver &src)tbb::flow::interface7::continue_receiverinline
execute()=0tbb::flow::interface7::continue_receiverprotectedpure virtual
input_type typedeftbb::flow::interface7::continue_receiver
internal::broadcast_cache (defined in tbb::flow::interface7::continue_receiver)tbb::flow::interface7::continue_receiverfriend
internal::round_robin_cache (defined in tbb::flow::interface7::continue_receiver)tbb::flow::interface7::continue_receiverfriend
internal::successor_cache (defined in tbb::flow::interface7::continue_receiver)tbb::flow::interface7::continue_receiverfriend
is_continue_receiver() (defined in tbb::flow::interface7::continue_receiver)tbb::flow::interface7::continue_receiverinlineprotectedvirtual
limiter_node (defined in tbb::flow::interface7::continue_receiver)tbb::flow::interface7::continue_receiverfriend
my_current_count (defined in tbb::flow::interface7::continue_receiver)tbb::flow::interface7::continue_receiverprotected
my_initial_predecessor_count (defined in tbb::flow::interface7::continue_receiver)tbb::flow::interface7::continue_receiverprotected
my_mutex (defined in tbb::flow::interface7::continue_receiver)tbb::flow::interface7::continue_receiverprotected
my_predecessor_count (defined in tbb::flow::interface7::continue_receiver)tbb::flow::interface7::continue_receiverprotected
predecessor_type typedeftbb::flow::interface7::continue_receiver
register_predecessor(predecessor_type &)tbb::flow::interface7::continue_receiverinlinevirtual
remove_predecessor(predecessor_type &)tbb::flow::interface7::continue_receiverinlinevirtual
reset_receiver() (defined in tbb::flow::interface7::continue_receiver)tbb::flow::interface7::continue_receiverinlineprotectedvirtual
run_and_put_task (defined in tbb::flow::interface7::continue_receiver)tbb::flow::interface7::continue_receiverfriend
try_put(const continue_msg &t)tbb::flow::interface7::receiver< continue_msg >inline
try_put_task(const input_type &) (defined in tbb::flow::interface7::continue_receiver)tbb::flow::interface7::continue_receiverinlineprotectedvirtual
~continue_receiver()tbb::flow::interface7::continue_receiverinlinevirtual
~receiver()tbb::flow::interface7::receiver< continue_msg >inlinevirtual
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00312.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00312.html deleted file mode 100644 index 13f45d36d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00312.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::flow::interface7::graph_iterator< GraphContainerType, GraphNodeType > Member List
-
-
- -

This is the complete list of members for tbb::flow::interface7::graph_iterator< GraphContainerType, GraphNodeType >, including all inherited members.

- - - - - - - - - - - - - - - - - - -
const_reference typedef (defined in tbb::flow::interface7::graph_iterator< GraphContainerType, GraphNodeType >)tbb::flow::interface7::graph_iterator< GraphContainerType, GraphNodeType >
graph (defined in tbb::flow::interface7::graph_iterator< GraphContainerType, GraphNodeType >)tbb::flow::interface7::graph_iterator< GraphContainerType, GraphNodeType >friend
graph_iterator()tbb::flow::interface7::graph_iterator< GraphContainerType, GraphNodeType >inline
graph_iterator(const graph_iterator &other)tbb::flow::interface7::graph_iterator< GraphContainerType, GraphNodeType >inline
graph_node (defined in tbb::flow::interface7::graph_iterator< GraphContainerType, GraphNodeType >)tbb::flow::interface7::graph_iterator< GraphContainerType, GraphNodeType >friend
iterator_category typedef (defined in tbb::flow::interface7::graph_iterator< GraphContainerType, GraphNodeType >)tbb::flow::interface7::graph_iterator< GraphContainerType, GraphNodeType >
operator!=(const graph_iterator &other) const tbb::flow::interface7::graph_iterator< GraphContainerType, GraphNodeType >inline
operator*() const tbb::flow::interface7::graph_iterator< GraphContainerType, GraphNodeType >
operator++()tbb::flow::interface7::graph_iterator< GraphContainerType, GraphNodeType >inline
operator++(int)tbb::flow::interface7::graph_iterator< GraphContainerType, GraphNodeType >inline
operator->() const tbb::flow::interface7::graph_iterator< GraphContainerType, GraphNodeType >
operator=(const graph_iterator &other)tbb::flow::interface7::graph_iterator< GraphContainerType, GraphNodeType >inline
operator==(const graph_iterator &other) const tbb::flow::interface7::graph_iterator< GraphContainerType, GraphNodeType >inline
pointer typedef (defined in tbb::flow::interface7::graph_iterator< GraphContainerType, GraphNodeType >)tbb::flow::interface7::graph_iterator< GraphContainerType, GraphNodeType >
reference typedef (defined in tbb::flow::interface7::graph_iterator< GraphContainerType, GraphNodeType >)tbb::flow::interface7::graph_iterator< GraphContainerType, GraphNodeType >
size_type typedef (defined in tbb::flow::interface7::graph_iterator< GraphContainerType, GraphNodeType >)tbb::flow::interface7::graph_iterator< GraphContainerType, GraphNodeType >
value_type typedef (defined in tbb::flow::interface7::graph_iterator< GraphContainerType, GraphNodeType >)tbb::flow::interface7::graph_iterator< GraphContainerType, GraphNodeType >
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00313.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00313.html deleted file mode 100644 index 0657b3434..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00313.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - -Member List - - - - - - -
- - - - - -
-
-
-
tbb::flow::interface7::graph Member List
-
-
- -

This is the complete list of members for tbb::flow::interface7::graph, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - -
begin()tbb::flow::interface7::graphinline
begin() const tbb::flow::interface7::graphinline
cbegin() const tbb::flow::interface7::graphinline
cend() const tbb::flow::interface7::graphinline
const_iterator typedef (defined in tbb::flow::interface7::graph)tbb::flow::interface7::graph
decrement_wait_count()tbb::flow::interface7::graphinline
end()tbb::flow::interface7::graphinline
end() const tbb::flow::interface7::graphinline
exception_thrown() (defined in tbb::flow::interface7::graph)tbb::flow::interface7::graphinline
graph()tbb::flow::interface7::graphinlineexplicit
graph(task_group_context &use_this_context)tbb::flow::interface7::graphinlineexplicit
graph_iterator (defined in tbb::flow::interface7::graph)tbb::flow::interface7::graphfriend
graph_node (defined in tbb::flow::interface7::graph)tbb::flow::interface7::graphfriend
increment_wait_count()tbb::flow::interface7::graphinline
is_cancelled()tbb::flow::interface7::graphinline
iterator typedef (defined in tbb::flow::interface7::graph)tbb::flow::interface7::graph
reset() (defined in tbb::flow::interface7::graph)tbb::flow::interface7::graphinline
root_task()tbb::flow::interface7::graphinline
run(Receiver &r, Body body)tbb::flow::interface7::graphinline
run(Body body)tbb::flow::interface7::graphinline
set_name(const char *name) (defined in tbb::flow::interface7::graph)tbb::flow::interface7::graphinline
wait_for_all()tbb::flow::interface7::graphinline
~graph()tbb::flow::interface7::graphinline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00314.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00314.html deleted file mode 100644 index 38a6df1b7..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00314.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::flow::interface7::graph_node Member List
-
-
- -

This is the complete list of members for tbb::flow::interface7::graph_node, including all inherited members.

- - - - - - - - - - -
graph (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodefriend
graph_iterator (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodefriend
graph_node(graph &g) (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeinline
my_graph (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
next (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
prev (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
reset()=0 (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotectedpure virtual
set_name(const char *name)=0 (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodepure virtual
~graph_node() (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeinlinevirtual
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00315.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00315.html deleted file mode 100644 index f34afe8bb..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00315.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::flow::interface7::source_node< Output > Member List
-
-
- -

This is the complete list of members for tbb::flow::interface7::source_node< Output >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - -
activate()tbb::flow::interface7::source_node< Output >inline
copy_function_object() (defined in tbb::flow::interface7::source_node< Output >)tbb::flow::interface7::source_node< Output >inline
graph_node(graph &g) (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeinline
internal::source_task_bypass< source_node< output_type > > (defined in tbb::flow::interface7::source_node< Output >)tbb::flow::interface7::source_node< Output >friend
my_graph (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
next (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
output_type typedeftbb::flow::interface7::source_node< Output >
prev (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
register_successor(receiver< output_type > &r)tbb::flow::interface7::source_node< Output >inlinevirtual
remove_successor(receiver< output_type > &r)tbb::flow::interface7::source_node< Output >inlinevirtual
reset()tbb::flow::interface7::source_node< Output >inlineprotectedvirtual
set_name(const char *name) (defined in tbb::flow::interface7::source_node< Output >)tbb::flow::interface7::source_node< Output >inlinevirtual
source_node(graph &g, Body body, bool is_active=true)tbb::flow::interface7::source_node< Output >inline
source_node(const source_node &src)tbb::flow::interface7::source_node< Output >inline
successor_type typedeftbb::flow::interface7::source_node< Output >
try_consume()tbb::flow::interface7::source_node< Output >inlinevirtual
try_get(output_type &v)tbb::flow::interface7::source_node< Output >inlinevirtual
try_release()tbb::flow::interface7::source_node< Output >inlinevirtual
try_reserve(output_type &v)tbb::flow::interface7::source_node< Output >inlinevirtual
~graph_node() (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeinlinevirtual
~sender() (defined in tbb::flow::interface7::sender< Output >)tbb::flow::interface7::sender< Output >inlinevirtual
~source_node()tbb::flow::interface7::source_node< Output >inline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00316.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00316.html deleted file mode 100644 index eb063c5e3..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00316.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator > Member List
-
-
- -

This is the complete list of members for tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - -
fInput_type typedef (defined in tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator >)tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator >
fOutput_type typedef (defined in tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator >)tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator >
function_node(graph &g, size_t concurrency, Body body)tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator >inline
function_node(const function_node &src)tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator >inline
graph_node(graph &g) (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeinline
input_type typedef (defined in tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator >)tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator >
internal::broadcast_cache (defined in tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator >)tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator >friend
internal::round_robin_cache (defined in tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator >)tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator >friend
my_graph (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
next (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
output_type typedef (defined in tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator >)tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator >
predecessor_type typedef (defined in tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator >)tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator >
prev (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
reset() (defined in tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator >)tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator >inlineprotectedvirtual
run_and_put_task (defined in tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator >)tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator >friend
set_name(const char *name) (defined in tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator >)tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator >inlinevirtual
successor_type typedef (defined in tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator >)tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator >
successors() (defined in tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator >)tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator >inlineprotected
~graph_node() (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeinlinevirtual
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00317.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00317.html deleted file mode 100644 index ef5f6d255..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00317.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::flow::interface7::function_node< Input, Output, queueing, Allocator > Member List
-
-
- -

This is the complete list of members for tbb::flow::interface7::function_node< Input, Output, queueing, Allocator >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - -
fInput_type typedef (defined in tbb::flow::interface7::function_node< Input, Output, queueing, Allocator >)tbb::flow::interface7::function_node< Input, Output, queueing, Allocator >
fOutput_type typedef (defined in tbb::flow::interface7::function_node< Input, Output, queueing, Allocator >)tbb::flow::interface7::function_node< Input, Output, queueing, Allocator >
function_node(graph &g, size_t concurrency, Body body)tbb::flow::interface7::function_node< Input, Output, queueing, Allocator >inline
function_node(const function_node &src)tbb::flow::interface7::function_node< Input, Output, queueing, Allocator >inline
graph_node(graph &g) (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeinline
input_type typedef (defined in tbb::flow::interface7::function_node< Input, Output, queueing, Allocator >)tbb::flow::interface7::function_node< Input, Output, queueing, Allocator >
internal::broadcast_cache (defined in tbb::flow::interface7::function_node< Input, Output, queueing, Allocator >)tbb::flow::interface7::function_node< Input, Output, queueing, Allocator >friend
internal::round_robin_cache (defined in tbb::flow::interface7::function_node< Input, Output, queueing, Allocator >)tbb::flow::interface7::function_node< Input, Output, queueing, Allocator >friend
my_graph (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
next (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
output_type typedef (defined in tbb::flow::interface7::function_node< Input, Output, queueing, Allocator >)tbb::flow::interface7::function_node< Input, Output, queueing, Allocator >
predecessor_type typedef (defined in tbb::flow::interface7::function_node< Input, Output, queueing, Allocator >)tbb::flow::interface7::function_node< Input, Output, queueing, Allocator >
prev (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
queue_type typedef (defined in tbb::flow::interface7::function_node< Input, Output, queueing, Allocator >)tbb::flow::interface7::function_node< Input, Output, queueing, Allocator >
reset() (defined in tbb::flow::interface7::function_node< Input, Output, queueing, Allocator >)tbb::flow::interface7::function_node< Input, Output, queueing, Allocator >inlineprotectedvirtual
run_and_put_task (defined in tbb::flow::interface7::function_node< Input, Output, queueing, Allocator >)tbb::flow::interface7::function_node< Input, Output, queueing, Allocator >friend
set_name(const char *name) (defined in tbb::flow::interface7::function_node< Input, Output, queueing, Allocator >)tbb::flow::interface7::function_node< Input, Output, queueing, Allocator >inlinevirtual
successor_type typedef (defined in tbb::flow::interface7::function_node< Input, Output, queueing, Allocator >)tbb::flow::interface7::function_node< Input, Output, queueing, Allocator >
successors() (defined in tbb::flow::interface7::function_node< Input, Output, queueing, Allocator >)tbb::flow::interface7::function_node< Input, Output, queueing, Allocator >inlineprotected
~graph_node() (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeinlinevirtual
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00318.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00318.html deleted file mode 100644 index 13237d7d9..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00318.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::flow::interface7::multifunction_node< Input, Output, graph_buffer_policy, Allocator > Member List
-
-
- -

This is the complete list of members for tbb::flow::interface7::multifunction_node< Input, Output, graph_buffer_policy, Allocator >, including all inherited members.

- - - - - - - - - - - - -
graph_node(graph &g) (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeinline
input_type typedef (defined in tbb::flow::interface7::multifunction_node< Input, Output, graph_buffer_policy, Allocator >)tbb::flow::interface7::multifunction_node< Input, Output, graph_buffer_policy, Allocator >
multifunction_node(graph &g, size_t concurrency, Body body) (defined in tbb::flow::interface7::multifunction_node< Input, Output, graph_buffer_policy, Allocator >)tbb::flow::interface7::multifunction_node< Input, Output, graph_buffer_policy, Allocator >inline
multifunction_node(const multifunction_node &other) (defined in tbb::flow::interface7::multifunction_node< Input, Output, graph_buffer_policy, Allocator >)tbb::flow::interface7::multifunction_node< Input, Output, graph_buffer_policy, Allocator >inline
my_graph (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
next (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
output_ports_type typedef (defined in tbb::flow::interface7::multifunction_node< Input, Output, graph_buffer_policy, Allocator >)tbb::flow::interface7::multifunction_node< Input, Output, graph_buffer_policy, Allocator >
prev (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
reset() (defined in tbb::flow::interface7::multifunction_node< Input, Output, graph_buffer_policy, Allocator >)tbb::flow::interface7::multifunction_node< Input, Output, graph_buffer_policy, Allocator >inlineprotectedvirtual
set_name(const char *name) (defined in tbb::flow::interface7::multifunction_node< Input, Output, graph_buffer_policy, Allocator >)tbb::flow::interface7::multifunction_node< Input, Output, graph_buffer_policy, Allocator >inlinevirtual
~graph_node() (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeinlinevirtual
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00319.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00319.html deleted file mode 100644 index 0ec512c00..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00319.html +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::flow::interface7::multifunction_node< Input, Output, queueing, Allocator > Member List
-
-
- -

This is the complete list of members for tbb::flow::interface7::multifunction_node< Input, Output, queueing, Allocator >, including all inherited members.

- - - - - - - - - - - - - -
graph_node(graph &g) (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeinline
input_type typedef (defined in tbb::flow::interface7::multifunction_node< Input, Output, queueing, Allocator >)tbb::flow::interface7::multifunction_node< Input, Output, queueing, Allocator >
multifunction_node(graph &g, size_t concurrency, Body body) (defined in tbb::flow::interface7::multifunction_node< Input, Output, queueing, Allocator >)tbb::flow::interface7::multifunction_node< Input, Output, queueing, Allocator >inline
multifunction_node(const multifunction_node &other) (defined in tbb::flow::interface7::multifunction_node< Input, Output, queueing, Allocator >)tbb::flow::interface7::multifunction_node< Input, Output, queueing, Allocator >inline
my_graph (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
N (defined in tbb::flow::interface7::multifunction_node< Input, Output, queueing, Allocator >)tbb::flow::interface7::multifunction_node< Input, Output, queueing, Allocator >protectedstatic
next (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
output_ports_type typedef (defined in tbb::flow::interface7::multifunction_node< Input, Output, queueing, Allocator >)tbb::flow::interface7::multifunction_node< Input, Output, queueing, Allocator >
prev (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
reset() (defined in tbb::flow::interface7::multifunction_node< Input, Output, queueing, Allocator >)tbb::flow::interface7::multifunction_node< Input, Output, queueing, Allocator >inlineprotectedvirtual
set_name(const char *name) (defined in tbb::flow::interface7::multifunction_node< Input, Output, queueing, Allocator >)tbb::flow::interface7::multifunction_node< Input, Output, queueing, Allocator >inlinevirtual
~graph_node() (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeinlinevirtual
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00320.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00320.html deleted file mode 100644 index 8f21c2a8f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00320.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::flow::interface7::split_node< TupleType, Allocator > Member List
-
-
- -

This is the complete list of members for tbb::flow::interface7::split_node< TupleType, Allocator >, including all inherited members.

- - - - - - - - - - - - - - - -
allocator_type typedef (defined in tbb::flow::interface7::split_node< TupleType, Allocator >)tbb::flow::interface7::split_node< TupleType, Allocator >
graph_node(graph &g) (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeinline
input_type typedef (defined in tbb::flow::interface7::split_node< TupleType, Allocator >)tbb::flow::interface7::split_node< TupleType, Allocator >
multifunction_node(graph &g, size_t concurrency, Body body) (defined in tbb::flow::interface7::multifunction_node< TupleType, TupleType, rejecting, Allocator >)tbb::flow::interface7::multifunction_node< TupleType, TupleType, rejecting, Allocator >inline
multifunction_node(const multifunction_node &other) (defined in tbb::flow::interface7::multifunction_node< TupleType, TupleType, rejecting, Allocator >)tbb::flow::interface7::multifunction_node< TupleType, TupleType, rejecting, Allocator >inline
my_graph (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
next (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
output_ports_type typedef (defined in tbb::flow::interface7::split_node< TupleType, Allocator >)tbb::flow::interface7::split_node< TupleType, Allocator >
prev (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
reset() (defined in tbb::flow::interface7::multifunction_node< TupleType, TupleType, rejecting, Allocator >)tbb::flow::interface7::multifunction_node< TupleType, TupleType, rejecting, Allocator >inlineprotectedvirtual
set_name(const char *name) (defined in tbb::flow::interface7::split_node< TupleType, Allocator >)tbb::flow::interface7::split_node< TupleType, Allocator >inlinevirtual
split_node(graph &g) (defined in tbb::flow::interface7::split_node< TupleType, Allocator >)tbb::flow::interface7::split_node< TupleType, Allocator >inline
split_node(const split_node &other) (defined in tbb::flow::interface7::split_node< TupleType, Allocator >)tbb::flow::interface7::split_node< TupleType, Allocator >inline
~graph_node() (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeinlinevirtual
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00321.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00321.html deleted file mode 100644 index b4e4e1294..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00321.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::flow::interface7::continue_node< Output > Member List
-
-
- -

This is the complete list of members for tbb::flow::interface7::continue_node< Output >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - -
continue_node(graph &g, Body body)tbb::flow::interface7::continue_node< Output >inline
continue_node(graph &g, int number_of_predecessors, Body body)tbb::flow::interface7::continue_node< Output >inline
continue_node(const continue_node &src)tbb::flow::interface7::continue_node< Output >inline
fInput_type typedef (defined in tbb::flow::interface7::continue_node< Output >)tbb::flow::interface7::continue_node< Output >
fOutput_type typedef (defined in tbb::flow::interface7::continue_node< Output >)tbb::flow::interface7::continue_node< Output >
graph_node(graph &g) (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeinline
input_type typedef (defined in tbb::flow::interface7::continue_node< Output >)tbb::flow::interface7::continue_node< Output >
internal::broadcast_cache (defined in tbb::flow::interface7::continue_node< Output >)tbb::flow::interface7::continue_node< Output >friend
internal::round_robin_cache (defined in tbb::flow::interface7::continue_node< Output >)tbb::flow::interface7::continue_node< Output >friend
my_graph (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
next (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
output_type typedef (defined in tbb::flow::interface7::continue_node< Output >)tbb::flow::interface7::continue_node< Output >
predecessor_type typedef (defined in tbb::flow::interface7::continue_node< Output >)tbb::flow::interface7::continue_node< Output >
prev (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
reset() (defined in tbb::flow::interface7::continue_node< Output >)tbb::flow::interface7::continue_node< Output >inlineprotectedvirtual
run_and_put_task (defined in tbb::flow::interface7::continue_node< Output >)tbb::flow::interface7::continue_node< Output >friend
set_name(const char *name) (defined in tbb::flow::interface7::continue_node< Output >)tbb::flow::interface7::continue_node< Output >inlinevirtual
successor_type typedef (defined in tbb::flow::interface7::continue_node< Output >)tbb::flow::interface7::continue_node< Output >
successors() (defined in tbb::flow::interface7::continue_node< Output >)tbb::flow::interface7::continue_node< Output >inlineprotected
~graph_node() (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeinlinevirtual
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00322.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00322.html deleted file mode 100644 index 686e1c2e0..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00322.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::flow::interface7::overwrite_node< T > Member List
-
-
- -

This is the complete list of members for tbb::flow::interface7::overwrite_node< T >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
clear() (defined in tbb::flow::interface7::overwrite_node< T >)tbb::flow::interface7::overwrite_node< T >inline
graph_node(graph &g) (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeinline
input_type typedef (defined in tbb::flow::interface7::overwrite_node< T >)tbb::flow::interface7::overwrite_node< T >
internal::broadcast_cache (defined in tbb::flow::interface7::overwrite_node< T >)tbb::flow::interface7::overwrite_node< T >friend
internal::round_robin_cache (defined in tbb::flow::interface7::overwrite_node< T >)tbb::flow::interface7::overwrite_node< T >friend
is_continue_receiver() (defined in tbb::flow::interface7::receiver< T >)tbb::flow::interface7::receiver< T >inlineprotectedvirtual
is_valid() (defined in tbb::flow::interface7::overwrite_node< T >)tbb::flow::interface7::overwrite_node< T >inline
my_buffer (defined in tbb::flow::interface7::overwrite_node< T >)tbb::flow::interface7::overwrite_node< T >protected
my_buffer_is_valid (defined in tbb::flow::interface7::overwrite_node< T >)tbb::flow::interface7::overwrite_node< T >protected
my_graph (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
my_mutex (defined in tbb::flow::interface7::overwrite_node< T >)tbb::flow::interface7::overwrite_node< T >protected
my_successors (defined in tbb::flow::interface7::overwrite_node< T >)tbb::flow::interface7::overwrite_node< T >protected
next (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
output_type typedef (defined in tbb::flow::interface7::overwrite_node< T >)tbb::flow::interface7::overwrite_node< T >
overwrite_node(graph &g) (defined in tbb::flow::interface7::overwrite_node< T >)tbb::flow::interface7::overwrite_node< T >inline
overwrite_node(const overwrite_node &src) (defined in tbb::flow::interface7::overwrite_node< T >)tbb::flow::interface7::overwrite_node< T >inline
predecessor_type typedef (defined in tbb::flow::interface7::overwrite_node< T >)tbb::flow::interface7::overwrite_node< T >
prev (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
register_predecessor(predecessor_type &)tbb::flow::interface7::receiver< T >inlinevirtual
register_successor(successor_type &s)tbb::flow::interface7::overwrite_node< T >inlinevirtual
remove_predecessor(predecessor_type &)tbb::flow::interface7::receiver< T >inlinevirtual
remove_successor(successor_type &s)tbb::flow::interface7::overwrite_node< T >inlinevirtual
reset() (defined in tbb::flow::interface7::overwrite_node< T >)tbb::flow::interface7::overwrite_node< T >inlineprotectedvirtual
reset_receiver() (defined in tbb::flow::interface7::overwrite_node< T >)tbb::flow::interface7::overwrite_node< T >inlineprotectedvirtual
run_and_put_task (defined in tbb::flow::interface7::overwrite_node< T >)tbb::flow::interface7::overwrite_node< T >friend
set_name(const char *name) (defined in tbb::flow::interface7::overwrite_node< T >)tbb::flow::interface7::overwrite_node< T >inlinevirtual
successor_type typedef (defined in tbb::flow::interface7::overwrite_node< T >)tbb::flow::interface7::overwrite_node< T >
try_consume()tbb::flow::interface7::sender< T >inlinevirtual
try_get(T &v)tbb::flow::interface7::overwrite_node< T >inlinevirtual
try_put(const T &t)tbb::flow::interface7::receiver< T >inline
try_put_task(const T &v) (defined in tbb::flow::interface7::overwrite_node< T >)tbb::flow::interface7::overwrite_node< T >inlineprotectedvirtual
try_release()tbb::flow::interface7::sender< T >inlinevirtual
try_reserve(T &)tbb::flow::interface7::sender< T >inlinevirtual
~graph_node() (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeinlinevirtual
~overwrite_node() (defined in tbb::flow::interface7::overwrite_node< T >)tbb::flow::interface7::overwrite_node< T >inline
~receiver()tbb::flow::interface7::receiver< T >inlinevirtual
~sender() (defined in tbb::flow::interface7::sender< T >)tbb::flow::interface7::sender< T >inlinevirtual
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00323.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00323.html deleted file mode 100644 index 786021d73..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00323.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::flow::interface7::write_once_node< T > Member List
-
-
- -

This is the complete list of members for tbb::flow::interface7::write_once_node< T >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
clear() (defined in tbb::flow::interface7::overwrite_node< T >)tbb::flow::interface7::overwrite_node< T >inline
graph_node(graph &g) (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeinline
input_type typedef (defined in tbb::flow::interface7::write_once_node< T >)tbb::flow::interface7::write_once_node< T >
internal::broadcast_cache (defined in tbb::flow::interface7::write_once_node< T >)tbb::flow::interface7::write_once_node< T >friend
internal::round_robin_cache (defined in tbb::flow::interface7::write_once_node< T >)tbb::flow::interface7::write_once_node< T >friend
is_continue_receiver() (defined in tbb::flow::interface7::receiver< T >)tbb::flow::interface7::receiver< T >inlineprotectedvirtual
is_valid() (defined in tbb::flow::interface7::overwrite_node< T >)tbb::flow::interface7::overwrite_node< T >inline
my_buffer (defined in tbb::flow::interface7::overwrite_node< T >)tbb::flow::interface7::overwrite_node< T >protected
my_buffer_is_valid (defined in tbb::flow::interface7::overwrite_node< T >)tbb::flow::interface7::overwrite_node< T >protected
my_graph (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
my_mutex (defined in tbb::flow::interface7::overwrite_node< T >)tbb::flow::interface7::overwrite_node< T >protected
my_successors (defined in tbb::flow::interface7::overwrite_node< T >)tbb::flow::interface7::overwrite_node< T >protected
next (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
output_type typedef (defined in tbb::flow::interface7::write_once_node< T >)tbb::flow::interface7::write_once_node< T >
overwrite_node(graph &g) (defined in tbb::flow::interface7::overwrite_node< T >)tbb::flow::interface7::overwrite_node< T >inline
overwrite_node(const overwrite_node &src) (defined in tbb::flow::interface7::overwrite_node< T >)tbb::flow::interface7::overwrite_node< T >inline
predecessor_type typedef (defined in tbb::flow::interface7::write_once_node< T >)tbb::flow::interface7::write_once_node< T >
prev (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
register_predecessor(predecessor_type &)tbb::flow::interface7::receiver< T >inlinevirtual
register_successor(successor_type &s)tbb::flow::interface7::overwrite_node< T >inlinevirtual
remove_predecessor(predecessor_type &)tbb::flow::interface7::receiver< T >inlinevirtual
remove_successor(successor_type &s)tbb::flow::interface7::overwrite_node< T >inlinevirtual
reset() (defined in tbb::flow::interface7::overwrite_node< T >)tbb::flow::interface7::overwrite_node< T >inlineprotectedvirtual
reset_receiver() (defined in tbb::flow::interface7::overwrite_node< T >)tbb::flow::interface7::overwrite_node< T >inlineprotectedvirtual
run_and_put_task (defined in tbb::flow::interface7::write_once_node< T >)tbb::flow::interface7::write_once_node< T >friend
set_name(const char *name) (defined in tbb::flow::interface7::write_once_node< T >)tbb::flow::interface7::write_once_node< T >inlinevirtual
successor_type typedef (defined in tbb::flow::interface7::write_once_node< T >)tbb::flow::interface7::write_once_node< T >
try_consume()tbb::flow::interface7::sender< T >inlinevirtual
try_get(T &v)tbb::flow::interface7::overwrite_node< T >inlinevirtual
try_put(const T &t)tbb::flow::interface7::receiver< T >inline
try_put_task(const T &v) (defined in tbb::flow::interface7::write_once_node< T >)tbb::flow::interface7::write_once_node< T >inlineprotectedvirtual
try_release()tbb::flow::interface7::sender< T >inlinevirtual
try_reserve(T &)tbb::flow::interface7::sender< T >inlinevirtual
write_once_node(graph &g)tbb::flow::interface7::write_once_node< T >inline
write_once_node(const write_once_node &src)tbb::flow::interface7::write_once_node< T >inline
~graph_node() (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeinlinevirtual
~overwrite_node() (defined in tbb::flow::interface7::overwrite_node< T >)tbb::flow::interface7::overwrite_node< T >inline
~receiver()tbb::flow::interface7::receiver< T >inlinevirtual
~sender() (defined in tbb::flow::interface7::sender< T >)tbb::flow::interface7::sender< T >inlinevirtual
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00324.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00324.html deleted file mode 100644 index e2cf4987a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00324.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::flow::interface7::broadcast_node< T > Member List
-
-
- -

This is the complete list of members for tbb::flow::interface7::broadcast_node< T >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
broadcast_node(graph &g) (defined in tbb::flow::interface7::broadcast_node< T >)tbb::flow::interface7::broadcast_node< T >inline
broadcast_node(const broadcast_node &src) (defined in tbb::flow::interface7::broadcast_node< T >)tbb::flow::interface7::broadcast_node< T >inline
graph_node(graph &g) (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeinline
input_type typedef (defined in tbb::flow::interface7::broadcast_node< T >)tbb::flow::interface7::broadcast_node< T >
internal::broadcast_cache (defined in tbb::flow::interface7::broadcast_node< T >)tbb::flow::interface7::broadcast_node< T >friend
internal::round_robin_cache (defined in tbb::flow::interface7::broadcast_node< T >)tbb::flow::interface7::broadcast_node< T >friend
is_continue_receiver() (defined in tbb::flow::interface7::receiver< T >)tbb::flow::interface7::receiver< T >inlineprotectedvirtual
my_graph (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
next (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
output_type typedef (defined in tbb::flow::interface7::broadcast_node< T >)tbb::flow::interface7::broadcast_node< T >
predecessor_type typedef (defined in tbb::flow::interface7::broadcast_node< T >)tbb::flow::interface7::broadcast_node< T >
prev (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
register_predecessor(predecessor_type &)tbb::flow::interface7::receiver< T >inlinevirtual
register_successor(receiver< T > &r)tbb::flow::interface7::broadcast_node< T >inlinevirtual
remove_predecessor(predecessor_type &)tbb::flow::interface7::receiver< T >inlinevirtual
remove_successor(receiver< T > &r)tbb::flow::interface7::broadcast_node< T >inlinevirtual
reset() (defined in tbb::flow::interface7::broadcast_node< T >)tbb::flow::interface7::broadcast_node< T >inlineprotectedvirtual
reset_receiver() (defined in tbb::flow::interface7::broadcast_node< T >)tbb::flow::interface7::broadcast_node< T >inlineprotectedvirtual
run_and_put_task (defined in tbb::flow::interface7::broadcast_node< T >)tbb::flow::interface7::broadcast_node< T >friend
set_name(const char *name) (defined in tbb::flow::interface7::broadcast_node< T >)tbb::flow::interface7::broadcast_node< T >inlinevirtual
successor_type typedef (defined in tbb::flow::interface7::broadcast_node< T >)tbb::flow::interface7::broadcast_node< T >
try_consume()tbb::flow::interface7::sender< T >inlinevirtual
try_get(T &)tbb::flow::interface7::sender< T >inlinevirtual
try_put(const T &t)tbb::flow::interface7::receiver< T >inline
try_put_task(const T &t)tbb::flow::interface7::broadcast_node< T >inlineprotectedvirtual
try_release()tbb::flow::interface7::sender< T >inlinevirtual
try_reserve(T &)tbb::flow::interface7::sender< T >inlinevirtual
~graph_node() (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeinlinevirtual
~receiver()tbb::flow::interface7::receiver< T >inlinevirtual
~sender() (defined in tbb::flow::interface7::sender< T >)tbb::flow::interface7::sender< T >inlinevirtual
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00325.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00325.html deleted file mode 100644 index 044d09a3c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00325.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::flow::interface7::buffer_node< T, A > Member List
-
-
- -

This is the complete list of members for tbb::flow::interface7::buffer_node< T, A >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
buffer_node(graph &g)tbb::flow::interface7::buffer_node< T, A >inline
buffer_node(const buffer_node &src)tbb::flow::interface7::buffer_node< T, A >inline
con_res enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
enqueue_forwarding_task(buffer_operation &op_data) (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >inlineprotected
FAILED enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
forward_task()tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
forwarder_busy (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
grab_forwarding_task(buffer_operation &op_data) (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >inlineprotected
graph_node(graph &g) (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeinline
handle_operations(buffer_operation *op_list) (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
input_type typedef (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >
internal::aggregating_functor< my_class, buffer_operation > (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >friend
internal::broadcast_cache (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >friend
internal::forward_task_bypass< buffer_node< T, A > > (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >friend
internal::round_robin_cache (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >friend
internal_consume(buffer_operation *op) (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
internal_forward_task(buffer_operation *op)tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
internal_pop(buffer_operation *op) (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
internal_push(buffer_operation *op) (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
internal_reg_succ(buffer_operation *op)tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
internal_release(buffer_operation *op) (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
internal_rem_succ(buffer_operation *op)tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
internal_reserve(buffer_operation *op) (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
is_continue_receiver() (defined in tbb::flow::interface7::receiver< T >)tbb::flow::interface7::receiver< T >inlineprotectedvirtual
my_aggregator (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
my_class typedef (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >
my_graph (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
my_handler typedef (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
my_successors (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
next (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
op_stat enum name (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
op_type enum name (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
output_type typedef (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >
predecessor_type typedef (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >
prev (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
put_item enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
reg_succ enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
register_predecessor(predecessor_type &)tbb::flow::interface7::receiver< T >inlinevirtual
register_successor(receiver< output_type > &r)tbb::flow::interface7::buffer_node< T, A >inlinevirtual
rel_res enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
rem_succ enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
remove_predecessor(predecessor_type &)tbb::flow::interface7::receiver< T >inlinevirtual
remove_successor(receiver< output_type > &r)tbb::flow::interface7::buffer_node< T, A >inlinevirtual
req_item enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
res_item enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
reset() (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
reset_receiver() (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
run_and_put_task (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >friend
set_name(const char *name) (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >inlinevirtual
size_type typedef (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
SUCCEEDED enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
successor_type typedef (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >
try_consume()tbb::flow::interface7::buffer_node< T, A >inlinevirtual
try_fwd_task enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
try_get(T &v)tbb::flow::interface7::buffer_node< T, A >inlinevirtual
try_put(const T &t)tbb::flow::interface7::receiver< T >inline
try_put_task(const T &t)tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
try_release()tbb::flow::interface7::buffer_node< T, A >inlinevirtual
try_reserve(T &v)tbb::flow::interface7::buffer_node< T, A >inlinevirtual
WAIT enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
~buffer_node() (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >inlinevirtual
~graph_node() (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeinlinevirtual
~receiver()tbb::flow::interface7::receiver< T >inlinevirtual
~sender() (defined in tbb::flow::interface7::sender< T >)tbb::flow::interface7::sender< T >inlinevirtual
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00326.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00326.html deleted file mode 100644 index 027153c90..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00326.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::flow::interface7::buffer_node< T, A >::buffer_operation Member List
-
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00327.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00327.html deleted file mode 100644 index f43bf8a41..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00327.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::flow::interface7::queue_node< T, A > Member List
-
-
- -

This is the complete list of members for tbb::flow::interface7::queue_node< T, A >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
buffer_node(graph &g)tbb::flow::interface7::buffer_node< T, A >inline
buffer_node(const buffer_node &src)tbb::flow::interface7::buffer_node< T, A >inline
con_res enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
enqueue_forwarding_task(buffer_operation &op_data) (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >inlineprotected
FAILED enum value (defined in tbb::flow::interface7::queue_node< T, A >)tbb::flow::interface7::queue_node< T, A >protected
forward_task()tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
forwarder_busy (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
grab_forwarding_task(buffer_operation &op_data) (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >inlineprotected
graph_node(graph &g) (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeinline
handle_operations(buffer_operation *op_list) (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
input_type typedef (defined in tbb::flow::interface7::queue_node< T, A >)tbb::flow::interface7::queue_node< T, A >
internal_consume(queue_operation *op) (defined in tbb::flow::interface7::queue_node< T, A >)tbb::flow::interface7::queue_node< T, A >inlineprotectedvirtual
internal_forward_task(queue_operation *op)tbb::flow::interface7::queue_node< T, A >inlineprotectedvirtual
internal_pop(queue_operation *op) (defined in tbb::flow::interface7::queue_node< T, A >)tbb::flow::interface7::queue_node< T, A >inlineprotectedvirtual
internal_push(buffer_operation *op) (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
internal_reg_succ(buffer_operation *op)tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
internal_release(buffer_operation *op) (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
internal_rem_succ(buffer_operation *op)tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
internal_reserve(queue_operation *op) (defined in tbb::flow::interface7::queue_node< T, A >)tbb::flow::interface7::queue_node< T, A >inlineprotectedvirtual
is_continue_receiver() (defined in tbb::flow::interface7::receiver< T >)tbb::flow::interface7::receiver< T >inlineprotectedvirtual
my_aggregator (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
my_class typedef (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >
my_graph (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
my_handler typedef (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
my_successors (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
next (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
op_stat enum name (defined in tbb::flow::interface7::queue_node< T, A >)tbb::flow::interface7::queue_node< T, A >protected
op_type enum name (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
output_type typedef (defined in tbb::flow::interface7::queue_node< T, A >)tbb::flow::interface7::queue_node< T, A >
predecessor_type typedef (defined in tbb::flow::interface7::queue_node< T, A >)tbb::flow::interface7::queue_node< T, A >
prev (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
put_item enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
queue_node(graph &g)tbb::flow::interface7::queue_node< T, A >inline
queue_node(const queue_node &src)tbb::flow::interface7::queue_node< T, A >inline
queue_operation typedef (defined in tbb::flow::interface7::queue_node< T, A >)tbb::flow::interface7::queue_node< T, A >protected
reg_succ enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
register_predecessor(predecessor_type &)tbb::flow::interface7::receiver< T >inlinevirtual
register_successor(receiver< output_type > &r)tbb::flow::interface7::buffer_node< T, A >inlinevirtual
rel_res enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
rem_succ enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
remove_predecessor(predecessor_type &)tbb::flow::interface7::receiver< T >inlinevirtual
remove_successor(receiver< output_type > &r)tbb::flow::interface7::buffer_node< T, A >inlinevirtual
req_item enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
res_item enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
reset() (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
reset_receiver() (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
set_name(const char *name) (defined in tbb::flow::interface7::queue_node< T, A >)tbb::flow::interface7::queue_node< T, A >inlinevirtual
size_type typedef (defined in tbb::flow::interface7::queue_node< T, A >)tbb::flow::interface7::queue_node< T, A >protected
SUCCEEDED enum value (defined in tbb::flow::interface7::queue_node< T, A >)tbb::flow::interface7::queue_node< T, A >protected
successor_type typedef (defined in tbb::flow::interface7::queue_node< T, A >)tbb::flow::interface7::queue_node< T, A >
try_consume()tbb::flow::interface7::buffer_node< T, A >inlinevirtual
try_fwd_task enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
try_get(T &v)tbb::flow::interface7::buffer_node< T, A >inlinevirtual
try_put(const T &t)tbb::flow::interface7::receiver< T >inline
try_put_task(const T &t)tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
try_release()tbb::flow::interface7::buffer_node< T, A >inlinevirtual
try_reserve(T &v)tbb::flow::interface7::buffer_node< T, A >inlinevirtual
WAIT enum value (defined in tbb::flow::interface7::queue_node< T, A >)tbb::flow::interface7::queue_node< T, A >protected
~buffer_node() (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >inlinevirtual
~graph_node() (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeinlinevirtual
~receiver()tbb::flow::interface7::receiver< T >inlinevirtual
~sender() (defined in tbb::flow::interface7::sender< T >)tbb::flow::interface7::sender< T >inlinevirtual
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00328.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00328.html deleted file mode 100644 index bdb58d639..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00328.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::flow::interface7::sequencer_node< T, A > Member List
-
-
- -

This is the complete list of members for tbb::flow::interface7::sequencer_node< T, A >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
buffer_node(graph &g)tbb::flow::interface7::buffer_node< T, A >inline
buffer_node(const buffer_node &src)tbb::flow::interface7::buffer_node< T, A >inline
con_res enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
enqueue_forwarding_task(buffer_operation &op_data) (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >inlineprotected
FAILED enum value (defined in tbb::flow::interface7::sequencer_node< T, A >)tbb::flow::interface7::sequencer_node< T, A >protected
forward_task()tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
forwarder_busy (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
grab_forwarding_task(buffer_operation &op_data) (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >inlineprotected
graph_node(graph &g) (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeinline
handle_operations(buffer_operation *op_list) (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
input_type typedef (defined in tbb::flow::interface7::sequencer_node< T, A >)tbb::flow::interface7::sequencer_node< T, A >
internal_consume(queue_operation *op) (defined in tbb::flow::interface7::queue_node< T, A >)tbb::flow::interface7::queue_node< T, A >inlineprotectedvirtual
internal_forward_task(queue_operation *op)tbb::flow::interface7::queue_node< T, A >inlineprotectedvirtual
internal_pop(queue_operation *op) (defined in tbb::flow::interface7::queue_node< T, A >)tbb::flow::interface7::queue_node< T, A >inlineprotectedvirtual
internal_reg_succ(buffer_operation *op)tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
internal_release(buffer_operation *op) (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
internal_rem_succ(buffer_operation *op)tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
internal_reserve(queue_operation *op) (defined in tbb::flow::interface7::queue_node< T, A >)tbb::flow::interface7::queue_node< T, A >inlineprotectedvirtual
is_continue_receiver() (defined in tbb::flow::interface7::receiver< T >)tbb::flow::interface7::receiver< T >inlineprotectedvirtual
my_aggregator (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
my_class typedef (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >
my_graph (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
my_handler typedef (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
my_successors (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
next (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
op_stat enum name (defined in tbb::flow::interface7::sequencer_node< T, A >)tbb::flow::interface7::sequencer_node< T, A >protected
op_type enum name (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
output_type typedef (defined in tbb::flow::interface7::sequencer_node< T, A >)tbb::flow::interface7::sequencer_node< T, A >
predecessor_type typedef (defined in tbb::flow::interface7::sequencer_node< T, A >)tbb::flow::interface7::sequencer_node< T, A >
prev (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
put_item enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
queue_node(graph &g)tbb::flow::interface7::queue_node< T, A >inline
queue_node(const queue_node &src)tbb::flow::interface7::queue_node< T, A >inline
queue_operation typedef (defined in tbb::flow::interface7::queue_node< T, A >)tbb::flow::interface7::queue_node< T, A >protected
reg_succ enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
register_predecessor(predecessor_type &)tbb::flow::interface7::receiver< T >inlinevirtual
register_successor(receiver< output_type > &r)tbb::flow::interface7::buffer_node< T, A >inlinevirtual
rel_res enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
rem_succ enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
remove_predecessor(predecessor_type &)tbb::flow::interface7::receiver< T >inlinevirtual
remove_successor(receiver< output_type > &r)tbb::flow::interface7::buffer_node< T, A >inlinevirtual
req_item enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
res_item enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
reset() (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
reset_receiver() (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
sequencer_node(graph &g, const Sequencer &s)tbb::flow::interface7::sequencer_node< T, A >inline
sequencer_node(const sequencer_node &src)tbb::flow::interface7::sequencer_node< T, A >inline
sequencer_operation typedef (defined in tbb::flow::interface7::sequencer_node< T, A >)tbb::flow::interface7::sequencer_node< T, A >protected
set_name(const char *name) (defined in tbb::flow::interface7::sequencer_node< T, A >)tbb::flow::interface7::sequencer_node< T, A >inlinevirtual
size_type typedef (defined in tbb::flow::interface7::sequencer_node< T, A >)tbb::flow::interface7::sequencer_node< T, A >protected
SUCCEEDED enum value (defined in tbb::flow::interface7::sequencer_node< T, A >)tbb::flow::interface7::sequencer_node< T, A >protected
successor_type typedef (defined in tbb::flow::interface7::sequencer_node< T, A >)tbb::flow::interface7::sequencer_node< T, A >
try_consume()tbb::flow::interface7::buffer_node< T, A >inlinevirtual
try_fwd_task enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
try_get(T &v)tbb::flow::interface7::buffer_node< T, A >inlinevirtual
try_put(const T &t)tbb::flow::interface7::receiver< T >inline
try_put_task(const T &t)tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
try_release()tbb::flow::interface7::buffer_node< T, A >inlinevirtual
try_reserve(T &v)tbb::flow::interface7::buffer_node< T, A >inlinevirtual
WAIT enum value (defined in tbb::flow::interface7::sequencer_node< T, A >)tbb::flow::interface7::sequencer_node< T, A >protected
~buffer_node() (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >inlinevirtual
~graph_node() (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeinlinevirtual
~receiver()tbb::flow::interface7::receiver< T >inlinevirtual
~sender() (defined in tbb::flow::interface7::sender< T >)tbb::flow::interface7::sender< T >inlinevirtual
~sequencer_node()tbb::flow::interface7::sequencer_node< T, A >inline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00329.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00329.html deleted file mode 100644 index 9fe99a497..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00329.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::flow::interface7::priority_queue_node< T, Compare, A > Member List
-
-
- -

This is the complete list of members for tbb::flow::interface7::priority_queue_node< T, Compare, A >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
base_type typedef (defined in tbb::flow::interface7::priority_queue_node< T, Compare, A >)tbb::flow::interface7::priority_queue_node< T, Compare, A >
buffer_node(graph &g)tbb::flow::interface7::buffer_node< T, A >inline
buffer_node(const buffer_node &src)tbb::flow::interface7::buffer_node< T, A >inline
con_res enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
enqueue_forwarding_task(buffer_operation &op_data) (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >inlineprotected
FAILED enum value (defined in tbb::flow::interface7::priority_queue_node< T, Compare, A >)tbb::flow::interface7::priority_queue_node< T, Compare, A >protected
forward_task()tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
forwarder_busy (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
grab_forwarding_task(buffer_operation &op_data) (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >inlineprotected
graph_node(graph &g) (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeinline
handle_operations(prio_operation *op_list) (defined in tbb::flow::interface7::priority_queue_node< T, Compare, A >)tbb::flow::interface7::priority_queue_node< T, Compare, A >inlineprotectedvirtual
input_type typedef (defined in tbb::flow::interface7::priority_queue_node< T, Compare, A >)tbb::flow::interface7::priority_queue_node< T, Compare, A >
internal_consume(prio_operation *op) (defined in tbb::flow::interface7::priority_queue_node< T, Compare, A >)tbb::flow::interface7::priority_queue_node< T, Compare, A >inlineprotectedvirtual
internal_forward_task(prio_operation *op)tbb::flow::interface7::priority_queue_node< T, Compare, A >inlineprotectedvirtual
internal_pop(prio_operation *op) (defined in tbb::flow::interface7::priority_queue_node< T, Compare, A >)tbb::flow::interface7::priority_queue_node< T, Compare, A >inlineprotectedvirtual
internal_push(prio_operation *op) (defined in tbb::flow::interface7::priority_queue_node< T, Compare, A >)tbb::flow::interface7::priority_queue_node< T, Compare, A >inlineprotectedvirtual
internal_reg_succ(buffer_operation *op)tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
internal_release(prio_operation *op) (defined in tbb::flow::interface7::priority_queue_node< T, Compare, A >)tbb::flow::interface7::priority_queue_node< T, Compare, A >inlineprotectedvirtual
internal_rem_succ(buffer_operation *op)tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
internal_reserve(prio_operation *op) (defined in tbb::flow::interface7::priority_queue_node< T, Compare, A >)tbb::flow::interface7::priority_queue_node< T, Compare, A >inlineprotectedvirtual
is_continue_receiver() (defined in tbb::flow::interface7::receiver< T >)tbb::flow::interface7::receiver< T >inlineprotectedvirtual
item_type typedef (defined in tbb::flow::interface7::priority_queue_node< T, Compare, A >)tbb::flow::interface7::priority_queue_node< T, Compare, A >protected
my_aggregator (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
my_class typedef (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >
my_graph (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
my_handler typedef (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
my_successors (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
next (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
op_stat enum name (defined in tbb::flow::interface7::priority_queue_node< T, Compare, A >)tbb::flow::interface7::priority_queue_node< T, Compare, A >protected
op_type enum name (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
output_type typedef (defined in tbb::flow::interface7::priority_queue_node< T, Compare, A >)tbb::flow::interface7::priority_queue_node< T, Compare, A >
predecessor_type typedef (defined in tbb::flow::interface7::priority_queue_node< T, Compare, A >)tbb::flow::interface7::priority_queue_node< T, Compare, A >
prev (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeprotected
prio_operation typedef (defined in tbb::flow::interface7::priority_queue_node< T, Compare, A >)tbb::flow::interface7::priority_queue_node< T, Compare, A >protected
priority_queue_node(graph &g)tbb::flow::interface7::priority_queue_node< T, Compare, A >inline
priority_queue_node(const priority_queue_node &src)tbb::flow::interface7::priority_queue_node< T, Compare, A >inline
put_item enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
reg_succ enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
register_predecessor(predecessor_type &)tbb::flow::interface7::receiver< T >inlinevirtual
register_successor(receiver< output_type > &r)tbb::flow::interface7::buffer_node< T, A >inlinevirtual
rel_res enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
rem_succ enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
remove_predecessor(predecessor_type &)tbb::flow::interface7::receiver< T >inlinevirtual
remove_successor(receiver< output_type > &r)tbb::flow::interface7::buffer_node< T, A >inlinevirtual
req_item enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
res_item enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
reset() (defined in tbb::flow::interface7::priority_queue_node< T, Compare, A >)tbb::flow::interface7::priority_queue_node< T, Compare, A >inlineprotectedvirtual
reset_receiver() (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
set_name(const char *name) (defined in tbb::flow::interface7::priority_queue_node< T, Compare, A >)tbb::flow::interface7::priority_queue_node< T, Compare, A >inlinevirtual
size_type typedef (defined in tbb::flow::interface7::priority_queue_node< T, Compare, A >)tbb::flow::interface7::priority_queue_node< T, Compare, A >protected
SUCCEEDED enum value (defined in tbb::flow::interface7::priority_queue_node< T, Compare, A >)tbb::flow::interface7::priority_queue_node< T, Compare, A >protected
successor_type typedef (defined in tbb::flow::interface7::priority_queue_node< T, Compare, A >)tbb::flow::interface7::priority_queue_node< T, Compare, A >
try_consume()tbb::flow::interface7::buffer_node< T, A >inlinevirtual
try_fwd_task enum value (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >protected
try_get(T &v)tbb::flow::interface7::buffer_node< T, A >inlinevirtual
try_put(const T &t)tbb::flow::interface7::receiver< T >inline
try_put_task(const T &t)tbb::flow::interface7::buffer_node< T, A >inlineprotectedvirtual
try_release()tbb::flow::interface7::buffer_node< T, A >inlinevirtual
try_reserve(T &v)tbb::flow::interface7::buffer_node< T, A >inlinevirtual
WAIT enum value (defined in tbb::flow::interface7::priority_queue_node< T, Compare, A >)tbb::flow::interface7::priority_queue_node< T, Compare, A >protected
~buffer_node() (defined in tbb::flow::interface7::buffer_node< T, A >)tbb::flow::interface7::buffer_node< T, A >inlinevirtual
~graph_node() (defined in tbb::flow::interface7::graph_node)tbb::flow::interface7::graph_nodeinlinevirtual
~receiver()tbb::flow::interface7::receiver< T >inlinevirtual
~sender() (defined in tbb::flow::interface7::sender< T >)tbb::flow::interface7::sender< T >inlinevirtual
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00330.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00330.html deleted file mode 100644 index 4428de1db..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00330.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::flow::interface7::join_node< OutputTuple, reserving > Member List
-
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00331.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00331.html deleted file mode 100644 index 5380b1c8f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00331.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::flow::interface7::join_node< OutputTuple, queueing > Member List
-
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00332.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00332.html deleted file mode 100644 index 9f40d870f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00332.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::flow::interface7::join_node< OutputTuple, tag_matching > Member List
-
-
- -

This is the complete list of members for tbb::flow::interface7::join_node< OutputTuple, tag_matching >, including all inherited members.

- - - - - - - - - - - - - - -
input_ports_type typedef (defined in tbb::flow::interface7::join_node< OutputTuple, tag_matching >)tbb::flow::interface7::join_node< OutputTuple, tag_matching >
join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1) (defined in tbb::flow::interface7::join_node< OutputTuple, tag_matching >)tbb::flow::interface7::join_node< OutputTuple, tag_matching >inline
join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2) (defined in tbb::flow::interface7::join_node< OutputTuple, tag_matching >)tbb::flow::interface7::join_node< OutputTuple, tag_matching >inline
join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3) (defined in tbb::flow::interface7::join_node< OutputTuple, tag_matching >)tbb::flow::interface7::join_node< OutputTuple, tag_matching >inline
join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4) (defined in tbb::flow::interface7::join_node< OutputTuple, tag_matching >)tbb::flow::interface7::join_node< OutputTuple, tag_matching >inline
join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5) (defined in tbb::flow::interface7::join_node< OutputTuple, tag_matching >)tbb::flow::interface7::join_node< OutputTuple, tag_matching >inline
join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6) (defined in tbb::flow::interface7::join_node< OutputTuple, tag_matching >)tbb::flow::interface7::join_node< OutputTuple, tag_matching >inline
join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6, __TBB_B7 b7) (defined in tbb::flow::interface7::join_node< OutputTuple, tag_matching >)tbb::flow::interface7::join_node< OutputTuple, tag_matching >inline
join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6, __TBB_B7 b7, __TBB_B8 b8) (defined in tbb::flow::interface7::join_node< OutputTuple, tag_matching >)tbb::flow::interface7::join_node< OutputTuple, tag_matching >inline
join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6, __TBB_B7 b7, __TBB_B8 b8, __TBB_B9 b9) (defined in tbb::flow::interface7::join_node< OutputTuple, tag_matching >)tbb::flow::interface7::join_node< OutputTuple, tag_matching >inline
join_node(const join_node &other) (defined in tbb::flow::interface7::join_node< OutputTuple, tag_matching >)tbb::flow::interface7::join_node< OutputTuple, tag_matching >inline
output_type typedef (defined in tbb::flow::interface7::join_node< OutputTuple, tag_matching >)tbb::flow::interface7::join_node< OutputTuple, tag_matching >
set_name(const char *name) (defined in tbb::flow::interface7::join_node< OutputTuple, tag_matching >)tbb::flow::interface7::join_node< OutputTuple, tag_matching >inline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00333.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00333.html deleted file mode 100644 index 4227a28e8..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00333.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - -Member List - - - - - - -
- - - - - -
-
-
-
tbb::flow::interface7::or_node< InputTuple > Member List
-
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00334.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00334.html deleted file mode 100644 index 2015a6cfc..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00334.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A > Member List
-
-
- -

This is the complete list of members for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
allocator_type typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
begin() (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
begin() const (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
bucket_count() const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
clear()tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
concurrent_hash_map(const allocator_type &a=allocator_type())tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
concurrent_hash_map(size_type n, const allocator_type &a=allocator_type())tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
concurrent_hash_map(const concurrent_hash_map &table, const allocator_type &a=allocator_type())tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
concurrent_hash_map(I first, I last, const allocator_type &a=allocator_type())tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
concurrent_hash_map(const std::initializer_list< value_type > &il, const allocator_type &a=allocator_type())tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
const_accessor (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >friend
const_iterator typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
const_pointer typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
const_range_type typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
const_reference typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
count(const Key &key) const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
delete_node(node_base *n) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inlineprotected
difference_type typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
empty() const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
end() (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
end() const (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
equal_range(const Key &key) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
equal_range(const Key &key) const (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
erase(const Key &key)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
erase(const_accessor &item_accessor)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
erase(accessor &item_accessor)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
exclude(const_accessor &item_accessor)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >protected
find(const_accessor &result, const Key &key) const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
find(accessor &result, const Key &key)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
get_allocator() const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
insert(const_accessor &result, const Key &key)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
insert(accessor &result, const Key &key)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
insert(const_accessor &result, const value_type &value)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
insert(accessor &result, const value_type &value)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
insert(const value_type &value)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
insert(I first, I last)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
internal::hash_map_iterator (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >friend
internal::hash_map_range (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >friend
internal_copy(const concurrent_hash_map &source)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >protected
internal_copy(I first, I last) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >protected
internal_equal_range(const Key &key, I end) const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >protected
internal_fast_find(const Key &key) const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inlineprotected
iterator typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
key_type typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
lookup(bool op_insert, const Key &key, const T *t, const_accessor *result, bool write)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >protected
mapped_type typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
max_size() const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
my_allocator (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >protected
my_hash_compare (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >protected
node_allocator_type typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >protected
operator=(const concurrent_hash_map &table)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
operator=(const std::initializer_list< value_type > &il)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
pointer typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
range(size_type grainsize=1) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
range(size_type grainsize=1) const (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
range_type typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
reference typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
rehash(size_type n=0)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
rehash_bucket(bucket *b_new, const hashcode_t h) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inlineprotected
search_bucket(const key_type &key, bucket *b) const (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inlineprotected
size() const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
size_type typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
swap(concurrent_hash_map &table)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
value_type typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
~concurrent_hash_map()tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00335.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00335.html deleted file mode 100644 index d83241ab8..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00335.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor Member List
-
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00336.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00336.html deleted file mode 100644 index e52f4edde..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00336.html +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor Member List
-
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00337.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00337.html deleted file mode 100644 index 0d91cbeaf..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00337.html +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor Member List
-
-
- -

This is the complete list of members for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor, including all inherited members.

- - - - - - - - - - - - - -
accessor (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorfriend
concurrent_hash_map< Key, T, HashCompare, Allocator > (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorfriend
const_accessor()tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorinline
empty() const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorinline
is_writer() (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorinlineprotected
my_hash (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorprotected
my_node (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorprotected
operator*() const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorinline
operator->() const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorinline
release()tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorinline
value_type typedeftbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor
~const_accessor()tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorinline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00338.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00338.html deleted file mode 100644 index 875473358..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00338.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node Member List
-
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00339.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00339.html deleted file mode 100644 index 8de37cb58..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00339.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface5::concurrent_priority_queue< T, Compare, A > Member List
-
-
- -

This is the complete list of members for tbb::interface5::concurrent_priority_queue< T, Compare, A >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - -
allocator_type typedeftbb::interface5::concurrent_priority_queue< T, Compare, A >
assign(InputIterator begin, InputIterator end)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
assign(std::initializer_list< T > const &il)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
clear()tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
concurrent_priority_queue(const allocator_type &a=allocator_type())tbb::interface5::concurrent_priority_queue< T, Compare, A >inlineexplicit
concurrent_priority_queue(size_type init_capacity, const allocator_type &a=allocator_type())tbb::interface5::concurrent_priority_queue< T, Compare, A >inlineexplicit
concurrent_priority_queue(InputIterator begin, InputIterator end, const allocator_type &a=allocator_type())tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
concurrent_priority_queue(std::initializer_list< T > const &init_list, const allocator_type &a=allocator_type())tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
concurrent_priority_queue(const concurrent_priority_queue &src)tbb::interface5::concurrent_priority_queue< T, Compare, A >inlineexplicit
concurrent_priority_queue(const concurrent_priority_queue &src, const allocator_type &a)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
const_reference typedeftbb::interface5::concurrent_priority_queue< T, Compare, A >
difference_type typedeftbb::interface5::concurrent_priority_queue< T, Compare, A >
empty() const tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
get_allocator() const tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
operator=(const concurrent_priority_queue &src)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
operator=(std::initializer_list< T > const &il)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
push(const_reference elem)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
reference typedeftbb::interface5::concurrent_priority_queue< T, Compare, A >
size() const tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
size_type typedeftbb::interface5::concurrent_priority_queue< T, Compare, A >
swap(concurrent_priority_queue &q)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
try_pop(reference elem)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
value_type typedeftbb::interface5::concurrent_priority_queue< T, Compare, A >
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00340.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00340.html deleted file mode 100644 index dd99e0234..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00340.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping > Member List
-
-
- -

This is the complete list of members for tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >, including all inherited members.

- - - - - - - - - - -
allocator_type typedef (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >protected
allow_multimapping enum value (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >protected
concurrent_unordered_map_traits() (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >inlineprotected
concurrent_unordered_map_traits(const hash_compare &hc) (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >inlineprotected
get_key(const std::pair< Type1, Type2 > &value) (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >inlineprotectedstatic
hash_compare typedef (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >protected
key_type typedef (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >protected
my_hash_compare (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >protected
value_type typedef (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >protected
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00341.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00341.html deleted file mode 100644 index 717adf868..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00341.html +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare Member List
-
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00342.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00342.html deleted file mode 100644 index bc68e421f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00342.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator > Member List
-
-
- -

This is the complete list of members for tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
allocator_type typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
at(const key_type &key) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
at(const key_type &key) const (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
concurrent_unordered_map(size_type n_of_buckets=8, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type()) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inlineexplicit
concurrent_unordered_map(const Allocator &a) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
concurrent_unordered_map(Iterator first, Iterator last, size_type n_of_buckets=8, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type()) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
concurrent_unordered_map(std::initializer_list< value_type > const &il, size_type n_of_buckets=8, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
concurrent_unordered_map(const concurrent_unordered_map &table) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
concurrent_unordered_map(const concurrent_unordered_map &table, const Allocator &a) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
const_iterator typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
const_local_iterator typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
const_pointer typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
const_reference typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
difference_type typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
hash_function() const (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
hasher typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
iterator typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
key_compare typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
key_eq() const (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
key_equal typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
key_type typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
local_iterator typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
mapped_type typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
operator=(const concurrent_unordered_map &table) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
operator=(std::initializer_list< value_type > const &il)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
operator[](const key_type &key) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
pointer typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
reference typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
size_type typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
swap(concurrent_unordered_map &table) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
unsafe_erase(const_iterator where) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
unsafe_erase(const key_type &key) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
unsafe_erase(const_iterator first, const_iterator last) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
value_type typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00343.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00343.html deleted file mode 100644 index af1d5d3cb..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00343.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator > Member List
-
-
- -

This is the complete list of members for tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
allocator_type typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
concurrent_unordered_multimap(size_type n_of_buckets=8, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type()) (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inlineexplicit
concurrent_unordered_multimap(const Allocator &a) (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inline
concurrent_unordered_multimap(Iterator first, Iterator last, size_type n_of_buckets=8, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type()) (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inline
concurrent_unordered_multimap(std::initializer_list< value_type > const &il, size_type n_of_buckets=8, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inline
concurrent_unordered_multimap(const concurrent_unordered_multimap &table) (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inline
concurrent_unordered_multimap(const concurrent_unordered_multimap &table, const Allocator &a) (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inline
const_iterator typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
const_local_iterator typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
const_pointer typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
const_reference typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
difference_type typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
hash_function() const (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inline
hasher typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
iterator typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
key_compare typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
key_eq() const (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inline
key_equal typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
key_type typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
local_iterator typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
mapped_type typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
operator=(const concurrent_unordered_multimap &table) (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inline
operator=(std::initializer_list< value_type > const &il)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inline
pointer typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
reference typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
size_type typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
swap(concurrent_unordered_multimap &table) (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inline
unsafe_erase(const_iterator where) (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inline
unsafe_erase(const key_type &key) (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inline
unsafe_erase(const_iterator first, const_iterator last) (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inline
value_type typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00344.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00344.html deleted file mode 100644 index 75aa6bcca..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00344.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping > Member List
-
-
- -

This is the complete list of members for tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >, including all inherited members.

- - - - - - - - - - - -
allocator_type typedef (defined in tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >protected
allow_multimapping enum value (defined in tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >protected
concurrent_unordered_set_traits() (defined in tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >inlineprotected
concurrent_unordered_set_traits(const hash_compare &hc) (defined in tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >inlineprotected
get_key(const value_type &value) (defined in tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >inlineprotectedstatic
hash_compare typedef (defined in tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >protected
key_type typedef (defined in tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >protected
my_hash_compare (defined in tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >protected
value_compare typedef (defined in tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >protected
value_type typedef (defined in tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >protected
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00345.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00345.html deleted file mode 100644 index c93e8a9da..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00345.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator > Member List
-
-
- -

This is the complete list of members for tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
allocator_type typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
concurrent_unordered_set(size_type n_of_buckets=8, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type()) (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inlineexplicit
concurrent_unordered_set(const Allocator &a) (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inline
concurrent_unordered_set(Iterator first, Iterator last, size_type n_of_buckets=8, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type()) (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inline
concurrent_unordered_set(std::initializer_list< value_type > const &il, size_type n_of_buckets=8, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type())tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inline
concurrent_unordered_set(const concurrent_unordered_set &table) (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inline
concurrent_unordered_set(const concurrent_unordered_set &table, const Allocator &a) (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inline
const_iterator typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
const_local_iterator typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
const_pointer typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
const_reference typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
difference_type typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
hash_function() const (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inline
hasher typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
iterator typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
key_compare typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
key_eq() const (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inline
key_equal typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
key_type typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
local_iterator typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
mapped_type typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
operator=(const concurrent_unordered_set &table) (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inline
operator=(std::initializer_list< value_type > const &il)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inline
pointer typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
reference typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
size_type typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
swap(concurrent_unordered_set &table) (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inline
unsafe_erase(const_iterator where) (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inline
unsafe_erase(const key_type &key) (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inline
unsafe_erase(const_iterator first, const_iterator last) (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inline
value_type typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00346.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00346.html deleted file mode 100644 index 0b42b891d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00346.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator > Member List
-
-
- -

This is the complete list of members for tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
allocator_type typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
base_type typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
concurrent_unordered_multiset(size_type n_of_buckets=8, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type()) (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inlineexplicit
concurrent_unordered_multiset(const Allocator &a) (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
concurrent_unordered_multiset(Iterator first, Iterator last, size_type n_of_buckets=8, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type()) (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
concurrent_unordered_multiset(std::initializer_list< value_type > const &il, size_type n_of_buckets=8, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type())tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
concurrent_unordered_multiset(const concurrent_unordered_multiset &table) (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
concurrent_unordered_multiset(const concurrent_unordered_multiset &table, const Allocator &a) (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
const_iterator typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
const_local_iterator typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
const_pointer typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
const_reference typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
difference_type typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
hash_compare typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
hash_function() const (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
hasher typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
insert(const value_type &value) (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
insert(const_iterator where, const value_type &value) (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
insert(Iterator first, Iterator last) (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
iterator typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
key_compare typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
key_eq() const (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
key_equal typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
key_type typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
local_iterator typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
mapped_type typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
operator=(const concurrent_unordered_multiset &table) (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
operator=(std::initializer_list< value_type > const &il)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
pointer typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
reference typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
size_type typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
swap(concurrent_unordered_multiset &table) (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
traits_type typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
unsafe_erase(const_iterator where) (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
unsafe_erase(const key_type &key) (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
unsafe_erase(const_iterator first, const_iterator last) (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
value_type typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00347.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00347.html deleted file mode 100644 index fbf7df61d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00347.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface5::reader_writer_lock Member List
-
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00348.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00348.html deleted file mode 100644 index ab4f56c32..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00348.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface5::reader_writer_lock::scoped_lock Member List
-
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00349.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00349.html deleted file mode 100644 index c2ffa379b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00349.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface5::reader_writer_lock::scoped_lock_read Member List
-
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00350.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00350.html deleted file mode 100644 index b3f6fcd6f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00350.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface6::aggregator_operation Member List
-
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00351.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00351.html deleted file mode 100644 index af0e247a9..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00351.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface6::aggregator_ext< handler_type > Member List
-
-
- -

This is the complete list of members for tbb::interface6::aggregator_ext< handler_type >, including all inherited members.

- - - - -
aggregator_ext(const handler_type &h) (defined in tbb::interface6::aggregator_ext< handler_type >)tbb::interface6::aggregator_ext< handler_type >inline
execute_impl(aggregator_operation &op)tbb::interface6::aggregator_ext< handler_type >inlineprotected
process(aggregator_operation *op)tbb::interface6::aggregator_ext< handler_type >inline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00352.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00352.html deleted file mode 100644 index 349f5e6c0..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00352.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface6::aggregator Member List
-
-
- -

This is the complete list of members for tbb::interface6::aggregator, including all inherited members.

- - - - - - -
aggregator() (defined in tbb::interface6::aggregator)tbb::interface6::aggregatorinline
aggregator_ext(const internal::basic_handler &h) (defined in tbb::interface6::aggregator_ext< internal::basic_handler >)tbb::interface6::aggregator_ext< internal::basic_handler >inlineprivate
execute(const Body &b)tbb::interface6::aggregatorinline
execute_impl(aggregator_operation &op)tbb::interface6::aggregator_ext< internal::basic_handler >inlineprivate
process(aggregator_operation *op)tbb::interface6::aggregator_ext< internal::basic_handler >inlineprivate
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00353.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00353.html deleted file mode 100644 index 065d015c2..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00353.html +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type > Member List
-
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00354.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00354.html deleted file mode 100644 index 11181e9a0..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00354.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type > Member List
-
-
- -

This is the complete list of members for tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
allocator_type typedeftbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
begin()tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
begin() const tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
clear()tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
combine(combine_func_t f_combine) (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
combine_each(combine_func_t f_combine) (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
const_iterator typedef (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
const_pointer typedef (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
const_range_type typedef (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
const_reference typedef (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
difference_type typedef (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
empty() const tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
end()tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
end() const tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
enumerable_thread_specific (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >friend
enumerable_thread_specific()tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
enumerable_thread_specific(Finit finit)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
enumerable_thread_specific(const T &exemplar)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
enumerable_thread_specific(const enumerable_thread_specific< U, Alloc, Cachetype > &other) (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
enumerable_thread_specific(const enumerable_thread_specific &other) (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
iterator typedef (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
local()tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
local(bool &exists)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
operator=(const enumerable_thread_specific &other) (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
operator=(const enumerable_thread_specific< U, Alloc, Cachetype > &other) (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
pointer typedef (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
range(size_t grainsize=1)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
range(size_t grainsize=1) const tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
range_type typedef (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
reference typedef (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
size() const tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
size_type typedef (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
value_type typedef (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
~enumerable_thread_specific()tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00355.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00355.html deleted file mode 100644 index 62979f731..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00355.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface6::flattened2d< Container > Member List
-
-
- -

This is the complete list of members for tbb::interface6::flattened2d< Container >, including all inherited members.

- - - - - - - - - - - - - - - - - - -
allocator_type typedef (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >
begin() (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >inline
begin() const (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >inline
const_iterator typedef (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >
const_pointer typedef (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >
const_reference typedef (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >
difference_type typedef (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >
end() (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >inline
end() const (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >inline
flattened2d(const Container &c, typename Container::const_iterator b, typename Container::const_iterator e) (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >inline
flattened2d(const Container &c) (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >inline
iterator typedef (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >
pointer typedef (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >
reference typedef (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >
size() const (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >inline
size_type typedeftbb::interface6::flattened2d< Container >
value_type typedef (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00356.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00356.html deleted file mode 100644 index e6435f765..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00356.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface6::memory_pool_allocator< T, P > Member List
-
-
- -

This is the complete list of members for tbb::interface6::memory_pool_allocator< T, P >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - -
address(reference x) const (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >inline
address(const_reference x) const (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >inline
allocate(size_type n, const void *=0)tbb::interface6::memory_pool_allocator< T, P >inline
const_pointer typedef (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >
const_reference typedef (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >
construct(U *p, Args &&...args)tbb::interface6::memory_pool_allocator< T, P >inline
construct(pointer p, const value_type &value) (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >inline
deallocate(pointer p, size_type)tbb::interface6::memory_pool_allocator< T, P >inline
destroy(pointer p)tbb::interface6::memory_pool_allocator< T, P >inline
difference_type typedef (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >
max_size() const tbb::interface6::memory_pool_allocator< T, P >inline
memory_pool_allocator (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >friend
memory_pool_allocator(pool_type &pool) (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >inline
memory_pool_allocator(const memory_pool_allocator &src) (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >inline
memory_pool_allocator(const memory_pool_allocator< U, P > &src) (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >inline
my_pool (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >protected
operator!= (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >friend
operator== (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >friend
pointer typedef (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >
pool_type typedef (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >protected
reference typedef (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >
size_type typedef (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >
value_type typedef (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00357.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00357.html deleted file mode 100644 index a38ba5ce8..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00357.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface6::memory_pool_allocator< T, P >::rebind< U > Member List
-
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00358.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00358.html deleted file mode 100644 index ae9360560..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00358.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface6::memory_pool_allocator< void, P > Member List
-
-
- -

This is the complete list of members for tbb::interface6::memory_pool_allocator< void, P >, including all inherited members.

- - - - - - - - - - - - -
const_pointer typedef (defined in tbb::interface6::memory_pool_allocator< void, P >)tbb::interface6::memory_pool_allocator< void, P >
memory_pool_allocator (defined in tbb::interface6::memory_pool_allocator< void, P >)tbb::interface6::memory_pool_allocator< void, P >friend
memory_pool_allocator(pool_type &pool) (defined in tbb::interface6::memory_pool_allocator< void, P >)tbb::interface6::memory_pool_allocator< void, P >inline
memory_pool_allocator(const memory_pool_allocator &src) (defined in tbb::interface6::memory_pool_allocator< void, P >)tbb::interface6::memory_pool_allocator< void, P >inline
memory_pool_allocator(const memory_pool_allocator< U, P > &src) (defined in tbb::interface6::memory_pool_allocator< void, P >)tbb::interface6::memory_pool_allocator< void, P >inline
my_pool (defined in tbb::interface6::memory_pool_allocator< void, P >)tbb::interface6::memory_pool_allocator< void, P >protected
operator!= (defined in tbb::interface6::memory_pool_allocator< void, P >)tbb::interface6::memory_pool_allocator< void, P >friend
operator== (defined in tbb::interface6::memory_pool_allocator< void, P >)tbb::interface6::memory_pool_allocator< void, P >friend
pointer typedef (defined in tbb::interface6::memory_pool_allocator< void, P >)tbb::interface6::memory_pool_allocator< void, P >
pool_type typedef (defined in tbb::interface6::memory_pool_allocator< void, P >)tbb::interface6::memory_pool_allocator< void, P >
value_type typedef (defined in tbb::interface6::memory_pool_allocator< void, P >)tbb::interface6::memory_pool_allocator< void, P >
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00359.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00359.html deleted file mode 100644 index 060d79bec..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00359.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface6::memory_pool_allocator< void, P >::rebind< U > Member List
-
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00360.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00360.html deleted file mode 100644 index 08069cc1d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00360.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface6::memory_pool< Alloc > Member List
-
-
- -

This is the complete list of members for tbb::interface6::memory_pool< Alloc >, including all inherited members.

- - - -
memory_pool(const Alloc &src=Alloc())tbb::interface6::memory_pool< Alloc >
~memory_pool()tbb::interface6::memory_pool< Alloc >inline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00361.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00361.html deleted file mode 100644 index ae58cf615..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00361.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface6::fixed_pool Member List
-
-
- -

This is the complete list of members for tbb::interface6::fixed_pool, including all inherited members.

- - - -
fixed_pool(void *buf, size_t size)tbb::interface6::fixed_poolinline
~fixed_pool()tbb::interface6::fixed_poolinline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00362.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00362.html deleted file mode 100644 index e2b193d7d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00362.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface6::flow_control Member List
-
-
- -

This is the complete list of members for tbb::interface6::flow_control, including all inherited members.

- - - -
internal::concrete_filter (defined in tbb::interface6::flow_control)tbb::interface6::flow_controlfriend
stop() (defined in tbb::interface6::flow_control)tbb::interface6::flow_controlinline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00363.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00363.html deleted file mode 100644 index a9ce48bf0..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00363.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface6::filter_t< T, U > Member List
-
-
- -

This is the complete list of members for tbb::interface6::filter_t< T, U >, including all inherited members.

- - - - - - - - - - -
clear() (defined in tbb::interface6::filter_t< T, U >)tbb::interface6::filter_t< T, U >inline
filter_t() (defined in tbb::interface6::filter_t< T, U >)tbb::interface6::filter_t< T, U >inline
filter_t(const filter_t< T, U > &rhs) (defined in tbb::interface6::filter_t< T, U >)tbb::interface6::filter_t< T, U >inline
filter_t(tbb::filter::mode mode, const Body &body) (defined in tbb::interface6::filter_t< T, U >)tbb::interface6::filter_t< T, U >inline
internal::pipeline_proxy (defined in tbb::interface6::filter_t< T, U >)tbb::interface6::filter_t< T, U >friend
make_filter(tbb::filter::mode, const Body &)tbb::interface6::filter_t< T, U >friend
operator& (defined in tbb::interface6::filter_t< T, U >)tbb::interface6::filter_t< T, U >friend
operator=(const filter_t< T, U > &rhs) (defined in tbb::interface6::filter_t< T, U >)tbb::interface6::filter_t< T, U >inline
~filter_t() (defined in tbb::interface6::filter_t< T, U >)tbb::interface6::filter_t< T, U >inline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00364.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00364.html deleted file mode 100644 index d618c439e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00364.html +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface6::runtime_loader Member List
-
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00365.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00365.html deleted file mode 100644 index 86d8cb7df..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00365.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface6::task_scheduler_observer Member List
-
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00366.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00366.html deleted file mode 100644 index a3d1197cc..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00366.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface6::internal::basic_operation_base Member List
-
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00367.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00367.html deleted file mode 100644 index 42d74b034..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00367.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - -Member List - - - - - - -
- - - - - -
-
-
-
tbb::interface6::internal::basic_operation< Body > Member List
-
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00368.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00368.html deleted file mode 100644 index ba634d3e0..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00368.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - -Member List - - - - - - -
- - - - - -
-
-
-
tbb::interface6::internal::basic_handler Member List
-
-
- -

This is the complete list of members for tbb::interface6::internal::basic_handler, including all inherited members.

- - - -
basic_handler() (defined in tbb::interface6::internal::basic_handler)tbb::interface6::internal::basic_handlerinline
operator()(aggregator_operation *op_list) const (defined in tbb::interface6::internal::basic_handler)tbb::interface6::internal::basic_handlerinline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00369.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00369.html deleted file mode 100644 index e96266332..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00369.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::interface7::task_arena Member List
-
-
- -

This is the complete list of members for tbb::interface7::task_arena, including all inherited members.

- - - - - - - - - - - - - - - -
current_slot()tbb::interface7::task_arenainlinestatic
debug_wait_until_empty()tbb::interface7::task_arenainline
enqueue(const F &f)tbb::interface7::task_arenainline
enqueue(const F &f, priority_t p)tbb::interface7::task_arenainline
execute(F &f)tbb::interface7::task_arenainline
execute(const F &f)tbb::interface7::task_arenainline
initialize()tbb::interface7::task_arenainline
initialize(int max_concurrency, unsigned reserved_for_masters=1)tbb::interface7::task_arenainline
is_active() const tbb::interface7::task_arenainline
task_arena(int max_concurrency=automatic, unsigned reserved_for_masters=1)tbb::interface7::task_arenainline
task_arena(const task_arena &s)tbb::interface7::task_arenainline
tbb::internal::task_scheduler_observer_v3 (defined in tbb::interface7::task_arena)tbb::interface7::task_arenafriend
terminate()tbb::interface7::task_arenainline
~task_arena()tbb::interface7::task_arenainline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00370.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00370.html deleted file mode 100644 index e5fff04af..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00370.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::internal::critical_section_v4 Member List
-
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00371.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00371.html deleted file mode 100644 index fd8ed7644..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00371.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::internal::critical_section_v4::scoped_lock Member List
-
-
- -

This is the complete list of members for tbb::internal::critical_section_v4::scoped_lock, including all inherited members.

- - - -
scoped_lock(critical_section_v4 &lock_me) (defined in tbb::internal::critical_section_v4::scoped_lock)tbb::internal::critical_section_v4::scoped_lockinline
~scoped_lock() (defined in tbb::internal::critical_section_v4::scoped_lock)tbb::internal::critical_section_v4::scoped_lockinline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00372.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00372.html deleted file mode 100644 index a87908137..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00372.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::internal::task_handle_task< F > Member List
-
-
- -

This is the complete list of members for tbb::internal::task_handle_task< F >, including all inherited members.

- - -
task_handle_task(task_handle< F > &h) (defined in tbb::internal::task_handle_task< F >)tbb::internal::task_handle_task< F >inline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00373.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00373.html deleted file mode 100644 index 202226cd4..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00373.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::internal::task_group_base Member List
-
-
- -

This is the complete list of members for tbb::internal::task_group_base, including all inherited members.

- - - - - - - - - - - - -
cancel() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
internal_run(F &f) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinlineprotected
internal_run_and_wait(F &f) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinlineprotected
is_canceling() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
my_context (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseprotected
my_root (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseprotected
owner() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinlineprotected
run(task_handle< F > &h) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
task_group_base(uintptr_t traits=0) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
wait() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
~task_group_base() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00374.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00374.html deleted file mode 100644 index 2c971c491..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00374.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::internal::task_scheduler_observer_v3 Member List
-
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00375.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00375.html deleted file mode 100644 index 0045ec8fc..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00375.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::internal::tbb_exception_ptr Member List
-
-
- -

This is the complete list of members for tbb::internal::tbb_exception_ptr, including all inherited members.

- - - - - - -
allocate() (defined in tbb::internal::tbb_exception_ptr)tbb::internal::tbb_exception_ptrstatic
allocate(const tbb_exception &tag) (defined in tbb::internal::tbb_exception_ptr)tbb::internal::tbb_exception_ptrstatic
allocate(captured_exception &src)tbb::internal::tbb_exception_ptrstatic
destroy()tbb::internal::tbb_exception_ptr
throw_self()tbb::internal::tbb_exception_ptrinline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00376.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00376.html deleted file mode 100644 index 8d372bf05..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00376.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::internal::STATIC_ASSERTION_FAILED< false > Member List
-
-
- -

This is the complete list of members for tbb::internal::STATIC_ASSERTION_FAILED< false >, including all inherited members.

- - -
value enum value (defined in tbb::internal::STATIC_ASSERTION_FAILED< false >)tbb::internal::STATIC_ASSERTION_FAILED< false >
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00377.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00377.html deleted file mode 100644 index 24cee7f6b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00377.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::internal::thread_closure_base Member List
-
-
- -

This is the complete list of members for tbb::internal::thread_closure_base, including all inherited members.

- - - -
operator delete(void *ptr) (defined in tbb::internal::thread_closure_base)tbb::internal::thread_closure_baseinline
operator new(size_t size) (defined in tbb::internal::thread_closure_base)tbb::internal::thread_closure_baseinline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00378.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00378.html deleted file mode 100644 index e389e0987..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00378.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::internal::thread_closure_0< F > Member List
-
-
- -

This is the complete list of members for tbb::internal::thread_closure_0< F >, including all inherited members.

- - - - - - -
function (defined in tbb::internal::thread_closure_0< F >)tbb::internal::thread_closure_0< F >
operator delete(void *ptr) (defined in tbb::internal::thread_closure_base)tbb::internal::thread_closure_baseinline
operator new(size_t size) (defined in tbb::internal::thread_closure_base)tbb::internal::thread_closure_baseinline
start_routine(void *c) (defined in tbb::internal::thread_closure_0< F >)tbb::internal::thread_closure_0< F >inlinestatic
thread_closure_0(const F &f) (defined in tbb::internal::thread_closure_0< F >)tbb::internal::thread_closure_0< F >inline
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00379.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00379.html deleted file mode 100644 index 8b901300e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00379.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::internal::thread_closure_1< F, X > Member List
-
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00380.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00380.html deleted file mode 100644 index 5de9953f8..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00380.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::internal::thread_closure_2< F, X, Y > Member List
-
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00381.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00381.html deleted file mode 100644 index 520af2013..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00381.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::internal::tbb_thread_v3 Member List
-
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00382.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00382.html deleted file mode 100644 index b09fe823a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00382.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::internal::tbb_thread_v3::id Member List
-
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00383.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00383.html deleted file mode 100644 index f6b8bd157..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/a00383.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - -Member List - - - - - - - -
-
-
tbb::strict_ppl::concurrent_queue< T, A > Member List
-
-
- -

This is the complete list of members for tbb::strict_ppl::concurrent_queue< T, A >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - -
allocator_type typedeftbb::strict_ppl::concurrent_queue< T, A >
clear()tbb::strict_ppl::concurrent_queue< T, A >
concurrent_queue(const allocator_type &a=allocator_type())tbb::strict_ppl::concurrent_queue< T, A >inlineexplicit
concurrent_queue(InputIterator begin, InputIterator end, const allocator_type &a=allocator_type())tbb::strict_ppl::concurrent_queue< T, A >inline
concurrent_queue(const concurrent_queue &src, const allocator_type &a=allocator_type())tbb::strict_ppl::concurrent_queue< T, A >inline
const_iterator typedef (defined in tbb::strict_ppl::concurrent_queue< T, A >)tbb::strict_ppl::concurrent_queue< T, A >
const_reference typedeftbb::strict_ppl::concurrent_queue< T, A >
difference_type typedeftbb::strict_ppl::concurrent_queue< T, A >
empty() const tbb::strict_ppl::concurrent_queue< T, A >inline
get_allocator() const tbb::strict_ppl::concurrent_queue< T, A >inline
internal::concurrent_queue_iterator (defined in tbb::strict_ppl::concurrent_queue< T, A >)tbb::strict_ppl::concurrent_queue< T, A >friend
iterator typedef (defined in tbb::strict_ppl::concurrent_queue< T, A >)tbb::strict_ppl::concurrent_queue< T, A >
push(const T &source)tbb::strict_ppl::concurrent_queue< T, A >inline
reference typedeftbb::strict_ppl::concurrent_queue< T, A >
size_type typedeftbb::strict_ppl::concurrent_queue< T, A >
try_pop(T &result)tbb::strict_ppl::concurrent_queue< T, A >inline
unsafe_begin() (defined in tbb::strict_ppl::concurrent_queue< T, A >)tbb::strict_ppl::concurrent_queue< T, A >inline
unsafe_begin() const (defined in tbb::strict_ppl::concurrent_queue< T, A >)tbb::strict_ppl::concurrent_queue< T, A >inline
unsafe_end() (defined in tbb::strict_ppl::concurrent_queue< T, A >)tbb::strict_ppl::concurrent_queue< T, A >inline
unsafe_end() const (defined in tbb::strict_ppl::concurrent_queue< T, A >)tbb::strict_ppl::concurrent_queue< T, A >inline
unsafe_size() const tbb::strict_ppl::concurrent_queue< T, A >inline
value_type typedeftbb::strict_ppl::concurrent_queue< T, A >
~concurrent_queue()tbb::strict_ppl::concurrent_queue< T, A >
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/annotated.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/annotated.html deleted file mode 100644 index 305128fd1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/annotated.html +++ /dev/null @@ -1,218 +0,0 @@ - - - - - - -Class List - - - - - - - -
-
-
Class List
-
-
-
Here are the classes, structs, unions and interfaces with brief descriptions:
-
[detail level 12345]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
oNrmlThe namespace rml contains components of low-level memory pool interface
|\CMemPoolPolicy
oNtbbThe namespace tbb contains all components of the library
|oNdeprecated
|oNflow
|oNinterface5
|oNinterface6
|oNinterface7
|oNinternal
|oNstrict_ppl
|oCaligned_spaceBlock of space aligned sufficiently to construct an array T with N elements
|oCatomicPrimary template for atomic
|oCatomic< void * >Specialization for atomic<void*>, for sake of not allowing arithmetic or operator->
|oCblocked_rangeA range over which to iterate
|oCblocked_range2dA 2-dimensional range that models the Range concept
|oCblocked_range3dA 3-dimensional range that models the Range concept
|oCcache_aligned_allocatorMeets "allocator" requirements of ISO C++ Standard, Section 20.1.5
|oCcache_aligned_allocator< void >Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1
|oCcombinableThread-local storage with optional reduction
|oCtbb_hash_compareHash_compare that is default argument for concurrent_hash_map
|oCconcurrent_bounded_queueA high-performance thread-safe blocking concurrent bounded queue
|oCconcurrent_vectorConcurrent vector container
|oCvector_iterator
|oCmutexWrapper around the platform's native reader-writer lock
|oCnull_mutexA mutex which does nothing
|oCnull_rw_mutexA rw mutex which does nothing
|oCparallel_do_feederClass the user supplied algorithm body uses to add new tasks
|oCtask_group_context
|oCpre_scan_tagUsed to indicate that the initial scan is being performed
|oCfinal_scan_tagUsed to indicate that the final scan is being performed
|oCparallel_whileParallel iteration over a stream, with optional addition of more work
|oCfilterA stage in a pipeline
|oCthread_bound_filterA stage in a pipeline served by a user thread
|oCpipelineA processing pipeline that applies filters to items
|oCqueuing_mutexQueuing mutex with local-only spinning
|oCqueuing_rw_mutexQueuing reader-writer mutex with local-only spinning
|oCrecursive_mutex
|oCscalable_allocatorMeets "allocator" requirements of ISO C++ Standard, Section 20.1.5
|oCscalable_allocator< void >Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1
|oCspin_mutexA lock that occupies a single byte
|oCspin_rw_mutex_v3Fast, unfair, spinning reader-writer lock with backoff and writer-preference
|oCtask_handle
|oCtask_group
|oCstructured_task_group
|oCtask_scheduler_initClass delimiting the scope of task scheduler activity
|oCtbb_allocatorMeets "allocator" requirements of ISO C++ Standard, Section 20.1.5
|oCtbb_allocator< void >Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1
|oCzero_allocatorMeets "allocator" requirements of ISO C++ Standard, Section 20.1.5
|oCzero_allocator< void, Allocator >Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1
|oCbad_last_allocException for concurrent containers
|oCimproper_lockException for PPL locks
|oCuser_abortException for user-initiated abort
|oCmissing_waitException for missing wait on structured_task_group
|oCinvalid_multiple_schedulingException for repeated scheduling of the same task_handle
|oCtbb_exceptionInterface to be implemented by all exceptions TBB recognizes and propagates across the threads
|oCcaptured_exceptionThis class is used by TBB to propagate information about unhandled exceptions into the root thread
|oCmovable_exceptionTemplate that can be used to implement exception that transfers arbitrary ExceptionData to the root thread
|oCsplitDummy type that distinguishes splitting constructor from copy constructor
|\Ctick_countAbsolute timestamp
\C__TBB_malloc_proxy_caller
-
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/bc_s.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/bc_s.png deleted file mode 100644 index 224b29aa9..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/bc_s.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/bdwn.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/bdwn.png deleted file mode 100644 index 940a0b950..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/bdwn.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/classes.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/classes.html deleted file mode 100644 index 626edda12..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/classes.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - -Class Index - - - - - - - -
-
-
Class Index
-
-
-
A | B | C | E | F | G | I | J | L | M | N | O | P | Q | R | S | T | U | V | W | Z | _
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  A  
-
concurrent_unordered_set (tbb::interface5)   
  M  
-
zero_allocator::rebind (tbb)   task_group_base (tbb::internal)   
concurrent_unordered_set_traits (tbb::interface5)   tbb_allocator< void >::rebind (tbb)   task_group_context (tbb)   
concurrent_hash_map::accessor (tbb::interface5)   concurrent_vector (tbb)   memory_pool (tbb::interface6)   tbb_allocator::rebind (tbb)   task_handle (tbb)   
aggregator (tbb::interface6)   concurrent_hash_map::const_accessor (tbb::interface5)   memory_pool_allocator (tbb::interface6)   scalable_allocator< void >::rebind (tbb)   task_handle_task (tbb::internal)   
aggregator_ext (tbb::interface6)   continue_msg (tbb::flow::interface7)   memory_pool_allocator< void, P > (tbb::interface6)   cache_aligned_allocator< void >::rebind (tbb)   task_scheduler_init (tbb)   
aggregator_operation (tbb::interface6)   continue_node (tbb::flow::interface7)   MemPoolPolicy (rml)   receiver (tbb::flow::interface7)   task_scheduler_observer (tbb::interface6)   
aligned_space (tbb)   continue_receiver (tbb::flow::interface7)   missing_wait (tbb)   recursive_mutex (tbb)   task_scheduler_observer_v3 (tbb::internal)   
atomic (tbb)   critical_section_v4 (tbb::internal)   movable_exception (tbb)   round_robin_cache (tbb::flow::interface7::internal)   tbb_allocator (tbb)   
atomic< void * > (tbb)   
  E  
-
multifunction_node (tbb::flow::interface7)   run_and_put_task (tbb::flow::interface7)   tbb_allocator< void > (tbb)   
  B  
-
multifunction_node< Input, Output, queueing, Allocator > (tbb::flow::interface7)   runtime_loader (tbb::interface6)   tbb_exception (tbb)   
enumerable_thread_specific (tbb::interface6)   mutex (tbb)   
  S  
-
tbb_exception_ptr (tbb::internal)   
bad_last_alloc (tbb)   
  F  
-
  N  
-
tbb_hash_compare (tbb)   
basic_handler (tbb::interface6::internal)   scalable_allocator (tbb)   tbb_thread_v3 (tbb::internal)   
basic_operation (tbb::interface6::internal)   filter (tbb)   concurrent_hash_map::node (tbb::interface5)   scalable_allocator< void > (tbb)   thread_bound_filter (tbb)   
basic_operation_base (tbb::interface6::internal)   filter_t (tbb::interface6)   null_mutex (tbb)   critical_section_v4::scoped_lock (tbb::internal)   thread_closure_0 (tbb::internal)   
blocked_range (tbb)   final_scan_tag (tbb)   null_rw_mutex (tbb)   queuing_mutex::scoped_lock (tbb)   thread_closure_1 (tbb::internal)   
blocked_range2d (tbb)   fixed_pool (tbb::interface6)   
  O  
-
recursive_mutex::scoped_lock (tbb)   thread_closure_2 (tbb::internal)   
blocked_range3d (tbb)   flattened2d (tbb::interface6)   queuing_rw_mutex::scoped_lock (tbb)   thread_closure_base (tbb::internal)   
broadcast_cache (tbb::flow::interface7::internal)   flow_control (tbb::interface6)   or_node (tbb::flow::interface7)   reader_writer_lock::scoped_lock (tbb::interface5)   tick_count (tbb)   
broadcast_node (tbb::flow::interface7)   function_node (tbb::flow::interface7)   overwrite_node (tbb::flow::interface7)   null_rw_mutex::scoped_lock (tbb)   
  U  
-
concurrent_hash_map::bucket_accessor (tbb::interface5)   function_node< Input, Output, queueing, Allocator > (tbb::flow::interface7)   
  P  
-
mutex::scoped_lock (tbb)   
buffer_node (tbb::flow::interface7)   
  G  
-
null_mutex::scoped_lock (tbb)   user_abort (tbb)   
buffer_node::buffer_operation (tbb::flow::interface7)   parallel_do_feeder (tbb)   spin_rw_mutex_v3::scoped_lock (tbb)   
  V  
-
  C  
-
graph (tbb::flow::interface7)   parallel_while (tbb)   spin_mutex::scoped_lock (tbb)   
graph_iterator (tbb::flow::interface7)   pipeline (tbb)   reader_writer_lock::scoped_lock_read (tbb::interface5)   concurrent_unordered_map_traits::value_compare (tbb::interface5)   
cache_aligned_allocator (tbb)   graph_node (tbb::flow::interface7)   pre_scan_tag (tbb)   sender (tbb::flow::interface7)   vector_iterator (tbb)   
cache_aligned_allocator< void > (tbb)   
  I  
-
priority_queue_node (tbb::flow::interface7)   sequencer_node (tbb::flow::interface7)   
  W  
-
captured_exception (tbb)   
  Q  
-
source_node (tbb::flow::interface7)   
combinable (tbb)   tbb_thread_v3::id (tbb::internal)   spin_mutex (tbb)   write_once_node (tbb::flow::interface7)   
concrete_filter (tbb::interface6::internal)   improper_lock (tbb)   queue_node (tbb::flow::interface7)   spin_rw_mutex_v3 (tbb)   
  Z  
-
concurrent_bounded_queue (tbb)   tick_count::interval_t (tbb)   queuing_mutex (tbb)   split (tbb)   
concurrent_hash_map (tbb::interface5)   invalid_multiple_scheduling (tbb)   queuing_rw_mutex (tbb)   split_node (tbb::flow::interface7)   zero_allocator (tbb)   
concurrent_lru_cache (tbb::interface6)   
  J  
-
  R  
-
STATIC_ASSERTION_FAILED (tbb::internal)   zero_allocator< void, Allocator > (tbb)   
concurrent_priority_queue (tbb::interface5)   STATIC_ASSERTION_FAILED< false > (tbb::internal)   
  _  
-
concurrent_queue (tbb::deprecated)   join_node (tbb::flow::interface7)   reader_writer_lock (tbb::interface5)   structured_task_group (tbb)   
concurrent_queue (tbb::strict_ppl)   join_node< OutputTuple, queueing > (tbb::flow::interface7)   scalable_allocator::rebind (tbb)   successor_cache (tbb::flow::interface7::internal)   __TBB_malloc_proxy_caller   
concurrent_unordered_map (tbb::interface5)   join_node< OutputTuple, reserving > (tbb::flow::interface7)   cache_aligned_allocator::rebind (tbb)   
  T  
-
concurrent_unordered_map_traits (tbb::interface5)   join_node< OutputTuple, tag_matching > (tbb::flow::interface7)   zero_allocator< void, Allocator >::rebind (tbb)   
concurrent_unordered_multimap (tbb::interface5)   
  L  
-
memory_pool_allocator< void, P >::rebind (tbb::interface6)   task_arena (tbb::interface7)   
concurrent_unordered_multiset (tbb::interface5)   memory_pool_allocator::rebind (tbb::interface6)   task_group (tbb)   
limiter_node (tbb::flow::interface7)   
-
A | B | C | E | F | G | I | J | L | M | N | O | P | Q | R | S | T | U | V | W | Z | _
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/closed.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/closed.png deleted file mode 100644 index 98cc2c909..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/closed.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/dir_525f2cc589630bacbdc3bb450847427e.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/dir_525f2cc589630bacbdc3bb450847427e.html deleted file mode 100644 index 2ab824421..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/dir_525f2cc589630bacbdc3bb450847427e.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - -tbb Directory Reference - - - - - - -
- - - - -
-
-
-
tbb Directory Reference
-
-
- - - - -

-Directories

directory  1.0
 
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/dir_63fb2cc293d133785b96e521fa051167.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/dir_63fb2cc293d133785b96e521fa051167.html deleted file mode 100644 index ccbe83f15..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/dir_63fb2cc293d133785b96e521fa051167.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - -include Directory Reference - - - - - - - -
-
-
include Directory Reference
-
-
- - - - -

-Directories

directory  tbb
 
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/dir_87119f26c7695cbc270003e99bc7f49f.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/dir_87119f26c7695cbc270003e99bc7f49f.html deleted file mode 100644 index 3f0d661f2..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/dir_87119f26c7695cbc270003e99bc7f49f.html +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - -tbb Directory Reference - - - - - - - -
-
-
tbb Directory Reference
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Files

file  aggregator.h
 
file  aligned_space.h
 
file  atomic.h
 
file  blocked_range.h
 
file  blocked_range2d.h
 
file  blocked_range3d.h
 
file  cache_aligned_allocator.h
 
file  combinable.h
 
file  concurrent_hash_map.h
 
file  concurrent_lru_cache.h
 
file  concurrent_priority_queue.h
 
file  concurrent_queue.h
 
file  concurrent_unordered_map.h
 
file  concurrent_unordered_set.h
 
file  concurrent_vector.h
 
file  critical_section.h
 
file  enumerable_thread_specific.h
 
file  flow_graph.h
 The graph related classes and functions.
 
file  memory_pool.h
 
file  mutex.h
 
file  null_mutex.h
 
file  null_rw_mutex.h
 
file  parallel_do.h
 
file  parallel_for.h
 
file  parallel_for_each.h
 
file  parallel_invoke.h
 
file  parallel_reduce.h
 
file  parallel_scan.h
 
file  parallel_sort.h
 
file  parallel_while.h
 
file  partitioner.h
 
file  pipeline.h
 
file  queuing_mutex.h
 
file  queuing_rw_mutex.h
 
file  reader_writer_lock.h
 
file  recursive_mutex.h
 
file  runtime_loader.h
 
file  scalable_allocator.h
 
file  spin_mutex.h
 
file  spin_rw_mutex.h
 
file  task.h
 
file  task_arena.h
 
file  task_group.h
 
file  task_scheduler_init.h
 
file  task_scheduler_observer.h
 
file  tbb.h
 
file  tbb_allocator.h
 
file  tbb_config.h
 
file  tbb_exception.h
 
file  tbb_machine.h
 
file  tbb_profiling.h
 
file  tbb_stddef.h
 
file  tbb_thread.h
 
file  tbbmalloc_proxy.h
 
file  tick_count.h
 
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/dir_b9976680b2be72d2d0b8fca1c31202a2.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/dir_b9976680b2be72d2d0b8fca1c31202a2.html deleted file mode 100644 index 08e7766c3..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/dir_b9976680b2be72d2d0b8fca1c31202a2.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - -1.0 Directory Reference - - - - - - -
- - - - -
-
-
-
1.0 Directory Reference
-
-
- - - - -

-Directories

directory  include
 
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/doxygen.css b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/doxygen.css deleted file mode 100644 index 3ac285113..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/doxygen.css +++ /dev/null @@ -1,1186 +0,0 @@ -/* The standard CSS for doxygen 1.8.4 */ - -body, table, div, p, dl { - font: 400 14px/22px Roboto,sans-serif; -} - -/* @group Heading Levels */ - -h1.groupheader { - font-size: 150%; -} - -.title { - font: 400 14px/28px Roboto,sans-serif; - font-size: 150%; - font-weight: bold; - margin: 10px 2px; -} - -h2.groupheader { - border-bottom: 1px solid #879ECB; - color: #354C7B; - font-size: 150%; - font-weight: normal; - margin-top: 1.75em; - padding-top: 8px; - padding-bottom: 4px; - width: 100%; -} - -h3.groupheader { - font-size: 100%; -} - -h1, h2, h3, h4, h5, h6 { - -webkit-transition: text-shadow 0.5s linear; - -moz-transition: text-shadow 0.5s linear; - -ms-transition: text-shadow 0.5s linear; - -o-transition: text-shadow 0.5s linear; - transition: text-shadow 0.5s linear; - margin-right: 15px; -} - -h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { - text-shadow: 0 0 15px cyan; -} - -dt { - font-weight: bold; -} - -div.multicol { - -moz-column-gap: 1em; - -webkit-column-gap: 1em; - -moz-column-count: 3; - -webkit-column-count: 3; -} - -p.startli, p.startdd, p.starttd { - margin-top: 2px; -} - -p.endli { - margin-bottom: 0px; -} - -p.enddd { - margin-bottom: 4px; -} - -p.endtd { - margin-bottom: 2px; -} - -/* @end */ - -caption { - font-weight: bold; -} - -span.legend { - font-size: 70%; - text-align: center; -} - -h3.version { - font-size: 90%; - text-align: center; -} - -div.qindex, div.navtab{ - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; -} - -div.qindex, div.navpath { - width: 100%; - line-height: 140%; -} - -div.navtab { - margin-right: 15px; -} - -/* @group Link Styling */ - -a { - color: #3D578C; - font-weight: normal; - text-decoration: none; -} - -.contents a:visited { - color: #4665A2; -} - -a:hover { - text-decoration: underline; -} - -a.qindex { - font-weight: bold; -} - -a.qindexHL { - font-weight: bold; - background-color: #9CAFD4; - color: #ffffff; - border: 1px double #869DCA; -} - -.contents a.qindexHL:visited { - color: #ffffff; -} - -a.el { - font-weight: bold; -} - -a.elRef { -} - -a.code, a.code:visited { - color: #4665A2; -} - -a.codeRef, a.codeRef:visited { - color: #4665A2; -} - -/* @end */ - -dl.el { - margin-left: -1cm; -} - -pre.fragment { - border: 1px solid #C4CFE5; - background-color: #FBFCFD; - padding: 4px 6px; - margin: 4px 8px 4px 2px; - overflow: auto; - word-wrap: break-word; - font-size: 9pt; - line-height: 125%; - font-family: monospace, fixed; - font-size: 105%; -} - -div.fragment { - padding: 0px; - margin: 0px; - background-color: #FBFCFD; - border: 1px solid #C4CFE5; -} - -div.line { - font-family: monospace, fixed; - font-size: 13px; - min-height: 13px; - line-height: 1.0; - text-wrap: unrestricted; - white-space: -moz-pre-wrap; /* Moz */ - white-space: -pre-wrap; /* Opera 4-6 */ - white-space: -o-pre-wrap; /* Opera 7 */ - white-space: pre-wrap; /* CSS3 */ - word-wrap: break-word; /* IE 5.5+ */ - text-indent: -53px; - padding-left: 53px; - padding-bottom: 0px; - margin: 0px; - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; -} - -div.line.glow { - background-color: cyan; - box-shadow: 0 0 10px cyan; -} - - -span.lineno { - padding-right: 4px; - text-align: right; - border-right: 2px solid #0F0; - background-color: #E8E8E8; - white-space: pre; -} -span.lineno a { - background-color: #D8D8D8; -} - -span.lineno a:hover { - background-color: #C8C8C8; -} - -div.ah { - background-color: black; - font-weight: bold; - color: #ffffff; - margin-bottom: 3px; - margin-top: 3px; - padding: 0.2em; - border: solid thin #333; - border-radius: 0.5em; - -webkit-border-radius: .5em; - -moz-border-radius: .5em; - box-shadow: 2px 2px 3px #999; - -webkit-box-shadow: 2px 2px 3px #999; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); - background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); -} - -div.groupHeader { - margin-left: 16px; - margin-top: 12px; - font-weight: bold; -} - -div.groupText { - margin-left: 16px; - font-style: italic; -} - -body { - background-color: white; - color: black; - margin: 0; -} - -div.contents { - margin-top: 10px; - margin-left: 12px; - margin-right: 8px; -} - -td.indexkey { - background-color: #EBEFF6; - font-weight: bold; - border: 1px solid #C4CFE5; - margin: 2px 0px 2px 0; - padding: 2px 10px; - white-space: nowrap; - vertical-align: top; -} - -td.indexvalue { - background-color: #EBEFF6; - border: 1px solid #C4CFE5; - padding: 2px 10px; - margin: 2px 0px; -} - -tr.memlist { - background-color: #EEF1F7; -} - -p.formulaDsp { - text-align: center; -} - -img.formulaDsp { - -} - -img.formulaInl { - vertical-align: middle; -} - -div.center { - text-align: center; - margin-top: 0px; - margin-bottom: 0px; - padding: 0px; -} - -div.center img { - border: 0px; -} - -address.footer { - text-align: right; - padding-right: 12px; -} - -img.footer { - border: 0px; - vertical-align: middle; -} - -/* @group Code Colorization */ - -span.keyword { - color: #008000 -} - -span.keywordtype { - color: #604020 -} - -span.keywordflow { - color: #e08000 -} - -span.comment { - color: #800000 -} - -span.preprocessor { - color: #806020 -} - -span.stringliteral { - color: #002080 -} - -span.charliteral { - color: #008080 -} - -span.vhdldigit { - color: #ff00ff -} - -span.vhdlchar { - color: #000000 -} - -span.vhdlkeyword { - color: #700070 -} - -span.vhdllogic { - color: #ff0000 -} - -blockquote { - background-color: #F7F8FB; - border-left: 2px solid #9CAFD4; - margin: 0 24px 0 4px; - padding: 0 12px 0 16px; -} - -/* @end */ - -/* -.search { - color: #003399; - font-weight: bold; -} - -form.search { - margin-bottom: 0px; - margin-top: 0px; -} - -input.search { - font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #e8eef2; -} -*/ - -td.tiny { - font-size: 75%; -} - -.dirtab { - padding: 4px; - border-collapse: collapse; - border: 1px solid #A3B4D7; -} - -th.dirtab { - background: #EBEFF6; - font-weight: bold; -} - -hr { - height: 0px; - border: none; - border-top: 1px solid #4A6AAA; -} - -hr.footer { - height: 1px; -} - -/* @group Member Descriptions */ - -table.memberdecls { - border-spacing: 0px; - padding: 0px; -} - -.memberdecls td, .fieldtable tr { - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; -} - -.memberdecls td.glow, .fieldtable tr.glow { - background-color: cyan; - box-shadow: 0 0 15px cyan; -} - -.mdescLeft, .mdescRight, -.memItemLeft, .memItemRight, -.memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background-color: #F9FAFC; - border: none; - margin: 4px; - padding: 1px 0 0 8px; -} - -.mdescLeft, .mdescRight { - padding: 0px 8px 4px 8px; - color: #555; -} - -.memSeparator { - border-bottom: 1px solid #DEE4F0; - line-height: 1px; - margin: 0px; - padding: 0px; -} - -.memItemLeft, .memTemplItemLeft { - white-space: nowrap; -} - -.memItemRight { - width: 100%; -} - -.memTemplParams { - color: #4665A2; - white-space: nowrap; - font-size: 80%; -} - -/* @end */ - -/* @group Member Details */ - -/* Styles for detailed member documentation */ - -.memtemplate { - font-size: 80%; - color: #4665A2; - font-weight: normal; - margin-left: 9px; -} - -.memnav { - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} - -.mempage { - width: 100%; -} - -.memitem { - padding: 0; - margin-bottom: 10px; - margin-right: 5px; - -webkit-transition: box-shadow 0.5s linear; - -moz-transition: box-shadow 0.5s linear; - -ms-transition: box-shadow 0.5s linear; - -o-transition: box-shadow 0.5s linear; - transition: box-shadow 0.5s linear; - display: table !important; - width: 100%; -} - -.memitem.glow { - box-shadow: 0 0 15px cyan; -} - -.memname { - font-weight: bold; - margin-left: 6px; -} - -.memname td { - vertical-align: bottom; -} - -.memproto, dl.reflist dt { - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 6px 0px 6px 0px; - color: #253555; - font-weight: bold; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - background-image:url('nav_f.png'); - background-repeat:repeat-x; - background-color: #E2E8F2; - /* opera specific markup */ - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - border-top-right-radius: 4px; - border-top-left-radius: 4px; - /* firefox specific markup */ - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - -moz-border-radius-topright: 4px; - -moz-border-radius-topleft: 4px; - /* webkit specific markup */ - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - -webkit-border-top-right-radius: 4px; - -webkit-border-top-left-radius: 4px; - -} - -.memdoc, dl.reflist dd { - border-bottom: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 6px 10px 2px 10px; - background-color: #FBFCFD; - border-top-width: 0; - background-image:url('nav_g.png'); - background-repeat:repeat-x; - background-color: #FFFFFF; - /* opera specific markup */ - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - /* firefox specific markup */ - -moz-border-radius-bottomleft: 4px; - -moz-border-radius-bottomright: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - /* webkit specific markup */ - -webkit-border-bottom-left-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -} - -dl.reflist dt { - padding: 5px; -} - -dl.reflist dd { - margin: 0px 0px 10px 0px; - padding: 5px; -} - -.paramkey { - text-align: right; -} - -.paramtype { - white-space: nowrap; -} - -.paramname { - color: #602020; - white-space: nowrap; -} -.paramname em { - font-style: normal; -} -.paramname code { - line-height: 14px; -} - -.params, .retval, .exception, .tparams { - margin-left: 0px; - padding-left: 0px; -} - -.params .paramname, .retval .paramname { - font-weight: bold; - vertical-align: top; -} - -.params .paramtype { - font-style: italic; - vertical-align: top; -} - -.params .paramdir { - font-family: "courier new",courier,monospace; - vertical-align: top; -} - -table.mlabels { - border-spacing: 0px; -} - -td.mlabels-left { - width: 100%; - padding: 0px; -} - -td.mlabels-right { - vertical-align: bottom; - padding: 0px; - white-space: nowrap; -} - -span.mlabels { - margin-left: 8px; -} - -span.mlabel { - background-color: #728DC1; - border-top:1px solid #5373B4; - border-left:1px solid #5373B4; - border-right:1px solid #C4CFE5; - border-bottom:1px solid #C4CFE5; - text-shadow: none; - color: white; - margin-right: 4px; - padding: 2px 3px; - border-radius: 3px; - font-size: 7pt; - white-space: nowrap; - vertical-align: middle; -} - - - -/* @end */ - -/* these are for tree view when not used as main index */ - -div.directory { - margin: 10px 0px; - border-top: 1px solid #A8B8D9; - border-bottom: 1px solid #A8B8D9; - width: 100%; -} - -.directory table { - border-collapse:collapse; -} - -.directory td { - margin: 0px; - padding: 0px; - vertical-align: top; -} - -.directory td.entry { - white-space: nowrap; - padding-right: 6px; - padding-top: 3px; -} - -.directory td.entry a { - outline:none; -} - -.directory td.entry a img { - border: none; -} - -.directory td.desc { - width: 100%; - padding-left: 6px; - padding-right: 6px; - padding-top: 3px; - border-left: 1px solid rgba(0,0,0,0.05); -} - -.directory tr.even { - padding-left: 6px; - background-color: #F7F8FB; -} - -.directory img { - vertical-align: -30%; -} - -.directory .levels { - white-space: nowrap; - width: 100%; - text-align: right; - font-size: 9pt; -} - -.directory .levels span { - cursor: pointer; - padding-left: 2px; - padding-right: 2px; - color: #3D578C; -} - -div.dynheader { - margin-top: 8px; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -address { - font-style: normal; - color: #2A3D61; -} - -table.doxtable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.doxtable td, table.doxtable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -table.doxtable th { - background-color: #374F7F; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; -} - -table.fieldtable { - /*width: 100%;*/ - margin-bottom: 10px; - border: 1px solid #A8B8D9; - border-spacing: 0px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); - box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); -} - -.fieldtable td, .fieldtable th { - padding: 3px 7px 2px; -} - -.fieldtable td.fieldtype, .fieldtable td.fieldname { - white-space: nowrap; - border-right: 1px solid #A8B8D9; - border-bottom: 1px solid #A8B8D9; - vertical-align: top; -} - -.fieldtable td.fieldname { - padding-top: 3px; -} - -.fieldtable td.fielddoc { - border-bottom: 1px solid #A8B8D9; - /*width: 100%;*/ -} - -.fieldtable td.fielddoc p:first-child { - margin-top: 0px; -} - -.fieldtable td.fielddoc p:last-child { - margin-bottom: 2px; -} - -.fieldtable tr:last-child td { - border-bottom: none; -} - -.fieldtable th { - background-image:url('nav_f.png'); - background-repeat:repeat-x; - background-color: #E2E8F2; - font-size: 90%; - color: #253555; - padding-bottom: 4px; - padding-top: 5px; - text-align:left; - -moz-border-radius-topleft: 4px; - -moz-border-radius-topright: 4px; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom: 1px solid #A8B8D9; -} - - -.tabsearch { - top: 0px; - left: 10px; - height: 36px; - background-image: url('tab_b.png'); - z-index: 101; - overflow: hidden; - font-size: 13px; -} - -.navpath ul -{ - font-size: 11px; - background-image:url('tab_b.png'); - background-repeat:repeat-x; - background-position: 0 -5px; - height:30px; - line-height:30px; - color:#8AA0CC; - border:solid 1px #C2CDE4; - overflow:hidden; - margin:0px; - padding:0px; -} - -.navpath li -{ - list-style-type:none; - float:left; - padding-left:10px; - padding-right:15px; - background-image:url('bc_s.png'); - background-repeat:no-repeat; - background-position:right; - color:#364D7C; -} - -.navpath li.navelem a -{ - height:32px; - display:block; - text-decoration: none; - outline: none; - color: #283A5D; - font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - text-decoration: none; -} - -.navpath li.navelem a:hover -{ - color:#6884BD; -} - -.navpath li.footer -{ - list-style-type:none; - float:right; - padding-left:10px; - padding-right:15px; - background-image:none; - background-repeat:no-repeat; - background-position:right; - color:#364D7C; - font-size: 8pt; -} - - -div.summary -{ - float: right; - font-size: 8pt; - padding-right: 5px; - width: 50%; - text-align: right; -} - -div.summary a -{ - white-space: nowrap; -} - -div.ingroups -{ - font-size: 8pt; - width: 50%; - text-align: left; -} - -div.ingroups a -{ - white-space: nowrap; -} - -div.header -{ - background-image:url('nav_h.png'); - background-repeat:repeat-x; - background-color: #F9FAFC; - margin: 0px; - border-bottom: 1px solid #C4CFE5; -} - -div.headertitle -{ - padding: 5px 5px 5px 10px; -} - -dl -{ - padding: 0 0 0 10px; -} - -/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ -dl.section -{ - margin-left: 0px; - padding-left: 0px; -} - -dl.note -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #D0C000; -} - -dl.warning, dl.attention -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #FF0000; -} - -dl.pre, dl.post, dl.invariant -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #00D000; -} - -dl.deprecated -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #505050; -} - -dl.todo -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #00C0E0; -} - -dl.test -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #3030E0; -} - -dl.bug -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #C08050; -} - -dl.section dd { - margin-bottom: 6px; -} - - -#projectlogo -{ - text-align: center; - vertical-align: bottom; - border-collapse: separate; -} - -#projectlogo img -{ - border: 0px none; -} - -#projectname -{ - font: 300% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 2px 0px; -} - -#projectbrief -{ - font: 120% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; -} - -#projectnumber -{ - font: 50% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; -} - -#titlearea -{ - padding: 0px; - margin: 0px; - width: 100%; - border-bottom: 1px solid #5373B4; -} - -.image -{ - text-align: center; -} - -.dotgraph -{ - text-align: center; -} - -.mscgraph -{ - text-align: center; -} - -.caption -{ - font-weight: bold; -} - -div.zoom -{ - border: 1px solid #90A5CE; -} - -dl.citelist { - margin-bottom:50px; -} - -dl.citelist dt { - color:#334975; - float:left; - font-weight:bold; - margin-right:10px; - padding:5px; -} - -dl.citelist dd { - margin:2px 0; - padding:5px 0; -} - -div.toc { - padding: 14px 25px; - background-color: #F4F6FA; - border: 1px solid #D8DFEE; - border-radius: 7px 7px 7px 7px; - float: right; - height: auto; - margin: 0 20px 10px 10px; - width: 200px; -} - -div.toc li { - background: url("bdwn.png") no-repeat scroll 0 5px transparent; - font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; - margin-top: 5px; - padding-left: 10px; - padding-top: 2px; -} - -div.toc h3 { - font: bold 12px/1.2 Arial,FreeSans,sans-serif; - color: #4665A2; - border-bottom: 0 none; - margin: 0; -} - -div.toc ul { - list-style: none outside none; - border: medium none; - padding: 0px; -} - -div.toc li.level1 { - margin-left: 0px; -} - -div.toc li.level2 { - margin-left: 15px; -} - -div.toc li.level3 { - margin-left: 30px; -} - -div.toc li.level4 { - margin-left: 45px; -} - -.inherit_header { - font-weight: bold; - color: gray; - cursor: pointer; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.inherit_header td { - padding: 6px 0px 2px 5px; -} - -.inherit { - display: none; -} - -tr.heading h2 { - margin-top: 12px; - margin-bottom: 4px; -} - -@media print -{ - #top { display: none; } - #side-nav { display: none; } - #nav-path { display: none; } - body { overflow:visible; } - h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } - .summary { display: none; } - .memitem { page-break-inside: avoid; } - #doc-content - { - margin-left:0 !important; - height:auto !important; - width:auto !important; - overflow:inherit; - display:inline; - } -} - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/doxygen.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/doxygen.png deleted file mode 100644 index 3ff17d807..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/doxygen.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/dynsections.js b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/dynsections.js deleted file mode 100644 index ed092c7f6..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/dynsections.js +++ /dev/null @@ -1,97 +0,0 @@ -function toggleVisibility(linkObj) -{ - var base = $(linkObj).attr('id'); - var summary = $('#'+base+'-summary'); - var content = $('#'+base+'-content'); - var trigger = $('#'+base+'-trigger'); - var src=$(trigger).attr('src'); - if (content.is(':visible')===true) { - content.hide(); - summary.show(); - $(linkObj).addClass('closed').removeClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); - } else { - content.show(); - summary.hide(); - $(linkObj).removeClass('closed').addClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); - } - return false; -} - -function updateStripes() -{ - $('table.directory tr'). - removeClass('even').filter(':visible:even').addClass('even'); -} -function toggleLevel(level) -{ - $('table.directory tr').each(function(){ - var l = this.id.split('_').length-1; - var i = $('#img'+this.id.substring(3)); - var a = $('#arr'+this.id.substring(3)); - if (l - - - - - -File List - - - - - - - -
-
-
File List
-
-
-
Here is a list of all documented files with brief descriptions:
- - - - -
o*flow_graph.hThe graph related classes and functions
o*memory_pool.h
\*scalable_allocator.h
-
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2blank.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2blank.png deleted file mode 100644 index 63c605bb4..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2blank.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2cl.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2cl.png deleted file mode 100644 index 132f6577b..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2cl.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2doc.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2doc.png deleted file mode 100644 index 17edabff9..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2doc.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2folderclosed.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2folderclosed.png deleted file mode 100644 index bb8ab35ed..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2folderclosed.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2folderopen.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2folderopen.png deleted file mode 100644 index d6c7f676a..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2folderopen.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2lastnode.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2lastnode.png deleted file mode 100644 index 63c605bb4..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2lastnode.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2link.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2link.png deleted file mode 100644 index 17edabff9..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2link.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2mlastnode.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2mlastnode.png deleted file mode 100644 index 0b63f6d38..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2mlastnode.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2mnode.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2mnode.png deleted file mode 100644 index 0b63f6d38..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2mnode.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2mo.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2mo.png deleted file mode 100644 index 4bfb80f76..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2mo.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2node.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2node.png deleted file mode 100644 index 63c605bb4..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2node.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2ns.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2ns.png deleted file mode 100644 index 72e3d71c2..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2ns.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2plastnode.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2plastnode.png deleted file mode 100644 index c6ee22f93..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2plastnode.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2pnode.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2pnode.png deleted file mode 100644 index c6ee22f93..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2pnode.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2splitbar.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2splitbar.png deleted file mode 100644 index fe895f2c5..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2splitbar.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2vertline.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2vertline.png deleted file mode 100644 index 63c605bb4..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/ftv2vertline.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions.html deleted file mode 100644 index 853f898b8..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - -Class Members - - - - - - -
- - - - - - -
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x62.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x62.html deleted file mode 100644 index 2416922e6..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x62.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - -Class Members - - - - - - -
- - - - - - -
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x63.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x63.html deleted file mode 100644 index b148f501a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x63.html +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - -Class Members - - - - - - -
- - - - - - -
-
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- c -

-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x64.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x64.html deleted file mode 100644 index 1a936703e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x64.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - -Class Members - - - - - - -
- - - - - - -
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x65.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x65.html deleted file mode 100644 index 0e72ba290..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x65.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - -Class Members - - - - - - -
- - - - - - -
-
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- e -

-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x66.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x66.html deleted file mode 100644 index 43221699b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x66.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - -Class Members - - - - - - -
- - - - - - -
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x67.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x67.html deleted file mode 100644 index 1754dc379..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x67.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - -Class Members - - - - - - -
- - - - - - -
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x68.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x68.html deleted file mode 100644 index 40a0ac61e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x68.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - -Class Members - - - - - - -
- - - - - - -
-
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- h -

-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x69.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x69.html deleted file mode 100644 index f9efc98bb..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x69.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - -Class Members - - - - - - -
- - - - - - -
-
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- i -

-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x6a.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x6a.html deleted file mode 100644 index d55b423b7..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x6a.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - -Class Members - - - - - - -
- - - - - - -
-
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- j -

-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x6c.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x6c.html deleted file mode 100644 index e83569074..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x6c.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - -Class Members - - - - - - -
- - - - - - -
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x6d.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x6d.html deleted file mode 100644 index fd0a4e883..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x6d.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - -Class Members - - - - - - -
- - - - - - -
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x6e.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x6e.html deleted file mode 100644 index c0e6cd577..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x6e.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - -Class Members - - - - - - -
- - - - - - -
-
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- n -

-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x6f.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x6f.html deleted file mode 100644 index 49c8f6968..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x6f.html +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - -Class Members - - - - - - -
- - - - - - -
-
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- o -

-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x70.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x70.html deleted file mode 100644 index 194569aa2..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x70.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - -Class Members - - - - - - -
- - - - - - -
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x71.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x71.html deleted file mode 100644 index 597059db5..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x71.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - -Class Members - - - - - - -
- - - - - - -
-
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- q -

-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x72.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x72.html deleted file mode 100644 index 6d53c2e58..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x72.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - -Class Members - - - - - - -
- - - - - - -
-
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- r -

-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x73.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x73.html deleted file mode 100644 index d650850a9..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x73.html +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - -Class Members - - - - - - -
- - - - - - -
-
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- s -

-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x74.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x74.html deleted file mode 100644 index b67781919..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x74.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - -Class Members - - - - - - -
- - - - - - -
-
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- t -

-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x75.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x75.html deleted file mode 100644 index e48ab91e3..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x75.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - -Class Members - - - - - - -
- - - - - - -
-
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- u -

-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x76.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x76.html deleted file mode 100644 index 55906fae4..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x76.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - -Class Members - - - - - - -
- - - - - - -
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x77.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x77.html deleted file mode 100644 index 98ecf2495..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x77.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - -Class Members - - - - - - -
- - - - - - -
-
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- w -

-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x7e.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x7e.html deleted file mode 100644 index ffa1ba0de..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_0x7e.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - -Class Members - - - - - - -
- - - - - - -
-
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- ~ -

-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_enum.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_enum.html deleted file mode 100644 index eb8dcb343..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_enum.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - -Class Members - Enumerations - - - - - - - - -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_eval.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_eval.html deleted file mode 100644 index c47db9850..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_eval.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - -Class Members - Enumerator - - - - - - - - -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func.html deleted file mode 100644 index 7610e8f5a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - -Class Members - Functions - - - - - - -
- - - - - - -
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x62.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x62.html deleted file mode 100644 index 55db08859..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x62.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - -Class Members - Functions - - - - - - -
- - - - - - -
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x63.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x63.html deleted file mode 100644 index 453554f43..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x63.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - -Class Members - Functions - - - - - - -
- - - - - - -
-
-  - -

- c -

-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x64.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x64.html deleted file mode 100644 index b8bc8b515..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x64.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - -Class Members - Functions - - - - - - -
- - - - - - -
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x65.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x65.html deleted file mode 100644 index 9f908fc33..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x65.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - -Class Members - Functions - - - - - - -
- - - - - - -
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x66.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x66.html deleted file mode 100644 index 2e497632d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x66.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - -Class Members - Functions - - - - - - -
- - - - - - -
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x67.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x67.html deleted file mode 100644 index f47595dcc..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x67.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - -Class Members - Functions - - - - - - -
- - - - - - -
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x68.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x68.html deleted file mode 100644 index 7e66c8036..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x68.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - -Class Members - Functions - - - - - - -
- - - - - - -
-
-  - -

- h -

-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x69.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x69.html deleted file mode 100644 index cf6f5c8f6..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x69.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - -Class Members - Functions - - - - - - -
- - - - - - -
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x6a.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x6a.html deleted file mode 100644 index f365701db..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x6a.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - -Class Members - Functions - - - - - - -
- - - - - - -
-
-  - -

- j -

-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x6c.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x6c.html deleted file mode 100644 index 13493f679..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x6c.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - -Class Members - Functions - - - - - - -
- - - - - - -
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x6d.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x6d.html deleted file mode 100644 index 19aba00bf..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x6d.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - -Class Members - Functions - - - - - - -
- - - - - - -
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x6e.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x6e.html deleted file mode 100644 index 824262259..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x6e.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - -Class Members - Functions - - - - - - -
- - - - - - -
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x6f.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x6f.html deleted file mode 100644 index 952aa9553..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x6f.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - -Class Members - Functions - - - - - - -
- - - - - - -
-
-  - -

- o -

-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x70.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x70.html deleted file mode 100644 index 6e9eef10d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x70.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - -Class Members - Functions - - - - - - -
- - - - - - -
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x71.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x71.html deleted file mode 100644 index 176996405..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x71.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - -Class Members - Functions - - - - - - -
- - - - - - -
-
-  - -

- q -

-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x72.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x72.html deleted file mode 100644 index 8f5cf37ca..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x72.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - -Class Members - Functions - - - - - - -
- - - - - - -
-
-  - -

- r -

-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x73.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x73.html deleted file mode 100644 index 2f2740252..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x73.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - -Class Members - Functions - - - - - - -
- - - - - - -
-
-  - -

- s -

-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x74.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x74.html deleted file mode 100644 index 5875a17db..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x74.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - -Class Members - Functions - - - - - - -
- - - - - - -
-
-  - -

- t -

-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x75.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x75.html deleted file mode 100644 index d348db6e2..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x75.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - -Class Members - Functions - - - - - - -
- - - - - - -
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x77.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x77.html deleted file mode 100644 index 82b29d8ac..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x77.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - -Class Members - Functions - - - - - - -
- - - - - - -
- -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x7e.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x7e.html deleted file mode 100644 index 9efbbaad2..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_func_0x7e.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - -Class Members - Functions - - - - - - -
- - - - - - -
-
-  - -

- ~ -

-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_rela.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_rela.html deleted file mode 100644 index 17184d518..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_rela.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - -Class Members - Related Functions - - - - - - - - -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_type.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_type.html deleted file mode 100644 index 0b88ecb3e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_type.html +++ /dev/null @@ -1,175 +0,0 @@ - - - - - - -Class Members - Typedefs - - - - - - -
- - - - - - -
-
-  - -

- a -

- - -

- c -

- - -

- d -

- - -

- i -

- - -

- n -

- - -

- o -

- - -

- p -

- - -

- r -

- - -

- s -

- - -

- v -

-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_vars.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_vars.html deleted file mode 100644 index 24488b71c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/functions_vars.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - -Class Members - Variables - - - - - - - -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/globals.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/globals.html deleted file mode 100644 index 960b69583..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/globals.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - -File Members - - - - - - -
- - - - - -
-
-
Here is a list of all documented file members with links to the documentation:
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/globals_func.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/globals_func.html deleted file mode 100644 index 89d5fea9b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/globals_func.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - -File Members - - - - - - -
- - - - - -
-
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/hierarchy.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/hierarchy.html deleted file mode 100644 index dbaf3c4c2..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/hierarchy.html +++ /dev/null @@ -1,279 +0,0 @@ - - - - - - -Class Hierarchy - - - - - - - -
-
-
Class Hierarchy
-
-
-
This inheritance list is sorted roughly, but not completely, alphabetically:
-
[detail level 12345]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
oC__TBB_malloc_proxy_caller
oCaggregated_operation
oCtbb::interface6::aggregator_operation
oCtbb::aligned_space< T, N >Block of space aligned sufficiently to construct an array T with N elements
oCAllocator
oCallocator_base
oCatomic_impl
oCbad_alloc
oCtbb::interface6::internal::basic_handler
oCbinary_function
oCtbb::blocked_range< Value >A range over which to iterate
oCtbb::blocked_range2d< RowValue, ColValue >A 2-dimensional range that models the Range concept
oCtbb::blocked_range3d< PageValue, RowValue, ColValue >A 3-dimensional range that models the Range concept
oCtbb::blocked_range< ColValue >
oCtbb::blocked_range< I >
oCtbb::blocked_range< PageValue >
oCtbb::blocked_range< RowValue >
oCtbb::flow::interface7::internal::broadcast_cache< T, M >
oCtbb::flow::interface7::internal::broadcast_cache< output_type >
oCtbb::flow::interface7::internal::broadcast_cache< T >
oCtbb::flow::interface7::internal::broadcast_cache< T, tbb::null_rw_mutex >
oCtbb::cache_aligned_allocator< T >Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5
oCtbb::cache_aligned_allocator< void >Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1
oCtbb::combinable< T >Thread-local storage with optional reduction
oCtbb::interface6::internal::concrete_filter< T, U, Body >
oCtbb::interface5::concurrent_priority_queue< T, Compare, A >Concurrent priority queue
oCconcurrent_queue_base_v3
oCconcurrent_unordered_base
oCtbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >
oCtbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >
oCconcurrent_vector_base
oCcontinue_input
oCtbb::flow::interface7::continue_msgAn empty class used for messages that mean "I'm done"
oCets_base
oCexception
oCtbb::interface6::filter_t< T, U >Class representing a chain of type-safe pipeline filters
oCtbb::final_scan_tagUsed to indicate that the final scan is being performed
oCtbb::interface6::flattened2d< Container >
oCtbb::interface6::flow_controlInput_filter control to signal end-of-input for parallel_pipeline
oCfunction_input
oCfunction_output
oCtbb::flow::interface7::graph_iterator< GraphContainerType, GraphNodeType >
oChash_map_base
oCtbb::internal::tbb_thread_v3::id
oCtbb::tick_count::interval_tRelative time interval
oCtbb::flow::interface7::join_node< OutputTuple, JP >
oCtbb::interface6::memory_pool_allocator< T, P >Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5
oCtbb::interface6::memory_pool_allocator< void, P >Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1
oCrml::MemPoolPolicy
oCmultifunction_input
oCtbb::mutexWrapper around the platform's native reader-writer lock
oCno_assign
oCno_assign
oCno_copy
oCnode_base
oCtbb::null_mutexA mutex which does nothing
oCtbb::null_rw_mutexA rw mutex which does nothing
oCtbb::pipelineA processing pipeline that applies filters to items
oCpool_base
oCtbb::pre_scan_tagUsed to indicate that the initial scan is being performed
oCtbb::queuing_mutexQueuing mutex with local-only spinning
oCtbb::queuing_rw_mutexQueuing reader-writer mutex with local-only spinning
oCtbb::cache_aligned_allocator< void >::rebind< U >
oCtbb::scalable_allocator< void >::rebind< U >
oCtbb::tbb_allocator< T >::rebind< U >
oCtbb::tbb_allocator< void >::rebind< U >
oCtbb::zero_allocator< T, Allocator >::rebind< U >
oCtbb::interface6::memory_pool_allocator< T, P >::rebind< U >
oCtbb::interface6::memory_pool_allocator< void, P >::rebind< U >
oCtbb::zero_allocator< void, Allocator >::rebind< U >
oCtbb::cache_aligned_allocator< T >::rebind< U >
oCtbb::scalable_allocator< T >::rebind< U >
oCtbb::flow::interface7::receiver< T >Pure virtual template class that defines a receiver of messages of type T
oCtbb::flow::interface7::receiver< continue_msg >
oCtbb::recursive_mutex
oCreservable_item_buffer
oCtbb::flow::interface7::internal::round_robin_cache< T, M >
oCtbb::flow::interface7::internal::round_robin_cache< T, tbb::null_rw_mutex >
oCtbb::flow::interface7::run_and_put_task< R, B >
oCtbb::scalable_allocator< T >Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5
oCtbb::scalable_allocator< void >Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1
oCtbb::null_mutex::scoped_lockRepresents acquisition of a mutex
oCtbb::null_rw_mutex::scoped_lockRepresents acquisition of a mutex
oCscoped_t
oCscoped_t
oCtbb::flow::interface7::sender< T >Pure virtual template class that defines a sender of messages of type T
oCtbb::flow::interface7::sender< Output >
oCtbb::spin_mutexA lock that occupies a single byte
oCtbb::spin_rw_mutex_v3Fast, unfair, spinning reader-writer lock with backoff and writer-preference
oCtbb::splitDummy type that distinguishes splitting constructor from copy constructor
oCtbb::internal::STATIC_ASSERTION_FAILED< condition >
oCtbb::internal::STATIC_ASSERTION_FAILED< false >
oCtbb::flow::interface7::internal::successor_cache< T, M >
oCtask
oCtask_arena_base
oCtbb::task_group_context
oCtbb::internal::task_scheduler_observer_v3
oCtbb::tbb_allocator< T >Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5
oCtbb::tbb_allocator< void >Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1
oCtbb::internal::tbb_exception_ptrException container that preserves the exact copy of the original exception
oCtbb::tbb_hash_compare< Key >Hash_compare that is default argument for concurrent_hash_map
oCtbb::internal::tbb_thread_v3Versioned thread class
oCtbb::internal::thread_closure_base
oCtbb::tick_countAbsolute timestamp
oCunfolded_join_node
oCunfolded_or_node
\Ctbb::vector_iterator< Container, Value >
-
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/index.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/index.html deleted file mode 100644 index 9b291e248..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/index.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - -Main Page - - - - - - - -
-
-
Main Page
-
-
-

Click the tabs above for information about the

-
    -
  • Modules (groups of functionality) implemented by the library
  • -
  • Classes provided by the library
  • -
  • Files constituting the library.
  • -
-

Please note that significant part of TBB functionality is implemented in the form of template functions, descriptions of which are not accessible on the Classes tab. Use Modules or Namespace/Namespace Members tabs to find them.

-

Additional pieces of information can be found here

- -
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/jquery.js b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/jquery.js deleted file mode 100644 index c197801c5..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/jquery.js +++ /dev/null @@ -1,31 +0,0 @@ -/*! - * jQuery JavaScript Library v1.7.1 - * http://jquery.com/ - * - * Copyright 2011, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Mon Nov 21 21:11:03 2011 -0500 - */ -(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
a";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
t
";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType; -if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bCbA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); -/*! - * Sizzle CSS Selector Engine - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * More information: http://sizzlejs.com/ - */ -(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1 -},lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},ac=a(av); -ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
","
"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1>");try{for(var bw=0,bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length; -if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b -})}})(window); diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/modules.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/modules.html deleted file mode 100644 index 5cd5b8f63..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/modules.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - -Modules - - - - - - - -
-
-
Modules
-
-
-
Here is a list of all modules:
-
- - - - - - -
oAlgorithms
oContainers
oMemory Allocation
oSynchronization
oTiming
\Task Scheduling
- - -
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/namespacemembers.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/namespacemembers.html deleted file mode 100644 index 35d906a51..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/namespacemembers.html +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - -Namespace Members - - - - - - -
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- _ -

    -
  • __TBB_DECL_ATOMIC_ALT() -: tbb -
  • -
- - -

- a -

    -
  • acquire -: tbb -
  • -
- - -

- e -

    -
  • ets_key_usage_type -: tbb -
  • -
- - -

- f -

    -
  • full_fence -: tbb -
  • -
- - -

- m -

    -
  • memory_semantics -: tbb -
  • -
- - -

- p -

    -
  • parallel_deterministic_reduce() -: tbb -
  • -
  • parallel_do() -: tbb -
  • -
  • parallel_for() -: tbb -
  • -
  • parallel_for_each() -: tbb -
  • -
  • parallel_invoke() -: tbb -
  • -
  • parallel_reduce() -: tbb -
  • -
  • parallel_scan() -: tbb -
  • -
  • parallel_sort() -: tbb -
  • -
- - -

- r -

    -
  • relaxed -: tbb -
  • -
  • release -: tbb -
  • -
- - -

- s -

    -
  • speculative_spin_mutex -: tbb -
  • -
- - -

- t -

    -
  • TBB_runtime_interface_version() -: tbb -
  • -
  • tbb_thread -: tbb -
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/namespacemembers_enum.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/namespacemembers_enum.html deleted file mode 100644 index 815a483a1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/namespacemembers_enum.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - -Namespace Members - - - - - - - -
    -
  • ets_key_usage_type -: tbb -
  • -
  • memory_semantics -: tbb -
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/namespacemembers_eval.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/namespacemembers_eval.html deleted file mode 100644 index 6d25b9bb6..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/namespacemembers_eval.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - -Namespace Members - - - - - - - -
    -
  • acquire -: tbb -
  • -
  • full_fence -: tbb -
  • -
  • relaxed -: tbb -
  • -
  • release -: tbb -
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/namespacemembers_func.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/namespacemembers_func.html deleted file mode 100644 index 79c29e216..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/namespacemembers_func.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - -Namespace Members - - - - - - - -
-  - -

- _ -

    -
  • __TBB_DECL_ATOMIC_ALT() -: tbb -
  • -
- - -

- p -

    -
  • parallel_deterministic_reduce() -: tbb -
  • -
  • parallel_do() -: tbb -
  • -
  • parallel_for() -: tbb -
  • -
  • parallel_for_each() -: tbb -
  • -
  • parallel_invoke() -: tbb -
  • -
  • parallel_reduce() -: tbb -
  • -
  • parallel_scan() -: tbb -
  • -
  • parallel_sort() -: tbb -
  • -
- - -

- t -

    -
  • TBB_runtime_interface_version() -: tbb -
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/namespacemembers_type.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/namespacemembers_type.html deleted file mode 100644 index 372082403..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/namespacemembers_type.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - -Namespace Members - - - - - - - -
    -
  • speculative_spin_mutex -: tbb -
  • -
  • tbb_thread -: tbb -
  • -
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/namespaces.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/namespaces.html deleted file mode 100644 index 1ee7607d0..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/namespaces.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - -Namespace List - - - - - - - -
-
-
Namespace List
-
-
-
Here is a list of all documented namespaces with brief descriptions:
- - - -
oNrmlThe namespace rml contains components of low-level memory pool interface
\NtbbThe namespace tbb contains all components of the library
-
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/nav_f.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/nav_f.png deleted file mode 100644 index 72a58a529..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/nav_f.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/nav_g.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/nav_g.png deleted file mode 100644 index 2093a237a..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/nav_g.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/nav_h.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/nav_h.png deleted file mode 100644 index 33389b101..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/nav_h.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/open.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/open.png deleted file mode 100644 index 30f75c7ef..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/open.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/pages.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/pages.html deleted file mode 100644 index f59a0caa8..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/pages.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - -Related Pages - - - - - - - -
-
-
Related Pages
-
-
-
Here is a list of all related documentation pages:
-
-
-

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/sync_off.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/sync_off.png deleted file mode 100644 index 3b443fc62..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/sync_off.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/sync_on.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/sync_on.png deleted file mode 100644 index e08320fb6..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/sync_on.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/tab_a.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/tab_a.png deleted file mode 100644 index 3b725c41c..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/tab_a.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/tab_b.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/tab_b.png deleted file mode 100644 index e2b4a8638..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/tab_b.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/tab_h.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/tab_h.png deleted file mode 100644 index fd5cb7054..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/tab_h.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/tab_s.png b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/tab_s.png deleted file mode 100644 index ab478c95b..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/tab_s.png and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/tabs.css b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/tabs.css deleted file mode 100644 index 9cf578f23..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/doc/html/tabs.css +++ /dev/null @@ -1,60 +0,0 @@ -.tabs, .tabs2, .tabs3 { - background-image: url('tab_b.png'); - width: 100%; - z-index: 101; - font-size: 13px; - font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; -} - -.tabs2 { - font-size: 10px; -} -.tabs3 { - font-size: 9px; -} - -.tablist { - margin: 0; - padding: 0; - display: table; -} - -.tablist li { - float: left; - display: table-cell; - background-image: url('tab_b.png'); - line-height: 36px; - list-style: none; -} - -.tablist a { - display: block; - padding: 0 20px; - font-weight: bold; - background-image:url('tab_s.png'); - background-repeat:no-repeat; - background-position:right; - color: #283A5D; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - text-decoration: none; - outline: none; -} - -.tabs3 .tablist a { - padding: 0 10px; -} - -.tablist a:hover { - background-image: url('tab_h.png'); - background-repeat:repeat-x; - color: #fff; - text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); - text-decoration: none; -} - -.tablist li.current a { - background-image: url('tab_a.png'); - background-repeat:repeat-x; - color: #fff; - text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/index.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/index.html deleted file mode 100644 index 3cad871cf..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/index.html +++ /dev/null @@ -1,24 +0,0 @@ - - - -

Overview

-This directory contains the examples referenced by the Intel® Threading Building Blocks Getting Started Guide. - -

Directories

-
-
sub_string_finder -
Finds largest matching substrings. -
- -
-Up to parent directory -

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/Makefile b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/Makefile deleted file mode 100644 index d286010de..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/Makefile +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright 2005-2014 Intel Corporation. All Rights Reserved. -# -# This file is part of Threading Building Blocks. -# -# Threading Building Blocks is free software; you can redistribute it -# and/or modify it under the terms of the GNU General Public License -# version 2 as published by the Free Software Foundation. -# -# Threading Building Blocks is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied warranty -# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Threading Building Blocks; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# -# As a special exception, you may use this file as part of a free software -# library without restriction. Specifically, if other files instantiate -# templates or use macros or inline functions from this file, or you compile -# this file and link it with other files to produce an executable, this -# file does not by itself cause the resulting executable to be covered by -# the GNU General Public License. This exception does not however -# invalidate any other reasons why the executable file might be covered by -# the GNU General Public License. - -# Common Makefile that builds and runs examples. -PROG=sub_string_finder_extended -ARGS= -LIGHT_PROG=sub_string_finder - -# The C++ compiler options -# Trying to find if icl.exe is set -CXX1 = $(TBB_CXX)- -CXX2 = $(CXX1:icl.exe-=icl.exe) -CXX = $(CXX2:-=cl.exe) - -MYCXXFLAGS = /TP /EHsc /W3 /nologo /D _CONSOLE /D _MBCS /D WIN32 $(CXXFLAGS) -MYLDFLAGS =/INCREMENTAL:NO /NOLOGO /DEBUG /FIXED:NO $(LDFLAGS) - -all: release test -release: compiler_check - $(CXX) sub_string_finder.cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib $(LIBS) $(MYLDFLAGS) /OUT:sub_string_finder.exe - $(CXX) sub_string_finder_extended.cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib $(LIBS) $(MYLDFLAGS) /OUT:sub_string_finder_extended.exe - $(CXX) sub_string_finder_pretty.cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib $(LIBS) $(MYLDFLAGS) /OUT:sub_string_finder_pretty.exe -debug: compiler_check - $(CXX) sub_string_finder.cpp /MDd /Od /Zi /D TBB_USE_DEBUG /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib $(LIBS) $(MYLDFLAGS) /OUT:sub_string_finder.exe - $(CXX) sub_string_finder_extended.cpp /MDd /Od /Zi /D TBB_USE_DEBUG /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib $(LIBS) $(MYLDFLAGS) /OUT:sub_string_finder_extended.exe - $(CXX) sub_string_finder_pretty.cpp /MDd /Od /Zi /D TBB_USE_DEBUG /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib $(LIBS) $(MYLDFLAGS) /OUT:sub_string_finder_pretty.exe -clean: - @cmd.exe /C del sub_string_finder*.exe *.obj *.?db *.manifest -test: - $(PROG) $(ARGS) -light_test: - $(LIGHT_PROG) $(ARGS) -compiler_check: - @echo compiler_test>compiler_test && @$(CXX) /E compiler_test >nul 2>&1 || echo "$(CXX) command not found. Check if CXX=$(CXX) is set properly" - @cmd.exe /C del compiler_test diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/index.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/index.html deleted file mode 100644 index 2e4594ba7..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/index.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -

Overview

-
-
A simple example that uses the parallel_for template in a substring matching program. For each position -in a string, the program displays the length of the largest matching substring elsewhere in the string. -The program also displays the location of a largest match for each position. Consider the string "babba" -as an example. Starting at position 0, "ba" is the largest substring with a match elsewhere in the -string (position 3). -
The code located in the sub_string_finder_extended.cpp file -demonstrates offload programming for Intel® Many Integrated Core (Intel® MIC) Architecture (see build instructions). -
- -

Files

-
-
sub_string_finder.cpp -
The example as it appears in the Getting Started Guide. -
sub_string_finder_extended.cpp -
An example similar to the one in the Getting Started Guide, but with an added sequential - implementation, and with an offload region added that can be executed on Intel® MIC Architecture based coprocessor. - The three implementations are timed, by using tick_count, - and the speedup of the parallel version and - the speedup of the parallel version and, if applicable, the offload version is calculated and displayed. -
sub_string_finder_pretty.cpp -
An example similar to the one in the Getting Started Guide, but with more attractive printing of the results. -
Makefile -
Makefile for building example. -
- -

Directories

-
-
msvs -
Contains Microsoft* Visual Studio* 2005 workspace for building and running the example (Windows* systems only). -
xcode -
Contains Xcode* IDE workspace for building and running the example (OS X* systems only). -
- -

To Build

-General build directions can be found here. - -

Usage

-
-
sub_string_finder -
Runs the example as it appears in the Getting Started Guide. -
sub_string_finder_pretty -
Runs the similar example with more attractive printing of the results. -
sub_string_finder_extended -
Runs the example extended with a sequential implementation and an offload region that can be executed on Intel® MIC Architecture based coprocessor. -
To run a short version of this example, e.g., for use with Intel® Threading Tools: -
Build a debug version of the sub_string_finder_pretty example - (see the build directions). -
Run it, e.g., sub_string_finder_pretty. -
- -
-Up to parent directory -

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder.icproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder.icproj deleted file mode 100644 index 72c929ff7..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder.icproj +++ /dev/null @@ -1,11 +0,0 @@ - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder.vcproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder.vcproj deleted file mode 100644 index 3b2ad4d9b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder.vcproj +++ /dev/null @@ -1,352 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder_cl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder_cl.sln deleted file mode 100644 index fc96ac147..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder_cl.sln +++ /dev/null @@ -1,50 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sub_string_finder", "sub_string_finder.vcproj", "{3AA40693-F93D-4D4B-B32E-068F511A2525}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sub_string_finder_extended", "sub_string_finder_extended.vcproj", "{3AA40693-F93D-4D4B-B32E-068F511A2526}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sub_string_finder_pretty", "sub_string_finder_pretty.vcproj", "{3AA40693-F93D-4D4B-B32E-068F511A2524}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{A26B588D-97F7-4466-9672-8A7E3173FBA1}" - ProjectSection(SolutionItems) = preProject - ..\index.html = ..\index.html - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3AA40693-F93D-4D4B-B32E-068F511A2525}.Debug|Win32.ActiveCfg = Debug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2525}.Debug|Win32.Build.0 = Debug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2525}.Debug|x64.ActiveCfg = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2525}.Debug|x64.Build.0 = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2525}.Release|Win32.ActiveCfg = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2525}.Release|Win32.Build.0 = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2525}.Release|x64.ActiveCfg = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2525}.Release|x64.Build.0 = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2526}.Debug|Win32.ActiveCfg = Debug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2526}.Debug|Win32.Build.0 = Debug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2526}.Debug|x64.ActiveCfg = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2526}.Debug|x64.Build.0 = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2526}.Release|Win32.ActiveCfg = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2526}.Release|Win32.Build.0 = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2526}.Release|x64.ActiveCfg = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2526}.Release|x64.Build.0 = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2524}.Debug|Win32.ActiveCfg = Debug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2524}.Debug|Win32.Build.0 = Debug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2524}.Debug|x64.ActiveCfg = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2524}.Debug|x64.Build.0 = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2524}.Release|Win32.ActiveCfg = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2524}.Release|Win32.Build.0 = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2524}.Release|x64.ActiveCfg = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2524}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder_extended.icproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder_extended.icproj deleted file mode 100644 index 5d66ffff1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder_extended.icproj +++ /dev/null @@ -1,11 +0,0 @@ - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder_extended.vcproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder_extended.vcproj deleted file mode 100644 index db41f0299..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder_extended.vcproj +++ /dev/null @@ -1,352 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder_icl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder_icl.sln deleted file mode 100644 index 5f4271c2f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder_icl.sln +++ /dev/null @@ -1,74 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{EAF909A5-FA59-4C3D-9431-0FCC20D5BCF9}") = "sub_string_finder", "sub_string_finder.icproj", "{3929DD8E-420D-4360-BCBA-3C14C674EFC7}" -EndProject -Project("{EAF909A5-FA59-4C3D-9431-0FCC20D5BCF9}") = "sub_string_finder_extended", "sub_string_finder_extended.icproj", "{BFF3077B-EB9A-4AF5-998B-7C1BA757C06F}" -EndProject -Project("{EAF909A5-FA59-4C3D-9431-0FCC20D5BCF9}") = "sub_string_finder_pretty", "sub_string_finder_pretty.icproj", "{8ADCDB85-B3E0-4376-9378-0C349F9E6140}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{A26B588D-97F7-4466-9672-8A7E3173FBA1}" - ProjectSection(SolutionItems) = preProject - ..\index.html = ..\index.html - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3929DD8E-420D-4360-BCBA-3C14C674EFC7}.Debug|Win32.ActiveCfg = Debug|Win32 - {3929DD8E-420D-4360-BCBA-3C14C674EFC7}.Debug|Win32.Build.0 = Debug|Win32 - {3929DD8E-420D-4360-BCBA-3C14C674EFC7}.Debug|x64.ActiveCfg = Debug|x64 - {3929DD8E-420D-4360-BCBA-3C14C674EFC7}.Debug|x64.Build.0 = Debug|x64 - {3929DD8E-420D-4360-BCBA-3C14C674EFC7}.Release|Win32.ActiveCfg = Release|Win32 - {3929DD8E-420D-4360-BCBA-3C14C674EFC7}.Release|Win32.Build.0 = Release|Win32 - {3929DD8E-420D-4360-BCBA-3C14C674EFC7}.Release|x64.ActiveCfg = Release|x64 - {3929DD8E-420D-4360-BCBA-3C14C674EFC7}.Release|x64.Build.0 = Release|x64 - {BFF3077B-EB9A-4AF5-998B-7C1BA757C06F}.Debug|Win32.ActiveCfg = Debug|Win32 - {BFF3077B-EB9A-4AF5-998B-7C1BA757C06F}.Debug|Win32.Build.0 = Debug|Win32 - {BFF3077B-EB9A-4AF5-998B-7C1BA757C06F}.Debug|x64.ActiveCfg = Debug|x64 - {BFF3077B-EB9A-4AF5-998B-7C1BA757C06F}.Debug|x64.Build.0 = Debug|x64 - {BFF3077B-EB9A-4AF5-998B-7C1BA757C06F}.Release|Win32.ActiveCfg = Release|Win32 - {BFF3077B-EB9A-4AF5-998B-7C1BA757C06F}.Release|Win32.Build.0 = Release|Win32 - {BFF3077B-EB9A-4AF5-998B-7C1BA757C06F}.Release|x64.ActiveCfg = Release|x64 - {BFF3077B-EB9A-4AF5-998B-7C1BA757C06F}.Release|x64.Build.0 = Release|x64 - {8ADCDB85-B3E0-4376-9378-0C349F9E6140}.Debug|Win32.ActiveCfg = Debug|Win32 - {8ADCDB85-B3E0-4376-9378-0C349F9E6140}.Debug|Win32.Build.0 = Debug|Win32 - {8ADCDB85-B3E0-4376-9378-0C349F9E6140}.Debug|x64.ActiveCfg = Debug|x64 - {8ADCDB85-B3E0-4376-9378-0C349F9E6140}.Debug|x64.Build.0 = Debug|x64 - {8ADCDB85-B3E0-4376-9378-0C349F9E6140}.Release|Win32.ActiveCfg = Release|Win32 - {8ADCDB85-B3E0-4376-9378-0C349F9E6140}.Release|Win32.Build.0 = Release|Win32 - {8ADCDB85-B3E0-4376-9378-0C349F9E6140}.Release|x64.ActiveCfg = Release|x64 - {8ADCDB85-B3E0-4376-9378-0C349F9E6140}.Release|x64.Build.0 = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2525}.Release|x64.Build.0 = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2525}.Release|x64.ActiveCfg = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2525}.Release|Win32.Build.0 = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2525}.Release|Win32.ActiveCfg = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2525}.Debug|x64.Build.0 = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2525}.Debug|x64.ActiveCfg = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2525}.Debug|Win32.Build.0 = Debug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2525}.Debug|Win32.ActiveCfg = Debug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2526}.Release|x64.Build.0 = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2526}.Release|x64.ActiveCfg = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2526}.Release|Win32.Build.0 = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2526}.Release|Win32.ActiveCfg = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2526}.Debug|x64.Build.0 = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2526}.Debug|x64.ActiveCfg = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2526}.Debug|Win32.Build.0 = Debug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2526}.Debug|Win32.ActiveCfg = Debug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2524}.Release|x64.Build.0 = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2524}.Release|x64.ActiveCfg = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2524}.Release|Win32.Build.0 = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2524}.Release|Win32.ActiveCfg = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2524}.Debug|x64.Build.0 = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2524}.Debug|x64.ActiveCfg = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2524}.Debug|Win32.Build.0 = Debug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2524}.Debug|Win32.ActiveCfg = Debug|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder_pretty.icproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder_pretty.icproj deleted file mode 100644 index 2a3107eec..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder_pretty.icproj +++ /dev/null @@ -1,11 +0,0 @@ - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder_pretty.vcproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder_pretty.vcproj deleted file mode 100644 index 7206eabbe..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder_pretty.vcproj +++ /dev/null @@ -1,352 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/sub_string_finder.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/sub_string_finder.cpp deleted file mode 100644 index 37537dcea..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/sub_string_finder.cpp +++ /dev/null @@ -1,85 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#include -#include -#include -#include "tbb/parallel_for.h" -#include "tbb/blocked_range.h" - -using namespace tbb; -using namespace std; -static const size_t N = 23; - -class SubStringFinder { - const string str; - size_t *max_array; - size_t *pos_array; -public: - void operator() ( const blocked_range& r ) const { - for ( size_t i = r.begin(); i != r.end(); ++i ) { - size_t max_size = 0, max_pos = 0; - for (size_t j = 0; j < str.size(); ++j) - if (j != i) { - size_t limit = str.size()-max(i,j); - for (size_t k = 0; k < limit; ++k) { - if (str[i + k] != str[j + k]) break; - if (k > max_size) { - max_size = k; - max_pos = j; - } - } - } - max_array[i] = max_size; - pos_array[i] = max_pos; - } - } - SubStringFinder(string &s, size_t *m, size_t *p) : - str(s), max_array(m), pos_array(p) { } -}; - -int main() { - - string str[N] = { string("a"), string("b") }; - for (size_t i = 2; i < N; ++i) str[i] = str[i-1]+str[i-2]; - string &to_scan = str[N-1]; - size_t num_elem = to_scan.size(); - - size_t *max = new size_t[num_elem]; - size_t *pos = new size_t[num_elem]; - - parallel_for(blocked_range(0, num_elem ), - SubStringFinder( to_scan, max, pos ) ); - - for (size_t i = 0; i < num_elem; ++i) - cout << " " << max[i] << "(" << pos[i] << ")" << endl; - delete[] pos; - delete[] max; - return 0; -} - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/sub_string_finder_extended.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/sub_string_finder_extended.cpp deleted file mode 100644 index 69c62c3f6..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/sub_string_finder_extended.cpp +++ /dev/null @@ -1,171 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#if __TBB_MIC_OFFLOAD -#pragma offload_attribute (push,target(mic)) -#endif // __TBB_MIC_OFFLOAD - -#include -#include -#include - -#include "tbb/parallel_for.h" -#include "tbb/blocked_range.h" -#include "tbb/tick_count.h" - -#if __TBB_MIC_OFFLOAD -#pragma offload_attribute (pop) - -class __declspec(target(mic)) SubStringFinder; -#endif // __TBB_MIC_OFFLOAD - -using namespace tbb; -using namespace std; -static const size_t N = 22; - -void SerialSubStringFinder ( const string &str, size_t *max_array, size_t *pos_array) { - for ( size_t i = 0; i < str.size(); ++i ) { - size_t max_size = 0, max_pos = 0; - for (size_t j = 0; j < str.size(); ++j) - if (j != i) { - size_t limit = str.size()-( i > j ? i : j ); - for (size_t k = 0; k < limit; ++k) { - if (str[i + k] != str[j + k]) break; - if (k > max_size) { - max_size = k; - max_pos = j; - } - } - } - max_array[i] = max_size; - pos_array[i] = max_pos; - } -} - -class SubStringFinder { - const string str; - size_t *max_array; - size_t *pos_array; - public: - void operator() ( const blocked_range& r ) const { - for ( size_t i = r.begin(); i != r.end(); ++i ) { - size_t max_size = 0, max_pos = 0; - for (size_t j = 0; j < str.size(); ++j) - if (j != i) { - size_t limit = str.size()-( i > j ? i : j ); - for (size_t k = 0; k < limit; ++k) { - if (str[i + k] != str[j + k]) break; - if (k > max_size) { - max_size = k; - max_pos = j; - } - } - } - max_array[i] = max_size; - pos_array[i] = max_pos; - } - } - SubStringFinder(string &s, size_t *m, size_t *p) : - str(s), max_array(m), pos_array(p) { } -}; - -int main(int argc, char *argv[]) { - - - string str[N] = { string("a"), string("b") }; - for (size_t i = 2; i < N; ++i) str[i] = str[i-1]+str[i-2]; - string &to_scan = str[N-1]; - size_t num_elem = to_scan.size(); - - size_t *max = new size_t[num_elem]; - size_t *max2 = new size_t[num_elem]; - size_t *pos = new size_t[num_elem]; - size_t *pos2 = new size_t[num_elem]; - cout << " Done building string." << endl; - - - tick_count serial_t0 = tick_count::now(); - SerialSubStringFinder(to_scan, max2, pos2); - tick_count serial_t1 = tick_count::now(); - cout << " Done with serial version." << endl; - - tick_count parallel_t0 = tick_count::now(); - parallel_for(blocked_range(0, num_elem, 100), - SubStringFinder( to_scan, max, pos ) ); - tick_count parallel_t1 = tick_count::now(); - cout << " Done with parallel version." << endl; - - for (size_t i = 0; i < num_elem; ++i) { - if (max[i] != max2[i] || pos[i] != pos2[i]) { - cout << "ERROR: Serial and Parallel Results are Different!" << endl; - } - } - cout << " Done validating results." << endl; - - cout << "Serial version ran in " << (serial_t1 - serial_t0).seconds() << " seconds" << endl - << "Parallel version ran in " << (parallel_t1 - parallel_t0).seconds() << " seconds" << endl - << "Resulting in a speedup of " << (serial_t1 - serial_t0).seconds() / (parallel_t1 - parallel_t0).seconds() << endl; - -#if __TBB_MIC_OFFLOAD - // Do offloadable version. Do the timing on host. - size_t *max3 = new size_t[num_elem]; - size_t *pos3 = new size_t[num_elem]; - tick_count parallel_tt0 = tick_count::now(); - const char* to_scan_str = to_scan.c_str(); // Offload the string as a char array. - #pragma offload target(mic) in(num_elem) in(to_scan_str:length(num_elem)) out(max3,pos3:length(num_elem)) - { - string to_scan(to_scan_str, num_elem); // Reconstruct the string in offloadable region. - // Suboptimal performance because of making a copy from to_scan_str at creating to_scan. - parallel_for(blocked_range(0, num_elem, 100), - SubStringFinder( to_scan, max3, pos3 ) ); - } - tick_count parallel_tt1 = tick_count::now(); - cout << " Done with offloadable version." << endl; - - // Do validation of offloadable results on host. - for (size_t i = 0; i < num_elem; ++i) { - if (max3[i] != max2[i] || pos3[i] != pos2[i]) { - cout << "ERROR: Serial and Offloadable Results are Different!" << endl; - } - } - cout << " Done validating offloadable results." << endl; - - cout << "Offloadable version ran in " << (parallel_tt1 - parallel_tt0).seconds() << " seconds" << endl - << "Resulting in a speedup of " << (serial_t1 - serial_t0).seconds() / (parallel_tt1 - parallel_tt0).seconds() << " of offloadable version" << endl; - - delete[] max3; - delete[] pos3; -#endif // __TBB_MIC_OFFLOAD - - delete[] max; - delete[] pos; - delete[] max2; - delete[] pos2; - return 0; -} - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/sub_string_finder_pretty.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/sub_string_finder_pretty.cpp deleted file mode 100644 index f79575ac3..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/sub_string_finder_pretty.cpp +++ /dev/null @@ -1,98 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#include -#include -#include - -#include "tbb/parallel_for.h" -#include "tbb/blocked_range.h" - -using namespace tbb; -static const size_t N = 9; - -class SubStringFinder { - const std::string str; - size_t *max_array; - size_t *pos_array; - public: - void operator() ( const blocked_range& r ) const { - for ( size_t i = r.begin(); i != r.end(); ++i ) { - size_t max_size = 0, max_pos = 0; - for (size_t j = 0; j < str.size(); ++j) - if (j != i) { - size_t limit = str.size()-( i > j ? i : j ); - for (size_t k = 0; k < limit; ++k) { - if (str[i + k] != str[j + k]) break; - if (k+1 > max_size) { - max_size = k+1; - max_pos = j; - } - } - } - max_array[i] = max_size; - pos_array[i] = max_pos; - } - } - SubStringFinder(std::string &s, size_t *m, size_t *p) : - str(s), max_array(m), pos_array(p) { } -}; - -int main(int argc, char *argv[]) { - - - std::string str[N] = { std::string("a"), std::string("b") }; - for (size_t i = 2; i < N; ++i) str[i] = str[i-1]+str[i-2]; - std::string &to_scan = str[N-1]; - size_t num_elem = to_scan.size(); - std::cout << "String to scan: " << to_scan << std::endl; - - size_t *max = new size_t[num_elem]; - size_t *pos = new size_t[num_elem]; - - parallel_for(blocked_range(0, num_elem, 100), - SubStringFinder( to_scan, max, pos ) ); - - for (size_t i = 0; i < num_elem; ++i) { - for (size_t j = 0; j < num_elem; ++j) { - if (j >= i && j < i + max[i]) std::cout << "_"; - else std::cout << " "; - } - std::cout << std::endl << to_scan << std::endl; - - for (size_t j = 0; j < num_elem; ++j) { - if (j >= pos[i] && j < pos[i] + max[i]) std::cout << "*"; - else std::cout << " "; - } - std::cout << std::endl; - } - delete[] max; - delete[] pos; - return 0; -} - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/xcode/sub_string_finder.xcodeproj/project.pbxproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/xcode/sub_string_finder.xcodeproj/project.pbxproj deleted file mode 100644 index 9e28b3939..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/GettingStarted/sub_string_finder/xcode/sub_string_finder.xcodeproj/project.pbxproj +++ /dev/null @@ -1,573 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - A1F593A60B8F042A00073279 /* sub_string_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F593A50B8F042A00073279 /* sub_string_finder.cpp */; }; - A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; }; - A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; }; - A1F594120B8F1E0C00073279 /* sub_string_finder_pretty.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F594110B8F1E0C00073279 /* sub_string_finder_pretty.cpp */; }; - A1F594130B8F1E1700073279 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; }; - A1F594160B8F1E8000073279 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; }; - A1F594240B8F1F5F00073279 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; }; - A1F594250B8F1F6800073279 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; }; - A1F594270B8F1F8100073279 /* sub_string_finder_extended.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F594260B8F1F8100073279 /* sub_string_finder_extended.cpp */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 8DD76F690486A84900D96B5E /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 12; - dstPath = ""; - dstSubfolderSpec = 16; - files = ( - A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A1F594140B8F1E2D00073279 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 16; - files = ( - A1F594160B8F1E8000073279 /* libtbb.dylib in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A1F5941D0B8F1F2D00073279 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 16; - files = ( - A1F594250B8F1F6800073279 /* libtbb.dylib in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 8DD76F6C0486A84900D96B5E /* sub_string_finder */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = sub_string_finder; sourceTree = BUILT_PRODUCTS_DIR; }; - A1F593A50B8F042A00073279 /* sub_string_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = sub_string_finder.cpp; path = ../sub_string_finder.cpp; sourceTree = SOURCE_ROOT; }; - A1F593B30B8F06F900073279 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = ../../../../lib/libtbb.dylib; sourceTree = SOURCE_ROOT; }; - A1F5940A0B8F1D8E00073279 /* sub_string_finder_pretty */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = sub_string_finder_pretty; sourceTree = BUILT_PRODUCTS_DIR; }; - A1F594110B8F1E0C00073279 /* sub_string_finder_pretty.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = sub_string_finder_pretty.cpp; path = ../sub_string_finder_pretty.cpp; sourceTree = SOURCE_ROOT; }; - A1F5941B0B8F1F0900073279 /* sub_string_finder_extended */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = sub_string_finder_extended; sourceTree = BUILT_PRODUCTS_DIR; }; - A1F594260B8F1F8100073279 /* sub_string_finder_extended.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = sub_string_finder_extended.cpp; path = ../sub_string_finder_extended.cpp; sourceTree = SOURCE_ROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8DD76F660486A84900D96B5E /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A1F594080B8F1D8E00073279 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - A1F594130B8F1E1700073279 /* libtbb.dylib in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A1F594190B8F1F0900073279 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - A1F594240B8F1F5F00073279 /* libtbb.dylib in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 08FB7794FE84155DC02AAC07 /* sub_string_finder */ = { - isa = PBXGroup; - children = ( - 08FB7795FE84155DC02AAC07 /* Source */, - A1F593B20B8F06F900073279 /* External Frameworks and Libraries */, - 1AB674ADFE9D54B511CA2CBB /* Products */, - ); - name = sub_string_finder; - sourceTree = ""; - }; - 08FB7795FE84155DC02AAC07 /* Source */ = { - isa = PBXGroup; - children = ( - A1F594260B8F1F8100073279 /* sub_string_finder_extended.cpp */, - A1F594110B8F1E0C00073279 /* sub_string_finder_pretty.cpp */, - A1F593A50B8F042A00073279 /* sub_string_finder.cpp */, - ); - name = Source; - sourceTree = ""; - }; - 1AB674ADFE9D54B511CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8DD76F6C0486A84900D96B5E /* sub_string_finder */, - A1F5940A0B8F1D8E00073279 /* sub_string_finder_pretty */, - A1F5941B0B8F1F0900073279 /* sub_string_finder_extended */, - ); - name = Products; - sourceTree = ""; - }; - A1F593B20B8F06F900073279 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - A1F593B30B8F06F900073279 /* libtbb.dylib */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8DD76F620486A84900D96B5E /* sub_string_finder */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "sub_string_finder" */; - buildPhases = ( - 8DD76F640486A84900D96B5E /* Sources */, - 8DD76F660486A84900D96B5E /* Frameworks */, - 8DD76F690486A84900D96B5E /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = sub_string_finder; - productInstallPath = "$(HOME)/bin"; - productName = sub_string_finder; - productReference = 8DD76F6C0486A84900D96B5E /* sub_string_finder */; - productType = "com.apple.product-type.tool"; - }; - A1F594090B8F1D8E00073279 /* sub_string_finder_pretty */ = { - isa = PBXNativeTarget; - buildConfigurationList = A1F5940C0B8F1DB600073279 /* Build configuration list for PBXNativeTarget "sub_string_finder_pretty" */; - buildPhases = ( - A1F594070B8F1D8E00073279 /* Sources */, - A1F594080B8F1D8E00073279 /* Frameworks */, - A1F594140B8F1E2D00073279 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = sub_string_finder_pretty; - productName = sub_string_finder_pretty; - productReference = A1F5940A0B8F1D8E00073279 /* sub_string_finder_pretty */; - productType = "com.apple.product-type.tool"; - }; - A1F5941A0B8F1F0900073279 /* sub_string_finder_extended */ = { - isa = PBXNativeTarget; - buildConfigurationList = A1F5941F0B8F1F4E00073279 /* Build configuration list for PBXNativeTarget "sub_string_finder_extended" */; - buildPhases = ( - A1F594180B8F1F0900073279 /* Sources */, - A1F594190B8F1F0900073279 /* Frameworks */, - A1F5941D0B8F1F2D00073279 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = sub_string_finder_extended; - productName = sub_string_finder_extended; - productReference = A1F5941B0B8F1F0900073279 /* sub_string_finder_extended */; - productType = "com.apple.product-type.tool"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 08FB7793FE84155DC02AAC07 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0410; - }; - buildConfigurationList = 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "sub_string_finder" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - en, - ); - mainGroup = 08FB7794FE84155DC02AAC07 /* sub_string_finder */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - A1F5941A0B8F1F0900073279 /* sub_string_finder_extended */, - A1F594090B8F1D8E00073279 /* sub_string_finder_pretty */, - 8DD76F620486A84900D96B5E /* sub_string_finder */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXSourcesBuildPhase section */ - 8DD76F640486A84900D96B5E /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A1F593A60B8F042A00073279 /* sub_string_finder.cpp in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A1F594070B8F1D8E00073279 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A1F594120B8F1E0C00073279 /* sub_string_finder_pretty.cpp in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A1F594180B8F1F0900073279 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A1F594270B8F1F8100073279 /* sub_string_finder_extended.cpp in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 1DEB923208733DC60010E9CD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = sub_string_finder; - ZERO_LINK = NO; - }; - name = Debug; - }; - 1DEB923308733DC60010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = sub_string_finder; - ZERO_LINK = NO; - }; - name = Release; - }; - 1DEB923608733DC60010E9CD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Debug; - }; - 1DEB923708733DC60010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Release; - }; - A1F593C60B8F0E6E00073279 /* Debug64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = sub_string_finder; - ZERO_LINK = NO; - }; - name = Debug64; - }; - A1F593C70B8F0E6E00073279 /* Release64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = sub_string_finder; - ZERO_LINK = NO; - }; - name = Release64; - }; - A1F593C80B8F0E6E00073279 /* Debug64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "-m64", - ); - OTHER_LDFLAGS = "-m64"; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Debug64; - }; - A1F593C90B8F0E6E00073279 /* Release64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "-m64", - ); - OTHER_LDFLAGS = "-m64"; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Release64; - }; - A1F5940D0B8F1DB600073279 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = sub_string_finder_pretty; - ZERO_LINK = NO; - }; - name = Debug; - }; - A1F5940E0B8F1DB600073279 /* Debug64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = sub_string_finder_pretty; - ZERO_LINK = NO; - }; - name = Debug64; - }; - A1F5940F0B8F1DB600073279 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = YES; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = sub_string_finder_pretty; - ZERO_LINK = NO; - }; - name = Release; - }; - A1F594100B8F1DB600073279 /* Release64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = sub_string_finder_pretty; - ZERO_LINK = NO; - }; - name = Release64; - }; - A1F594200B8F1F4E00073279 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = sub_string_finder_extended; - ZERO_LINK = NO; - }; - name = Debug; - }; - A1F594210B8F1F4E00073279 /* Debug64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = sub_string_finder_extended; - ZERO_LINK = NO; - }; - name = Debug64; - }; - A1F594220B8F1F4E00073279 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = YES; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = sub_string_finder_extended; - ZERO_LINK = NO; - }; - name = Release; - }; - A1F594230B8F1F4E00073279 /* Release64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = sub_string_finder_extended; - ZERO_LINK = NO; - }; - name = Release64; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "sub_string_finder" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB923208733DC60010E9CD /* Debug */, - A1F593C60B8F0E6E00073279 /* Debug64 */, - 1DEB923308733DC60010E9CD /* Release */, - A1F593C70B8F0E6E00073279 /* Release64 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "sub_string_finder" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB923608733DC60010E9CD /* Debug */, - A1F593C80B8F0E6E00073279 /* Debug64 */, - 1DEB923708733DC60010E9CD /* Release */, - A1F593C90B8F0E6E00073279 /* Release64 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - A1F5940C0B8F1DB600073279 /* Build configuration list for PBXNativeTarget "sub_string_finder_pretty" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A1F5940D0B8F1DB600073279 /* Debug */, - A1F5940E0B8F1DB600073279 /* Debug64 */, - A1F5940F0B8F1DB600073279 /* Release */, - A1F594100B8F1DB600073279 /* Release64 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - A1F5941F0B8F1F4E00073279 /* Build configuration list for PBXNativeTarget "sub_string_finder_extended" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A1F594200B8F1F4E00073279 /* Debug */, - A1F594210B8F1F4E00073279 /* Debug64 */, - A1F594220B8F1F4E00073279 /* Release */, - A1F594230B8F1F4E00073279 /* Release64 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/copy_libraries.bat b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/copy_libraries.bat deleted file mode 100644 index bfe3f2133..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/copy_libraries.bat +++ /dev/null @@ -1,82 +0,0 @@ -@echo off -REM -REM Copyright 2005-2014 Intel Corporation. All Rights Reserved. -REM -REM This file is part of Threading Building Blocks. -REM -REM Threading Building Blocks is free software; you can redistribute it -REM and/or modify it under the terms of the GNU General Public License -REM version 2 as published by the Free Software Foundation. -REM -REM Threading Building Blocks is distributed in the hope that it will be -REM useful, but WITHOUT ANY WARRANTY; without even the implied warranty -REM of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -REM GNU General Public License for more details. -REM -REM You should have received a copy of the GNU General Public License -REM along with Threading Building Blocks; if not, write to the Free Software -REM Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -REM -REM As a special exception, you may use this file as part of a free software -REM library without restriction. Specifically, if other files instantiate -REM templates or use macros or inline functions from this file, or you compile -REM this file and link it with other files to produce an executable, this -REM file does not by itself cause the resulting executable to be covered by -REM the GNU General Public License. This exception does not however -REM invalidate any other reasons why the executable file might be covered by -REM the GNU General Public License. -REM - -:: Getting parameters -if ("%1") == ("") goto error0 -if ("%2") == ("") goto error0 -if ("%3") == ("") goto error0 -set arch=%1 -if ("%2") == ("debug") set postfix=_debug -set output_dir=%3 - -:: Optional 4th parameter to set install root -if ("%4") NEQ ("") set TBBROOT=%4 -:: Actually we can set install root by ourselves -if ("%TBBROOT%") == ("") set TBBROOT=%~d0%~p0..\..\ - -:: Getting vs folders in case vc_mt binaries are not provided -:: ordered from oldest to newest, so we end with newest available version -if ("%VS90COMNTOOLS%") NEQ ("") set vc_dir=vc9 -if ("%VS100COMNTOOLS%") NEQ ("") set vc_dir=vc10 -if ("%VS110COMNTOOLS%") NEQ ("") set vc_dir=vc11 -if ("%VS120COMNTOOLS%") NEQ ("") set vc_dir=vc12 - -:: Are we standalone/oss or inside compiler? -if exist "%TBBROOT%\bin\%arch%\%vc_dir%\tbb%postfix%.dll" set interim_path=bin\%arch% -if exist "%TBBROOT%\..\redist\%arch%\tbb\%vc_dir%\tbb%postfix%.dll" set interim_path=..\redist\%arch%\tbb -if ("%interim_path%") == ("") goto error1 - -:: Do we provide vc_mt binaries? -if exist "%TBBROOT%\%interim_path%\vc_mt\tbb%postfix%.dll" set vc_dir=vc_mt -if ("%vc_dir%") == ("") goto error2 - -:: We know everything we wanted and there are no errors -:: Copying binaries - -copy "%TBBROOT%\%interim_path%\%vc_dir%\tbb%postfix%.dll" "%output_dir%" -copy "%TBBROOT%\%interim_path%\%vc_dir%\tbb%postfix%.pdb" "%output_dir%" -copy "%TBBROOT%\%interim_path%\%vc_dir%\tbbmalloc%postfix%.dll" "%output_dir%" -copy "%TBBROOT%\%interim_path%\%vc_dir%\tbbmalloc%postfix%.pdb" "%output_dir%" -if exist "%TBBROOT%\%interim_path%\%vc_dir%\tbb_preview%postfix%.dll" copy "%TBBROOT%\%interim_path%\%vc_dir%\tbb_preview%postfix%.dll" "%output_dir%" -if exist "%TBBROOT%\%interim_path%\%vc_dir%\tbb_preview%postfix%.pdb" copy "%TBBROOT%\%interim_path%\%vc_dir%\tbb_preview%postfix%.pdb" "%output_dir%" - -goto end -:error0 -echo number of parameters not correct -exit /B 1 -:error1 -echo Could not determine path to TBB libraries -exit /B 1 -:error2 -echo Could not determine Visual Studio version -exit /B 1 - -:end -exit /B 0 - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/Makefile.gmake b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/Makefile.gmake deleted file mode 100644 index 60e201b03..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/Makefile.gmake +++ /dev/null @@ -1,82 +0,0 @@ -# Copyright 2005-2014 Intel Corporation. All Rights Reserved. -# -# This file is part of Threading Building Blocks. -# -# Threading Building Blocks is free software; you can redistribute it -# and/or modify it under the terms of the GNU General Public License -# version 2 as published by the Free Software Foundation. -# -# Threading Building Blocks is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied warranty -# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Threading Building Blocks; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# -# As a special exception, you may use this file as part of a free software -# library without restriction. Specifically, if other files instantiate -# templates or use macros or inline functions from this file, or you compile -# this file and link it with other files to produce an executable, this -# file does not by itself cause the resulting executable to be covered by -# the GNU General Public License. This exception does not however -# invalidate any other reasons why the executable file might be covered by -# the GNU General Public License. - -# The C++ compiler -#CXX=g++ - -# detecting MS Windows (for MinGW support) -ifeq ($(OS), Windows_NT) -RM = cmd /C del /Q /F -RD = cmd /C rmdir -UI = con -EXE = $(NAME)$(SUFFIX).exe - -else -RM = rm -f -RD = rmdir -r - -# detecting 64-bit platform -arch ?= $(shell uname -m) -# Possible values of interest: intel64 x86_64 amd64 ia64 ppc64 sparc sparc64 -x64 ?= $(findstring 64,$(subst sparc,sparc64,$(arch))) - -# detecting UI ("mac", "x" or "con") -ifeq ($(shell uname),Darwin) -UI ?= mac -else -UI ?= $(shell sh -c "[ -f /usr/X11R6/lib$(x64)/libX11.so -o -f /usr/lib$(x64)/libX11.so ] && echo x || echo con") -endif - -ifeq ($(UI),x) -EXE = $(NAME)$(SUFFIX) -UI_CXXFLAGS += -I/usr/X11R6/include -LIBS += -lpthread -L/usr/X11R6/lib$(x64) -lX11 -# detect if libXext can be found -ifeq ($(shell sh -c "[ -f /usr/X11R6/lib$(x64)/libXext.so -o -f /usr/lib$(x64)/libXext.so ] && echo 0"),0) -LIBS += -lXext -else # no libXext -UI_CXXFLAGS += -DX_NOSHMEM -endif # libXext - -else # ! X -ifeq ($(UI),mac) -CXX_UI?=g++ -LIBS += -framework OpenGL -framework Foundation -framework Cocoa -MACUISOURCES = ../../common/gui/xcode/tbbExample/OpenGLView.m ../../common/gui/xcode/tbbExample/main.m ../../common/gui/xcode/tbbExample/tbbAppDelegate.m -MACUIOBJS = OpenGLView.o main.o tbbAppDelegate.o -APPRES = $(NAME)$(SUFFIX).app/Contents/Resources -EXE = $(NAME)$(SUFFIX).app/Contents/MacOS/$(NAME)$(SUFFIX) - -else # ! OS X* -UI = con -EXE = $(NAME)$(SUFFIX) -ifeq (file,$(origin UI)) -$(warning Note: no graphics output capability detected, building for console output.) -endif - -endif # OS X* -endif # X -endif # Windows vs. other diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/Makefile.win b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/Makefile.win deleted file mode 100644 index 9e2c51efe..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/Makefile.win +++ /dev/null @@ -1,82 +0,0 @@ -# Copyright 2005-2014 Intel Corporation. All Rights Reserved. -# -# This file is part of Threading Building Blocks. -# -# Threading Building Blocks is free software; you can redistribute it -# and/or modify it under the terms of the GNU General Public License -# version 2 as published by the Free Software Foundation. -# -# Threading Building Blocks is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied warranty -# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Threading Building Blocks; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# -# As a special exception, you may use this file as part of a free software -# library without restriction. Specifically, if other files instantiate -# templates or use macros or inline functions from this file, or you compile -# this file and link it with other files to produce an executable, this -# file does not by itself cause the resulting executable to be covered by -# the GNU General Public License. This exception does not however -# invalidate any other reasons why the executable file might be covered by -# the GNU General Public License. - -# Per-build Makefile rules (for recursive $(MAKE) calls from Makefile) - -# Base compile/link options -MYCXXFLAGS = /nologo /EHsc /Zc:forScope /D WIN32 /D _MBCS /D _CRT_SECURE_NO_DEPRECATE /MP $(CXXFLAGS) -MYLFLAGS = /link /incremental:no /fixed:no $(LFLAGS) -CXXFLAGS_NDEBUG = /MD /O2 /Ot /Gy /D NDEBUG -CXXFLAGS_DEBUG = /MDd /Od /Zi /D _DEBUG - -# Specify library directory for Direct X SDK -DDLIB_DIR=$(DXSDK_DIR)\lib\$(XARCH:AMD64=x64) - -# Input and output files -#SOURCE = v -#RCNAME = specified externaly -#EXE = ^ -# defaults on XARCH = x86 -UISRC = ../../common/gui/$(UI)video.cpp - -default: - -build_echo: - -@echo Building$(DEBUG) $(EXE) with UI=$(UI) XARCH=$(XARCH) - -build_one: build_echo build_$(UI)$(DEBUG) - -build_con: $(SOURCE) $(UISRC) compiler_check - $(CXX) $(CXXFLAGS_NDEBUG) $(MYCXXFLAGS) $(SOURCE) $(UISRC) $(MYLFLAGS) /subsystem:console /OUT:$(EXE) - @cmd.exe /C del *.obj - -build_con_debug: $(SOURCE) $(UISRC) compiler_check - $(CXX) $(CXXFLAGS_DEBUG) $(MYCXXFLAGS) $(SOURCE) $(UISRC) $(MYLFLAGS) /debug /subsystem:console /OUT:$(EXE) - @cmd.exe /C del *.obj - -build_gdi: $(SOURCE) $(UISRC) msvs/$(RCNAME).res compiler_check - $(CXX) $(CXXFLAGS_NDEBUG) /D _WINDOWS $(MYCXXFLAGS) $(SOURCE) $(UISRC) $(MYLFLAGS) msvs/$(RCNAME).res /subsystem:windows /machine:$(XARCH) /OUT:$(EXE) - @cmd.exe /C del *.obj - -build_gdi_debug: $(SOURCE) $(UISRC) msvs/$(RCNAME).res compiler_check - $(CXX) $(CXXFLAGS_DEBUG) /D _WINDOWS $(MYCXXFLAGS) $(SOURCE) $(UISRC) $(MYLFLAGS) msvs/$(RCNAME).res /debug /subsystem:windows /machine:$(XARCH) /OUT:$(EXE) - @cmd.exe /C del *.obj - -build_dd: $(SOURCE) $(UISRC) msvs/$(RCNAME).res compiler_check - -@echo Using DirectX SDK from "$(DDLIB_DIR)" - $(CXX) $(CXXFLAGS_NDEBUG) /D _WINDOWS $(MYCXXFLAGS) /I "$(DXSDK_DIR)\include" $(SOURCE) $(UISRC) $(MYLFLAGS) /LIBPATH:"$(DDLIB_DIR)" msvs/$(RCNAME).res /subsystem:windows /machine:$(XARCH) /OUT:$(EXE) - @cmd.exe /C del *.obj - -build_dd_debug: $(SOURCE) $(UISRC) msvs/$(RCNAME).res compiler_check - -@echo Using DirectX SDK from "$(DDLIB_DIR)" - $(CXX) $(CXXFLAGS_DEBUG) /D _WINDOWS $(MYCXXFLAGS) /I "$(DXSDK_DIR)\include" $(SOURCE) $(UISRC) $(MYLFLAGS) /LIBPATH:"$(DDLIB_DIR)" msvs/$(RCNAME).res /debug /subsystem:windows /machine:$(XARCH) /OUT:$(EXE) - @cmd.exe /C del *.obj - -msvs/$(RCNAME).res: - rc /r msvs/$(RCNAME) -compiler_check: - @echo compiler_test>compiler_test && @$(CXX) /E compiler_test >nul 2>&1 || echo "$(CXX) command not found. Check if CXX=$(CXX) is set properly" - @cmd.exe /C del compiler_test diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/convideo.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/convideo.cpp deleted file mode 100644 index 99fcc9717..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/convideo.cpp +++ /dev/null @@ -1,139 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#include "video.h" -#include -#include - -unsigned int * g_pImg = 0; -int g_sizex, g_sizey; -static video *g_video = 0; -static int g_fps = 0; - -#if _WIN32 || _WIN64 - -static DWORD g_msec = 0; -#ifdef _WINDOWS -HINSTANCE video::win_hInstance = 0; -int video::win_iCmdShow = 0; -void video::win_set_class(WNDCLASSEX &wcex) { } -void video::win_load_accelerators(int idc) { } -#endif //_WINDOWS - -#else - -#include -#include -struct timeval g_time; - -#endif //_WIN32||_WIN64 - -video::video() - // OpenGL* RGBA byte order for little-endian CPU - : red_mask(0xff), red_shift(0), green_mask(0xff00), - green_shift(8), blue_mask(0xff0000), blue_shift(16), depth(24) -{ - assert(g_video == 0); - g_video = this; title = "Video"; updating = calc_fps = false; -} - -bool video::init_window(int x, int y) -{ - g_sizex = x; g_sizey = y; - g_pImg = new unsigned int[x*y]; - running = true; - return false; -} - -bool video::init_console() -{ - running = true; - return true; -} - -void video::terminate() -{ - if(calc_fps) { - double fps = g_fps; -#if _WIN32 || _WIN64 - fps /= (GetTickCount()-g_msec)/1000.0; -#else - struct timezone tz; struct timeval end_time; gettimeofday(&end_time, &tz); - fps /= (end_time.tv_sec+1.0*end_time.tv_usec/1000000.0) - (g_time.tv_sec+1.0*g_time.tv_usec/1000000.0); -#endif - printf("%s: %.1f fps\n", title, fps); - } - g_video = 0; running = false; - if(g_pImg) { delete[] g_pImg; g_pImg = 0; } -} - -video::~video() -{ - if(g_video) terminate(); -} - -//! Count and display FPS count in titlebar -bool video::next_frame() -{ - if(calc_fps){ - if(!g_fps) { -#if _WIN32 || _WIN64 - g_msec = GetTickCount(); -#else - struct timezone tz; gettimeofday(&g_time, &tz); -#endif - } - g_fps++; - } - return running; -} - -//! Do standard loop -void video::main_loop() -{ - on_process(); -} - -//! Change window title -void video::show_title() -{ -} - -///////////////////////////////////////////// public methods of video class /////////////////////// - -drawing_area::drawing_area(int x, int y, int sizex, int sizey) - : start_x(x), start_y(y), size_x(sizex), size_y(sizey), pixel_depth(24), - base_index(y*g_sizex + x), max_index(g_sizex*g_sizey), index_stride(g_sizex), ptr32(g_pImg) -{ - assert(x < g_sizex); assert(y < g_sizey); - assert(x+sizex <= g_sizex); assert(y+sizey <= g_sizey); - - index = base_index; // current index -} - -void drawing_area::update() {} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/d2dvideo.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/d2dvideo.cpp deleted file mode 100644 index 74befd4e1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/d2dvideo.cpp +++ /dev/null @@ -1,209 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -// common Windows parts -#include "winvideo.h" - -// and another headers -#include -#include -#include -#if _DXSDK_PRODUCT_MAJOR < 9 -#error DXSDK Version 9 and above required. -#endif -#include -#include -#pragma comment(lib, "d2d1.lib") - -ID2D1Factory *m_pD2DFactory; -ID2D1HwndRenderTarget *m_pRenderTarget; -ID2D1Bitmap *m_pBitmap; -D2D1_SIZE_U bitmapSize; - -HANDLE g_hVSync; - -#include -#pragma comment(lib, "DxErr.lib") - -//! Create a dialog box and tell the user what went wrong -bool DisplayError(LPSTR lpstrErr, HRESULT hres) -{ - if(hres != S_OK){ - static bool InError = false; - int retval = 0; - if (!InError) - { - InError = true; - const char *message = hres?DXGetErrorString(hres):0; - retval = MessageBoxA(g_hAppWnd, lpstrErr, hres?message:"Error!", MB_OK|MB_ICONERROR); - InError = false; - } - } - return false; -} - -void DrawBitmap() -{ - HRESULT hr = S_OK; - if (m_pRenderTarget) { - m_pRenderTarget->BeginDraw(); - if (m_pBitmap) - hr = m_pBitmap->CopyFromMemory(NULL,(BYTE*)g_pImg, 4*g_sizex); - DisplayError( "DrawBitmap error", hr ); - m_pRenderTarget->DrawBitmap(m_pBitmap); - m_pRenderTarget->EndDraw(); - } - return; -} - -inline void mouse(int k, LPARAM lParam) -{ - int x = (int)LOWORD(lParam); - int y = (int)HIWORD(lParam); - RECT rc; - GetClientRect(g_hAppWnd, &rc); - g_video->on_mouse( x*g_sizex/(rc.right - rc.left), y*g_sizey/(rc.bottom - rc.top), k ); -} - -//! Win event processing function -LRESULT CALLBACK InternalWndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam) -{ - switch (iMsg) - { - case WM_MOVE: - // Check to make sure our window exists before we tell it to repaint. - // This will fail the first time (while the window is being created). - if (hwnd) { - InvalidateRect(hwnd, NULL, FALSE); - UpdateWindow(hwnd); - } - return 0L; - - case WM_SIZE: - case WM_PAINT: - if( g_video->running && g_video->updating ) { - DrawBitmap(); - Sleep(0); - } - break; - // Proccess all mouse and keyboard events - case WM_LBUTTONDOWN: mouse( 1, lParam ); break; - case WM_LBUTTONUP: mouse(-1, lParam ); break; - case WM_RBUTTONDOWN: mouse( 2, lParam ); break; - case WM_RBUTTONUP: mouse(-2, lParam ); break; - case WM_MBUTTONDOWN: mouse( 3, lParam ); break; - case WM_MBUTTONUP: mouse(-3, lParam ); break; - case WM_CHAR: g_video->on_key( (int)wParam); break; - - // some useless stuff - case WM_ERASEBKGND: return 1; // keeps erase-background events from happening, reduces chop - case WM_DISPLAYCHANGE: return 0; - - // Now, shut down the window... - case WM_DESTROY: PostQuitMessage(0); return 0; - } - // call user defined proc, if exists - return g_pUserProc? g_pUserProc(hwnd, iMsg, wParam, lParam) : DefWindowProc(hwnd, iMsg, wParam, lParam); -} - -bool video::init_window(int sizex, int sizey) -{ - assert(win_hInstance != 0); - g_sizex = sizex; g_sizey = sizey; - if (!WinInit(win_hInstance, win_iCmdShow, gWndClass, title, false)) { - DisplayError("Unable to initialize the program's window."); - return false; - } - ShowWindow(g_hAppWnd, SW_SHOW); - g_pImg = new unsigned int[sizex*sizey]; - - HRESULT hr = S_OK; - - hr = D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &m_pD2DFactory); - // Create a Direct2D render target. - if (SUCCEEDED(hr) && !m_pRenderTarget){ - RECT rc; - GetClientRect(g_hAppWnd, &rc); - - bitmapSize = D2D1::SizeU( - rc.right - rc.left, - rc.bottom - rc.top - ); - - hr = m_pD2DFactory->CreateHwndRenderTarget( - D2D1::RenderTargetProperties(), - D2D1::HwndRenderTargetProperties(g_hAppWnd, bitmapSize), - &m_pRenderTarget - ); - if (SUCCEEDED(hr) && !m_pBitmap){ - D2D1_PIXEL_FORMAT pixelFormat = D2D1::PixelFormat( - DXGI_FORMAT_B8G8R8A8_UNORM, - D2D1_ALPHA_MODE_IGNORE - ); - D2D1_BITMAP_PROPERTIES bitmapProperties; - bitmapProperties.pixelFormat = pixelFormat; - m_pRenderTarget->GetDpi( &bitmapProperties.dpiX, &bitmapProperties.dpiY ); - m_pRenderTarget->CreateBitmap(bitmapSize,bitmapProperties,&m_pBitmap); - m_pRenderTarget->DrawBitmap(m_pBitmap); - } - } - - running = true; - return true; -} - -void video::terminate() -{ - if (m_pBitmap) m_pBitmap->Release(); - if (m_pRenderTarget) m_pRenderTarget->Release(); - if (m_pD2DFactory) m_pD2DFactory->Release(); - g_video = 0; running = false; - if(g_pImg) { delete[] g_pImg; g_pImg = 0; } -} - -//////////// drawing area constructor & destructor ///////////// - -drawing_area::drawing_area(int x, int y, int sizex, int sizey) -: start_x(x), start_y(y), size_x(sizex), size_y(sizey), pixel_depth(24), - base_index(y*g_sizex + x), max_index(g_sizex*g_sizey), index_stride(g_sizex), ptr32(g_pImg) -{ - assert(x < g_sizex); assert(y < g_sizey); - assert(x+sizex <= g_sizex); assert(y+sizey <= g_sizey); - - index = base_index; // current index -} - -void drawing_area::update() -{ - if(g_video->updating) { - RECT r; - r.left = start_x; r.right = start_x + size_x; - r.top = start_y; r.bottom = start_y + size_y; - InvalidateRect(g_hAppWnd, &r, false); - } -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/ddvideo.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/ddvideo.cpp deleted file mode 100644 index 7e89cd651..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/ddvideo.cpp +++ /dev/null @@ -1,589 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -// common Windows parts -#include "winvideo.h" - -#include -#if _DXSDK_PRODUCT_MAJOR >= 9 -// new implementation based on Direct2D -#include "d2dvideo.cpp" -#else // _DXSDK_PRODUCT_MAJOR >= 9 - -// and another headers -#include -#include -#include - -#pragma comment(lib, "ddraw.lib") -#pragma comment(lib, "dxguid.lib") - -LPDIRECTDRAW7 g_pDD = NULL; // DirectDraw object -LPDIRECTDRAWSURFACE7 g_pDDSPrimary = NULL;// DirectDraw primary surface -LPDIRECTDRAWSURFACE7 g_pDDSBack = NULL; // DirectDraw back surface -LPDIRECTDRAWSURFACE7 g_pDDSOverlay = NULL;// DirectDraw overlay surface -LPDIRECTDRAWCLIPPER g_pClipper = NULL; // DirectDraw clipping struct -DDOVERLAYFX g_OverlayFX; // DirectDraw overlay effects struct -DDCAPS g_DDCaps; // DirectDraw hardware capabilities struct -DWORD g_OverlayFlags = 0; // DirectDraw overlay flags variable -DWORD g_dwXRatio, - g_dwYRatio; // The ratios between the src and dst rects -RECT g_rcSrc = {0, 0, 0, 0}, - g_rcDst = {0, 0, 0, 0}; -HANDLE g_hVSync; - -// check for new DX SDK (8 & 9) -#ifdef DDSCAPS_PRIMARYSURFACELEFT -#include -#pragma comment(lib, "dxerr8.lib") -#else -// old SDK (7) -#include -#pragma comment(lib, "d3dx.lib") -#endif - -//! Create a dialog box and tell the user what went wrong -bool DisplayError(LPSTR lpstrErr, HRESULT hres) -{ - static bool InError = false; - int retval = 0; - if (!InError) - { - InError = true; -#ifdef DDSCAPS_PRIMARYSURFACELEFT - const char *message = hres?DXGetErrorString8A(hres):0; -#else - char message[256]; if(hres) D3DXGetErrorString(hres, 256, message); -#endif - retval = MessageBoxA(g_hAppWnd, lpstrErr, hres?message:"Error!", MB_OK|MB_ICONERROR); - InError = false; - } - return false; -} - -//! Releases the overlay surface -void DestroyOverlay() -{ - if (g_pClipper) - g_pClipper->Release(); - if (g_pDDSOverlay) { - g_pImg = 0; LPDIRECTDRAWSURFACE7 pDDSOverlay(g_pDDSOverlay); - g_pDDSOverlay = NULL; - YIELD_TO_THREAD(); - pDDSOverlay->Release(); // be sure nobody uses old value - } -} - -//! Releases the primary surface -void DestroyPrimary() -{ - if (g_pDDSPrimary) - { - g_pDDSPrimary->Release(); - g_pDDSPrimary = NULL; - } -} - -//! Releases core DirectDraw objects -void DestroyDDraw() -{ - DestroyPrimary(); - // Release the DDraw object - if (g_pDD) { - LPDIRECTDRAW7 pDD(g_pDD); // be sure nobody uses old value - g_pDD = NULL; Sleep(1); pDD->Release(); - } -} - -//! Checks and corrects all boundries for alignment and stretching -void CheckBoundries(void) -{ - // Make sure the coordinates fulfill the stretching requirements. Often - // the hardware will require a certain ammount of stretching to do - // overlays. This stretch factor is held in dwMinOverlayStretch as the - // stretch factor multiplied by 1000 (to keep an accuracy of 3 decimal places). - if ((g_DDCaps.dwCaps & DDCAPS_OVERLAYSTRETCH) && (g_DDCaps.dwMinOverlayStretch) - && (g_dwXRatio < g_DDCaps.dwMinOverlayStretch)) - { - g_rcDst.right = 2 * GetSystemMetrics(SM_CXSIZEFRAME) + g_rcDst.left + (g_sizex - * (g_DDCaps.dwMinOverlayStretch + 1)) / 1000; - SetWindowTextA(g_hAppWnd, "Window is too small!"); - } - else if ((g_DDCaps.dwCaps & DDCAPS_OVERLAYSTRETCH) && (g_DDCaps.dwMaxOverlayStretch) - && (g_dwXRatio > g_DDCaps.dwMaxOverlayStretch)) - { - g_rcDst.right = 2 * GetSystemMetrics(SM_CXSIZEFRAME) + g_rcDst.left + (g_sizey - * (g_DDCaps.dwMaxOverlayStretch + 999)) / 1000; - SetWindowTextA(g_hAppWnd, "Window is too large!"); - } - else if(!g_video->calc_fps) SetWindowText(g_hAppWnd, g_video->title); - - // Recalculate the ratio's for the upcoming calculations - g_dwXRatio = (g_rcDst.right - g_rcDst.left) * 1000 / (g_rcSrc.right - g_rcSrc.left); - g_dwYRatio = (g_rcDst.bottom - g_rcDst.top) * 1000 / (g_rcSrc.bottom - g_rcSrc.top); - - // Check to make sure we're within the screen's boundries, if not then fix - // the problem by adjusting the source rectangle which we draw from. - if (g_rcDst.left < 0) - { - g_rcSrc.left = -g_rcDst.left * 1000 / g_dwXRatio; - g_rcDst.left = 0; - } - if (g_rcDst.right > GetSystemMetrics(SM_CXSCREEN)) - { - g_rcSrc.right = g_sizex - ((g_rcDst.right - GetSystemMetrics(SM_CXSCREEN)) * 1000 / g_dwXRatio); - g_rcDst.right = GetSystemMetrics(SM_CXSCREEN); - } - if (g_rcDst.bottom > GetSystemMetrics(SM_CYSCREEN)) - { - g_rcSrc.bottom = g_sizey - ((g_rcDst.bottom - GetSystemMetrics(SM_CYSCREEN)) * 1000 / g_dwYRatio); - g_rcDst.bottom = GetSystemMetrics(SM_CYSCREEN); - } - // I don't know how useful this is... but just in case someone can do it - here's the check. - if (g_rcDst.top < 0) - { - g_rcSrc.top = -g_rcDst.top * 1000 / g_dwYRatio; - g_rcDst.top = 0; - } - - // Make sure the coordinates fulfill the alignment requirements - // these expressions (x & -y) just do alignment by dropping low order bits... - // so to round up, we add first, then truncate. - if ((g_DDCaps.dwCaps & DDCAPS_ALIGNBOUNDARYSRC) && g_DDCaps.dwAlignBoundarySrc) - g_rcSrc.left = (g_rcSrc.left + g_DDCaps.dwAlignBoundarySrc / 2) & -(signed) - (g_DDCaps.dwAlignBoundarySrc); - if ((g_DDCaps.dwCaps & DDCAPS_ALIGNSIZESRC) && g_DDCaps.dwAlignSizeSrc) - g_rcSrc.right = g_rcSrc.left + (g_rcSrc.right - g_rcSrc.left + g_DDCaps.dwAlignSizeSrc - / 2) & -(signed) (g_DDCaps.dwAlignSizeSrc); - if ((g_DDCaps.dwCaps & DDCAPS_ALIGNBOUNDARYDEST) && g_DDCaps.dwAlignBoundaryDest) - g_rcDst.left = (g_rcDst.left + g_DDCaps.dwAlignBoundaryDest / 2) & -(signed) - (g_DDCaps.dwAlignBoundaryDest); - if ((g_DDCaps.dwCaps & DDCAPS_ALIGNSIZEDEST) && g_DDCaps.dwAlignSizeDest) - g_rcDst.right = g_rcDst.left + (g_rcDst.right - g_rcDst.left) & -(signed) (g_DDCaps.dwAlignSizeDest); -} - -//! Get translated by system color value -DWORD DDColorMatch(IDirectDrawSurface7 * pdds, COLORREF rgb) -{ - COLORREF rgbT; - HDC hdc; - DWORD dw = CLR_INVALID; - DDSURFACEDESC2 ddsd; - HRESULT hres; - - // Use GDI SetPixel to color match for us - if (rgb != CLR_INVALID && pdds->GetDC(&hdc) == DD_OK) { - rgbT = GetPixel(hdc, 0, 0); // Save current pixel value - SetPixel(hdc, 0, 0, rgb); // Set our value - pdds->ReleaseDC(hdc); - } - // Now lock the surface so we can read back the converted color - ddsd.dwSize = sizeof(ddsd); - while ((hres = pdds->Lock(NULL, &ddsd, 0, NULL)) == DDERR_WASSTILLDRAWING) - YIELD_TO_THREAD(); - if (hres == DD_OK) { - dw = *(DWORD *) ddsd.lpSurface; // Get DWORD - if (ddsd.ddpfPixelFormat.dwRGBBitCount < 32) - dw &= (1 << ddsd.ddpfPixelFormat.dwRGBBitCount) - 1; // Mask it to bpp - pdds->Unlock(NULL); - } - else return DisplayError("Can't lock primary surface", hres); - // Now put the color that was there back. - if (rgb != CLR_INVALID && pdds->GetDC(&hdc) == DD_OK) { - SetPixel(hdc, 0, 0, rgbT); - pdds->ReleaseDC(hdc); - } - return dw; -} - -//! Load the bitmap and copy it to the overlay surface -bool DrawOverlay() -{ - HRESULT hRet; // This is where we put return values from DirectDraw. - DDSURFACEDESC2 surfDesc; - // Setup structure - memset(&surfDesc, 0, sizeof(surfDesc)); surfDesc.dwSize = sizeof(surfDesc); - - hRet = g_pDDSOverlay->Lock(NULL, &surfDesc, DDLOCK_SURFACEMEMORYPTR | DDLOCK_NOSYSLOCK | DDLOCK_WRITEONLY, NULL); - if (hRet != DD_OK || surfDesc.lpSurface == NULL) - return DisplayError("Can't lock overlay surface", hRet); - else { - g_pImg = (unsigned int *)surfDesc.lpSurface; - //g_pDDSOverlay->Unlock(NULL); is not needed? - } - // Setup effects structure - memset(&g_OverlayFX, 0, sizeof(g_OverlayFX)); g_OverlayFX.dwSize = sizeof(g_OverlayFX); - // Setup overlay flags. - g_OverlayFlags = DDOVER_SHOW; - // Check for destination color keying capability - if ((g_DDCaps.dwCKeyCaps & DDCKEYCAPS_DESTOVERLAY) && ((g_DDCaps.dwCaps & DDCAPS_OVERLAYCANTCLIP) || (g_DDCaps.dwCKeyCaps & DDCKEYCAPS_NOCOSTOVERLAY) )) - { - // If so, we'll use it to clip the bitmap when other windows go on top - // of us. Just for the record - this color range for color keying (the - // high/low values) are not heavily supported right now, so for almost - // all cards, just use the same color for both. - g_OverlayFX.dckDestColorkey.dwColorSpaceLowValue = - g_OverlayFX.dckDestColorkey.dwColorSpaceHighValue = DDColorMatch(g_pDDSPrimary, RGBKEY); - g_OverlayFlags |= DDOVER_DDFX | DDOVER_KEYDESTOVERRIDE; - } else { - // If not, we'll setup a clipper for the window. This will fix the - // problem on a few video cards - but the ones that don't shouldn't care. - hRet = g_pDD->CreateClipper(0, &g_pClipper, NULL); - if (hRet != DD_OK) - return DisplayError("Can't create clipper", hRet); - hRet = g_pClipper->SetHWnd(0, g_hAppWnd); - if (hRet != DD_OK) - return DisplayError("Can't attach clipper", hRet); - hRet = g_pDDSPrimary->SetClipper(g_pClipper); - if (hRet != DD_OK) - return DisplayError("Can't set clipper", hRet); - } - return true; -} - -//! Init the primary surface -bool DDPrimaryInit() -{ - HRESULT hRet; - DDSURFACEDESC2 ddsd; // A surface description structure - - // Create the primary surface. The primary surface is the full screen - - // since we're a windowed app - we'll just write to the portion of the - // screen within our window. - memset(&ddsd, 0, sizeof(ddsd)); // Set all fields of struct to 0 and set .dwSize to - ddsd.dwSize = sizeof(ddsd); // Sizeof the variable - these two steps required for most DDraw structs - ddsd.dwFlags = DDSD_CAPS; // Set flags for variables we're using... - ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE; // Set the variables we said we would in dwFlags - hRet = g_pDD->CreateSurface(&ddsd, &g_pDDSPrimary, NULL); - if (hRet != DD_OK) - return DisplayError("Can't create primary surface", hRet); - return true; -} - -//! Init DirectDraw Stuff -bool DDInit() -{ - HRESULT hRet; - g_rcSrc.right = g_sizex; - g_rcSrc.bottom = g_sizey; - - hRet = DirectDrawCreateEx(NULL, (VOID**)&g_pDD, IID_IDirectDraw7, NULL); - if (hRet != DD_OK) - return DisplayError("Can't create DirectDraw7 instance", hRet); - - // Set cooperation level with other windows to be normal (ie. not full screen) - // You MUST set the cooperation level to be SOMETHING, for windowed apps use - // DDSCL_NORMAL, for full screen use: DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN. - hRet = g_pDD->SetCooperativeLevel(g_hAppWnd, DDSCL_NORMAL); - if (hRet != DD_OK) - return DisplayError("Can't set cooperative level", hRet); - return DDPrimaryInit(); -} - -//! Setup the overlay object -bool DDOverlayInit() -{ - // Get hardware's CAPabilitieS - memset(&g_DDCaps, 0, sizeof(g_DDCaps)); - g_DDCaps.dwSize = sizeof(g_DDCaps); - if (g_pDD->GetCaps(&g_DDCaps, 0)) - return DisplayError("Can't get capabilities"); - - // Make sure it supports overlays - if (!(g_DDCaps.dwCaps & DDCAPS_OVERLAY)) - return DisplayError("Hardware doesn't support overlays"); - - //DO NOT Make sure it supports stretching (scaling) - //if (!(g_DDCaps.dwCaps & DDCAPS_OVERLAYSTRETCH)) return false; - - DDSURFACEDESC2 ddsd; // DirectDraw surface descriptor - HRESULT hRet; // I'm not even going to try... - // The pixel formats that we want the surface to be in - DDPIXELFORMAT ddpfOverlayFormats[] = { - {sizeof(DDPIXELFORMAT), DDPF_RGB, 0, 32, 0xFF0000, 0x0FF00, 0x0000FF, 0}, // 32-bit RGB - {sizeof(DDPIXELFORMAT), DDPF_RGB, 0, 16, 0x007C00, 0x003e0, 0x00001F, 0}, // 16-bit RGB 5:5:5 - {sizeof(DDPIXELFORMAT), DDPF_RGB, 0, 16, 0x00F800, 0x007e0, 0x00001F, 0}, // 16-bit RGB 5:6:5 - {sizeof(DDPIXELFORMAT), DDPF_FOURCC, mmioFOURCC('U','Y','V','Y'), 16, 0, 0, 0, 0}, // UYVY - {sizeof(DDPIXELFORMAT), DDPF_FOURCC, mmioFOURCC('Y','4','2','2'), 16, 0, 0, 0, 0}, // the same as UYVY - {sizeof(DDPIXELFORMAT), DDPF_FOURCC, mmioFOURCC('Y','U','Y','2'), 16, 0, 0, 0, 0}, // YUY2 is unsupported color-space here - {0}}; - - // Setup the overlay surface's attributes in the surface descriptor - memset(&ddsd, 0, sizeof(ddsd)); - ddsd.dwSize = sizeof(ddsd); - ddsd.ddsCaps.dwCaps = DDSCAPS_OVERLAY | g_DDCaps.ddsCaps.dwCaps&DDSCAPS_VIDEOMEMORY; - ddsd.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH | DDSD_PIXELFORMAT; - ddsd.dwBackBufferCount = 0; - ddsd.dwWidth = g_sizex; - ddsd.dwHeight = g_sizey; - for(int format = 0; ddpfOverlayFormats[format].dwSize; format++) { - ddsd.ddpfPixelFormat = ddpfOverlayFormats[format]; - // Attempt to create the surface with theses settings - hRet = g_pDD->CreateSurface(&ddsd, &g_pDDSOverlay, NULL); - if(hRet == DD_OK) break; - } - if (hRet != DD_OK) - return DisplayError("Can't create appropriate overlay surface", hRet); - return true; -} - -inline void mouse(int k, LPARAM lParam) -{ - int x = (int)LOWORD(lParam), y = (int)HIWORD(lParam); - g_video->on_mouse( x*g_sizex/(g_rcDst.right - g_rcDst.left), - y*g_sizey/(g_rcDst.bottom - g_rcDst.top), k); -} - -LRESULT CALLBACK InternalWndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam) -{ - PAINTSTRUCT ps; // Structure for the paint message - POINT p = {0, 0}; // Translation point for the window's client region - HRESULT hRet; - - switch (iMsg) - { - case WM_MOVE: - // Make sure we're not moving to be minimized - because otherwise - // our ratio varialbes (g_dwXRatio and g_dwYRatio) will end up - // being 0, and once we hit CheckBoundries it divides by 0. - if (!IsIconic(hwnd)) - { - g_rcSrc.left = 0; - g_rcSrc.right = g_sizex; - g_rcSrc.top = 0; - g_rcSrc.bottom = g_sizey; - GetClientRect(hwnd, &g_rcDst); - g_dwXRatio = (g_rcDst.right - g_rcDst.left) * 1000 / - (g_rcSrc.right - g_rcSrc.left); - g_dwYRatio = (g_rcDst.bottom - g_rcDst.top) * 1000 / - (g_rcSrc.bottom - g_rcSrc.top); - ClientToScreen(hwnd, &p); - g_rcDst.left = p.x; - g_rcDst.top = p.y; - g_rcDst.bottom += p.y; - g_rcDst.right += p.x; - CheckBoundries(); - } - else - // Else, hide the overlay... just in case we can't do - // destination color keying, this will pull the overlay - // off of the screen for the user. - if (g_pDDSOverlay && g_pDDSPrimary) - g_pDDSOverlay->UpdateOverlay(NULL, g_pDDSPrimary, NULL, DDOVER_HIDE, NULL); - // Check to make sure our window exists before we tell it to - // repaint. This will fail the first time (while the window is being created). - if (hwnd) - { - InvalidateRect(hwnd, NULL, FALSE); - UpdateWindow(hwnd); - } - return 0L; - - case WM_SIZE: - // Another check for the minimization action. This check is - // quicker though... - if (wParam != SIZE_MINIMIZED) - { - GetClientRect(hwnd, &g_rcDst); - ClientToScreen(hwnd, &p); - g_rcDst.left = p.x; - g_rcDst.top = p.y; - g_rcDst.bottom += p.y; - g_rcDst.right += p.x; - g_rcSrc.left = 0; - g_rcSrc.right = g_sizex; - g_rcSrc.top = 0; - g_rcSrc.bottom = g_sizey; - // Here we multiply by 1000 to preserve 3 decimal places in the - // division opperation (we picked 1000 to be on the same order - // of magnitude as the stretch factor for easier comparisons) - g_dwXRatio = (g_rcDst.right - g_rcDst.left) * 1000 / - (g_rcSrc.right - g_rcSrc.left); - g_dwYRatio = (g_rcDst.bottom - g_rcDst.top) * 1000 / - (g_rcSrc.bottom - g_rcSrc.top); - CheckBoundries(); - } - return 0L; - - case WM_PAINT: - BeginPaint(hwnd, &ps); - // Check the primary surface to see if it's lost - if so you can - // pretty much bet that the other surfaces are also lost - thus - // restore EVERYTHING! If we got our surfaces stolen by a full - // screen app - then we'll destroy our primary - and won't be able - // to initialize it again. When we get our next paint message (the - // full screen app closed for example) we'll want to try to reinit - // the surfaces again - that's why there is a check for - // g_pDDSPrimary == NULL. The other option, is that our program - // went through this process, could init the primary again, but it - // couldn't init the overlay, that's why there's a third check for - // g_pDDSOverlay == NULL. Make sure that the check for - // !g_pDDSPrimary is BEFORE the IsLost call - that way if the - // pointer is NULL (ie. !g_pDDSPrimary is TRUE) - the compiler - // won't try to evaluate the IsLost function (which, since the - // g_pDDSPrimary surface is NULL, would be bad...). - if (!g_pDDSPrimary || (g_pDDSPrimary->IsLost() != DD_OK) || - (g_pDDSOverlay == NULL)) - { - DestroyOverlay(); - DestroyPrimary(); - if (DDPrimaryInit()) - if (DDOverlayInit()) - if (!DrawOverlay()) - DestroyOverlay(); - } - // UpdateOverlay is how we put the overlay on the screen. - if (g_pDDSOverlay && g_pDDSPrimary && g_video->updating) - { - hRet = g_pDDSOverlay->UpdateOverlay(&g_rcSrc, g_pDDSPrimary, - &g_rcDst, g_OverlayFlags, - &g_OverlayFX); -#ifdef _DEBUG - if(hRet != DD_OK) DisplayError("Can't update overlay", hRet); -#endif - } - EndPaint(hwnd, &ps); - return 0L; - - // process mouse and keyboard events - case WM_LBUTTONDOWN: mouse(1, lParam); break; - case WM_LBUTTONUP: mouse(-1, lParam); break; - case WM_RBUTTONDOWN: mouse(2, lParam); break; - case WM_RBUTTONUP: mouse(-2, lParam); break; - case WM_MBUTTONDOWN: mouse(3, lParam); break; - case WM_MBUTTONUP: mouse(-3, lParam); break; - case WM_CHAR: g_video->on_key(wParam); break; - - case WM_DISPLAYCHANGE: return 0L; - - case WM_DESTROY: - // Now, shut down the window... - PostQuitMessage(0); - return 0L; - } - return g_pUserProc? g_pUserProc(hwnd, iMsg, wParam, lParam) : DefWindowProc(hwnd, iMsg, wParam, lParam); -} - -DWORD WINAPI thread_vsync(LPVOID lpParameter) -{ - BOOL vblank = false; - while(g_video && g_video->running) { - while(!vblank && g_video && g_video->running) { - YIELD_TO_THREAD(); - LPDIRECTDRAW7 pDD(g_pDD); - if(pDD) pDD->GetVerticalBlankStatus(&vblank); - } - LPDIRECTDRAWSURFACE7 pDDSOverlay(g_pDDSOverlay); - if(pDDSOverlay) pDDSOverlay->UpdateOverlay(&g_rcSrc, g_pDDSPrimary, &g_rcDst, g_OverlayFlags | DDOVER_REFRESHALL, &g_OverlayFX); - do { - Sleep(1); - LPDIRECTDRAW7 pDD(g_pDD); - if(pDD) pDD->GetVerticalBlankStatus(&vblank); - } while(vblank && g_video && g_video->running); - while(g_video && !g_video->updating && g_video->running) Sleep(10); - } - return 0; -} - -///////////////////////////////////////////// public methods of video class /////////////////////// - -inline void mask2bits(unsigned int mask, color_t &save, depth_t &shift) -{ - save = mask; if(!mask) { shift = 8; return; } - shift = 0; while(!(mask&1)) ++shift, mask >>= 1; - int bits = 0; while(mask&1) ++bits, mask >>= 1; - shift += bits - 8; -} - -bool video::init_window(int sizex, int sizey) -{ - assert(win_hInstance != 0); - g_sizex = sizex; g_sizey = sizey; - if( !WinInit(win_hInstance, win_iCmdShow, gWndClass, title, false) ) - return DisplayError("Unable to initialize the program's window."); - running = true; - if( !DDInit() ) { - DestroyDDraw(); - goto fail; - } - if( !DDOverlayInit() || !DrawOverlay() ) { - DestroyOverlay(); - DestroyDDraw(); - goto fail; - } - DDPIXELFORMAT PixelFormat; memset(&PixelFormat, 0, sizeof(PixelFormat)); PixelFormat.dwSize = sizeof(PixelFormat); - g_pDDSOverlay->GetPixelFormat(&PixelFormat); - mask2bits(PixelFormat.dwRBitMask, red_mask, red_shift); - mask2bits(PixelFormat.dwGBitMask, green_mask, green_shift); - mask2bits(PixelFormat.dwBBitMask, blue_mask, blue_shift); - if(PixelFormat.dwFlags == DDPF_RGB) - depth = depth_t(PixelFormat.dwRGBBitCount); - else depth = -depth_t(PixelFormat.dwFourCC); - for(int i = 0, e = sizex * sizey * PixelFormat.dwRGBBitCount / 32, c = get_color(0, 0, 0); i < e; i++) - g_pImg[i] = c; // clear surface - ShowWindow(g_hAppWnd, SW_SHOW); - g_hVSync = CreateThread ( - NULL, // LPSECURITY_ATTRIBUTES security_attrs - 0, // SIZE_T stacksize - (LPTHREAD_START_ROUTINE) thread_vsync, - this, // argument - 0, 0); - SetPriorityClass(g_hVSync, IDLE_PRIORITY_CLASS); // questionable - return true; -fail: - g_pImg = new unsigned int[g_sizex * g_sizey]; - return false; -} - -void video::terminate() -{ - running = false; - DestroyOverlay(); - if(WaitForSingleObject(g_hVSync, 100) == WAIT_TIMEOUT) TerminateThread(g_hVSync, 0); - CloseHandle(g_hVSync); - DestroyDDraw(); - if(g_pImg) delete[] g_pImg; - g_pImg = 0; g_video = 0; -} -//////////// drawing area constructor & destructor ///////////// - -drawing_area::drawing_area(int x, int y, int sizex, int sizey) -: start_x(x), start_y(y), size_x(sizex), size_y(sizey), pixel_depth(g_video->depth), - base_index(y*g_sizex + x), max_index(g_sizex*g_sizey), index_stride(g_sizex), ptr32(g_pImg) -{ - assert(ptr32); assert(x < g_sizex); assert(y < g_sizey); - assert(x+sizex <= g_sizex); assert(y+sizey <= g_sizey); - - index = base_index; // current index -} - -void drawing_area::update() -{ -} - -#endif //_DXSDK_PRODUCT_MAJOR >= 9 diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/dxcheck.bat b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/dxcheck.bat deleted file mode 100644 index 5d17ad147..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/dxcheck.bat +++ /dev/null @@ -1,36 +0,0 @@ -@echo off -REM -REM Copyright 2005-2014 Intel Corporation. All Rights Reserved. -REM -REM This file is part of Threading Building Blocks. -REM -REM Threading Building Blocks is free software; you can redistribute it -REM and/or modify it under the terms of the GNU General Public License -REM version 2 as published by the Free Software Foundation. -REM -REM Threading Building Blocks is distributed in the hope that it will be -REM useful, but WITHOUT ANY WARRANTY; without even the implied warranty -REM of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -REM GNU General Public License for more details. -REM -REM You should have received a copy of the GNU General Public License -REM along with Threading Building Blocks; if not, write to the Free Software -REM Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -REM -REM As a special exception, you may use this file as part of a free software -REM library without restriction. Specifically, if other files instantiate -REM templates or use macros or inline functions from this file, or you compile -REM this file and link it with other files to produce an executable, this -REM file does not by itself cause the resulting executable to be covered by -REM the GNU General Public License. This exception does not however -REM invalidate any other reasons why the executable file might be covered by -REM the GNU General Public License. -REM -if "%DXSDK_DIR%"=="" goto error_no_DXSDK -goto end - -:error_no_DXSDK -echo DirectX SDK Check : error : This example requires the DirectX SDK. Either (re)-install the DirectX SDK, or set the DXSDK_DIR environment variable to indicate where it is installed. - -:end - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/gdivideo.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/gdivideo.cpp deleted file mode 100644 index db96d07c7..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/gdivideo.cpp +++ /dev/null @@ -1,154 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -// common Windows parts -#include "winvideo.h" -// include GDI+ headers -#include -// and another headers -#include - -// tag linking library -#pragma comment(lib, "gdiplus.lib") - -// global specific variables -Gdiplus::Bitmap * g_pBitmap; // main drawing bitmap -ULONG_PTR gdiplusToken; -Gdiplus::GdiplusStartupInput gdiplusStartupInput;// GDI+ - -//! display system error -bool DisplayError(LPSTR lpstrErr, HRESULT hres) -{ - static bool InError = false; - int retval = 0; - if (!InError) - { - InError = true; - LPCSTR lpMsgBuf; - if(!hres) hres = GetLastError(); - FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, hres, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &lpMsgBuf, 0, NULL ); - retval = MessageBox(g_hAppWnd, lpstrErr, lpMsgBuf, MB_OK|MB_ICONERROR); - LocalFree( (HLOCAL)lpMsgBuf ); - InError = false; - } - return false; -} - -//! Win event processing function -LRESULT CALLBACK InternalWndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam) -{ - switch (iMsg) - { - case WM_MOVE: - // Check to make sure our window exists before we tell it to repaint. - // This will fail the first time (while the window is being created). - if (hwnd) { - InvalidateRect(hwnd, NULL, FALSE); - UpdateWindow(hwnd); - } - return 0L; - - case WM_PAINT: - { - PAINTSTRUCT ps; - Gdiplus::Graphics graphics( BeginPaint(hwnd, &ps) ); - // redraw just requested area. This call is as fast as simple DrawImage() call. - if(g_video->updating) graphics.DrawImage(g_pBitmap, ps.rcPaint.left, ps.rcPaint.top, ps.rcPaint.left, ps.rcPaint.top, - ps.rcPaint.right, ps.rcPaint.bottom, Gdiplus::UnitPixel); - EndPaint(hwnd, &ps); - } - return 0L; - - // Proccess all mouse and keyboard events - case WM_LBUTTONDOWN: g_video->on_mouse( (int)LOWORD(lParam), (int)HIWORD(lParam), 1); break; - case WM_LBUTTONUP: g_video->on_mouse( (int)LOWORD(lParam), (int)HIWORD(lParam), -1); break; - case WM_RBUTTONDOWN: g_video->on_mouse( (int)LOWORD(lParam), (int)HIWORD(lParam), 2); break; - case WM_RBUTTONUP: g_video->on_mouse( (int)LOWORD(lParam), (int)HIWORD(lParam), -2); break; - case WM_MBUTTONDOWN: g_video->on_mouse( (int)LOWORD(lParam), (int)HIWORD(lParam), 3); break; - case WM_MBUTTONUP: g_video->on_mouse( (int)LOWORD(lParam), (int)HIWORD(lParam), -3); break; - case WM_CHAR: g_video->on_key( (int)wParam); break; - - // some useless stuff - case WM_ERASEBKGND: return 1; // keeps erase-background events from happening, reduces chop - case WM_DISPLAYCHANGE: return 0; - - // Now, shut down the window... - case WM_DESTROY: PostQuitMessage(0); return 0; - } - // call user defined proc, if exists - return g_pUserProc? g_pUserProc(hwnd, iMsg, wParam, lParam) : DefWindowProc(hwnd, iMsg, wParam, lParam); -} - -///////////// video functions //////////////// - -bool video::init_window(int sizex, int sizey) -{ - assert(win_hInstance != 0); - g_sizex = sizex; g_sizey = sizey; - if (!WinInit(win_hInstance, win_iCmdShow, gWndClass, title, true)) { - DisplayError("Unable to initialize the program's window."); - return false; - } - ShowWindow(g_hAppWnd, SW_SHOW); - Gdiplus::GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL); - g_pImg = new unsigned int[sizex*sizey]; - g_pBitmap = new Gdiplus::Bitmap(g_sizex, g_sizey, 4*g_sizex, PixelFormat32bppRGB, (BYTE*)g_pImg ); - running = true; - return true; -} - -void video::terminate() -{ - if(g_pBitmap) { delete g_pBitmap; g_pBitmap = 0; } - Gdiplus::GdiplusShutdown(gdiplusToken); - g_video = 0; running = false; - if(g_pImg) { delete[] g_pImg; g_pImg = 0; } -} - -//////////// drawing area constructor & destructor ///////////// - -drawing_area::drawing_area(int x, int y, int sizex, int sizey) -: start_x(x), start_y(y), size_x(sizex), size_y(sizey), pixel_depth(24), - base_index(y*g_sizex + x), max_index(g_sizex*g_sizey), index_stride(g_sizex), ptr32(g_pImg) -{ - assert(x < g_sizex); assert(y < g_sizey); - assert(x+sizex <= g_sizex); assert(y+sizey <= g_sizey); - - index = base_index; // current index -} - -void drawing_area::update() -{ - if(g_video->updating) { - RECT r; - r.left = start_x; r.right = start_x + size_x; - r.top = start_y; r.bottom = start_y + size_y; - InvalidateRect(g_hAppWnd, &r, false); - } -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/macvideo.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/macvideo.cpp deleted file mode 100644 index 06318a7ad..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/macvideo.cpp +++ /dev/null @@ -1,166 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#include "video.h" -#include -#include -#include -#include - -unsigned int* g_pImg = 0; -int g_sizex=0, g_sizey=0; -static video *g_video = 0; -static int g_fps = 0; -char *window_title=NULL; -#define WINDOW_TITLE_SIZE 256 -int cocoa_update=0; - -#include -#include -struct timeval g_time; - -video::video() - : red_mask(0xff0000), red_shift(16), green_mask(0xff00), - green_shift(8), blue_mask(0xff), blue_shift(0), depth(24) -{ - assert(g_video == 0); - g_video = this; title = "Video"; cocoa_update=1; updating = true; calc_fps = false; -} - -bool video::init_window(int x, int y) -{ - g_sizex = x; g_sizey = y; - g_pImg = new unsigned int[x*y]; - if( window_title==NULL ) - window_title = (char*)malloc(WINDOW_TITLE_SIZE); - strncpy( window_title, title, WINDOW_TITLE_SIZE-1 ); - running = true; - return true; -} - -bool video::init_console() -{ - running = true; - return true; -} - -void video::terminate() -{ - if(calc_fps) { - double fps = g_fps; - struct timezone tz; struct timeval end_time; gettimeofday(&end_time, &tz); - fps /= (end_time.tv_sec+1.0*end_time.tv_usec/1000000.0) - (g_time.tv_sec+1.0*g_time.tv_usec/1000000.0); - printf("%s: %.1f fps\n", title, fps); - } - g_video = 0; running = false; - if(g_pImg) { delete[] g_pImg; g_pImg = 0; } -} - -video::~video() -{ - if(g_video) terminate(); -} - -//! Count and display FPS count in titlebar -bool video::next_frame() -{ - if(calc_fps){ - if(!g_fps) { - struct timezone tz; gettimeofday(&g_time, &tz); - } - g_fps++; - } - struct timezone tz; struct timeval now_time; gettimeofday(&now_time, &tz); - double sec=((now_time.tv_sec+1.0*now_time.tv_usec/1000000.0) - (g_time.tv_sec+1.0*g_time.tv_usec/1000000.0)); - if( sec>1 ){ - if(calc_fps) { - memcpy(&g_time, &now_time, sizeof(g_time)); - int fps; - fps = g_fps/sec; - cocoa_update = (int)updating; - snprintf(window_title,WINDOW_TITLE_SIZE, "%s%s: %d fps", title, updating?"":" (no updating)", int(fps)); - g_fps=0; - } - } - return running; -} - - -void* thread_func(void*) -{ - g_video->on_process(); - exit(EXIT_SUCCESS); -} - -extern "C" void on_mouse_func(int x, int y, int k) -{ - g_video->on_mouse(x, y, k); - return; -} - -extern "C" void on_key_func(int x) -{ - g_video->on_key(x); - return; -} - -extern "C" int cocoa_main( int argc, char *argv[] ); -//! Do standard loop -void video::main_loop() -{ - pthread_t handle; - pthread_attr_t attr; - pthread_attr_init(&attr); - pthread_create(&handle,&attr,&thread_func,(void*)NULL); - pthread_detach(handle); - cocoa_main( 0, NULL ); -} - -//! Change window title -void video::show_title() -{ - strncpy( window_title, title, WINDOW_TITLE_SIZE ); - return; -} - -///////////////////////////////////////////// public methods of video class /////////////////////// - -drawing_area::drawing_area(int x, int y, int sizex, int sizey) - : start_x(x), start_y(y), size_x(sizex), size_y(sizey), pixel_depth(24), - base_index(y*g_sizex + x), max_index(g_sizex*g_sizey), index_stride(g_sizex), ptr32(g_pImg) -{ - assert(x < g_sizex); assert(y < g_sizey); - assert(x+sizex <= g_sizex); assert(y+sizey <= g_sizey); - - index = base_index; // current index -} - -void drawing_area::update() -{ - //nothing to do, updating via timer in cocoa part. -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/video.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/video.h deleted file mode 100644 index bf8273f71..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/video.h +++ /dev/null @@ -1,244 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __VIDEO_H__ -#define __VIDEO_H__ - -#include -#if _MSC_VER -#include // for uintptr_t -#else -#include // for uintptr_t -#endif -#if _WIN32 || _WIN64 -#include -#else -#include -#endif - -typedef unsigned int color_t; -typedef unsigned char colorcomp_t; -typedef signed char depth_t; - -//! Class for getting access to drawing memory -class drawing_memory -{ -#ifdef __TBB_MIC_OFFLOAD - // The address is kept as uintptr_t since - // the compiler could not offload a pointer -#endif - uintptr_t my_address; -public: - depth_t pixel_depth; - int sizex, sizey; - //! Get drawing memory - inline char* get_address() const { return reinterpret_cast(my_address); } - //! Get drawing memory size - inline int get_size() const { return ((pixel_depth>16) ? 4:2) * sizex * sizey; } - //! Set drawing memory - inline void set_address(char *mem) { my_address = reinterpret_cast(mem); } - - friend class drawing_area; - friend class video; -}; - -//! Simple proxy class for managing of different video systems -class video -{ - //! colorspace information - depth_t depth, red_shift, green_shift, blue_shift; - color_t red_mask, green_mask, blue_mask; - friend class drawing_area; - -public: - //! Constructor - video(); - //! Destructor - ~video(); - //! member to set window name - const char *title; - //! true is enable to show fps - bool calc_fps; - //! if true: on windows fork processing thread for on_process(), on non-windows note that next_frame() is called concurrently. - bool threaded; - //! true while running within main_loop() - bool running; - //! if true, do gui updating - bool updating; - //! initialize graphical video system - bool init_window(int sizex, int sizey); - //! initialize console. returns true if console is available - bool init_console(); - //! terminate video system - void terminate(); - //! Do standard event & processing loop. Use threaded = true to separate event/updating loop from frame processing - void main_loop(); - //! Process next frame - bool next_frame(); - //! Change window title - void show_title(); - //! translate RGB components into packed type - inline color_t get_color(colorcomp_t red, colorcomp_t green, colorcomp_t blue) const; - //! Get drawing memory descriptor - inline drawing_memory get_drawing_memory() const; - - //! code of the ESCape key - static const int esc_key = 27; - //! Mouse events handler. - virtual void on_mouse(int x, int y, int key) { } - //! Mouse events handler. - virtual void on_key(int key) { } - //! Main processing loop. Redefine with your own - virtual void on_process() { while(next_frame()); } - -#ifdef _WINDOWS - //! Windows specific members - //! if VIDEO_WINMAIN isn't defined then set this just before init() by arguments of WinMain - static HINSTANCE win_hInstance; static int win_iCmdShow; - //! optionally call it just before init() to set own. Use ascii strings convention - void win_set_class(WNDCLASSEX &); - //! load and set accelerator table from resources - void win_load_accelerators(int idc); -#endif -}; - -//! Drawing class -class drawing_area -{ - const size_t base_index, max_index, index_stride; - const depth_t pixel_depth; - unsigned int * const ptr32; - size_t index; -public: - const int start_x, start_y, size_x, size_y; - //! constructors - drawing_area(int x, int y, int sizex, int sizey); - inline drawing_area(int x, int y, int sizex, int sizey, const drawing_memory &dmem); - //! destructor - inline ~drawing_area(); - //! update the image - void update(); - //! set current position. local_x could be bigger then size_x - inline void set_pos(int local_x, int local_y); - //! put pixel in current position with incremental address calculating to next right pixel - inline void put_pixel(color_t color); - //! draw pixel at position by packed color - void set_pixel(int localx, int localy, color_t color) - { set_pos(localx, localy); put_pixel(color); } -}; - -extern int g_sizex; -extern int g_sizey; -extern unsigned int *g_pImg; - -inline drawing_memory video::get_drawing_memory() const -{ - drawing_memory dmem; - dmem.pixel_depth = depth; - dmem.my_address = reinterpret_cast(g_pImg); - dmem.sizex = g_sizex; - dmem.sizey = g_sizey; - return dmem; -} - -inline color_t video::get_color(colorcomp_t red, colorcomp_t green, colorcomp_t blue) const -{ - if(red_shift == 16) // only for depth == 24 && red_shift > blue_shift - return (red<<16) | (green<<8) | blue; - else if(depth >= 24) - return (red< 0) { - register depth_t bs = blue_shift, rs = red_shift; - if(blue_shift < 0) blue >>= -bs, bs = 0; - else /*red_shift < 0*/ red >>= -rs, rs = 0; - return ((red<2^16 - u = (2048 + (blue << 3) - (y >> 5)) >> 4; // (limit->2^12)>>4 - v = (2048 + (red << 3) - (y >> 5)) >> 4; - y = y >> 8; - return u | (y << 8) | (v << 16) | (y << 24); - } -} - -inline drawing_area::drawing_area(int x, int y, int sizex, int sizey, const drawing_memory &dmem) - : start_x(x), start_y(y), size_x(sizex), size_y(sizey), pixel_depth(dmem.pixel_depth), - base_index(y*dmem.sizex + x), max_index(dmem.sizex*dmem.sizey), index_stride(dmem.sizex), - ptr32(reinterpret_cast(dmem.my_address)) -{ - assert(x < dmem.sizex); assert(y < dmem.sizey); - assert(x+sizex <= dmem.sizex); assert(y+sizey <= dmem.sizey); - - index = base_index; // current index -} - -inline void drawing_area::set_pos(int local_x, int local_y) -{ - index = base_index + local_x + local_y*index_stride; -} - -inline void drawing_area::put_pixel(color_t color) -{ - assert(index < max_index); - if(pixel_depth > 16) ptr32[index++] = color; - else if(pixel_depth > 0) - ((unsigned short*)ptr32)[index++] = (unsigned short)color; - else { // UYVY colorspace - if(index&1) color >>= 16; - ((unsigned short*)ptr32)[index++] = (unsigned short)color; - } -} - -inline drawing_area::~drawing_area() -{ -#if ! __TBB_DEFINE_MIC - update(); -#endif -} - -#if defined(_WINDOWS) && (defined(VIDEO_WINMAIN) || defined(VIDEO_WINMAIN_ARGS) ) -#include -//! define WinMain for subsystem:windows. -#ifdef VIDEO_WINMAIN_ARGS -int main(int, char *[]); -#else -int main(); -#endif -int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, PSTR szCmdLine, int iCmdShow) -{ - video::win_hInstance = hInstance; video::win_iCmdShow = iCmdShow; -#ifdef VIDEO_WINMAIN_ARGS - return main(__argc, __argv); -#else - return main(); -#endif -} -#endif - -#endif// __VIDEO_H__ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/winvideo.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/winvideo.h deleted file mode 100644 index 13bae5a7a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/winvideo.h +++ /dev/null @@ -1,291 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/////// Common internal implementation of Windows-specific stuff ////////////// -/////// Must be the first included header ////////////// - -#ifndef __WINVIDEO_H__ -#define __WINVIDEO_H__ - -#ifndef _CRT_SECURE_NO_DEPRECATE -#define _CRT_SECURE_NO_DEPRECATE -#endif -// Check that the target Windows version has all API calls requried. -#ifndef _WIN32_WINNT -# define _WIN32_WINNT 0x0400 -#endif -#if _WIN32_WINNT<0x0400 -# define YIELD_TO_THREAD() Sleep(0) -#else -# define YIELD_TO_THREAD() SwitchToThread() -#endif -#include "video.h" -#include -#include -#include -#include - -#pragma comment(lib, "gdi32.lib") -#pragma comment(lib, "user32.lib") - -// maximum mumber of lines the output console should have -static const WORD MAX_CONSOLE_LINES = 500; -const COLORREF RGBKEY = RGB(8, 8, 16); // at least 8 for 16-bit palette -HWND g_hAppWnd; // The program's window handle -HANDLE g_handles[2] = {0,0};// thread and wake up event -unsigned int * g_pImg = 0; // drawing memory -int g_sizex, g_sizey; -static video * g_video = 0; -WNDPROC g_pUserProc = 0; -HINSTANCE video::win_hInstance = 0; -int video::win_iCmdShow = 0; -static WNDCLASSEX * gWndClass = 0; -static HACCEL hAccelTable = 0; -static DWORD g_msec = 0; -static int g_fps = 0, g_updates = 0, g_skips = 0; - -bool DisplayError(LPSTR lpstrErr, HRESULT hres = 0); // always returns false -LRESULT CALLBACK InternalWndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam); - -//! Create window -bool WinInit(HINSTANCE hInstance, int nCmdShow, WNDCLASSEX *uwc, const char *title, bool fixedsize) -{ - WNDCLASSEX wndclass; // Our app's windows class - if(uwc) { - memcpy(&wndclass, uwc, sizeof(wndclass)); - g_pUserProc = uwc->lpfnWndProc; - } else { - memset(&wndclass, 0, sizeof(wndclass)); - wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); - wndclass.lpszClassName = title; - } - wndclass.cbSize = sizeof(wndclass); - wndclass.hInstance = hInstance; - wndclass.lpfnWndProc = InternalWndProc; - wndclass.style |= CS_HREDRAW | CS_VREDRAW; - wndclass.hbrBackground = CreateSolidBrush(RGBKEY); - - if( !RegisterClassExA(&wndclass) ) return false; - int xaddend = GetSystemMetrics(fixedsize?SM_CXFIXEDFRAME:SM_CXFRAME)*2; - int yaddend = GetSystemMetrics(fixedsize?SM_CYFIXEDFRAME:SM_CYFRAME)*2 + GetSystemMetrics(SM_CYCAPTION); - if(wndclass.lpszMenuName) yaddend += GetSystemMetrics(SM_CYMENU); - - // Setup the new window's physical parameters - and tell Windows to create it - g_hAppWnd = CreateWindowA(wndclass.lpszClassName, // Window class name - title, // Window caption - !fixedsize ? WS_OVERLAPPEDWINDOW : // Window style - WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX, - CW_USEDEFAULT, // Initial x pos: use default placement - 0, // Initial y pos: not used here - g_sizex+xaddend,// Initial x size - g_sizey+yaddend,// Initial y size - NULL, // parent window handle - NULL, // window menu handle - hInstance, // program instance handle - NULL); // Creation parameters - return g_hAppWnd != NULL; -} - -//! create console window with redirection -static bool RedirectIOToConsole(void) -{ - int hConHandle; size_t lStdHandle; - CONSOLE_SCREEN_BUFFER_INFO coninfo; - FILE *fp; - // allocate a console for this app - AllocConsole(); - - // set the screen buffer to be big enough to let us scroll text - GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &coninfo); - coninfo.dwSize.Y = MAX_CONSOLE_LINES; - SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), coninfo.dwSize); - - // redirect unbuffered STDOUT to the console - lStdHandle = (size_t)GetStdHandle(STD_OUTPUT_HANDLE); - hConHandle = _open_osfhandle(lStdHandle, _O_TEXT); - if(hConHandle <= 0) return false; - fp = _fdopen( hConHandle, "w" ); - *stdout = *fp; - setvbuf( stdout, NULL, _IONBF, 0 ); - - // redirect unbuffered STDERR to the console - lStdHandle = (size_t)GetStdHandle(STD_ERROR_HANDLE); - hConHandle = _open_osfhandle(lStdHandle, _O_TEXT); - if(hConHandle > 0) { - fp = _fdopen( hConHandle, "w" ); - *stderr = *fp; - setvbuf( stderr, NULL, _IONBF, 0 ); - } - - // redirect unbuffered STDIN to the console - lStdHandle = (size_t)GetStdHandle(STD_INPUT_HANDLE); - hConHandle = _open_osfhandle(lStdHandle, _O_TEXT); - if(hConHandle > 0) { - fp = _fdopen( hConHandle, "r" ); - *stdin = *fp; - setvbuf( stdin, NULL, _IONBF, 0 ); - } - - // make cout, wcout, cin, wcin, wcerr, cerr, wclog and clog - // point to console as well - std::ios::sync_with_stdio(); - return true; -} - - -video::video() - : red_mask(0xff0000), red_shift(16), green_mask(0xff00), - green_shift(8), blue_mask(0xff), blue_shift(0), depth(24) -{ - assert(g_video == 0); - g_video = this; title = "Video"; running = threaded = calc_fps = false; updating = true; -} - -//! optionally call it just before init() to set own -void video::win_set_class(WNDCLASSEX &wcex) -{ - gWndClass = &wcex; -} - -void video::win_load_accelerators(int idc) -{ - hAccelTable = LoadAccelerators(win_hInstance, MAKEINTRESOURCE(idc)); -} - -bool video::init_console() -{ - if(RedirectIOToConsole()) { - if(!g_pImg && g_sizex && g_sizey) - g_pImg = new unsigned int[g_sizex * g_sizey]; - if(g_pImg) running = true; - return true; - } - return false; -} - -video::~video() -{ - if(g_video) terminate(); -} - -DWORD WINAPI thread_video(LPVOID lpParameter) -{ - video *v = (video*)lpParameter; - v->on_process(); - return 0; -} - -static bool loop_once(video *v) -{ - // screen update notify - if(int updates = g_updates) { - g_updates = 0; - if(g_video->updating) { g_skips += updates-1; g_fps++; } - else g_skips += updates; - UpdateWindow(g_hAppWnd); - } - // update fps - DWORD msec = GetTickCount(); - if(v->calc_fps && msec >= g_msec+1000) { - double sec = (msec - g_msec)/1000.0; - char buffer[256], n = _snprintf(buffer, 128, "%s: %d fps", v->title, int(double(g_fps + g_skips)/sec)); - if(g_skips) _snprintf(buffer+n, 128, " - %d skipped = %d updates", int(g_skips/sec), int(g_fps/sec)); - SetWindowTextA(g_hAppWnd, buffer); - g_msec = msec; g_skips = g_fps = 0; - } - // event processing, including painting - MSG msg; - if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)){ - if( msg.message == WM_QUIT ) { v->running = false; return false; } - if( !hAccelTable || !TranslateAccelerator(msg.hwnd, hAccelTable, &msg) ){ - TranslateMessage(&msg); - DispatchMessage(&msg); - } - return true; // try again - } - return false; -} - -//! Do standard event loop -void video::main_loop() -{ - // let Windows draw and unroll the window - InvalidateRect(g_hAppWnd, 0, false); - g_msec = GetTickCount(); // let's stay for 0,5 sec - while(g_msec + 500 > GetTickCount()) { loop_once(this); Sleep(1); } - g_msec = GetTickCount(); - // now, start main process - if(threaded) { - g_handles[0] = CreateThread ( - NULL, // LPSECURITY_ATTRIBUTES security_attrs - 0, // SIZE_T stacksize - (LPTHREAD_START_ROUTINE) thread_video, - this, // argument - 0, 0); - if(!g_handles[0]) { DisplayError("Can't create thread"); return; } - else // harmless race is possible here - g_handles[1] = CreateEvent(NULL, false, false, NULL); - while(running) { - while(loop_once(this)); - YIELD_TO_THREAD(); // give time for processing when running on single CPU - DWORD r = MsgWaitForMultipleObjects(2, g_handles, false, INFINITE, QS_ALLINPUT^QS_MOUSEMOVE); - if(r == WAIT_OBJECT_0) break; // thread terminated - } - running = false; - if(WaitForSingleObject(g_handles[0], 3000) == WAIT_TIMEOUT){ - // there was not enough time for graceful shutdown, killing the example with code 1. - exit(1); - } - if(g_handles[0]) CloseHandle(g_handles[0]); - if(g_handles[1]) CloseHandle(g_handles[1]); - g_handles[0] = g_handles[1] = 0; - } - else on_process(); -} - -//! Refresh screen picture -bool video::next_frame() -{ - if(!running) return false; - g_updates++; // Fast but inaccurate counter. The data race here is benign. - if(!threaded) while(loop_once(this)); - else if(g_handles[1]) { - SetEvent(g_handles[1]); - YIELD_TO_THREAD(); - } - return true; -} - -//! Change window title -void video::show_title() -{ - if(g_hAppWnd) - SetWindowTextA(g_hAppWnd, title); -} - -#endif //__WINVIDEO_H__ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/Info.plist b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/Info.plist deleted file mode 100644 index 23d7a2b83..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/Info.plist +++ /dev/null @@ -1,59 +0,0 @@ - - - - - BuildMachineOSBuild - 11D50d - CFBundleDevelopmentRegion - en - CFBundleDisplayName - - CFBundleExecutable - tbbExample - CFBundleIdentifier - Intel.tbbExample - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - tbbExample - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - DTCompiler - com.apple.compilers.llvm.clang.1_0 - DTPlatformBuild - 4E1019 - DTPlatformVersion - GM - DTSDKBuild - 11D50a - DTSDKName - macosx10.7 - DTXcode - 0431 - DTXcodeBuild - 4E1019 - LSApplicationCategoryType - public.app-category.business - LSEnvironment - - DYLD_LIBRARY_PATH - Contents/Resources:.:../Resources:/tmp:$DYLD_LIBRARY_PATH - LIBRARY_PATH - Contents/Resources:.:../:/tmp:$DYLD_LIBRARY_PATH - - LSMinimumSystemVersion - 10.7 - NSHumanReadableCopyright - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - NSMainNibFile - MainMenu - NSPrincipalClass - NSApplication - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/OpenGLView.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/OpenGLView.h deleted file mode 100644 index 093d06c77..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/OpenGLView.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#import -#import - -@interface OpenGLView : NSOpenGLView{ - NSTimer *timer; -} - -@property (nonatomic,retain) NSTimer *timer; - -- (void) drawRect:(NSRect)start; -- (void) mouseDown:(NSEvent *)theEvent; -- (void) keyDown:(NSEvent *)theEvent; -- (BOOL) acceptsFirstResponder; -- (void) viewDidEndLiveResize; - -@end diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/OpenGLView.m b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/OpenGLView.m deleted file mode 100644 index 2d4c9d430..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/OpenGLView.m +++ /dev/null @@ -1,93 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#import "OpenGLView.h" -#import -#import "tbbAppDelegate.h" - -// defined in macvideo.cpp -extern char* window_title; -extern int cocoa_update; -extern int g_sizex, g_sizey; -extern unsigned int *g_pImg; -void on_mouse_func(int x, int y, int k); -void on_key_func(int x); - -@implementation OpenGLView - -@synthesize timer; - -- (void) drawRect:(NSRect)start -{ - glWindowPos2i(0, (int)self.visibleRect.size.height); - glPixelZoom( (float)self.visibleRect.size.width /(float)g_sizex, - -(float)self.visibleRect.size.height/(float)g_sizey); - glDrawPixels(g_sizex, g_sizey, GL_BGRA_EXT, GL_UNSIGNED_INT_8_8_8_8_REV, g_pImg); - glFlush(); - - timer = [NSTimer scheduledTimerWithTimeInterval:0.03 target:self selector:@selector(update_window) userInfo:nil repeats:YES]; -} - --(void) update_window{ - if( cocoa_update ) [self setNeedsDisplay:YES]; // TODO also clear cocoa_update? - if( window_title ) [_window setTitle:[NSString stringWithFormat:@"%s", window_title]]; -} - --(void) keyDown:(NSEvent *)theEvent{ - on_key_func([theEvent.characters characterAtIndex:0]); -} - --(void) mouseDown:(NSEvent *)theEvent{ - // mouse event for seismic and fractal - NSPoint point= theEvent.locationInWindow; - const int x = (int)point.x; - const int y = (int)point.y; - NSRect rect = self.visibleRect; - on_mouse_func(x*g_sizex/(int)rect.size.width,((int)rect.size.height-y)*g_sizey/(int)rect.size.height,1); - [self setNeedsDisplay:YES]; -} - -- (BOOL) acceptsFirstResponder -{ - return YES; -} - -- (void) rightMouseDown:(NSEvent *)theEvent -{ - return; -} - --(void) viewDidEndLiveResize -{ - NSRect rect = self.visibleRect; - const int x=(int)rect.size.width; - const int y=(int)rect.size.height; - [_window setTitle:[NSString stringWithFormat:@"X=%d Y=%d", x,y]]; -} - -@end diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/PkgInfo b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/PkgInfo deleted file mode 100644 index bd04210fb..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/PkgInfo +++ /dev/null @@ -1 +0,0 @@ -APPL???? \ No newline at end of file diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/en.lproj/InfoPlist.strings b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/en.lproj/InfoPlist.strings deleted file mode 100644 index 477b28ff8..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/en.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/en.lproj/MainMenu.nib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/en.lproj/MainMenu.nib deleted file mode 100644 index bbcd0057e..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/en.lproj/MainMenu.nib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/en.lproj/MainMenu.xib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/en.lproj/MainMenu.xib deleted file mode 100644 index 14faab363..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/en.lproj/MainMenu.xib +++ /dev/null @@ -1,291 +0,0 @@ - - - - 1070 - 11D50d - 2182 - 1138.32 - 568.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 2182 - - - NSWindowTemplate - NSView - NSMenu - NSMenuItem - NSCustomObject - - - com.apple.InterfaceBuilder.CocoaPlugin - - - PluginDependencyRecalculationVersion - - - - - NSApplication - - - FirstResponder - - - NSApplication - - - AMainMenu - - - - tbbExample - - 1048576 - 2147483647 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - submenuAction: - - tbbExample - - - - Quit tbbExample - q - 1048576 - 2147483647 - - - - - _NSAppleMenu - - - - _NSMainMenu - - - 15 - 2 - {{100, 100}, {480, 360}} - 1148718080 - tbbExample - NSWindow - - - - - 4352 - {480, 360} - - - 2 - {1, 9} - {1, 1} - - {{0, 0}, {1280, 1002}} - {10000000000000, 10000000000000} - YES - - - tbbAppDelegate - - - NSFontManager - - - - - - - terminate: - - - - 449 - - - - delegate - - - - 495 - - - - window - - - - 532 - - - - - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 29 - - - - - - - - 56 - - - - - - - - 57 - - - - - - - - 136 - - - - - 371 - - - - - - - - 372 - - - - - 420 - - - - - 494 - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin - {{380, 496}, {480, 360}} - - OpenGLView - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - 539 - - - - - OpenGLView - NSOpenGLView - - IBProjectSource - ./Classes/OpenGLView.h - - - - tbbAppDelegate - NSObject - - saveAction: - id - - - saveAction: - - saveAction: - id - - - - window - NSWindow - - - window - - window - NSWindow - - - - IBProjectSource - ./Classes/tbbAppDelegate.h - - - - - 0 - IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - YES - 3 - - {11, 11} - {10, 3} - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/main.m b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/main.m deleted file mode 100644 index 4ff3c68a6..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/main.m +++ /dev/null @@ -1,34 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#import - -int cocoa_main(int argc, char *argv[]) -{ - return NSApplicationMain(argc, (const char **)argv); -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/tbbAppDelegate.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/tbbAppDelegate.h deleted file mode 100644 index ab2061f78..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/tbbAppDelegate.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -// -// Created by Xcode* 4.3.2 -// - -#import - -@interface tbbAppDelegate : NSObject { - __unsafe_unretained NSWindow *_window; -} - -@property (assign) IBOutlet NSWindow *window; - -- (BOOL) applicationShouldTerminateAfterLastWindowClosed:(NSApplication *) sender; - -@end diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/tbbAppDelegate.m b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/tbbAppDelegate.m deleted file mode 100644 index 8321eed1d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/tbbAppDelegate.m +++ /dev/null @@ -1,59 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -// -// Created by Xcode* 4.3.2 -// - -#import "tbbAppDelegate.h" -#import - -@implementation tbbAppDelegate - -@synthesize window = _window; - -//declared in macvideo.cpp file -extern int g_sizex, g_sizey; - -- (void)applicationDidFinishLaunching:(NSNotification *)aNotification -{ - // Insert code here to initialize your application - NSRect windowSize; - windowSize.size.height = g_sizey; - windowSize.size.width = g_sizex; - windowSize.origin=_window.frame.origin; - [_window setFrame:windowSize display:YES]; - -} - -- (BOOL) applicationShouldTerminateAfterLastWindowClosed:(NSApplication *) sender -{ - return YES; -} - -@end diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/tbbExample-Info.plist b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/tbbExample-Info.plist deleted file mode 100644 index 962010ed2..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/tbbExample-Info.plist +++ /dev/null @@ -1,45 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIconFile - - CFBundleIdentifier - Intel.${PRODUCT_NAME:rfc1034identifier} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - LSEnvironment - - DYLD_LIBRARY_PATH - Contents/Resources:.:../Resources:/tmp:$DYLD_LIBRARY_PATH - LIBRARY_PATH - Contents/Resources:.:../:/tmp:$DYLD_LIBRARY_PATH - - CFBundleDisplayName - - CFBundleVersion - 1 - LSApplicationCategoryType - public.app-category.business - LSMinimumSystemVersion - ${MACOSX_DEPLOYMENT_TARGET} - NSHumanReadableCopyright - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - NSMainNibFile - MainMenu - NSPrincipalClass - NSApplication - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/tbbExample-Prefix.pch b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/tbbExample-Prefix.pch deleted file mode 100644 index 6e713af04..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xcode/tbbExample/tbbExample-Prefix.pch +++ /dev/null @@ -1,35 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -// -// Prefix header for all source files of the 'tbbExample' target in the 'tbbExample' project -// - -#ifdef __OBJC__ - #import -#endif diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xvideo.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xvideo.cpp deleted file mode 100644 index 3f13d9603..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/gui/xvideo.cpp +++ /dev/null @@ -1,393 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -// Uncomment next line to disable shared memory features if you do not have libXext -// (http://www.xfree86.org/current/mit-shm.html) -//#define X_NOSHMEM - -// Note that it may happen that the build environment supports the shared-memory extension -// (so there's no build-time reason to disable the relevant code by defining X_NOSHMEM), -// but that using shared memory still fails at run time. -// This situation will (ultimately) cause the error handler set by XSetErrorHandler() -// to be invoked with XErrorEvent::minor_code==X_ShmAttach. The code below tries to make -// such a determination at XShmAttach() time, which seems plausible, but unfortunately -// it has also been observed in a specific environment that the error may be reported -// at a later time instead, even after video::init_window() has returned. -// It is not clear whether this may happen in that way in any environment where it might -// depend on the kind of display, e.g., local vs. over "ssh -X", so #define'ing X_NOSHMEM -// may not always be the appropriate solution, therefore an environment variable -// has been introduced to disable shared memory at run time. -// A diagnostic has been added to advise the user about possible workarounds. -// X_ShmAttach macro was changed to 1 due to recent changes to X11/extensions/XShm.h header. - -#include "video.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifndef X_NOSHMEM -#include -#include -#include -#include - -static XShmSegmentInfo shmseginfo; -static Pixmap pixmap = 0; -static bool already_called_X_ShmAttach = false; -static bool already_advised_about_NOSHMEM_workarounds = false; -static const char* NOSHMEM_env_var_name = "TBB_EXAMPLES_X_NOSHMEM"; -#endif -static char *display_name = NULL; -static Display *dpy = NULL; -static Screen *scrn; -static Visual *vis; -static Colormap cmap; -static GC gc; -static Window win, rootW; -static int dispdepth = 0; -static XGCValues xgcv; -static XImage *ximage; -static int x_error = 0; -static int vidtype = 3; -int g_sizex, g_sizey; -static video *g_video = 0; -unsigned int *g_pImg = 0; -static int g_fps = 0; -struct timeval g_time; -static pthread_mutex_t g_mutex = PTHREAD_MUTEX_INITIALIZER; -Atom _XA_WM_DELETE_WINDOW = 0;// like in Xatom.h - -///////////////////////////////////////////// public methods of video class /////////////////////// - -video::video() -{ - assert(g_video == 0); - g_video = this; title = "Video"; calc_fps = running = false; updating = true; -} - -inline void mask2bits(unsigned int mask, unsigned int &save, depth_t &shift) -{ - save = mask; if(!mask) { shift = dispdepth/3; return; } - shift = 0; while(!(mask&1)) ++shift, mask >>= 1; - int bits = 0; while(mask&1) ++bits, mask >>= 1; - shift += bits - 8; -} - -int xerr_handler(Display* dpy_, XErrorEvent *error) -{ - x_error = error->error_code; - if(g_video) g_video->running = false; -#ifndef X_NOSHMEM - if (error->minor_code==1/*X_ShmAttach*/ && already_called_X_ShmAttach && !already_advised_about_NOSHMEM_workarounds) - { - char err[256]; XGetErrorText(dpy_, x_error, err, 255); - fprintf(stderr, "Warning: Can't attach shared memory to display: %s (%d)\n", err, x_error); - fprintf(stderr, "If you are seeing a black output window, try setting %s environment variable to 1" - " to disable shared memory extensions (0 to re-enable, other values undefined)," - " or rebuilding with X_NOSHMEM defined in " __FILE__ "\n", NOSHMEM_env_var_name); - already_advised_about_NOSHMEM_workarounds = true; - } -#else - (void) dpy_; // warning prevention -#endif - return 0; -} - -bool video::init_window(int xsize, int ysize) -{ - { //enclose local variables before fail label - g_sizex = xsize; g_sizey = ysize; - - // Open the display - if (!dpy) { - dpy = XOpenDisplay(display_name); - if (!dpy) { - fprintf(stderr, "Can't open X11 display %s\n", XDisplayName(display_name)); - goto fail; - } - } - int theScreen = DefaultScreen(dpy); - scrn = ScreenOfDisplay(dpy, theScreen); - dispdepth = DefaultDepth(dpy, theScreen); - XVisualInfo vinfo; - if (!( (dispdepth >= 15 && dispdepth <= 32 && XMatchVisualInfo(dpy, theScreen, dispdepth, TrueColor, &vinfo) ) - || XMatchVisualInfo(dpy, theScreen, 24, TrueColor, &vinfo) - || XMatchVisualInfo(dpy, theScreen, 32, TrueColor, &vinfo) - || XMatchVisualInfo(dpy, theScreen, 16, TrueColor, &vinfo) - || XMatchVisualInfo(dpy, theScreen, 15, TrueColor, &vinfo) - )) { - fprintf(stderr, "Display has no appropriate True Color visual\n"); - goto fail; - } - vis = vinfo.visual; - depth = dispdepth = vinfo.depth; - mask2bits(vinfo.red_mask, red_mask, red_shift); - mask2bits(vinfo.green_mask, green_mask, green_shift); - mask2bits(vinfo.blue_mask, blue_mask, blue_shift); - rootW = RootWindow(dpy, theScreen); - cmap = XCreateColormap(dpy, rootW, vis, AllocNone); - XSetWindowAttributes attrs; - attrs.backing_store = Always; - attrs.colormap = cmap; - attrs.event_mask = StructureNotifyMask|KeyPressMask|ButtonPressMask|ButtonReleaseMask; - attrs.background_pixel = BlackPixelOfScreen(scrn); - attrs.border_pixel = WhitePixelOfScreen(scrn); - win = XCreateWindow(dpy, rootW, - 0, 0, xsize, ysize, 2, - dispdepth, InputOutput, vis, - CWBackingStore | CWColormap | CWEventMask | - CWBackPixel | CWBorderPixel, - &attrs); - if(!win) { - fprintf(stderr, "Can't create the window\n"); - goto fail; - } - XSizeHints sh; - sh.flags = PSize | PMinSize | PMaxSize; - sh.width = sh.min_width = sh.max_width = xsize; - sh.height = sh.min_height = sh.max_height = ysize; - XSetStandardProperties( dpy, win, g_video->title, g_video->title, None, NULL, 0, &sh ); - _XA_WM_DELETE_WINDOW = XInternAtom(dpy, "WM_DELETE_WINDOW", false); - XSetWMProtocols(dpy, win, &_XA_WM_DELETE_WINDOW, 1); - gc = XCreateGC(dpy, win, 0L, &xgcv); - XMapRaised(dpy, win); - XFlush(dpy); -#ifdef X_FULLSYNC - XSynchronize(dpy, true); -#endif - XSetErrorHandler(xerr_handler); - - int imgbytes = xsize*ysize*(dispdepth<=16?2:4); - const char *vidstr; -#ifndef X_NOSHMEM - int major, minor, pixmaps; - if(XShmQueryExtension(dpy) && - XShmQueryVersion(dpy, &major, &minor, &pixmaps)) - { // Shared memory - if(NULL!=getenv(NOSHMEM_env_var_name) && 0!=strcmp("0",getenv(NOSHMEM_env_var_name))) { - goto generic; - } - shmseginfo.shmid = shmget(IPC_PRIVATE, imgbytes, IPC_CREAT|0777); - if(shmseginfo.shmid < 0) { - fprintf(stderr, "Warning: Can't get shared memory: %s\n", strerror(errno)); - goto generic; - } - g_pImg = (unsigned int*)(shmseginfo.shmaddr = (char*)shmat(shmseginfo.shmid, 0, 0)); - if(g_pImg == (unsigned int*)-1) { - fprintf(stderr, "Warning: Can't attach to shared memory: %s\n", strerror(errno)); - shmctl(shmseginfo.shmid, IPC_RMID, NULL); - goto generic; - } - shmseginfo.readOnly = false; - if(!XShmAttach(dpy, &shmseginfo) || x_error) { - char err[256]; XGetErrorText(dpy, x_error, err, 255); - fprintf(stderr, "Warning: Can't attach shared memory to display: %s (%d)\n", err, x_error); - shmdt(shmseginfo.shmaddr); shmctl(shmseginfo.shmid, IPC_RMID, NULL); - goto generic; - } - already_called_X_ShmAttach = true; - -#ifndef X_NOSHMPIX - if(pixmaps && XShmPixmapFormat(dpy) == ZPixmap) - { // Pixmaps - vidtype = 2; vidstr = "X11 shared memory pixmap"; - pixmap = XShmCreatePixmap(dpy, win, (char*)g_pImg, &shmseginfo, xsize, ysize, dispdepth); - XSetWindowBackgroundPixmap(dpy, win, pixmap); - } else -#endif//!X_NOSHMPIX - { // Standard - vidtype = 1; vidstr = "X11 shared memory"; - ximage = XShmCreateImage(dpy, vis, dispdepth, - ZPixmap, 0, &shmseginfo, xsize, ysize); - if(!ximage) { - fprintf(stderr, "Can't create the shared image\n"); - goto fail; - } - assert(ximage->bytes_per_line == xsize*(dispdepth<=16?2:4)); - ximage->data = shmseginfo.shmaddr; - } - } else -#endif - { -#ifndef X_NOSHMEM -generic: -#endif - vidtype = 0; vidstr = "generic X11"; - g_pImg = new unsigned int[imgbytes/sizeof(int)]; - ximage = XCreateImage(dpy, vis, dispdepth, ZPixmap, 0, (char*)g_pImg, xsize, ysize, 32, imgbytes/ysize); - if(!ximage) { - fprintf(stderr, "Can't create the image\n"); - goto fail; - } - } - // Note: It may be more efficient to adopt the server's byte order - // and swap once per get_color() call instead of once per pixel. - const uint32_t probe = 0x03020100; - const bool big_endian = (((const char*)(&probe))[0]==0x03); - ximage->byte_order = big_endian ? MSBFirst : LSBFirst; - - printf("Note: using %s with %s visual for %d-bit color depth\n", vidstr, vis==DefaultVisual(dpy, theScreen)?"default":"non-default", dispdepth); - running = true; - return true; - } // end of enclosing local variables -fail: - terminate(); init_console(); - return false; -} - -bool video::init_console() -{ - if(!g_pImg && g_sizex && g_sizey) { - dispdepth = 24; red_shift = 16; vidtype = 3; // fake video - g_pImg = new unsigned int[g_sizex*g_sizey]; - running = true; - } - return true; -} - -void video::terminate() -{ - running = false; - if(dpy) { - vidtype = 3; // stop video - if(threaded) { pthread_mutex_lock(&g_mutex); pthread_mutex_unlock(&g_mutex); } - if(ximage) { XDestroyImage(ximage); ximage = 0; g_pImg = 0; } // it frees g_pImg for vidtype == 0 -#ifndef X_NOSHMEM - if(pixmap) XFreePixmap(dpy, pixmap); - if(shmseginfo.shmaddr) { XShmDetach(dpy, &shmseginfo); shmdt(shmseginfo.shmaddr); g_pImg = 0; } - if(shmseginfo.shmid >= 0) shmctl(shmseginfo.shmid, IPC_RMID, NULL); -#endif - if(gc) XFreeGC(dpy, gc); - if(win) XDestroyWindow(dpy, win); - XCloseDisplay(dpy); dpy = 0; - } - if(g_pImg) { delete[] g_pImg; g_pImg = 0; } // if was allocated for console mode -} - -video::~video() -{ - if(g_video) terminate(); - g_video = 0; -} - -//! Do standard event loop -void video::main_loop() -{ - struct timezone tz; gettimeofday(&g_time, &tz); - on_process(); -} - -//! Check for pending events once -bool video::next_frame() -{ - if(!running) return false; - //! try acquire mutex if threaded code, returns on failure - if(vidtype == 3 || threaded && pthread_mutex_trylock(&g_mutex)) - return running; - //! Refresh screen picture - g_fps++; -#ifndef X_NOSHMPIX - if(vidtype == 2 && updating) XClearWindow(dpy, win); -#endif - while( XPending(dpy) ) { - XEvent report; XNextEvent(dpy, &report); - switch( report.type ) { - case ClientMessage: - if(report.xclient.format != 32 || report.xclient.data.l[0] != _XA_WM_DELETE_WINDOW) break; - case DestroyNotify: - running = false; - case KeyPress: - on_key( XLookupKeysym(&report.xkey, 0) ); break; - case ButtonPress: - on_mouse( report.xbutton.x, report.xbutton.y, report.xbutton.button ); break; - case ButtonRelease: - on_mouse( report.xbutton.x, report.xbutton.y, -report.xbutton.button ); break; - } - } - struct timezone tz; struct timeval now_time; gettimeofday(&now_time, &tz); - double sec = (now_time.tv_sec+1.0*now_time.tv_usec/1000000.0) - (g_time.tv_sec+1.0*g_time.tv_usec/1000000.0); - if(sec > 1) { - memcpy(&g_time, &now_time, sizeof(g_time)); - if(calc_fps) { - double fps = g_fps; g_fps = 0; - char buffer[256]; snprintf(buffer, 256, "%s%s: %d fps", title, updating?"":" (no updating)", int(fps/sec)); - XStoreName(dpy, win, buffer); - } -#ifndef X_FULLSYNC - XSync(dpy, false); // It is often better then using XSynchronize(dpy, true) -#endif//X_FULLSYNC - } - if(threaded) pthread_mutex_unlock(&g_mutex); - return true; -} - -//! Change window title -void video::show_title() -{ - if(vidtype < 3) - XStoreName(dpy, win, title); -} - -drawing_area::drawing_area(int x, int y, int sizex, int sizey) - : start_x(x), start_y(y), size_x(sizex), size_y(sizey), pixel_depth(dispdepth), - base_index(y*g_sizex + x), max_index(g_sizex*g_sizey), index_stride(g_sizex), ptr32(g_pImg) -{ - assert(x < g_sizex); assert(y < g_sizey); - assert(x+sizex <= g_sizex); assert(y+sizey <= g_sizey); - - index = base_index; // current index -} - -void drawing_area::update() -{ - if(!g_video->updating) return; -#ifndef X_NOSHMEM - switch(vidtype) { - case 0: -#endif - pthread_mutex_lock(&g_mutex); - if(vidtype == 0) XPutImage(dpy, win, gc, ximage, start_x, start_y, start_x, start_y, size_x, size_y); - pthread_mutex_unlock(&g_mutex); -#ifndef X_NOSHMEM - break; - case 1: - pthread_mutex_lock(&g_mutex); - if(vidtype == 1) XShmPutImage(dpy, win, gc, ximage, start_x, start_y, start_x, start_y, size_x, size_y, false); - pthread_mutex_unlock(&g_mutex); - break; - /*case 2: make it in next_frame(); break;*/ - } -#endif -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/index.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/index.html deleted file mode 100644 index 0fe0ab5c7..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/index.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -

Overview

-This directory contains common code that is used in the Intel® Threading Building Blocks (Intel® TBB) examples. - -

-This code is not intended to be used directly. It is incorporated automatically by the examples that need it. -

- -

Directories

-
-
gui -
GUI code for examples that have graphical user interfaces. Currently supports: -
    -
  • GDI+*, DirectDraw*, Direct2D* (Windows* systems) -
  • OpenGL* (OS X* systems) -
  • X window (Linux* or OS X* systems) -
- See the examples that use the GUI - (tachyon, seismic) - for more details. -
-
-
utility -
Common driver & utility code for examples. Currently provides: -
    -
  • class FastRandom - a random number generator that uses linear congruental method - (fast_random.h) -
  • class thread_number_range - a class to specify the numbers of threads an example should use - (utility.h) -
  • support for command line interface - class cli_argument_pack and function parse_cli_arguments - (utility.h) -
-
- -

Common information

-

Number of threads

-Most Intel TBB examples allow to specify n-of-threads, the set of thread numbers that should be used to run an example. -
Usually, it is a range of the form low[:high[:(+|*|#)S]], where low and optional high -are non-negative integers or 'auto' for the default choice, and optional step expression (+|*|#)S -specifies how thread numbers are chosen within the range: -
    -
  • With +/*, the previous number is incremented/multiplied by S. - E.g., expression '12:16:+1' means 12,13,14,15,16 threads, and '1:16:*2' means 1,2,4,8,16 threads. -
  • With #, S is the desired number of steps between any subsequent powers of 2; - it must be a power of 2 on its own, with most meaningful values being 2,4, and 8. - For a given number of threads, the actual step value is computed as the quotient - of the nearest smaller power of 2 divided by the number of steps, but is at least 1. - E.g., '1:32:#4' means 1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32 threads; - note the step doubling at 8 and 16 to keep 4 steps between powers of 2. -
-A default value for the number of threads can be customized in an example; if not customized, it is '1:auto:#4'. -The 'auto' parameter is substituted with a value returned by a specified function, which typically is -tbb::task_scheduler_init::default_num_threads(). -

- -


-Up to parent directory -

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/utility/fast_random.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/utility/fast_random.h deleted file mode 100644 index 4843f94d8..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/utility/fast_random.h +++ /dev/null @@ -1,90 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef FAST_RANDOM_H_ -#define FAST_RANDOM_H_ -namespace utility{ -//------------------------------------------------------------------------ -// FastRandom -//------------------------------------------------------------------------ - -namespace internal{ - size_t GetPrime ( size_t seed ); -} - -//! A fast random number generator. -/** Uses linear congruential method. */ -class FastRandom { - size_t x, a; -public: - //! Get a random number. - unsigned short get() { - return get(x); - } - //! Get a random number for the given seed; update the seed for next use. - unsigned short get( size_t& seed ) { - unsigned short r = (unsigned short)(seed>>16); - seed = seed*a+1; - return r; - } - //! Construct a random number generator. - FastRandom( size_t seed ) { - x = seed*internal::GetPrime(seed); - a = internal::GetPrime(x); - } -}; -} - -namespace utility { -namespace internal{ -//! Table of primes used by fast random-number generator (FastRandom). - static const unsigned Primes[] = { - 0x9e3779b1, 0xffe6cc59, 0x2109f6dd, 0x43977ab5, - 0xba5703f5, 0xb495a877, 0xe1626741, 0x79695e6b, - 0xbc98c09f, 0xd5bee2b3, 0x287488f9, 0x3af18231, - 0x9677cd4d, 0xbe3a6929, 0xadc6a877, 0xdcf0674b, - 0xbe4d6fe9, 0x5f15e201, 0x99afc3fd, 0xf3f16801, - 0xe222cfff, 0x24ba5fdb, 0x0620452d, 0x79f149e3, - 0xc8b93f49, 0x972702cd, 0xb07dd827, 0x6c97d5ed, - 0x085a3d61, 0x46eb5ea7, 0x3d9910ed, 0x2e687b5b, - 0x29609227, 0x6eb081f1, 0x0954c4e1, 0x9d114db9, - 0x542acfa9, 0xb3e6bd7b, 0x0742d917, 0xe9f3ffa7, - 0x54581edb, 0xf2480f45, 0x0bb9288f, 0xef1affc7, - 0x85fa0ca7, 0x3ccc14db, 0xe6baf34b, 0x343377f7, - 0x5ca19031, 0xe6d9293b, 0xf0a9f391, 0x5d2e980b, - 0xfc411073, 0xc3749363, 0xb892d829, 0x3549366b, - 0x629750ad, 0xb98294e5, 0x892d9483, 0xc235baf3, - 0x3d2402a3, 0x6bdef3c9, 0xbec333cd, 0x40c9520f - }; - size_t GetPrime ( size_t seed ) { - return Primes[seed%(sizeof(Primes)/sizeof(Primes[0]))]; - } -} -} - -#endif /* FAST_RANDOM_H_ */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/utility/utility.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/utility/utility.h deleted file mode 100644 index 667246769..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/common/utility/utility.h +++ /dev/null @@ -1,516 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef UTILITY_H_ -#define UTILITY_H_ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -// TBB headers should not be used, as some examples may need to be built without TBB. - -namespace utility{ - namespace internal{ - -#if ((__GNUC__*100+__GNUC_MINOR__>=404 && __GXX_EXPERIMENTAL_CXX0X__) || _MSC_VER >= 1600) && (!__INTEL_COMPILER || __INTEL_COMPILER >= 1200 ) - // std::unique_ptr is available, and compiler can use it - #define smart_ptr std::unique_ptr - using std::swap; -#else - #if __INTEL_COMPILER && __GXX_EXPERIMENTAL_CXX0X__ - // std::unique_ptr is unavailable, so suppress std::auto_prt<> deprecation warning - #pragma warning(disable: 1478) - #endif - #define smart_ptr std::auto_ptr - // in some C++ libraries, std::swap does not work with std::auto_ptr - template - void swap( std::auto_ptr& ptr1, std::auto_ptr& ptr2 ) { - std::auto_ptr tmp; tmp = ptr2; ptr2 = ptr1; ptr1 = tmp; - } -#endif - - //TODO: add tcs - template - dest_type& string_to(std::string const& s, dest_type& result){ - std::stringstream stream(s); - stream>>result; - if ((!stream)||(stream.fail())){ - throw std::invalid_argument("error converting string '"+std::string(s)+"'"); - } - return result; - } - - template - dest_type string_to(std::string const& s){ - dest_type result; - return string_to(s,result); - } - - template - struct is_bool { static bool value(){return false;}}; - template<> - struct is_bool { static bool value(){return true;}}; - - class type_base { - type_base& operator=(const type_base&); - public: - const std::string name; - const std::string description; - - type_base (std::string a_name, std::string a_description) : name(a_name), description(a_description) {} - virtual void parse_and_store (const std::string & s)=0; - virtual std::string value() const =0; - virtual smart_ptr clone()const =0; - virtual ~type_base(){} - }; - template - class type_impl : public type_base { - private: - type_impl& operator=(const type_impl&); - typedef bool(*validating_function_type)(const type&); - private: - type & target; - validating_function_type validating_function; - public: - type_impl(std::string a_name, std::string a_description, type & a_target, validating_function_type a_validating_function = NULL) - : type_base (a_name,a_description), target(a_target),validating_function(a_validating_function) - {}; - void parse_and_store (const std::string & s){ - try{ - const bool is_bool = internal::is_bool::value(); - if (is_bool && s.empty()){ - //to avoid directly assigning true - //(as it will impose additional layer of indirection) - //so, simply pass it as string - internal::string_to("1",target); - }else { - internal::string_to(s,target); - } - }catch(std::invalid_argument& e){ - std::stringstream str; - str <<"'"< clone() const { - return smart_ptr(new type_impl(*this)); - } - }; - - class argument{ - private: - smart_ptr p_type; - bool matched_; - public: - argument(argument const& other) - : p_type(other.p_type.get() ? (other.p_type->clone()).release() : NULL) - ,matched_(other.matched_) - {} - argument& operator=(argument a){ - this->swap(a); - return *this; - } - void swap(argument& other){ - internal::swap(p_type, other.p_type); - std::swap(matched_,other.matched_); - } - template - argument(std::string a_name, std::string a_description, type& dest, bool(*a_validating_function)(const type&)= NULL) - :p_type(new type_impl(a_name,a_description,dest,a_validating_function)) - ,matched_(false) - {} - std::string value()const{ - return p_type->value(); - } - std::string name()const{ - return p_type->name; - } - std::string description() const{ - return p_type->description; - } - void parse_and_store(const std::string & s){ - p_type->parse_and_store(s); - matched_=true; - } - bool is_matched() const{return matched_;} - }; - } // namespace internal - - class cli_argument_pack{ - typedef std::map args_map_type; - typedef std::vector args_display_order_type; - typedef std::vector positional_arg_names_type; - private: - args_map_type args_map; - args_display_order_type args_display_order; - positional_arg_names_type positional_arg_names; - std::set bool_args_names; - private: - void add_arg(internal::argument const& a){ - std::pair result = args_map.insert(std::make_pair(a.name(),a)); - if (!result.second){ - throw std::invalid_argument("argument with name: '"+a.name()+"' already registered"); - } - args_display_order.push_back(a.name()); - } - public: - template - cli_argument_pack& arg(type& dest,std::string const& name, std::string const& description, bool(*validate)(const type &)= NULL){ - internal::argument a(name,description,dest,validate); - add_arg(a); - if (internal::is_bool::value()){ - bool_args_names.insert(name); - } - return *this; - } - - //Positional means that argument name can be omitted in actual CL - //only key to match values for parameters with - template - cli_argument_pack& positional_arg(type& dest,std::string const& name, std::string const& description, bool(*validate)(const type &)= NULL){ - internal::argument a(name,description,dest,validate); - add_arg(a); - if (internal::is_bool::value()){ - bool_args_names.insert(name); - } - positional_arg_names.push_back(name); - return *this; - } - - void parse(std::size_t argc, char const* argv[]){ - { - std::size_t current_positional_index=0; - for (std::size_t j=1;jis_matched()){ - throw std::invalid_argument(std::string("several values specified for: '")+pa->name()+"' argument"); - } - pa->parse_and_store(argument_value); - } - } - } - std::string usage_string(const std::string& binary_name)const{ - std::string command_line_params; - std::string summary_description; - - for (args_display_order_type::const_iterator it = args_display_order.begin();it!=args_display_order.end();++it){ - const bool is_bool = (0!=bool_args_names.count((*it))); - args_map_type::const_iterator argument_it = args_map.find(*it); - //TODO: probably use of smarter assert would help here - assert(argument_it!=args_map.end()/*&&"args_display_order and args_map are out of sync"*/); - if (argument_it==args_map.end()){ - throw std::logic_error("args_display_order and args_map are out of sync"); - } - const internal::argument & a = (*argument_it).second; - command_line_params +=" [" + a.name() + (is_bool ?"":"=value")+ "]"; - summary_description +=" " + a.name() + " - " + a.description() +" ("+a.value() +")" + "\n"; - } - - std::string positional_arg_cl; - for (positional_arg_names_type::const_iterator it = positional_arg_names.begin();it!=positional_arg_names.end();++it){ - positional_arg_cl +=" ["+(*it); - } - for (std::size_t i=0;i - bool is_power_of_2( T val ) { - size_t intval = size_t(val); - return (intval&(intval-1)) == size_t(0); - } - int step_function_plus(int previous, double step){ - return static_cast(previous+step); - } - int step_function_multiply(int previous, double multiply){ - return static_cast(previous*multiply); - } - // "Power-of-2 ladder": nsteps is the desired number of steps between any subsequent powers of 2. - // The actual step is the quotient of the nearest smaller power of 2 divided by that number (but at least 1). - // E.g., '1:32:#4' means 1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32 - int step_function_power2_ladder(int previous, double nsteps){ - int steps = int(nsteps); - assert( is_power_of_2(steps) ); // must be a power of 2 - // The actual step is 1 until the value is twice as big as nsteps - if( previous < 2*steps ) - return previous+1; - // calculate the previous power of 2 - int prev_power2 = previous/2; // start with half the given value - int rshift = 1; // and with the shift of 1; - while( int shifted = prev_power2>>rshift ) { // shift the value right; while the result is non-zero, - prev_power2 |= shifted; // add the bits set in 'shifted'; - rshift <<= 1; // double the shift, as twice as many top bits are set; - } // repeat. - ++prev_power2; // all low bits set; now it's just one less than the desired power of 2 - assert( is_power_of_2(prev_power2) ); - assert( (prev_power2<=previous)&&(2*prev_power2>previous) ); - // The actual step value is the previous power of 2 divided by steps - return previous + (prev_power2/steps); - } - typedef int (* step_function_ptr_type)(int,double); - - struct step_function_descriptor { - char mnemonic; - step_function_ptr_type function; - public: - step_function_descriptor(char a_mnemonic, step_function_ptr_type a_function) : mnemonic(a_mnemonic), function(a_function) {} - private: - void operator=(step_function_descriptor const&); - }; - step_function_descriptor step_function_descriptors[] = { - step_function_descriptor('*',step_function_multiply), - step_function_descriptor('+',step_function_plus), - step_function_descriptor('#',step_function_power2_ladder) - }; - - template - inline size_t array_length(const T(&)[N]) - { - return N; - } - - struct thread_range_step { - step_function_ptr_type step_function; - double step_function_argument; - - thread_range_step ( step_function_ptr_type step_function_, double step_function_argument_) - :step_function(step_function_),step_function_argument(step_function_argument_) - { - if (!step_function_) - throw std::invalid_argument("step_function for thread range step should not be NULL"); - } - int operator()(int previous)const { - assert(0<=previous); // test 0<=first and loop discipline - const int ret = step_function(previous,step_function_argument); - assert(previous>(std::istream& input_stream, thread_range_step& step){ - char function_char; - double function_argument; - input_stream >> function_char >> function_argument; - size_t i = 0; - while ((i= array_length(step_function_descriptors)){ - throw std::invalid_argument("unknown step function mnemonic: "+std::string(1,function_char)); - } else if ((function_char=='#') && !is_power_of_2(function_argument)) { - throw std::invalid_argument("the argument of # should be a power of 2"); - } - step.step_function = step_function_descriptors[i].function; - step.step_function_argument = function_argument; - return input_stream; - } - }; - } // namespace internal - - struct thread_number_range{ - int (*auto_number_of_threads)(); - int first; // 0<=first (0 can be used as a special value) - int last; // first<=last - - internal::thread_range_step step; - - thread_number_range( int (*auto_number_of_threads_)(),int low_=1, int high_=-1 - , internal::thread_range_step step_ = internal::thread_range_step(internal::step_function_power2_ladder,4) - ) - : auto_number_of_threads(auto_number_of_threads_), first(low_), last((high_>-1) ? high_ : auto_number_of_threads_()) - ,step(step_) - { - if (first<0) { - throw std::invalid_argument("negative value not allowed"); - } - if (first>last) { - throw std::invalid_argument("decreasing sequence not allowed"); - } - } - friend std::istream& operator>>(std::istream& i, thread_number_range& range){ - try{ - std::string s; - i>>s; - struct string_to_number_of_threads{ - int auto_value; - string_to_number_of_threads(int auto_value_):auto_value(auto_value_){} - int operator()(const std::string & value)const{ - return (value=="auto")? auto_value : internal::string_to(value); - } - }; - string_to_number_of_threads string_to_number_of_threads(range.auto_number_of_threads()); - int low, high; - std::size_t colon = s.find(':'); - if ( colon == std::string::npos ){ - low = high = string_to_number_of_threads(s); - } else { - //it is a range - std::size_t second_colon = s.find(':',colon+1); - - low = string_to_number_of_threads(std::string(s, 0, colon)); //not copying the colon - high = string_to_number_of_threads(std::string(s, colon+1, second_colon - (colon+1))); //not copying the colons - if (second_colon != std::string::npos){ - internal::string_to(std::string(s,second_colon + 1),range.step); - } - } - range = thread_number_range(range.auto_number_of_threads,low,high,range.step); - }catch(std::invalid_argument&){ - i.setstate(std::ios::failbit); - throw; - } - return i; - } - friend std::ostream& operator<<(std::ostream& o, thread_number_range const& range){ - using namespace internal; - size_t i = 0; - for (; i < array_length(step_function_descriptors) && step_function_descriptors[i].function != range.step.step_function; ++i ) {} - if (i >= array_length(step_function_descriptors)){ - throw std::invalid_argument("unknown step function for thread range"); - } - o<(argv), cli_pack); - } -} - -#endif /* UTILITY_H_ */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_hash_map/count_strings/Makefile b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_hash_map/count_strings/Makefile deleted file mode 100644 index 87dc268e9..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_hash_map/count_strings/Makefile +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright 2005-2014 Intel Corporation. All Rights Reserved. -# -# This file is part of Threading Building Blocks. -# -# Threading Building Blocks is free software; you can redistribute it -# and/or modify it under the terms of the GNU General Public License -# version 2 as published by the Free Software Foundation. -# -# Threading Building Blocks is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied warranty -# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Threading Building Blocks; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# -# As a special exception, you may use this file as part of a free software -# library without restriction. Specifically, if other files instantiate -# templates or use macros or inline functions from this file, or you compile -# this file and link it with other files to produce an executable, this -# file does not by itself cause the resulting executable to be covered by -# the GNU General Public License. This exception does not however -# invalidate any other reasons why the executable file might be covered by -# the GNU General Public License. - -# Common Makefile that builds and runs example. - -# Just specify your program basename -PROG=Count_Strings -ARGS= -PERF_RUN_ARGS=auto 10000000 silent - -# The C++ compiler options - -# Trying to find if icl.exe is set -CXX1 = $(TBB_CXX)- -CXX2 = $(CXX1:icl.exe-=icl.exe) -CXX = $(CXX2:-=cl.exe) - -MYCXXFLAGS = /TP /EHsc /W3 /nologo /D _CONSOLE /D _MBCS /D WIN32 $(CXXFLAGS) -MYLDFLAGS =/INCREMENTAL:NO /NOLOGO /DEBUG /FIXED:NO $(LDFLAGS) - -all: release test -release: compiler_check - $(CXX) *.cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe -debug: compiler_check - $(CXX) *.cpp /MDd /Od /Zi /D TBB_USE_DEBUG /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe -clean: - @cmd.exe /C del $(PROG).exe *.obj *.?db *.manifest -test: - $(PROG) $(ARGS) -compiler_check: - @echo compiler_test>compiler_test && @$(CXX) /E compiler_test >nul 2>&1 || echo "$(CXX) command not found. Check if CXX=$(CXX) is set properly" - @cmd.exe /C del compiler_test -perf_build: release -perf_run: - $(PROG) $(PERF_RUN_ARGS) - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_hash_map/count_strings/count_strings.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_hash_map/count_strings/count_strings.cpp deleted file mode 100644 index 39c28a836..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_hash_map/count_strings/count_strings.cpp +++ /dev/null @@ -1,243 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -// Workaround for ICC 11.0 not finding __sync_fetch_and_add_4 on some of the Linux platforms. -#if __linux__ && defined(__INTEL_COMPILER) -#define __sync_fetch_and_add(ptr,addend) _InterlockedExchangeAdd(const_cast(reinterpret_cast(ptr)), addend) -#endif -#include -#include -#include -#include -#include -#include "tbb/concurrent_hash_map.h" -#include "tbb/blocked_range.h" -#include "tbb/parallel_for.h" -#include "tbb/tick_count.h" -#include "tbb/task_scheduler_init.h" -#include "tbb/tbb_allocator.h" -#include "../../common/utility/utility.h" - - -//! String type with scalable allocator. -/** On platforms with non-scalable default memory allocators, the example scales - better if the string allocator is changed to tbb::tbb_allocator. */ -typedef std::basic_string,tbb::tbb_allocator > MyString; - -using namespace tbb; -using namespace std; - -//! Set to true to counts. -static bool verbose = false; -static bool silent = false; -//! Problem size -long N = 1000000; -const int size_factor = 2; - -//! A concurrent hash table that maps strings to ints. -typedef concurrent_hash_map StringTable; - -//! Function object for counting occurrences of strings. -struct Tally { - StringTable& table; - Tally( StringTable& table_ ) : table(table_) {} - void operator()( const blocked_range range ) const { - for( MyString* p=range.begin(); p!=range.end(); ++p ) { - StringTable::accessor a; - table.insert( a, *p ); - a->second += 1; - } - } -}; - -static MyString* Data; - -static void CountOccurrences(int nthreads) { - StringTable table; - - tick_count t0 = tick_count::now(); - parallel_for( blocked_range( Data, Data+N, 1000 ), Tally(table) ); - tick_count t1 = tick_count::now(); - - int n = 0; - for( StringTable::iterator i=table.begin(); i!=table.end(); ++i ) { - if( verbose && nthreads ) - printf("%s %d\n",i->first.c_str(),i->second); - n += i->second; - } - - if ( !silent ) printf("total = %d unique = %u time = %g\n", n, unsigned(table.size()), (t1-t0).seconds()); -} - -/// Generator of random words - -struct Sound { - const char *chars; - int rates[3];// begining, middle, ending -}; -Sound Vowels[] = { - {"e", {445,6220,1762}}, {"a", {704,5262,514}}, {"i", {402,5224,162}}, {"o", {248,3726,191}}, - {"u", {155,1669,23}}, {"y", {4,400,989}}, {"io", {5,512,18}}, {"ia", {1,329,111}}, - {"ea", {21,370,16}}, {"ou", {32,298,4}}, {"ie", {0,177,140}}, {"ee", {2,183,57}}, - {"ai", {17,206,7}}, {"oo", {1,215,7}}, {"au", {40,111,2}}, {"ua", {0,102,4}}, - {"ui", {0,104,1}}, {"ei", {6,94,3}}, {"ue", {0,67,28}}, {"ay", {1,42,52}}, - {"ey", {1,14,80}}, {"oa", {5,84,3}}, {"oi", {2,81,1}}, {"eo", {1,71,5}}, - {"iou", {0,61,0}}, {"oe", {2,46,9}}, {"eu", {12,43,0}}, {"iu", {0,45,0}}, - {"ya", {12,19,5}}, {"ae", {7,18,10}}, {"oy", {0,10,13}}, {"ye", {8,7,7}}, - {"ion", {0,0,20}}, {"ing", {0,0,20}}, {"ium", {0,0,10}}, {"er", {0,0,20}} -}; -Sound Consonants[] = { - {"r", {483,1414,1110}}, {"n", {312,1548,1114}}, {"t", {363,1653,251}}, {"l", {424,1341,489}}, - {"c", {734,735,260}}, {"m", {732,785,161}}, {"d", {558,612,389}}, {"s", {574,570,405}}, - {"p", {519,361,98}}, {"b", {528,356,30}}, {"v", {197,598,16}}, {"ss", {3,191,567}}, - {"g", {285,430,42}}, {"st", {142,323,180}}, {"h", {470,89,30}}, {"nt", {0,350,231}}, - {"ng", {0,117,442}}, {"f", {319,194,19}}, {"ll", {1,414,83}}, {"w", {249,131,64}}, - {"k", {154,179,47}}, {"nd", {0,279,92}}, {"bl", {62,235,0}}, {"z", {35,223,16}}, - {"sh", {112,69,79}}, {"ch", {139,95,25}}, {"th", {70,143,39}}, {"tt", {0,219,19}}, - {"tr", {131,104,0}}, {"pr", {186,41,0}}, {"nc", {0,223,2}}, {"j", {184,32,1}}, - {"nn", {0,188,20}}, {"rt", {0,148,51}}, {"ct", {0,160,29}}, {"rr", {0,182,3}}, - {"gr", {98,87,0}}, {"ck", {0,92,86}}, {"rd", {0,81,88}}, {"x", {8,102,48}}, - {"ph", {47,101,10}}, {"br", {115,43,0}}, {"cr", {92,60,0}}, {"rm", {0,131,18}}, - {"ns", {0,124,18}}, {"sp", {81,55,4}}, {"sm", {25,29,85}}, {"sc", {53,83,1}}, - {"rn", {0,100,30}}, {"cl", {78,42,0}}, {"mm", {0,116,0}}, {"pp", {0,114,2}}, - {"mp", {0,99,14}}, {"rs", {0,96,16}}, /*{"q", {52,57,1}},*/ {"rl", {0,97,7}}, - {"rg", {0,81,15}}, {"pl", {56,39,0}}, {"sn", {32,62,1}}, {"str", {38,56,0}}, - {"dr", {47,44,0}}, {"fl", {77,13,1}}, {"fr", {77,11,0}}, {"ld", {0,47,38}}, - {"ff", {0,62,20}}, {"lt", {0,61,19}}, {"rb", {0,75,4}}, {"mb", {0,72,7}}, - {"rc", {0,76,1}}, {"gg", {0,74,1}}, {"pt", {1,56,10}}, {"bb", {0,64,1}}, - {"sl", {48,17,0}}, {"dd", {0,59,2}}, {"gn", {3,50,4}}, {"rk", {0,30,28}}, - {"nk", {0,35,20}}, {"gl", {40,14,0}}, {"wh", {45,6,0}}, {"ntr", {0,50,0}}, - {"rv", {0,47,1}}, {"ght", {0,19,29}}, {"sk", {23,17,5}}, {"nf", {0,46,0}}, - {"cc", {0,45,0}}, {"ln", {0,41,0}}, {"sw", {36,4,0}}, {"rp", {0,36,4}}, - {"dn", {0,38,0}}, {"ps", {14,19,5}}, {"nv", {0,38,0}}, {"tch", {0,21,16}}, - {"nch", {0,26,11}}, {"lv", {0,35,0}}, {"wn", {0,14,21}}, {"rf", {0,32,3}}, - {"lm", {0,30,5}}, {"dg", {0,34,0}}, {"ft", {0,18,15}}, {"scr", {23,10,0}}, - {"rch", {0,24,6}}, {"rth", {0,23,7}}, {"rh", {13,15,0}}, {"mpl", {0,29,0}}, - {"cs", {0,1,27}}, {"gh", {4,10,13}}, {"ls", {0,23,3}}, {"ndr", {0,25,0}}, - {"tl", {0,23,1}}, {"ngl", {0,25,0}}, {"lk", {0,15,9}}, {"rw", {0,23,0}}, - {"lb", {0,23,1}}, {"tw", {15,8,0}}, /*{"sq", {15,8,0}},*/ {"chr", {18,4,0}}, - {"dl", {0,23,0}}, {"ctr", {0,22,0}}, {"nst", {0,21,0}}, {"lc", {0,22,0}}, - {"sch", {16,4,0}}, {"ths", {0,1,20}}, {"nl", {0,21,0}}, {"lf", {0,15,6}}, - {"ssn", {0,20,0}}, {"xt", {0,18,1}}, {"xp", {0,20,0}}, {"rst", {0,15,5}}, - {"nh", {0,19,0}}, {"wr", {14,5,0}} -}; -const int VowelsNumber = sizeof(Vowels)/sizeof(Sound); -const int ConsonantsNumber = sizeof(Consonants)/sizeof(Sound); -int VowelsRatesSum[3] = {0,0,0}, ConsonantsRatesSum[3] = {0,0,0}; - -int CountRateSum(Sound sounds[], const int num, const int part) -{ - int sum = 0; - for(int i = 0; i < num; i++) - sum += sounds[i].rates[part]; - return sum; -} - -const char *GetLetters(int type, const int part) -{ - Sound *sounds; int rate, i = 0; - if(type & 1) - sounds = Vowels, rate = rand() % VowelsRatesSum[part]; - else - sounds = Consonants, rate = rand() % ConsonantsRatesSum[part]; - do { - rate -= sounds[i++].rates[part]; - } while(rate > 0); - return sounds[--i].chars; -} - -static void CreateData() { - for(int i = 0; i < 3; i++) { - ConsonantsRatesSum[i] = CountRateSum(Consonants, ConsonantsNumber, i); - VowelsRatesSum[i] = CountRateSum(Vowels, VowelsNumber, i); - } - for( int i=0; i - - -

Overview

-The example counts the number of unique words in a text. - - -

Files

-
-
count_strings.cpp -
Source code for example. -
Makefile -
Makefile for building example. -
- -

Directories

-
-
msvs -
Contains Microsoft* Visual Studio* 2005 workspace for building and running the example (Windows* systems only). -
xcode -
Contains Xcode* IDE workspace for building and running the example (OS X* systems only). -
- -

To Build

-General build directions can be found here. - -

Usage

-
-
count_strings -h -
Prints the help for command line options -
count_strings [n-of-threads=value] [n-of-strings=value] [verbose] [silent] -
count_strings [n-of-threads [n-of-strings]] [verbose] [silent] -
n-of-threads is the number of threads to use; a range of the form low[:high], where low and optional high are non-negative integers or 'auto' for the TBB default.
- n-of-strings is a number of strings.
- verbose - enables printing of extra information during execution.
- silent - no output except elapsed time.
- -
To run a short version of this example, e.g., for use with Intel® Parallel Inspector: -
Build a debug version of the example - (see the build directions). -
Run it with a small number of strings and the desired number of threads, e.g., count_strings 2 10000. -
- -
-Up to parent directory -

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_hash_map/count_strings/msvs/count_strings.icproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_hash_map/count_strings/msvs/count_strings.icproj deleted file mode 100644 index 28f75df19..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_hash_map/count_strings/msvs/count_strings.icproj +++ /dev/null @@ -1,11 +0,0 @@ - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_hash_map/count_strings/msvs/count_strings.vcproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_hash_map/count_strings/msvs/count_strings.vcproj deleted file mode 100644 index fa898df74..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_hash_map/count_strings/msvs/count_strings.vcproj +++ /dev/null @@ -1,356 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_hash_map/count_strings/msvs/count_strings_cl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_hash_map/count_strings/msvs/count_strings_cl.sln deleted file mode 100644 index 4db94206f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_hash_map/count_strings/msvs/count_strings_cl.sln +++ /dev/null @@ -1,26 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "count_strings", "count_strings.vcproj", "{3AA40693-F93D-4D4B-B32E-068F511A252C}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3AA40693-F93D-4D4B-B32E-068F511A252C}.Debug|Win32.ActiveCfg = Debug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252C}.Debug|Win32.Build.0 = Debug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252C}.Debug|x64.ActiveCfg = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252C}.Debug|x64.Build.0 = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252C}.Release|Win32.ActiveCfg = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252C}.Release|Win32.Build.0 = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252C}.Release|x64.ActiveCfg = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252C}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_hash_map/count_strings/msvs/count_strings_icl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_hash_map/count_strings/msvs/count_strings_icl.sln deleted file mode 100644 index a6edaea7f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_hash_map/count_strings/msvs/count_strings_icl.sln +++ /dev/null @@ -1,33 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{EAF909A5-FA59-4C3D-9431-0FCC20D5BCF9}") = "count_strings", "count_strings.icproj", "{ACC0CC2E-3102-4ED2-AFA2-996AF7DEC9A8}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {ACC0CC2E-3102-4ED2-AFA2-996AF7DEC9A8}.Debug|Win32.ActiveCfg = Debug|Win32 - {ACC0CC2E-3102-4ED2-AFA2-996AF7DEC9A8}.Debug|Win32.Build.0 = Debug|Win32 - {ACC0CC2E-3102-4ED2-AFA2-996AF7DEC9A8}.Debug|x64.ActiveCfg = Debug|x64 - {ACC0CC2E-3102-4ED2-AFA2-996AF7DEC9A8}.Debug|x64.Build.0 = Debug|x64 - {ACC0CC2E-3102-4ED2-AFA2-996AF7DEC9A8}.Release|Win32.ActiveCfg = Release|Win32 - {ACC0CC2E-3102-4ED2-AFA2-996AF7DEC9A8}.Release|Win32.Build.0 = Release|Win32 - {ACC0CC2E-3102-4ED2-AFA2-996AF7DEC9A8}.Release|x64.ActiveCfg = Release|x64 - {ACC0CC2E-3102-4ED2-AFA2-996AF7DEC9A8}.Release|x64.Build.0 = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252C}.Release|x64.Build.0 = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252C}.Release|x64.ActiveCfg = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252C}.Release|Win32.Build.0 = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252C}.Release|Win32.ActiveCfg = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252C}.Debug|x64.Build.0 = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252C}.Debug|x64.ActiveCfg = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252C}.Debug|Win32.Build.0 = Debug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252C}.Debug|Win32.ActiveCfg = Debug|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_hash_map/count_strings/xcode/count_strings.xcodeproj/project.pbxproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_hash_map/count_strings/xcode/count_strings.xcodeproj/project.pbxproj deleted file mode 100644 index 1b90bf71a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_hash_map/count_strings/xcode/count_strings.xcodeproj/project.pbxproj +++ /dev/null @@ -1,305 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - A1F593A60B8F042A00073279 /* count_strings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F593A50B8F042A00073279 /* count_strings.cpp */; }; - A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; }; - A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 8DD76F690486A84900D96B5E /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 12; - dstPath = ""; - dstSubfolderSpec = 16; - files = ( - A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 8DD76F6C0486A84900D96B5E /* count_strings */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = count_strings; sourceTree = BUILT_PRODUCTS_DIR; }; - A1F593A50B8F042A00073279 /* count_strings.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = count_strings.cpp; path = ../count_strings.cpp; sourceTree = SOURCE_ROOT; }; - A1F593B30B8F06F900073279 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = ../../../../lib/libtbb.dylib; sourceTree = SOURCE_ROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8DD76F660486A84900D96B5E /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 08FB7794FE84155DC02AAC07 /* count_strings */ = { - isa = PBXGroup; - children = ( - 08FB7795FE84155DC02AAC07 /* Source */, - A1F593B20B8F06F900073279 /* External Frameworks and Libraries */, - 1AB674ADFE9D54B511CA2CBB /* Products */, - ); - name = count_strings; - sourceTree = ""; - }; - 08FB7795FE84155DC02AAC07 /* Source */ = { - isa = PBXGroup; - children = ( - A1F593A50B8F042A00073279 /* count_strings.cpp */, - ); - name = Source; - sourceTree = ""; - }; - 1AB674ADFE9D54B511CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8DD76F6C0486A84900D96B5E /* count_strings */, - ); - name = Products; - sourceTree = ""; - }; - A1F593B20B8F06F900073279 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - A1F593B30B8F06F900073279 /* libtbb.dylib */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8DD76F620486A84900D96B5E /* count_strings */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "count_strings" */; - buildPhases = ( - 8DD76F640486A84900D96B5E /* Sources */, - 8DD76F660486A84900D96B5E /* Frameworks */, - 8DD76F690486A84900D96B5E /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = count_strings; - productInstallPath = "$(HOME)/bin"; - productName = count_strings; - productReference = 8DD76F6C0486A84900D96B5E /* count_strings */; - productType = "com.apple.product-type.tool"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 08FB7793FE84155DC02AAC07 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0410; - }; - buildConfigurationList = 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "count_strings" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - en, - ); - mainGroup = 08FB7794FE84155DC02AAC07 /* count_strings */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8DD76F620486A84900D96B5E /* count_strings */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXSourcesBuildPhase section */ - 8DD76F640486A84900D96B5E /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A1F593A60B8F042A00073279 /* count_strings.cpp in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 1DEB923208733DC60010E9CD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = count_strings; - ZERO_LINK = NO; - }; - name = Debug; - }; - 1DEB923308733DC60010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = count_strings; - ZERO_LINK = NO; - }; - name = Release; - }; - 1DEB923608733DC60010E9CD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Debug; - }; - 1DEB923708733DC60010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Release; - }; - A1F593C60B8F0E6E00073279 /* Debug64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = count_strings; - ZERO_LINK = NO; - }; - name = Debug64; - }; - A1F593C70B8F0E6E00073279 /* Release64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = count_strings; - ZERO_LINK = NO; - }; - name = Release64; - }; - A1F593C80B8F0E6E00073279 /* Debug64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "-m64", - ); - OTHER_LDFLAGS = "-m64"; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Debug64; - }; - A1F593C90B8F0E6E00073279 /* Release64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "-m64", - ); - OTHER_LDFLAGS = "-m64"; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Release64; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "count_strings" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB923208733DC60010E9CD /* Debug */, - A1F593C60B8F0E6E00073279 /* Debug64 */, - 1DEB923308733DC60010E9CD /* Release */, - A1F593C70B8F0E6E00073279 /* Release64 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "count_strings" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB923608733DC60010E9CD /* Debug */, - A1F593C80B8F0E6E00073279 /* Debug64 */, - 1DEB923708733DC60010E9CD /* Release */, - A1F593C90B8F0E6E00073279 /* Release64 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_hash_map/index.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_hash_map/index.html deleted file mode 100644 index b9a52d267..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_hash_map/index.html +++ /dev/null @@ -1,24 +0,0 @@ - - - -

Overview

-This directory has examples of the template concurrent_hash_map. - -

Directories

-
-
count_strings -
Concurrently inserts strings into a concurrent_hash_map. -
- -
-Up to parent directory -

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_priority_queue/shortpath/Makefile b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_priority_queue/shortpath/Makefile deleted file mode 100644 index 12bbf25f0..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_priority_queue/shortpath/Makefile +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright 2005-2014 Intel Corporation. All Rights Reserved. -# -# This file is part of Threading Building Blocks. -# -# Threading Building Blocks is free software; you can redistribute it -# and/or modify it under the terms of the GNU General Public License -# version 2 as published by the Free Software Foundation. -# -# Threading Building Blocks is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied warranty -# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Threading Building Blocks; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# -# As a special exception, you may use this file as part of a free software -# library without restriction. Specifically, if other files instantiate -# templates or use macros or inline functions from this file, or you compile -# this file and link it with other files to produce an executable, this -# file does not by itself cause the resulting executable to be covered by -# the GNU General Public License. This exception does not however -# invalidate any other reasons why the executable file might be covered by -# the GNU General Public License. - -# Common Makefile that builds and runs example. - -# Just specify your program basename -PROG=shortpath -ARGS=4 N=1000 start=0 end=999 verbose -PERF_RUN_ARGS=auto N=1000 start=0 end=99 silent - -# Trying to find if icl.exe is set -CXX1 = $(TBB_CXX)- -CXX2 = $(CXX1:icl.exe-=icl.exe) -CXX = $(CXX2:-=cl.exe) - -# The C++ compiler options -MYCXXFLAGS = /TP /EHsc /W3 /nologo /D _CONSOLE /D _MBCS /D WIN32 /D _CRT_SECURE_NO_DEPRECATE $(CXXFLAGS) -MYLDFLAGS =/INCREMENTAL:NO /NOLOGO /DEBUG /FIXED:NO $(LDFLAGS) - -all: release test -release: - $(CXX) *.cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe -debug: - $(CXX) *.cpp /MDd /Od /Zi /D TBB_USE_DEBUG /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe -clean: - @cmd.exe /C del $(PROG).exe *.obj *.?db *.manifest -test: - $(PROG) $(ARGS) -compiler_check: - @$(CXX) >nul 2>&1 || echo "$(CXX) command not found. Check if CXX=$(CXX) is set properly" - -perf_build: release - -perf_run: - $(PROG) $(PERF_RUN_ARGS) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_priority_queue/shortpath/index.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_priority_queue/shortpath/index.html deleted file mode 100644 index 8a040774c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_priority_queue/shortpath/index.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -

Overview

- -This directory contains a simple example that solves the single source -shortest path problem. It is parameterized by N, a number of nodes, -and a start and end node in [0..N). A graph is generated with N nodes -and some random number of connections between those nodes. A parallel -algorithm based on A* is used to find the shortest path. This -algorithm varies from serial A* in that it needs to add nodes back to -the open set when the g estimate (shortest path from start to the -node) is improved, even if the node has already been "visited". This -is because nodes are added and removed from the open-set in parallel, -resulting in some less optimal paths being explored. The open-set is -implemented with the concurrent_priority_queue. Note that since we -re-visit nodes, the f estimate (on which the priority queue is sorted) -is not technically needed, so we could use this same parallel -algorithm with just a concurrent_queue. However, keeping the f -estimate and using concurrent_priority_queue results in much better -performance. Silent mode prints run time only, regular mode prints -shortest path length, and verbose mode prints out the shortest path. -The generated graph follows a pattern in which the closer two pairs of -node ids are together, the fewer hops there are in a typical path -between those nodes. So, for example, the path between 5 and 7 likely -has few hops whereas 14 to 78 has more and 0 to 9999 has even more, -etc. - - -

Files

-
-
shortpath.cpp -
Driver. - -
Makefile -
Makefile for building example. - -
- -

Directories

-
-
msvs -
Contains Microsoft* Visual Studio* 2008 workspace for building and running the example with the Intel® C++ compiler (Windows* systems only). -
xcode -
Contains OS X* Xcode* workspace for building and running the example (OS X* systems only). -
- -

To Build

-General build directions can be found here. -

- -

Usage

-
- -
shortpath -h -
Prints the help for command line options -
shortpath [#threads=value] [verbose] [silent] [N=value] [start=value] [end=value] [#threads] -
#threads is the number of threads to use; a range of the form low[:high] where low and optional high are non-negative integers, or 'auto' for the TBB default.
- verbose print full path to screen
- silent limits output to timing info; overrides verbose
- N number of nodes in graph
- start node to start path at
- end node to end path at
- - -
To run a short version of this example, e.g., for use with Intel® Parallel Inspector: -
Build a debug version of the example - (see the build directions). -
Run it with a small problem size and the desired number of threads, e.g., shortpath 4 N=20 start=0 end=19. -
- -
-Up to parent directory -

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_priority_queue/shortpath/msvs/shortpath.icproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_priority_queue/shortpath/msvs/shortpath.icproj deleted file mode 100644 index 070d5ec04..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_priority_queue/shortpath/msvs/shortpath.icproj +++ /dev/null @@ -1,11 +0,0 @@ - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_priority_queue/shortpath/msvs/shortpath.vcproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_priority_queue/shortpath/msvs/shortpath.vcproj deleted file mode 100644 index 42cacc932..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_priority_queue/shortpath/msvs/shortpath.vcproj +++ /dev/null @@ -1,356 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_priority_queue/shortpath/msvs/shortpath_cl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_priority_queue/shortpath/msvs/shortpath_cl.sln deleted file mode 100644 index 8ac31d7cd..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_priority_queue/shortpath/msvs/shortpath_cl.sln +++ /dev/null @@ -1,25 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shortpath", "shortpath.vcproj", "{3AA40693-F93D-4D4B-B32E-068F511A252A}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|Win32.ActiveCfg = Debug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|Win32.Build.0 = Debug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|x64.ActiveCfg = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|x64.Build.0 = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|Win32.ActiveCfg = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|Win32.Build.0 = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|x64.ActiveCfg = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_priority_queue/shortpath/msvs/shortpath_icl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_priority_queue/shortpath/msvs/shortpath_icl.sln deleted file mode 100644 index 8729388bc..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_priority_queue/shortpath/msvs/shortpath_icl.sln +++ /dev/null @@ -1,33 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{EAF909A5-FA59-4C3D-9431-0FCC20D5BCF9}") = "shortpath", "shortpath.icproj", "{D731702C-B704-468D-9497-A75EE0521C89}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D731702C-B704-468D-9497-A75EE0521C89}.Debug|Win32.ActiveCfg = Debug|Win32 - {D731702C-B704-468D-9497-A75EE0521C89}.Debug|Win32.Build.0 = Debug|Win32 - {D731702C-B704-468D-9497-A75EE0521C89}.Debug|x64.ActiveCfg = Debug|x64 - {D731702C-B704-468D-9497-A75EE0521C89}.Debug|x64.Build.0 = Debug|x64 - {D731702C-B704-468D-9497-A75EE0521C89}.Release|Win32.ActiveCfg = Release|Win32 - {D731702C-B704-468D-9497-A75EE0521C89}.Release|Win32.Build.0 = Release|Win32 - {D731702C-B704-468D-9497-A75EE0521C89}.Release|x64.ActiveCfg = Release|x64 - {D731702C-B704-468D-9497-A75EE0521C89}.Release|x64.Build.0 = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|x64.Build.0 = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|x64.ActiveCfg = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|Win32.Build.0 = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|Win32.ActiveCfg = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|x64.Build.0 = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|x64.ActiveCfg = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|Win32.Build.0 = Debug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|Win32.ActiveCfg = Debug|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_priority_queue/shortpath/shortpath.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_priority_queue/shortpath/shortpath.cpp deleted file mode 100644 index f8ff58a5b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/concurrent_priority_queue/shortpath/shortpath.cpp +++ /dev/null @@ -1,383 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -// This header should come before any other one. -// For details, see Known Issues in the Release Notes. -#include "tbb/tbb_stddef.h" - -#include -#include -#include - -#include "tbb/atomic.h" -#include "tbb/tick_count.h" -#include "tbb/task_scheduler_init.h" -#include "tbb/task_group.h" -#include "tbb/concurrent_priority_queue.h" -#include "tbb/spin_mutex.h" -#include "tbb/parallel_for.h" -#include "tbb/blocked_range.h" -#include "../../common/utility/utility.h" -#include "../../common/utility/fast_random.h" - -#if defined(_MSC_VER) && defined(_Wp64) - // Workaround for overzealous compiler warnings in /Wp64 mode - #pragma warning (disable: 4267) -#endif /* _MSC_VER && _Wp64 */ - -#if __INTEL_COMPILER -#define __TBB_LAMBDAS_PRESENT ( _TBB_CPP0X && __INTEL_COMPILER > 1100 ) -#elif __GNUC__ -#define __TBB_LAMBDAS_PRESENT ( _TBB_CPP0X && __TBB_GCC_VERSION >= 40500 ) -#elif _MSC_VER -#define __TBB_LAMBDAS_PRESENT ( _MSC_VER>=1600 ) -#endif - -using namespace std; -using namespace tbb; - -struct point { - double x, y; - point() {} - point(double _x, double _y) : x(_x), y(_y) {} - point(const point& p) : x(p.x), y(p.y) {} -}; - -double get_distance(const point& p1, const point& p2) { - double xdiff=p1.x-p2.x, ydiff=p1.y-p2.y; - return sqrt(xdiff*xdiff + ydiff*ydiff); -} - -// generates random points on 2D plane within a box of maxsize width & height -point generate_random_point(utility::FastRandom& mr) { - const size_t maxsize=500; - double x = (double)(mr.get() % maxsize); - double y = (double)(mr.get() % maxsize); - return point(x,y); -} - -// weighted toss makes closer nodes (in the point vector) heavily connected -bool die_toss(size_t a, size_t b, utility::FastRandom& mr) { - int node_diff = std::abs((int)(a-b)); - // near nodes - if (node_diff < 16) return true; - // mid nodes - if (node_diff < 64) return ((int)mr.get() % 8 == 0); - // far nodes - if (node_diff < 512) return ((int)mr.get() % 16 == 0); - return false; -} - -typedef vector point_set; -typedef size_t vertex_id; -typedef std::pair vertex_rec; -typedef vector > edge_set; - -bool verbose = false; // prints bin details and other diagnostics to screen -bool silent = false; // suppress all output except for time -size_t N = 1000; // number of vertices -size_t src = 0; // start of path -size_t dst = N-1; // end of path -double INF=100000.0; // infinity -size_t grainsize = 16; // number of vertices per task on average -size_t max_spawn; // max tasks to spawn -atomic num_spawn; // number of active tasks - -point_set vertices; // vertices -edge_set edges; // edges -vector predecessor; // for recreating path from src to dst - -vector f_distance; // estimated distances at particular vertex -vector g_distance; // current shortest distances from src vertex -vector locks; // a lock for each vertex -task_group *sp_group; // task group for tasks executing sub-problems - -class compare_f { -public: - bool operator()(const vertex_rec& u, const vertex_rec& v) const { - return u.second>v.second; - } -}; - -concurrent_priority_queue open_set; // tentative vertices - -void shortpath_helper(); - -#if !__TBB_LAMBDAS_PRESENT -class shortpath_helper_functor { -public: - shortpath_helper_functor() {}; - void operator() () const { shortpath_helper(); } -}; -#endif - -void shortpath() { - g_distance[src] = 0.0; // src's distance from src is zero - f_distance[src] = get_distance(vertices[src], vertices[dst]); // estimate distance from src to dst - open_set.push(make_pair(src,f_distance[src])); // push src into open_set -#if __TBB_LAMBDAS_PRESENT - sp_group->run([](){ shortpath_helper(); }); -#else - sp_group->run( shortpath_helper_functor() ); -#endif - sp_group->wait(); -} - -void shortpath_helper() { - vertex_rec u_rec; - while (open_set.try_pop(u_rec)) { - vertex_id u = u_rec.first; - if (u==dst) continue; - double f = u_rec.second; - double old_g_u = 0.0; - { - spin_mutex::scoped_lock l(locks[u]); - if (f > f_distance[u]) continue; // prune search space - old_g_u = g_distance[u]; - } - for (size_t i=0; irun([]{ shortpath_helper(); }); -#else - sp_group->run( shortpath_helper_functor() ); -#endif - } - else --num_spawn; - } - } - } - --num_spawn; -} - -void make_path(vertex_id src, vertex_id dst, vector& path) { - vertex_id at = predecessor[dst]; - if (at == N) path.push_back(src); - else if (at == src) { path.push_back(src); path.push_back(dst); } - else { make_path(src, at, path); path.push_back(dst); } -} - -void print_path() { - vector path; - double path_length=0.0; - make_path(src, dst, path); - if (verbose) printf("\n "); - for (size_t i=0; i", (int)path[i]); - else printf("(%4d)\n", (int)path[i]); - } - } - if (verbose) printf("Total distance = %5.1f\n", path_length); - else if (!silent) printf(" %5.1f\n", path_length); -} - -int get_default_num_threads() { - static int threads = 0; - if (threads == 0) - threads = tbb::task_scheduler_init::default_num_threads(); - return threads; -} - -#if !__TBB_LAMBDAS_PRESENT -class gen_vertices { -public: - gen_vertices() {} - void operator() (blocked_range& r) const { - utility::FastRandom my_random((unsigned int)r.begin()); - for (size_t i=r.begin(); i!=r.end(); ++i) { - vertices[i] = generate_random_point(my_random); - } - } -}; - -class gen_edges { -public: - gen_edges() {} - void operator() (blocked_range& r) const { - utility::FastRandom my_random((unsigned int)r.begin()); - for (size_t i=r.begin(); i!=r.end(); ++i) { - for (size_t j=0; j& r) const { - for (size_t i=r.begin(); i!=r.end(); ++i) { - f_distance[i] = g_distance[i] = INF; - predecessor[i] = N; - } - } -}; -#endif - -void InitializeGraph() { - sp_group = new task_group; - vertices.resize(N); - edges.resize(N); - predecessor.resize(N); - g_distance.resize(N); - f_distance.resize(N); - locks.resize(N); - task_scheduler_init init(get_default_num_threads()); - if (verbose) printf("Generating vertices...\n"); -#if __TBB_LAMBDAS_PRESENT - parallel_for(blocked_range(0,N,64), - [&](blocked_range& r) { - utility::FastRandom my_random(r.begin()); - for (size_t i=r.begin(); i!=r.end(); ++i) { - vertices[i] = generate_random_point(my_random); - } - }, simple_partitioner()); -#else - parallel_for(blocked_range(0,N,64), gen_vertices(), simple_partitioner()); -#endif - if (verbose) printf("Generating edges...\n"); -#if __TBB_LAMBDAS_PRESENT - parallel_for(blocked_range(0,N,64), - [&](blocked_range& r) { - utility::FastRandom my_random(r.begin()); - for (size_t i=r.begin(); i!=r.end(); ++i) { - for (size_t j=0; j(0,N,64), gen_edges(), simple_partitioner()); -#endif - for (size_t i=0; i(0,N), - [&](blocked_range& r) { - for (size_t i=r.begin(); i!=r.end(); ++i) { - f_distance[i] = g_distance[i] = INF; - predecessor[i] = N; - } - }); -#else - parallel_for(blocked_range(0,N), reset_vertices()); -#endif -} - -int main(int argc, char *argv[]) { - try { - utility::thread_number_range threads(get_default_num_threads); - utility::parse_cli_arguments(argc, argv, - utility::cli_argument_pack() - //"-h" option for displaying help is present implicitly - .positional_arg(threads,"#threads",utility::thread_number_range_desc) - .arg(verbose,"verbose"," print diagnostic output to screen") - .arg(silent,"silent"," limits output to timing info; overrides verbose") - .arg(N,"N"," number of vertices") - .arg(src,"start"," start of path") - .arg(dst,"end"," end of path") - ); - if (silent) verbose = false; // make silent override verbose - else - printf("shortpath will run with %d vertices to find shortest path between vertices" - " %d and %d using %d:%d threads.\n", - (int)N, (int)src, (int)dst, (int)threads.first, (int)threads.last); - - if (dst >= N) { - if (verbose) - printf("end value %d is invalid for %d vertices; correcting to %d\n", (int)dst, (int)N, (int)N-1); - dst = N-1; - } - - num_spawn = 0; - max_spawn = N/grainsize; - tick_count t0, t1; - InitializeGraph(); - for (int n_thr=threads.first; n_thr<=threads.last; n_thr=threads.step(n_thr)) { - ResetGraph(); - task_scheduler_init init(n_thr); - t0 = tick_count::now(); - shortpath(); - t1 = tick_count::now(); - if (!silent) { - if (predecessor[dst] != N) { - printf("%d threads: [%6.6f] The shortest path from vertex %d to vertex %d is:", - (int)n_thr, (t1-t0).seconds(), (int)src, (int)dst); - print_path(); - } - else { - printf("%d threads: [%6.6f] There is no path from vertex %d to vertex %d\n", - (int)n_thr, (t1-t0).seconds(), (int)src, (int)dst); - } - } else - utility::report_elapsed_time((t1-t0).seconds()); - } - return 0; - } catch(std::exception& e) { - cerr<<"error occurred. error text is :\"" <nul 2>&1 || echo "$(CXX) command not found. Check if CXX=$(CXX) is set properly" - -perf_build: release - -perf_run: - $(PROG) $(PERF_RUN_ARGS) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/binpack/binpack.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/binpack/binpack.cpp deleted file mode 100644 index 2bfb4bb5c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/binpack/binpack.cpp +++ /dev/null @@ -1,307 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - - -/* Bin-packing algorithm that attempts to use minimal number of bins B of - size V to contain N items of varying sizes. */ - -#include -#include -#include -#include "tbb/atomic.h" -#include "tbb/task_scheduler_init.h" -#include "tbb/tick_count.h" -#include "tbb/flow_graph.h" -#include "../../common/utility/utility.h" - -using namespace std; -using namespace tbb; -using namespace tbb::flow; - -typedef size_t size_type; // to represent non-zero indices, capacities, etc. -typedef size_t value_type; // the type of items we are attempting to pack into bins -typedef vector bin; // we use a simple vector to represent a bin -// Our bin packers will be function nodes in the graph that take value_type items and -// return a dummy value. They will also implicitly send packed bins to the bin_buffer -// node, and unused items back to the value_pool node: -typedef function_node bin_packer; -// Items are placed into a pool that all bin packers grab from, represent by a queue_node: -typedef queue_node value_pool; -// Packed bins are placed in this buffer waiting to be serially printed and/or accounted for: -typedef buffer_node bin_buffer; -// Packed bins are taken from the_bin_buffer and processed by the_writer: -typedef function_node bin_writer; -// Items are injected into the graph when this node sends them to the_value_pool: -typedef source_node value_source; - -// User-specified globals with default values -size_type V = 42; // desired capacity for each bin -size_type N = 1000; // number of elements to generate -bool verbose = false; // prints bin details and other diagnostics to screen -bool silent = false; // suppress all output except for time -int num_bin_packers=-1; // number of concurrent bin packers in operation; default is #threads; - // larger values can result in more bins at less than full capacity -size_type optimality=1; // 1 (default) is highest the algorithm can obtain; larger numbers run faster - -// Calculated globals -size_type min_B; // lower bound on the optimal number of bins -size_type B; // the answer, i.e. number of bins used by the algorithm -size_type *input_array; // stores randomly generated input values -value_type item_sum; // sum of all randomly generated input values -atomic packed_sum; // sum of all values currently packed into all bins -atomic packed_items; // number of values currently packed into all bins -atomic active_bins; // number of active bin_packers -bin_packer **bins; // the array of bin packers - -// This class is the Body type for bin_packer -class bin_filler { - bin my_bin; // the current bin that this bin_filler is packing - size_type my_used; // capacity of bin used by current contents (not to be confused with my_bin.size()) - size_type relax, relax_val; // relaxation counter for determining when to settle for a non-full bin - bin_packer* my_bin_packer; // ptr to the bin packer that this body object is associated with - size_type bin_index; // index of the encapsulating bin packer in the global bins array - value_pool* the_value_pool; // ptr to the pool of items to pack - bin_buffer* the_bin_buffer; // ptr to the buffer of resulting bins - value_type looking_for; // the minimum size of item this bin_packer will accept - bool done; // flag to indicate that this binpacker has been deactivated - public: - bin_filler(size_t bidx, value_pool* q, bin_buffer* r) : - my_used(0), relax(0), relax_val(0), my_bin_packer(NULL), bin_index(bidx), the_value_pool(q), - the_bin_buffer(r), looking_for(V), done(false) {} - continue_msg operator()(const value_type& item) { - if (!my_bin_packer) my_bin_packer = bins[bin_index]; - if (done) the_value_pool->try_put(item); // this bin_packer is done packing items; put item back to pool - else if (item > V) { // signal that packed_sum has reached item_sum at some point - size_type remaining = active_bins--; - if (remaining == 1 && packed_sum == item_sum) { // this is the last bin and it has seen everything - // this bin_packer may not have seen everything, so stay active - if (my_used>0) the_bin_buffer->try_put(my_bin); - my_bin.clear(); - my_used = 0; - looking_for = V; - ++active_bins; - } - else if (remaining == 1) { // this is the last bin, but there are remaining items - the_value_pool->try_put(V+1); // send out signal - ++active_bins; - } - else if (remaining > 1) { // this is not the last bin; deactivate - if (my_used < V/(1+optimality*.1)) { // this bin is ill-utilized; throw back items and deactivate - packed_sum -= my_used; - packed_items -= my_bin.size(); - for (size_type i=0; itry_put(my_bin[i]); - the_value_pool->remove_successor(*my_bin_packer); // deactivate - done = true; - the_value_pool->try_put(V+1); // send out signal - } - else { // this bin is well-utilized; send out bin and deactivate - the_value_pool->remove_successor(*my_bin_packer); // build no more bins - done = true; - if (my_used>0) the_bin_buffer->try_put(my_bin); - the_value_pool->try_put(V+1); // send out signal - } - } - } - else if (item <= V-my_used && item >= looking_for) { // this item can be packed - my_bin.push_back(item); - my_used += item; - packed_sum += item; - ++packed_items; - looking_for = V-my_used; - relax = 0; - if (packed_sum == item_sum) { - the_value_pool->try_put(V+1); // send out signal - } - if (my_used == V) { - the_bin_buffer->try_put(my_bin); - my_bin.clear(); - my_used = 0; - looking_for = V; - } - } - else { // this item can't be packed; relax constraints - ++relax; - if (relax >= (N-packed_items)/optimality) { // this bin_packer has looked through enough items - relax = 0; - --looking_for; // accept a wider range of items - if (looking_for == 0 && my_used < V/(1+optimality*.1) && my_used > 0 && active_bins > 1) { - // this bin_packer is ill-utilized and can't find items; deactivate and throw back items - size_type remaining = active_bins--; - if (remaining > 1) { // not the last bin_packer - the_value_pool->remove_successor(*my_bin_packer); // deactivate - done = true; - } - else active_bins++; // can't deactivate last bin_packer - packed_sum -= my_used; - packed_items -= my_bin.size(); - for (size_type i=0; itry_put(my_bin[i]); - my_bin.clear(); - my_used = 0; - } - else if (looking_for == 0 && (my_used >= V/(1+optimality*.1) || active_bins == 1)) { - // this bin_packer can't find items but is well-utilized, so send it out and reset - the_bin_buffer->try_put(my_bin); - my_bin.clear(); - my_used = 0; - looking_for = V; - } - } - the_value_pool->try_put(item); // put unused item back to pool - } - return continue_msg(); // need to return something - } -}; - -// source node uses this to send the values to the value_pool -class item_generator { - size_type counter; -public: - item_generator() : counter(0) {} - bool operator()(value_type& m) { - if (counter my_max) my_max = sum; - avg += sum; - running_count += sum; - if (verbose) - cout << "]=" << sum << "; Done/Packed/Total cap: " << running_count << "/" << packed_sum << "/" << item_sum - << " items:" << item_count << "/" << packed_items << "/" << N << " B=" << B << endl; - if (item_count == N) { // should be the last; print stats - avg = avg/(double)B; - if (!silent) - cout << "SUMMARY: #Bins used: " << B << "; Avg size: " << avg << "; Max size: " << my_max - << "; Min size: " << my_min << "\n Lower bound on optimal #bins: " << min_B - << "; Start #bins: " << num_bin_packers << endl; - } - return continue_msg(); // need to return something - } -}; - -int get_default_num_threads() { - static int threads = 0; - if (threads == 0) - threads = tbb::task_scheduler_init::default_num_threads(); - return threads; -} - -int main(int argc, char *argv[]) { - try { - utility::thread_number_range threads(get_default_num_threads); - utility::parse_cli_arguments(argc, argv, - utility::cli_argument_pack() - //"-h" option for displaying help is present implicitly - .positional_arg(threads,"#threads",utility::thread_number_range_desc) - .arg(verbose,"verbose"," print diagnostic output to screen") - .arg(silent,"silent"," limits output to timing info; overrides verbose") - .arg(N,"N"," number of values to pack") - .arg(V,"V"," capacity of each bin") - .arg(num_bin_packers,"#packers"," number of concurrent bin packers to use " - "(default=#threads)") - .arg(optimality,"optimality","controls optimality of solution; 1 is highest, use\n" - " larger numbers for less optimal but faster solution") - ); - - if (silent) verbose = false; // make silent override verbose - // Generate random input data - srand(42); - input_array = new value_type[N]; - item_sum = 0; - for (size_type i=0; i - - -

Overview

- -This directory contains a simple tbb::flow example that performs -binpacking of N integer values into a near-optimal number of bins -of capacity V. It features a source_node which passes randomly -generated integer values of size<=V to a queue_node. Multiple -function_nodes set about taking values from this queue_node and -packing them into bins according to a best-fit policy. Items that -cannot be made to fit are rejected and returned to the queue. When -a bin is packed as well as it can be, it is passed to a buffer_node -where it waits to be picked up by another function_node. This final -function nodes gathers stats about the bin and optionally prints its -contents. When all bins are accounted for, it optionally prints a -summary of the quality of the bin-packing. - -

Files

-
-
binpack.cpp -
Driver. - -
Makefile -
Makefile for building example. - -
- -

Directories

-
-
msvs -
Contains Microsoft* Visual Studio* 2008 workspace for building and running the example with the Intel® C++ compiler (Windows* systems only). -
xcode -
Contains Xcode* IDE workspace for building and running the example (OS X* systems only). -
- -

To Build

-General build directions can be found here. -

- -

Usage

-
- -
binpack -h -
Prints the help for command line options -
binpack [#threads=value] [verbose] [silent] [N=value] [V=value] [#packers=value] [optimality=value] [#threads] -
#threads is the number of threads to use; a range of the form low[:high] where low and optional high are non-negative integers, or 'auto' for the TBB default.
- verbose print diagnostic output to screen
- silent limits output to timing info; overrides verbose
- N number of values to pack
- V capacity of each bin
- #packers number of concurrent bin packers to use (default=#threads)
- optimality controls optimality of solution; 1 is highest, use larger numbers for less optimal but faster solution
- - -
To run a short version of this example, e.g., for use with Intel® Parallel Inspector: -
Build a debug version of the example - (see the build directions). -
Run it with a small problem size and the desired number of threads, e.g., binpack 4 N=100. -
- -
-Up to parent directory -

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/binpack/msvs/binpack.icproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/binpack/msvs/binpack.icproj deleted file mode 100644 index 0de95147f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/binpack/msvs/binpack.icproj +++ /dev/null @@ -1,11 +0,0 @@ - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/binpack/msvs/binpack.vcproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/binpack/msvs/binpack.vcproj deleted file mode 100644 index 16779609e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/binpack/msvs/binpack.vcproj +++ /dev/null @@ -1,356 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/binpack/msvs/binpack_cl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/binpack/msvs/binpack_cl.sln deleted file mode 100644 index c584e099d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/binpack/msvs/binpack_cl.sln +++ /dev/null @@ -1,25 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "binpack", "binpack.vcproj", "{C931C7A2-074E-4150-9E7A-39A03250411E}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|Win32.ActiveCfg = Debug|Win32 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|Win32.Build.0 = Debug|Win32 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|x64.ActiveCfg = Debug|x64 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|x64.Build.0 = Debug|x64 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|Win32.ActiveCfg = Release|Win32 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|Win32.Build.0 = Release|Win32 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|x64.ActiveCfg = Release|x64 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/binpack/msvs/binpack_icl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/binpack/msvs/binpack_icl.sln deleted file mode 100644 index d7dfdd495..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/binpack/msvs/binpack_icl.sln +++ /dev/null @@ -1,33 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{EAF909A5-FA59-4C3D-9431-0FCC20D5BCF9}") = "binpack", "binpack.icproj", "{CB292CD9-903E-464C-AAFE-E7A49003565C}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {CB292CD9-903E-464C-AAFE-E7A49003565C}.Debug|Win32.ActiveCfg = Debug|Win32 - {CB292CD9-903E-464C-AAFE-E7A49003565C}.Debug|Win32.Build.0 = Debug|Win32 - {CB292CD9-903E-464C-AAFE-E7A49003565C}.Debug|x64.ActiveCfg = Debug|x64 - {CB292CD9-903E-464C-AAFE-E7A49003565C}.Debug|x64.Build.0 = Debug|x64 - {CB292CD9-903E-464C-AAFE-E7A49003565C}.Release|Win32.ActiveCfg = Release|Win32 - {CB292CD9-903E-464C-AAFE-E7A49003565C}.Release|Win32.Build.0 = Release|Win32 - {CB292CD9-903E-464C-AAFE-E7A49003565C}.Release|x64.ActiveCfg = Release|x64 - {CB292CD9-903E-464C-AAFE-E7A49003565C}.Release|x64.Build.0 = Release|x64 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|x64.Build.0 = Release|x64 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|x64.ActiveCfg = Release|x64 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|Win32.Build.0 = Release|Win32 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|Win32.ActiveCfg = Release|Win32 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|x64.Build.0 = Debug|x64 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|x64.ActiveCfg = Debug|x64 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|Win32.Build.0 = Debug|Win32 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|Win32.ActiveCfg = Debug|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/binpack/xcode/binpack.xcodeproj/project.pbxproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/binpack/xcode/binpack.xcodeproj/project.pbxproj deleted file mode 100644 index 58bde8e88..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/binpack/xcode/binpack.xcodeproj/project.pbxproj +++ /dev/null @@ -1,305 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 0E8A7311136F4A4600453C80 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 0E8A7310136F4A4600453C80 /* libtbb.dylib */; }; - 0E8A7325136F4D3600453C80 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 0E8A7310136F4A4600453C80 /* libtbb.dylib */; }; - A1F593A60B8F042A00073279 /* binpack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F593A50B8F042A00073279 /* binpack.cpp */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 8DD76F690486A84900D96B5E /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 12; - dstPath = ""; - dstSubfolderSpec = 16; - files = ( - 0E8A7311136F4A4600453C80 /* libtbb.dylib in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 0E8A7310136F4A4600453C80 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = ../../../../lib/libtbb.dylib; sourceTree = ""; }; - 8DD76F6C0486A84900D96B5E /* Binpack */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = Binpack; sourceTree = BUILT_PRODUCTS_DIR; }; - A1F593A50B8F042A00073279 /* binpack.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = binpack.cpp; path = ../binpack.cpp; sourceTree = SOURCE_ROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8DD76F660486A84900D96B5E /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 0E8A7325136F4D3600453C80 /* libtbb.dylib in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 08FB7794FE84155DC02AAC07 /* Binpack */ = { - isa = PBXGroup; - children = ( - 08FB7795FE84155DC02AAC07 /* Source */, - A1F593B20B8F06F900073279 /* External Frameworks and Libraries */, - 1AB674ADFE9D54B511CA2CBB /* Products */, - ); - name = Binpack; - sourceTree = ""; - }; - 08FB7795FE84155DC02AAC07 /* Source */ = { - isa = PBXGroup; - children = ( - A1F593A50B8F042A00073279 /* binpack.cpp */, - ); - name = Source; - sourceTree = ""; - }; - 1AB674ADFE9D54B511CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8DD76F6C0486A84900D96B5E /* Binpack */, - ); - name = Products; - sourceTree = ""; - }; - A1F593B20B8F06F900073279 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - 0E8A7310136F4A4600453C80 /* libtbb.dylib */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8DD76F620486A84900D96B5E /* Binpack */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "Binpack" */; - buildPhases = ( - 8DD76F640486A84900D96B5E /* Sources */, - 8DD76F660486A84900D96B5E /* Frameworks */, - 8DD76F690486A84900D96B5E /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Binpack; - productInstallPath = "$(HOME)/bin"; - productName = Binpack; - productReference = 8DD76F6C0486A84900D96B5E /* Binpack */; - productType = "com.apple.product-type.tool"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 08FB7793FE84155DC02AAC07 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0410; - }; - buildConfigurationList = 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "binpack" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - en, - ); - mainGroup = 08FB7794FE84155DC02AAC07 /* Binpack */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8DD76F620486A84900D96B5E /* Binpack */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXSourcesBuildPhase section */ - 8DD76F640486A84900D96B5E /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A1F593A60B8F042A00073279 /* binpack.cpp in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 1DEB923208733DC60010E9CD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = Binpack; - ZERO_LINK = NO; - }; - name = Debug; - }; - 1DEB923308733DC60010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = Binpack; - ZERO_LINK = NO; - }; - name = Release; - }; - 1DEB923608733DC60010E9CD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Debug; - }; - 1DEB923708733DC60010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Release; - }; - A1F593C60B8F0E6E00073279 /* Debug64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = Binpack; - ZERO_LINK = NO; - }; - name = Debug64; - }; - A1F593C70B8F0E6E00073279 /* Release64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = Binpack; - ZERO_LINK = NO; - }; - name = Release64; - }; - A1F593C80B8F0E6E00073279 /* Debug64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "-m64", - ); - OTHER_LDFLAGS = "-m64"; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Debug64; - }; - A1F593C90B8F0E6E00073279 /* Release64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "-m64", - ); - OTHER_LDFLAGS = "-m64"; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Release64; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "Binpack" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB923208733DC60010E9CD /* Debug */, - A1F593C60B8F0E6E00073279 /* Debug64 */, - 1DEB923308733DC60010E9CD /* Release */, - A1F593C70B8F0E6E00073279 /* Release64 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "binpack" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB923608733DC60010E9CD /* Debug */, - A1F593C80B8F0E6E00073279 /* Debug64 */, - 1DEB923708733DC60010E9CD /* Release */, - A1F593C90B8F0E6E00073279 /* Release64 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/dining_philosophers/Makefile b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/dining_philosophers/Makefile deleted file mode 100644 index 4b45dea1d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/dining_philosophers/Makefile +++ /dev/null @@ -1,54 +0,0 @@ -# Copyright 2005-2014 Intel Corporation. All Rights Reserved. -# -# This file is part of Threading Building Blocks. -# -# Threading Building Blocks is free software; you can redistribute it -# and/or modify it under the terms of the GNU General Public License -# version 2 as published by the Free Software Foundation. -# -# Threading Building Blocks is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied warranty -# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Threading Building Blocks; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# -# As a special exception, you may use this file as part of a free software -# library without restriction. Specifically, if other files instantiate -# templates or use macros or inline functions from this file, or you compile -# this file and link it with other files to produce an executable, this -# file does not by itself cause the resulting executable to be covered by -# the GNU General Public License. This exception does not however -# invalidate any other reasons why the executable file might be covered by -# the GNU General Public License. - -# Common Makefile that builds and runs example. - -# Just specify your program basename -PROG=dining_philosophers -ARGS= auto 5 -LIGHT_ARGS= auto 3 - -# Trying to find if icl.exe is set -CXX1 = $(TBB_CXX)- -CXX2 = $(CXX1:icl.exe-=icl.exe) -CXX = $(CXX2:-=cl.exe) - -# The C++ compiler options -MYCXXFLAGS = /TP /EHsc /W3 /nologo /D _CONSOLE /D _MBCS /D WIN32 /D _CRT_SECURE_NO_DEPRECATE $(CXXFLAGS) -MYLDFLAGS =/INCREMENTAL:NO /NOLOGO /DEBUG /FIXED:NO $(LDFLAGS) - -all: release test -release: - $(CXX) ./dining_philosophers.cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe -debug: - $(CXX) ./dining_philosophers.cpp /MDd /Od /Zi /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe -clean: - @cmd.exe /C del $(PROG).exe *.obj *.?db *.manifest -test: - $(PROG) $(ARGS) -light_test: - $(PROG) $(LIGHT_ARGS) - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/dining_philosophers/dining_philosophers.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/dining_philosophers/dining_philosophers.cpp deleted file mode 100644 index 39f37d490..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/dining_philosophers/dining_philosophers.cpp +++ /dev/null @@ -1,320 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#if _MSC_VER - // Suppress "decorated name length exceeded, name was truncated" warning - #pragma warning (disable: 4503) -#endif - -#include "tbb/flow_graph.h" -#include "tbb/task_scheduler_init.h" -#include "tbb/tick_count.h" -#include "tbb/atomic.h" -#include "tbb/spin_mutex.h" -#include -#include "../../common/utility/utility.h" -#include -#include - -#if _WIN32 || _WIN64 -#include "windows.h" -#define SLEEP(a) Sleep(a*1000) -#else -#define SLEEP(a) sleep(a) -#endif - -// Each philosopher is an object, and is invoked in the think() function_node, the -// eat() function_node and forward() multifunction_node. -// -// The graph is constructed, and each think() function_node is started with a continue_msg. -// -// The philosopher will think, then gather two chopsticks, eat, place the chopsticks back, -// and if they have not completed the required number of cycles, will start to think() again -// by sending a continue_msg to their corresponding think() function_node. -// -// The reserving join has as its inputs the left and right chopstick queues an a queue -// that stores the continue_msg emitted by the function_node after think()ing is done. -// When all three inputs are available, a tuple of the inputs will be forwarded to the -// eat() function_node. The output of the eat() function_node is sent to the forward() -// multifunction_node. - -const int think_time = 1; -const int eat_time = 1; -const int num_times = 10; - -tbb::tick_count t0; -bool verbose = false; - -const char *names[] = { "Archimedes", "Bakunin", "Confucius", "Democritus", "Euclid" - , "Favorinus", "Geminus", "Heraclitus", "Ichthyas", "Jason of Nysa", - "Kant", "Lavrov", "Metrocles", "Nausiphanes", "Onatas", "Phaedrus", - "Quillot", "Russell", "Socrates", "Thales", "Udayana", - "Vernadsky", "Wittgenstein", "Xenophilus", "Yen Yuan", "Zenodotus" -}; -const int NumPhilosophers = sizeof(names) / sizeof(char*); - -struct RunOptions { - utility::thread_number_range threads; - int number_of_philosophers; - bool silent; - RunOptions(utility::thread_number_range threads_, int number_of_philosophers_, bool silent_) : - threads(threads_), number_of_philosophers(number_of_philosophers_), silent(silent_) { } -}; - -RunOptions ParseCommandLine(int argc, char *argv[]) { - int auto_threads = tbb::task_scheduler_init::default_num_threads(); - utility::thread_number_range threads(tbb::task_scheduler_init::default_num_threads, auto_threads, auto_threads); - int nPhilosophers = 5; - bool verbose = false; - char charbuf[100]; - std::sprintf(charbuf, "%d", NumPhilosophers); - std::string pCount = "how many philosophers, from 2-"; - pCount += charbuf; - - utility::cli_argument_pack cli_pack; - cli_pack.positional_arg(threads, "n-of_threads", utility::thread_number_range_desc) - .positional_arg(nPhilosophers, "n-of-philosophers", pCount) - .arg(verbose,"verbose","verbose output"); - utility::parse_cli_arguments(argc, argv, cli_pack); - if(nPhilosophers < 2 || nPhilosophers > NumPhilosophers) { - std::cout << "Number of philosophers (" << nPhilosophers << ") out of range [2:" << NumPhilosophers << "]\n"; - std::cout << cli_pack.usage_string(argv[0]) << std::flush; - std::exit(1); - } - return RunOptions(threads, nPhilosophers,!verbose); -} - - -tbb::spin_mutex my_mutex; - -class chopstick {}; - -using namespace tbb::flow; - -typedef tbb::flow::tuple join_output; -typedef join_node< join_output, reserving > join_node_type; - -typedef function_node think_node_type; -typedef function_node eat_node_type; -typedef multifunction_node forward_node_type; - -class philosopher { -public: - - philosopher( const char *name ) : - my_name(name), my_count(num_times) { } - - ~philosopher() { - } - - void check(); - const char *name() const { return my_name; } - -private: - - friend std::ostream& operator<<(std::ostream& o, philosopher const &p); - - const char *my_name; - int my_count; - - friend class think_node_body; - friend class eat_node_body; - friend class forward_node_body; - - void think( ); - void eat(); - void forward( const continue_msg &in, forward_node_type::output_ports_type &out_ports ); -}; - -std::ostream& operator<<(std::ostream& o, philosopher const &p) { - o << "< philosopher[" << reinterpret_cast(const_cast(&p)) << "] " << p.name() - << ", my_count=" << p.my_count; - return o; -} - -class think_node_body { - philosopher& my_philosopher; -public: - think_node_body( philosopher &p ) : my_philosopher(p) { } - think_node_body( const think_node_body &other ) : my_philosopher(other.my_philosopher) { } - continue_msg operator()( continue_msg /*m*/) { - my_philosopher.think(); - return continue_msg(); - } -}; - -class eat_node_body { - philosopher &my_philosopher; -public: - eat_node_body( philosopher &p) : my_philosopher(p) {} - eat_node_body( const eat_node_body &other ) : my_philosopher(other.my_philosopher) { } - continue_msg operator()(const join_output &in) { - my_philosopher.eat(); - return continue_msg(); - } -}; - -class forward_node_body { - philosopher &my_philosopher; -public: - forward_node_body( philosopher &p) : my_philosopher(p) {} - forward_node_body( const forward_node_body &other ) : my_philosopher(other.my_philosopher) { } - void operator()( const continue_msg &in, forward_node_type::output_ports_type &out) { - my_philosopher.forward( in, out); - } -}; - -void philosopher::check() { - if ( my_count != 0 ) { - std::printf("ERROR: philosopher %s still had to run %d more times\n", name(), my_count); - std::exit(1); - } -} - -void philosopher::forward( const continue_msg &/*in*/, forward_node_type::output_ports_type &out_ports ) { - if(my_count < 0) abort(); - --my_count; - (void)tbb::flow::get<1>(out_ports).try_put(chopstick()); - (void)tbb::flow::get<2>(out_ports).try_put(chopstick()); - if (my_count > 0) { - (void)tbb::flow::get<0>(out_ports).try_put(continue_msg()); //start thinking again - } else { - if(verbose) { - tbb::spin_mutex::scoped_lock lock(my_mutex); - std::printf("%s has left the building\n", name()); - } - } -} - -void philosopher::eat() { - if(verbose) { - tbb::spin_mutex::scoped_lock lock(my_mutex); - std::printf("%s eating\n", name()); - } - SLEEP(eat_time); - if(verbose) { - tbb::spin_mutex::scoped_lock lock(my_mutex); - std::printf("%s done eating\n", name()); - } -} - -void philosopher::think() { - if(verbose) { - tbb::spin_mutex::scoped_lock lock(my_mutex); - std::printf("%s thinking\n", name()); - } - SLEEP(think_time); - if(verbose) { - tbb::spin_mutex::scoped_lock lock(my_mutex); - std::printf("%s done thinking\n", name()); - } -} - -typedef queue_node thinking_done_type; - -int main(int argc, char *argv[]) { - try { - tbb::tick_count main_time = tbb::tick_count::now(); - int num_threads; - int num_philosophers; - - RunOptions options = ParseCommandLine(argc, argv); - num_philosophers = options.number_of_philosophers; - verbose = !options.silent; - - for(num_threads = options.threads.first; num_threads <= options.threads.last; num_threads = options.threads.step(num_threads)) { - - tbb::task_scheduler_init init(num_threads); - - graph g; - - if(verbose) std::cout << std::endl << num_philosophers << " philosophers with " - << num_threads << " threads" << std::endl << std::endl; - t0 = tbb::tick_count::now(); - - std::vector > places(num_philosophers, queue_node(g)); - std::vector philosophers; - philosophers.reserve(num_philosophers); - std::vector think_nodes; - think_nodes.reserve(num_philosophers); - std::vector done_vector(num_philosophers, thinking_done_type(g)); - std::vector join_vector(num_philosophers,join_node_type(g)); - std::vector eat_nodes; - eat_nodes.reserve(num_philosophers); - std::vector forward_nodes; - forward_nodes.reserve(num_philosophers); - for ( int i = 0; i < num_philosophers; ++i ) { - places[i].try_put(chopstick()); - philosophers.push_back( philosopher( names[i] ) ); // allowed because of default generated assignment - if(verbose) { - tbb::spin_mutex::scoped_lock lock(my_mutex); - std::cout << "Built philosopher " << philosophers[i] << std::endl; - } - think_nodes.push_back(new think_node_type(g, unlimited, think_node_body(philosophers[i]))); - eat_nodes.push_back( new eat_node_type(g, unlimited, eat_node_body(philosophers[i]))); - forward_nodes.push_back( new forward_node_type(g, unlimited, forward_node_body(philosophers[i]))); - } - - // attach chopstick buffers and think function_nodes to joins - for(int i = 0; i < num_philosophers; ++i) { - make_edge( *think_nodes[i], done_vector[i] ); - make_edge( done_vector[i], input_port<0>(join_vector[i]) ); - make_edge( places[i], input_port<1>(join_vector[i]) ); // left chopstick - make_edge( places[(i+1) % num_philosophers], input_port<2>(join_vector[i]) ); // right chopstick - make_edge( join_vector[i], *eat_nodes[i] ); - make_edge( *eat_nodes[i], *forward_nodes[i] ); - make_edge( output_port<0>(*forward_nodes[i]), *think_nodes[i] ); - make_edge( output_port<1>(*forward_nodes[i]), places[i] ); - make_edge( output_port<2>(*forward_nodes[i]), places[(i+1) % num_philosophers] ); - } - - // start all the philosophers thinking - for(int i = 0; i < num_philosophers; ++i) think_nodes[i]->try_put(continue_msg()); - - g.wait_for_all(); - - tbb::tick_count t1 = tbb::tick_count::now(); - if(verbose) std::cout << std::endl << num_philosophers << " philosophers with " - << num_threads << " threads have taken " << (t1-t0).seconds() << "seconds" << std::endl; - - for ( int i = 0; i < num_philosophers; ++i ) philosophers[i].check(); - - for(int i = 0; i < num_philosophers; ++i) { - delete think_nodes[i]; - delete eat_nodes[i]; - delete forward_nodes[i]; - } - } - - utility::report_elapsed_time((tbb::tick_count::now() - main_time).seconds()); - return 0; - } catch(std::exception& e) { - std::cerr<<"error occurred. error text is :\"" < - - -

Overview

-The Dining Philosophers problem demonstrates tbb::flow and the use of the reserving join node to -solve the potential deadlock. -
This program runs some number of philosophers in parallel, each thinking and then waiting for chopsticks -to be available before eating. Eating and thinking are implemented with sleep(). The chopstick positions are represented by a queue_node with one item. - -

Source Files

-
-
dining_philosophers.cpp -
Source code for the example. -
Makefile, Makefile.windows -
Makefiles for building example. -
- -

Directories

-
-
src -
Contains source file mentioned above. -
msvs -
Contains Microsoft* Visual Studio* 2005 workspace for building and running the - example (Windows* systems only).
xcode -
Contains Xcode* IDE workspace for building and running the example (OS X* - systems only).
- -

To Build

-General build directions can be found here. -

- -
-Up to parent directory -

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/dining_philosophers/msvs/dining_philosophers.icproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/dining_philosophers/msvs/dining_philosophers.icproj deleted file mode 100644 index ec23d050e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/dining_philosophers/msvs/dining_philosophers.icproj +++ /dev/null @@ -1,11 +0,0 @@ - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/dining_philosophers/msvs/dining_philosophers.vcproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/dining_philosophers/msvs/dining_philosophers.vcproj deleted file mode 100644 index 2b9b60d3b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/dining_philosophers/msvs/dining_philosophers.vcproj +++ /dev/null @@ -1,356 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/dining_philosophers/msvs/dining_philosophers_cl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/dining_philosophers/msvs/dining_philosophers_cl.sln deleted file mode 100644 index d874c1779..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/dining_philosophers/msvs/dining_philosophers_cl.sln +++ /dev/null @@ -1,25 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{3EC5FFF9-397F-47A7-BAF9-FDD602956644}") = "dining_philosophers", "dining_philosophers.vcproj", "{3894D1D2-A574-4937-AD56-726758EFE5B7}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3894D1D2-A574-4937-AD56-726758EFE5B7}.Debug|Win32.ActiveCfg = Debug|Win32 - {3894D1D2-A574-4937-AD56-726758EFE5B7}.Debug|Win32.Build.0 = Debug|Win32 - {3894D1D2-A574-4937-AD56-726758EFE5B7}.Debug|x64.ActiveCfg = Debug|x64 - {3894D1D2-A574-4937-AD56-726758EFE5B7}.Debug|x64.Build.0 = Debug|x64 - {3894D1D2-A574-4937-AD56-726758EFE5B7}.Release|Win32.ActiveCfg = Release|Win32 - {3894D1D2-A574-4937-AD56-726758EFE5B7}.Release|Win32.Build.0 = Release|Win32 - {3894D1D2-A574-4937-AD56-726758EFE5B7}.Release|x64.ActiveCfg = Release|x64 - {3894D1D2-A574-4937-AD56-726758EFE5B7}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/dining_philosophers/msvs/dining_philosophers_icl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/dining_philosophers/msvs/dining_philosophers_icl.sln deleted file mode 100644 index 9038a9498..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/dining_philosophers/msvs/dining_philosophers_icl.sln +++ /dev/null @@ -1,33 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{b651a8c1-851b-4873-ab7a-428d9f15be2d}") = "dining_philosophers", "dining_philosophers.icproj", "{bbdf68ee-c8b2-4836-b3fc-385ce2265dc0}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {bbdf68ee-c8b2-4836-b3fc-385ce2265dc0}.Debug|Win32.ActiveCfg = Debug|Win32 - {bbdf68ee-c8b2-4836-b3fc-385ce2265dc0}.Debug|Win32.Build.0 = Debug|Win32 - {bbdf68ee-c8b2-4836-b3fc-385ce2265dc0}.Debug|x64.ActiveCfg = Debug|x64 - {bbdf68ee-c8b2-4836-b3fc-385ce2265dc0}.Debug|x64.Build.0 = Debug|x64 - {bbdf68ee-c8b2-4836-b3fc-385ce2265dc0}.Release|Win32.ActiveCfg = Release|Win32 - {bbdf68ee-c8b2-4836-b3fc-385ce2265dc0}.Release|Win32.Build.0 = Release|Win32 - {bbdf68ee-c8b2-4836-b3fc-385ce2265dc0}.Release|x64.ActiveCfg = Release|x64 - {bbdf68ee-c8b2-4836-b3fc-385ce2265dc0}.Release|x64.Build.0 = Release|x64 - {3894d1d2-a574-4937-ad56-726758efe5b7}.Release|x64.Build.0 = Release|x64 - {3894d1d2-a574-4937-ad56-726758efe5b7}.Release|x64.ActiveCfg = Release|x64 - {3894d1d2-a574-4937-ad56-726758efe5b7}.Release|Win32.Build.0 = Release|Win32 - {3894d1d2-a574-4937-ad56-726758efe5b7}.Release|Win32.ActiveCfg = Release|Win32 - {3894d1d2-a574-4937-ad56-726758efe5b7}.Debug|x64.Build.0 = Debug|x64 - {3894d1d2-a574-4937-ad56-726758efe5b7}.Debug|x64.ActiveCfg = Debug|x64 - {3894d1d2-a574-4937-ad56-726758efe5b7}.Debug|Win32.Build.0 = Debug|Win32 - {3894d1d2-a574-4937-ad56-726758efe5b7}.Debug|Win32.ActiveCfg = Debug|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/dining_philosophers/xcode/dining_philosophers.xcodeproj/project.pbxproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/dining_philosophers/xcode/dining_philosophers.xcodeproj/project.pbxproj deleted file mode 100644 index fc048821d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/dining_philosophers/xcode/dining_philosophers.xcodeproj/project.pbxproj +++ /dev/null @@ -1,305 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - A1F593A60B8F042A00073279 /* dining_philosophers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F593A50B8F042A00073279 /* dining_philosophers.cpp */; }; - A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; }; - A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 8DD76F690486A84900D96B5E /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 12; - dstPath = ""; - dstSubfolderSpec = 16; - files = ( - A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 8DD76F6C0486A84900D96B5E /* dining_philosophers */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = dining_philosophers; sourceTree = BUILT_PRODUCTS_DIR; }; - A1F593A50B8F042A00073279 /* dining_philosophers.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = dining_philosophers.cpp; path = ../dining_philosophers.cpp; sourceTree = SOURCE_ROOT; }; - A1F593B30B8F06F900073279 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = ../../../../lib/libtbb.dylib; sourceTree = SOURCE_ROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8DD76F660486A84900D96B5E /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 08FB7794FE84155DC02AAC07 /* dining_philosophers */ = { - isa = PBXGroup; - children = ( - 08FB7795FE84155DC02AAC07 /* Source */, - A1F593B20B8F06F900073279 /* External Frameworks and Libraries */, - 1AB674ADFE9D54B511CA2CBB /* Products */, - ); - name = dining_philosophers; - sourceTree = ""; - }; - 08FB7795FE84155DC02AAC07 /* Source */ = { - isa = PBXGroup; - children = ( - A1F593A50B8F042A00073279 /* dining_philosophers.cpp */, - ); - name = Source; - sourceTree = ""; - }; - 1AB674ADFE9D54B511CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8DD76F6C0486A84900D96B5E /* dining_philosophers */, - ); - name = Products; - sourceTree = ""; - }; - A1F593B20B8F06F900073279 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - A1F593B30B8F06F900073279 /* libtbb.dylib */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8DD76F620486A84900D96B5E /* dining_philosophers */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "dining_philosophers" */; - buildPhases = ( - 8DD76F640486A84900D96B5E /* Sources */, - 8DD76F660486A84900D96B5E /* Frameworks */, - 8DD76F690486A84900D96B5E /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = dining_philosophers; - productInstallPath = "$(HOME)/bin"; - productName = dining_philosophers; - productReference = 8DD76F6C0486A84900D96B5E /* dining_philosophers */; - productType = "com.apple.product-type.tool"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 08FB7793FE84155DC02AAC07 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0410; - }; - buildConfigurationList = 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "dining_philosophers" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - en, - ); - mainGroup = 08FB7794FE84155DC02AAC07 /* dining_philosophers */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8DD76F620486A84900D96B5E /* dining_philosophers */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXSourcesBuildPhase section */ - 8DD76F640486A84900D96B5E /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A1F593A60B8F042A00073279 /* dining_philosophers.cpp in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 1DEB923208733DC60010E9CD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = dining_philosophers; - ZERO_LINK = NO; - }; - name = Debug; - }; - 1DEB923308733DC60010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = dining_philosophers; - ZERO_LINK = NO; - }; - name = Release; - }; - 1DEB923608733DC60010E9CD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Debug; - }; - 1DEB923708733DC60010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Release; - }; - A1F593C60B8F0E6E00073279 /* Debug64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = dining_philosophers; - ZERO_LINK = NO; - }; - name = Debug64; - }; - A1F593C70B8F0E6E00073279 /* Release64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = dining_philosophers; - ZERO_LINK = NO; - }; - name = Release64; - }; - A1F593C80B8F0E6E00073279 /* Debug64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "-m64", - ); - OTHER_LDFLAGS = "-m64"; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Debug64; - }; - A1F593C90B8F0E6E00073279 /* Release64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "-m64", - ); - OTHER_LDFLAGS = "-m64"; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Release64; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "dining_philosophers" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB923208733DC60010E9CD /* Debug */, - A1F593C60B8F0E6E00073279 /* Debug64 */, - 1DEB923308733DC60010E9CD /* Release */, - A1F593C70B8F0E6E00073279 /* Release64 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "dining_philosophers" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB923608733DC60010E9CD /* Debug */, - A1F593C80B8F0E6E00073279 /* Debug64 */, - 1DEB923708733DC60010E9CD /* Release */, - A1F593C90B8F0E6E00073279 /* Release64 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/index.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/index.html deleted file mode 100644 index 5ca004c1d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/index.html +++ /dev/null @@ -1,30 +0,0 @@ - - - -

Overview

-This directory has examples of tbb::flow. - -

Directories

-
-
dining_philosophers -
An implementation of dining philosophers in graph using the reserving join node. -
binpack -
A solution to the binpacking problem using a queue_node, a buffer_node and function_nodes. -
logic_sim -
A simplistic example of a collection of digital logic gates that can be easily composed into larger circuits. -
som -
A simple example of a Kohonen Self-Organizing Map using cancellation. -
- -
-Up to parent directory -

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/logic_sim/D_latch.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/logic_sim/D_latch.h deleted file mode 100644 index f2f6da949..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/logic_sim/D_latch.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBBexample_graph_logicsim_dlatch_H -#define __TBBexample_graph_logicsim_dlatch_H 1 - -#include "basics.h" - -class D_latch { - broadcast_node D_port; - broadcast_node E_port; - not_gate a_not; - and_gate first_and; - and_gate second_and; - nor_gate first_nor; - nor_gate second_nor; - graph& my_graph; - public: - D_latch(graph& g) : my_graph(g), D_port(g), E_port(g), a_not(g), first_and(g), second_and(g), - first_nor(g), second_nor(g) - { - make_edge(D_port, a_not.get_in(0)); - make_edge(D_port, second_and.get_in(1)); - make_edge(E_port, first_and.get_in(1)); - make_edge(E_port, second_and.get_in(0)); - make_edge(a_not.get_out(), first_and.get_in(0)); - make_edge(first_and.get_out(), first_nor.get_in(0)); - make_edge(second_and.get_out(), second_nor.get_in(1)); - make_edge(first_nor.get_out(), second_nor.get_in(0)); - make_edge(second_nor.get_out(), first_nor.get_in(1)); - } - ~D_latch() {} - receiver& get_D() { return D_port; } - receiver& get_E() { return E_port; } - sender& get_Q() { return first_nor.get_out(); } - sender& get_notQ() { return second_nor.get_out(); } -}; - -#endif /* __TBBexample_graph_logicsim_dlatch_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/logic_sim/Makefile b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/logic_sim/Makefile deleted file mode 100644 index a561cb0b3..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/logic_sim/Makefile +++ /dev/null @@ -1,61 +0,0 @@ -# Copyright 2005-2014 Intel Corporation. All Rights Reserved. -# -# This file is part of Threading Building Blocks. -# -# Threading Building Blocks is free software; you can redistribute it -# and/or modify it under the terms of the GNU General Public License -# version 2 as published by the Free Software Foundation. -# -# Threading Building Blocks is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied warranty -# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Threading Building Blocks; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# -# As a special exception, you may use this file as part of a free software -# library without restriction. Specifically, if other files instantiate -# templates or use macros or inline functions from this file, or you compile -# this file and link it with other files to produce an executable, this -# file does not by itself cause the resulting executable to be covered by -# the GNU General Public License. This exception does not however -# invalidate any other reasons why the executable file might be covered by -# the GNU General Public License. - -# Common Makefile that builds and runs example. -PROG=test_all -ARGS=4 -PERF_RUN_ARGS=auto silent - -# Try to find icl.exe -CXX1 = $(TBB_CXX)- -CXX2 = $(CXX1:icl.exe-=icl.exe) -CXX = $(CXX2:-=cl.exe) - -# The C++ compiler options -MYCXXFLAGS = /TP /EHsc /W3 /nologo /D _CONSOLE /D _MBCS /D WIN32 /D _CRT_SECURE_NO_DEPRECATE $(CXXFLAGS) -MYLDFLAGS =/INCREMENTAL:NO /NOLOGO /DEBUG /FIXED:NO $(LDFLAGS) - -all: release test - -release: *.cpp - $(CXX) $(PROG).cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe - -debug: *.cpp - $(CXX) $(PROG).cpp /MDd /Od /Zi /D TBB_USE_DEBUG /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe - -clean: - @cmd.exe /C del $(PROG).exe *.obj *.?db *.manifest - -test: - $(PROG) $(ARGS) - -compiler_check: - @$(CXX) >nul 2>&1 || echo "$(CXX) command not found. Check if CXX=$(CXX) is set properly" - -perf_build: release - -perf_run: - $(PROG) $(PERF_RUN_ARGS) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/logic_sim/basics.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/logic_sim/basics.h deleted file mode 100644 index 398927756..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/logic_sim/basics.h +++ /dev/null @@ -1,543 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBBexample_graph_logicsim_basics_H -#define __TBBexample_graph_logicsim_basics_H 1 - -#define TBB_PREVIEW_GRAPH_NODES 1 - -#include -#include -#include "tbb/atomic.h" -#include "tbb/task_scheduler_init.h" -#include "tbb/tick_count.h" -#include "tbb/flow_graph.h" -#include "../../common/utility/utility.h" - -#ifndef _WIN32 -#include -#include - -void rt_sleep(int msec) { - usleep(msec*1000); -} - -#else //_WIN32 - -#undef OLDUNIXTIME -#undef STDTIME - -#include - -void rt_sleep(int msec) { - Sleep(msec); -} -#endif /* _WIN32 */ - - -using namespace std; -using namespace tbb; -using namespace tbb::flow; - -typedef enum { low=0, high, undefined } signal_t; - -typedef tuple one_input; -typedef tuple two_input; -typedef tuple three_input; -typedef tuple four_input; - -template -struct gate_helper { - template - static inline receiver& get_inport(or_node& in_ports, int port) { - if (N-1 == port) return input_port(in_ports); - else return gate_helper::get_inport(in_ports, port); - } -}; -template <> -struct gate_helper<1> { - template - static inline receiver& get_inport(or_node& in_ports, int port) { - return input_port<0>(in_ports); - } -}; - -template -class gate { -protected: - typedef or_node input_port_t; - typedef multifunction_node< typename input_port_t::output_type, tuple > gate_fn_t; - typedef typename gate_fn_t::output_ports_type ports_type; -public: - static const int N = tbb::flow::tuple_size::value; - - template - gate(graph& g, Body b) : my_graph(g), in_ports(g), gate_fn(g, 1, b) { - make_edge(in_ports, gate_fn); - } - virtual ~gate() {} - gate& operator=(const gate& src) { return *this; } - sender& get_out() { return output_port<0>(gate_fn); } - receiver& get_in(size_t port) { - return gate_helper::get_inport(in_ports, (int)port); - } -protected: - graph& my_graph; -private: - input_port_t in_ports; - gate_fn_t gate_fn; -}; - - -template -struct or_output_helper { - template - static inline signal_t get_or_output(const OrOutputType& out) { - if (N-1 == out.indx) return tbb::flow::get(out.result); - else return or_output_helper::get_or_output(out); - } -}; -template <> -struct or_output_helper<1> { - template - static inline signal_t get_or_output(const OrOutputType& out) { - return tbb::flow::get<0>(out.result); - } -}; - -// Input devices -class steady_signal { - graph& my_graph; - signal_t init_signal; - write_once_node signal_node; - public: - steady_signal(graph& g, signal_t v) : - my_graph(g), init_signal(v), signal_node(g) {} - steady_signal(const steady_signal& src) : - my_graph(src.my_graph), init_signal(src.init_signal), - signal_node(src.my_graph) {} - ~steady_signal() {} - // Assignment is ignored - steady_signal& operator=(const steady_signal& src) { return *this; } - sender& get_out() { return signal_node; } - void activate() { signal_node.try_put(init_signal); } -}; - -class pulse { - class clock_body { - size_t& ms; - int& reps; - signal_t val; - public: - clock_body(size_t& _ms, int& _reps) : ms(_ms), reps(_reps), val(low) {} - bool operator()(signal_t& out) { - rt_sleep((int)ms); - if (reps>0) --reps; - if (val==low) val = high; - else val = low; - out = val; - return reps>0 || reps == -1; - } - }; - graph& my_graph; - size_t ms, init_ms; - int reps, init_reps; - source_node clock_node; - -public: - pulse(graph& g, size_t _ms=1000, int _reps=-1) : - my_graph(g), ms(_ms), init_ms(_ms), reps(_reps), init_reps(_reps), - clock_node(g, clock_body(ms, reps), false) - {} - pulse(const pulse& src) : - my_graph(src.my_graph), ms(src.init_ms), init_ms(src.init_ms), - reps(src.init_reps), init_reps(src.init_reps), - clock_node(src.my_graph, clock_body(ms, reps), false) - {} - ~pulse() {} - // Assignment changes the behavior of LHS to that of the RHS, but doesn't change owning graph - pulse& operator=(const pulse& src) { - ms = src.ms; init_ms = src.init_ms; reps = src.reps; init_reps = src.init_reps; - return *this; - } - sender& get_out() { return clock_node; } - void activate() { clock_node.activate(); } - void reset() { reps = init_reps; } -}; - -class push_button { - graph& my_graph; - overwrite_node push_button_node; - public: - push_button(graph& g) : my_graph(g), push_button_node(g) { - push_button_node.try_put(low); - } - push_button(const push_button& src) : - my_graph(src.my_graph), push_button_node(src.my_graph) { - push_button_node.try_put(low); - } - ~push_button() {} - // Assignment is ignored - push_button& operator=(const push_button& src) { return *this; } - sender& get_out() { return push_button_node; } - void press() { push_button_node.try_put(high); } - void release() { push_button_node.try_put(low); } -}; - -class toggle { - graph& my_graph; - signal_t state; - overwrite_node toggle_node; - public: - toggle(graph& g) : my_graph(g), state(undefined), toggle_node(g) {} - toggle(const toggle& src) : my_graph(src.my_graph), state(undefined), - toggle_node(src.my_graph) {} - ~toggle() {} - // Assignment ignored - toggle& operator=(const toggle& src) { return *this; } - sender& get_out() { return toggle_node; } - void flip() { - if (state==high) state = low; - else state = high; - toggle_node.try_put(state); - } - void activate() { - state = low; - toggle_node.try_put(state); - } -}; - -// Basic gates -class buffer : public gate { - using gate::my_graph; - typedef gate::ports_type ports_type; - class buffer_body { - signal_t state; - bool touched; - public: - buffer_body() : state(undefined), touched(false) {} - void operator()(const input_port_t::output_type &v, ports_type& p) { - if (!touched || state != tbb::flow::get<0>(v.result)) { - state = tbb::flow::get<0>(v.result); - tbb::flow::get<0>(p).try_put(state); - touched = true; - } - } - }; -public: - buffer(graph& g) : gate(g, buffer_body()) {} - buffer(const buffer& src) : gate(src.my_graph, buffer_body()) {} - ~buffer() {} -}; - -class not_gate : public gate { - using gate::my_graph; - typedef gate::ports_type ports_type; - class not_body { - signal_t port; - bool touched; - public: - not_body() : port(undefined), touched(false) {} - void operator()(const input_port_t::output_type &v, ports_type& p) { - if (!touched || port != tbb::flow::get<0>(v.result)) { - port = tbb::flow::get<0>(v.result); - signal_t state = low; - if (port==low) state = high; - tbb::flow::get<0>(p).try_put(state); - touched = true; - } - } - }; - public: - not_gate(graph& g) : gate(g, not_body()) {} - not_gate(const not_gate& src) : gate(src.my_graph, not_body()) {} - ~not_gate() {} -}; - -template -class and_gate : public gate { - using gate::N; - using gate::my_graph; - typedef typename gate::ports_type ports_type; - typedef typename gate::input_port_t::output_type from_input; - typedef or_output_helper< gate::N > or_output; - class and_body { - signal_t *ports; - signal_t state; - bool touched; - public: - and_body() : state(undefined), touched(false) { - ports = new signal_t[N]; - for (int i=0; i(p).try_put(state); - touched = true; - } - } - }; - public: - and_gate(graph& g) : gate(g, and_body()) {} - and_gate(const and_gate& src) : gate(src.my_graph, and_body()) {} - ~and_gate() {} -}; - -template -class or_gate : public gate { - using gate::N; - using gate::my_graph; - typedef typename gate::ports_type ports_type; - typedef typename gate::input_port_t::output_type from_input; - typedef or_output_helper< gate::N > or_output; - class or_body { - signal_t *ports; - signal_t state; - bool touched; - public: - or_body() : state(undefined), touched(false) { - ports = new signal_t[N]; - for (int i=0; i(p).try_put(state); - touched = true; - } - } - }; -public: - or_gate(graph& g) : gate(g, or_body()) {} - or_gate(const or_gate& src) : gate(src.my_graph, or_body()) {} - ~or_gate() {} -}; - -template -class xor_gate : public gate { - using gate::N; - using gate::my_graph; - typedef typename gate::ports_type ports_type; - typedef typename gate::input_port_t input_port_t; - typedef or_output_helper< gate::N > or_output; - class xor_body { - signal_t *ports; - signal_t state; - bool touched; - public: - xor_body() : state(undefined), touched(false) { - ports = new signal_t[N]; - for (int i=0; i 0) { new_state = low; break; } - else if (ports[i] == high ) { ++highs; } - ++i; - } - if (!touched || state != new_state) { - state = new_state; - tbb::flow::get<0>(p).try_put(state); - touched = true; - } - } - }; - public: - xor_gate(graph& g) : gate(g, xor_body()) {} - xor_gate(const xor_gate& src) : gate(src.my_graph, xor_body()) {} - ~xor_gate() {} -}; - -template -class nor_gate : public gate { - using gate::N; - using gate::my_graph; - typedef typename gate::ports_type ports_type; - typedef typename gate::input_port_t input_port_t; - typedef or_output_helper< gate::N > or_output; - class nor_body { - signal_t *ports; - signal_t state; - bool touched; - public: - nor_body() : state(undefined), touched(false) { - ports = new signal_t[N]; - for (int i=0; i(p).try_put(state); - touched = true; - } - } - }; - public: - nor_gate(graph& g) : gate(g, nor_body()) {} - nor_gate(const nor_gate& src) : gate(src.my_graph, nor_body()) {} - ~nor_gate() {} -}; - -// Output devices -class led { - class led_body { - signal_t &state; - string &label; - bool report_changes; - bool touched; - public: - led_body(signal_t &s, string &l, bool r) : - state(s), label(l), report_changes(r), touched(false) - {} - continue_msg operator()(signal_t b) { - if (!touched || b!=state) { - state = b; - if (state != undefined && report_changes) { - if (state) printf("%s: (*)\n", label.c_str()); - else printf("%s: ( )\n", label.c_str()); - } - touched = false; - } - return continue_msg(); - } - }; - graph& my_graph; - string label; - signal_t state; - bool report_changes; - function_node led_node; - public: - led(graph& g, string l, bool rc=false) : my_graph(g), label(l), state(undefined), - report_changes(rc), - led_node(g, 1, led_body(state, label, report_changes)) - {} - led(const led& src) : my_graph(src.my_graph), label(src.label), state(undefined), - report_changes(src.report_changes), - led_node(src.my_graph, 1, led_body(state, label, report_changes)) - {} - ~led() {} - // Assignment changes the behavior of LHS to that of the RHS, but doesn't change owning graph - // state is set to undefined so that next signal changes it - led& operator=(const led& src) { - label = src.label; state = undefined; report_changes = src.report_changes; - return *this; - } - receiver& get_in() { return led_node; } - void display() { - if (state == high) printf("%s: (*)\n", label.c_str()); - else if (state == low) printf("%s: ( )\n", label.c_str()); - else printf("%s: (u)\n", label.c_str()); - } - signal_t get_value() { return state; } -}; - -class digit : public gate { - using gate::my_graph; - typedef gate::ports_type ports_type; - typedef gate::input_port_t input_port_t; - class digit_body { - signal_t ports[4]; - unsigned int &state; - string &label; - bool& report_changes; - public: - digit_body(unsigned int &s, string &l, bool& r) : state(s), label(l), report_changes(r) { - for (int i=0; i(v.result); - else if (v.indx == 1) ports[1] = tbb::flow::get<1>(v.result); - else if (v.indx == 2) ports[2] = tbb::flow::get<2>(v.result); - else if (v.indx == 3) ports[3] = tbb::flow::get<3>(v.result); - if (ports[0] == high) ++new_state; - if (ports[1] == high) new_state += 2; - if (ports[2] == high) new_state += 4; - if (ports[3] == high) new_state += 8; - if (state != new_state) { - state = new_state; - if (report_changes) { - printf("%s: %x\n", label.c_str(), state); - } - } - } - }; - string label; - unsigned int state; - bool report_changes; - public: - digit(graph& g, string l, bool rc=false) : - gate(g, digit_body(state, label, report_changes)), - label(l), state(0), report_changes(rc) {} - digit(const digit& src) : - gate(src.my_graph, digit_body(state, label, report_changes)), - label(src.label), state(0), report_changes(src.report_changes) {} - ~digit() {} - // Assignment changes the behavior of LHS to that of the RHS, but doesn't change owning graph. - // state is reset as in constructors - digit& operator=(const digit& src) { - label = src.label; state = 0; report_changes = src.report_changes; - return *this; - } - void display() { printf("%s: %x\n", label.c_str(), state); } - unsigned int get_value() { return state; } -}; - -#endif /* __TBBexample_graph_logicsim_basics_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/logic_sim/four_bit_adder.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/logic_sim/four_bit_adder.h deleted file mode 100644 index e7e03c536..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/logic_sim/four_bit_adder.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBBexample_graph_logicsim_fba_H -#define __TBBexample_graph_logicsim_fba_H 1 - -#include "one_bit_adder.h" - -class four_bit_adder { - graph& my_graph; - std::vector four_adders; - public: - four_bit_adder(graph& g) : my_graph(g), four_adders(4, one_bit_adder(g)) { - make_connections(); - } - four_bit_adder(const four_bit_adder& src) : - my_graph(src.my_graph), four_adders(4, one_bit_adder(src.my_graph)) - { - make_connections(); - } - ~four_bit_adder() {} - receiver& get_A(size_t bit) { - return four_adders[bit].get_A(); - } - receiver& get_B(size_t bit) { - return four_adders[bit].get_B(); - } - receiver& get_CI() { - return four_adders[0].get_CI(); - } - sender& get_out(size_t bit) { - return four_adders[bit].get_out(); - } - sender& get_CO() { - return four_adders[3].get_CO(); - } -private: - void make_connections() { - make_edge(four_adders[0].get_CO(), four_adders[1].get_CI()); - make_edge(four_adders[1].get_CO(), four_adders[2].get_CI()); - make_edge(four_adders[2].get_CO(), four_adders[3].get_CI()); - } -}; - -#endif /* __TBBexample_graph_logicsim_fba_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/logic_sim/index.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/logic_sim/index.html deleted file mode 100644 index 5f6a2d8af..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/logic_sim/index.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -

Overview

- -This directory contains a simple tbb::flow example that performs -simplistic digital logic simulations with basic logic gates that can -be easily composed to create more interesting circuits. It -exemplifies the multifunction_node and the or_node CPF, among others. - -

Files

-
-
basics.h -
Several I/O devices and basic gates. -
one_bit_adder.h -
A one-bit full adder composed of basic gates. -
four_bit_adder.h -
A four-bit full adder composed of one-bit adders. -
D_latch.h -
A D-latch composed of basic gates. -
test_all.cpp -
A simple test program that exercises the code in the headers. - -
Makefile -
Makefile for building example. - -
- -

Directories

-
-
msvs -
Contains Microsoft* Visual Studio* 2008 workspace for building and running the example with the Intel® C++ compiler (Windows* systems only). -
xcode -
Contains Xcode* IDE workspace for building and running the example (OS X* systems only). -
- -

To Build

-General build directions can be found here. -

- -

Usage

-
- -
test_all -h -
Prints the help for command line options -
test_all [#threads=value] [verbose] [silent] [#threads] -
#threads is the number of threads to use; a range of the form low[:high] where low and optional high are non-negative integers, or 'auto' for the TBB default.
- verbose print diagnostic output to screen
- silent limits output to timing info; overrides verbose
- -
To run a short version of this example, e.g., for use with Intel® Parallel Inspector: -
Build a debug version of the example - (see the build directions). -
Run it with the desired number of threads, e.g., test_all 4. -
- -
-Up to parent directory -

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/logic_sim/msvs/logic_sim_cl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/logic_sim/msvs/logic_sim_cl.sln deleted file mode 100644 index 7865512ed..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/logic_sim/msvs/logic_sim_cl.sln +++ /dev/null @@ -1,52 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_all", "test_all.vcproj", "{6E9B1702-78E0-4D64-B771-8B274D963B58}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {6E9B1702-78E0-4D64-B771-8B274D963B58}.Debug|Win32.ActiveCfg = Debug|Win32 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.Debug|Win32.Build.0 = Debug|Win32 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.Debug|x64.ActiveCfg = Debug|x64 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.Debug|x64.Build.0 = Debug|x64 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.Release|Win32.ActiveCfg = Release|Win32 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.Release|Win32.Build.0 = Release|Win32 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.Release|x64.ActiveCfg = Release|x64 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.Release|x64.Build.0 = Release|x64 - - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.Debug|Win32.ActiveCfg = Debug|Win32 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.Debug|Win32.Build.0 = Debug|Win32 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.Debug|x64.ActiveCfg = Debug|x64 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.Debug|x64.Build.0 = Debug|x64 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.Release|Win32.ActiveCfg = Release|Win32 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.Release|Win32.Build.0 = Release|Win32 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.Release|x64.ActiveCfg = Release|x64 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.Release|x64.Build.0 = Release|x64 - - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.Debug|Win32.ActiveCfg = Debug|Win32 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.Debug|Win32.Build.0 = Debug|Win32 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.Debug|x64.ActiveCfg = Debug|x64 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.Debug|x64.Build.0 = Debug|x64 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.Release|Win32.ActiveCfg = Release|Win32 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.Release|Win32.Build.0 = Release|Win32 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.Release|x64.ActiveCfg = Release|x64 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.Release|x64.Build.0 = Release|x64 - - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.Debug|Win32.ActiveCfg = Debug|Win32 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.Debug|Win32.Build.0 = Debug|Win32 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.Debug|x64.ActiveCfg = Debug|x64 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.Debug|x64.Build.0 = Debug|x64 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.Release|Win32.ActiveCfg = Release|Win32 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.Release|Win32.Build.0 = Release|Win32 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.Release|x64.ActiveCfg = Release|x64 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/logic_sim/msvs/logic_sim_icl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/logic_sim/msvs/logic_sim_icl.sln deleted file mode 100644 index b62ecddf4..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/logic_sim/msvs/logic_sim_icl.sln +++ /dev/null @@ -1,132 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{EAF909A5-FA59-4C3D-9431-0FCC20D5BCF9}") = "test_all", "test_all.icproj", "{2D08E05F-D0E0-48A7-9597-28B95ACE70B6}" - ProjectSection(ProjectDependencies) = postProject - {5F685DBD-9A04-4E94-A1CA-FC48FE799830} = {5F685DBD-9A04-4E94-A1CA-FC48FE799830} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - DD Debug|Win32 = DD Debug|Win32 - DD Debug|x64 = DD Debug|x64 - DD Release|Win32 = DD Release|Win32 - DD Release|x64 = DD Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {2D08E05F-D0E0-48A7-9597-28B95ACE70B6}.DD Debug|Win32.ActiveCfg = DDDebug|Win32 - {2D08E05F-D0E0-48A7-9597-28B95ACE70B6}.DD Debug|Win32.Build.0 = DDDebug|Win32 - {2D08E05F-D0E0-48A7-9597-28B95ACE70B6}.DD Debug|x64.ActiveCfg = DDDebug|x64 - {2D08E05F-D0E0-48A7-9597-28B95ACE70B6}.DD Debug|x64.Build.0 = DDDebug|x64 - {2D08E05F-D0E0-48A7-9597-28B95ACE70B6}.DD Release|Win32.ActiveCfg = DDRelease|Win32 - {2D08E05F-D0E0-48A7-9597-28B95ACE70B6}.DD Release|Win32.Build.0 = DDRelease|Win32 - {2D08E05F-D0E0-48A7-9597-28B95ACE70B6}.DD Release|x64.ActiveCfg = DDRelease|x64 - {2D08E05F-D0E0-48A7-9597-28B95ACE70B6}.DD Release|x64.Build.0 = DDRelease|x64 - {2D08E05F-D0E0-48A7-9597-28B95ACE70B6}.GDI Debug|Win32.ActiveCfg = Debug|Win32 - {2D08E05F-D0E0-48A7-9597-28B95ACE70B6}.GDI Debug|Win32.Build.0 = Debug|Win32 - {2D08E05F-D0E0-48A7-9597-28B95ACE70B6}.GDI Debug|x64.ActiveCfg = Debug|x64 - {2D08E05F-D0E0-48A7-9597-28B95ACE70B6}.GDI Debug|x64.Build.0 = Debug|x64 - {2D08E05F-D0E0-48A7-9597-28B95ACE70B6}._GDI Release|Win32.ActiveCfg = Release|Win32 - {2D08E05F-D0E0-48A7-9597-28B95ACE70B6}._GDI Release|Win32.Build.0 = Release|Win32 - {2D08E05F-D0E0-48A7-9597-28B95ACE70B6}._GDI Release|x64.ActiveCfg = Release|x64 - {2D08E05F-D0E0-48A7-9597-28B95ACE70B6}._GDI Release|x64.Build.0 = Release|x64 - {5F685DBD-9A04-4E94-A1CA-FC48FE799830}.DD Debug|Win32.ActiveCfg = DDDebug|Win32 - {5F685DBD-9A04-4E94-A1CA-FC48FE799830}.DD Debug|Win32.Build.0 = DDDebug|Win32 - {5F685DBD-9A04-4E94-A1CA-FC48FE799830}.DD Debug|x64.ActiveCfg = DDDebug|x64 - {5F685DBD-9A04-4E94-A1CA-FC48FE799830}.DD Debug|x64.Build.0 = DDDebug|x64 - {5F685DBD-9A04-4E94-A1CA-FC48FE799830}.DD Release|Win32.ActiveCfg = DDRelease|Win32 - {5F685DBD-9A04-4E94-A1CA-FC48FE799830}.DD Release|Win32.Build.0 = DDRelease|Win32 - {5F685DBD-9A04-4E94-A1CA-FC48FE799830}.DD Release|x64.ActiveCfg = DDRelease|x64 - {5F685DBD-9A04-4E94-A1CA-FC48FE799830}.DD Release|x64.Build.0 = DDRelease|x64 - {5F685DBD-9A04-4E94-A1CA-FC48FE799830}.GDI Debug|Win32.ActiveCfg = Debug|Win32 - {5F685DBD-9A04-4E94-A1CA-FC48FE799830}.GDI Debug|Win32.Build.0 = Debug|Win32 - {5F685DBD-9A04-4E94-A1CA-FC48FE799830}.GDI Debug|x64.ActiveCfg = Debug|x64 - {5F685DBD-9A04-4E94-A1CA-FC48FE799830}.GDI Debug|x64.Build.0 = Debug|x64 - {5F685DBD-9A04-4E94-A1CA-FC48FE799830}._GDI Release|Win32.ActiveCfg = Release|Win32 - {5F685DBD-9A04-4E94-A1CA-FC48FE799830}._GDI Release|Win32.Build.0 = Release|Win32 - {5F685DBD-9A04-4E94-A1CA-FC48FE799830}._GDI Release|x64.ActiveCfg = Release|x64 - {5F685DBD-9A04-4E94-A1CA-FC48FE799830}._GDI Release|x64.Build.0 = Release|x64 - {E085A8DB-75D4-4927-9631-6368E6D0EE72}.DD Debug|Win32.ActiveCfg = DDDebug|Win32 - {E085A8DB-75D4-4927-9631-6368E6D0EE72}.DD Debug|Win32.Build.0 = DDDebug|Win32 - {E085A8DB-75D4-4927-9631-6368E6D0EE72}.DD Debug|x64.ActiveCfg = DDDebug|x64 - {E085A8DB-75D4-4927-9631-6368E6D0EE72}.DD Debug|x64.Build.0 = DDDebug|x64 - {E085A8DB-75D4-4927-9631-6368E6D0EE72}.DD Release|Win32.ActiveCfg = DDRelease|Win32 - {E085A8DB-75D4-4927-9631-6368E6D0EE72}.DD Release|Win32.Build.0 = DDRelease|Win32 - {E085A8DB-75D4-4927-9631-6368E6D0EE72}.DD Release|x64.ActiveCfg = DDRelease|x64 - {E085A8DB-75D4-4927-9631-6368E6D0EE72}.DD Release|x64.Build.0 = DDRelease|x64 - {E085A8DB-75D4-4927-9631-6368E6D0EE72}.GDI Debug|Win32.ActiveCfg = Debug|Win32 - {E085A8DB-75D4-4927-9631-6368E6D0EE72}.GDI Debug|Win32.Build.0 = Debug|Win32 - {E085A8DB-75D4-4927-9631-6368E6D0EE72}.GDI Debug|x64.ActiveCfg = Debug|x64 - {E085A8DB-75D4-4927-9631-6368E6D0EE72}.GDI Debug|x64.Build.0 = Debug|x64 - {E085A8DB-75D4-4927-9631-6368E6D0EE72}._GDI Release|Win32.ActiveCfg = Release|Win32 - {E085A8DB-75D4-4927-9631-6368E6D0EE72}._GDI Release|Win32.Build.0 = Release|Win32 - {E085A8DB-75D4-4927-9631-6368E6D0EE72}._GDI Release|x64.ActiveCfg = Release|x64 - {E085A8DB-75D4-4927-9631-6368E6D0EE72}._GDI Release|x64.Build.0 = Release|x64 - {4F173D3A-AE8C-4F7E-A4D0-6527F46B8495}.DD Debug|Win32.ActiveCfg = DDDebug|Win32 - {4F173D3A-AE8C-4F7E-A4D0-6527F46B8495}.DD Debug|Win32.Build.0 = DDDebug|Win32 - {4F173D3A-AE8C-4F7E-A4D0-6527F46B8495}.DD Debug|x64.ActiveCfg = DDDebug|x64 - {4F173D3A-AE8C-4F7E-A4D0-6527F46B8495}.DD Debug|x64.Build.0 = DDDebug|x64 - {4F173D3A-AE8C-4F7E-A4D0-6527F46B8495}.DD Release|Win32.ActiveCfg = DDRelease|Win32 - {4F173D3A-AE8C-4F7E-A4D0-6527F46B8495}.DD Release|Win32.Build.0 = DDRelease|Win32 - {4F173D3A-AE8C-4F7E-A4D0-6527F46B8495}.DD Release|x64.ActiveCfg = DDRelease|x64 - {4F173D3A-AE8C-4F7E-A4D0-6527F46B8495}.DD Release|x64.Build.0 = DDRelease|x64 - {4F173D3A-AE8C-4F7E-A4D0-6527F46B8495}.GDI Debug|Win32.ActiveCfg = Debug|Win32 - {4F173D3A-AE8C-4F7E-A4D0-6527F46B8495}.GDI Debug|Win32.Build.0 = Debug|Win32 - {4F173D3A-AE8C-4F7E-A4D0-6527F46B8495}.GDI Debug|x64.ActiveCfg = Debug|x64 - {4F173D3A-AE8C-4F7E-A4D0-6527F46B8495}.GDI Debug|x64.Build.0 = Debug|x64 - {4F173D3A-AE8C-4F7E-A4D0-6527F46B8495}._GDI Release|Win32.ActiveCfg = Release|Win32 - {4F173D3A-AE8C-4F7E-A4D0-6527F46B8495}._GDI Release|Win32.Build.0 = Release|Win32 - {4F173D3A-AE8C-4F7E-A4D0-6527F46B8495}._GDI Release|x64.ActiveCfg = Release|x64 - {4F173D3A-AE8C-4F7E-A4D0-6527F46B8495}._GDI Release|x64.Build.0 = Release|x64 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.DD Debug|Win32.ActiveCfg = Debug|Win32 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.DD Debug|x64.ActiveCfg = Debug|x64 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.DD Release|Win32.ActiveCfg = Release|Win32 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.DD Release|x64.ActiveCfg = Release|x64 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.GDI Debug|Win32.ActiveCfg = Debug|Win32 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.GDI Debug|Win32.Build.0 = Debug|Win32 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.GDI Debug|x64.ActiveCfg = Debug|x64 -y {6E9B1702-78E0-4D64-B771-8B274D963B58}.GDI Debug|x64.Build.0 = Debug|x64 - {6E9B1702-78E0-4D64-B771-8B274D963B58}._GDI Release|Win32.ActiveCfg = Release|Win32 - {6E9B1702-78E0-4D64-B771-8B274D963B58}._GDI Release|Win32.Build.0 = Release|Win32 - {6E9B1702-78E0-4D64-B771-8B274D963B58}._GDI Release|x64.ActiveCfg = Release|x64 - {6E9B1702-78E0-4D64-B771-8B274D963B58}._GDI Release|x64.Build.0 = Release|x64 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.DD Debug|Win32.ActiveCfg = Debug|Win32 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.DD Debug|x64.ActiveCfg = Debug|x64 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.DD Release|Win32.ActiveCfg = Release|Win32 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.DD Release|x64.ActiveCfg = Release|x64 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.GDI Debug|Win32.ActiveCfg = Debug|Win32 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.GDI Debug|Win32.Build.0 = Debug|Win32 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.GDI Debug|x64.ActiveCfg = Debug|x64 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.GDI Debug|x64.Build.0 = Debug|x64 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}._GDI Release|Win32.ActiveCfg = Release|Win32 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}._GDI Release|Win32.Build.0 = Release|Win32 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}._GDI Release|x64.ActiveCfg = Release|x64 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}._GDI Release|x64.Build.0 = Release|x64 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.DD Debug|Win32.ActiveCfg = Debug|Win32 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.DD Debug|x64.ActiveCfg = Debug|x64 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.DD Release|Win32.ActiveCfg = Release|Win32 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.DD Release|x64.ActiveCfg = Release|x64 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.GDI Debug|Win32.ActiveCfg = Debug|Win32 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.GDI Debug|Win32.Build.0 = Debug|Win32 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.GDI Debug|x64.ActiveCfg = Debug|x64 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.GDI Debug|x64.Build.0 = Debug|x64 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}._GDI Release|Win32.ActiveCfg = Release|Win32 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}._GDI Release|Win32.Build.0 = Release|Win32 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}._GDI Release|x64.ActiveCfg = Release|x64 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}._GDI Release|x64.Build.0 = Release|x64 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.DD Debug|Win32.ActiveCfg = Debug|Win32 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.DD Debug|x64.ActiveCfg = Debug|x64 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.DD Release|Win32.ActiveCfg = Release|Win32 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.DD Release|x64.ActiveCfg = Release|x64 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.GDI Debug|Win32.ActiveCfg = Debug|Win32 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.GDI Debug|Win32.Build.0 = Debug|Win32 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.GDI Debug|x64.ActiveCfg = Debug|x64 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.GDI Debug|x64.Build.0 = Debug|x64 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}._GDI Release|Win32.ActiveCfg = Release|Win32 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}._GDI Release|Win32.Build.0 = Release|Win32 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}._GDI Release|x64.ActiveCfg = Release|x64 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}._GDI Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/logic_sim/msvs/test_all.icproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/logic_sim/msvs/test_all.icproj deleted file mode 100644 index f10414a05..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/logic_sim/msvs/test_all.icproj +++ /dev/null @@ -1,11 +0,0 @@ - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/logic_sim/msvs/test_all.vcproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/logic_sim/msvs/test_all.vcproj deleted file mode 100644 index e98917256..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/logic_sim/msvs/test_all.vcproj +++ /dev/null @@ -1,356 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/logic_sim/one_bit_adder.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/logic_sim/one_bit_adder.h deleted file mode 100644 index 32ebd81b6..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/logic_sim/one_bit_adder.h +++ /dev/null @@ -1,82 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBBexample_graph_logicsim_oba_H -#define __TBBexample_graph_logicsim_oba_H 1 - -#include "basics.h" - -class one_bit_adder { - broadcast_node A_port; - broadcast_node B_port; - broadcast_node CI_port; - xor_gate FirstXOR; - xor_gate SecondXOR; - and_gate FirstAND; - and_gate SecondAND; - or_gate FirstOR; - graph& my_graph; -public: - one_bit_adder(graph& g) : my_graph(g), A_port(g), B_port(g), CI_port(g), FirstXOR(g), - SecondXOR(g), FirstAND(g), SecondAND(g), FirstOR(g) { - make_connections(); - } - one_bit_adder(const one_bit_adder& src) : - my_graph(src.my_graph), A_port(src.my_graph), B_port(src.my_graph), - CI_port(src.my_graph), FirstXOR(src.my_graph), SecondXOR(src.my_graph), - FirstAND(src.my_graph), SecondAND(src.my_graph), FirstOR(src.my_graph) - { - make_connections(); - } - - ~one_bit_adder() {} - receiver& get_A() { return A_port; } - receiver& get_B() { return B_port; } - receiver& get_CI() { return CI_port; } - sender& get_out() { - return SecondXOR.get_out(); - } - sender& get_CO() { - return FirstOR.get_out(); - } -private: - void make_connections() { - make_edge(A_port, FirstXOR.get_in(0)); - make_edge(A_port, FirstAND.get_in(0)); - make_edge(B_port, FirstXOR.get_in(1)); - make_edge(B_port, FirstAND.get_in(1)); - make_edge(CI_port, SecondXOR.get_in(1)); - make_edge(CI_port, SecondAND.get_in(1)); - make_edge(FirstXOR.get_out(), SecondXOR.get_in(0)); - make_edge(FirstXOR.get_out(), SecondAND.get_in(0)); - make_edge(SecondAND.get_out(), FirstOR.get_in(0)); - make_edge(FirstAND.get_out(), FirstOR.get_in(1)); - } -}; - -#endif /* __TBBexample_graph_logicsim_oba_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/logic_sim/test_all.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/logic_sim/test_all.cpp deleted file mode 100644 index 28429a09c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/logic_sim/test_all.cpp +++ /dev/null @@ -1,577 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#if _MSC_VER -#pragma warning (disable: 4503) // Suppress "decorated name length exceeded, name was truncated" warning -#endif - -#include "basics.h" -#include "one_bit_adder.h" -#include "four_bit_adder.h" -#include "D_latch.h" -#include - -// User-specified globals with default values -bool verbose = false; // prints bin details and other diagnostics to screen -bool silent = false; // suppress all output except for time - -int get_default_num_threads() { - static int threads = 0; - if (threads == 0) - threads = tbb::task_scheduler_init::default_num_threads(); - return threads; -} - -int main(int argc, char *argv[]) { - try { - utility::thread_number_range threads(get_default_num_threads); - utility::parse_cli_arguments(argc, argv, - utility::cli_argument_pack() - //"-h" option for displaying help is present implicitly - .positional_arg(threads,"#threads",utility::thread_number_range_desc) - .arg(verbose,"verbose"," print diagnostic output to screen") - .arg(silent,"silent"," limits output to timing info; overrides verbose") - ); - - if (silent) verbose = false; // make silent override verbose - - tick_count start = tick_count::now(); - for(int p = threads.first; p <= threads.last; p = threads.step(p)) { - task_scheduler_init init(p); - if (!silent) cout << "graph test running on " << p << " threads.\n"; - - graph g; - - { // test buffer: 0, 1 - buffer b(g); - toggle input(g); - led output(g, "OUTPUT", false); // false means we will explicitly call display to see LED - - make_edge(input.get_out(), b.get_in(0)); - make_edge(b.get_out(), output.get_in()); - - if (!silent) printf("Testing buffer...\n"); - input.activate(); // 0 - g.wait_for_all(); - if (!silent) output.display(); - assert(output.get_value() == low); - input.flip(); // 1 - g.wait_for_all(); - if (!silent) output.display(); - assert(output.get_value() == high); - } - - { // test not_gate: 0, 1 - not_gate n(g); - toggle input(g); - led output(g, "OUTPUT", false); - - make_edge(input.get_out(), n.get_in(0)); - make_edge(n.get_out(), output.get_in()); - - if (!silent) printf("Testing not_gate...\n"); - input.activate(); // 0 - g.wait_for_all(); - if (!silent) output.display(); - assert(output.get_value() == high); - input.flip(); // 1 - g.wait_for_all(); - if (!silent) output.display(); - assert(output.get_value() == low); - } - - { // test two-input and_gate: 00, 01, 10, 11 - and_gate a(g); - toggle input0(g); - toggle input1(g); - led output(g, "OUTPUT", false); - - make_edge(input0.get_out(), a.get_in(0)); - make_edge(input1.get_out(), a.get_in(1)); - make_edge(a.get_out(), output.get_in()); - - if (!silent) printf("Testing and_gate...\n"); - input1.activate(); input0.activate(); // 0 0 - g.wait_for_all(); - if (!silent) output.display(); - assert(output.get_value() == low); - input0.flip(); // 0 1 - g.wait_for_all(); - if (!silent) output.display(); - assert(output.get_value() == low); - input1.flip(); input0.flip(); // 1 0 - g.wait_for_all(); - if (!silent) output.display(); - assert(output.get_value() == low); - input0.flip(); // 1 1 - g.wait_for_all(); - if (!silent) output.display(); - assert(output.get_value() == high); - } - - { // test three-input or_gate: 000, 001, 010, 100, 011, 101, 110, 111 - or_gate o(g); - toggle input0(g); - toggle input1(g); - toggle input2(g); - led output(g, "OUTPUT", false); - - make_edge(input0.get_out(), o.get_in(0)); - make_edge(input1.get_out(), o.get_in(1)); - make_edge(input2.get_out(), o.get_in(2)); - make_edge(o.get_out(), output.get_in()); - - if (!silent) printf("Testing or_gate...\n"); - input2.activate(); input1.activate(); input0.activate(); // 0 0 0 - g.wait_for_all(); - if (!silent) output.display(); - assert(output.get_value() == low); - input0.flip(); // 0 0 1 - g.wait_for_all(); - if (!silent) output.display(); - assert(output.get_value() == high); - input1.flip(); input0.flip(); // 0 1 0 - g.wait_for_all(); - if (!silent) output.display(); - assert(output.get_value() == high); - input2.flip(); input1.flip(); // 1 0 0 - g.wait_for_all(); - if (!silent) output.display(); - assert(output.get_value() == high); - input2.flip(); input1.flip(); input0.flip(); // 0 1 1 - g.wait_for_all(); - if (!silent) output.display(); - assert(output.get_value() == high); - input2.flip(); input1.flip(); // 1 0 1 - g.wait_for_all(); - if (!silent) output.display(); - assert(output.get_value() == high); - input1.flip(); input0.flip(); // 1 1 0 - g.wait_for_all(); - if (!silent) output.display(); - assert(output.get_value() == high); - input0.flip(); // 1 1 1 - g.wait_for_all(); - if (!silent) output.display(); - assert(output.get_value() == high); - } - - { // test two-input xor_gate: 00, 01, 10, 11 - xor_gate x(g); - toggle input0(g); - toggle input1(g); - led output(g, "OUTPUT", false); - - make_edge(input0.get_out(), x.get_in(0)); - make_edge(input1.get_out(), x.get_in(1)); - make_edge(x.get_out(), output.get_in()); - - if (!silent) printf("Testing xor_gate...\n"); - input1.activate(); input0.activate(); // 0 0 - g.wait_for_all(); - if (!silent) output.display(); - assert(output.get_value() == low); - input0.flip(); // 0 1 - g.wait_for_all(); - if (!silent) output.display(); - assert(output.get_value() == high); - input1.flip(); input0.flip(); // 1 0 - g.wait_for_all(); - if (!silent) output.display(); - assert(output.get_value() == high); - input0.flip(); // 1 1 - g.wait_for_all(); - if (!silent) output.display(); - assert(output.get_value() == low); - } - - - { // test two-input nor_gate: 00, 01, 10, 11 - nor_gate n(g); - toggle input0(g); - toggle input1(g); - led output(g, "OUTPUT", false); - - make_edge(input0.get_out(), n.get_in(0)); - make_edge(input1.get_out(), n.get_in(1)); - make_edge(n.get_out(), output.get_in()); - - if (!silent) printf("Testing nor_gate...\n"); - input1.activate(); input0.activate(); // 0 0 - g.wait_for_all(); - if (!silent) output.display(); - assert(output.get_value() == high); - input0.flip(); // 0 1 - g.wait_for_all(); - if (!silent) output.display(); - assert(output.get_value() == low); - input1.flip(); input0.flip(); // 1 0 - g.wait_for_all(); - if (!silent) output.display(); - assert(output.get_value() == low); - input0.flip(); // 1 1 - g.wait_for_all(); - if (!silent) output.display(); - assert(output.get_value() == low); - } - - { // test steady_signal and digit - steady_signal input0(g, high); - steady_signal input1(g, low); - and_gate a(g); - or_gate o(g); - xor_gate x(g); - nor_gate n(g); - digit output(g, "OUTPUT", false); - - make_edge(input0.get_out(), a.get_in(0)); - make_edge(input1.get_out(), a.get_in(1)); - make_edge(a.get_out(), output.get_in(0)); - - make_edge(input0.get_out(), o.get_in(0)); - make_edge(input1.get_out(), o.get_in(1)); - make_edge(o.get_out(), output.get_in(1)); - - make_edge(input0.get_out(), x.get_in(0)); - make_edge(input1.get_out(), x.get_in(1)); - make_edge(x.get_out(), output.get_in(2)); - - make_edge(input0.get_out(), n.get_in(0)); - make_edge(input1.get_out(), n.get_in(1)); - make_edge(n.get_out(), output.get_in(3)); - - if (!silent) printf("Testing steady_signal...\n"); - input0.activate(); // 1 - input1.activate(); // 0 - g.wait_for_all(); - if (!silent) output.display(); - assert(output.get_value() == 6); - } - - { // test push_button - push_button p(g); - buffer b(g); - led output(g, "OUTPUT", !silent); // true means print all LED state changes - - make_edge(p.get_out(), b.get_in(0)); - make_edge(b.get_out(), output.get_in()); - - if (!silent) printf("Testing push_button...\n"); - p.press(); - p.release(); - p.press(); - p.release(); - g.wait_for_all(); - } - - { // test one_bit_adder - one_bit_adder my_adder(g); - toggle A(g); - toggle B(g); - toggle CarryIN(g); - led Sum(g, "SUM"); - led CarryOUT(g, "CarryOUT"); - - make_edge(A.get_out(), my_adder.get_A()); - make_edge(B.get_out(), my_adder.get_B()); - make_edge(CarryIN.get_out(), my_adder.get_CI()); - make_edge(my_adder.get_out(), Sum.get_in()); - make_edge(my_adder.get_CO(), CarryOUT.get_in()); - - A.activate(); - B.activate(); - CarryIN.activate(); - - if (!silent) printf("A on\n"); - A.flip(); - g.wait_for_all(); - if (!silent) Sum.display(); - if (!silent) CarryOUT.display(); - assert((Sum.get_value() == high) && (CarryOUT.get_value() == low)); - - if (!silent) printf("A off\n"); - A.flip(); - g.wait_for_all(); - if (!silent) Sum.display(); - if (!silent) CarryOUT.display(); - assert((Sum.get_value() == low) && (CarryOUT.get_value() == low)); - - if (!silent) printf("B on\n"); - B.flip(); - g.wait_for_all(); - if (!silent) Sum.display(); - if (!silent) CarryOUT.display(); - assert((Sum.get_value() == high) && (CarryOUT.get_value() == low)); - if (!silent) printf("B off\n"); - B.flip(); - g.wait_for_all(); - if (!silent) Sum.display(); - if (!silent) CarryOUT.display(); - assert((Sum.get_value() == low) && (CarryOUT.get_value() == low)); - - if (!silent) printf("CarryIN on\n"); - CarryIN.flip(); - g.wait_for_all(); - if (!silent) Sum.display(); - if (!silent) CarryOUT.display(); - assert((Sum.get_value() == high) && (CarryOUT.get_value() == low)); - if (!silent) printf("CarryIN off\n"); - CarryIN.flip(); - g.wait_for_all(); - if (!silent) Sum.display(); - if (!silent) CarryOUT.display(); - assert((Sum.get_value() == low) && (CarryOUT.get_value() == low)); - - if (!silent) printf("A&B on\n"); - A.flip(); - B.flip(); - g.wait_for_all(); - if (!silent) Sum.display(); - if (!silent) CarryOUT.display(); - assert((Sum.get_value() == low) && (CarryOUT.get_value() == high)); - if (!silent) printf("A&B off\n"); - A.flip(); - B.flip(); - g.wait_for_all(); - if (!silent) Sum.display(); - if (!silent) CarryOUT.display(); - assert((Sum.get_value() == low) && (CarryOUT.get_value() == low)); - - if (!silent) printf("A&CarryIN on\n"); - A.flip(); - CarryIN.flip(); - g.wait_for_all(); - if (!silent) Sum.display(); - if (!silent) CarryOUT.display(); - assert((Sum.get_value() == low) && (CarryOUT.get_value() == high)); - if (!silent) printf("A&CarryIN off\n"); - A.flip(); - CarryIN.flip(); - g.wait_for_all(); - if (!silent) Sum.display(); - if (!silent) CarryOUT.display(); - assert((Sum.get_value() == low) && (CarryOUT.get_value() == low)); - - if (!silent) printf("B&CarryIN on\n"); - B.flip(); - CarryIN.flip(); - g.wait_for_all(); - if (!silent) Sum.display(); - if (!silent) CarryOUT.display(); - assert((Sum.get_value() == low) && (CarryOUT.get_value() == high)); - if (!silent) printf("B&CarryIN off\n"); - B.flip(); - CarryIN.flip(); - g.wait_for_all(); - if (!silent) Sum.display(); - if (!silent) CarryOUT.display(); - assert((Sum.get_value() == low) && (CarryOUT.get_value() == low)); - - if (!silent) printf("A&B&CarryIN on\n"); - A.flip(); - B.flip(); - CarryIN.flip(); - g.wait_for_all(); - if (!silent) Sum.display(); - if (!silent) CarryOUT.display(); - assert((Sum.get_value() == high) && (CarryOUT.get_value() == high)); - if (!silent) printf("A&B&CarryIN off\n"); - A.flip(); - B.flip(); - CarryIN.flip(); - g.wait_for_all(); - if (!silent) Sum.display(); - if (!silent) CarryOUT.display(); - assert((Sum.get_value() == low) && (CarryOUT.get_value() == low)); - } - - { // test four_bit_adder - four_bit_adder four_adder(g); - std::vector A(4, toggle(g)); - std::vector B(4, toggle(g)); - toggle CarryIN(g); - digit Sum(g, "SUM"); - led CarryOUT(g, "CarryOUT"); - - for (int i=0; i<4; ++i) { - make_edge(A[i].get_out(), four_adder.get_A(i)); - make_edge(B[i].get_out(), four_adder.get_B(i)); - make_edge(four_adder.get_out(i), Sum.get_in(i)); - } - make_edge(CarryIN.get_out(), four_adder.get_CI()); - make_edge(four_adder.get_CO(), CarryOUT.get_in()); - - // Activate all switches at low state - for (int i=0; i<4; ++i) { - A[i].activate(); - B[i].activate(); - } - CarryIN.activate(); - - if (!silent) printf("1+0\n"); - A[0].flip(); - g.wait_for_all(); - if (!silent) Sum.display(); - if (!silent) CarryOUT.display(); - assert((Sum.get_value() == 1) && (CarryOUT.get_value() == low)); - - if (!silent) printf("0+1\n"); - A[0].flip(); - B[0].flip(); - g.wait_for_all(); - if (!silent) Sum.display(); - if (!silent) CarryOUT.display(); - assert((Sum.get_value() == 1) && (CarryOUT.get_value() == low)); - - if (!silent) printf("3+4\n"); - A[0].flip(); - A[1].flip(); - B[0].flip(); - B[2].flip(); - g.wait_for_all(); - if (!silent) Sum.display(); - if (!silent) CarryOUT.display(); - assert((Sum.get_value() == 7) && (CarryOUT.get_value() == low)); - - if (!silent) printf("6+1\n"); - A[0].flip(); - A[2].flip(); - B[0].flip(); - B[2].flip(); - g.wait_for_all(); - if (!silent) Sum.display(); - if (!silent) CarryOUT.display(); - assert((Sum.get_value() == 7) && (CarryOUT.get_value() == low)); - - if (!silent) printf("0+0+carry\n"); - A[1].flip(); - A[2].flip(); - B[0].flip(); - CarryIN.flip(); - g.wait_for_all(); - if (!silent) Sum.display(); - if (!silent) CarryOUT.display(); - assert((Sum.get_value() == 1) && (CarryOUT.get_value() == low)); - - if (!silent) printf("15+15+carry\n"); - A[0].flip(); - A[1].flip(); - A[2].flip(); - A[3].flip(); - B[0].flip(); - B[1].flip(); - B[2].flip(); - B[3].flip(); - g.wait_for_all(); - if (!silent) Sum.display(); - if (!silent) CarryOUT.display(); - assert((Sum.get_value() == 0xf) && (CarryOUT.get_value() == high)); - - if (!silent) printf("8+8\n"); - A[0].flip(); - A[1].flip(); - A[2].flip(); - B[0].flip(); - B[1].flip(); - B[2].flip(); - CarryIN.flip(); - g.wait_for_all(); - if (!silent) Sum.display(); - if (!silent) CarryOUT.display(); - assert((Sum.get_value() == 0) && (CarryOUT.get_value() == high)); - - if (!silent) printf("0+0\n"); - A[3].flip(); - B[3].flip(); - g.wait_for_all(); - if (!silent) Sum.display(); - if (!silent) CarryOUT.display(); - assert((Sum.get_value() == 0) && (CarryOUT.get_value() == low)); - } - - { // test D_latch - D_latch my_d_latch(g); - toggle D(g); - pulse E(g, 500, 4); // clock changes every 500ms; stops after 4 changes - led Q(g, " Q", verbose); // if true, LEDs print at every state change - led notQ(g, "~Q", verbose); - - make_edge(D.get_out(), my_d_latch.get_D()); - make_edge(E.get_out(), my_d_latch.get_E()); - make_edge(my_d_latch.get_Q(), Q.get_in()); - make_edge(my_d_latch.get_notQ(), notQ.get_in()); - - D.activate(); - - if (!silent) printf("Toggling D\n"); - E.activate(); - D.flip(); - g.wait_for_all(); - if (!silent && !verbose) { Q.display(); notQ.display(); } - assert((Q.get_value() == high) && (notQ.get_value() == low)); - E.reset(); - - if (!silent) printf("Toggling D\n"); - E.activate(); - D.flip(); - g.wait_for_all(); - if (!silent && !verbose) { Q.display(); notQ.display(); } - assert((Q.get_value() == low) && (notQ.get_value() == high)); - E.reset(); - - if (!silent) printf("Toggling D\n"); - E.activate(); - D.flip(); - g.wait_for_all(); - if (!silent && !verbose) { Q.display(); notQ.display(); } - assert((Q.get_value() == high) && (notQ.get_value() == low)); - E.reset(); - - if (!silent) printf("Toggling D\n"); - E.activate(); - D.flip(); - g.wait_for_all(); - if (!silent && !verbose) { Q.display(); notQ.display(); } - assert((Q.get_value() == low) && (notQ.get_value() == high)); - E.reset(); - - if (!silent) printf("Toggling D\n"); - E.activate(); - D.flip(); - g.wait_for_all(); - if (!silent && !verbose) { Q.display(); notQ.display(); } - assert((Q.get_value() == high) && (notQ.get_value() == low)); - } - } - utility::report_elapsed_time((tbb::tick_count::now() - start).seconds()); - return 0; - } catch(std::exception& e) { - cerr<<"error occurred. error text is :\"" </dev/null)) -CXX=icc -endif # icc - -override CXXFLAGS += $(UI_CXXFLAGS) - -SRCFILES = som_graph.cpp som.cpp - -ifeq ($(shell uname), Linux) -LIBS+= -lrt -endif - -all: release test - -release: $(SRCFILES) -ifeq ($(compiler),xl) - # Avoiding "1586-346 (U) An error occurred during code generation. The code generation return code was 40." with -O3. - $(CXX) -O2 -DNDEBUG $(CXXFLAGS) -o $(EXE) $(SRCFILES) -ltbb -ltbbmalloc $(LIBS) -else - $(CXX) -O3 -DNDEBUG $(CXXFLAGS) -o $(EXE) $(SRCFILES) -ltbb -ltbbmalloc $(LIBS) -endif - -debug: $(SRCFILES) - $(CXX) -g -O0 -DTBB_USE_DEBUG -D_DEBUG $(CXXFLAGS) -o $(EXE) $(SRCFILES) -ltbb_debug -ltbbmalloc_debug $(LIBS) - -clean: - $(RM) $(EXE) *.o *.d - -test: - $(run_cmd) ./$(EXE) $(ARGS) - -light_test: - $(run_cmd) ./$(EXE) $(LIGHT_ARGS) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/som/Makefile.windows b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/som/Makefile.windows deleted file mode 100644 index 111a37fdb..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/som/Makefile.windows +++ /dev/null @@ -1,54 +0,0 @@ -# Copyright 2005-2014 Intel Corporation. All Rights Reserved. -# -# This file is part of Threading Building Blocks. -# -# Threading Building Blocks is free software; you can redistribute it -# and/or modify it under the terms of the GNU General Public License -# version 2 as published by the Free Software Foundation. -# -# Threading Building Blocks is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied warranty -# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Threading Building Blocks; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# -# As a special exception, you may use this file as part of a free software -# library without restriction. Specifically, if other files instantiate -# templates or use macros or inline functions from this file, or you compile -# this file and link it with other files to produce an executable, this -# file does not by itself cause the resulting executable to be covered by -# the GNU General Public License. This exception does not however -# invalidate any other reasons why the executable file might be covered by -# the GNU General Public License. - -# Common Makefile that builds and runs example. - -# Just specify your program basename -PROG=som -ARGS= -LIGHT_ARGS=4 - -# Trying to find if icl.exe is set -CXX1 = $(TBB_CXX)- -CXX2 = $(CXX1:icl.exe-=icl.exe) -CXX = $(CXX2:-=cl.exe) - -# The C++ compiler options -MYCXXFLAGS = /TP /EHsc /W3 /nologo /D _CONSOLE /D _MBCS /D WIN32 /D _CRT_SECURE_NO_DEPRECATE $(CXXFLAGS) -MYLDFLAGS =/INCREMENTAL:NO /NOLOGO /DEBUG /FIXED:NO $(LDFLAGS) - -all: release test -release: - $(CXX) ./som_graph.cpp ./som.cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe -debug: - $(CXX) ./som_graph.cpp ./som.cpp /MDd /Od /Zi /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe -clean: - @cmd.exe /C del $(PROG).exe *.obj *.?db *.manifest -test: - $(PROG) $(ARGS) -light_test: - $(PROG) $(LIGHT_ARGS) - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/som/index.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/som/index.html deleted file mode 100644 index 86f7b992b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/som/index.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -

Overview

-The Self-Organizing Map demonstrates tbb::flow and the use of cancellation in scheduling multiple iterations of -map updates. -

-For tutorials on Self-organizing Maps, see here and -here. -

-The program trains the map with several examples, splitting the map into subsections and looking for best-match -for multiple examples. When an example is used to update the map, the graphs examining the sections being -updated for the next example are cancelled and restarted after the update. - -

Source Files

-
-
som_graph.cpp -
The main program. -
som.cpp -
utilities for handling the map. -
som.h -
Definitions and utilites. -
Makefile, Makefile.windows -
Makefiles for building example. -
- -

Directories

-
-
msvs -
Contains Microsoft* Visual Studio* 2008 workspace for building and running the - example (Windows* systems only). -
xcode -
Contains Xcode* IDE workspace for building and running the example (Mac OS* X - systems only).
- -

To Build

-General build directions can be found here. -

- -
-Up to parent directory -

-Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

-Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/som/msvs/som.icproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/som/msvs/som.icproj deleted file mode 100644 index f2df6b6b1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/som/msvs/som.icproj +++ /dev/null @@ -1,11 +0,0 @@ - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/som/msvs/som.vcproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/som/msvs/som.vcproj deleted file mode 100644 index 56c5b3300..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/som/msvs/som.vcproj +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/som/msvs/som_cl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/som/msvs/som_cl.sln deleted file mode 100644 index 360dec9e2..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/som/msvs/som_cl.sln +++ /dev/null @@ -1,22 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "som", "som.vcproj", "{B2AE2EDC-697B-4C85-AC0D-E3E523D20D6D}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {B2AE2EDC-697B-4C85-AC0D-E3E523D20D6D}.Release|x64.ActiveCfg = Release|x64 - {B2AE2EDC-697B-4C85-AC0D-E3E523D20D6D}.Release|x64.Build.0 = Release|x64 - {B2AE2EDC-697B-4C85-AC0D-E3E523D20D6D}.Debug|x64.ActiveCfg = Debug|x64 - {B2AE2EDC-697B-4C85-AC0D-E3E523D20D6D}.Debug|Win32.ActiveCfg = Debug|Win32 - {B2AE2EDC-697B-4C85-AC0D-E3E523D20D6D}.Release|Win32.ActiveCfg = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/som/msvs/som_icl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/som/msvs/som_icl.sln deleted file mode 100644 index 70fdc451a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/som/msvs/som_icl.sln +++ /dev/null @@ -1,33 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{b0b51c77-6a57-47e6-b25b-4c5a4af67c6f}") = "som", "som.icproj", "{fdd223e1-7f29-4ad2-91bb-bf6c0284cd5f}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {fdd223e1-7f29-4ad2-91bb-bf6c0284cd5f}.Debug|Win32.ActiveCfg = Debug|Win32 - {fdd223e1-7f29-4ad2-91bb-bf6c0284cd5f}.Debug|Win32.Build.0 = Debug|Win32 - {fdd223e1-7f29-4ad2-91bb-bf6c0284cd5f}.Debug|x64.ActiveCfg = Debug|x64 - {fdd223e1-7f29-4ad2-91bb-bf6c0284cd5f}.Debug|x64.Build.0 = Debug|x64 - {fdd223e1-7f29-4ad2-91bb-bf6c0284cd5f}.Release|Win32.ActiveCfg = Release|Win32 - {fdd223e1-7f29-4ad2-91bb-bf6c0284cd5f}.Release|Win32.Build.0 = Release|Win32 - {fdd223e1-7f29-4ad2-91bb-bf6c0284cd5f}.Release|x64.ActiveCfg = Release|x64 - {fdd223e1-7f29-4ad2-91bb-bf6c0284cd5f}.Release|x64.Build.0 = Release|x64 - {b2ae2edc-697b-4c85-ac0d-e3e523d20d6d}.Release|x64.Build.0 = Release|x64 - {b2ae2edc-697b-4c85-ac0d-e3e523d20d6d}.Release|x64.ActiveCfg = Release|x64 - {b2ae2edc-697b-4c85-ac0d-e3e523d20d6d}.Release|Win32.Build.0 = Release|Win32 - {b2ae2edc-697b-4c85-ac0d-e3e523d20d6d}.Release|Win32.ActiveCfg = Release|Win32 - {b2ae2edc-697b-4c85-ac0d-e3e523d20d6d}.Debug|x64.Build.0 = Debug|x64 - {b2ae2edc-697b-4c85-ac0d-e3e523d20d6d}.Debug|x64.ActiveCfg = Debug|x64 - {b2ae2edc-697b-4c85-ac0d-e3e523d20d6d}.Debug|Win32.Build.0 = Debug|Win32 - {b2ae2edc-697b-4c85-ac0d-e3e523d20d6d}.Debug|Win32.ActiveCfg = Debug|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/som/som.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/som/som.cpp deleted file mode 100644 index f5d842aa0..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/som/som.cpp +++ /dev/null @@ -1,225 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -// -// Self-organizing map in TBB flow::graph -// -// we will do a color map (the simple example.) -// -// serial algorithm -// -// initialize map with vectors (could be random, gradient, or something else) -// for some number of iterations -// update radius r, weight of change L -// for each example V -// find the best matching unit -// for each part of map within radius of BMU W -// update vector: W(t+1) = W(t) + w(dist)*L*(V - W(t)) - -#include "som.h" -#include "tbb/task.h" - -std::ostream& operator<<( std::ostream &out, const SOM_element &s) { - out << "("; - for(int i=0;i<(int)s.w.size();++i) { - out << s.w[i]; - if(i < (int)s.w.size()-1) { - out << ","; - } - } - out << ")"; - return out; -} - -void remark_SOM_element(const SOM_element &s) { - printf("("); - for(int i=0;i<(int)s.w.size();++i) { - printf("%g",s.w[i]); - if(i < (int)s.w.size()-1) { - printf(","); - } - } - printf(")"); -} - -std::ostream& operator<<( std::ostream &out, const search_result_type &s) { - out << "<"; - out << get(s); - out << ", " << get(s); - out << ", "; - out << get(s); - out << ">"; - return out; -} - -void remark_search_result_type(const search_result_type &s) { - printf("<%g,%d,%d>", get(s), get(s), get(s)); -} - -double -randval( double lowlimit, double highlimit) { - return double(rand()) / double(RAND_MAX) * (highlimit - lowlimit) + lowlimit; -} - -void -find_data_ranges(teaching_vector_type &teaching, SOM_element &max_range, SOM_element &min_range ) { - if(teaching.size() == 0) return; - max_range = min_range = teaching[0]; - for(int i = 1; i < (int)teaching.size(); ++i) { - max_range.elementwise_max(teaching[i]); - min_range.elementwise_min(teaching[i]); - } -} - -void add_fraction_of_difference( SOM_element &to, SOM_element const &from, double frac) { - for(int i = 0; i < (int)from.size(); ++i) { - to[i] += frac*(from[i] - to[i]); - } -} - -double -distance_squared(SOM_element x, SOM_element y) { - double rval = 0.0; for(int i=0;i<(int)x.size();++i) { - double diff = x[i] - y[i]; - rval += diff*diff; - } - return rval; -} - -void SOMap::initialize(InitializeType it, SOM_element &max_range, SOM_element &min_range) { - for(int x = 0; x < xMax; ++x) { - for(int y = 0; y < yMax; ++y) { - for( int i = 0; i < (int)max_range.size(); ++i) { - if(it == InitializeRandom) { - my_map[x][y][i] = (randval(min_range[i], max_range[i])); - } - else if(it == InitializeGradient) { - my_map[x][y][i] = ((double)(x+y)/(xMax+yMax)*(max_range[i]-min_range[i]) + min_range[i]); - } - } - } - } -} - -// subsquare [low,high) -double -SOMap::BMU_range( const SOM_element &s, int &xval, int &yval, subsquare_type &r) { - double min_distance_squared = DBL_MAX; - task &my_task = task::self(); - int min_x = -1; - int min_y = -1; - for(int x = r.rows().begin(); x != r.rows().end(); ++x) { - for( int y = r.cols().begin(); y != r.cols().end(); ++y) { - double dist = distance_squared(s,my_map[x][y]); - if(dist < min_distance_squared) { - min_distance_squared = dist; - min_x = x; - min_y = y; - } - if(cancel_test && my_task.is_cancelled()) { - xval = r.rows().begin(); - yval = r.cols().begin(); - return DBL_MAX; - } - } - } - xval = min_x; - yval = min_y; - return sqrt(min_distance_squared); -} - -void -SOMap::epoch_update_range( SOM_element const &s, int epoch, int min_x, int min_y, double radius, double learning_rate, blocked_range &r) { - int min_xiter = (int)((double)min_x - radius); - if(min_xiter < 0) min_xiter = 0; - int max_xiter = (int)((double)min_x + radius); - if(max_xiter > (int)my_map.size()-1) max_xiter = (int)my_map.size()-1; - for(int xx = r.begin(); xx <= r.end(); ++xx) { - double xrsq = (xx-min_x)*(xx-min_x); - double ysq = radius*radius - xrsq; // max extent of y influence - double yd; - if(ysq > 0) { - yd = sqrt(ysq); - int lb = (int)(min_y - yd); - int ub = (int)(min_y + yd); - for(int yy = lb; yy < ub; ++yy) { - if(yy >= 0 && yy < (int)my_map[xx].size()) { - // [xx, yy] is in the range of the update. - double my_rsq = xrsq + (yy-min_y)*(yy-min_y); // distance from BMU squared - double theta = exp(-(radius*radius) /(2.0* my_rsq)); - add_fraction_of_difference(my_map[xx][yy], s, theta * learning_rate); - } - } - } - } -} - -void SOMap::teach(teaching_vector_type &in) { - for(int i = 0; i < nPasses; ++i ) { - int j = (int)(randval(0, (double)in.size())); // this won't be reproducible. - if(j == in.size()) --j; - - int min_x = -1; - int min_y = -1; - subsquare_type br2(0, (int)my_map.size(), 1, 0, (int)my_map[0].size(), 1); - (void) BMU_range(in[j],min_x, min_y, br2); // just need min_x, min_y - // radius of interest - double radius = max_radius * exp(-(double)i*radius_decay_rate); - // update circle is min_xiter to max_xiter inclusive. - double learning_rate = max_learning_rate * exp( -(double)i * learning_decay_rate); - epoch_update(in[j], i, min_x, min_y, radius, learning_rate); - } -} - -void SOMap::debug_output() { - printf("SOMap:\n"); - for(int i = 0; i < (int)(this->my_map.size()); ++i) { - for(int j = 0; j < (int)(this->my_map[i].size()); ++j) { - printf( "map[%d, %d] == ", i, j ); - remark_SOM_element( this->my_map[i][j] ); - printf("\n"); - } - } -} - -#define RED 0 -#define GREEN 1 -#define BLUE 2 - -void readInputData() { - my_teaching.push_back(SOM_element()); - my_teaching.push_back(SOM_element()); - my_teaching.push_back(SOM_element()); - my_teaching.push_back(SOM_element()); - my_teaching.push_back(SOM_element()); - my_teaching[0][RED] = 1.0; my_teaching[0][GREEN] = 0.0; my_teaching[0][BLUE] = 0.0; - my_teaching[1][RED] = 0.0; my_teaching[1][GREEN] = 1.0; my_teaching[1][BLUE] = 0.0; - my_teaching[2][RED] = 0.0; my_teaching[2][GREEN] = 0.0; my_teaching[2][BLUE] = 1.0; - my_teaching[3][RED] = 0.3; my_teaching[3][GREEN] = 0.3; my_teaching[3][BLUE] = 0.0; - my_teaching[4][RED] = 0.5; my_teaching[4][GREEN] = 0.5; my_teaching[4][BLUE] = 0.9; -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/som/som.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/som/som.h deleted file mode 100644 index 2acba1a46..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/som/som.h +++ /dev/null @@ -1,169 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -// -// Self-organizing map -// -// support for self-ordering maps -#ifndef __SOM_H__ -#define __SOM_H__ - -#include -#include -#include -#include -#include -#include - -#include "tbb/flow_graph.h" -#include "tbb/blocked_range2d.h" - -using namespace tbb; -using namespace tbb::flow; - -typedef blocked_range2d subsquare_type; -typedef tuple search_result_type; - -std::ostream& operator<<( std::ostream &out, const search_result_type &s); - -#define RADIUS 0 // for the std::gets -#define XV 1 -#define YV 2 - -// to have single definitions of static variables, define _MAIN_C_ in the main program -// -#ifdef _MAIN_C_ -#define DEFINE // nothing -#define INIT(n) = n -#else // not in main file -#define DEFINE extern -#define INIT(n) // nothing -#endif // _MAIN_C_ - -DEFINE int nElements INIT(3); // length of input vectors, matching vector in map -DEFINE double max_learning_rate INIT(0.8); // decays exponentially -DEFINE double radius_decay_rate; -DEFINE double learning_decay_rate INIT(0.005); -DEFINE double max_radius; -DEFINE bool extra_debug INIT(false); -DEFINE bool cancel_test INIT(false); - -DEFINE int xMax INIT(100); -DEFINE int yMax INIT(100); -DEFINE int nPasses INIT(100); - -enum InitializeType { InitializeRandom, InitializeGradient }; -#define RED 0 -#define GREEN 1 -#define BLUE 2 -class SOM_element; -void remark_SOM_element(const SOM_element &s); - -// all SOM_element vectors are the same length (nElements), so we do not have -// to range-check the vector accesses. -class SOM_element { - std::vector w; -public: - friend std::ostream& operator<<( std::ostream &out, const SOM_element &s); - friend void remark_SOM_element(const SOM_element &s); - SOM_element() : w(nElements,0.0) {} - double &operator[](int indx) { return w.at(indx); } - const double &operator[](int indx) const { return w.at(indx); } - bool operator==(SOM_element const &other) const { - for(size_t i=0;i other.w[i]) w[i] = other.w[i]; - } - size_t size() const { return w.size(); } -}; - -typedef std::vector teaching_vector_type; - -DEFINE SOM_element max_range; -DEFINE SOM_element min_range; - -extern double randval( double lowlimit, double highlimit); - -extern void find_data_ranges(teaching_vector_type &teaching, SOM_element &max_range, SOM_element &min_range ); - -extern void add_fraction_of_difference( SOM_element &to, SOM_element &from, double frac); - -DEFINE teaching_vector_type my_teaching; - -class SOMap { - std::vector< std::vector< SOM_element > > my_map; -public: - SOMap(int xSize, int ySize) { - my_map.reserve(xSize); - for(int i = 0; i < xSize; ++i) { - my_map.push_back(teaching_vector_type()); - my_map[i].reserve(ySize); - for(int j = 0; j < ySize;++j) { - my_map[i].push_back(SOM_element()); - } - } - } - size_t size() { return my_map.size(); } - void initialize(InitializeType it, SOM_element &max_range, SOM_element &min_range); - teaching_vector_type &operator[](int indx) { return my_map[indx]; } - SOM_element &at(int xVal, int yVal) { return my_map[xVal][yVal]; } - SOM_element &at(search_result_type const &s) { return my_map[flow::get<1>(s)][flow::get<2>(s)]; } - void epoch_update( SOM_element const &s, int epoch, int min_x, int min_y, double radius, double learning_rate) { - int min_xiter = (int)((double)min_x - radius); - if(min_xiter < 0) min_xiter = 0; - int max_xiter = (int)((double)min_x + radius); - if(max_xiter > (int)my_map.size()-1) max_xiter = (int)(my_map.size()-1); - blocked_range br1(min_xiter, max_xiter, 1); - epoch_update_range(s, epoch, min_x, min_y, radius, learning_rate, br1); - } - void epoch_update_range( SOM_element const &s, int epoch, int min_x, int min_y, double radius, double learning_rate, blocked_range &r); - void teach( teaching_vector_type &id); - void debug_output(); - // find BMU given an input, returns distance - double BMU_range(const SOM_element &s, int &xval, int &yval, subsquare_type &r); - double BMU(const SOM_element &s, int &xval, int &yval) { - subsquare_type br(0,(int)my_map.size(),1,0,(int)my_map[0].size(),1); - return BMU_range(s, xval, yval, br); - } -}; - -extern double distance_squared(SOM_element x, SOM_element y); -void remark_SOM_element(const SOM_element &s); - -extern void readInputData(); -#endif // __SOM_H__ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/som/som_graph.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/som/som_graph.cpp deleted file mode 100644 index 995567686..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/som/som_graph.cpp +++ /dev/null @@ -1,431 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -// -// Self-organizing map in TBB flow::graph -// -// This is an example of the use of cancellation in a graph. After a point in searching for -// the best match for an example, two examples are looked for simultaneously. When the -// earlier example is found and the update radius is determined, the affected searches -// for the subsequent example are cancelled, and after the update they are restarted. -// As the update radius shrinks fewer searches are cancelled, and by the last iterations -// virtually all the work done for the speculating example is useful. -// -// first, a simple implementation with only one example vector -// at a time. -// -// we will do a color map (the simple example.) -// -// graph algorithm -// -// for some number of iterations -// update radius r, weight of change L -// for each example V -// use graph to find BMU -// for each part of map within radius of BMU W -// update vector: W(t+1) = W(t) + w(dist)*L*(V - W(t)) - -#define _MAIN_C_ 1 -#include "som.h" - -#include "tbb/task_scheduler_init.h" -#include "tbb/flow_graph.h" -#include "tbb/blocked_range2d.h" -#include "tbb/tick_count.h" -#include "../examples/common/utility/utility.h" - -#define RED 0 -#define GREEN 1 -#define BLUE 2 - -static int xranges = 1; -static int yranges = 1; -static int xsize = -1; -static int ysize = -1; - -static int global_i = 0; -static int speculation_start; -std::vector function_node_execs; -static int xRangeMax = 3; -static int yRangeMax = 3; -static bool dont_speculate = false; -static search_result_type last_update; - -class BMU_search_body { - SOMap &my_map; - subsquare_type my_square; - int &fn_tally; -public: - BMU_search_body(SOMap &_m, subsquare_type &_sq, int &fnt) : my_map(_m), my_square(_sq), fn_tally(fnt) { } - BMU_search_body( const BMU_search_body &other) : my_map(other.my_map), my_square(other.my_square), fn_tally(other.fn_tally) { } - search_result_type operator()(const SOM_element s) { - int my_x; - int my_y; - double min_dist = my_map.BMU_range(s, my_x, my_y, my_square); - ++fn_tally; // count how many times this function_node executed - return search_result_type(min_dist, my_x, my_y); - } -}; - -typedef function_node search_node; -typedef broadcast_node b_node; -typedef std::vector< search_node *> search_node_vector_type; -typedef std::vector< search_node_vector_type > search_node_array_type; -typedef std::vector< graph *> graph_vector_type; -typedef std::vector< graph_vector_type > graph_array_type; - -#define SPECULATION_CNT 2 - -graph *g[SPECULATION_CNT]; // main graph; there should only be one per epoch -b_node *send_to[SPECULATION_CNT]; // broadcast node to send exemplar to all function_nodes -queue_node *q[SPECULATION_CNT]; // queue for function nodes to put their results in -// each function_node should have its own graph -search_node_array_type* s_array[SPECULATION_CNT]; // 2d array of function nodes -graph_array_type* g_array[SPECULATION_CNT]; // 2d array of graphs - -// build a set of SPECULATION_CNT graphs, each of which consists of a broadcast_node, -// xranges x yranges function_nodes, and one queue_node for output. -// once speculation starts, if i % SPECULATION_CNT is the current graph, (i+1) % SPECULATION_CNT -// is the first speculation, and so on. -void -build_BMU_graph(SOMap &map1) { - // build current graph - xsize = ((int)map1.size() + xranges - 1) / xranges; - ysize = ((int)map1[0].size() + yranges - 1) / yranges; - function_node_execs.clear(); - function_node_execs.reserve(xranges*yranges+1); - for(int ii = 0; ii < xranges*yranges+1;++ii) function_node_execs.push_back(0); - - for(int scnt = 0; scnt < SPECULATION_CNT; ++scnt) { - g[scnt] = new graph; - send_to[scnt] = new b_node(*(g[scnt])); // broadcast node to the function_nodes - q[scnt] = new queue_node(*(g[scnt])); // output queue - - // create the function_nodes, tie to the graph - s_array[scnt] = new search_node_array_type; - s_array[scnt]->reserve(xranges); - g_array[scnt] = new graph_array_type; - g_array[scnt]->reserve(xranges); - for(int i = 0; i < (int)map1.size(); i += xsize) { - int xindex = i / xsize; - s_array[scnt]->push_back(search_node_vector_type()); - (*s_array[scnt])[xindex].reserve(yranges); - g_array[scnt]->push_back(graph_vector_type()); - (*g_array[scnt])[xindex].reserve(yranges); - for( int j = 0; j < (int)map1[0].size(); j += ysize) { - int offset = (i/xsize)*yranges + (j / ysize); - int xmax = (i + xsize) > (int)map1.size() ? (int)map1.size() : i + xsize; - int ymax = (j + ysize) > (int)map1[0].size() ? (int)map1[0].size() : j + ysize; - subsquare_type sst(i,xmax,1,j,ymax,1); - BMU_search_body bb(map1,sst,function_node_execs[offset]); - graph *g_local = new graph; - search_node *s = new search_node(*g_local, serial, bb); // copies Body - (*g_array[scnt])[xindex].push_back(g_local); - (*s_array[scnt])[xindex].push_back(s); - make_edge(*(send_to[scnt]), *s); // broadcast_node -> function_node - make_edge(*s, *(q[scnt])); // function_node -> queue_node - } - } - } -} - -// Wait for the 2D array of flow::graphs. -void wait_for_all_graphs(int cIndex) { // cIndex ranges over [0 .. SPECULATION_CNT - 1] - for(int x = 0; x < xranges; ++x) { - for(int y = 0; y < yranges; ++y) { - (*g_array[cIndex])[x][y]->wait_for_all(); - } - } -} - -void -destroy_BMU_graph() { - for(int scnt = 0; scnt < SPECULATION_CNT; ++scnt) { - for( int i = 0; i < (int)(*s_array[scnt]).size(); ++i ) { - for(int j = 0; j < (int)(*s_array[scnt])[i].size(); ++j) { - delete (*s_array[scnt])[i][j]; - delete (*g_array[scnt])[i][j]; - } - } - (*s_array[scnt]).clear(); - delete s_array[scnt]; - (*g_array[scnt]).clear(); - delete g_array[scnt]; - delete q[scnt]; - delete send_to[scnt]; - delete g[scnt]; - } -} - -void find_subrange_overlap(int const &xval, int const &yval, double const &radius, int &xlow, int &xhigh, int &ylow, int &yhigh) { - xlow = int((xval-radius)/xsize); - xhigh = int((xval+radius)/xsize); - ylow = int((yval-radius)/ysize); - yhigh = int((yval+radius)/ysize); - // circle may fall partly outside map - if(xlow < 0) xlow = 0; - if(xhigh >= xranges) xhigh = xranges - 1; - if(ylow < 0) ylow = 0; - if(yhigh >= yranges) yhigh = yranges - 1; -} - -bool overlap( int &xval, int &yval, search_result_type &sr) { - int xlow, xhigh, ylow, yhigh; - find_subrange_overlap(get(sr), get(sr), get(sr), xlow, xhigh, ylow, yhigh); - return xval >= xlow && xval <= xhigh && yval >= ylow && yval <= yhigh; -} - -void -cancel_submaps(int &xval, int &yval, double &radius, int indx) { - int xlow; - int xhigh; - int ylow; - int yhigh; - find_subrange_overlap(xval, yval, radius, xlow, xhigh, ylow, yhigh); - for(int x = xlow; x <= xhigh; ++x) { - for(int y = ylow; y <= yhigh; ++y) { - (*g_array[indx])[x][y]->root_task()->cancel_group_execution(); - } - } -} - -void -restart_submaps(int &xval, int &yval, double &radius, int indx, SOM_element &vector) { - int xlow; - int xhigh; - int ylow; - int yhigh; - find_subrange_overlap(xval, yval, radius, xlow, xhigh, ylow, yhigh); - for(int x = xlow; x <= xhigh; ++x) { - for(int y = ylow; y <= yhigh; ++y) { - // have to reset the graph - (*g_array[indx])[x][y]->root_task()->context()->reset(); - // and re-submit the exemplar for search. - (*s_array[indx])[x][y]->try_put(vector); - } - } -} - -search_result_type -graph_BMU( int indx ) { // indx ranges over [0 .. SPECULATION_CNT -1] - wait_for_all_graphs(indx); // wait for the array of subgraphs - (g[indx])->wait_for_all(); - std::vector all_srs(xRangeMax*yRangeMax,search_result_type(DBL_MAX,-1,-1)); - search_result_type sr; - search_result_type min_sr; - get(min_sr) = DBL_MAX; - int result_count = 0; - while((q[indx])->try_get(sr)) { - ++result_count; - // figure which submap this came from - int x = get(sr) / xsize; - int y = get(sr) / ysize; - int offset = x*yranges+y; // linearized subscript - all_srs[offset] = sr; - if(get(sr) < get(min_sr)) - min_sr = sr; - else if(get(sr) == get(min_sr)) { - if(get(sr) < get(min_sr)) { - min_sr = sr; - } - else if((get(sr) == get(min_sr) && - get(sr) < get(min_sr))) - { - min_sr = sr; - } - } - } - return min_sr; - // end of one epoch -} - -void graph_teach(SOMap &map1, teaching_vector_type &in) { - build_BMU_graph(map1); - // normally the training would pick random exemplars to teach the SOM. We need - // the process to be reproducible, so we will pick the exemplars in order, [0, in.size()) - int next_j = 0; - for(int epoch = 0; epoch < nPasses; ++epoch) { - global_i = epoch; - bool canceled_submaps = false; - int j = next_j; // try to make reproducible - next_j = (epoch+1) % in.size(); - search_result_type min_sr; - if(epoch < speculation_start) { - (send_to[epoch%SPECULATION_CNT])->try_put(in[j]); - } - else if(epoch == speculation_start) { - (send_to[epoch%SPECULATION_CNT])->try_put(in[j]); - if(epoch < nPasses-1) { - (send_to[(epoch+1)%SPECULATION_CNT])->try_put(in[next_j]); - } - } - else if(epoch < nPasses - 1) { - (send_to[(epoch+1)%SPECULATION_CNT])->try_put(in[next_j]); - } - min_sr = graph_BMU(epoch % SPECULATION_CNT); //calls wait_for_all() - double min_distance = get<0>(min_sr); - double radius = max_radius * exp(-(double)epoch*radius_decay_rate); - double learning_rate = max_learning_rate * exp(-(double)epoch * learning_decay_rate); - if(epoch >= speculation_start && epoch < (nPasses - 1)) { - // have to cancel the affected submaps - cancel_submaps(get(min_sr), get(min_sr), radius, (epoch+1)%SPECULATION_CNT); - canceled_submaps = true; - } - map1.epoch_update(in[j], epoch, get<1>(min_sr), get<2>(min_sr), radius, learning_rate); - ++global_i; - if(canceled_submaps) { - // do I have to wait for all the non-canceled speculative graph to complete first? - // yes, in case a canceled task was already executing. - wait_for_all_graphs((epoch+1) % SPECULATION_CNT); // wait for the array of subgraphs - restart_submaps(get<1>(min_sr), get<2>(min_sr), radius, (epoch+1)%SPECULATION_CNT, in[next_j]); - } - - last_update = min_sr; - get(last_update) = radius; // not smallest value, but range of effect - } - destroy_BMU_graph(); -} - -static const double serial_time_adjust = 1.25; -static double radius_fraction = 3.0; - -int -main(int argc, char** argv) { - int l_speculation_start; - utility::thread_number_range threads( - task_scheduler_init::default_num_threads, - task_scheduler_init::default_num_threads() // run only the default number of threads if none specified - ); - - utility::parse_cli_arguments(argc,argv, - utility::cli_argument_pack() - //"-h" option for for displaying help is present implicitly - .positional_arg(threads,"n-of-threads","number of threads to use; a range of the form low[:high], where low and optional high are non-negative integers or 'auto' for the TBB default.") - // .positional_arg(InputFileName,"input-file","input file name") - // .positional_arg(OutputFileName,"output-file","output file name") - .positional_arg(radius_fraction, "radius-fraction","size of radius at which to start speculating") - .positional_arg(nPasses, "number-of-epochs","number of examples used in learning phase") - .arg(cancel_test, "cancel-test", "test for cancel signal while finding BMU") - .arg(extra_debug, "debug", "additional output") - .arg(dont_speculate,"nospeculate","don't speculate in SOM map teaching") - ); - - readInputData(); - max_radius = (xMax < yMax) ? yMax / 2 : xMax / 2; - // need this value for the 1x1 timing below - radius_decay_rate = -(log(1.0/(double)max_radius) / (double)nPasses); - find_data_ranges(my_teaching, max_range, min_range ); - if(extra_debug) { - printf( "Data range: "); - remark_SOM_element(min_range); - printf( " to "); - remark_SOM_element(max_range); - printf( "\n"); - } - - // find how much time is taken for the single function_node case. - // adjust nPasses so the 1x1 time is somewhere around serial_time_adjust seconds. - // make sure the example test runs for at least 0.5 second. - for(;;) { - task_scheduler_init init(1); - SOMap map1(xMax,yMax); - speculation_start = nPasses + 1; // Don't speculate - - xranges = 1; - yranges = 1; - map1.initialize(InitializeGradient, max_range, min_range); - tick_count t0 = tick_count::now(); - graph_teach(map1, my_teaching); - tick_count t1 = tick_count::now(); - double nSeconds = (t1-t0).seconds(); - if(nSeconds < 0.5) { - xMax *= 2; - yMax *= 2; - continue; - } - double size_adjust = sqrt(serial_time_adjust / nSeconds); - xMax = (int)((double)xMax * size_adjust); - yMax = (int)((double)yMax * size_adjust); - max_radius = (xMax < yMax) ? yMax / 2 : xMax / 2; - radius_decay_rate = log((double)max_radius) / (double)nPasses; - - if(extra_debug) { - printf("original 1x1 case ran in %g seconds\n", nSeconds); - printf(" Size of table == %d x %d\n", xMax, yMax); - printf(" radius_decay_rate == %g\n", radius_decay_rate); - } - break; - } - - // the "max_radius" starts at 1/2*radius_fraction the table size. To start the speculation when the radius is - // 1 / n * the table size, the constant in the log below should be n / 2. so 2 == 1/4, 3 == 1/6th, - // et c. - if(dont_speculate) { - l_speculation_start = nPasses + 1; - if ( extra_debug )printf("speculation will not be done\n"); - } - else { - if(radius_fraction < 1.0 ) { - if ( extra_debug )printf("Warning: radius_fraction should be >= 1. Setting to 1.\n"); - radius_fraction = 1.0; - } - l_speculation_start = (int)((double)nPasses * log(radius_fraction) / log((double)nPasses)); - if ( extra_debug )printf( "We will start speculation at iteration %d\n", l_speculation_start ); - } - double single_time; // for speedup calculations - for(int p = threads.first; p <= threads.last; ++p) { - task_scheduler_init init(p); - if ( extra_debug )printf( " -------------- Running with %d threads. ------------\n", p); - // run the SOM build for a series of subranges - for(xranges = 1; xranges <= xRangeMax; ++xranges) { - for(yranges = xranges; yranges <= yRangeMax; ++yranges) { - if(xranges == 1 && yranges == 1) { - // don't pointlessly speculate if we're only running one subrange. - speculation_start = nPasses + 1; - } - else { - speculation_start = l_speculation_start; - } - SOMap map1(xMax, yMax); - map1.initialize(InitializeGradient, max_range, min_range); - - if(extra_debug) printf( "Start learning for [%d,%d] ----------- \n", xranges,yranges); - tick_count t0 = tick_count::now(); - graph_teach(map1, my_teaching); - tick_count t1 = tick_count::now(); - - if ( extra_debug )printf( "Done learning for [%d,%d], which took %g seconds ", xranges,yranges, (t1-t0).seconds()); - if(xranges == 1 && yranges == 1) single_time = (t1-t0).seconds(); - if ( extra_debug )printf( ": speedup == %g\n", single_time / (t1-t0).seconds()); - - } // yranges - } // xranges - } // #threads p - printf("done\n"); - return 0; -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/som/xcode/som.xcodeproj/project.pbxproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/som/xcode/som.xcodeproj/project.pbxproj deleted file mode 100644 index aeb525680..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/graph/som/xcode/som.xcodeproj/project.pbxproj +++ /dev/null @@ -1,313 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 522FF8DD11F573FC00A587B2 /* som_graph.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 522FF8DB11F573FC00A587B2 /* som_graph.cpp */; }; - 522FF8DE11F573FC00A587B2 /* som.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 522FF8DC11F573FC00A587B2 /* som.cpp */; }; - A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; }; - A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 8DD76F690486A84900D96B5E /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 12; - dstPath = ""; - dstSubfolderSpec = 16; - files = ( - A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 522FF8DB11F573FC00A587B2 /* som_graph.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = som_graph.cpp; path = ../som_graph.cpp; sourceTree = SOURCE_ROOT; }; - 522FF8DC11F573FC00A587B2 /* som.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = som.cpp; path = ../som.cpp; sourceTree = SOURCE_ROOT; }; - 8DD76F6C0486A84900D96B5E /* som */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = som; sourceTree = BUILT_PRODUCTS_DIR; }; - A1F593B30B8F06F900073279 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = ../../../../lib/libtbb.dylib; sourceTree = SOURCE_ROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8DD76F660486A84900D96B5E /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 08FB7794FE84155DC02AAC07 /* som */ = { - isa = PBXGroup; - children = ( - 08FB7795FE84155DC02AAC07 /* Source */, - A1F593B20B8F06F900073279 /* External Frameworks and Libraries */, - 1AB674ADFE9D54B511CA2CBB /* Products */, - ); - name = som; - sourceTree = ""; - }; - 08FB7795FE84155DC02AAC07 /* Source */ = { - isa = PBXGroup; - children = ( - 522FF8DB11F573FC00A587B2 /* som_graph.cpp */, - 522FF8DC11F573FC00A587B2 /* som.cpp */, - ); - name = Source; - sourceTree = ""; - }; - 1AB674ADFE9D54B511CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8DD76F6C0486A84900D96B5E /* som */, - ); - name = Products; - sourceTree = ""; - }; - A1F593B20B8F06F900073279 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - A1F593B30B8F06F900073279 /* libtbb.dylib */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8DD76F620486A84900D96B5E /* som */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "som" */; - buildPhases = ( - 8DD76F640486A84900D96B5E /* Sources */, - 8DD76F660486A84900D96B5E /* Frameworks */, - 8DD76F690486A84900D96B5E /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = som; - productInstallPath = "$(HOME)/bin"; - productName = som; - productReference = 8DD76F6C0486A84900D96B5E /* som */; - productType = "com.apple.product-type.tool"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 08FB7793FE84155DC02AAC07 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0410; - }; - buildConfigurationList = 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "som" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - en, - ); - mainGroup = 08FB7794FE84155DC02AAC07 /* som */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8DD76F620486A84900D96B5E /* som */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXSourcesBuildPhase section */ - 8DD76F640486A84900D96B5E /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 522FF8DD11F573FC00A587B2 /* som_graph.cpp in Sources */, - 522FF8DE11F573FC00A587B2 /* som.cpp in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 1DEB923208733DC60010E9CD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = _CONSOLE; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = som; - ZERO_LINK = NO; - }; - name = Debug; - }; - 1DEB923308733DC60010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_PREPROCESSOR_DEFINITIONS = _CONSOLE; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = som; - ZERO_LINK = NO; - }; - name = Release; - }; - 1DEB923608733DC60010E9CD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Debug; - }; - 1DEB923708733DC60010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Release; - }; - A1F593C60B8F0E6E00073279 /* Debug64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = _CONSOLE; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = som; - ZERO_LINK = NO; - }; - name = Debug64; - }; - A1F593C70B8F0E6E00073279 /* Release64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_PREPROCESSOR_DEFINITIONS = _CONSOLE; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = som; - ZERO_LINK = NO; - }; - name = Release64; - }; - A1F593C80B8F0E6E00073279 /* Debug64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "-m64", - ); - OTHER_LDFLAGS = "-m64"; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Debug64; - }; - A1F593C90B8F0E6E00073279 /* Release64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "-m64", - ); - OTHER_LDFLAGS = "-m64"; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Release64; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "som" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB923208733DC60010E9CD /* Debug */, - A1F593C60B8F0E6E00073279 /* Debug64 */, - 1DEB923308733DC60010E9CD /* Release */, - A1F593C70B8F0E6E00073279 /* Release64 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "som" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB923608733DC60010E9CD /* Debug */, - A1F593C80B8F0E6E00073279 /* Debug64 */, - 1DEB923708733DC60010E9CD /* Release */, - A1F593C90B8F0E6E00073279 /* Release64 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/index.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/index.html deleted file mode 100644 index b66cb30f1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/index.html +++ /dev/null @@ -1,174 +0,0 @@ - - - -

Overview

-This directory has example usages of Intel® Threading Building Blocks (Intel® TBB). - -

Directories

-
-
GettingStarted -
Examples from the Getting Started Guide. -
concurrent_hash_map -
Examples using concurrent_hash_map. -
concurrent_priority_queue -
Examples using concurrent_priority_queue. -
graph -
Examples using tbb::flow graph. -
parallel_do -
Examples using parallel_do. -
parallel_for -
Examples using parallel_for. -
parallel_reduce -
Examples using parallel_reduce. -
pipeline -
Examples using pipeline. -
task -
Examples using raw task interface. -
task_group -
Examples using task_group interface. -
task_priority -
Examples using the task priority feature. -
test_all -
Examples that test all the parts of the package. -
common -
Common files for building various examples. Should not be used directly. But if you copy an example to other place this folder should be copied also and should have the same relative path for copied example. -
- -

To Build

-Build each example by using one of the following methods. The specific directions for each -method can be found below. - - -

-Some of the following directions refer to a shell window; this refers -to the command prompt environment/window normally used on your system. -A shell might be a cmd.exe command prompt window (Windows* systems), or a -sh, bash, csh, ksh, etc. (or compatible) shell window (Windows*, Linux* or OS X* systems). -

- -

To build by using a Microsoft* Visual Studio* project (Windows* systems):

-Perform the following steps: -
    -
  1. Identify the solution (*.sln) file for the example you wish to build and run.For Microsoft* Visual Studio* 2005, the *.sln file is in the example's msvs sub-directory. For other versions please use Microsoft* - Visual Studio* project converter -
      -
    • <example_name>_cl.sln  - Solution for Microsoft* Visual C++* compiler -
    • -
    • <example_name>_icl.sln - Solution for Intel® C++ Compiler
    • -
    -
  2. -
  3. Open the project by using one of the following methods: -
      -
    • Navigate to the *.sln file from My Computer, by using Windows Explorer, or by using another file browser. Double-click the *.sln file to invoke Microsoft* Visual Studio* and open the project.
    • -
    • Invoke Microsoft* Visual Studio* from the Start menu and use the "Open Project" dialog to navigate to and open the project.
    • -
    -
  4. -
  5. Press <ctrl-F5> to build and run the example.
  6. -
  7. If you copied an example to another place separately from libraries you need to - set %TBBROOT% variable pointing to <installdir> folder.
  8. -
- -

To build by using a Xcode* IDE project (OS X* systems):

-Perform the following steps: -
    -
  1. Identify the project (*.xcodeproj) file for the example you wish to build and run. -
      -
    • The *.xcodeproj file is in the example's xcode sub-directory. -
    -
  2. -
  3. Open the project by using one of the following methods: -
      -
    • Navigate to the *.xcodeproj file by using the Finder.Double-click the *.xcodeproj file to invoke the Xcode* IDE and open the project.
    • -
    • Invoke the Xcode* IDE and use the "File -> Open" dialog to navigate to and open the project.
    • -
    -
  4. -
  5. Press <Apple-R>, or press the "Build and Go" button in the toolbox, to build and run the example. -
  6. -
- -

To build by using a Makefile (Windows*, Linux* or OS X* systems):

-Perform the following steps: -
    -
  1. Open a shell window. For Windows* systems, make sure this shell window has the proper environment - defined for use with Microsoft* Visual Studio* (2005, 2008, 2010 or 2012); such a shell can be invoked - from the Start menu, under Visual Studio, Visual Studio Tools, Visual Studio Command Prompt. -
  2. Set up the environment in this shell window for use with Intel TBB. -
    See below for how to set up the environment for Windows*, Linux* or OS X* systems. -
  3. Unless you installed Intel TBB yourself, you may not have write permissions to the directory - containing the example. In this case, make a copy of the example, and use the copy for the following steps. -
  4. In the shell window, navigate to the directory for the example - (or to the directory for the copy of the example if you made one in the previous step). -
  5. Use one or more of the following commands to build and run the example. - Here, make refers to the make command normally used on your system: this could be - nmake, gmake, or make on Windows* systems, or make or gmake on Linux* or OS X* systems. -
    -
    make -
    Default build and run. Equivalent to 'make release test'. -
    make release -
    Compile and link against the release version of Intel TBB runtime library. The resulting executable is left in the directory for the example. -
    make debug -
    Compile and link against the debug version of Intel TBB runtime library. The resulting executable is left in the directory for the example. -
    make test -
    Run an executable previously produced by one of the above commands. -
    make [(above options or targets)] CXX={icl, icc} -
    Build and run as above, but use Intel® compilers instead of default, native compilers (e.g., icl instead of cl.exe on Windows* systems, or icc instead of g++ on Linux* or OS X* systems). -
    make [(above options or targets)] offload=mic -
    Build and run the offload version of an example for Intel® Many Integrated Core (Intel® MIC) Architecture. -
    Note: Only Intel® MIC Architecture with Linux* based host is currently supported. -
    make clean -
    Remove any executables or intermediate files produced by the above commands. -
    -
- -

To set up the environment (Windows* systems):

-It is strongly recommended that the environment be set up when installing Intel TBB. -Do this by selecting the appropriate check-box during the install. However, if the environment is not set up -during installation, or you wish to build for an alternate architecture or Microsoft* Visual Studio* version, -it may be set up, for a given type of shell window, by using one of the following commands: -
-
For cmd.exe (command prompt): -
<installdir>\bin\tbbvars.bat (arch) (vs) -
-    where (arch) must be is one of the following
-       ia32         : Set up for IA-32  architecture
-       intel64      : Set up for Intel® 64  architecture
-   (vs) should be one of the following
-       vs2005      : Set to use with Microsoft Visual Studio 2005 runtime DLLs
-       vs2008      : Set to use with Microsoft Visual Studio 2008 runtime DLLs
-       vs2010      : Set to use with Microsoft Visual Studio 2010 runtime DLLs
-       vs2012      : Set to use with Microsoft Visual Studio 2012 runtime DLLs
-       all         : Set to use TBB statically linked with Microsoft Visual C++ runtime
-   if (vs) is not set TBB statically linked with Microsoft Visual C++ runtime will be used.
-
-
- -

To set up the environment (Linux* or OS X* systems):

-The environment may be set up, for a given type of shell window, by using one of the following commands: -
-
For sh, bash, ksh (or compatibles): -
. <installdir>/bin/tbbvars.sh (arch) -
For csh (or compatibles): -
source <installdir>/bin/tbbvars.csh (arch) -
Notes: -
-
  • Choose one of {ia32,intel64} depending on the architecture to be used. -
  • Environment setup need only be performed once per shell window to be used. -
  • Always source tbbvars.sh or tbbvars.csh rather than executing them directly. - -
  • - -
    -Up to parent directory -

    -Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

    -Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

    -* Other names and brands may be claimed as the property of others. - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_do/index.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_do/index.html deleted file mode 100644 index 7aff1984f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_do/index.html +++ /dev/null @@ -1,24 +0,0 @@ - - - -

    Overview

    -This directory has examples of the template parallel_do. - -

    Directories

    -
    -
    parallel_preorder -
    Parallel preorder traversal of a graph. -
    - -
    -Up to parent directory -

    -Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

    -Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

    -* Other names and brands may be claimed as the property of others. - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_do/parallel_preorder/Graph.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_do/parallel_preorder/Graph.cpp deleted file mode 100644 index a9786e872..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_do/parallel_preorder/Graph.cpp +++ /dev/null @@ -1,109 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#include -#include "Graph.h" -#include - -using namespace std; - -void Graph::create_random_dag( size_t number_of_nodes ) { - my_vertex_set.resize(number_of_nodes); - for( size_t k=0; k>8)%5u); - if( op>int(k) ) op = int(k); - switch( op ) { - default: - c.op = OP_VALUE; - c.value = Cell::value_type((float)k); - break; - case 1: - c.op = OP_NEGATE; - break; - case 2: - c.op = OP_SUB; - break; - case 3: - c.op = OP_ADD; - break; - case 4: - c.op = OP_MUL; - break; - } - for( int j=0; j& root_set ) { - for( size_t k=0; ksuccessor.push_back(&c); - } - if( ArityOfOp[c.op]==0 ) - root_set.push_back(&my_vertex_set[k]); - } -} - -void Cell::update() { - switch( op ) { - case OP_VALUE: - break; - case OP_NEGATE: - value = -(input[0]->value); - break; - case OP_ADD: - value = input[0]->value + input[1]->value; - break; - case OP_SUB: - value = input[0]->value - input[1]->value; - break; - case OP_MUL: - value = input[0]->value * input[1]->value; - break; - } -} - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_do/parallel_preorder/Graph.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_do/parallel_preorder/Graph.h deleted file mode 100644 index 9ff043117..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_do/parallel_preorder/Graph.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#include "Matrix.h" -#include "tbb/atomic.h" -#include - -enum OpKind { - // Use Cell's value - OP_VALUE, - // Unary negation - OP_NEGATE, - // Addition - OP_ADD, - // Subtraction - OP_SUB, - // Multiplication - OP_MUL -}; - -static const int ArityOfOp[] = {0,1,2,2,2}; - -class Cell { -public: - //! Operation for this cell - OpKind op; - - //! Inputs to this cell - Cell* input[2]; - - //! Type of value stored in a Cell - typedef Matrix value_type; - - //! Value associated with this Cell - value_type value; - - //! Set of cells that use this Cell as an input - std::vector successor; - - //! Reference count of number of inputs that are not yet updated. - tbb::atomic ref_count; - - //! Update the Cell's value. - void update(); - - //! Default construtor - Cell() {} -}; - -//! A directed graph where the vertices are Cells. -class Graph { - std::vector my_vertex_set; -public: - //! Create a random acyclic directed graph - void create_random_dag( size_t number_of_nodes ); - - //! Print the graph - void print(); - - //! Get set of cells that have no inputs. - void get_root_set( std::vector& root_set ); -}; - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_do/parallel_preorder/Makefile b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_do/parallel_preorder/Makefile deleted file mode 100644 index 83886883d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_do/parallel_preorder/Makefile +++ /dev/null @@ -1,62 +0,0 @@ -# Copyright 2005-2014 Intel Corporation. All Rights Reserved. -# -# This file is part of Threading Building Blocks. -# -# Threading Building Blocks is free software; you can redistribute it -# and/or modify it under the terms of the GNU General Public License -# version 2 as published by the Free Software Foundation. -# -# Threading Building Blocks is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied warranty -# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Threading Building Blocks; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# -# As a special exception, you may use this file as part of a free software -# library without restriction. Specifically, if other files instantiate -# templates or use macros or inline functions from this file, or you compile -# this file and link it with other files to produce an executable, this -# file does not by itself cause the resulting executable to be covered by -# the GNU General Public License. This exception does not however -# invalidate any other reasons why the executable file might be covered by -# the GNU General Public License. - -# Common Makefile that builds and runs example. - -# Just specify your program basename -PROG=Parallel_Preorder -ARGS= -PERF_RUN_ARGS=auto silent 500000 100 -LIGHT_ARGS=1:auto:+4 n-of-traversals=50 - -# Trying to find if icl.exe is set -CXX1 = $(TBB_CXX)- -CXX2 = $(CXX1:icl.exe-=icl.exe) -CXX = $(CXX2:-=cl.exe) - -# The C++ compiler options -MYCXXFLAGS = /TP /EHsc /W3 /nologo /D _CONSOLE /D _MBCS /D WIN32 /D _CRT_SECURE_NO_DEPRECATE $(CXXFLAGS) -MYLDFLAGS =/INCREMENTAL:NO /NOLOGO /DEBUG /FIXED:NO $(LDFLAGS) - -all: release test -release: compiler_check - $(CXX) *.cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe -debug: compiler_check - $(CXX) *.cpp /MDd /Od /Zi /D TBB_USE_DEBUG /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe -clean: - @cmd.exe /C del $(PROG).exe *.obj *.?db *.manifest -test: - $(PROG) $(ARGS) -light_test: - $(PROG) $(LIGHT_ARGS) -compiler_check: - @echo compiler_test>compiler_test && @$(CXX) /E compiler_test >nul 2>&1 || echo "$(CXX) command not found. Check if CXX=$(CXX) is set properly" - @cmd.exe /C del compiler_test - -perf_build: release - -perf_run: - ./$(PROG) $(PERF_RUN_ARGS) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_do/parallel_preorder/Matrix.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_do/parallel_preorder/Matrix.h deleted file mode 100644 index b32ebfb0b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_do/parallel_preorder/Matrix.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -class Matrix { - static const int n = 20; - float array[n][n]; -public: - Matrix() {} - Matrix( float z ) { - for( int i=0; i - - -

    Overview

    -Example that uses parallel_do to do parallel preorder traversal of a sparse graph. -

    -Each vertex in the graph is called a "cell". -Each cell has a value. -The value is a matrix. -Some of the cells have operators -that compute the cell's value, using other cell's values as input. -A cell that uses the value of cell x is called a successor of x. -

    -The algorithm works as follows. -

      -
    1. Compute the set of cells that have no inputs. This set is called root_set. -
    2. Each cell has an associated field ref_count that is an atomic integer. - Initialize ref_count to the number of inputs for the Cell. -
    3. Update each cell in root_set, by applying a parallel_do to a root_set -
    4. After updating a cell, for each of its successors -
        -
      1. Atomically decrement the successor's ref_count -
      2. If the count became zero, add the cell to the set of cells to be updated, - by calling parallel_do_feeder_impl::add. -
      -
    -

    -The times printed are for the traversal and update, -and do not include time for computing the root_set. -

    -The example is using custom synchronization via ref_count atomic variable. -Correctness checking tools might not take this into account, and report data races -between different tasks that are actually synchronized. -

    - -NOTE: It is important to understand that this example is unlikely to show speedup -if the cell values are changed to type "float". The reason is twofold. -
      -
    • The smaller value type causes each Cell to be significantly smaller than a cache line, - which leads to false sharing conflicts. -
    • The time to update the cells becomes very small, and consequently the overhead of - parallel_do swamps the useful work. -
    - -

    Files

    -
    -
    main.cpp -
    Main program which parses command line options and runs the algorithm with different numbers of threads. -
    parallel_preorder.cpp -
    Implementation of the parallel preorder traversal algorithm. -
    Graph.h -
    Interfaces of the Graph and Cell classes. -
    Graph.cpp -
    Implementations of the Graph and Cell classes. -
    Matrix.h -
    The Matrix class definition. -
    Makefile -
    Makefile for building example. -
    - -

    Directories

    -
    -
    msvs -
    Contains Microsoft* Visual Studio* 2005 workspace for building and running the example (Windows* systems only). -
    xcode -
    Contains Xcode* IDE workspace for building and running the example (OS X* systems only). -
    - -

    To Build

    -General build directions can be found here. - -

    Usage

    -
    -
    parallel_preorder -h -
    Prints the help for command line options -
    parallel_preorder [n-of-threads=value] [n-of-nodes=value] [n-of-traversals=value] [silent] -
    parallel_preorder [n-of-threads [n-of-nodes [n-of-traversals]]] [silent] -
    n-of-threads is the number of threads to use; a range of the form low[:high], where low and optional high are non-negative integers or 'auto' for the TBB default.
    - n-of-nodes is a number of nodes in the graph. Default value is 1000.
    - n-of-traversals is the number of times to evaluate the graph. Default value is 500.
    - silent - no output except elapsed time.
    -
    To run a short version of this example, e.g., for use with Intel® Parallel Inspector: -
    Build a debug version of the example - (see the build directions). -
    Run it with the desired number of threads and smaller number of traversals, e.g., parallel_preorder 4 1000 5. -
    - -
    -Up to parent directory -

    -Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

    -Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

    -* Other names and brands may be claimed as the property of others. - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_do/parallel_preorder/main.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_do/parallel_preorder/main.cpp deleted file mode 100644 index 98fc58030..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_do/parallel_preorder/main.cpp +++ /dev/null @@ -1,101 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* Example program that shows how to use parallel_do to do parallel preorder - traversal of a directed acyclic graph. */ - -#include -#include "tbb/task_scheduler_init.h" -#include "tbb/tick_count.h" -#include "../../common/utility/utility.h" -#include -#include -#include "Graph.h" - -// some forward declarations -class Cell; -void ParallelPreorderTraversal( const std::vector& root_set ); - -//------------------------------------------------------------------------ -// Test driver -//------------------------------------------------------------------------ -utility::thread_number_range threads(tbb::task_scheduler_init::default_num_threads); -static unsigned nodes = 1000; -static unsigned traversals = 500; -static bool SilentFlag = false; - -//! Parse the command line. -static void ParseCommandLine( int argc, const char* argv[] ) { - utility::parse_cli_arguments( - argc,argv, - utility::cli_argument_pack() - //"-h" option for displaying help is present implicitly - .positional_arg(threads,"n-of-threads",utility::thread_number_range_desc) - .positional_arg(nodes,"n-of-nodes","number of nodes in the graph.") - .positional_arg(traversals,"n-of-traversals","number of times to evaluate the graph. Reduce it (e.g. to 100) to shorten example run time\n") - .arg(SilentFlag,"silent","no output except elapsed time ") - ); -} - -int main( int argc, const char* argv[] ) { - try { - tbb::tick_count main_start = tbb::tick_count::now(); - ParseCommandLine(argc,argv); - - // Start scheduler with given number of threads. - for( int p=threads.first; p<=threads.last; p = threads.step(p) ) { - tbb::tick_count t0 = tbb::tick_count::now(); - tbb::task_scheduler_init init(p); - srand(2); - size_t root_set_size = 0; - { - Graph g; - g.create_random_dag(nodes); - std::vector root_set; - g.get_root_set(root_set); - root_set_size = root_set.size(); - for( unsigned int trial=0; trial - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_do/parallel_preorder/msvs/parallel_preorder.vcproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_do/parallel_preorder/msvs/parallel_preorder.vcproj deleted file mode 100644 index 9a9e75b17..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_do/parallel_preorder/msvs/parallel_preorder.vcproj +++ /dev/null @@ -1,378 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_do/parallel_preorder/msvs/parallel_preorder_cl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_do/parallel_preorder/msvs/parallel_preorder_cl.sln deleted file mode 100644 index 6b466e913..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_do/parallel_preorder/msvs/parallel_preorder_cl.sln +++ /dev/null @@ -1,25 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "parallel_preorder", "parallel_preorder.vcproj", "{3AA40693-F93D-4D4B-B32E-068F511A252B}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3AA40693-F93D-4D4B-B32E-068F511A252B}.Debug|Win32.ActiveCfg = Debug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252B}.Debug|Win32.Build.0 = Debug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252B}.Debug|x64.ActiveCfg = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252B}.Debug|x64.Build.0 = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252B}.Release|Win32.ActiveCfg = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252B}.Release|Win32.Build.0 = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252B}.Release|x64.ActiveCfg = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252B}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_do/parallel_preorder/msvs/parallel_preorder_icl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_do/parallel_preorder/msvs/parallel_preorder_icl.sln deleted file mode 100644 index 900fc6277..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_do/parallel_preorder/msvs/parallel_preorder_icl.sln +++ /dev/null @@ -1,33 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{EAF909A5-FA59-4C3D-9431-0FCC20D5BCF9}") = "parallel_preorder", "parallel_preorder.icproj", "{68C4AFEA-1847-4EEE-9CC5-D4FCB712D09F}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {68C4AFEA-1847-4EEE-9CC5-D4FCB712D09F}.Debug|Win32.ActiveCfg = Debug|Win32 - {68C4AFEA-1847-4EEE-9CC5-D4FCB712D09F}.Debug|Win32.Build.0 = Debug|Win32 - {68C4AFEA-1847-4EEE-9CC5-D4FCB712D09F}.Debug|x64.ActiveCfg = Debug|x64 - {68C4AFEA-1847-4EEE-9CC5-D4FCB712D09F}.Debug|x64.Build.0 = Debug|x64 - {68C4AFEA-1847-4EEE-9CC5-D4FCB712D09F}.Release|Win32.ActiveCfg = Release|Win32 - {68C4AFEA-1847-4EEE-9CC5-D4FCB712D09F}.Release|Win32.Build.0 = Release|Win32 - {68C4AFEA-1847-4EEE-9CC5-D4FCB712D09F}.Release|x64.ActiveCfg = Release|x64 - {68C4AFEA-1847-4EEE-9CC5-D4FCB712D09F}.Release|x64.Build.0 = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252B}.Release|x64.Build.0 = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252B}.Release|x64.ActiveCfg = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252B}.Release|Win32.Build.0 = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252B}.Release|Win32.ActiveCfg = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252B}.Debug|x64.Build.0 = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252B}.Debug|x64.ActiveCfg = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252B}.Debug|Win32.Build.0 = Debug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252B}.Debug|Win32.ActiveCfg = Debug|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_do/parallel_preorder/parallel_preorder.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_do/parallel_preorder/parallel_preorder.cpp deleted file mode 100644 index 720238075..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_do/parallel_preorder/parallel_preorder.cpp +++ /dev/null @@ -1,64 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#include "tbb/parallel_do.h" -#include -#include -#include "Graph.h" - - -class Body { -public: - Body() {}; - - //------------------------------------------------------------------------ - // Following signatures are required by parallel_do - //------------------------------------------------------------------------ - typedef Cell* argument_type; - - void operator()( Cell* c, tbb::parallel_do_feeder& feeder ) const { - c->update(); - // Restore ref_count in preparation for subsequent traversal. - c->ref_count = ArityOfOp[c->op]; - for( size_t k=0; ksuccessor.size(); ++k ) { - Cell* successor = c->successor[k]; - // ref_count is used for inter-task synchronization. - // Correctness checking tools might not take this into account, and report - // data races between different tasks, that are actually synchronized. - if( 0 == --(successor->ref_count) ) { - feeder.add( successor ); - } - } - } -}; - -void ParallelPreorderTraversal( const std::vector& root_set ) { - tbb::parallel_do(root_set.begin(), root_set.end(),Body()); -} - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_do/parallel_preorder/xcode/parallel_preorder.xcodeproj/project.pbxproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_do/parallel_preorder/xcode/parallel_preorder.xcodeproj/project.pbxproj deleted file mode 100644 index 6773133b2..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_do/parallel_preorder/xcode/parallel_preorder.xcodeproj/project.pbxproj +++ /dev/null @@ -1,317 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 05593AA80B8F55D500DE73AB /* Graph.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 05593AA40B8F55D500DE73AB /* Graph.cpp */; }; - 05593AAB0B8F55D500DE73AB /* parallel_preorder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 05593AA70B8F55D500DE73AB /* parallel_preorder.cpp */; }; - A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; }; - A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; }; - EAD808FA13051AB300FE8C7C /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EAD808F913051AB300FE8C7C /* main.cpp */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 8DD76F690486A84900D96B5E /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 12; - dstPath = ""; - dstSubfolderSpec = 16; - files = ( - A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 05593AA40B8F55D500DE73AB /* Graph.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Graph.cpp; path = ../Graph.cpp; sourceTree = SOURCE_ROOT; }; - 05593AA50B8F55D500DE73AB /* Graph.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = Graph.h; path = ../Graph.h; sourceTree = SOURCE_ROOT; }; - 05593AA60B8F55D500DE73AB /* Matrix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = Matrix.h; path = ../Matrix.h; sourceTree = SOURCE_ROOT; }; - 05593AA70B8F55D500DE73AB /* parallel_preorder.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = parallel_preorder.cpp; path = ../parallel_preorder.cpp; sourceTree = SOURCE_ROOT; }; - 8DD76F6C0486A84900D96B5E /* parallel_preorder */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = parallel_preorder; sourceTree = BUILT_PRODUCTS_DIR; }; - A1F593B30B8F06F900073279 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = ../../../../lib/libtbb.dylib; sourceTree = SOURCE_ROOT; }; - EAD808F913051AB300FE8C7C /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = ../main.cpp; sourceTree = SOURCE_ROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8DD76F660486A84900D96B5E /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 08FB7794FE84155DC02AAC07 /* parallel_preorder */ = { - isa = PBXGroup; - children = ( - 08FB7795FE84155DC02AAC07 /* Source */, - A1F593B20B8F06F900073279 /* External Frameworks and Libraries */, - 1AB674ADFE9D54B511CA2CBB /* Products */, - ); - name = parallel_preorder; - sourceTree = ""; - }; - 08FB7795FE84155DC02AAC07 /* Source */ = { - isa = PBXGroup; - children = ( - EAD808F913051AB300FE8C7C /* main.cpp */, - 05593AA70B8F55D500DE73AB /* parallel_preorder.cpp */, - 05593AA40B8F55D500DE73AB /* Graph.cpp */, - 05593AA50B8F55D500DE73AB /* Graph.h */, - 05593AA60B8F55D500DE73AB /* Matrix.h */, - ); - name = Source; - sourceTree = ""; - }; - 1AB674ADFE9D54B511CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8DD76F6C0486A84900D96B5E /* parallel_preorder */, - ); - name = Products; - sourceTree = ""; - }; - A1F593B20B8F06F900073279 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - A1F593B30B8F06F900073279 /* libtbb.dylib */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8DD76F620486A84900D96B5E /* parallel_preorder */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "parallel_preorder" */; - buildPhases = ( - 8DD76F640486A84900D96B5E /* Sources */, - 8DD76F660486A84900D96B5E /* Frameworks */, - 8DD76F690486A84900D96B5E /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = parallel_preorder; - productInstallPath = "$(HOME)/bin"; - productName = parallel_preorder; - productReference = 8DD76F6C0486A84900D96B5E /* parallel_preorder */; - productType = "com.apple.product-type.tool"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 08FB7793FE84155DC02AAC07 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0410; - }; - buildConfigurationList = 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "parallel_preorder" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - en, - ); - mainGroup = 08FB7794FE84155DC02AAC07 /* parallel_preorder */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8DD76F620486A84900D96B5E /* parallel_preorder */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXSourcesBuildPhase section */ - 8DD76F640486A84900D96B5E /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 05593AA80B8F55D500DE73AB /* Graph.cpp in Sources */, - 05593AAB0B8F55D500DE73AB /* parallel_preorder.cpp in Sources */, - EAD808FA13051AB300FE8C7C /* main.cpp in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 1DEB923208733DC60010E9CD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = parallel_preorder; - ZERO_LINK = NO; - }; - name = Debug; - }; - 1DEB923308733DC60010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = parallel_preorder; - ZERO_LINK = NO; - }; - name = Release; - }; - 1DEB923608733DC60010E9CD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Debug; - }; - 1DEB923708733DC60010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Release; - }; - A1F593C60B8F0E6E00073279 /* Debug64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = parallel_preorder; - ZERO_LINK = NO; - }; - name = Debug64; - }; - A1F593C70B8F0E6E00073279 /* Release64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = parallel_preorder; - ZERO_LINK = NO; - }; - name = Release64; - }; - A1F593C80B8F0E6E00073279 /* Debug64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "-m64", - ); - OTHER_LDFLAGS = "-m64"; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Debug64; - }; - A1F593C90B8F0E6E00073279 /* Release64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "-m64", - ); - OTHER_LDFLAGS = "-m64"; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Release64; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "parallel_preorder" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB923208733DC60010E9CD /* Debug */, - A1F593C60B8F0E6E00073279 /* Debug64 */, - 1DEB923308733DC60010E9CD /* Release */, - A1F593C70B8F0E6E00073279 /* Release64 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "parallel_preorder" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB923608733DC60010E9CD /* Debug */, - A1F593C80B8F0E6E00073279 /* Debug64 */, - 1DEB923708733DC60010E9CD /* Release */, - A1F593C90B8F0E6E00073279 /* Release64 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/Makefile b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/Makefile deleted file mode 100644 index 9b56f3a0d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/Makefile +++ /dev/null @@ -1,54 +0,0 @@ -# Copyright 2005-2014 Intel Corporation. All Rights Reserved. -# -# This file is part of Threading Building Blocks. -# -# Threading Building Blocks is free software; you can redistribute it -# and/or modify it under the terms of the GNU General Public License -# version 2 as published by the Free Software Foundation. -# -# Threading Building Blocks is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied warranty -# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Threading Building Blocks; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# -# As a special exception, you may use this file as part of a free software -# library without restriction. Specifically, if other files instantiate -# templates or use macros or inline functions from this file, or you compile -# this file and link it with other files to produce an executable, this -# file does not by itself cause the resulting executable to be covered by -# the GNU General Public License. This exception does not however -# invalidate any other reasons why the executable file might be covered by -# the GNU General Public License. - -# Common Makefile that builds and runs example. - -# Just specify your program basename -PROG=game_of_life -ARGS=2:4 -t 5 -LIGHT_ARGS=1:2 -t 5 - -# Trying to find if icl.exe is set -CXX1 = $(TBB_CXX)- -CXX2 = $(CXX1:icl.exe-=icl.exe) -CXX = $(CXX2:-=cl.exe) - -# The C++ compiler options -MYCXXFLAGS = /TP /EHsc /W3 /nologo /D _CONSOLE /D _MBCS /D WIN32 /D _CRT_SECURE_NO_DEPRECATE $(CXXFLAGS) -MYLDFLAGS =/INCREMENTAL:NO /NOLOGO /DEBUG /FIXED:NO $(LDFLAGS) - -all: release test -release: - $(CXX) ./src/Evolution.cpp ./src/Game_of_life.cpp ./src/Update_state.cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe -debug: - $(CXX) ./src/Evolution.cpp ./src/Game_of_life.cpp ./src/Update_state.cpp /MDd /Od /Zi /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe -clean: - @cmd.exe /C del $(PROG).exe *.obj *.?db *.manifest -test: - $(PROG) $(ARGS) -light_test: - $(PROG) $(LIGHT_ARGS) - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/index.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/index.html deleted file mode 100644 index 5cd33faef..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/index.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -

    Overview

    -The "Game of life" example demonstrates interoperability of TBB and .NET. -
    This program runs 2 simultaneous instances of the classic Conway's "Game of Life". -One of these instances uses serial calculations to update the board. The other one calculates in parallel with TBB. -The visualization is written in managed C++ and uses .NET CLR. - -

    Source Files

    -
    -
    Form1.h, Board.h -
    Header files for GUI classes. -
    Evolution.h, Evolution.cpp -
    Contain class hierarchy to implement game evolution in serial and parallel. -
    Update_state.cpp -
    Implements 2 approaches for calculating steps in the program: with the use of SSE intrinsics, and ordinary C++ code. -
    Game_of_life.cpp -
    Contains program entry point and other source not related to logical structure of the example. -
    Makefile -
    Makefile for building example. -
    - -

    Directories

    -
    -
    src -
    Contains source files mentioned above. -
    msvs -
    Contains Microsoft* Visual Studio* 2005 workspace for building and running the example (Windows* systems only). -
    xcode -
    Contains Xcode* IDE workspace for building and running the example (OS X* systems only). -
    - -

    To Build

    -General build directions can be found here. -

    - -

    Usage

    -
    -For Windows* systems, Microsoft* Visual Studio* projects are provided for each of the above versions. -
    - -
    -Up to parent directory -

    -Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

    -Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

    -* Other names and brands may be claimed as the property of others. - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/msvs/Game_of_life.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/msvs/Game_of_life.sln deleted file mode 100644 index 8bc8825db..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/msvs/Game_of_life.sln +++ /dev/null @@ -1,37 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Game of Life", "Game_of_life.vcproj", "{731C7E2E-2766-41D9-96FC-0A3548973803}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug(console)|Win32 = Debug(console)|Win32 - Debug(console)|x64 = Debug(console)|x64 - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release(console)|Win32 = Release(console)|Win32 - Release(console)|x64 = Release(console)|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {731C7E2E-2766-41D9-96FC-0A3548973803}.Debug(console)|Win32.ActiveCfg = Debug(console)|Win32 - {731C7E2E-2766-41D9-96FC-0A3548973803}.Debug(console)|Win32.Build.0 = Debug(console)|Win32 - {731C7E2E-2766-41D9-96FC-0A3548973803}.Debug(console)|x64.ActiveCfg = Debug(console)|x64 - {731C7E2E-2766-41D9-96FC-0A3548973803}.Debug(console)|x64.Build.0 = Debug(console)|x64 - {731C7E2E-2766-41D9-96FC-0A3548973803}.Debug|Win32.ActiveCfg = Debug|Win32 - {731C7E2E-2766-41D9-96FC-0A3548973803}.Debug|Win32.Build.0 = Debug|Win32 - {731C7E2E-2766-41D9-96FC-0A3548973803}.Debug|x64.ActiveCfg = Debug|x64 - {731C7E2E-2766-41D9-96FC-0A3548973803}.Debug|x64.Build.0 = Debug|x64 - {731C7E2E-2766-41D9-96FC-0A3548973803}.Release(console)|Win32.ActiveCfg = Release(console)|Win32 - {731C7E2E-2766-41D9-96FC-0A3548973803}.Release(console)|Win32.Build.0 = Release(console)|Win32 - {731C7E2E-2766-41D9-96FC-0A3548973803}.Release(console)|x64.ActiveCfg = Release(console)|x64 - {731C7E2E-2766-41D9-96FC-0A3548973803}.Release(console)|x64.Build.0 = Release(console)|x64 - {731C7E2E-2766-41D9-96FC-0A3548973803}.Release|Win32.ActiveCfg = Release|Win32 - {731C7E2E-2766-41D9-96FC-0A3548973803}.Release|Win32.Build.0 = Release|Win32 - {731C7E2E-2766-41D9-96FC-0A3548973803}.Release|x64.ActiveCfg = Release|x64 - {731C7E2E-2766-41D9-96FC-0A3548973803}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/msvs/Game_of_life.vcproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/msvs/Game_of_life.vcproj deleted file mode 100644 index 4d6c8391b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/msvs/Game_of_life.vcproj +++ /dev/null @@ -1,794 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/msvs/app.ico b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/msvs/app.ico deleted file mode 100644 index 3a5525fd7..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/msvs/app.ico and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/msvs/app.rc b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/msvs/app.rc deleted file mode 100644 index 807aa8966..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/msvs/app.rc +++ /dev/null @@ -1,63 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources - - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon placed first or with lowest ID value becomes application icon - -LANGUAGE 9, 1 -#pragma code_page(1252) -1 ICON "app.ico" - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" - "\0" -END - -2 TEXTINCLUDE -BEGIN - "#include ""afxres.h""\r\n" - "\0" -END - -3 TEXTINCLUDE -BEGIN - "\0" -END - -#endif // APSTUDIO_INVOKED - -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/msvs/resource.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/msvs/resource.h deleted file mode 100644 index d5ac7c42a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/msvs/resource.h +++ /dev/null @@ -1,3 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by app.rc diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/src/AssemblyInfo.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/src/AssemblyInfo.cpp deleted file mode 100644 index 559a5c90d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/src/AssemblyInfo.cpp +++ /dev/null @@ -1,66 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -using namespace System; -using namespace System::Reflection; -using namespace System::Runtime::CompilerServices; -using namespace System::Runtime::InteropServices; -using namespace System::Security::Permissions; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly:AssemblyTitleAttribute("Automata")]; -[assembly:AssemblyDescriptionAttribute("")]; -[assembly:AssemblyConfigurationAttribute("")]; -[assembly:AssemblyCompanyAttribute("")]; -[assembly:AssemblyProductAttribute("Automata")]; -[assembly:AssemblyCopyrightAttribute("Copyright (c) 2007")]; -[assembly:AssemblyTrademarkAttribute("")]; -[assembly:AssemblyCultureAttribute("")]; - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the value or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly:AssemblyVersionAttribute("1.0.*")]; - -[assembly:ComVisible(false)]; - -[assembly:CLSCompliantAttribute(true)]; - -[assembly:SecurityPermission(SecurityAction::RequestMinimum, UnmanagedCode = true)]; diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/src/Board.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/src/Board.h deleted file mode 100644 index a10d4ef75..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/src/Board.h +++ /dev/null @@ -1,115 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __BOARD_H__ -#define __BOARD_H__ - -#define WIN32_LEAN_AND_MEAN - -#ifndef _CONSOLE -#include - -using namespace System; -using namespace System::ComponentModel; -using namespace System::Collections; -using namespace System::Windows::Forms; -using namespace System::Data; -using namespace System::Drawing; -#define LabelPtr Label^ -#define BoardPtr Board^ -#else -#define LabelPtr int* -#define BoardPtr Board* -#endif - -struct Matrix -{ - int width; - int height; - char* data; -}; - -#ifndef _CONSOLE -public ref class Board : public System::Windows::Forms::UserControl -#else -class Board -#endif - { - public: - Board(int width, int height, int squareSize, LabelPtr counter); - virtual ~Board(); - void seed(int s); - void seed(const BoardPtr s); -#ifndef _CONSOLE - protected: - virtual void OnPaint(PaintEventArgs^ e) override; - void Board::draw(Graphics^ g); - - private: - System::ComponentModel::Container ^components; - -#pragma region Windows Form Designer generated code - void InitializeComponent(void) - { - this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; - } -#pragma endregion - - private: delegate void drawDelegate(Int32); - public: - //! Called from the Evolution thread - void draw( Int32 nCurIteration ) - { - if (this->InvokeRequired) - { - drawDelegate^ d = gcnew drawDelegate(this, &Board::draw); - IAsyncResult^ result = BeginInvoke(d, nCurIteration); - EndInvoke(result); - return; - } - m_counter->Text = nCurIteration.ToString(); - Invalidate(); - } -#endif - public: - Matrix *m_matrix; - - private: -#ifndef _CONSOLE - SolidBrush^ m_occupiedBrush; - SolidBrush^ m_freeBrush; - Graphics^ m_graphics; - Graphics^ m_mem_dc; - Bitmap^ m_bmp; -#endif - int m_width; - int m_height; - int m_squareSize; - LabelPtr m_counter; - }; -#endif diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/src/Evolution.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/src/Evolution.cpp deleted file mode 100644 index 8cc119794..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/src/Evolution.cpp +++ /dev/null @@ -1,251 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - Evolution.cpp: implementation file for evolution classes; evolution - classes do looped evolution of patterns in a defined - 2 dimensional space -*/ - -#include "Evolution.h" -#include "Board.h" - -#ifdef USE_SSE -#define GRAIN_SIZE 14 -#else -#define GRAIN_SIZE 4000 -#endif -#define TIME_SLICE 330 - -/* - Evolution -*/ - -/** - Evolution::UpdateMatrix() - moves the calculated destination data - to the source data block. No destination zeroing is required since it will - be completely overwritten during the next calculation cycle. -**/ -void Evolution::UpdateMatrix() -{ - memcpy(m_matrix->data, m_dest, m_size); -} - -/* - SequentialEvolution -*/ - -//! SequentialEvolution::Run - begins looped evolution -#ifndef _CONSOLE -void SequentialEvolution::Run() -{ -#else -void SequentialEvolution::Run(double execution_time, int nthread) -{ - printf("Starting game (Sequential evolution)\n"); -#endif - - m_nIteration = 0; - m_serial_time = 0; - tbb::tick_count t0 = tbb::tick_count::now(); - while (!m_done) - { - if( !is_paused ) - { - tbb::tick_count t = tbb::tick_count::now(); - Step(); - tbb::tick_count t1 = tbb::tick_count::now(); - ++m_nIteration; - double work_time = (t1-t0).seconds(); -#ifndef _CONSOLE - if ( work_time * 1000 < TIME_SLICE ) - continue; - m_serial_time += work_time; - m_board->draw(m_nIteration); -#else - m_serial_time += work_time; -#endif - } - //! Let the parallel algorithm work uncontended almost the same time - //! as the serial one. See ParallelEvolution::Run() as well. -#ifndef _CONSOLE - m_evt_start_parallel->Set(); - m_evt_start_serial->WaitOne(); - t0 = tbb::tick_count::now(); -#else - t0 = tbb::tick_count::now(); - if(m_serial_time > execution_time) - { - printf("iterations count = %d time = %g\n", m_nIteration, m_serial_time); - break; - } -#endif - } -} - -//! SequentialEvolution::Step() - override of step method -void SequentialEvolution::Step() -{ - if( !is_paused ) - { -#ifdef USE_SSE - UpdateState(m_matrix, m_matrix->data, 0, m_matrix->height); -#else - UpdateState(m_matrix, m_dest, 0, (m_matrix->width * m_matrix->height)-1); - UpdateMatrix(); -#endif - } -} - -/* - ParallelEvolution -*/ - -//! SequentialEvolution::Run - begins looped evolution -#ifndef _CONSOLE -void ParallelEvolution::Run() -{ -#else -void ParallelEvolution::Run(double execution_time, int nthread) -{ - if(nthread == tbb::task_scheduler_init::automatic) - printf("Starting game (Parallel evolution for automatic number of thread(s))\n"); - else - printf("Starting game (Parallel evolution for %d thread(s))\n", nthread); -#endif - - m_nIteration = 0; - m_parallel_time = 0; - -#ifndef _CONSOLE - //! start task scheduler as necessary - if (m_pInit == NULL) - { - m_pInit = new tbb::task_scheduler_init(); - } - m_evt_start_parallel->WaitOne(); -#else - tbb::task_scheduler_init init(nthread); -#endif - - double work_time = m_serial_time; - tbb::tick_count t0 = tbb::tick_count::now(); - - while (!m_done) - { - if( !is_paused ) - { - tbb::tick_count t = tbb::tick_count::now(); - Step(); - tbb::tick_count t1 = tbb::tick_count::now(); - ++m_nIteration; - double real_work_time = (t1-t0).seconds(); -#ifndef _CONSOLE - if ( real_work_time < work_time ) - continue; - m_parallel_time += real_work_time; - m_board->draw(m_nIteration); -#else - m_parallel_time += real_work_time; -#endif - } - //! Let the serial algorithm work the same time as the parallel one. -#ifndef _CONSOLE - m_evt_start_serial->Set(); - m_evt_start_parallel->WaitOne(); - - work_time = m_serial_time - m_parallel_time; - t0 = tbb::tick_count::now(); -#else - t0 = tbb::tick_count::now(); - if(m_parallel_time > execution_time) - { - printf("iterations count = %d time = %g\n", m_nIteration, m_parallel_time); - init.terminate(); - break; - } -#endif - } -} - -/** - class tbb_parallel_task - - TBB requires a class for parallel loop implementations. The actual - loop "chunks" are performed using the () operator of the class. - The blocked_range contains the range to calculate. Please see the - TBB documentation for more information. -**/ -#ifndef _CONSOLE -public class tbb_parallel_task -#else -class tbb_parallel_task -#endif -{ -public: - static void set_values (Matrix* source, char* dest) - { - m_source = source; - m_dest = dest; - return; - } - - void operator()( const tbb::blocked_range& r ) const - { - int begin = (int)r.begin(); //! capture lower range number for this chunk - int end = (int)r.end(); //! capture upper range number for this chunk - UpdateState(m_source, m_dest, begin, end); - } - - tbb_parallel_task () {} - -private: - static Matrix* m_source; - static char* m_dest; -}; - -Matrix* tbb_parallel_task::m_source; -char* tbb_parallel_task::m_dest; - -//! ParallelEvolution::Step() - override of Step method -void ParallelEvolution::Step() -{ - size_t begin = 0; //! beginning cell position -#ifdef USE_SSE - size_t end = m_matrix->height; //! ending cell position -#else - size_t end = m_size-1; //! ending cell position -#endif - - //! set matrix pointers - tbb_parallel_task::set_values(m_matrix, m_dest); - - //! do calculation loop - parallel_for (tbb::blocked_range (begin, end, GRAIN_SIZE), tbb_parallel_task()); - UpdateMatrix(); -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/src/Evolution.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/src/Evolution.h deleted file mode 100644 index 0a7871e47..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/src/Evolution.h +++ /dev/null @@ -1,203 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/** - Evolution.h: Header file for evolution classes; evolution classes do - looped evolution of patterns in a defined 2 dimensional space -**/ - -#ifndef __EVOLUTION_H__ -#define __EVOLUTION_H__ - -#include "Board.h" -#include -#include -#include - -#define WIN32_LEAN_AND_MEAN - -#include "tbb/task_scheduler_init.h" -#include "tbb/blocked_range.h" -#include "tbb/parallel_for.h" -#include "tbb/tick_count.h" - -#ifndef _CONSOLE -#include -using namespace System::Threading; -#else -typedef unsigned int Int32; -#endif - -void UpdateState(Matrix * m_matrix, char * dest ,int begin, int end); - -/** - class Evolution - base class for SequentialEvolution and ParallelEvolution -**/ -#ifndef _CONSOLE -public ref class Evolution abstract -#else -class Evolution -#endif -{ -public: - Evolution( Matrix *m, //! beginning matrix including initial pattern - BoardPtr board //! the board to update - ) : m_matrix(m), m_board(board), - m_size(m_matrix->height * m_matrix->width), m_done(false) - { - //! allocate memory for second matrix data block - m_dest = new char[m_size]; - is_paused = false; -#ifdef _CONSOLE - m_serial_time = 0; -#endif - } - - virtual ~Evolution() - { - delete[] m_dest; - } - - //! Run() - begins looped evolution -#ifndef _CONSOLE - virtual void Run() = 0; -#else - virtual void Run(double execution_time, int nthread) = 0; -#endif - - //! Quit() - tell the thread to terminate - virtual void Quit() { m_done = true; } - - //! Step() - performs a single evolutionary generation computation on the game matrix - virtual void Step() = 0; - - //! SetPause() - change condition of variable is_paused - virtual void SetPause(bool condition) - { - if ( condition == true ) - is_paused = true; - else - is_paused = false; - } - -protected: - /** - UpdateMatrix() - moves the previous destination data to the source - data block and zeros out destination. - **/ - void UpdateMatrix(); - -protected: - Matrix* m_matrix; //! Pointer to initial matrix - char* m_dest; //! Pointer to calculation destination data - BoardPtr m_board; //! The game board to update - int m_size; //! size of the matrix data block - volatile bool m_done; //! a flag used to terminate the thread - Int32 m_nIteration; //! current calculation cycle index - volatile bool is_paused; //! is needed to perform next iteration - - //! Calculation time of the sequential version (since the start), seconds. - /** - This member is updated by the sequential version and read by parallel, - so no synchronization is necessary. - **/ -#ifndef _CONSOLE - static volatile double m_serial_time = 0; - - static System::Threading::AutoResetEvent ^m_evt_start_serial = gcnew AutoResetEvent(false), - ^m_evt_start_parallel = gcnew AutoResetEvent(false); -#else - double m_serial_time; -#endif -}; - -/** - class SequentialEvolution - derived from Evolution - calculate life generations serially -**/ -#ifndef _CONSOLE -public ref class SequentialEvolution: public Evolution -#else -class SequentialEvolution: public Evolution -#endif -{ -public: - SequentialEvolution(Matrix *m, BoardPtr board) - : Evolution(m, board) - {} -#ifndef _CONSOLE - virtual void Run() override; - virtual void Step() override; -#else - virtual void Run(double execution_time, int nthread); - virtual void Step(); -#endif - -}; - -/** - class ParallelEvolution - derived from Evolution - calculate life generations - in parallel using Intel(R) TBB -**/ -#ifndef _CONSOLE -public ref class ParallelEvolution: public Evolution -#else -class ParallelEvolution: public Evolution -#endif -{ -public: - - ParallelEvolution(Matrix *m, BoardPtr board) - : Evolution(m, board), - m_parallel_time(0) - { - // instantiate a task_scheduler_init object and save a pointer to it - m_pInit = NULL; - } - - ~ParallelEvolution() - { - //! delete task_scheduler_init object - if (m_pInit != NULL) - delete m_pInit; - } -#ifndef _CONSOLE - virtual void Run() override; - virtual void Step() override; -#else - virtual void Run(double execution_time, int nthread); - virtual void Step(); -#endif - - -private: - tbb::task_scheduler_init* m_pInit; - - double m_parallel_time; -}; - -#endif diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/src/Form1.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/src/Form1.h deleted file mode 100644 index 708928dc3..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/src/Form1.h +++ /dev/null @@ -1,314 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef _CONSOLE -#ifndef __FORM1_H__ -#define __FORM1_H__ - -#include -#include "Board.h" -#include "Evolution.h" - -#define BOARD_SQUARE_SIZE 2 - - using namespace System; - using namespace System::ComponentModel; - using namespace System::Collections; - using namespace System::Windows::Forms; - using namespace System::Data; - using namespace System::Drawing; - - public ref class Form1 : public System::Windows::Forms::Form - { - public: - Form1(void) - { - InitializeComponent(); - - FormBorderStyle = System::Windows::Forms::FormBorderStyle::FixedDialog; - ClientSize = System::Drawing::Size(1206, 600+m_ribbonHeight+menuStrip1->Height); - - int boardWidth = (ClientRectangle.Width/2-m_sepWidth/2)/BOARD_SQUARE_SIZE; - int boardHeight = (ClientRectangle.Height-menuStrip1->Height-m_ribbonHeight)/BOARD_SQUARE_SIZE; - - m_board1 = gcnew Board(boardWidth, boardHeight, BOARD_SQUARE_SIZE, seqGen); - m_board2 = gcnew Board(boardWidth, boardHeight, BOARD_SQUARE_SIZE, parGen); - - Controls->Add(m_board1); - Controls->Add(m_board2); - - m_board1->Location = System::Drawing::Point(2, m_ribbonHeight + menuStrip1->Height); - m_board2->Location = System::Drawing::Point(2 + boardWidth*BOARD_SQUARE_SIZE + m_sepWidth/2, m_ribbonHeight + menuStrip1->Height); - - m_seq = gcnew SequentialEvolution(m_board1->m_matrix, m_board1); - m_par = gcnew ParallelEvolution(m_board2->m_matrix, m_board2); - - m_seqThread = gcnew Thread(gcnew ThreadStart(m_seq, &SequentialEvolution::Run)); - m_parThread = gcnew Thread(gcnew ThreadStart(m_par, &ParallelEvolution::Run)); - - Thread::CurrentThread->Priority = ThreadPriority::AboveNormal; - - m_suspend = true; - } - protected: - ~Form1() - { - if (components) - { - delete components; - } - } - private: System::Windows::Forms::MenuStrip^ menuStrip1; - private: System::Windows::Forms::ToolStripMenuItem^ fileToolStripMenuItem; - private: System::Windows::Forms::ToolStripMenuItem^ exitToolStripMenuItem; - private: System::Windows::Forms::ToolStripMenuItem^ gameToolStripMenuItem; - private: System::Windows::Forms::ToolStripMenuItem^ seedToolStripMenuItem; - private: System::Windows::Forms::ToolStripMenuItem^ runToolStripMenuItem; - private: System::Windows::Forms::ToolStripMenuItem^ pauseToolStripMenuItem; - private: Board^ m_board1; - private: Board^ m_board2; - private: System::Windows::Forms::Label^ Sequential; - private: System::Windows::Forms::Label^ label1; - private: static const int m_sepWidth = 5; - private: static const int m_ribbonHeight = 26; - private: SequentialEvolution^ m_seq; - private: ParallelEvolution^ m_par; - private: Thread^ m_seqThread; - private: Thread^ m_parThread; - private: System::Windows::Forms::Label^ seqGen; - private: System::Windows::Forms::Label^ parGen; - private: bool m_suspend; - - private: - System::ComponentModel::Container ^components; - -#pragma region Windows Form Designer generated code - void InitializeComponent(void) - { - this->menuStrip1 = (gcnew System::Windows::Forms::MenuStrip()); - this->fileToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem()); - this->exitToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem()); - this->gameToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem()); - this->seedToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem()); - this->runToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem()); - this->pauseToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem()); - this->Sequential = (gcnew System::Windows::Forms::Label()); - this->label1 = (gcnew System::Windows::Forms::Label()); - this->seqGen = (gcnew System::Windows::Forms::Label()); - this->parGen = (gcnew System::Windows::Forms::Label()); - this->menuStrip1->SuspendLayout(); - this->SuspendLayout(); - // - // menuStrip1 - // - this->menuStrip1->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(2) - {this->fileToolStripMenuItem, this->gameToolStripMenuItem}); - this->menuStrip1->Location = System::Drawing::Point(0, 0); - this->menuStrip1->Name = L"menuStrip1"; - this->menuStrip1->Padding = System::Windows::Forms::Padding(8, 2, 0, 2); - this->menuStrip1->Size = System::Drawing::Size(1600, 26); - this->menuStrip1->TabIndex = 0; - this->menuStrip1->Text = L"menuStrip1"; - this->menuStrip1->ItemClicked += gcnew System::Windows::Forms::ToolStripItemClickedEventHandler(this, &Form1::menuStrip1_ItemClicked); - // - // fileToolStripMenuItem - // - this->fileToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(1) {this->exitToolStripMenuItem}); - this->fileToolStripMenuItem->Name = L"fileToolStripMenuItem"; - this->fileToolStripMenuItem->Size = System::Drawing::Size(40, 22); - this->fileToolStripMenuItem->Text = L"File"; - // - // exitToolStripMenuItem - // - this->exitToolStripMenuItem->Name = L"exitToolStripMenuItem"; - this->exitToolStripMenuItem->Size = System::Drawing::Size(99, 22); - this->exitToolStripMenuItem->Text = L"Exit"; - this->exitToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::OnExit); - // - // gameToolStripMenuItem - // - this->gameToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(3) {this->seedToolStripMenuItem, - this->runToolStripMenuItem, this->pauseToolStripMenuItem}); - this->gameToolStripMenuItem->Name = L"gameToolStripMenuItem"; - this->gameToolStripMenuItem->Size = System::Drawing::Size(59, 22); - this->gameToolStripMenuItem->Text = L"Game"; - // - // seedToolStripMenuItem - // - this->seedToolStripMenuItem->Name = L"seedToolStripMenuItem"; - this->seedToolStripMenuItem->Size = System::Drawing::Size(115, 22); - this->seedToolStripMenuItem->Text = L"Seed"; - this->seedToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::OnSeed); - // - // runToolStripMenuItem - // - this->runToolStripMenuItem->Enabled = false; - this->runToolStripMenuItem->Name = L"runToolStripMenuItem"; - this->runToolStripMenuItem->Size = System::Drawing::Size(115, 22); - this->runToolStripMenuItem->Text = L"Run"; - this->runToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::OnRun); - // - // pauseToolStripMenuItem - // - this->pauseToolStripMenuItem->Enabled = false; - this->pauseToolStripMenuItem->Name = L"pauseToolStripMenuItem"; - this->pauseToolStripMenuItem->Size = System::Drawing::Size(115, 22); - this->pauseToolStripMenuItem->Text = L"Pause"; - this->pauseToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::OnPauseResume); - // - // Sequential - // - this->Sequential->AutoSize = true; - this->Sequential->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point, - static_cast(0))); - this->Sequential->Location = System::Drawing::Point(12, 32); - this->Sequential->Margin = System::Windows::Forms::Padding(4, 0, 4, 0); - this->Sequential->Name = L"Sequential"; - this->Sequential->Size = System::Drawing::Size(239, 18); - this->Sequential->TabIndex = 1; - this->Sequential->Text = L"Sequential Algorithm generation:"; - // - // label1 - // - this->label1->AutoSize = true; - this->label1->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point, - static_cast(0))); - this->label1->Location = System::Drawing::Point(813, 32); - this->label1->Margin = System::Windows::Forms::Padding(4, 0, 4, 0); - this->label1->Name = L"label1"; - this->label1->Size = System::Drawing::Size(219, 18); - this->label1->TabIndex = 2; - this->label1->Text = L"Parallel Algorithm generation: "; - // - // seqGen - // - this->seqGen->AutoSize = true; - this->seqGen->Location = System::Drawing::Point(289, 35); - this->seqGen->Margin = System::Windows::Forms::Padding(4, 0, 4, 0); - this->seqGen->Name = L"seqGen"; - this->seqGen->Size = System::Drawing::Size(16, 17); - this->seqGen->TabIndex = 3; - this->seqGen->Text = L"0"; - // - // parGen - // - this->parGen->AutoSize = true; - this->parGen->Location = System::Drawing::Point(1068, 35); - this->parGen->Margin = System::Windows::Forms::Padding(4, 0, 4, 0); - this->parGen->Name = L"parGen"; - this->parGen->Size = System::Drawing::Size(16, 17); - this->parGen->TabIndex = 4; - this->parGen->Text = L"0"; - // - // Form1 - // - this->AutoScaleDimensions = System::Drawing::SizeF(8, 16); - this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; - this->ClientSize = System::Drawing::Size(1600, 738); - this->Controls->Add(this->parGen); - this->Controls->Add(this->seqGen); - this->Controls->Add(this->label1); - this->Controls->Add(this->Sequential); - this->Controls->Add(this->menuStrip1); - this->MainMenuStrip = this->menuStrip1; - this->Margin = System::Windows::Forms::Padding(4); - this->MaximizeBox = false; - this->Name = L"Form1"; - this->Text = L"Game of Life"; - this->menuStrip1->ResumeLayout(false); - this->menuStrip1->PerformLayout(); - this->ResumeLayout(false); - this->PerformLayout(); - - } -#pragma endregion - protected: - void CloseApp () - { - m_seq->Quit(); - m_par->Quit(); - //! Perform a very ungracious exit, should coordinate the threads - System::Environment::Exit(0); - } - - protected: - virtual void OnPaint(PaintEventArgs^ e) override - { - } - - virtual void OnFormClosing(FormClosingEventArgs^ e) override - { - CloseApp(); - } - - void OnExit(System::Object^ sender, System::EventArgs^ e) - { - CloseApp(); - } - - void OnSeed(System::Object^ sender, System::EventArgs^ e) - { - this->seedToolStripMenuItem->Enabled = false; - this->runToolStripMenuItem->Enabled = true; - time_t now = time(NULL); - this->m_board1->seed((int)now); - this->m_board2->seed(this->m_board1); - this->Invalidate(); - } - - void OnRun(System::Object^ sender, System::EventArgs^ e) - { - this->runToolStripMenuItem->Enabled = false; - this->pauseToolStripMenuItem->Enabled = true; - m_seqThread->Start(); - m_parThread->Start(); - } - - void OnPauseResume(System::Object^ sender, System::EventArgs^ e) - { - if (m_suspend) - { - m_seq->SetPause(true); - m_par->SetPause(true); - this->pauseToolStripMenuItem->Text = L"Resume"; - } - else - { - m_seq->SetPause(false); - m_par->SetPause(false); - this->pauseToolStripMenuItem->Text = L"Pause"; - } - m_suspend = !m_suspend; - } - - private: - System::Void menuStrip1_ItemClicked(System::Object^ sender, System::Windows::Forms::ToolStripItemClickedEventArgs^ e) - {} -}; -#endif -#endif diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/src/Game_of_life.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/src/Game_of_life.cpp deleted file mode 100644 index 07320590c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/src/Game_of_life.cpp +++ /dev/null @@ -1,238 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - Game_of_life.cpp : - main project file. -*/ -#include "Board.h" -#include "Form1.h" - -#define WIN32_LEAN_AND_MEAN - -#ifndef _CONSOLE -#include -#else -#include -#include -#include -#include "Evolution.h" - -#define BOARD_SQUARE_SIZE 2 - -int low; //! lower range limit of threads -int high; //! high range limit of threads -double execution_time; //! time for game of life iterations -#endif - -Board::Board(int width, int height, int squareSize, LabelPtr counter) -: m_width(width), m_height(height), m_squareSize(squareSize), m_counter(counter) -{ -#ifndef _CONSOLE - InitializeComponent(); - DoubleBuffered = true; - - this->Width = m_squareSize*width; - this->Height = m_squareSize*height; -#endif - m_matrix = new Matrix(); - m_matrix->width = width; - m_matrix->height = height; - m_matrix->data = new char[width*height]; - memset(m_matrix->data, 0, width*height); -#ifndef _CONSOLE - m_occupiedBrush = gcnew SolidBrush(Color::Black); - m_freeBrush = gcnew SolidBrush(Color::LightGray); - - m_graphics = CreateGraphics(); - m_bmp = gcnew Bitmap(Width, Height); - m_mem_dc = Graphics::FromImage(m_bmp); -#endif -} - -Board::~Board() -{ -#ifndef _CONSOLE - if (components) - { - delete components; - } -#endif - delete[] m_matrix->data; - delete m_matrix; -} - -void Board::seed(int s) -{ - srand(s); - for (int j=0; jdata[i+j*m_width] = x>75? 1: 0; // 25% occupied - } - } -#ifndef _CONSOLE - Invalidate(); -#endif -} - -void Board::seed( const BoardPtr src ) -{ - memcpy(m_matrix->data, src->m_matrix->data, m_height*m_width); -#ifndef _CONSOLE - Invalidate(); -#endif -} - -#ifndef _CONSOLE -void Board::draw(Graphics^ g) -{ - m_mem_dc->FillRectangle(m_freeBrush, Drawing::Rectangle(0, 0, m_width*m_squareSize, m_height*m_squareSize)); - for (int j=0; jdata[i+j*m_width] ) - { - m_mem_dc->FillRectangle(m_occupiedBrush, Drawing::Rectangle(i*m_squareSize, j*m_squareSize, m_squareSize, m_squareSize)); - } - } - } - g->DrawImage(m_bmp, 0, 0); -} - -void Board::OnPaint(PaintEventArgs^ e) -{ - draw(e->Graphics); -} - -[STAThreadAttribute] -int main(array ^args) -{ - // Enabling Windows XP visual effects before any controls are created - Application::EnableVisualStyles(); - Application::SetCompatibleTextRenderingDefault(false); - - // Create the main window and run it - Application::Run(gcnew Form1()); - return 0; -} -#else - -//! Print usage of this program -void PrintUsage() -{ - printf("Usage: gol [M[:N] -t execution_time]\nM and N are a range of numbers of threads to be used.\nexecution_time is a time (in sec) for execution game_of_life iterations\n"); - printf("Default values:\nM:\t\tautomatic\nN:\t\tM\nexecution_time:\t10\n"); -} - -//! Parse command line -bool ParseCommandLine(int argc, char * argv []) -{ - char* s = argv[1]; - char* end; - //! command line without parameters - if(argc == 1) - { - low = tbb::task_scheduler_init::automatic; - high = low; - execution_time = 5; - return true; - } - //! command line with parameters - if(argc != 4) - { - PrintUsage(); - return false; - } - if(std::string("-t") != argv[argc-2]) - //! process M[:N] parameter - high = strtol(s,&end,0); - low = strtol(s,&end,0); - switch( *end ) - { - case ':': - high = strtol(end+1,0,0); - break; - case '\0': - break; - default: - PrintUsage(); - return false; - } - if (high < low) - { - std::cout << "Set correct range. Current range: " << low << ":" << high << std::endl; - PrintUsage(); - return false; - - } - //! process execution_time parameter - execution_time = strtol(argv[argc-1],&end,0); - return true; -} - -int main( int argc, char* argv[] ) -{ - if(!ParseCommandLine( argc, argv )) - return 1; - SequentialEvolution* m_seq; - ParallelEvolution* m_par; - Board* m_board1; - Board* m_board2; - int* count = NULL; - - int boardWidth = 300; - int boardHeight = 300; - - m_board1 = new Board(boardWidth, boardHeight, BOARD_SQUARE_SIZE, count); - m_board2 = new Board(boardWidth, boardHeight, BOARD_SQUARE_SIZE, count); - - time_t now = time(NULL); - printf("Generate Game of life board\n"); - m_board1->seed((int)now); - m_board2->seed(m_board1); - - m_seq = new SequentialEvolution(m_board1->m_matrix, m_board1); - m_seq->Run(execution_time, 1); - delete m_seq; - - m_par = new ParallelEvolution(m_board2->m_matrix, m_board2); - for( int p = low; p <= high; ++p ) - { - m_par->Run(execution_time, p); - } - delete m_par; - - delete m_board1; - delete m_board2; - return 0; -} -#endif diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/src/Update_state.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/src/Update_state.cpp deleted file mode 100644 index f578998b6..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/src/Update_state.cpp +++ /dev/null @@ -1,410 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#include "Evolution.h" - -#ifdef USE_SSE -/* Update states with SSE */ - -#include -#include - -inline void create_record( char * src, unsigned * dst, unsigned width) -{ - dst[0] |= src[width - 1]; - for( unsigned a=0; a<31u; ++a ) - dst[0] |= src[a]<<(a+1); - unsigned a; - for( a=31u; a>=31; - X[ind] =_mm_or_si128( _mm_slli_epi16(X[ind],1), - _mm_srli_epi16( _mm_slli_si128( X[ind], 2), 15) ); - - unsigned x1 = X[ind + 1].m128i_u32[3]; x1>>=31; - X[ind + 1] =_mm_or_si128( _mm_slli_epi16(X[ind + 1],1), - _mm_srli_epi16( _mm_slli_si128( X[ind + 1], 2), 15) ); - X[ind + 1].m128i_u32[0] |= x0; - - unsigned* dst = (unsigned*)&X[ind]; - unsigned x2 = dst[301/32u] & (1<<(301%32u)); x2>>=(301%32u); - X[ind + 2] =_mm_or_si128( _mm_slli_epi16(X[ind + 2],1), - _mm_srli_epi16( _mm_slli_si128( X[ind + 2], 2), 15) ); - X[ind + 2].m128i_u32[0] |= x1; - X[ind].m128i_u32[0] |= x2; - } -} - -void UpdateState(Matrix * m_matrix, char * dest ,int begin, int end) -{ - //300/128 + 1 =3, 3*300=900 - unsigned size_sse_row = m_matrix->width/128 + 1; //3 - unsigned size_sse_ar=size_sse_row * (end - begin); - __m128i X[906], A[900], B[900], C[900]; - char * mas = m_matrix->data; - - for( unsigned i=0; iwidth; - for( unsigned b = 0 ; b < height; ++b ) - { - char* src = &mas[(b + begin)*width]; - unsigned* dst = (unsigned*)&X[(b+1)*size_sse_row]; - create_record(src, dst, width); - } - // create high row in X[] - char * src; - if(begin == 0) - { - src = &mas[(m_matrix->height-1)*width]; - } - else - { - src = &mas[(begin-1)*width]; - } - unsigned* dst = (unsigned*)X; - create_record(src, dst, width); - - //create lower row in X[] - if(end == m_matrix->height ) - { - src = mas; - } - else - { - src = &mas[end*width]; - } - dst = (unsigned*)&X[(height+1)*size_sse_row]; - create_record(src, dst, width); - - //sum( C, B, A, X+offset_for_upwards ); high-left friend - sum_offset(X,A,B,C,size_sse_ar, 0); - - //sum( C, B, A, X+offset_for_no_vertical_shift ); - sum_offset(X,A,B,C,size_sse_ar, size_sse_row); - - //sum( C, B, A, X+offset_for_downwards ); - sum_offset(X,A,B,C,size_sse_ar, 2*size_sse_row); - - //shift_left( X ); (when view 2D) in our logic it is in right - height = end - begin + 2; - shift_left2D( X, height, size_sse_row); - - //sum( C, B, A, X+offset_for_upwards ); high-left friend - sum_offset(X,A,B,C,size_sse_ar, 0); - - //sum( C, B, A, X+offset_for_downwards ); - sum_offset(X,A,B,C,size_sse_ar, 2*size_sse_row); - - //shift_left( X ); (view in 2D) in our logic it is right shift - height = end - begin + 2; - shift_left2D( X, height, size_sse_row); - - //sum( C, B, A, X+offset_for_upwards ); high-right friend - sum_offset(X,A,B,C,size_sse_ar, 0); - - //sum( C, B, A, X+offset_for_no_vertical_shift ); right friend - sum_offset(X,A,B,C,size_sse_ar, size_sse_row); - - //sum( C, B, A, X+offset_for_downwards ); right down friend - sum_offset(X,A,B,C,size_sse_ar, 2*size_sse_row); - - //shift_right( X ); (when view in 2D) in our case it left shift. - height = end - begin + 2; - shift_right2D( X, height, size_sse_row); - - //X = (X|A)&B&~C (done bitwise over the arrays) - unsigned shift = size_sse_row; - for(unsigned i=0; iwidth; - for( unsigned b=0; b>(a%32u); - } - } -} -#else -/* end SSE block */ - -// ---------------------------------------------------------------------- -// GetAdjacentCellState() - returns the state (value) of the specified -// adjacent cell of the current cell "cellNumber" -char GetAdjacentCellState( - char* source, // pointer to source data block - int x, // logical width of field - int y, // logical height of field - int cellNumber, // number of cell position to examine - int cp // which adjacent position - ) -{ -/* -cp -*-- cp=1 ... --- cp=8 (summary: -1-2-3- --x- -x- -4-x-5- ---- --* -6-7-8- ) -*/ - char cellState = 0; // return value - - // set up boundary flags to trigger field-wrap logic - bool onTopRow = false; - bool onBottomRow = false; - bool onLeftColumn = false; - bool onRightColumn = false; - - // check to see if cell is on top row - if (cellNumber < x) - { - onTopRow = true; - } - // check to see if cell is on bottom row - if ((x*y)-cellNumber <= x) - { - onBottomRow = true; - } - // check to see if cell is on left column - if (cellNumber%x == 0) - { - onLeftColumn = true; - } - // check to see if cell is on right column - if ((cellNumber+1)%x == 0) - { - onRightColumn = true; - } - - switch (cp) - { - case 1: - if (onTopRow && onLeftColumn) - { - return *(source+((x*y)-1)); - } - if (onTopRow && !onLeftColumn) - { - return *(source+(((x*y)-x)+(cellNumber-1))); - } - if (onLeftColumn && !onTopRow) - { - return *(source+(cellNumber-1)); - } - return *((source+cellNumber)-(x+1)); - - case 2: - if (onTopRow) - { - return *(source+(((x*y)-x)+cellNumber)); - } - return *((source+cellNumber)-x); - - case 3: - if (onTopRow && onRightColumn) - { - return *(source+((x*y)-x)); - } - if (onTopRow && !onRightColumn) - { - return *(source+(((x*y)-x)+(cellNumber+1))); - } - if (onRightColumn && !onTopRow) - { - return *(source+((cellNumber-(x*2))+1)); - } - return *(source+(cellNumber-(x-1))); - - case 4: - if (onRightColumn) - { - return *(source+(cellNumber-(x-1))); - } - return *(source+(cellNumber+1)); - - case 5: - if (onBottomRow && onRightColumn) - { - return *source; - } - if (onBottomRow && !onRightColumn) - { - return *(source+((cellNumber-((x*y)-x))+1)); - } - if (onRightColumn && !onBottomRow) - { - return *(source+(cellNumber+1)); - } - return *(source+(((cellNumber+x))+1)); - - case 6: - if (onBottomRow) - { - return *(source+(cellNumber-((x*y)-x))); - } - return *(source+(cellNumber+x)); - - case 7: - if (onBottomRow && onLeftColumn) - { - return *(source+(x-1)); - } - if (onBottomRow && !onLeftColumn) - { - return *(source+(cellNumber-((x*y)-x)-1)); - } - if (onLeftColumn && !onBottomRow) - { - return *(source+(cellNumber+((x*2)-1))); - } - return *(source+(cellNumber+(x-1))); - - case 8: - if (onLeftColumn) - { - return *(source+(cellNumber+(x-1))); - } - return *(source+(cellNumber-1)); - } - return cellState; -} - -char CheckCell(Matrix * m_matrix, int cellNumber) -{ - char total = 0; - char* source = m_matrix->data; - //look around to find cell's with status "alive" - for(int i=1; i<9; i++) - { - total += GetAdjacentCellState(source, m_matrix->width, m_matrix->height, cellNumber, i); - } - // if the number of adjacent live cells is < 2 or > 3, the result is a dead - // cell regardless of its current state. (A live cell dies of loneliness if it - // has less than 2 neighbors, and of overcrowding if it has more than 3; a new - // cell is born in an empty spot only if it has exactly 3 neighbors. - if (total < 2 || total > 3) - { - return 0; - } - - // if we get here and the cell position holds a living cell, it stays alive - if (*(source+cellNumber)) - { - return 1; - } - - // we have an empty position. If there are only 2 neighbors, the position stays - // empty. - if (total == 2) - { - return 0; - } - - // we have an empty position and exactly 3 neighbors. A cell is born. - return 1; -} - -void UpdateState(Matrix * m_matrix, char * dest ,int begin, int end) -{ - for (int i=begin; i<=end; i++) - { - *(dest+i) = CheckCell(m_matrix, i); - } -} - -#endif -/* end non-SSE block */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/xcode/game_of_life.xcodeproj/project.pbxproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/xcode/game_of_life.xcodeproj/project.pbxproj deleted file mode 100644 index 1c1cd6a82..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/game_of_life/xcode/game_of_life.xcodeproj/project.pbxproj +++ /dev/null @@ -1,317 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 612CD8DD11F573FC00A587B2 /* Game_of_life.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 612CD8DB11F573FC00A587B2 /* Game_of_life.cpp */; }; - 612CD8DE11F573FC00A587B2 /* Update_state.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 612CD8DC11F573FC00A587B2 /* Update_state.cpp */; }; - 612CD8E111F5742000A587B2 /* Evolution.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 612CD8E011F5742000A587B2 /* Evolution.cpp */; }; - A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; }; - A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 8DD76F690486A84900D96B5E /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 12; - dstPath = ""; - dstSubfolderSpec = 16; - files = ( - A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 612CD8DB11F573FC00A587B2 /* Game_of_life.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Game_of_life.cpp; path = ../src/Game_of_life.cpp; sourceTree = SOURCE_ROOT; }; - 612CD8DC11F573FC00A587B2 /* Update_state.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Update_state.cpp; path = ../src/Update_state.cpp; sourceTree = SOURCE_ROOT; }; - 612CD8E011F5742000A587B2 /* Evolution.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Evolution.cpp; path = ../src/Evolution.cpp; sourceTree = SOURCE_ROOT; }; - 8DD76F6C0486A84900D96B5E /* game_of_life */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = game_of_life; sourceTree = BUILT_PRODUCTS_DIR; }; - A1F593B30B8F06F900073279 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = ../../../../lib/libtbb.dylib; sourceTree = SOURCE_ROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8DD76F660486A84900D96B5E /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 08FB7794FE84155DC02AAC07 /* game_of_life */ = { - isa = PBXGroup; - children = ( - 08FB7795FE84155DC02AAC07 /* Source */, - A1F593B20B8F06F900073279 /* External Frameworks and Libraries */, - 1AB674ADFE9D54B511CA2CBB /* Products */, - ); - name = game_of_life; - sourceTree = ""; - }; - 08FB7795FE84155DC02AAC07 /* Source */ = { - isa = PBXGroup; - children = ( - 612CD8E011F5742000A587B2 /* Evolution.cpp */, - 612CD8DB11F573FC00A587B2 /* Game_of_life.cpp */, - 612CD8DC11F573FC00A587B2 /* Update_state.cpp */, - ); - name = Source; - sourceTree = ""; - }; - 1AB674ADFE9D54B511CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8DD76F6C0486A84900D96B5E /* game_of_life */, - ); - name = Products; - sourceTree = ""; - }; - A1F593B20B8F06F900073279 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - A1F593B30B8F06F900073279 /* libtbb.dylib */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8DD76F620486A84900D96B5E /* game_of_life */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "game_of_life" */; - buildPhases = ( - 8DD76F640486A84900D96B5E /* Sources */, - 8DD76F660486A84900D96B5E /* Frameworks */, - 8DD76F690486A84900D96B5E /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = game_of_life; - productInstallPath = "$(HOME)/bin"; - productName = game_of_life; - productReference = 8DD76F6C0486A84900D96B5E /* game_of_life */; - productType = "com.apple.product-type.tool"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 08FB7793FE84155DC02AAC07 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0410; - }; - buildConfigurationList = 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "game_of_life" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - en, - ); - mainGroup = 08FB7794FE84155DC02AAC07 /* game_of_life */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8DD76F620486A84900D96B5E /* game_of_life */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXSourcesBuildPhase section */ - 8DD76F640486A84900D96B5E /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 612CD8DD11F573FC00A587B2 /* Game_of_life.cpp in Sources */, - 612CD8DE11F573FC00A587B2 /* Update_state.cpp in Sources */, - 612CD8E111F5742000A587B2 /* Evolution.cpp in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 1DEB923208733DC60010E9CD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = _CONSOLE; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = game_of_life; - ZERO_LINK = NO; - }; - name = Debug; - }; - 1DEB923308733DC60010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_PREPROCESSOR_DEFINITIONS = _CONSOLE; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = game_of_life; - ZERO_LINK = NO; - }; - name = Release; - }; - 1DEB923608733DC60010E9CD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Debug; - }; - 1DEB923708733DC60010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Release; - }; - A1F593C60B8F0E6E00073279 /* Debug64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = _CONSOLE; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = game_of_life; - ZERO_LINK = NO; - }; - name = Debug64; - }; - A1F593C70B8F0E6E00073279 /* Release64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_PREPROCESSOR_DEFINITIONS = _CONSOLE; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = game_of_life; - ZERO_LINK = NO; - }; - name = Release64; - }; - A1F593C80B8F0E6E00073279 /* Debug64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "-m64", - ); - OTHER_LDFLAGS = "-m64"; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Debug64; - }; - A1F593C90B8F0E6E00073279 /* Release64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "-m64", - ); - OTHER_LDFLAGS = "-m64"; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Release64; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "game_of_life" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB923208733DC60010E9CD /* Debug */, - A1F593C60B8F0E6E00073279 /* Debug64 */, - 1DEB923308733DC60010E9CD /* Release */, - A1F593C70B8F0E6E00073279 /* Release64 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "game_of_life" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB923608733DC60010E9CD /* Debug */, - A1F593C80B8F0E6E00073279 /* Debug64 */, - 1DEB923708733DC60010E9CD /* Release */, - A1F593C90B8F0E6E00073279 /* Release64 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/index.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/index.html deleted file mode 100644 index d7afc5d20..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/index.html +++ /dev/null @@ -1,30 +0,0 @@ - - - -

    Overview

    -This directory has examples of the template parallel_for. - -

    Directories

    -
    -
    seismic -
    Parallel seismic wave simulation. -
    tachyon -
    Parallel 2-D raytracer/renderer. -
    polygon_overlay -
    Simple polygon overlay. -
    game_of_life -
    Simple Game of life overlay. -
    - -
    -Up to parent directory -

    -Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

    -Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

    -* Other names and brands may be claimed as the property of others. - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/Makefile b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/Makefile deleted file mode 100644 index b2946210e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/Makefile +++ /dev/null @@ -1,68 +0,0 @@ -# Copyright 2005-2014 Intel Corporation. All Rights Reserved. -# -# This file is part of Threading Building Blocks. -# -# Threading Building Blocks is free software; you can redistribute it -# and/or modify it under the terms of the GNU General Public License -# version 2 as published by the Free Software Foundation. -# -# Threading Building Blocks is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied warranty -# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Threading Building Blocks; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# -# As a special exception, you may use this file as part of a free software -# library without restriction. Specifically, if other files instantiate -# templates or use macros or inline functions from this file, or you compile -# this file and link it with other files to produce an executable, this -# file does not by itself cause the resulting executable to be covered by -# the GNU General Public License. This exception does not however -# invalidate any other reasons why the executable file might be covered by -# the GNU General Public License. - -# Common Makefile that builds and runs example. - -# Just specify your program basename -PROG=Pover -ARGS= -LIGHT_ARGS= --polys 10 --size 5x5 - -# Trying to find if icl.exe is set -CXX1 = $(TBB_CXX)- -CXX2 = $(CXX1:icl.exe-=icl.exe) -CXX = $(CXX2:-=cl.exe) - -# The C++ compiler options - -# Uncomment one of next lines to choose user interface type (console, gdiplus, direct draw) -#UI = con -UI = gdi -#UI = dd - -# Machine architecture, auto-detected from TBB_TARGET_ARCH by default -# Use XARCH variable to change it. See index.html for more information -ARCH0 = $(TBB_TARGET_ARCH)- -ARCH1 = $(ARCH0:ia32-=x86) -ARCH2 = $(ARCH1:intel64-=AMD64) -XARCH = $(ARCH2:-=x86) - -MAKEINC = ../../common/gui/Makefile.win - -all: release test -release: compiler_check - @$(MAKE) -f $(MAKEINC) UI=$(UI) CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS)" LFLAGS="$(LDFLAGS) tbb.lib tbbmalloc.lib $(LIBS)" XARCH=$(XARCH) RCNAME=pover SOURCE=*.cpp EXE=$(PROG).exe build_one -debug: compiler_check - @$(MAKE) -f $(MAKEINC) UI=$(UI) DEBUG=_debug CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS) /D TBB_USE_DEBUG" LFLAGS="$(LDFLAGS) tbb_debug.lib tbbmalloc_debug.lib $(LIBS)" XARCH=$(XARCH) RCNAME=pover SOURCE=*.cpp EXE=$(PROG).exe build_one -clean: - @cmd.exe /C del $(PROG).exe *.obj *.?db *.manifest msvs\pover.res -test: - $(PROG) $(ARGS) -light_test: - $(PROG) $(LIGHT_ARGS) -compiler_check: - @echo compiler_test>compiler_test && @$(CXX) /E compiler_test >nul 2>&1 || echo "$(CXX) command not found. Check if CXX=$(CXX) is set properly" - @cmd.exe /C del compiler_test diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/index.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/index.html deleted file mode 100644 index 62ae291fa..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/index.html +++ /dev/null @@ -1,121 +0,0 @@ - - - -

    Overview

    -Polygon Overlay example that demonstrates the use of parallel_for. -

    -This example is a simple implementation of polygon overlay, as described in - - Parallelizing the Polygon Overlay Problem Using Orca, by H.F. Langendoen. -

    -The solution was implemented in three forms: -
      -
    • The naive serial solution. -
    • The naive parallel solution, by splitting list of polygons from one map and intersecting - each sub-list against the entire list of polygons from the second map. -
    • A parallel solution where each map is split into submaps, with each resulting submap being - intersected against the corresponding submap from the other map. This solution requires some - redundancy (some polygons are members of more than one submap). To prevent multiple copies - of a polygon from being placed in the solution map, if both polygons are duplicated (that is, - if they both appear in more than one map), they are intersected but the result is not placed - in the solution map. -
    -The only optimization in each solution is that the area of the generated sub-polygons are subtracted from -the original area of one of the source polygons. When the remaining area is zero, the intersection process -is halted. -

    -A word about the speedup of the submap case. One may get superlinear speedup in this case (for instance a -laptop with Intel® Core(TM) Duo processor got a speedup of about 20 percent over serial.) This results from two effects: -

    -
      -
    • the number of threads used, and -
    • the fact that for each submap, the number of polygons is smaller than that for the other two cases. -
    -If there are, say, 400 polygons in each map, then on average the number of intersections calculated is -approximately 80,000 (400 * 200, where 200 is the average number of polygons examined before stopping.) -If the maps are split into 2 submaps, the time for each submap is about 200*100, or 20,000. So even -comparing the two sets of submaps serially should result in a speedup somewhere around 2. This number -is affected by the number of redundant polygons being compared; this effect would eventually swamp the gain -from comparing smaller numbers of polygons per submap. And remember the submaps are created by intersecting each -map with a rectangular polygon covering the submap being generated, which is additional work taking about N * O(400) -in the case above, where N is the number of submaps generated, that can be done in parallel. -

    -Running the default release pover while varying the number of submaps from 1 to 1000, the speedup on the submap -case for a 2-processor system looks like
    -Table of speedup for the algorithm
    -

    -

    -One further optimization would be to sort one map, say map1, by maxY, and sort the other map (map2) -by minY. For p1 in map1, start testing for intersection at the first p2 in map2 -that intersected the last polygon tested in map1. This would speed up the intersection process greatly, -but the optimization would apply to all the methods, and the sort would have to be accounted for in the timing. -

    -

    -The source maps are generated pseudo-randomly in the manner described in the paper above. That is, if -we need N polygons, then N "boxes" are chosen at random, then one-at-a-time the areas are expanded in -one of fours directions until the area hits an adjacent polygon. When this process is finished, the -resulting map is inspected and any remaining unoccupied "boxes" are made into additional polygons, as -large as possible in each case. So the actual number of polygons in each map will in general be larger -than the number of polygons requested (sometimes by 10% or more.) -

    -

    -One limitation of the program is that if the number of polygons in the source map is greater than the number of -"boxes" (pixels in the GUI case), the maps cannot be generated. -

    - -

    Files

    -
    -
    polyover.cpp -
    Source code for main program. -
    polyover.h -
    Global variables, classes and enums. -
    pover_video.cpp -
    Source code for the GUI interface. -
    pover_video.h -
    Defines for the GUI version. -
    Makefile -
    Makefile for building example. -
    - -

    Directories

    -
    -
    msvs -
    Contains Microsoft* Visual Studio* 2005 workspace for building and running the - example (Windows* systems only).
    xcode -
    Contains Xcode* IDE workspace for building and running the example (OS X* - systems only).
    - -

    To Build

    -General build directions can be found here. For the various UI options, see the common GUI code build instructions. - -

    Usage

    -Building via the above make commands, or via Visual Studio projects on Windows* systems, produces executable files -named pover.exe. To run these executables directly, use one or more of the following commands. -
    -
    pover.exe -
    Run this version (release or debug). -
    pover.exe n:m -
    Run this version (release or debug) (m-n+1) times, with n threads to m threads inclusive. -
    To run a short version of this example, e.g., for use with Intel® Threading Tools: -
    Build a debug version with the GUI turned off - (e.g., make UI=con debug; see also the build directions above). -
    Run it with a small dataset, e.g., pover.exe --polys 10 --size 5x5. -
    - -

    Notes

    -
      -
    • While running with the GUI display should yield reasonable performance in most cases, running with no GUI - display is strongly recommended in order to demonstrate the full performance and scalability of the example. -
    - -
    -Up to parent directory -

    -Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

    -Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

    -* Other names and brands may be claimed as the property of others. - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/msvs/pover.icproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/msvs/pover.icproj deleted file mode 100644 index e811952a7..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/msvs/pover.icproj +++ /dev/null @@ -1,11 +0,0 @@ - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/msvs/pover.rc b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/msvs/pover.rc deleted file mode 100644 index 3eee795fa..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/msvs/pover.rc +++ /dev/null @@ -1,61 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "afxres.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -LANGUAGE 9, 1 -#pragma code_page(1252) - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#include ""afxres.h""\r\n" - "\0" -END - -3 TEXTINCLUDE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/msvs/pover.vcproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/msvs/pover.vcproj deleted file mode 100644 index 90838e33c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/msvs/pover.vcproj +++ /dev/null @@ -1,832 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/msvs/pover_cl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/msvs/pover_cl.sln deleted file mode 100644 index cd0bc0d08..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/msvs/pover_cl.sln +++ /dev/null @@ -1,37 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pover", "pover.vcproj", "{4BB7B455-1E09-41D3-BC89-6E67C9032F8C}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - DD Debug|Win32 = DD Debug|Win32 - DD Debug|x64 = DD Debug|x64 - DD Release|Win32 = DD Release|Win32 - DD Release|x64 = DD Release|x64 - GDI Debug|Win32 = GDI Debug|Win32 - GDI Debug|x64 = GDI Debug|x64 - _GDI Release|Win32 = _GDI Release|Win32 - _GDI Release|x64 = _GDI Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {4BB7B455-1E09-41D3-BC89-6E67C9032F8C}.DD Debug|Win32.ActiveCfg = DD Debug|Win32 - {4BB7B455-1E09-41D3-BC89-6E67C9032F8C}.DD Debug|Win32.Build.0 = DD Debug|Win32 - {4BB7B455-1E09-41D3-BC89-6E67C9032F8C}.DD Debug|x64.ActiveCfg = DD Debug|x64 - {4BB7B455-1E09-41D3-BC89-6E67C9032F8C}.DD Debug|x64.Build.0 = DD Debug|x64 - {4BB7B455-1E09-41D3-BC89-6E67C9032F8C}.DD Release|Win32.ActiveCfg = DD Release|Win32 - {4BB7B455-1E09-41D3-BC89-6E67C9032F8C}.DD Release|Win32.Build.0 = DD Release|Win32 - {4BB7B455-1E09-41D3-BC89-6E67C9032F8C}.DD Release|x64.ActiveCfg = DD Release|x64 - {4BB7B455-1E09-41D3-BC89-6E67C9032F8C}.DD Release|x64.Build.0 = DD Release|x64 - {4BB7B455-1E09-41D3-BC89-6E67C9032F8C}.GDI Debug|Win32.ActiveCfg = Debug|Win32 - {4BB7B455-1E09-41D3-BC89-6E67C9032F8C}.GDI Debug|Win32.Build.0 = Debug|Win32 - {4BB7B455-1E09-41D3-BC89-6E67C9032F8C}.GDI Debug|x64.ActiveCfg = Debug|x64 - {4BB7B455-1E09-41D3-BC89-6E67C9032F8C}.GDI Debug|x64.Build.0 = Debug|x64 - {4BB7B455-1E09-41D3-BC89-6E67C9032F8C}._GDI Release|Win32.ActiveCfg = Release|Win32 - {4BB7B455-1E09-41D3-BC89-6E67C9032F8C}._GDI Release|Win32.Build.0 = Release|Win32 - {4BB7B455-1E09-41D3-BC89-6E67C9032F8C}._GDI Release|x64.ActiveCfg = Release|x64 - {4BB7B455-1E09-41D3-BC89-6E67C9032F8C}._GDI Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/msvs/pover_icl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/msvs/pover_icl.sln deleted file mode 100644 index a9dd60a40..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/msvs/pover_icl.sln +++ /dev/null @@ -1,53 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{EAF909A5-FA59-4C3D-9431-0FCC20D5BCF9}") = "pover", "pover.icproj", "{B175D396-7260-45F8-9E18-842ED8A32A16}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - DD Debug|Win32 = DD Debug|Win32 - DD Debug|x64 = DD Debug|x64 - DD Release|Win32 = DD Release|Win32 - DD Release|x64 = DD Release|x64 - GDI Debug|Win32 = GDI Debug|Win32 - GDI Debug|x64 = GDI Debug|x64 - _GDI Release|Win32 = _GDI Release|Win32 - _GDI Release|x64 = _GDI Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {B175D396-7260-45F8-9E18-842ED8A32A16}.DD Debug|Win32.ActiveCfg = DD Debug|Win32 - {B175D396-7260-45F8-9E18-842ED8A32A16}.DD Debug|Win32.Build.0 = DD Debug|Win32 - {B175D396-7260-45F8-9E18-842ED8A32A16}.DD Debug|x64.ActiveCfg = DD Debug|x64 - {B175D396-7260-45F8-9E18-842ED8A32A16}.DD Debug|x64.Build.0 = DD Debug|x64 - {B175D396-7260-45F8-9E18-842ED8A32A16}.DD Release|Win32.ActiveCfg = DD Release|Win32 - {B175D396-7260-45F8-9E18-842ED8A32A16}.DD Release|Win32.Build.0 = DD Release|Win32 - {B175D396-7260-45F8-9E18-842ED8A32A16}.DD Release|x64.ActiveCfg = DD Release|x64 - {B175D396-7260-45F8-9E18-842ED8A32A16}.DD Release|x64.Build.0 = DD Release|x64 - {B175D396-7260-45F8-9E18-842ED8A32A16}.GDI Debug|Win32.ActiveCfg = Debug|Win32 - {B175D396-7260-45F8-9E18-842ED8A32A16}.GDI Debug|Win32.Build.0 = Debug|Win32 - {B175D396-7260-45F8-9E18-842ED8A32A16}.GDI Debug|x64.ActiveCfg = Debug|x64 - {B175D396-7260-45F8-9E18-842ED8A32A16}.GDI Debug|x64.Build.0 = Debug|x64 - {B175D396-7260-45F8-9E18-842ED8A32A16}._GDI Release|Win32.ActiveCfg = Release|Win32 - {B175D396-7260-45F8-9E18-842ED8A32A16}._GDI Release|Win32.Build.0 = Release|Win32 - {B175D396-7260-45F8-9E18-842ED8A32A16}._GDI Release|x64.ActiveCfg = Release|x64 - {B175D396-7260-45F8-9E18-842ED8A32A16}._GDI Release|x64.Build.0 = Release|x64 - {4BB7B455-1E09-41D3-BC89-6E67C9032F8C}._GDI Release|x64.Build.0 = Release|x64 - {4BB7B455-1E09-41D3-BC89-6E67C9032F8C}._GDI Release|x64.ActiveCfg = Release|x64 - {4BB7B455-1E09-41D3-BC89-6E67C9032F8C}._GDI Release|Win32.Build.0 = Release|Win32 - {4BB7B455-1E09-41D3-BC89-6E67C9032F8C}._GDI Release|Win32.ActiveCfg = Release|Win32 - {4BB7B455-1E09-41D3-BC89-6E67C9032F8C}.GDI Debug|x64.Build.0 = Debug|x64 - {4BB7B455-1E09-41D3-BC89-6E67C9032F8C}.GDI Debug|x64.ActiveCfg = Debug|x64 - {4BB7B455-1E09-41D3-BC89-6E67C9032F8C}.GDI Debug|Win32.Build.0 = Debug|Win32 - {4BB7B455-1E09-41D3-BC89-6E67C9032F8C}.GDI Debug|Win32.ActiveCfg = Debug|Win32 - {4BB7B455-1E09-41D3-BC89-6E67C9032F8C}.DD Release|x64.Build.0 = DD Release|x64 - {4BB7B455-1E09-41D3-BC89-6E67C9032F8C}.DD Release|x64.ActiveCfg = DD Release|x64 - {4BB7B455-1E09-41D3-BC89-6E67C9032F8C}.DD Release|Win32.Build.0 = DD Release|Win32 - {4BB7B455-1E09-41D3-BC89-6E67C9032F8C}.DD Release|Win32.ActiveCfg = DD Release|Win32 - {4BB7B455-1E09-41D3-BC89-6E67C9032F8C}.DD Debug|x64.Build.0 = DD Debug|x64 - {4BB7B455-1E09-41D3-BC89-6E67C9032F8C}.DD Debug|x64.ActiveCfg = DD Debug|x64 - {4BB7B455-1E09-41D3-BC89-6E67C9032F8C}.DD Debug|Win32.Build.0 = DD Debug|Win32 - {4BB7B455-1E09-41D3-BC89-6E67C9032F8C}.DD Debug|Win32.ActiveCfg = DD Debug|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/msvs/resource.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/msvs/resource.h deleted file mode 100644 index e70b4ea1e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/msvs/resource.h +++ /dev/null @@ -1,14 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by pover.rc - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 101 -#define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1001 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/polymain.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/polymain.cpp deleted file mode 100644 index daa1e69bc..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/polymain.cpp +++ /dev/null @@ -1,628 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -// Polygon overlay -// -// Don't want warnings about deprecated sscanf, getenv -#ifndef _CRT_SECURE_NO_DEPRECATE -#define _CRT_SECURE_NO_DEPRECATE -#endif -#define _MAIN_C_ 1 -#include -#include -#include -#include - -#include "tbb/tick_count.h" -#include "tbb/task_scheduler_init.h" -#include "pover_global.h" -#include "polyover.h" -#include "pover_video.h" -#include "polymain.h" - -using namespace std; - -#if _DEBUG -const char *faceNames[] = { "North", "East", "South", "West" }; -#endif - -/** -**/ -int main( int argc, char **argv) { - pover_video poly; - poly.threaded = true; - gVideo = &poly; - - if(!initializeVideo(argc, argv)) { - return 1; - } - - gIsGraphicalVersion = poly.graphic_display(); - if(argc > 1) { - if(!ParseCmdLine(argc, argv)) { - if(gIsGraphicalVersion) rt_sleep(10000); - // if graphical, we haven't opened the console window so all the error messages we - // so carefully wrote out disappeared into the ether. :( - exit(1); - } - } - - if(gCsvFilename != NULL) { -#define BUFLEN 1000 - std::string fname_buf = gCsvFilename; - fname_buf += ".csv"; - gCsvFile.open(fname_buf.c_str()); - } - - // we have gMapXSize and gMapYSize determining the number of "squares" - // we have g_xwinsize and g_ywinsize the total size of the window - // we also have BORDER_SIZE the size of the border between maps - // we need to determine - // g_polyBoxSize -- the number of pixels on each size of each square - - if(gIsGraphicalVersion) { - int xpixelsPerMap = (g_xwinsize - 4*BORDER_SIZE) / 3; // three maps, with borders between and outside - gMapXSize = xpixelsPerMap; // make the boxes one per pixel - gPolyXBoxSize = xpixelsPerMap / gMapXSize; - int ypixelsPerMap = (g_ywinsize - 2*BORDER_SIZE); // one map vertically - gMapYSize = ypixelsPerMap; // one pixel per box, rather. - - gPolyYBoxSize = ypixelsPerMap / gMapYSize; - if((gPolyXBoxSize == 0) || (gPolyYBoxSize == 0)) { - cout << "The display window is not large enough to show the maps" << std::endl; - int minxSize = 4*BORDER_SIZE + 3*gMapXSize; - int minySize = 2*BORDER_SIZE + gMapYSize; - cout << " Should be at least " << minxSize << " x " << minySize << "." << std::endl; - return 1; - } - map2XLoc = 2*BORDER_SIZE + gMapXSize * gPolyXBoxSize; - maprXLoc = 3*BORDER_SIZE + 2 * gMapXSize * gPolyXBoxSize; - - } - else { // not gIsGraphicalVersion - // gMapXSize, gMapYSize, gNPolygons defined in pover_global.h - } - - // create two polygon maps - SetRandomSeed(gMyRandomSeed); // for repeatability - - gVideo->main_loop(); -} - -void Usage(int argc, char **argv) { - char *cmdTail = strrchr(*argv, '\\'); - if(cmdTail == NULL) { - cmdTail = *argv; - } - else { - cmdTail++; - } - cout << cmdTail << " [threads[:threads2]] [--polys npolys] [--size nnnxnnn] [--seed nnn]" << std::endl; - cout << "Create polygon maps and overlay them." << std::endl << std::endl; - cout << "Parameters:" << std::endl; - cout << " threads[:threads2] - number of threads to run" << std::endl; - cout << " --polys npolys - number of polygons in each map" << std::endl; - cout << " --size nnnxnnn - size of each map (X x Y)" << std::endl; - cout << " --seed nnn - initial value of random number generator" << std::endl; - cout << " --csv filename - write timing data to CSV-format file" << std::endl; - cout << " --grainsize n - set grainsize to n" << std::endl; - cout << " --use_malloc - allocate polygons with malloc instead of scalable allocator" << std::endl; - cout << std::endl; - cout << "npolys must be smaller than the size of the map" << std::endl; - cout << std::endl; - exit(1); -} - -bool ParseCmdLine(int argc, char **argv ) { - bool error_found = false; - bool nPolysSpecified = false; - bool nMapSizeSpecified = false; - bool nSeedSpecified = false; - bool csvSpecified = false; - bool grainsizeSpecified = false; - bool mallocSpecified = false; - int origArgc = argc; - char** origArgv = argv; - unsigned int newnPolygons = gNPolygons; - unsigned int newSeed = gMyRandomSeed; - unsigned int newX = gMapXSize; - unsigned int newY = gMapYSize; - unsigned int newGrainSize = gGrainSize; - argc--; argv++; - if(argc > 0 && isdigit((*argv)[0])) { - // first argument is one or two numbers, specifying how mny threads to run - char* end; gThreadsHigh = gThreadsLow = (int)strtol(argv[0],&end,0); - switch( *end) { - case ':': gThreadsHigh = (int)strtol(end+1,0,0); break; - case '\0': break; - default: cout << "Unexpected character in thread specifier: " << *end << std::endl; break; - } - if(gThreadsLow > gThreadsHigh) { - int t = gThreadsLow; - gThreadsLow = gThreadsHigh; - gThreadsHigh = t; - } - argv++; argc--; - } - while(argc > 0) { - // format 1: --size nnnxnnn, where nnn in {0 .. 9}+ -- size of map in "squares" - if(!strncmp("--size", *argv, (size_t)6)) { - if(nMapSizeSpecified) { - cout << " Error: map size multiply specified" << std::endl; - error_found = true; - } - else { - argv++; argc--; - if(argc == 0) { - error_found = true; - cout << " Error: --size must have a value" << std::endl; - } - if(strchr(*argv, 'x') != strrchr(*argv,'x')) { - // more than one 'x' - cout << "Error: map size should be nnnxnnn (" << *argv << ")" << std::endl; - error_found = true; - } - else { - int rval; - rval = sscanf(*argv, "%ux%u", &newX, &newY); - if(rval != 2) { - cout << "Error parsing map size (format should be nnnxnnn (" << *argv << ")" << std::endl; - error_found = true; - } - if(newX == 0 || newY == 0) { - cout << "Error: size of map should be greater than 0 (" << *argv << ")" << std::endl; - error_found = true; - } - } - } - argc--; argv++; - } - // format 2: --seed nnn -- initial random number seed - else if(!strncmp("--seed", *argv, (size_t)6)) { - argv++; argc--; - if(nSeedSpecified) { - cout << "Error: new seed multiply specified" << std::endl; - error_found = true; - } - else { - nSeedSpecified = true; - int rtval = sscanf(*argv, "%u", &newSeed); - if(rtval == 0) { - cout << "Error: --seed should be an unsigned number (instead of " << *argv << ")" << std::endl; - error_found = true; - } - } - argv++; argc--; - } - // format 3: --polys n[n] -- number of polygons in each map - else if(!strncmp("--polys", *argv, (size_t)7)) { - //unsigned int newnPolygons; - argv++; argc--; - if(nPolysSpecified) { - cout << "Error: number of polygons multiply-specified" << std::endl; - error_found = true; - }else { - int rtval = sscanf(*argv, "%u", &newnPolygons); - if(newnPolygons == 0) { - cout << "Error: number of polygons must be greater than 0 (" << *argv << ")" << std::endl; - } - } - argv++; argc--; - } - // format 4: --csv -- name of CSV output file ("xxx" for "xxx.csv") - else if(!strncmp("--csv", *argv, (size_t)5)) { - argv++; argc--; - if(csvSpecified) { - cout << "Error: Multiple specification of CSV file" << std::endl; - error_found = true; - } - else { - gCsvFilename = *argv; - argv++; argc--; - csvSpecified = true; - } - } - else if(!strncmp("--grainsize", *argv, (size_t)11)) { - argv++; argc--; - if(grainsizeSpecified) { - cout << "Error: Multiple specification of grainsize" << std::endl; - error_found = true; - } - else { - int grval = sscanf(*argv, "%u", &newGrainSize); - grainsizeSpecified = true; - if(newGrainSize == 0) { - cout << "Error: grainsize must be greater than 0" << std::endl; - error_found = true; - } - } - argv++; argc--; - } - else if(!strncmp("--use_malloc", *argv, (size_t)12)) { - argv++; argc--; - if(mallocSpecified) { - cout << "Error: --use_malloc multiply-specified" << std::endl; - error_found = true; - } - else { - mallocSpecified = true; - gMBehavior = UseMalloc; - } - } - else { - cout << "Error: unrecognized argument: " << *argv << std::endl; - error_found = true; - argv++; argc--; - } - } - if(!error_found) { - if(newX * newY < newnPolygons) { - error_found = true; - cout << "Error: map size should not be smaller than the number of polygons (gNPolygons = " << newnPolygons << ", map size " << newX << "x" << newY << ")" << std::endl; - } - } - if(!error_found) { - gMapXSize = newX; - gMapYSize = newY; - gNPolygons = newnPolygons; - gMyRandomSeed = newSeed; - gGrainSize = (int)newGrainSize; - } - else { - Usage(origArgc, origArgv); - } - return !error_found; -} - -// create a polygon map with at least gNPolygons polygons. -// Usually more than gNPolygons polygons will be generated, because the -// process of growing the polygons results in holes. -bool GenerateMap(Polygon_map_t **newMap, int xSize, int ySize, int gNPolygons, colorcomp_t maxR, colorcomp_t maxG, colorcomp_t maxB) { - bool error_found = false; - int *validPolys; - int *validSide; - int maxSides; - RPolygon *newPoly; - - if(xSize <= 0) { - cout << "xSize (" << xSize << ") should be > 0." << std::endl; - error_found = true; - } - if(ySize <= 0) { - cout << "ySize (" << ySize << ") should be > 0." << std::endl; - error_found = true; - } - if(gNPolygons > (xSize * ySize)) { - cout << "gNPolygons (" << gNPolygons << ") should be less than " << (xSize * ySize) << std::endl; - error_found = true; - } - if(error_found) return false; - // the whole map is [xSize x ySize] squares - // the way we create the map is to - // 1) pick nPolygon discrete squares on an [xSize x ySize] grid - // 2) while there are unused squares on the grid - // 3) pick a polygon with a side that has unused squares on a side - // 4) expand the polygon by 1 to occupy the unused squares - // - // Continue until every square on the grid is occupied by a polygon - int *tempMap; - tempMap = (int *)malloc(xSize * ySize * sizeof(int)); - for(int i=0;i < xSize; i++) { - for(int j=0;j < ySize; j++) { - tempMap[i*ySize + j] = 0; - } - } - - // *newMap = new vector; - *newMap = new Polygon_map_t; - (*newMap)->reserve(gNPolygons + 1); // how much bigger does this need to be on average? - (*newMap)->push_back(RPolygon(0,0,xSize-1, ySize-1)); - for(int i=0; i < gNPolygons; i++) { - int nX; - int nY; - do { // look for an empty square. - nX = NextRan(xSize); - nY = NextRan(ySize); - } while(tempMap[nX * ySize + nY] != 0); - int nR = (maxR * NextRan(1000)) / 999; - int nG = (maxG * NextRan(1000)) / 999; - int nB = (maxB * NextRan(1000)) / 999; - (*newMap)->push_back(RPolygon(nX,nY,nX,nY,nR,nG,nB)); - tempMap[nX * ySize + nY] = i+1; // index of this polygon + 1 - } - // now have to grow polygons to fill the space. - validPolys = (int *)malloc(4*gNPolygons * sizeof(int)); - validSide = (int *)malloc(4*gNPolygons * sizeof(int)); - for(int i=0;i 0) { - int indx = NextRan(maxSides); - int polyIndx = validPolys[indx]; - int checkSide = validSide[indx]; - int xlow, xhigh, ylow, yhigh; - int xlnew, xhnew, ylnew, yhnew; - (**newMap)[polyIndx].get(&xlow,&ylow,&xhigh,&yhigh); - xlnew = xlow; - xhnew = xhigh; - ylnew = ylow; - yhnew = yhigh; - // can this polygon be expanded along the chosen side? - switch(checkSide) { - case NORTH_SIDE: - // y-1 from xlow to xhigh - ylow = yhigh = (ylow - 1); - ylnew--; - break; - case EAST_SIDE: - // x+1 from ylow to yhigh - xlow = xhigh = (xhigh + 1); - xhnew++; - break; - case SOUTH_SIDE: - // y+1 from xlow to xhigh - ylow = yhigh = (yhigh+1); - yhnew++; - break; - case WEST_SIDE: - // x-1 from ylow to yhigh - xlow = xhigh = (xlow - 1); - xlnew--; - break; - } - bool okay_to_extend = !(((xlow < 0) || (xlow >= xSize)) || ((ylow < 0) || (ylow >= ySize))); - for(int ii = xlow; (ii <= xhigh) && okay_to_extend; ii++) { - for(int jj=ylow; (jj <= yhigh) && okay_to_extend; jj++) { - okay_to_extend = tempMap[ii*ySize + jj] == 0; - } - } - if(okay_to_extend) { - (**newMap)[polyIndx].set(xlnew,ylnew,xhnew,yhnew); - for(int ii = xlow; ii <= xhigh; ii++) { - for(int jj=ylow; jj <= yhigh && okay_to_extend; jj++) { - tempMap[ii*ySize + jj] = polyIndx; - } - } - } - else { - // once we cannot expand along a side, we will never be able to; remove from the list. - for(int i=indx + 1; i < maxSides; i++) { - validPolys[i-1] = validPolys[i]; - validSide[i-1] = validSide[i]; - } - maxSides--; - } - } - - // Once no polygons can be grown, look for unused squares, and fill them with polygons. - for(int j=0;jpush_back(RPolygon(i,j,ilen,jlen,nR,nG,nB)); - gNPolygons++; - for(int ii=i; ii<=ilen;ii++) { - for(int jj=j;jj<=jlen;jj++) { - tempMap[ii*ySize + jj] = gNPolygons; - } - } - } - } - } - -#if _DEBUG - if(!gIsGraphicalVersion) { - cout << std::endl << "Final Map:" << std::endl; - for(int j=0; j < ySize; j++ ) { - cout << "Row " << setw(2) << j << ":"; - for(int i=0;i=limit)) {cout << "checkMap error: " << str << " out of range (" << n << ")" << std::endl;anError=true;} -#define xRangeCheck(str,n) rangeCheck(str,n,gMapXSize) -#define yRangeCheck(str,n) rangeCheck(str,n,gMapYSize) - // The first polygon is the whole map. - bool anError = false; - int *cArray; - if(checkMap->size() <= 0) { - cout << "checkMap error: no polygons in map" << std::endl; - return; - } - // mapXhigh and mapYhigh are inclusive, that is, if the map is 5x5, those values would be 4. - int mapXhigh, mapYhigh, mapLowX, mapLowY; - int gMapXSize, gMapYSize; - (*checkMap)[0].get(&mapLowX, &mapLowY, &mapXhigh, &mapYhigh); - if((mapLowX !=0) || (mapLowY != 0)) { - cout << "checkMap error: map origin not (0,0) (X=" << mapLowX << ", Y=" << mapLowY << ")" << std::endl; - anError = true; - } - if((mapXhigh < 0) || (mapYhigh < 0)) { - cout << "checkMap error: no area in map (X=" << mapXhigh << ", Y=" << mapYhigh << ")" << std::endl; - anError = true; - } - if(anError) return; - // bounds for array. - gMapXSize = mapXhigh + 1; - gMapYSize = mapYhigh + 1; - cArray = (int *)malloc(sizeof(int)*(gMapXSize*gMapYSize)); - - for(int i=0; isize()) && !anError; p++) { - (*checkMap)[p].get(&xlow, &ylow, &xhigh, &yhigh); - xRangeCheck("xlow", xlow); - yRangeCheck("ylow", ylow); - xRangeCheck("xhigh", xhigh); - yRangeCheck("yhigh", yhigh); - if(xlow>xhigh) { - cout << "checkMap error: xlow > xhigh (" << xlow << "," << xhigh << ")" << std::endl; - anError = true; - } - if(ylow>yhigh) { - cout << "checkMap error: ylow > yhigh (" << ylow << "," << yhigh << ")" << std::endl; - anError = true; - } - for(int ii = xlow; ii <= xhigh; ii++) { - for(int jj = ylow; jj <= yhigh; jj++) { - if(cArray[indx(ii,jj)] != 0) { - cout << "checkMap error: polygons " << cArray[indx(ii,jj)] << " and " << p << " intersect" << std::endl; - anError = true; - } - cArray[indx(ii,jj)] = p; - } - } - } - for(int ii=0; ii < gMapXSize; ii++) { - for(int jj=0; jj < gMapYSize; jj++) { - if(cArray[indx(ii,jj)] == 0) { - cout << "checkMap error: block(" << ii << ", " << jj << ") not in any polygon" << std::endl; - anError = true; - } - } - } - free(cArray); -} - -bool CompOnePolygon(RPolygon &p1, RPolygon &p2) { - int xl1, xh1, yl1, yh1; - int xl2, xh2, yl2, yh2; - p1.get(&xl1, &yl1, &xh1, &yh1); - p2.get(&xl2, &yl2, &xh2, &yh2); - if(yl1>yl2) return true; - if(yl1 xl2); -} - -bool PolygonsEqual(RPolygon *p1, RPolygon *p2) { - int xl1, xh1, yl1, yh1; - int xl2, xh2, yl2, yh2; - p1->get(&xl1, &yl1, &xh1, &yh1); - p2->get(&xl2, &yl2, &xh2, &yh2); - return ((xl1 == xl2) && (yl1==yl2) && (xh1 == xh2) && (yh1 == yh2)); -} - -bool ComparePolygonMaps(Polygon_map_t *map1, Polygon_map_t *map2) { - // create two new polygon maps, copy the pointers from the original to these. - // we have to skip the first polygon, which is the size of the whole map - Polygon_map_t *t1, *t2; - bool is_ok = true; - t1 = new Polygon_map_t; - t1->reserve(map1->size()); - for(unsigned int i=1;isize(); i++) { - t1->push_back(map1->at(i)); - } - t2 = new Polygon_map_t; - t2->reserve(map2->size()); - for(unsigned int i=1;isize();i++) { - t2->push_back(map2->at(i)); - } - // sort the two created maps by (xlow, ylow) - sort(t1->begin(), t1->end()); - sort(t2->begin(), t2->end()); - // compare each element of both maps. - if(t1->size() != t2->size()) { - cout << "Error: maps not the same size ( " << int(t1->size()) << " vs " << int(t2->size()) << ")." << std::endl; - } - int maxSize = (int)((t1->size() < t2->size()) ? t1->size() : t2->size()); - for(int i=0; i < maxSize; i++) { - if(!PolygonsEqual(&((*t1)[i]), &((*t2)[i]))) { - cout << "Error: polygons unequal (" << (*t1)[i] << " vs " << (*t2)[i] << std::endl; - is_ok = false; - } - } - delete t1; - delete t2; - return is_ok; -} - -void SetRandomSeed(int newSeed) { - srand((unsigned)newSeed); -} - -int NextRan(int n) { - // assert(n > 1); - // if we are given 1, we will just return 0 - //assert(n < RAND_MAX); - int rrand = rand() << 15 | rand(); - if(rrand < 0) rrand = -rrand; - return rrand % n; -} - -std::ostream& operator<<(std::ostream& s, const RPolygon &p) { - int xl, yl, xh, yh; - p.get(&xl, &yl, &xh, &yh); - return s << "[(" << xl << "," << yl << ")-(" << xh << "," << yh << ")] "; -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/polymain.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/polymain.h deleted file mode 100644 index 0a02a3da1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/polymain.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#include "pover_global.h" // for declaration of DEFINE and INIT - -DEFINE Polygon_map_t *gPolymap1 INIT(0); -DEFINE Polygon_map_t *gPolymap2 INIT(0); -DEFINE Polygon_map_t *gResultMap INIT(0); - -extern void Usage(int argc, char **argv); - -extern bool ParseCmdLine(int argc, char **argv ); - -extern bool GenerateMap(Polygon_map_t **newMap, int xSize, int ySize, int gNPolygons, colorcomp_t maxR, colorcomp_t maxG, colorcomp_t maxB); - -extern bool PolygonsOverlap(RPolygon *p1, RPolygon *p2, int &xl, int &yl, int &xh, int &yh); - -extern void CheckPolygonMap(Polygon_map_t *checkMap); - -extern bool CompOnePolygon(RPolygon *p1, RPolygon *p2); - -extern bool PolygonsEqual(RPolygon *p1, RPolygon *p2); - -extern bool ComparePolygonMaps(Polygon_map_t *map1, Polygon_map_t *map2); - -extern void SetRandomSeed(int newSeed); - -extern int NextRan(int n); diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/polyover.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/polyover.cpp deleted file mode 100644 index 58602a5ce..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/polyover.cpp +++ /dev/null @@ -1,676 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -// Polygon overlay -// -#include -#include -#include -#include -#include -#include "tbb/tick_count.h" -#include "tbb/blocked_range.h" -#include "tbb/task_scheduler_init.h" -#include "tbb/parallel_for.h" -#include "tbb/mutex.h" -#include "tbb/spin_mutex.h" -#include "polyover.h" -#include "polymain.h" -#include "pover_video.h" - -using namespace std; - -/*! -* @brief intersects a polygon with a map, adding any results to output map -* -* @param[out] resultMap output map (must be allocated) -* @param[in] polygon to be intersected -* @param[in] map intersected against -* @param[in] lock to use when adding output polygons to result map -* -*/ -void OverlayOnePolygonWithMap(Polygon_map_t *resultMap, RPolygon *myPoly, Polygon_map_t *map2, tbb::spin_mutex *rMutex) { - int r1, g1, b1, r2, g2, b2; - int myr=0; - int myg=0; - int myb=0; - int p1Area = myPoly->area(); - for(unsigned int j=1; (j < map2->size()) && (p1Area > 0); j++) { - RPolygon *p2 = &((*map2)[j]); - RPolygon *pnew; - int newxMin, newxMax, newyMin, newyMax; - myPoly->getColor(&r1, &g1, &b1); - if(PolygonsOverlap(myPoly, p2, newxMin, newyMin, newxMax, newyMax)) { - p2->getColor(&r2, &g2, &b2); - myr = r1 + r2; - myg = g1 + g2; - myb = b1 + b2; - p1Area -= (newxMax-newxMin+1)*(newyMax - newyMin + 1); - if(rMutex) { - tbb::spin_mutex::scoped_lock lock(*rMutex); - resultMap->push_back(RPolygon(newxMin, newyMin, newxMax, newyMax, myr, myg, myb)); - } - else { - resultMap->push_back(RPolygon(newxMin, newyMin, newxMax, newyMax, myr, myg, myb)); - } - } - } -} - -/*! -* @brief Serial version of polygon overlay -* @param[out] output map -* @param[in] first map (map that individual polygons are taken from) -* @param[in] second map (map passed to OverlayOnePolygonWithMap) -*/ -void SerialOverlayMaps(Polygon_map_t **resultMap, Polygon_map_t *map1, Polygon_map_t *map2) { - cout << "SerialOverlayMaps called" << std::endl; - *resultMap = new Polygon_map_t; - - RPolygon *p0 = &((*map1)[0]); - int mapxSize, mapySize, ignore1, ignore2; - p0->get(&ignore1, &ignore2, &mapxSize, &mapySize); - (*resultMap)->reserve(mapxSize*mapySize); // can't be any bigger than this - // push the map size as the first polygon, - (*resultMap)->push_back(RPolygon(0,0,mapxSize, mapySize)); - for(unsigned int i=1; i < map1->size(); i++) { - RPolygon *p1 = &((*map1)[i]); - OverlayOnePolygonWithMap(*resultMap, p1, map2, NULL); - } -} - -/*! -* @class ApplyOverlay -* @brief Simple version of parallel overlay (make parallel on polygons in map1) -*/ -class ApplyOverlay { - Polygon_map_t *m_map1, *m_map2, *m_resultMap; - tbb::spin_mutex *m_rMutex; -public: - /*! - * @brief functor to apply - * @param[in] r range of polygons to intersect from map1 - */ - void operator()( const tbb::blocked_range & r) const { - PRINT_DEBUG("From " << r.begin() << " to " << r.end()); - for(int i=r.begin(); i != r.end(); i++) { - RPolygon *myPoly = &((*m_map1)[i]); - OverlayOnePolygonWithMap(m_resultMap, myPoly, m_map2, m_rMutex); - } - } - ApplyOverlay(Polygon_map_t *resultMap, Polygon_map_t *map1, Polygon_map_t *map2, tbb::spin_mutex *rmutex) : - m_resultMap(resultMap), m_map1(map1), m_map2(map2), m_rMutex(rmutex) {} -}; - -/*! -* @brief apply the parallel algorithm -* @param[out] result_map generated map -* @param[in] polymap1 first map to be applied (algorithm is parallel on this map) -* @param[in] polymap2 second map. -*/ -void NaiveParallelOverlay(Polygon_map_t *&result_map, Polygon_map_t &polymap1, Polygon_map_t &polymap2) { -// ----------------------------------- - bool automatic_threadcount = false; - - if(gThreadsLow == THREADS_UNSET || gThreadsLow == tbb::task_scheduler_init::automatic) { - gThreadsLow = gThreadsHigh = tbb::task_scheduler_init::automatic; - automatic_threadcount = true; - } - result_map = new Polygon_map_t; - - RPolygon *p0 = &(polymap1[0]); - int mapxSize, mapySize, ignore1, ignore2; - p0->get(&ignore1, &ignore2, &mapxSize, &mapySize); - result_map->reserve(mapxSize*mapySize); // can't be any bigger than this - // push the map size as the first polygon, - tbb::spin_mutex *resultMutex = new tbb::spin_mutex(); - int grain_size = gGrainSize; - - for(int nthreads = gThreadsLow; nthreads <= gThreadsHigh; nthreads++) { - tbb::task_scheduler_init init(nthreads); - if(gIsGraphicalVersion) { - RPolygon *xp = new RPolygon(0, 0, gMapXSize-1, gMapYSize-1, 0, 0, 0); // Clear the output space - delete xp; - } - // put size polygon in result map - result_map->push_back(RPolygon(0,0,mapxSize, mapySize)); - - tbb::tick_count t0 = tbb::tick_count::now(); - tbb::parallel_for (tbb::blocked_range(1,(int)(polymap1.size()),grain_size), ApplyOverlay(result_map, &polymap1, &polymap2, resultMutex)); - tbb::tick_count t1 = tbb::tick_count::now(); - - double naiveParallelTime = (t1-t0).seconds() * 1000; - cout << "Naive parallel with spin lock and "; - if(automatic_threadcount) cout << "automatic"; - else cout << nthreads; - cout << ((nthreads == 1) ? " thread" : " threads"); - cout << " took " << naiveParallelTime << " msec : speedup over serial " << (gSerialTime / naiveParallelTime) << std::endl; - if(gCsvFile.is_open()) { - gCsvFile << "," << naiveParallelTime; - } -#if _DEBUG - CheckPolygonMap(result_map); - ComparePolygonMaps(result_map, gResultMap); -#endif - result_map->clear(); - } - delete resultMutex; - if(gCsvFile.is_open()) { - gCsvFile << std::endl; - } -// ----------------------------------- -} - -template -void split_at( Flagged_map_t& in_map, Flagged_map_t &left_out, Flagged_map_t &right_out, const T median) { - left_out.reserve(in_map.size()); - right_out.reserve(in_map.size()); - for(Flagged_map_t::iterator i = in_map.begin(); i != in_map.end(); ++i ) { - RPolygon *p = i->p(); - if(p->xmax() < median) { - // in left map - left_out.push_back(*i); - } - else if(p->xmin() >= median) { - right_out.push_back(*i); - // in right map - } - else { - // in both maps. - left_out.push_back(*i); - right_out.push_back(RPolygon_flagged(p, true)); - } - } -} - -// range that splits the maps as well as the range. the flagged_map_t are -// vectors of pointers, and each range owns its maps (has to free them on destruction.) -template -class blocked_range_with_maps { - - typedef blocked_range my_range_type; - -private: - - my_range_type my_range; - Flagged_map_t my_map1; - Flagged_map_t my_map2; - -public: - - blocked_range_with_maps( - T begin, T end, typename my_range_type::size_type my_grainsize, - Polygon_map_t *p1, Polygon_map_t *p2 - ) - : my_range(begin, end, my_grainsize) - { - my_map1.reserve(p1->size()); - my_map2.reserve(p2->size()); - for(int i=1; i < p1->size(); ++i) { - my_map1.push_back(RPolygon_flagged(&((*p1)[i]), false)); - } - for(int i=1; i < p2->size(); ++i) { - my_map2.push_back(RPolygon_flagged(&(p2->at(i)), false)); - } - } - - // copy-constructor required for deep copy of flagged maps. One copy is done at the start of the - // parallel for. - blocked_range_with_maps(const blocked_range_with_maps& other): my_range(other.my_range), my_map1(other.my_map1), my_map2(other.my_map2) { } - bool empty() const { return my_range.empty(); } - bool is_divisible() const { return my_range.is_divisible(); } - -#if _DEBUG - void check_my_map() { - assert(my_range.begin() <= my_range.end()); - for(Flagged_map_t::iterator ci = my_map1.begin(); ci != my_map1.end(); ++ci) { - RPolygon *rp = ci->p(); - assert(rp->xmax() >= my_range.begin()); - assert(rp->xmin() < my_range.end()); - } - for(Flagged_map_t::iterator ci = my_map2.begin(); ci != my_map2.end(); ++ci) { - RPolygon *rp = ci->p(); - assert(rp->xmax() >= my_range.begin()); - assert(rp->xmin() < my_range.end()); - } - } - - void dump_map( Flagged_map_t& mapx) { - cout << " ** MAP **\n"; - for( Flagged_map_t::iterator ci = mapx.begin(); ci != mapx.end(); ++ci) { - cout << *(ci->p()); - if(ci->isDuplicate()) { - cout << " -- is_duplicate"; - } - cout << "\n"; - } - cout << "\n"; - } -#endif - - blocked_range_with_maps(blocked_range_with_maps& lhs_r, split ) : my_range(my_range_type(lhs_r.my_range, split())) { - // lhs_r.my_range makes my_range from [median, high) and rhs_r.my_range from [low, median) - Flagged_map_t original_map1 = lhs_r.my_map1; - Flagged_map_t original_map2 = lhs_r.my_map2; - lhs_r.my_map1.clear(); - lhs_r.my_map2.clear(); - split_at(original_map1, lhs_r.my_map1, my_map1, my_range.begin()); - split_at(original_map2, lhs_r.my_map2, my_map2, my_range.begin()); -#if _DEBUG - this->check_my_map(); - lhs_r.check_my_map(); -#endif - } - - const my_range_type& range() const { return my_range; } - Flagged_map_t& map1() { return my_map1; } - Flagged_map_t& map2() { return my_map2; } -}; - -/*! -* @class ApplySplitOverlay -* @brief parallel by columnar strip -*/ -class ApplySplitOverlay { - Polygon_map_t *m_map1, *m_map2, *m_resultMap; - tbb::spin_mutex *m_rMutex; -public: - /*! - * @brief functor for columnar parallel version - * @param[in] r range of map to be operated on - */ - void operator()(/*const*/ blocked_range_with_maps & r) const { -#ifdef _DEBUG - // if we are debugging, serialize the method. That way we can - // see what is happening in each strip without the interleaving - // confusing things. - tbb::spin_mutex::scoped_lock lock(*m_rMutex); - cout << unitbuf << "From " << r.range().begin() << " to " << r.range().end()-1 << std::endl; -#endif - // get yMapSize - int r1, g1, b1, r2, g2, b2; - int myr=-1; - int myg=-1; - int myb=-1; - int i1, i2, i3, yMapSize; - (*m_map1)[0].get(&i1, &i2, &i3, &yMapSize); - - Flagged_map_t &fmap1 = r.map1(); - Flagged_map_t &fmap2 = r.map2(); - - // When intersecting polygons from fmap1 and fmap2, if BOTH are flagged - // as duplicate, don't add the result to the output map. We can still - // intersect them, because we are keeping track of how much of the polygon - // is left over from intersecting, and quitting when the polygon is - // used up. - - for(unsigned int ii=0; ii < fmap1.size(); ii++) { - RPolygon *p1 = fmap1[ii].p(); - bool is_dup = fmap1[ii].isDuplicate(); - int parea = p1->area(); - p1->getColor(&r1, &g1, &b1); - for(unsigned int jj=0;(jj < fmap2.size()) && (parea > 0); jj++) { - int xl, yl, xh, yh; - RPolygon *p2 = fmap2[jj].p(); - if(PolygonsOverlap(p1, p2, xl, yl, xh, yh)) { - if(!(is_dup && fmap2[jj].isDuplicate())) { - p2->getColor(&r2, &g2, &b2); - myr = r1 + r2; - myg = g1 + g2; - myb = b1 + b2; -#ifdef _DEBUG -#else - tbb::spin_mutex::scoped_lock lock(*m_rMutex); -#endif - (*m_resultMap).push_back(RPolygon(xl, yl, xh, yh, myr, myg, myb)); - } - parea -= (xh-xl+1)*(yh-yl+1); - } - } - } - } - - ApplySplitOverlay(Polygon_map_t *resultMap, Polygon_map_t *map1, Polygon_map_t *map2, tbb::spin_mutex *rmutex) : - m_resultMap(resultMap), m_map1(map1), m_map2(map2), m_rMutex(rmutex) {} -}; - - -/*! -* @brief intersects two maps strip-wise -* -* @param[out] resultMap output map (must be allocated) -* @param[in] polymap1 map to be intersected -* @param[in] polymap2 map to be intersected -*/ -void SplitParallelOverlay(Polygon_map_t **result_map, Polygon_map_t *polymap1, Polygon_map_t *polymap2) { - int nthreads; - bool automatic_threadcount = false; - double domainSplitParallelTime; - tbb::tick_count t0, t1; - tbb::spin_mutex *resultMutex; - if(gThreadsLow == THREADS_UNSET || gThreadsLow == tbb::task_scheduler_init::automatic ) { - gThreadsLow = gThreadsHigh = tbb::task_scheduler_init::automatic; - automatic_threadcount = true; - } - *result_map = new Polygon_map_t; - - RPolygon *p0 = &((*polymap1)[0]); - int mapxSize, mapySize, ignore1, ignore2; - p0->get(&ignore1, &ignore2, &mapxSize, &mapySize); - (*result_map)->reserve(mapxSize*mapySize); // can't be any bigger than this - resultMutex = new tbb::spin_mutex(); - - int grain_size; -#ifdef _DEBUG - grain_size = gMapXSize / 4; -#else - grain_size = gGrainSize; -#endif - for(nthreads = gThreadsLow; nthreads <= gThreadsHigh; nthreads++) { - tbb::task_scheduler_init init(nthreads); - if(gIsGraphicalVersion) { - RPolygon *xp = new RPolygon(0, 0, gMapXSize-1, gMapYSize-1, 0, 0, 0); // Clear the output space - delete xp; - } - // push the map size as the first polygon, - (*result_map)->push_back(RPolygon(0,0,mapxSize, mapySize)); - t0 = tbb::tick_count::now(); - tbb::parallel_for (blocked_range_with_maps(0,(int)(mapxSize+1),grain_size, polymap1, polymap2), ApplySplitOverlay((*result_map), polymap1, polymap2, resultMutex)); - t1 = tbb::tick_count::now(); - domainSplitParallelTime = (t1-t0).seconds()*1000; - cout << "Splitting parallel with spin lock and "; - if(automatic_threadcount) cout << "automatic"; - else cout << nthreads; - cout << ((nthreads == 1) ? " thread" : " threads"); - cout << " took " << domainSplitParallelTime << " msec : speedup over serial " << (gSerialTime / domainSplitParallelTime) << std::endl; - if(gCsvFile.is_open()) { - gCsvFile << "," << domainSplitParallelTime; - } -#if _DEBUG - CheckPolygonMap(*result_map); - ComparePolygonMaps(*result_map, gResultMap); -#endif - (*result_map)->clear(); - - } - delete resultMutex; - if(gCsvFile.is_open()) { - gCsvFile << std::endl; - } -} - -class ApplySplitOverlayCV { - Polygon_map_t *m_map1, *m_map2; - concurrent_Polygon_map_t *m_resultMap; -public: - /*! - * @brief functor for columnar parallel version - * @param[in] r range of map to be operated on - */ - void operator()(blocked_range_with_maps & r) const { - // get yMapSize - int r1, g1, b1, r2, g2, b2; - int myr=-1; - int myg=-1; - int myb=-1; - int i1, i2, i3, yMapSize; - (*m_map1)[0].get(&i1, &i2, &i3, &yMapSize); - - Flagged_map_t &fmap1 = r.map1(); - Flagged_map_t &fmap2 = r.map2(); - - // When intersecting polygons from fmap1 and fmap2, if BOTH are flagged - // as duplicate, don't add the result to the output map. We can still - // intersect them, because we are keeping track of how much of the polygon - // is left over from intersecting, and quitting when the polygon is - // used up. - - for(unsigned int ii=0; ii < fmap1.size(); ii++) { - RPolygon *p1 = fmap1[ii].p(); - bool is_dup = fmap1[ii].isDuplicate(); - int parea = p1->area(); - p1->getColor(&r1, &g1, &b1); - for(unsigned int jj=0;(jj < fmap2.size()) && (parea > 0); jj++) { - int xl, yl, xh, yh; - RPolygon *p2 = fmap2[jj].p(); - if(PolygonsOverlap(p1, p2, xl, yl, xh, yh)) { - if(!(is_dup && fmap2[jj].isDuplicate())) { - p2->getColor(&r2, &g2, &b2); - myr = r1 + r2; - myg = g1 + g2; - myb = b1 + b2; - (*m_resultMap).push_back(RPolygon(xl, yl, xh, yh, myr, myg, myb)); - } - parea -= (xh-xl+1)*(yh-yl+1); - } - } - } - } - - ApplySplitOverlayCV(concurrent_Polygon_map_t *resultMap, Polygon_map_t *map1, Polygon_map_t *map2 ) : - m_resultMap(resultMap), m_map1(map1), m_map2(map2) {} -}; - - -/*! -* @brief intersects two maps strip-wise, accumulating into a concurrent_vector -* -* @param[out] resultMap output map (must be allocated) -* @param[in] polymap1 map to be intersected -* @param[in] polymap2 map to be intersected -*/ -void SplitParallelOverlayCV(concurrent_Polygon_map_t **result_map, Polygon_map_t *polymap1, Polygon_map_t *polymap2) { - int nthreads; - bool automatic_threadcount = false; - double domainSplitParallelTime; - tbb::tick_count t0, t1; - if(gThreadsLow == THREADS_UNSET || gThreadsLow == tbb::task_scheduler_init::automatic ) { - gThreadsLow = gThreadsHigh = tbb::task_scheduler_init::automatic; - automatic_threadcount = true; - } - *result_map = new concurrent_Polygon_map_t; - - RPolygon *p0 = &((*polymap1)[0]); - int mapxSize, mapySize, ignore1, ignore2; - p0->get(&ignore1, &ignore2, &mapxSize, &mapySize); - // (*result_map)->reserve(mapxSize*mapySize); // can't be any bigger than this - - int grain_size; -#ifdef _DEBUG - grain_size = gMapXSize / 4; -#else - grain_size = gGrainSize; -#endif - for(nthreads = gThreadsLow; nthreads <= gThreadsHigh; nthreads++) { - tbb::task_scheduler_init init(nthreads); - if(gIsGraphicalVersion) { - RPolygon *xp = new RPolygon(0, 0, gMapXSize-1, gMapYSize-1, 0, 0, 0); // Clear the output space - delete xp; - } - // push the map size as the first polygon, - (*result_map)->push_back(RPolygon(0,0,mapxSize, mapySize)); - t0 = tbb::tick_count::now(); - tbb::parallel_for (blocked_range_with_maps(0,(int)(mapxSize+1),grain_size, polymap1, polymap2), ApplySplitOverlayCV((*result_map), polymap1, polymap2)); - t1 = tbb::tick_count::now(); - domainSplitParallelTime = (t1-t0).seconds()*1000; - cout << "Splitting parallel with concurrent_vector and "; - if(automatic_threadcount) cout << "automatic"; - else cout << nthreads; - cout << ((nthreads == 1) ? " thread" : " threads"); - cout << " took " << domainSplitParallelTime << " msec : speedup over serial " << (gSerialTime / domainSplitParallelTime) << std::endl; - if(gCsvFile.is_open()) { - gCsvFile << "," << domainSplitParallelTime; - } -#if _DEBUG - { - - Polygon_map_t s_result_map; - for(concurrent_Polygon_map_t::const_iterator ci = (*result_map)->begin(); ci != (*result_map)->end(); ++ci) { - s_result_map.push_back(*ci); - } - CheckPolygonMap(&s_result_map); - ComparePolygonMaps(&s_result_map, gResultMap); - } -#endif - (*result_map)->clear(); - - } - - if(gCsvFile.is_open()) { - gCsvFile << std::endl; - } - -} - -// ------------------------------------------------------ - -class ApplySplitOverlayETS { - Polygon_map_t *m_map1, *m_map2; - ETS_Polygon_map_t *m_resultMap; -public: - /*! - * @brief functor for columnar parallel version - * @param[in] r range of map to be operated on - */ - void operator()(blocked_range_with_maps & r) const { - // get yMapSize - int r1, g1, b1, r2, g2, b2; - int myr=-1; - int myg=-1; - int myb=-1; - int i1, i2, i3, yMapSize; - (*m_map1)[0].get(&i1, &i2, &i3, &yMapSize); - - Flagged_map_t &fmap1 = r.map1(); - Flagged_map_t &fmap2 = r.map2(); - - // When intersecting polygons from fmap1 and fmap2, if BOTH are flagged - // as duplicate, don't add the result to the output map. We can still - // intersect them, because we are keeping track of how much of the polygon - // is left over from intersecting, and quitting when the polygon is - // used up. - - for(unsigned int ii=0; ii < fmap1.size(); ii++) { - RPolygon *p1 = fmap1[ii].p(); - bool is_dup = fmap1[ii].isDuplicate(); - int parea = p1->area(); - p1->getColor(&r1, &g1, &b1); - for(unsigned int jj=0;(jj < fmap2.size()) && (parea > 0); jj++) { - int xl, yl, xh, yh; - RPolygon *p2 = fmap2[jj].p(); - if(PolygonsOverlap(p1, p2, xl, yl, xh, yh)) { - if(!(is_dup && fmap2[jj].isDuplicate())) { - p2->getColor(&r2, &g2, &b2); - myr = r1 + r2; - myg = g1 + g2; - myb = b1 + b2; - (*m_resultMap).local().push_back(RPolygon(xl, yl, xh, yh, myr, myg, myb)); - } - parea -= (xh-xl+1)*(yh-yl+1); - } - } - } - } - - ApplySplitOverlayETS(ETS_Polygon_map_t *resultMap, Polygon_map_t *map1, Polygon_map_t *map2 ) : - m_resultMap(resultMap), m_map1(map1), m_map2(map2) {} -}; - - -/*! -* @brief intersects two maps strip-wise, accumulating into an ets variable -* -* @param[out] resultMap output map (must be allocated) -* @param[in] polymap1 map to be intersected -* @param[in] polymap2 map to be intersected -*/ -void SplitParallelOverlayETS(ETS_Polygon_map_t **result_map, Polygon_map_t *polymap1, Polygon_map_t *polymap2) { - int nthreads; - bool automatic_threadcount = false; - double domainSplitParallelTime; - tbb::tick_count t0, t1; - if(gThreadsLow == THREADS_UNSET || gThreadsLow == tbb::task_scheduler_init::automatic ) { - gThreadsLow = gThreadsHigh = tbb::task_scheduler_init::automatic; - automatic_threadcount = true; - } - *result_map = new ETS_Polygon_map_t; - - RPolygon *p0 = &((*polymap1)[0]); - int mapxSize, mapySize, ignore1, ignore2; - p0->get(&ignore1, &ignore2, &mapxSize, &mapySize); - // (*result_map)->reserve(mapxSize*mapySize); // can't be any bigger than this - - int grain_size; -#ifdef _DEBUG - grain_size = gMapXSize / 4; -#else - grain_size = gGrainSize; -#endif - for(nthreads = gThreadsLow; nthreads <= gThreadsHigh; nthreads++) { - tbb::task_scheduler_init init(nthreads); - if(gIsGraphicalVersion) { - RPolygon *xp = new RPolygon(0, 0, gMapXSize-1, gMapYSize-1, 0, 0, 0); // Clear the output space - delete xp; - } - // push the map size as the first polygon, - // This polygon needs to be first, so we can push it at the start of a combine. - // (*result_map)->local.push_back(RPolygon(0,0,mapxSize, mapySize)); - t0 = tbb::tick_count::now(); - tbb::parallel_for (blocked_range_with_maps(0,(int)(mapxSize+1),grain_size, polymap1, polymap2), ApplySplitOverlayETS((*result_map), polymap1, polymap2)); - t1 = tbb::tick_count::now(); - domainSplitParallelTime = (t1-t0).seconds()*1000; - cout << "Splitting parallel with ETS and "; - if(automatic_threadcount) cout << "automatic"; - else cout << nthreads; - cout << ((nthreads == 1) ? " thread" : " threads"); - cout << " took " << domainSplitParallelTime << " msec : speedup over serial " << (gSerialTime / domainSplitParallelTime) << std::endl; - if(gCsvFile.is_open()) { - gCsvFile << "," << domainSplitParallelTime; - } -#if _DEBUG - { - - Polygon_map_t s_result_map; - flattened2d psv = flatten2d(**result_map); - s_result_map.push_back(RPolygon(0,0,mapxSize, mapySize)); - for(flattened2d::const_iterator ci = psv.begin(); ci != psv.end(); ++ci) { - s_result_map.push_back(*ci); - } - CheckPolygonMap(&s_result_map); - ComparePolygonMaps(&s_result_map, gResultMap); - } -#endif - (*result_map)->clear(); - - } - - if(gCsvFile.is_open()) { - gCsvFile << std::endl; - } - -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/polyover.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/polyover.h deleted file mode 100644 index a3e82c38a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/polyover.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/*! - * polyover.h : extern declarations for polyover.cpp -*/ -#include "rpolygon.h" -#include "tbb/mutex.h" -#include "tbb/spin_mutex.h" - -extern void OverlayOnePolygonWithMap(Polygon_map_t *resultMap, RPolygon *myPoly, Polygon_map_t *map2, tbb::spin_mutex *rMutex); - -extern void SerialOverlayMaps(Polygon_map_t **resultMap, Polygon_map_t *map1, Polygon_map_t *map2); - -// extern void NaiveParallelOverlay(Polygon_map_t **result_map, Polygon_map_t *polymap1, Polygon_map_t *polymap2); -extern void NaiveParallelOverlay(Polygon_map_t *&result_map, Polygon_map_t &polymap1, Polygon_map_t &polymap2); - -extern void SplitParallelOverlay(Polygon_map_t **result_map, Polygon_map_t *polymap1, Polygon_map_t *polymap2); -extern void SplitParallelOverlayCV(concurrent_Polygon_map_t **result_map, Polygon_map_t *polymap1, Polygon_map_t *polymap2); -extern void SplitParallelOverlayETS(ETS_Polygon_map_t **result_map, Polygon_map_t *polymap1, Polygon_map_t *polymap2); - -extern void CheckPolygonMap(Polygon_map_t *checkMap); -extern bool ComparePolygonMaps(Polygon_map_t *map1, Polygon_map_t *map2); - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/pover_global.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/pover_global.h deleted file mode 100644 index ab504decb..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/pover_global.h +++ /dev/null @@ -1,101 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -// -// pover_global.h -// -#ifndef _POVER_GLOBAL_H_ -#define _POVER_GLOBAL_H_ - -#ifdef _MAIN_C_ -#define DEFINE // nothing -#define STATIC static -#define INIT(n) = n -#else // not in main file -#define DEFINE extern -#define STATIC // nothing -#define INIT(n) // nothing -#endif // _MAIN_C_ - -#include -#include - -#ifdef _WINDOWS -#include -#endif - -// this Polygon class only supports rectangles -DEFINE int gDrawXOffset INIT(0); // used for drawing polygons -DEFINE int gDrawYOffset INIT(0); -DEFINE int gPolyXBoxSize INIT(0); // number of pixels orresponding to one "square" (x) -DEFINE int gPolyYBoxSize INIT(0); // number of pixels orresponding to one "square" (y) -DEFINE bool gDoDraw INIT(false); // render the boxes - -#define THREADS_UNSET 0 -DEFINE int gThreadsLow INIT(THREADS_UNSET); -DEFINE int gThreadsHigh INIT(THREADS_UNSET); - -DEFINE std::ofstream gCsvFile; -DEFINE double gSerialTime; -DEFINE char *gCsvFilename INIT(NULL); - -#define BORDER_SIZE 10 // number of pixels between maps - -// The map size and the number of polygons depends on the version we are compiling. -// If DEBUG then it is small; else it is large. - -#ifdef _DEBUG -DEFINE int gNPolygons INIT(30); // default number of polygons in map -DEFINE int gMapXSize INIT(30); -DEFINE int gMapYSize INIT(30); -DEFINE int gGrainSize INIT(5); -#else -DEFINE int gNPolygons INIT(50000); // default number of polygons in map -DEFINE int gMapXSize INIT(1000); -DEFINE int gMapYSize INIT(1000); -DEFINE int gGrainSize INIT(20); -#endif -DEFINE int gMyRandomSeed INIT(2453185); - -DEFINE bool gIsGraphicalVersion INIT(false); - -typedef enum { - NORTH_SIDE, - EAST_SIDE, - SOUTH_SIDE, - WEST_SIDE -} allSides; - -#if _DEBUG -#define PRINT_DEBUG(x) (cout << x << std::endl) -#else -#define PRINT_DEBUG(x) -#endif - - -#endif // _POVER_GLOBAL_H_ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/pover_video.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/pover_video.cpp deleted file mode 100644 index fbae26d89..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/pover_video.cpp +++ /dev/null @@ -1,183 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -// Support for GUI display for Polygon overlay demo - -#define VIDEO_WINMAIN_ARGS -#include -#include "polyover.h" -#include "polymain.h" -#include "pover_video.h" -#include "tbb/tick_count.h" -#include "tbb/task_scheduler_init.h" -#ifndef _WIN32 -#include -#include - -void rt_sleep(int msec) { - usleep(msec*1000); -} - -#else //_WIN32 - -#undef OLDUNIXTIME -#undef STDTIME - -#include - -void rt_sleep(int msec) { - Sleep(msec); -} - -#endif /* _WIN32 */ - -using namespace std; - -bool g_next_frame() { - if(++n_next_frame_calls >= frame_skips) { // the data race here is benign - n_next_frame_calls = 0; - return gVideo->next_frame(); - } - return gVideo->running; -} - -bool g_last_frame() { - if(n_next_frame_calls) return gVideo->next_frame(); - return gVideo->running; -} - -bool initializeVideo(int argc, char **argv) { - //pover_video *l_video = new pover_video(); - //gVideo = l_video; - gVideo->init_console(); // don't check return code. - gVideo->title = g_windowTitle; - g_useGraphics = gVideo->init_window(g_xwinsize, g_ywinsize); - return true; -} - -void pover_video::on_process() { - tbb::tick_count t0, t1; - double naiveParallelTime, domainSplitParallelTime; - // create map1 These could be done in parallel, if the pseudorandom number generator were re-seeded. - GenerateMap(&gPolymap1, gMapXSize, gMapYSize, gNPolygons, /*red*/255, /*green*/0, /*blue*/127); - // create map2 - GenerateMap(&gPolymap2, gMapXSize, gMapYSize, gNPolygons, /*red*/0, /*green*/255, /*blue*/127); - // - // Draw source maps - gDrawXOffset = map1XLoc; - gDrawYOffset = map1YLoc; - for(int i=0; i < int(gPolymap1->size()); i++) { - (*gPolymap1)[i].drawPoly(); - } - gDrawXOffset = map2XLoc; - gDrawYOffset = map2YLoc; - for(int i=0; i < int(gPolymap2->size()) ;i++) { - (*gPolymap2)[i].drawPoly(); - } - gDoDraw = true; - - // run serial map generation - gDrawXOffset = maprXLoc; - gDrawYOffset = maprYLoc; - { - RPolygon *xp = new RPolygon(0, 0, gMapXSize-1, gMapYSize-1, 0, 0, 0); // Clear the output space - delete xp; - t0 = tbb::tick_count::now(); - SerialOverlayMaps(&gResultMap, gPolymap1, gPolymap2); - t1 = tbb::tick_count::now(); - cout << "Serial overlay took " << (t1-t0).seconds()*1000 << " msec" << std::endl; - gSerialTime = (t1-t0).seconds()*1000; -#if _DEBUG - CheckPolygonMap(gResultMap); - // keep the map for comparison purposes. -#else - delete gResultMap; -#endif - if(gCsvFile.is_open()) { - gCsvFile << "Serial Time," << gSerialTime << std::endl; - gCsvFile << "Threads,"; - if(gThreadsLow == THREADS_UNSET || gThreadsLow == tbb::task_scheduler_init::automatic) { - gCsvFile << "Threads,Automatic"; - } - else { - for(int i=gThreadsLow; i <= gThreadsHigh; i++) { - gCsvFile << i; - if(i < gThreadsHigh) gCsvFile << ","; - } - } - gCsvFile << std::endl; - } - if(gIsGraphicalVersion) rt_sleep(2000); - } - // run naive parallel map generation - { - Polygon_map_t *resultMap; - if(gCsvFile.is_open()) { - gCsvFile << "Naive Time"; - } - NaiveParallelOverlay(resultMap, *gPolymap1, *gPolymap2); - delete resultMap; - if(gIsGraphicalVersion) rt_sleep(2000); - } - // run split map generation - { - Polygon_map_t *resultMap; - if(gCsvFile.is_open()) { - gCsvFile << "Split Time"; - } - SplitParallelOverlay(&resultMap, gPolymap1, gPolymap2); - delete resultMap; - if(gIsGraphicalVersion) rt_sleep(2000); - } - // split, accumulating into concurrent vector - { - concurrent_Polygon_map_t *cresultMap; - if(gCsvFile.is_open()) { - gCsvFile << "Split CV time"; - } - SplitParallelOverlayCV(&cresultMap, gPolymap1, gPolymap2); - delete cresultMap; - if(gIsGraphicalVersion) rt_sleep(2000); - } - // split, accumulating into ETS - { - ETS_Polygon_map_t *cresultMap; - if(gCsvFile.is_open()) { - gCsvFile << "Split ETS time"; - } - SplitParallelOverlayETS(&cresultMap, gPolymap1, gPolymap2); - delete cresultMap; - if(gIsGraphicalVersion) rt_sleep(2000); - } - if(gIsGraphicalVersion) rt_sleep(8000); - delete gPolymap1; - delete gPolymap2; -#if _DEBUG - delete gResultMap; -#endif -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/pover_video.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/pover_video.h deleted file mode 100644 index 9303d4bed..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/pover_video.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -// support for GUI for polygon overlay demo -// -#ifndef _POVER_VIDEO_H_ -#define _POVER_VIDEO_H_ -#include "../../common/gui/video.h" - -#include "pover_global.h" // for declaration of DEFINE and INIT - -DEFINE class video *gVideo INIT(0); - -DEFINE int n_next_frame_calls INIT(0); -DEFINE int frame_skips INIT(10); -extern bool g_next_frame(); -extern bool g_last_frame(); - -class pover_video: public video { - void on_process(); -public: -#ifdef _WINDOWS - bool graphic_display(){return video::win_hInstance != (HINSTANCE)NULL;} -#else - bool graphic_display() { return true;} // fix this for Linux -#endif - //void on_key(int key); -}; - -DEFINE int g_xwinsize INIT(1024); -DEFINE int g_ywinsize INIT(768); - -DEFINE int map1XLoc INIT(10); -DEFINE int map1YLoc INIT(10); -DEFINE int map2XLoc INIT(270); -DEFINE int map2YLoc INIT(10); -DEFINE int maprXLoc INIT(530); -DEFINE int maprYLoc INIT(10); - -DEFINE const char *g_windowTitle INIT("Polygon Overlay"); -DEFINE bool g_useGraphics INIT(true); - -extern bool initializeVideo(int argc, char **argv); - -extern void rt_sleep(int msec); - -#endif // _POVER_VIDEO_H_ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/rpolygon.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/rpolygon.h deleted file mode 100644 index 78fe89b60..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/rpolygon.h +++ /dev/null @@ -1,163 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -// rpolygon.h -// -#ifndef _RPOLYGON_H_ -#define _RPOLYGON_H_ -#include -#include -#include "pover_video.h" - -#include "tbb/scalable_allocator.h" -#include "tbb/concurrent_vector.h" -#include "tbb/enumerable_thread_specific.h" - -using namespace std; - -using namespace tbb; - -class RPolygon; -typedef scalable_allocator RPolygon_allocator; -DEFINE RPolygon_allocator rAlloc; - -enum MallocBehavior { - UseMalloc, - UseScalableAllocator -}; - -DEFINE MallocBehavior gMBehavior INIT(UseScalableAllocator); - -class RPolygon { -public: - RPolygon() {m_XMin = m_YMin = m_XMax = m_YMax = 0; - m_r = m_g = m_b = 0; - } - RPolygon(int xMin, int yMin, int xMax, int yMax, int r=-1, int g=-1, int b=-1) : m_XMin(xMin), m_YMin(yMin), m_XMax(xMax), m_YMax(yMax) { - if( r >= 0) { - m_r=(colorcomp_t)r; m_g=(colorcomp_t)g; m_b=(colorcomp_t)b; - if(gDoDraw) drawPoly(); - } - } - - void set_nodraw(int xMin, int yMin, int xMax, int yMax) {m_XMin=xMin; m_YMin=yMin; m_XMax=xMax; m_YMax=yMax;} - - RPolygon &intersect(RPolygon &otherPoly); - void set(int xMin, int yMin, int xMax, int yMax) { - set_nodraw(xMin,yMin,xMax,yMax); - if(gDoDraw) { - drawPoly(); - } - } - void get(int *xMin, int *yMin, int *xMax, int *yMax) const {*xMin=m_XMin;*yMin=m_YMin;*xMax=m_XMax;*yMax=m_YMax;} - int xmax() const { return m_XMax; } - int xmin() const { return m_XMin; } - int ymax() const { return m_YMax; } - int ymin() const { return m_YMin; } - void setColor(colorcomp_t newr, colorcomp_t newg, colorcomp_t newb) {m_r = newr; m_g=newg; m_b=newb;} - void getColor(int *myr, int *myg, int *myb) {*myr=m_r; *myg=m_g; *myb=m_b;} - color_t myColor() {return gVideo->get_color(m_r, m_g, m_b);} - void drawPoly() { - if(gVideo->running) { - if(g_next_frame()) { // Shouldn't call next_frame each time - drawing_area ldrawing( - gDrawXOffset+m_XMin*gPolyXBoxSize, //x - gDrawYOffset+m_YMin*gPolyYBoxSize, //y - (m_XMax-m_XMin+1)*gPolyXBoxSize, //sizex - (m_YMax-m_YMin+1)*gPolyYBoxSize); //sizey - for(int y=0; y b.ymin()) return false; - if(a.ymin() < b.ymin()) return true; - return a.xmin() < b.xmin(); -} -#else -extern bool operator<(const RPolygon& a, const RPolygon& b); -#endif - -extern ostream& operator<<(ostream& s, const RPolygon &p); - -class RPolygon_flagged { - RPolygon *myPoly; - bool is_duplicate; -public: - RPolygon_flagged() {myPoly = NULL; is_duplicate = false;} - RPolygon_flagged(RPolygon* _p, bool _is_duplicate) : myPoly(_p), is_duplicate(_is_duplicate) { } - bool isDuplicate() {return is_duplicate;} - void setDuplicate(bool newValue) {is_duplicate = newValue;} - RPolygon *p() {return myPoly;} - void setp(RPolygon *newp) {myPoly = newp;} -}; - -typedef class vector Polygon_map_t; -typedef class concurrent_vector concurrent_Polygon_map_t; -typedef class enumerable_thread_specific ETS_Polygon_map_t; -typedef class vector > Flagged_map_t; // we'll make shallow copies - -inline bool PolygonsOverlap(RPolygon *p1, RPolygon *p2, int &xl, int &yl, int &xh, int &yh) { - int xl1, yl1, xh1, yh1, xl2, yl2, xh2, yh2; -#if _DEBUG - rt_sleep(1); // slow down the process so we can see it. -#endif - p1->get(&xl1, &yl1, &xh1, &yh1); - p2->get(&xl2, &yl2, &xh2, &yh2); - if(xl1 > xh2) return false; - if(xh1 < xl2) return false; - if(yl1 > yh2) return false; - if(yh1 < yl2) return false; - xl = (xl1 < xl2) ? xl2 : xl1; - xh = (xh1 < xh2) ? xh1 : xh2; - yl = (yl1 < yl2) ? yl2 : yl1; - yh = (yh1 < yh2) ? yh1 : yh2; - return true; -} - -#endif // _RPOLYGON_H_ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/speedup.gif b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/speedup.gif deleted file mode 100644 index 04d6d8768..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/speedup.gif and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/xcode/polygon_overlay.xcodeproj/project.pbxproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/xcode/polygon_overlay.xcodeproj/project.pbxproj deleted file mode 100644 index 4ada99960..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/xcode/polygon_overlay.xcodeproj/project.pbxproj +++ /dev/null @@ -1,355 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 84011603152CB4AD00B07E4D /* libtbbmalloc.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 84011602152CB4AD00B07E4D /* libtbbmalloc.dylib */; }; - 84B8DA19152C9AC600D59B95 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 84B8DA13152C9AC600D59B95 /* libtbb.dylib */; }; - 84B8DA77152CA90100D59B95 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA6F152CA90100D59B95 /* main.m */; }; - 84B8DA78152CA90100D59B95 /* OpenGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA71152CA90100D59B95 /* OpenGLView.m */; }; - 84B8DA79152CA90100D59B95 /* tbbAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA73152CA90100D59B95 /* tbbAppDelegate.m */; }; - 84B8DA7A152CA90100D59B95 /* (null) in Resources */ = {isa = PBXBuildFile; }; - 84B8DA80152CA97B00D59B95 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 84B8DA7C152CA97B00D59B95 /* InfoPlist.strings */; }; - 84B8DA81152CA97B00D59B95 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 84B8DA7E152CA97B00D59B95 /* MainMenu.xib */; }; - 84B8DA9A152CADF400D59B95 /* macvideo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA99152CADF400D59B95 /* macvideo.cpp */; }; - 84B8DAAC152CB05200D59B95 /* polymain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DAA4152CB05200D59B95 /* polymain.cpp */; }; - 84B8DAAD152CB05200D59B95 /* polyover.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DAA6152CB05200D59B95 /* polyover.cpp */; }; - 84B8DAAE152CB05200D59B95 /* pover_video.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DAA9152CB05200D59B95 /* pover_video.cpp */; }; - 84D017561527431F0008A4E0 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84D017551527431F0008A4E0 /* Cocoa.framework */; }; - 84D01776152744BD0008A4E0 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84D01775152744BD0008A4E0 /* OpenGL.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 84011602152CB4AD00B07E4D /* libtbbmalloc.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbbmalloc.dylib; path = ../../../../lib/libtbbmalloc.dylib; sourceTree = ""; }; - 84B8DA13152C9AC600D59B95 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = ../../../../lib/libtbb.dylib; sourceTree = ""; }; - 84B8DA6F152CA90100D59B95 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = ../../../common/gui/xcode/tbbExample/main.m; sourceTree = ""; }; - 84B8DA70152CA90100D59B95 /* OpenGLView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OpenGLView.h; path = ../../../common/gui/xcode/tbbExample/OpenGLView.h; sourceTree = ""; }; - 84B8DA71152CA90100D59B95 /* OpenGLView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OpenGLView.m; path = ../../../common/gui/xcode/tbbExample/OpenGLView.m; sourceTree = ""; }; - 84B8DA72152CA90100D59B95 /* tbbAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = tbbAppDelegate.h; path = ../../../common/gui/xcode/tbbExample/tbbAppDelegate.h; sourceTree = ""; }; - 84B8DA73152CA90100D59B95 /* tbbAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = tbbAppDelegate.m; path = ../../../common/gui/xcode/tbbExample/tbbAppDelegate.m; sourceTree = ""; }; - 84B8DA75152CA90100D59B95 /* tbbExample-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "tbbExample-Prefix.pch"; path = "../../../common/gui/xcode/tbbExample/tbbExample-Prefix.pch"; sourceTree = ""; }; - 84B8DA7D152CA97B00D59B95 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = InfoPlist.strings; sourceTree = ""; }; - 84B8DA7F152CA97B00D59B95 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = MainMenu.xib; sourceTree = ""; }; - 84B8DA99152CADF400D59B95 /* macvideo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = macvideo.cpp; path = ../../../common/gui/macvideo.cpp; sourceTree = ""; }; - 84B8DAA4152CB05200D59B95 /* polymain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = polymain.cpp; path = ../polymain.cpp; sourceTree = ""; }; - 84B8DAA5152CB05200D59B95 /* polymain.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = polymain.h; path = ../polymain.h; sourceTree = ""; }; - 84B8DAA6152CB05200D59B95 /* polyover.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = polyover.cpp; path = ../polyover.cpp; sourceTree = ""; }; - 84B8DAA7152CB05200D59B95 /* polyover.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = polyover.h; path = ../polyover.h; sourceTree = ""; }; - 84B8DAA8152CB05200D59B95 /* pover_global.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pover_global.h; path = ../pover_global.h; sourceTree = ""; }; - 84B8DAA9152CB05200D59B95 /* pover_video.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = pover_video.cpp; path = ../pover_video.cpp; sourceTree = ""; }; - 84B8DAAA152CB05200D59B95 /* pover_video.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pover_video.h; path = ../pover_video.h; sourceTree = ""; }; - 84B8DAAB152CB05200D59B95 /* rpolygon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = rpolygon.h; path = ../rpolygon.h; sourceTree = ""; }; - 84D017511527431F0008A4E0 /* tbbExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = tbbExample.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 84D017551527431F0008A4E0 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; - 84D017581527431F0008A4E0 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; - 84D017591527431F0008A4E0 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; }; - 84D0175A1527431F0008A4E0 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - 84D01775152744BD0008A4E0 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 84D0174E1527431F0008A4E0 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 84D01776152744BD0008A4E0 /* OpenGL.framework in Frameworks */, - 84D017561527431F0008A4E0 /* Cocoa.framework in Frameworks */, - 84B8DA19152C9AC600D59B95 /* libtbb.dylib in Frameworks */, - 84011603152CB4AD00B07E4D /* libtbbmalloc.dylib in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 84B8DA6C152CA8D900D59B95 /* tbbExample */ = { - isa = PBXGroup; - children = ( - 84B8DAA4152CB05200D59B95 /* polymain.cpp */, - 84B8DAA5152CB05200D59B95 /* polymain.h */, - 84B8DAA6152CB05200D59B95 /* polyover.cpp */, - 84B8DAA7152CB05200D59B95 /* polyover.h */, - 84B8DAA8152CB05200D59B95 /* pover_global.h */, - 84B8DAA9152CB05200D59B95 /* pover_video.cpp */, - 84B8DAAA152CB05200D59B95 /* pover_video.h */, - 84B8DAAB152CB05200D59B95 /* rpolygon.h */, - 84B8DA98152CAD8600D59B95 /* Gui layer */, - 84B8DA7B152CA97B00D59B95 /* Resources */, - ); - name = tbbExample; - sourceTree = ""; - }; - 84B8DA7B152CA97B00D59B95 /* Resources */ = { - isa = PBXGroup; - children = ( - 84B8DA7C152CA97B00D59B95 /* InfoPlist.strings */, - 84B8DA7E152CA97B00D59B95 /* MainMenu.xib */, - ); - name = Resources; - path = ../../../common/gui/xcode/tbbExample/en.lproj; - sourceTree = ""; - }; - 84B8DA98152CAD8600D59B95 /* Gui layer */ = { - isa = PBXGroup; - children = ( - 84B8DA99152CADF400D59B95 /* macvideo.cpp */, - 84B8DA6F152CA90100D59B95 /* main.m */, - 84B8DA70152CA90100D59B95 /* OpenGLView.h */, - 84B8DA71152CA90100D59B95 /* OpenGLView.m */, - 84B8DA72152CA90100D59B95 /* tbbAppDelegate.h */, - 84B8DA73152CA90100D59B95 /* tbbAppDelegate.m */, - 84B8DA75152CA90100D59B95 /* tbbExample-Prefix.pch */, - ); - name = "Gui layer"; - sourceTree = ""; - }; - 84D017461527431F0008A4E0 = { - isa = PBXGroup; - children = ( - 84B8DA6C152CA8D900D59B95 /* tbbExample */, - 84D017541527431F0008A4E0 /* Frameworks */, - 84D017521527431F0008A4E0 /* Products */, - ); - sourceTree = ""; - }; - 84D017521527431F0008A4E0 /* Products */ = { - isa = PBXGroup; - children = ( - 84D017511527431F0008A4E0 /* tbbExample.app */, - ); - name = Products; - sourceTree = ""; - }; - 84D017541527431F0008A4E0 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 84D01775152744BD0008A4E0 /* OpenGL.framework */, - 84D017551527431F0008A4E0 /* Cocoa.framework */, - 84D017571527431F0008A4E0 /* Other Frameworks */, - ); - name = Frameworks; - sourceTree = ""; - }; - 84D017571527431F0008A4E0 /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 84011602152CB4AD00B07E4D /* libtbbmalloc.dylib */, - 84B8DA13152C9AC600D59B95 /* libtbb.dylib */, - 84D017581527431F0008A4E0 /* AppKit.framework */, - 84D017591527431F0008A4E0 /* CoreData.framework */, - 84D0175A1527431F0008A4E0 /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 84D017501527431F0008A4E0 /* tbbExample */ = { - isa = PBXNativeTarget; - buildConfigurationList = 84D01772152743200008A4E0 /* Build configuration list for PBXNativeTarget "tbbExample" */; - buildPhases = ( - 84D0174D1527431F0008A4E0 /* Sources */, - 84D0174E1527431F0008A4E0 /* Frameworks */, - 84D0174F1527431F0008A4E0 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = tbbExample; - productName = tbbExample; - productReference = 84D017511527431F0008A4E0 /* tbbExample.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 84D017481527431F0008A4E0 /* Project object */ = { - isa = PBXProject; - attributes = { - CLASSPREFIX = tbb; - LastUpgradeCheck = 0430; - }; - buildConfigurationList = 84D0174B1527431F0008A4E0 /* Build configuration list for PBXProject "polygon_overlay" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = 84D017461527431F0008A4E0; - productRefGroup = 84D017521527431F0008A4E0 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 84D017501527431F0008A4E0 /* tbbExample */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 84D0174F1527431F0008A4E0 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 84B8DA7A152CA90100D59B95 /* (null) in Resources */, - 84B8DA80152CA97B00D59B95 /* InfoPlist.strings in Resources */, - 84B8DA81152CA97B00D59B95 /* MainMenu.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 84D0174D1527431F0008A4E0 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 84B8DA77152CA90100D59B95 /* main.m in Sources */, - 84B8DA78152CA90100D59B95 /* OpenGLView.m in Sources */, - 84B8DA79152CA90100D59B95 /* tbbAppDelegate.m in Sources */, - 84B8DA9A152CADF400D59B95 /* macvideo.cpp in Sources */, - 84B8DAAC152CB05200D59B95 /* polymain.cpp in Sources */, - 84B8DAAD152CB05200D59B95 /* polyover.cpp in Sources */, - 84B8DAAE152CB05200D59B95 /* pover_video.cpp in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 84B8DA7C152CA97B00D59B95 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 84B8DA7D152CA97B00D59B95 /* en */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; - 84B8DA7E152CA97B00D59B95 /* MainMenu.xib */ = { - isa = PBXVariantGroup; - children = ( - 84B8DA7F152CA97B00D59B95 /* en */, - ); - name = MainMenu.xib; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 84D01770152743200008A4E0 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = YES; - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_ARC = YES; - COPY_PHASE_STRIP = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.7; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; - }; - name = Debug; - }; - 84D01771152743200008A4E0 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = YES; - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_ARC = YES; - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.7; - SDKROOT = macosx; - }; - name = Release; - }; - 84D01773152743200008A4E0 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "../../../common/gui/xcode/tbbExample/tbbExample-Prefix.pch"; - HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; - INFOPLIST_FILE = "../../../common/gui/xcode/tbbExample/tbbExample-Info.plist"; - LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../../lib\""; - MACOSX_DEPLOYMENT_TARGET = 10.7; - PRODUCT_NAME = "$(TARGET_NAME)"; - RUN_CLANG_STATIC_ANALYZER = YES; - USER_HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; - VERSION_INFO_BUILDER = "$(TARGET_NAME)"; - WRAPPER_EXTENSION = app; - }; - name = Debug; - }; - 84D01774152743200008A4E0 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "../../../common/gui/xcode/tbbExample/tbbExample-Prefix.pch"; - HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; - INFOPLIST_FILE = "../../../common/gui/xcode/tbbExample/tbbExample-Info.plist"; - LIBRARY_SEARCH_PATHS = ( - "\"$(SRCROOT)/../../../../lib\"", - "\"$(SRCROOT)\"", - ); - MACOSX_DEPLOYMENT_TARGET = 10.7; - PRODUCT_NAME = "$(TARGET_NAME)"; - RUN_CLANG_STATIC_ANALYZER = YES; - USER_HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; - VERSION_INFO_BUILDER = "$(TARGET_NAME)"; - WRAPPER_EXTENSION = app; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 84D0174B1527431F0008A4E0 /* Build configuration list for PBXProject "polygon_overlay" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 84D01770152743200008A4E0 /* Debug */, - 84D01771152743200008A4E0 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 84D01772152743200008A4E0 /* Build configuration list for PBXNativeTarget "tbbExample" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 84D01773152743200008A4E0 /* Debug */, - 84D01774152743200008A4E0 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 84D017481527431F0008A4E0 /* Project object */; -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/xcode/polygon_overlay.xcodeproj/xcshareddata/xcschemes/tbbExample.xcscheme b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/xcode/polygon_overlay.xcodeproj/xcshareddata/xcschemes/tbbExample.xcscheme deleted file mode 100644 index 37d4ac6bf..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/polygon_overlay/xcode/polygon_overlay.xcodeproj/xcshareddata/xcschemes/tbbExample.xcscheme +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/Makefile b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/Makefile deleted file mode 100644 index e588758b6..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/Makefile +++ /dev/null @@ -1,75 +0,0 @@ -# Copyright 2005-2014 Intel Corporation. All Rights Reserved. -# -# This file is part of Threading Building Blocks. -# -# Threading Building Blocks is free software; you can redistribute it -# and/or modify it under the terms of the GNU General Public License -# version 2 as published by the Free Software Foundation. -# -# Threading Building Blocks is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied warranty -# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Threading Building Blocks; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# -# As a special exception, you may use this file as part of a free software -# library without restriction. Specifically, if other files instantiate -# templates or use macros or inline functions from this file, or you compile -# this file and link it with other files to produce an executable, this -# file does not by itself cause the resulting executable to be covered by -# the GNU General Public License. This exception does not however -# invalidate any other reasons why the executable file might be covered by -# the GNU General Public License. - -# Common Makefile that builds and runs example. - -# Just specify your program basename -PROG=Seismic -ARGS=0:4 300 -PERF_RUN_ARGS=auto 10000 silent -LIGHT_ARGS=1:2 100 - -# Trying ot find if icl.exe is set -CXX1 = $(TBB_CXX)- -CXX2 = $(CXX1:icl.exe-=icl.exe) -CXX = $(CXX2:-=cl.exe) - -# Uncomment one of next lines to choose user interface type (console, gdiplus, direct draw) -#UI = con -UI = gdi -#UI = dd - -# Machine architecture, auto-detected from TBB_TARGET_ARCH by default -# Use XARCH variable to change it. See index.html for more information -ARCH0 = $(TBB_TARGET_ARCH)- -ARCH1 = $(ARCH0:ia32-=x86) -ARCH2 = $(ARCH1:intel64-=AMD64) -XARCH = $(ARCH2:-=x86) - -MAKEINC = ../../common/gui/Makefile.win -SOURCES = seismic_video.cpp universe.cpp main.cpp - -all: release test -release: compiler_check - @$(MAKE) -f $(MAKEINC) UI=$(UI) CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS)" LFLAGS="$(LDFLAGS) tbb.lib $(LIBS)" XARCH=$(XARCH) RCNAME=SeismicSimulation SOURCE="$(SOURCES)" EXE=$(PROG).exe build_one -debug: compiler_check - @$(MAKE) -f $(MAKEINC) UI=$(UI) DEBUG=_debug CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS) /D TBB_USE_DEBUG" LFLAGS="$(LDFLAGS) tbb_debug.lib $(LIBS)" XARCH=$(XARCH) RCNAME=SeismicSimulation SOURCE="$(SOURCES)" EXE=$(PROG).exe build_one -clean: - @cmd.exe /C del $(PROG).exe *.obj *.?db *.manifest msvs\SeismicSimulation.res >nul 2>&1 -test: - $(PROG) $(ARGS) - -perf_build: compiler_check - @$(MAKE) -f $(MAKEINC) UI=con CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS)" LFLAGS="$(LDFLAGS) tbb.lib $(LIBS)" XARCH=$(XARCH) RCNAME=SeismicSimulation SOURCE="$(SOURCES) " EXE=$(PROG).exe build_one -perf_run: - $(PROG) $(PERF_RUN_ARGS) - -light_test: - $(PROG) $(LIGHT_ARGS) - -compiler_check: - @echo compiler_test>compiler_test && @$(CXX) /E compiler_test >nul 2>&1 || echo "$(CXX) command not found. Check if CXX=$(CXX) is set properly" - @cmd.exe /C del compiler_test diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/index.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/index.html deleted file mode 100644 index d652ece72..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/index.html +++ /dev/null @@ -1,113 +0,0 @@ - - - -

    Overview

    -
    -
    Parallel seismic wave simulation that demonstrates use of parallel_for and affinity_partitioner. -
    The example can be built in the offload version to run on Intel® Many Integrated Core (Intel® MIC) Architecture based coprocessor (see build instructions). -NOTE: Currently, the offload version does not support GUI and can only be used with console mode. -
    - -

    Files

    -
    -
    main.cpp -
    Main program which parses command line options and runs the algorithm with different numbers of threads. -
    universe.h -
    Wave propagation methods interface. -
    universe.cpp -
    Wave propagation methods implementation. -
    seismic_video.h -
    GUI mode support interface. -
    seismic_video.cpp -
    GUI mode support implementation. -
    Makefile -
    Makefile for building example. -
    - -

    Directories

    -
    -
    msvs -
    Contains Microsoft* Visual Studio* 2005 workspace for building and running the - example (Windows* systems only).
    xcode -
    Contains Xcode* IDE workspace for building and running the example (OS X* - systems only).
    - -

    To Build

    -General build directions can be found here. -The following additional options are supported: -
    -
    make [(general targets: {release, debug} [test])] UI={con, gdi, dd, d2d, x, mac} -
    Build and run as usual, but build with the specified GUI driver: console, GDI+*, DirectDraw*, - Direct2D*, X11, or OpenGL* - (see the description of the common GUI code - for more information on available graphics support). - For Linux* and OS X* systems, the best available driver is detected automatically by the Makefile. - For Windows* systems, UI=gdi is the default GUI driver; compiling with UI=dd or - UI=d2d may offer superior - performance, but can only be used if the Microsoft* DirectX* SDK is installed on your system - and if overlay is supported by your graphics card. - Use UI=con to build without the GUI for use in making performance measurements - (strongly recommended when measuring performance or scalability; see note below). -
    make [(above options or targets)] XARCH=x64 -
    Build and run as above, but also specify XARCH=x64 - (or XARCH=AMD64 for older compilers) when building the example on Windows* as a 64-bit binary. -
    make [(above options or targets)] DDLIB_DIR=<specify path to library directory of Direct Draw* SDK here> -
    If you experience ddraw.lib linking problems, specify the correct library directory via this option. -
    make [(above options or targets)] CXXFLAGS=-DX_FULLSYNC -
    Build and run as above, but enable full X11 synchronization if you experience "tearing" of motion on slower video systems. -
    - -

    Usage

    -
    -
    seismic -h -
    Prints the help for command line options -
    seismic [n-of-threads=value] [n-of-frames=value] [silent] [serial] -
    seismic [n-of-threads [n-of-frames]] [silent] [serial] -
    n-of-threads is the number of threads to use; a range of the form low[:high], where low and optional high are non-negative integers or 'auto' for the TBB default.
    - n-of-frames is a number of frames the example processes internally.
    - silent - no output except elapsed time.
    - serial - in GUI mode start with serial version of algorithm.
    - -
    To run a short version of this example, e.g., for use with Intel® Parallel Inspector:: -
    Build a debug version of the example - (see the build directions). -
    Run it with the desired number of threads and smaller number of frames, e.g., seismic 4 5. -
    - -

    Hot keys

    -The following hot keys can be used in interactive execution mode when the example is compiled with the graphical -user interface: -
    -
    <left mouse button> -
    Starts new seismic wave in place specified by mouse cursor. -
    <space> -
    Toggles between parallel and serial execution modes. -
    <p> -
    Enables parallel execution mode. -
    <s> -
    Enables serial execution mode. -
    <e> -
    Enables screen updates. -
    <d> -
    Disables screen updates (strongly recommended when measuring performance or scalability; see note below). -
    <esc> -
    Stops execution. -
    - -

    Notes

    -
      -
    • While running with the GUI display turned on should yield reasonable performance in most cases, running with the GUI - display turned off is strongly recommended in order to demonstrate the full performance and scalability of the example. -
    - -
    -Up to parent directory -

    -Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

    -Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

    -* Other names and brands may be claimed as the property of others. - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/main.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/main.cpp deleted file mode 100644 index f290c2d46..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/main.cpp +++ /dev/null @@ -1,155 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#define VIDEO_WINMAIN_ARGS - -#include -#include "tbb/tick_count.h" -#include "../../common/utility/utility.h" - -#include "seismic_video.h" -#include "universe.h" -#include "tbb/task_scheduler_init.h" - -Universe u; - -struct RunOptions { - //! It is used for console mode for test with different number of threads and also has - //! meaning for GUI: threads.first - use separate event/updating loop thread (>0) or not (0). - //! threads.second - initialization value for scheduler - utility::thread_number_range threads; - int numberOfFrames; - bool silent; - bool parallel; - RunOptions(utility::thread_number_range threads_ , int number_of_frames_ , bool silent_ , bool parallel_ ) - : threads(threads_),numberOfFrames(number_of_frames_), silent(silent_), parallel(parallel_) - { - } -}; - -int do_get_default_num_threads() { - int threads; -#if __TBB_MIC_OFFLOAD - #pragma offload target(mic) out(threads) -#endif // __TBB_MIC_OFFLOAD - threads = tbb::task_scheduler_init::default_num_threads(); - return threads; -} - -int get_default_num_threads() { - static int threads = do_get_default_num_threads(); - return threads; -} - -RunOptions ParseCommandLine(int argc, char *argv[]){ - // zero number of threads means to run serial version - utility::thread_number_range threads(get_default_num_threads,0,get_default_num_threads()); - - int numberOfFrames = 1000; - bool silent = false; - bool serial = false; - - utility::parse_cli_arguments(argc,argv, - utility::cli_argument_pack() - //"-h" option for displaying help is present implicitly - .positional_arg(threads,"n-of-threads",utility::thread_number_range_desc) - .positional_arg(numberOfFrames,"n-of-frames","number of frames the example processes internally") - .arg(silent,"silent","no output except elapsed time") - .arg(serial,"serial","in GUI mode start with serial version of algorithm") - ); - return RunOptions(threads,numberOfFrames,silent,!serial); -} - -int main(int argc, char *argv[]) -{ - try{ - tbb::tick_count mainStartTime = tbb::tick_count::now(); - RunOptions options = ParseCommandLine(argc,argv); - SeismicVideo video(u,options.numberOfFrames,options.threads.last,options.parallel); - - // video layer init - if(video.init_window(u.UniverseWidth, u.UniverseHeight)) { - video.calc_fps = true; - video.threaded = options.threads.first > 0; - // video is ok, init Universe - u.InitializeUniverse(video); - // main loop - video.main_loop(); - } - else if(video.init_console()) { - // do console mode - for(int p = options.threads.first; p <= options.threads.last; p = options.threads.step(p)) { - tbb::tick_count xwayParallelismStartTime = tbb::tick_count::now(); - u.InitializeUniverse(video); - int numberOfFrames = options.numberOfFrames; -#if __TBB_MIC_OFFLOAD - drawing_memory dmem = video.get_drawing_memory(); - char *pMem = dmem.get_address(); - size_t memSize = dmem.get_size(); - - #pragma offload target(mic) in(u, numberOfFrames, p, dmem), out(pMem:length(memSize)) - { - // It is necessary to update the pointer on mic - // since the address spaces on host and on target are different - dmem.set_address(pMem); - u.SetDrawingMemory(dmem); -#endif // __TBB_MIC_OFFLOAD - if (p==0){ - //run a serial version - for( int i=0; i - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/msvs/SeismicSimulation.rc b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/msvs/SeismicSimulation.rc deleted file mode 100644 index c2003347a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/msvs/SeismicSimulation.rc +++ /dev/null @@ -1,145 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#define APSTUDIO_HIDDEN_SYMBOLS -#include "windows.h" -#undef APSTUDIO_HIDDEN_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDI_SEISMICSIMULATION ICON "SeismicSimulation.ico" -IDI_SMALL ICON "small.ico" - -///////////////////////////////////////////////////////////////////////////// -// -// Menu -// - -IDC_SEISMICSIMULATION MENU -BEGIN - POPUP "&File" - BEGIN - MENUITEM "&Parallel", ID_FILE_PARALLEL - MENUITEM "&Serial", ID_FILE_SERIAL - MENUITEM SEPARATOR - MENUITEM "&Enable GUI", ID_FILE_ENABLEGUI - MENUITEM "&Disable GUI", ID_FILE_DISABLEGUI - MENUITEM SEPARATOR - MENUITEM "E&xit", IDM_EXIT - END - POPUP "&Help" - BEGIN - MENUITEM "&About ...", IDM_ABOUT - END -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Accelerator -// - -IDC_SEISMICSIMULATION ACCELERATORS -BEGIN - VK_OEM_2, IDM_ABOUT, VIRTKEY, ALT, NOINVERT - "P", ID_FILE_PARALLEL, VIRTKEY, ALT, NOINVERT - "S", ID_FILE_SERIAL, VIRTKEY, ALT, NOINVERT - "D", ID_FILE_DISABLEGUI, VIRTKEY, ALT, NOINVERT - "E", ID_FILE_ENABLEGUI, VIRTKEY, ALT, NOINVERT -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_ABOUTBOX DIALOG 22, 17, 230, 75 -STYLE DS_SETFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU -CAPTION "About" -FONT 8, "System" -BEGIN - ICON IDI_SEISMICSIMULATION,IDC_MYICON,14,9,16,16 - LTEXT "SeismicSimulation Version 1.1",IDC_STATIC,49,10,119,8,SS_NOPREFIX - LTEXT "Copyright (C) 2005-2008",IDC_STATIC,49,20,119,8 - DEFPUSHBUTTON "OK",IDOK,195,6,30,11,WS_GROUP -END - - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" - "#include ""windows.h""\r\n" - "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n" - "\0" -END - -3 TEXTINCLUDE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE -BEGIN - IDS_APP_TITLE "SeismicSimulation" - IDC_SEISMICSIMULATION "SEISMICSIMULATION" -END - -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/msvs/SeismicSimulation.vcproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/msvs/SeismicSimulation.vcproj deleted file mode 100644 index 9d4fb8e0a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/msvs/SeismicSimulation.vcproj +++ /dev/null @@ -1,836 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/msvs/SeismicSimulation_cl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/msvs/SeismicSimulation_cl.sln deleted file mode 100644 index d0d04bc05..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/msvs/SeismicSimulation_cl.sln +++ /dev/null @@ -1,37 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SeismicSimulation", "SeismicSimulation.vcproj", "{3AA40693-F93D-4D4B-B32E-068F511A2527}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - DD Debug|Win32 = DD Debug|Win32 - DD Debug|x64 = DD Debug|x64 - DD Release|Win32 = DD Release|Win32 - DD Release|x64 = DD Release|x64 - GDI Debug|Win32 = GDI Debug|Win32 - GDI Debug|x64 = GDI Debug|x64 - _GDI Release|Win32 = _GDI Release|Win32 - _GDI Release|x64 = _GDI Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Debug|Win32.ActiveCfg = DDDebug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Debug|Win32.Build.0 = DDDebug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Debug|x64.ActiveCfg = DDDebug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Debug|x64.Build.0 = DDDebug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Release|Win32.ActiveCfg = DDRelease|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Release|Win32.Build.0 = DDRelease|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Release|x64.ActiveCfg = DDRelease|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Release|x64.Build.0 = DDRelease|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.GDI Debug|Win32.ActiveCfg = Debug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.GDI Debug|Win32.Build.0 = Debug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.GDI Debug|x64.ActiveCfg = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.GDI Debug|x64.Build.0 = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}._GDI Release|Win32.ActiveCfg = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2527}._GDI Release|Win32.Build.0 = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2527}._GDI Release|x64.ActiveCfg = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}._GDI Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/msvs/SeismicSimulation_icl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/msvs/SeismicSimulation_icl.sln deleted file mode 100644 index 08c84655f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/msvs/SeismicSimulation_icl.sln +++ /dev/null @@ -1,53 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{EAF909A5-FA59-4C3D-9431-0FCC20D5BCF9}") = "SeismicSimulation", "SeismicSimulation.icproj", "{87C5A3E0-E1C8-457F-AA2F-B3E455214E76}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - DD Debug|Win32 = DD Debug|Win32 - DD Debug|x64 = DD Debug|x64 - DD Release|Win32 = DD Release|Win32 - DD Release|x64 = DD Release|x64 - GDI Debug|Win32 = GDI Debug|Win32 - GDI Debug|x64 = GDI Debug|x64 - _GDI Release|Win32 = _GDI Release|Win32 - _GDI Release|x64 = _GDI Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {87C5A3E0-E1C8-457F-AA2F-B3E455214E76}.DD Debug|Win32.ActiveCfg = DDDebug|Win32 - {87C5A3E0-E1C8-457F-AA2F-B3E455214E76}.DD Debug|Win32.Build.0 = DDDebug|Win32 - {87C5A3E0-E1C8-457F-AA2F-B3E455214E76}.DD Debug|x64.ActiveCfg = DDDebug|x64 - {87C5A3E0-E1C8-457F-AA2F-B3E455214E76}.DD Debug|x64.Build.0 = DDDebug|x64 - {87C5A3E0-E1C8-457F-AA2F-B3E455214E76}.DD Release|Win32.ActiveCfg = DDRelease|Win32 - {87C5A3E0-E1C8-457F-AA2F-B3E455214E76}.DD Release|Win32.Build.0 = DDRelease|Win32 - {87C5A3E0-E1C8-457F-AA2F-B3E455214E76}.DD Release|x64.ActiveCfg = DDRelease|x64 - {87C5A3E0-E1C8-457F-AA2F-B3E455214E76}.DD Release|x64.Build.0 = DDRelease|x64 - {87C5A3E0-E1C8-457F-AA2F-B3E455214E76}.GDI Debug|Win32.ActiveCfg = Debug|Win32 - {87C5A3E0-E1C8-457F-AA2F-B3E455214E76}.GDI Debug|Win32.Build.0 = Debug|Win32 - {87C5A3E0-E1C8-457F-AA2F-B3E455214E76}.GDI Debug|x64.ActiveCfg = Debug|x64 - {87C5A3E0-E1C8-457F-AA2F-B3E455214E76}.GDI Debug|x64.Build.0 = Debug|x64 - {87C5A3E0-E1C8-457F-AA2F-B3E455214E76}._GDI Release|Win32.ActiveCfg = Release|Win32 - {87C5A3E0-E1C8-457F-AA2F-B3E455214E76}._GDI Release|Win32.Build.0 = Release|Win32 - {87C5A3E0-E1C8-457F-AA2F-B3E455214E76}._GDI Release|x64.ActiveCfg = Release|x64 - {87C5A3E0-E1C8-457F-AA2F-B3E455214E76}._GDI Release|x64.Build.0 = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}._GDI Release|x64.Build.0 = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}._GDI Release|x64.ActiveCfg = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}._GDI Release|Win32.Build.0 = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2527}._GDI Release|Win32.ActiveCfg = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.GDI Debug|x64.Build.0 = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.GDI Debug|x64.ActiveCfg = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.GDI Debug|Win32.Build.0 = Debug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.GDI Debug|Win32.ActiveCfg = Debug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Release|x64.Build.0 = DDRelease|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Release|x64.ActiveCfg = DDRelease|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Release|Win32.Build.0 = DDRelease|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Release|Win32.ActiveCfg = DDRelease|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Debug|x64.Build.0 = DDDebug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Debug|x64.ActiveCfg = DDDebug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Debug|Win32.Build.0 = DDDebug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Debug|Win32.ActiveCfg = DDDebug|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/msvs/resource.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/msvs/resource.h deleted file mode 100644 index 44453d7ee..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/msvs/resource.h +++ /dev/null @@ -1,32 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by SeismicSimulation.rc -// -#define IDC_MYICON 2 -#define IDD_SEISMICSIMULATION_DIALOG 102 -#define IDS_APP_TITLE 103 -#define IDD_ABOUTBOX 103 -#define IDM_ABOUT 104 -#define IDM_EXIT 105 -#define IDI_SEISMICSIMULATION 107 -#define IDI_SMALL 108 -#define IDC_SEISMICSIMULATION 109 -#define IDR_MAINFRAME 128 -#define ID_FILE_PARALLEL 32771 -#define ID_FILE_SERIAL 32772 -#define IDM_PARALLEL 32773 -#define ID_FILE_ENABLEGUI 32774 -#define ID_FILE_DISABLEGUI 32775 -#define IDC_STATIC -1 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NO_MFC 1 -#define _APS_NEXT_RESOURCE_VALUE 129 -#define _APS_NEXT_COMMAND_VALUE 32782 -#define _APS_NEXT_CONTROL_VALUE 1000 -#define _APS_NEXT_SYMED_VALUE 110 -#endif -#endif diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/msvs/small.ico b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/msvs/small.ico deleted file mode 100644 index d551aa3aa..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/msvs/small.ico and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/seismic_video.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/seismic_video.cpp deleted file mode 100644 index da6cfd9a1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/seismic_video.cpp +++ /dev/null @@ -1,156 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#include "seismic_video.h" -#include "universe.h" -#include "tbb/task_scheduler_init.h" - -const char * const SeismicVideo::titles[2] = {"Seismic Simulation: Serial", "Seismic Simulation: Parallel"}; -void SeismicVideo::on_mouse(int x, int y, int key) { - if(key == 1){ - u_.TryPutNewPulseSource(x,y); - } -} - -void SeismicVideo::on_key(int key) { - key &= 0xff; - if(char(key) == ' ') initIsParallel = !initIsParallel; - else if(char(key) == 'p') initIsParallel = true; - else if(char(key) == 's') initIsParallel = false; - else if(char(key) == 'e') updating = true; - else if(char(key) == 'd') updating = false; - else if(key == 27) running = false; - title = initIsParallel?titles[1]:titles[0]; -} - -void SeismicVideo::on_process() { - tbb::task_scheduler_init Init(threadsHigh); - do { - if( initIsParallel ) - u_.ParallelUpdateUniverse(); - else - u_.SerialUpdateUniverse(); - if( numberOfFrames_ > 0 ) --numberOfFrames_; - } while(next_frame() && numberOfFrames_); -} - -#ifdef _WINDOWS -#include "msvs/resource.h" -LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); -SeismicVideo * gVideo = NULL; -#endif - -SeismicVideo::SeismicVideo( Universe &u, int number_of_frames, int threads_high, bool init_is_parallel) - :numberOfFrames_(number_of_frames),initIsParallel(init_is_parallel),u_(u),threadsHigh(threads_high) -{ - title = initIsParallel?titles[1]:titles[0]; -#ifdef _WINDOWS - gVideo = this; - LoadStringA(video::win_hInstance, IDC_SEISMICSIMULATION, szWindowClass, MAX_LOADSTRING); - memset(&wcex, 0, sizeof(wcex)); - wcex.lpfnWndProc = (WNDPROC)WndProc; - wcex.hIcon = LoadIcon(video::win_hInstance, MAKEINTRESOURCE(IDI_SEISMICSIMULATION)); - wcex.hCursor = LoadCursor(NULL, IDC_ARROW); - wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); - wcex.lpszMenuName = LPCTSTR(IDC_SEISMICSIMULATION); - wcex.lpszClassName = szWindowClass; - wcex.hIconSm = LoadIcon(video::win_hInstance, MAKEINTRESOURCE(IDI_SMALL)); - win_set_class(wcex); // ascii convention here - win_load_accelerators(IDC_SEISMICSIMULATION); -#endif - -} - - - - - -#ifdef _WINDOWS -// -// FUNCTION: WndProc(HWND, unsigned, WORD, LONG) -// -// PURPOSE: Processes messages for the main window. -// -// WM_COMMAND - process the application menu -// WM_PAINT - Paint the main window -// WM_DESTROY - post a quit message and return -// -// -LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) -{ - switch (message) - { - case WM_INITDIALOG: return TRUE; - case WM_COMMAND: - if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) { - EndDialog(hDlg, LOWORD(wParam)); - return TRUE; - } - break; - } - return FALSE; -} - -LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) -{ - int wmId; - switch (message) { - case WM_COMMAND: - wmId = LOWORD(wParam); - // Parse the menu selections: - switch (wmId) - { - case IDM_ABOUT: - DialogBox(video::win_hInstance, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, (DLGPROC)About); - break; - case IDM_EXIT: - PostQuitMessage(0); - break; - case ID_FILE_PARALLEL: - gVideo->on_key('p'); - break; - case ID_FILE_SERIAL: - gVideo->on_key('s'); - break; - case ID_FILE_ENABLEGUI: - gVideo->on_key('e'); - break; - case ID_FILE_DISABLEGUI: - gVideo->on_key('d'); - break; - default: - return DefWindowProc(hWnd, message, wParam, lParam); - } - break; - default: - return DefWindowProc(hWnd, message, wParam, lParam); - } - return 0; -} - -#endif diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/seismic_video.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/seismic_video.h deleted file mode 100644 index f2910e9a9..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/seismic_video.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef SEISMIC_VIDEO_H_ -#define SEISMIC_VIDEO_H_ - -#include "../../common/gui/video.h" - -class Universe; - -class SeismicVideo : public video -{ -#ifdef _WINDOWS - #define MAX_LOADSTRING 100 - TCHAR szWindowClass[MAX_LOADSTRING]; // the main window class name - WNDCLASSEX wcex; -#endif - static const char * const titles[2]; - - bool initIsParallel ; - - Universe &u_; - int numberOfFrames_; - int threadsHigh; -private: - void on_mouse(int x, int y, int key); - void on_process(); - -#ifdef _WINDOWS -public: -#endif - void on_key(int key); - -public: - SeismicVideo( Universe &u,int numberOfFrames, int threadsHigh, bool initIsParallel=true); -}; -#endif /* SEISMIC_VIDEO_H_ */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/universe.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/universe.cpp deleted file mode 100644 index 816ee9b5a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/universe.cpp +++ /dev/null @@ -1,229 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#include "../../common/gui/video.h" -#include -#include "tbb/blocked_range.h" -#include "tbb/parallel_for.h" - - -using namespace std; - -#ifdef _MSC_VER -// warning C4068: unknown pragma -#pragma warning(disable: 4068) -// warning C4351: new behavior: elements of array 'array' will be default initialized -#pragma warning(disable: 4351) -#endif - -#include "universe.h" - -const colorcomp_t MaterialColor[4][3] = { // BGR - {96,0,0}, // WATER - {0,48,48}, // SANDSTONE - {32,32,23} // SHALE -}; - -void Universe::InitializeUniverse(video const& colorizer) { - - pulseCounter = pulseTime = 100; - pulseX = UniverseWidth/3; - pulseY = UniverseHeight/4; - // Initialize V, S, and T to slightly non-zero values, in order to avoid denormal waves. - for( int i=0; i0 ? t : 0; - ValueType b = t<0 ? -t : 0; - ValueType g = 0.5f*fabs(t); - memcpy(c, MaterialColor[k], sizeof(c)); - c[2] = colorcomp_t(r*(255-c[2])+c[2]); - c[1] = colorcomp_t(g*(255-c[1])+c[1]); - c[0] = colorcomp_t(b*(255-c[0])+c[0]); - ColorMap[k][i] = colorizer.get_color(c[2], c[1], c[0]); - } - } - // Set damping coefficients around border to reduce reflections from boundaries. - ValueType d = 1.0; - for( int k=DamperSize-1; k>0; --k ) { - d *= 1-1.0f/(DamperSize*DamperSize); - for( int j=1; j0 ) { - ValueType t = (pulseCounter-pulseTime/2)*0.05f; - V[pulseY][pulseX] += 64*sqrt(M[pulseY][pulseX])*exp(-t*t); - --pulseCounter; - } -} - -struct Universe::Rectangle { - struct std::pair xRange; - struct std::pair yRange; - Rectangle (int startX, int startY, int width, int height):xRange(startX,width),yRange(startY,height){} - int StartX() const {return xRange.first;} - int StartY() const {return yRange.first;} - int Width() const {return xRange.second;} - int Height() const {return yRange.second;} - int EndX() const {return xRange.first + xRange.second;} - int EndY() const {return yRange.first + yRange.second;} - -}; - -void Universe::UpdateStress(Rectangle const& r ) { - drawing_area drawing(r.StartX(),r.StartY(),r.Width(),r.Height(),drawingMemory); - for( int i=r.StartY(); i=ColorMapSize ) index = ColorMapSize-1; - color_t* c = ColorMap[material[i][j]]; - drawing.put_pixel(c[index]); - } - } -} - -void Universe::SerialUpdateStress() { - Rectangle area(0, 0, UniverseWidth-1, UniverseHeight-1); - UpdateStress(area); -} - -struct UpdateStressBody { - Universe & u_; - UpdateStressBody(Universe & u):u_(u){} - void operator()( const tbb::blocked_range& range ) const { - Universe::Rectangle area(0, range.begin(), u_.UniverseWidth-1, range.size()); - u_.UpdateStress(area); - } -}; - -void Universe::ParallelUpdateStress(tbb::affinity_partitioner &affinity) { - tbb::parallel_for( tbb::blocked_range( 0, UniverseHeight-1 ), // Index space for loop - UpdateStressBody(*this), // Body of loop - affinity ); // Affinity hint -} - -void Universe::UpdateVelocity(Rectangle const& r) { - for( int i=r.StartY(); i& y_range ) const { - u_.UpdateVelocity(Universe::Rectangle(0,y_range.begin(),u_.UniverseWidth-1,y_range.size())); - } -}; - -void Universe::ParallelUpdateVelocity(tbb::affinity_partitioner &affinity) { - tbb::parallel_for( tbb::blocked_range( 0, UniverseHeight-1 ), // Index space for loop - UpdateVelocityBody(*this), // Body of loop - affinity ); // Affinity hint -} - -void Universe::SerialUpdateUniverse() { - UpdatePulse(); - SerialUpdateStress(); - SerialUpdateVelocity(); -} - -void Universe::ParallelUpdateUniverse() { - /** Affinity is an argument to parallel_for to hint that an iteration of a loop - is best replayed on the same processor for each execution of the loop. - It is a static object because it must remember where the iterations happened - in previous executions. */ - static tbb::affinity_partitioner affinity; - UpdatePulse(); - ParallelUpdateStress(affinity); - ParallelUpdateVelocity(affinity); -} - -bool Universe::TryPutNewPulseSource(int x, int y){ - if(pulseCounter == 0) { - pulseCounter = pulseTime; - pulseX = x; pulseY = y; - return true; - } - return false; -} - -void Universe::SetDrawingMemory(const drawing_memory &dmem) { - drawingMemory = dmem; -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/universe.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/universe.h deleted file mode 100644 index ab1a04ed0..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/universe.h +++ /dev/null @@ -1,120 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef UNIVERSE_H_ -#define UNIVERSE_H_ - -#include "../../common/gui/video.h" -#include "tbb/partitioner.h" - - -class Universe { -public: - enum { - UniverseWidth = 1024 - ,UniverseHeight = 512 - }; -private: - //in order to avoid performance degradation due to cache aliasing issue - //some padding is needed after each row in array, and between array themselves. - //the padding is achieved by adjusting number of rows and columns. - //as the compiler is forced to place class members of the same clause in order of the - //declaration this seems to be the right way of padding. - - //magic constants added below are chosen experimentally. - enum { - MaxWidth = UniverseWidth+1, - MaxHeight = UniverseHeight+3 - }; - - typedef float ValueType; - - //! Horizontal stress - ValueType S[MaxHeight][MaxWidth]; - - //! Velocity at each grid point - ValueType V[MaxHeight][MaxWidth]; - - //! Vertical stress - ValueType T[MaxHeight][MaxWidth]; - - //! Coefficient related to modulus - ValueType M[MaxHeight][MaxWidth]; - - //! Damping coefficients - ValueType D[MaxHeight][MaxWidth]; - - //! Coefficient related to lightness - ValueType L[MaxHeight][MaxWidth]; - - enum { ColorMapSize = 1024}; - color_t ColorMap[4][ColorMapSize]; - - enum MaterialType { - WATER=0, - SANDSTONE=1, - SHALE=2 - }; - - //! Values are MaterialType, cast to an unsigned char to save space. - unsigned char material[MaxHeight][MaxWidth]; - -private: - enum { DamperSize = 32}; - - int pulseTime; - int pulseCounter; - int pulseX; - int pulseY; - - drawing_memory drawingMemory; - -public: - void InitializeUniverse(video const& colorizer); - - void SerialUpdateUniverse(); - void ParallelUpdateUniverse(); - bool TryPutNewPulseSource(int x, int y); - void SetDrawingMemory(const drawing_memory &dmem); -private: - struct Rectangle; - void UpdatePulse(); - void UpdateStress(Rectangle const& r ); - - void SerialUpdateStress() ; - friend struct UpdateStressBody; - friend struct UpdateVelocityBody; - void ParallelUpdateStress(tbb::affinity_partitioner &affinity); - - void UpdateVelocity(Rectangle const& r); - - void SerialUpdateVelocity() ; - void ParallelUpdateVelocity(tbb::affinity_partitioner &affinity); -}; - -#endif /* UNIVERSE_H_ */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/xcode/seismic.xcodeproj/project.pbxproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/xcode/seismic.xcodeproj/project.pbxproj deleted file mode 100644 index ff394654c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/xcode/seismic.xcodeproj/project.pbxproj +++ /dev/null @@ -1,345 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 84B8DA19152C9AC600D59B95 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 84B8DA13152C9AC600D59B95 /* libtbb.dylib */; }; - 84B8DA77152CA90100D59B95 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA6F152CA90100D59B95 /* main.m */; }; - 84B8DA78152CA90100D59B95 /* OpenGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA71152CA90100D59B95 /* OpenGLView.m */; }; - 84B8DA79152CA90100D59B95 /* tbbAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA73152CA90100D59B95 /* tbbAppDelegate.m */; }; - 84B8DA7A152CA90100D59B95 /* (null) in Resources */ = {isa = PBXBuildFile; }; - 84B8DA80152CA97B00D59B95 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 84B8DA7C152CA97B00D59B95 /* InfoPlist.strings */; }; - 84B8DA81152CA97B00D59B95 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 84B8DA7E152CA97B00D59B95 /* MainMenu.xib */; }; - 84B8DA87152CA99C00D59B95 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA82152CA99C00D59B95 /* main.cpp */; }; - 84B8DA88152CA99C00D59B95 /* seismic_video.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA83152CA99C00D59B95 /* seismic_video.cpp */; }; - 84B8DA89152CA99C00D59B95 /* universe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA85152CA99C00D59B95 /* universe.cpp */; }; - 84B8DA9A152CADF400D59B95 /* macvideo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA99152CADF400D59B95 /* macvideo.cpp */; }; - 84D017561527431F0008A4E0 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84D017551527431F0008A4E0 /* Cocoa.framework */; }; - 84D01776152744BD0008A4E0 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84D01775152744BD0008A4E0 /* OpenGL.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 84B8DA13152C9AC600D59B95 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = ../../../../lib/libtbb.dylib; sourceTree = ""; }; - 84B8DA6F152CA90100D59B95 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = ../../../common/gui/xcode/tbbExample/main.m; sourceTree = ""; }; - 84B8DA70152CA90100D59B95 /* OpenGLView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OpenGLView.h; path = ../../../common/gui/xcode/tbbExample/OpenGLView.h; sourceTree = ""; }; - 84B8DA71152CA90100D59B95 /* OpenGLView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OpenGLView.m; path = ../../../common/gui/xcode/tbbExample/OpenGLView.m; sourceTree = ""; }; - 84B8DA72152CA90100D59B95 /* tbbAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = tbbAppDelegate.h; path = ../../../common/gui/xcode/tbbExample/tbbAppDelegate.h; sourceTree = ""; }; - 84B8DA73152CA90100D59B95 /* tbbAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = tbbAppDelegate.m; path = ../../../common/gui/xcode/tbbExample/tbbAppDelegate.m; sourceTree = ""; }; - 84B8DA75152CA90100D59B95 /* tbbExample-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "tbbExample-Prefix.pch"; path = "../../../common/gui/xcode/tbbExample/tbbExample-Prefix.pch"; sourceTree = ""; }; - 84B8DA7D152CA97B00D59B95 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = InfoPlist.strings; sourceTree = ""; }; - 84B8DA7F152CA97B00D59B95 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = MainMenu.xib; sourceTree = ""; }; - 84B8DA82152CA99C00D59B95 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = ../main.cpp; sourceTree = ""; }; - 84B8DA83152CA99C00D59B95 /* seismic_video.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = seismic_video.cpp; path = ../seismic_video.cpp; sourceTree = ""; }; - 84B8DA84152CA99C00D59B95 /* seismic_video.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = seismic_video.h; path = ../seismic_video.h; sourceTree = ""; }; - 84B8DA85152CA99C00D59B95 /* universe.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = universe.cpp; path = ../universe.cpp; sourceTree = ""; }; - 84B8DA86152CA99C00D59B95 /* universe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = universe.h; path = ../universe.h; sourceTree = ""; }; - 84B8DA99152CADF400D59B95 /* macvideo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = macvideo.cpp; path = ../../../common/gui/macvideo.cpp; sourceTree = ""; }; - 84D017511527431F0008A4E0 /* tbbExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = tbbExample.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 84D017551527431F0008A4E0 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; - 84D017581527431F0008A4E0 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; - 84D017591527431F0008A4E0 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; }; - 84D0175A1527431F0008A4E0 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - 84D01775152744BD0008A4E0 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 84D0174E1527431F0008A4E0 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 84D01776152744BD0008A4E0 /* OpenGL.framework in Frameworks */, - 84D017561527431F0008A4E0 /* Cocoa.framework in Frameworks */, - 84B8DA19152C9AC600D59B95 /* libtbb.dylib in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 84B8DA6C152CA8D900D59B95 /* tbbExample */ = { - isa = PBXGroup; - children = ( - 84B8DA98152CAD8600D59B95 /* Gui layer */, - 84B8DA7B152CA97B00D59B95 /* Resources */, - 84B8DA82152CA99C00D59B95 /* main.cpp */, - 84B8DA83152CA99C00D59B95 /* seismic_video.cpp */, - 84B8DA84152CA99C00D59B95 /* seismic_video.h */, - 84B8DA85152CA99C00D59B95 /* universe.cpp */, - 84B8DA86152CA99C00D59B95 /* universe.h */, - ); - name = tbbExample; - sourceTree = ""; - }; - 84B8DA7B152CA97B00D59B95 /* Resources */ = { - isa = PBXGroup; - children = ( - 84B8DA7C152CA97B00D59B95 /* InfoPlist.strings */, - 84B8DA7E152CA97B00D59B95 /* MainMenu.xib */, - ); - name = Resources; - path = ../../../common/gui/xcode/tbbExample/en.lproj; - sourceTree = ""; - }; - 84B8DA98152CAD8600D59B95 /* Gui layer */ = { - isa = PBXGroup; - children = ( - 84B8DA99152CADF400D59B95 /* macvideo.cpp */, - 84B8DA6F152CA90100D59B95 /* main.m */, - 84B8DA70152CA90100D59B95 /* OpenGLView.h */, - 84B8DA71152CA90100D59B95 /* OpenGLView.m */, - 84B8DA72152CA90100D59B95 /* tbbAppDelegate.h */, - 84B8DA73152CA90100D59B95 /* tbbAppDelegate.m */, - 84B8DA75152CA90100D59B95 /* tbbExample-Prefix.pch */, - ); - name = "Gui layer"; - sourceTree = ""; - }; - 84D017461527431F0008A4E0 = { - isa = PBXGroup; - children = ( - 84B8DA6C152CA8D900D59B95 /* tbbExample */, - 84D017541527431F0008A4E0 /* Frameworks */, - 84D017521527431F0008A4E0 /* Products */, - ); - sourceTree = ""; - }; - 84D017521527431F0008A4E0 /* Products */ = { - isa = PBXGroup; - children = ( - 84D017511527431F0008A4E0 /* tbbExample.app */, - ); - name = Products; - sourceTree = ""; - }; - 84D017541527431F0008A4E0 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 84D01775152744BD0008A4E0 /* OpenGL.framework */, - 84D017551527431F0008A4E0 /* Cocoa.framework */, - 84D017571527431F0008A4E0 /* Other Frameworks */, - ); - name = Frameworks; - sourceTree = ""; - }; - 84D017571527431F0008A4E0 /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 84B8DA13152C9AC600D59B95 /* libtbb.dylib */, - 84D017581527431F0008A4E0 /* AppKit.framework */, - 84D017591527431F0008A4E0 /* CoreData.framework */, - 84D0175A1527431F0008A4E0 /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 84D017501527431F0008A4E0 /* tbbExample */ = { - isa = PBXNativeTarget; - buildConfigurationList = 84D01772152743200008A4E0 /* Build configuration list for PBXNativeTarget "tbbExample" */; - buildPhases = ( - 84D0174D1527431F0008A4E0 /* Sources */, - 84D0174E1527431F0008A4E0 /* Frameworks */, - 84D0174F1527431F0008A4E0 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = tbbExample; - productName = tbbExample; - productReference = 84D017511527431F0008A4E0 /* tbbExample.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 84D017481527431F0008A4E0 /* Project object */ = { - isa = PBXProject; - attributes = { - CLASSPREFIX = tbb; - LastUpgradeCheck = 0430; - }; - buildConfigurationList = 84D0174B1527431F0008A4E0 /* Build configuration list for PBXProject "tbbExample" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = 84D017461527431F0008A4E0; - productRefGroup = 84D017521527431F0008A4E0 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 84D017501527431F0008A4E0 /* tbbExample */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 84D0174F1527431F0008A4E0 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 84B8DA7A152CA90100D59B95 /* (null) in Resources */, - 84B8DA80152CA97B00D59B95 /* InfoPlist.strings in Resources */, - 84B8DA81152CA97B00D59B95 /* MainMenu.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 84D0174D1527431F0008A4E0 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 84B8DA77152CA90100D59B95 /* main.m in Sources */, - 84B8DA78152CA90100D59B95 /* OpenGLView.m in Sources */, - 84B8DA79152CA90100D59B95 /* tbbAppDelegate.m in Sources */, - 84B8DA87152CA99C00D59B95 /* main.cpp in Sources */, - 84B8DA88152CA99C00D59B95 /* seismic_video.cpp in Sources */, - 84B8DA89152CA99C00D59B95 /* universe.cpp in Sources */, - 84B8DA9A152CADF400D59B95 /* macvideo.cpp in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 84B8DA7C152CA97B00D59B95 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 84B8DA7D152CA97B00D59B95 /* en */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; - 84B8DA7E152CA97B00D59B95 /* MainMenu.xib */ = { - isa = PBXVariantGroup; - children = ( - 84B8DA7F152CA97B00D59B95 /* en */, - ); - name = MainMenu.xib; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 84D01770152743200008A4E0 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = YES; - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_ARC = YES; - COPY_PHASE_STRIP = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.7; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; - }; - name = Debug; - }; - 84D01771152743200008A4E0 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = YES; - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_ARC = YES; - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.7; - SDKROOT = macosx; - }; - name = Release; - }; - 84D01773152743200008A4E0 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "../../../common/gui/xcode/tbbExample/tbbExample-Prefix.pch"; - HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; - INFOPLIST_FILE = "../../../common/gui/xcode/tbbExample/tbbExample-Info.plist"; - LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../../lib\""; - MACOSX_DEPLOYMENT_TARGET = 10.7; - PRODUCT_NAME = "$(TARGET_NAME)"; - RUN_CLANG_STATIC_ANALYZER = YES; - USER_HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; - VERSION_INFO_BUILDER = "$(TARGET_NAME)"; - WRAPPER_EXTENSION = app; - }; - name = Debug; - }; - 84D01774152743200008A4E0 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "../../../common/gui/xcode/tbbExample/tbbExample-Prefix.pch"; - HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; - INFOPLIST_FILE = "../../../common/gui/xcode/tbbExample/tbbExample-Info.plist"; - LIBRARY_SEARCH_PATHS = ( - "\"$(SRCROOT)/../../../../lib\"", - "\"$(SRCROOT)\"", - ); - MACOSX_DEPLOYMENT_TARGET = 10.7; - PRODUCT_NAME = "$(TARGET_NAME)"; - RUN_CLANG_STATIC_ANALYZER = YES; - USER_HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; - VERSION_INFO_BUILDER = "$(TARGET_NAME)"; - WRAPPER_EXTENSION = app; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 84D0174B1527431F0008A4E0 /* Build configuration list for PBXProject "tbbExample" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 84D01770152743200008A4E0 /* Debug */, - 84D01771152743200008A4E0 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 84D01772152743200008A4E0 /* Build configuration list for PBXNativeTarget "tbbExample" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 84D01773152743200008A4E0 /* Debug */, - 84D01774152743200008A4E0 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 84D017481527431F0008A4E0 /* Project object */; -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/xcode/seismic.xcodeproj/xcshareddata/xcschemes/tbbExample.xcscheme b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/xcode/seismic.xcodeproj/xcshareddata/xcschemes/tbbExample.xcscheme deleted file mode 100644 index 1dd33ab33..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/seismic/xcode/seismic.xcodeproj/xcshareddata/xcschemes/tbbExample.xcscheme +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/Makefile b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/Makefile deleted file mode 100644 index e52fd493e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/Makefile +++ /dev/null @@ -1,158 +0,0 @@ -# Copyright 2005-2014 Intel Corporation. All Rights Reserved. -# -# This file is part of Threading Building Blocks. -# -# Threading Building Blocks is free software; you can redistribute it -# and/or modify it under the terms of the GNU General Public License -# version 2 as published by the Free Software Foundation. -# -# Threading Building Blocks is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied warranty -# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Threading Building Blocks; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# -# As a special exception, you may use this file as part of a free software -# library without restriction. Specifically, if other files instantiate -# templates or use macros or inline functions from this file, or you compile -# this file and link it with other files to produce an executable, this -# file does not by itself cause the resulting executable to be covered by -# the GNU General Public License. This exception does not however -# invalidate any other reasons why the executable file might be covered by -# the GNU General Public License. - -# The original source for this example is -# Copyright (c) 1994-2008 John E. Stone -# 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. -# 3. The name of the author may not be used to endorse or promote products -# derived from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. - -# Common Makefile that builds and runs example. - -# Trying to find if icl.exe is set -CXX1 = $(TBB_CXX)- -CXX2 = $(CXX1:icl.exe-=icl.exe) -CXX = $(CXX2:-=cl.exe) - -# Uncomment one of next lines to choose user interface type (console, gdiplus, direct draw) -#UI = con -UI = gdi -#UI = dd - -# Machine architecture, auto-detected from TBB_TARGET_ARCH by default -# Use XARCH variable to change it. See index.html for more information -ARCH0 = $(TBB_TARGET_ARCH)- -ARCH1 = $(ARCH0:ia32-=x86) -ARCH2 = $(ARCH1:intel64-=AMD64) -XARCH = $(ARCH2:-=x86) - -# The default runtime arguments -ARGS = dat\balls.dat -PERF_RUN_ARGS = silent dat\balls3.dat -LIGHT_ARGS=dat\model2.dat - -# Add these for tbb/tbb1d release builds -# /GL is a workaround to prevent run-time crash when built by VS2010 -CXXFLAGS_TBB_NDEBUG = $(CXXFLAGS) /GL -LIBS_TBB_NDEBUG = tbb.lib $(LIBS) - -# Add these for tbb/tbb1d debug builds -CXXFLAGS_TBB_DEBUG = $(CXXFLAGS) /D TBB_USE_DEBUG -LIBS_TBB_DEBUG = tbb_debug.lib $(LIBS) - - -MAKEINC = ../../common/gui/Makefile.win -# scr/main.cpp src/tachyon_video.cpp cannot be included to the SOURCE_COMMON list since it depends on UI and /subsystem which is not specified for common SOURCE build -SOURCE = src/main.cpp src/tachyon_video.cpp -SOURCE_COMMON = src/pthread.cpp src/api.cpp src/apigeom.cpp src/apitrigeom.cpp src/bndbox.cpp src/box.cpp src/camera.cpp src/coordsys.cpp src/cylinder.cpp src/extvol.cpp src/global.cpp src/grid.cpp src/imageio.cpp src/imap.cpp src/intersect.cpp src/jpeg.cpp src/light.cpp src/objbound.cpp src/parse.cpp src/plane.cpp src/ppm.cpp src/quadric.cpp src/render.cpp src/ring.cpp src/shade.cpp src/sphere.cpp src/texture.cpp src/tgafile.cpp src/trace_rest.cpp src/triangle.cpp src/ui.cpp src/util.cpp src/vector.cpp src/vol.cpp - -# Targets -all: build run -release: build -debug: build_debug -test: run - -build: build_serial build_tbb1d build_tbb -build_debug: build_serial_debug build_tbb1d_debug build_tbb_debug -run: run_serial run_tbb1d run_tbb - -serial: build_serial run_serial -serial_debug: build_serial_debug run_serial -tbb: build_tbb run_tbb -tbb_debug: build_tbb_debug run_tbb -tbb1d: build_tbb1d run_tbb1d -tbb1d_debug: build_tbb1d_debug run_tbb1d - -CXXFLAGS_COMMON = /c /nologo /EHsc /Zc:forScope /D WIN32 /D _MBCS /D _CRT_SECURE_NO_DEPRECATE /Foobj/ /MP $(CXXFLAGS) -CXXFLAGS_NDEBUG = /MD /O2 /Ot /Gy /D NDEBUG -CXXFLAGS_DEBUG = /MDd /Od /Zi /D _DEBUG -LIB_LINK_FLAGS = /nologo /machine:$(XARCH) - -tachyon_common.lib: - @cmd.exe /C if not exist obj mkdir obj - $(CXX) $(CXXFLAGS_NDEBUG) $(CXXFLAGS_COMMON) $(SOURCE_COMMON) - LIB $(LIB_LINK_FLAGS) obj/*.obj /OUT:$@ - @cmd.exe /C if exist obj rmdir /S /Q obj - -tachyon_common_debug.lib: - @cmd.exe /C if not exist obj mkdir obj - $(CXX) $(CXXFLAGS_DEBUG) $(CXXFLAGS_COMMON) $(SOURCE_COMMON) - LIB $(LIB_LINK_FLAGS) obj/*.obj /OUT:$@ - @cmd.exe /C if exist obj rmdir /S /Q obj - -build_serial: tachyon_common.lib - @$(MAKE) -f $(MAKEINC) SOURCE="src/trace.serial.cpp $(SOURCE) tachyon_common.lib" EXE=tachyon.serial.exe RCNAME=gui UI=$(UI) CXX="$(CXX)" CXXFLAGS="/GL $(CXXFLAGS)" XARCH=$(XARCH) build_one -build_serial_debug: tachyon_common_debug.lib - @$(MAKE) -f $(MAKEINC) SOURCE="src/trace.serial.cpp $(SOURCE) tachyon_common_debug.lib" EXE=tachyon.serial.exe RCNAME=gui UI=$(UI) DEBUG=_debug CXX="$(CXX)" CXXFLAGS=$(CXXFLAGS) XARCH=$(XARCH) build_one -run_serial: - -.\tachyon.serial.exe $(ARGS) - -build_tbb: tachyon_common.lib - @$(MAKE) -f $(MAKEINC) SOURCE="src/trace.tbb.cpp $(SOURCE) tachyon_common.lib" EXE=tachyon.tbb.exe RCNAME=gui UI=$(UI) CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS_TBB_NDEBUG)" LFLAGS="$(LIBS_TBB_NDEBUG)" XARCH=$(XARCH) build_one -build_tbb_debug: tachyon_common_debug.lib - @$(MAKE) -f $(MAKEINC) SOURCE="src/trace.tbb.cpp $(SOURCE) tachyon_common_debug.lib" EXE=tachyon.tbb.exe RCNAME=gui UI=$(UI) DEBUG=_debug CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS_TBB_DEBUG)" LFLAGS="$(LIBS_TBB_DEBUG)" XARCH=$(XARCH) build_one -run_tbb: - -.\tachyon.tbb.exe $(ARGS) - -build_tbb1d: tachyon_common.lib - @$(MAKE) -f $(MAKEINC) SOURCE="src/trace.tbb1d.cpp $(SOURCE) tachyon_common.lib" EXE=tachyon.tbb1d.exe RCNAME=gui UI=$(UI) CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS_TBB_NDEBUG)" LFLAGS="$(LIBS_TBB_NDEBUG)" XARCH=$(XARCH) build_one -build_tbb1d_debug: tachyon_common_debug.lib - @$(MAKE) -f $(MAKEINC) SOURCE="src/trace.tbb1d.cpp $(SOURCE) tachyon_common_debug.lib" EXE=tachyon.tbb1d.exe RCNAME=gui UI=$(UI) DEBUG=_debug CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS_TBB_DEBUG)" LFLAGS="$(LIBS_TBB_DEBUG)" XARCH=$(XARCH) build_one -run_tbb1d: - -.\tachyon.tbb1d.exe $(ARGS) - - -clean: - @cmd.exe /C del tachyon.* *.manifest *.obj *.lib msvs\gui.res *.?db - -perf_build: tachyon_common.lib - @$(MAKE) -f $(MAKEINC) SOURCE="src/trace.tbb.cpp $(SOURCE) tachyon_common.lib" EXE=tachyon.tbb.exe RCNAME=gui UI=con CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS_TBB_NDEBUG)" LFLAGS="$(LIBS_TBB_NDEBUG)" XARCH=$(XARCH) build_one -perf_run: - -.\tachyon.tbb.exe $(PERF_RUN_ARGS) - -light_test: - -.\tachyon.tbb.exe $(LIGHT_ARGS) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/.classpath b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/.classpath deleted file mode 100644 index 3f9691c5d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/.classpath +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/.cproject b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/.cproject deleted file mode 100644 index e2df34aa1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/.cproject +++ /dev/null @@ -1,223 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/.project b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/.project deleted file mode 100644 index fc089ae30..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/.project +++ /dev/null @@ -1,98 +0,0 @@ - - - Tachyon - - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - ?children? - ?name?=outputEntries\|?children?=?name?=entry\\\\\\\|\\\|?name?=entry\\\\\\\|\\\|\|| - - - ?name? - - - - org.eclipse.cdt.make.core.append_environment - true - - - org.eclipse.cdt.make.core.buildArguments - - - - org.eclipse.cdt.make.core.buildCommand - ndk-build - - - org.eclipse.cdt.make.core.cleanBuildTarget - clean - - - org.eclipse.cdt.make.core.contents - org.eclipse.cdt.make.core.activeConfigSettings - - - org.eclipse.cdt.make.core.enableAutoBuild - false - - - org.eclipse.cdt.make.core.enableCleanBuild - true - - - org.eclipse.cdt.make.core.enableFullBuild - true - - - org.eclipse.cdt.make.core.stopOnError - true - - - org.eclipse.cdt.make.core.useDefaultBuildCmd - true - - - - - com.android.ide.eclipse.adt.ResourceManagerBuilder - - - - - com.android.ide.eclipse.adt.PreCompilerBuilder - - - - - org.eclipse.jdt.core.javabuilder - - - - - com.android.ide.eclipse.adt.ApkBuilder - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - com.android.ide.eclipse.adt.AndroidNature - org.eclipse.jdt.core.javanature - org.eclipse.cdt.core.cnature - org.eclipse.cdt.core.ccnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/AndroidManifest.xml b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/AndroidManifest.xml deleted file mode 100644 index c3e1887e4..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/AndroidManifest.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/assets/data.dat b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/assets/data.dat deleted file mode 100644 index 0d4bbb15b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/assets/data.dat +++ /dev/null @@ -1,14804 +0,0 @@ -BEGIN_SCENE - OUTFILE /dev/null - RESOLUTION 512 512 - VERBOSE 0 - -CAMERA - ZOOM 1.20711 -ASPECTRATIO 1.0 - ANTIALIASING 0 - RAYDEPTH 5 - CENTER 2.1 1.3 1.7 - VIEWDIR -0.700389 -0.433574 -0.566982 - UPDIR -0.482085 -0.298433 0.82373 - -END_CAMERA - -BACKGROUND 0.078 0.361 0.753 - -LIGHT CENTER 4 3 2 RAD 0.002 COLOR 0.5 0.5 0.5 - -LIGHT CENTER 1 -4 4 RAD 0.002 COLOR 0.5 0.5 0.5 - -LIGHT CENTER -3 1 5 RAD 0.002 COLOR 0.5 0.5 0.5 - -TEXDEF txt001 AMBIENT 0.2 DIFFUSE 0.8 SPECULAR 0 OPACITY 1 -PHONG PLASTIC 0 PHONG_SIZE 100000 - COLOR 1 0.75 0.33 - TEXFUNC 0 - -TRI - V0 12 12 -0.5 V1 -12 -12 -0.5 V2 12 -12 -0.5 - txt001 -TRI - V0 12 12 -0.5 V1 -12 12 -0.5 V2 -12 -12 -0.5 - txt001 -TEXDEF txt002 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 -PHONG PLASTIC 0.5 PHONG_SIZE 45.2776 - COLOR 1 0.9 0.7 - TEXFUNC 0 - - SPHERE CENTER 0 0 0 RAD 0.5 - txt002 - SPHERE CENTER 0.272166 0.272166 0.544331 RAD 0.166667 - txt002 - SPHERE CENTER 0.420314 0.420314 0.618405 RAD 0.0555556 - txt002 - SPHERE CENTER 0.470715 0.470715 0.598245 RAD 0.0185185 - txt002 - SPHERE CENTER 0.481689 0.481689 0.57904 RAD 0.00617284 - txt002 - SPHERE CENTER 0.475329 0.45787 0.577669 RAD 0.00617284 - txt002 - SPHERE CENTER 0.45787 0.475329 0.577669 RAD 0.00617284 - txt002 - SPHERE CENTER 0.477074 0.494534 0.599616 RAD 0.00617284 - txt002 - SPHERE CENTER 0.453255 0.488174 0.598245 RAD 0.00617284 - txt002 - SPHERE CENTER 0.4661 0.48356 0.618821 RAD 0.00617284 - txt002 - SPHERE CENTER 0.494534 0.477074 0.599616 RAD 0.00617284 - txt002 - SPHERE CENTER 0.48356 0.4661 0.618821 RAD 0.00617284 - txt002 - SPHERE CENTER 0.488174 0.453255 0.598245 RAD 0.00617284 - txt002 - SPHERE CENTER 0.461623 0.409245 0.557924 RAD 0.0185185 - txt002 - SPHERE CENTER 0.47044 0.419664 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER 0.447954 0.425689 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER 0.468014 0.433095 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER 0.484109 0.40322 0.549693 RAD 0.00617284 - txt002 - SPHERE CENTER 0.481683 0.416651 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER 0.475292 0.392801 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER 0.464049 0.395814 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER 0.455233 0.385395 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER 0.441563 0.401839 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER 0.409245 0.461623 0.557924 RAD 0.0185185 - txt002 - SPHERE CENTER 0.419664 0.47044 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER 0.433095 0.468014 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER 0.425689 0.447954 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER 0.395814 0.464049 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER 0.401839 0.441563 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER 0.385395 0.455233 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER 0.40322 0.484109 0.549693 RAD 0.00617284 - txt002 - SPHERE CENTER 0.392801 0.475292 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER 0.416651 0.481683 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER 0.429405 0.481784 0.658726 RAD 0.0185185 - txt002 - SPHERE CENTER 0.441197 0.503434 0.660098 RAD 0.00617284 - txt002 - SPHERE CENTER 0.452601 0.483752 0.650495 RAD 0.00617284 - txt002 - SPHERE CENTER 0.434161 0.494577 0.63815 RAD 0.00617284 - txt002 - SPHERE CENTER 0.418001 0.501466 0.668328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.410965 0.492609 0.64638 RAD 0.00617284 - txt002 - SPHERE CENTER 0.406209 0.479816 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER 0.436441 0.490641 0.680674 RAD 0.00617284 - txt002 - SPHERE CENTER 0.42465 0.46899 0.679302 RAD 0.00617284 - txt002 - SPHERE CENTER 0.447846 0.470958 0.671072 RAD 0.00617284 - txt002 - SPHERE CENTER 0.367935 0.472692 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.36376 0.497028 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.383056 0.487812 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.383056 0.487812 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.34864 0.481907 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.367935 0.472692 0.593714 RAD 0.00617284 - txt002 - SPHERE CENTER 0.352815 0.457572 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.34864 0.481907 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.352815 0.457572 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.367935 0.472692 0.643096 RAD 0.00617284 - txt002 - SPHERE CENTER 0.379004 0.431383 0.678886 RAD 0.0185185 - txt002 - SPHERE CENTER 0.376578 0.444814 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399064 0.438789 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER 0.385395 0.455233 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356518 0.437408 0.687117 RAD 0.00617284 - txt002 - SPHERE CENTER 0.365335 0.447826 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.358944 0.423976 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.370187 0.420964 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.372614 0.407532 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER 0.392673 0.414939 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER 0.481784 0.429405 0.658726 RAD 0.0185185 - txt002 - SPHERE CENTER 0.503434 0.441197 0.660098 RAD 0.00617284 - txt002 - SPHERE CENTER 0.494577 0.434161 0.63815 RAD 0.00617284 - txt002 - SPHERE CENTER 0.483752 0.452601 0.650495 RAD 0.00617284 - txt002 - SPHERE CENTER 0.490641 0.436441 0.680674 RAD 0.00617284 - txt002 - SPHERE CENTER 0.470958 0.447846 0.671072 RAD 0.00617284 - txt002 - SPHERE CENTER 0.46899 0.42465 0.679302 RAD 0.00617284 - txt002 - SPHERE CENTER 0.501466 0.418001 0.668328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.479816 0.406209 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER 0.492609 0.410965 0.64638 RAD 0.00617284 - txt002 - SPHERE CENTER 0.431383 0.379004 0.678886 RAD 0.0185185 - txt002 - SPHERE CENTER 0.444814 0.376578 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.455233 0.385395 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER 0.438789 0.399064 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER 0.420964 0.370187 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.414939 0.392673 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER 0.407532 0.372614 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER 0.437408 0.356518 0.687117 RAD 0.00617284 - txt002 - SPHERE CENTER 0.423976 0.358944 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.447826 0.365335 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.472692 0.367935 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.497028 0.36376 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.487812 0.383056 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.487812 0.383056 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.481907 0.34864 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.472692 0.367935 0.643096 RAD 0.00617284 - txt002 - SPHERE CENTER 0.457572 0.352815 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.481907 0.34864 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.457572 0.352815 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.472692 0.367935 0.593714 RAD 0.00617284 - txt002 - SPHERE CENTER 0.461844 0.304709 0.43322 RAD 0.0555556 - txt002 - SPHERE CENTER 0.492085 0.33495 0.372739 RAD 0.0185185 - txt002 - SPHERE CENTER 0.492085 0.33495 0.348047 RAD 0.00617284 - txt002 - SPHERE CENTER 0.488469 0.313874 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.471009 0.331334 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.495701 0.356025 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.474625 0.352409 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER 0.495701 0.356025 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.51316 0.338566 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.51316 0.338566 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.509544 0.31749 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER 0.424345 0.305171 0.369341 RAD 0.0185185 - txt002 - SPHERE CENTER 0.40568 0.315605 0.356995 RAD 0.00617284 - txt002 - SPHERE CENTER 0.403931 0.312107 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER 0.419383 0.329161 0.372427 RAD 0.00617284 - txt002 - SPHERE CENTER 0.426095 0.30867 0.344961 RAD 0.00617284 - txt002 - SPHERE CENTER 0.439797 0.322225 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.444759 0.298235 0.357307 RAD 0.00617284 - txt002 - SPHERE CENTER 0.410643 0.291616 0.353908 RAD 0.00617284 - txt002 - SPHERE CENTER 0.429307 0.281181 0.366254 RAD 0.00617284 - txt002 - SPHERE CENTER 0.408893 0.288117 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.435193 0.368397 0.406378 RAD 0.0185185 - txt002 - SPHERE CENTER 0.440864 0.389015 0.394032 RAD 0.00617284 - txt002 - SPHERE CENTER 0.457301 0.37895 0.409464 RAD 0.00617284 - txt002 - SPHERE CENTER 0.451857 0.367697 0.388171 RAD 0.00617284 - txt002 - SPHERE CENTER 0.418755 0.378463 0.390945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.429748 0.357145 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.413085 0.357845 0.403291 RAD 0.00617284 - txt002 - SPHERE CENTER 0.4242 0.389715 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER 0.418529 0.369098 0.424584 RAD 0.00617284 - txt002 - SPHERE CENTER 0.440637 0.37965 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER 0.529584 0.334488 0.436618 RAD 0.0185185 - txt002 - SPHERE CENTER 0.546497 0.347572 0.424272 RAD 0.00617284 - txt002 - SPHERE CENTER 0.532117 0.331508 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER 0.522481 0.352406 0.421186 RAD 0.00617284 - txt002 - SPHERE CENTER 0.543964 0.350552 0.448652 RAD 0.00617284 - txt002 - SPHERE CENTER 0.519948 0.355387 0.445566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.52705 0.337468 0.460998 RAD 0.00617284 - txt002 - SPHERE CENTER 0.5536 0.329654 0.439705 RAD 0.00617284 - txt002 - SPHERE CENTER 0.536686 0.31657 0.45205 RAD 0.00617284 - txt002 - SPHERE CENTER 0.53922 0.313589 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER 0.472692 0.367935 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER 0.48474 0.389488 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.495668 0.369235 0.46131 RAD 0.00617284 - txt002 - SPHERE CENTER 0.477004 0.379669 0.448964 RAD 0.00617284 - txt002 - SPHERE CENTER 0.461764 0.388188 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER 0.454027 0.37837 0.457911 RAD 0.00617284 - txt002 - SPHERE CENTER 0.449715 0.366636 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER 0.480429 0.377754 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.46838 0.356202 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.491357 0.357501 0.482603 RAD 0.00617284 - txt002 - SPHERE CENTER 0.499343 0.304247 0.497099 RAD 0.0185185 - txt002 - SPHERE CENTER 0.518259 0.314219 0.509445 RAD 0.00617284 - txt002 - SPHERE CENTER 0.519922 0.310678 0.485065 RAD 0.00617284 - txt002 - SPHERE CENTER 0.504895 0.328108 0.494013 RAD 0.00617284 - txt002 - SPHERE CENTER 0.49768 0.307788 0.521479 RAD 0.00617284 - txt002 - SPHERE CENTER 0.484316 0.321677 0.506047 RAD 0.00617284 - txt002 - SPHERE CENTER 0.478764 0.297816 0.509133 RAD 0.00617284 - txt002 - SPHERE CENTER 0.512708 0.290358 0.512531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.493791 0.280387 0.500186 RAD 0.00617284 - txt002 - SPHERE CENTER 0.51437 0.286818 0.488152 RAD 0.00617284 - txt002 - SPHERE CENTER 0.518736 0.271262 0.399581 RAD 0.0185185 - txt002 - SPHERE CENTER 0.539811 0.274878 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.520873 0.290418 0.384149 RAD 0.00617284 - txt002 - SPHERE CENTER 0.533373 0.290264 0.405442 RAD 0.00617284 - txt002 - SPHERE CENTER 0.537674 0.255722 0.402668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.531235 0.271108 0.420874 RAD 0.00617284 - txt002 - SPHERE CENTER 0.516598 0.252106 0.415013 RAD 0.00617284 - txt002 - SPHERE CENTER 0.525174 0.255876 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER 0.504099 0.25226 0.39372 RAD 0.00617284 - txt002 - SPHERE CENTER 0.506236 0.271416 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.488495 0.241021 0.460062 RAD 0.0185185 - txt002 - SPHERE CENTER 0.50716 0.230587 0.472408 RAD 0.00617284 - txt002 - SPHERE CENTER 0.51153 0.24936 0.456976 RAD 0.00617284 - txt002 - SPHERE CENTER 0.499694 0.253381 0.478269 RAD 0.00617284 - txt002 - SPHERE CENTER 0.484125 0.222248 0.475494 RAD 0.00617284 - txt002 - SPHERE CENTER 0.476659 0.245042 0.481355 RAD 0.00617284 - txt002 - SPHERE CENTER 0.46546 0.232683 0.463149 RAD 0.00617284 - txt002 - SPHERE CENTER 0.495961 0.218227 0.454201 RAD 0.00617284 - txt002 - SPHERE CENTER 0.477296 0.228661 0.441856 RAD 0.00617284 - txt002 - SPHERE CENTER 0.500331 0.237 0.438769 RAD 0.00617284 - txt002 - SPHERE CENTER 0.450996 0.241483 0.396183 RAD 0.0185185 - txt002 - SPHERE CENTER 0.455172 0.217147 0.396183 RAD 0.00617284 - txt002 - SPHERE CENTER 0.472226 0.232599 0.40513 RAD 0.00617284 - txt002 - SPHERE CENTER 0.45115 0.228983 0.417476 RAD 0.00617284 - txt002 - SPHERE CENTER 0.433942 0.226031 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.429921 0.237867 0.408529 RAD 0.00617284 - txt002 - SPHERE CENTER 0.429767 0.250367 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.455018 0.229647 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER 0.450842 0.253983 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER 0.472072 0.245099 0.383837 RAD 0.00617284 - txt002 - SPHERE CENTER 0.304709 0.461844 0.43322 RAD 0.0555556 - txt002 - SPHERE CENTER 0.33495 0.492085 0.372739 RAD 0.0185185 - txt002 - SPHERE CENTER 0.33495 0.492085 0.348047 RAD 0.00617284 - txt002 - SPHERE CENTER 0.331334 0.471009 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.313874 0.488469 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.338566 0.51316 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.31749 0.509544 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER 0.338566 0.51316 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356025 0.495701 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356025 0.495701 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.352409 0.474625 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER 0.368397 0.435193 0.406378 RAD 0.0185185 - txt002 - SPHERE CENTER 0.389015 0.440864 0.394032 RAD 0.00617284 - txt002 - SPHERE CENTER 0.367697 0.451857 0.388171 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37895 0.457301 0.409464 RAD 0.00617284 - txt002 - SPHERE CENTER 0.389715 0.4242 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37965 0.440637 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER 0.369098 0.418529 0.424584 RAD 0.00617284 - txt002 - SPHERE CENTER 0.378463 0.418755 0.390945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.357845 0.413085 0.403291 RAD 0.00617284 - txt002 - SPHERE CENTER 0.357145 0.429748 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.305171 0.424345 0.369341 RAD 0.0185185 - txt002 - SPHERE CENTER 0.315605 0.40568 0.356995 RAD 0.00617284 - txt002 - SPHERE CENTER 0.329161 0.419383 0.372427 RAD 0.00617284 - txt002 - SPHERE CENTER 0.312107 0.403931 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER 0.291616 0.410643 0.353908 RAD 0.00617284 - txt002 - SPHERE CENTER 0.288117 0.408893 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.281181 0.429307 0.366254 RAD 0.00617284 - txt002 - SPHERE CENTER 0.30867 0.426095 0.344961 RAD 0.00617284 - txt002 - SPHERE CENTER 0.298235 0.444759 0.357307 RAD 0.00617284 - txt002 - SPHERE CENTER 0.322225 0.439797 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.271262 0.518736 0.399581 RAD 0.0185185 - txt002 - SPHERE CENTER 0.274878 0.539811 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.290264 0.533373 0.405442 RAD 0.00617284 - txt002 - SPHERE CENTER 0.290418 0.520873 0.384149 RAD 0.00617284 - txt002 - SPHERE CENTER 0.255876 0.525174 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER 0.271416 0.506236 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.25226 0.504099 0.39372 RAD 0.00617284 - txt002 - SPHERE CENTER 0.255722 0.537674 0.402668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.252106 0.516598 0.415013 RAD 0.00617284 - txt002 - SPHERE CENTER 0.271108 0.531235 0.420874 RAD 0.00617284 - txt002 - SPHERE CENTER 0.241483 0.450996 0.396183 RAD 0.0185185 - txt002 - SPHERE CENTER 0.217147 0.455172 0.396183 RAD 0.00617284 - txt002 - SPHERE CENTER 0.228983 0.45115 0.417476 RAD 0.00617284 - txt002 - SPHERE CENTER 0.232599 0.472226 0.40513 RAD 0.00617284 - txt002 - SPHERE CENTER 0.229647 0.455018 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER 0.245099 0.472072 0.383837 RAD 0.00617284 - txt002 - SPHERE CENTER 0.253983 0.450842 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER 0.226031 0.433942 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.250367 0.429767 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.237867 0.429921 0.408529 RAD 0.00617284 - txt002 - SPHERE CENTER 0.241021 0.488495 0.460062 RAD 0.0185185 - txt002 - SPHERE CENTER 0.230587 0.50716 0.472408 RAD 0.00617284 - txt002 - SPHERE CENTER 0.253381 0.499694 0.478269 RAD 0.00617284 - txt002 - SPHERE CENTER 0.24936 0.51153 0.456976 RAD 0.00617284 - txt002 - SPHERE CENTER 0.218227 0.495961 0.454201 RAD 0.00617284 - txt002 - SPHERE CENTER 0.237 0.500331 0.438769 RAD 0.00617284 - txt002 - SPHERE CENTER 0.228661 0.477296 0.441856 RAD 0.00617284 - txt002 - SPHERE CENTER 0.222248 0.484125 0.475494 RAD 0.00617284 - txt002 - SPHERE CENTER 0.232683 0.46546 0.463149 RAD 0.00617284 - txt002 - SPHERE CENTER 0.245042 0.476659 0.481355 RAD 0.00617284 - txt002 - SPHERE CENTER 0.334488 0.529584 0.436618 RAD 0.0185185 - txt002 - SPHERE CENTER 0.347572 0.546497 0.424272 RAD 0.00617284 - txt002 - SPHERE CENTER 0.352406 0.522481 0.421186 RAD 0.00617284 - txt002 - SPHERE CENTER 0.331508 0.532117 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER 0.329654 0.5536 0.439705 RAD 0.00617284 - txt002 - SPHERE CENTER 0.313589 0.53922 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER 0.31657 0.536686 0.45205 RAD 0.00617284 - txt002 - SPHERE CENTER 0.350552 0.543964 0.448652 RAD 0.00617284 - txt002 - SPHERE CENTER 0.337468 0.52705 0.460998 RAD 0.00617284 - txt002 - SPHERE CENTER 0.355387 0.519948 0.445566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.304247 0.499343 0.497099 RAD 0.0185185 - txt002 - SPHERE CENTER 0.314219 0.518259 0.509445 RAD 0.00617284 - txt002 - SPHERE CENTER 0.328108 0.504895 0.494013 RAD 0.00617284 - txt002 - SPHERE CENTER 0.310678 0.519922 0.485065 RAD 0.00617284 - txt002 - SPHERE CENTER 0.290358 0.512708 0.512531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.286818 0.51437 0.488152 RAD 0.00617284 - txt002 - SPHERE CENTER 0.280387 0.493791 0.500186 RAD 0.00617284 - txt002 - SPHERE CENTER 0.307788 0.49768 0.521479 RAD 0.00617284 - txt002 - SPHERE CENTER 0.297816 0.478764 0.509133 RAD 0.00617284 - txt002 - SPHERE CENTER 0.321677 0.484316 0.506047 RAD 0.00617284 - txt002 - SPHERE CENTER 0.367935 0.472692 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER 0.389488 0.48474 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.379669 0.477004 0.448964 RAD 0.00617284 - txt002 - SPHERE CENTER 0.369235 0.495668 0.46131 RAD 0.00617284 - txt002 - SPHERE CENTER 0.377754 0.480429 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.357501 0.491357 0.482603 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356202 0.46838 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.388188 0.461764 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER 0.366636 0.449715 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37837 0.454027 0.457911 RAD 0.00617284 - txt002 - SPHERE CENTER 0.230635 0.38777 0.729516 RAD 0.0555556 - txt002 - SPHERE CENTER 0.2506 0.446614 0.769837 RAD 0.0185185 - txt002 - SPHERE CENTER 0.264242 0.467193 0.770086 RAD 0.00617284 - txt002 - SPHERE CENTER 0.272442 0.447086 0.758332 RAD 0.00617284 - txt002 - SPHERE CENTER 0.253384 0.459832 0.749168 RAD 0.00617284 - txt002 - SPHERE CENTER 0.2424 0.46672 0.781591 RAD 0.00617284 - txt002 - SPHERE CENTER 0.231541 0.459359 0.760673 RAD 0.00617284 - txt002 - SPHERE CENTER 0.228758 0.446141 0.781342 RAD 0.00617284 - txt002 - SPHERE CENTER 0.261459 0.453974 0.790755 RAD 0.00617284 - txt002 - SPHERE CENTER 0.247817 0.433396 0.790506 RAD 0.00617284 - txt002 - SPHERE CENTER 0.269659 0.433868 0.779001 RAD 0.00617284 - txt002 - SPHERE CENTER 0.301839 0.407906 0.732914 RAD 0.0185185 - txt002 - SPHERE CENTER 0.319874 0.420236 0.72141 RAD 0.00617284 - txt002 - SPHERE CENTER 0.303021 0.407886 0.708251 RAD 0.00617284 - txt002 - SPHERE CENTER 0.296625 0.428474 0.720288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.318692 0.420256 0.746073 RAD 0.00617284 - txt002 - SPHERE CENTER 0.295442 0.428494 0.744951 RAD 0.00617284 - txt002 - SPHERE CENTER 0.300656 0.407926 0.757577 RAD 0.00617284 - txt002 - SPHERE CENTER 0.325088 0.399668 0.734036 RAD 0.00617284 - txt002 - SPHERE CENTER 0.307053 0.387338 0.745541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.308235 0.387318 0.720878 RAD 0.00617284 - txt002 - SPHERE CENTER 0.253236 0.449775 0.695877 RAD 0.0185185 - txt002 - SPHERE CENTER 0.263032 0.459076 0.675209 RAD 0.00617284 - txt002 - SPHERE CENTER 0.270029 0.436804 0.683251 RAD 0.00617284 - txt002 - SPHERE CENTER 0.247378 0.440021 0.673964 RAD 0.00617284 - txt002 - SPHERE CENTER 0.246239 0.472047 0.687835 RAD 0.00617284 - txt002 - SPHERE CENTER 0.230585 0.452992 0.68659 RAD 0.00617284 - txt002 - SPHERE CENTER 0.236443 0.462746 0.708504 RAD 0.00617284 - txt002 - SPHERE CENTER 0.26889 0.468829 0.697123 RAD 0.00617284 - txt002 - SPHERE CENTER 0.259094 0.459528 0.717791 RAD 0.00617284 - txt002 - SPHERE CENTER 0.275887 0.446557 0.705165 RAD 0.00617284 - txt002 - SPHERE CENTER 0.179397 0.426478 0.766439 RAD 0.0185185 - txt002 - SPHERE CENTER 0.174744 0.447688 0.778193 RAD 0.00617284 - txt002 - SPHERE CENTER 0.197172 0.437457 0.779597 RAD 0.00617284 - txt002 - SPHERE CENTER 0.1895 0.447523 0.758396 RAD 0.00617284 - txt002 - SPHERE CENTER 0.156968 0.436708 0.765035 RAD 0.00617284 - txt002 - SPHERE CENTER 0.171724 0.436544 0.745238 RAD 0.00617284 - txt002 - SPHERE CENTER 0.161621 0.415499 0.753281 RAD 0.00617284 - txt002 - SPHERE CENTER 0.164641 0.426642 0.786236 RAD 0.00617284 - txt002 - SPHERE CENTER 0.169293 0.405432 0.774481 RAD 0.00617284 - txt002 - SPHERE CENTER 0.187069 0.416412 0.787639 RAD 0.00617284 - txt002 - SPHERE CENTER 0.182032 0.429639 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER 0.177682 0.45215 0.683315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.190087 0.449636 0.704516 RAD 0.00617284 - txt002 - SPHERE CENTER 0.200611 0.44299 0.683192 RAD 0.00617284 - txt002 - SPHERE CENTER 0.169628 0.432153 0.671279 RAD 0.00617284 - txt002 - SPHERE CENTER 0.192556 0.422992 0.671155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.173978 0.409641 0.680442 RAD 0.00617284 - txt002 - SPHERE CENTER 0.159104 0.438799 0.692603 RAD 0.00617284 - txt002 - SPHERE CENTER 0.163454 0.416288 0.701767 RAD 0.00617284 - txt002 - SPHERE CENTER 0.171508 0.436286 0.713804 RAD 0.00617284 - txt002 - SPHERE CENTER 0.159431 0.367634 0.726118 RAD 0.0185185 - txt002 - SPHERE CENTER 0.13761 0.368692 0.737623 RAD 0.00617284 - txt002 - SPHERE CENTER 0.158434 0.366998 0.750781 RAD 0.00617284 - txt002 - SPHERE CENTER 0.153102 0.387887 0.738744 RAD 0.00617284 - txt002 - SPHERE CENTER 0.138607 0.369329 0.71296 RAD 0.00617284 - txt002 - SPHERE CENTER 0.154099 0.388523 0.714081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.160429 0.36827 0.701455 RAD 0.00617284 - txt002 - SPHERE CENTER 0.14394 0.34844 0.724997 RAD 0.00617284 - txt002 - SPHERE CENTER 0.165761 0.347381 0.713492 RAD 0.00617284 - txt002 - SPHERE CENTER 0.164764 0.346745 0.738155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.227999 0.384609 0.803476 RAD 0.0185185 - txt002 - SPHERE CENTER 0.237348 0.393812 0.824394 RAD 0.00617284 - txt002 - SPHERE CENTER 0.251829 0.390976 0.804597 RAD 0.00617284 - txt002 - SPHERE CENTER 0.234368 0.408432 0.804721 RAD 0.00617284 - txt002 - SPHERE CENTER 0.213518 0.387445 0.823273 RAD 0.00617284 - txt002 - SPHERE CENTER 0.210538 0.402066 0.8036 RAD 0.00617284 - txt002 - SPHERE CENTER 0.204169 0.378242 0.802355 RAD 0.00617284 - txt002 - SPHERE CENTER 0.23098 0.369989 0.823149 RAD 0.00617284 - txt002 - SPHERE CENTER 0.221631 0.360786 0.802231 RAD 0.00617284 - txt002 - SPHERE CENTER 0.245461 0.367152 0.803352 RAD 0.00617284 - txt002 - SPHERE CENTER 0.208034 0.325765 0.763155 RAD 0.0185185 - txt002 - SPHERE CENTER 0.209548 0.312342 0.783824 RAD 0.00617284 - txt002 - SPHERE CENTER 0.229235 0.324887 0.775781 RAD 0.00617284 - txt002 - SPHERE CENTER 0.209827 0.337 0.785069 RAD 0.00617284 - txt002 - SPHERE CENTER 0.188347 0.31322 0.771198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.188626 0.337878 0.772443 RAD 0.00617284 - txt002 - SPHERE CENTER 0.186834 0.326643 0.750529 RAD 0.00617284 - txt002 - SPHERE CENTER 0.207755 0.301107 0.76191 RAD 0.00617284 - txt002 - SPHERE CENTER 0.206242 0.31453 0.741241 RAD 0.00617284 - txt002 - SPHERE CENTER 0.227442 0.313652 0.753867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.279238 0.345901 0.766553 RAD 0.0185185 - txt002 - SPHERE CENTER 0.302145 0.344931 0.775717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.297823 0.356827 0.754517 RAD 0.00617284 - txt002 - SPHERE CENTER 0.289691 0.366251 0.775841 RAD 0.00617284 - txt002 - SPHERE CENTER 0.28356 0.334005 0.787754 RAD 0.00617284 - txt002 - SPHERE CENTER 0.271106 0.355325 0.787878 RAD 0.00617284 - txt002 - SPHERE CENTER 0.260653 0.334975 0.77859 RAD 0.00617284 - txt002 - SPHERE CENTER 0.291692 0.324581 0.766429 RAD 0.00617284 - txt002 - SPHERE CENTER 0.268785 0.325551 0.757266 RAD 0.00617284 - txt002 - SPHERE CENTER 0.28737 0.336477 0.745229 RAD 0.00617284 - txt002 - SPHERE CENTER 0.115031 0.4293 0.544331 RAD 0.0555556 - txt002 - SPHERE CENTER 0.102505 0.502308 0.544331 RAD 0.0185185 - txt002 - SPHERE CENTER 0.110567 0.524146 0.536101 RAD 0.00617284 - txt002 - SPHERE CENTER 0.126738 0.506465 0.542066 RAD 0.00617284 - txt002 - SPHERE CENTER 0.112687 0.504055 0.521905 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0863343 0.519988 0.538366 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0884544 0.499897 0.524171 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0782715 0.49815 0.546597 RAD 0.00617284 - txt002 - SPHERE CENTER 0.100385 0.522399 0.558526 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0923218 0.500561 0.566757 RAD 0.00617284 - txt002 - SPHERE CENTER 0.116555 0.504718 0.564491 RAD 0.00617284 - txt002 - SPHERE CENTER 0.160392 0.474661 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.177777 0.492047 0.579103 RAD 0.00617284 - txt002 - SPHERE CENTER 0.176681 0.473492 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.159222 0.490951 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.161488 0.493217 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER 0.142932 0.492121 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.144102 0.475831 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.178947 0.475757 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER 0.161561 0.458371 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.177851 0.457202 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.160392 0.474661 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.167697 0.481967 0.484868 RAD 0.00617284 - txt002 - SPHERE CENTER 0.161561 0.458371 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.144102 0.475831 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.166528 0.498257 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.142932 0.492121 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.159222 0.490951 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.183987 0.480797 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.176681 0.473492 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.177851 0.457202 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0571437 0.456947 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0450372 0.477623 0.501329 RAD 0.00617284 - txt002 - SPHERE CENTER 0.055591 0.475469 0.523547 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0696413 0.47788 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0465898 0.4591 0.485076 RAD 0.00617284 - txt002 - SPHERE CENTER 0.071194 0.459357 0.487134 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0586963 0.438424 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0325396 0.45669 0.505236 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0446461 0.436013 0.511201 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0430934 0.454536 0.527454 RAD 0.00617284 - txt002 - SPHERE CENTER 0.115031 0.4293 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER 0.10495 0.439381 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0911807 0.435691 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.10864 0.45315 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.128801 0.43299 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER 0.13249 0.44676 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.138881 0.42291 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.111341 0.415531 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER 0.121421 0.40545 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0975713 0.411841 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0696698 0.383939 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.052284 0.366554 0.509559 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0708393 0.36765 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0533799 0.385109 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0511144 0.382844 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0522103 0.401399 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0685002 0.400229 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0685739 0.365384 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0859596 0.38277 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0871292 0.36648 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0571437 0.456947 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0493251 0.475575 0.595564 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0725262 0.467381 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER 0.06557 0.479825 0.577461 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0339426 0.465141 0.57931 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0501875 0.46939 0.561208 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0417612 0.446512 0.565115 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0408988 0.452697 0.599471 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0487174 0.434069 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0640999 0.444504 0.601529 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0696698 0.383939 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0623642 0.376634 0.603794 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0859596 0.38277 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0685002 0.400229 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0460743 0.377803 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0522103 0.401399 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0533799 0.385109 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0635337 0.360344 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0708393 0.36765 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0871292 0.36648 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.115031 0.4293 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.125111 0.439381 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.138881 0.435691 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.121421 0.45315 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.101261 0.43299 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0975713 0.44676 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0911807 0.42291 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.11872 0.415531 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.10864 0.40545 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.13249 0.411841 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.082487 0.239622 0.655442 RAD 0.0555556 - txt002 - SPHERE CENTER 0.0438957 0.258053 0.715923 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0426858 0.273525 0.735128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.064638 0.265928 0.726759 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0510334 0.281546 0.713318 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0219434 0.26565 0.724292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.030291 0.273671 0.702483 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0231533 0.250178 0.705088 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0355481 0.250032 0.737733 RAD 0.00617284 - txt002 - SPHERE CENTER 0.036758 0.23456 0.718528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0575003 0.242434 0.729364 RAD 0.00617284 - txt002 - SPHERE CENTER 0.117687 0.252557 0.719322 RAD 0.0185185 - txt002 - SPHERE CENTER 0.135677 0.265544 0.730157 RAD 0.00617284 - txt002 - SPHERE CENTER 0.138361 0.25778 0.706872 RAD 0.00617284 - txt002 - SPHERE CENTER 0.12224 0.275732 0.71212 RAD 0.00617284 - txt002 - SPHERE CENTER 0.115003 0.26032 0.742607 RAD 0.00617284 - txt002 - SPHERE CENTER 0.101567 0.270508 0.72457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.097014 0.247334 0.731771 RAD 0.00617284 - txt002 - SPHERE CENTER 0.131123 0.242369 0.737359 RAD 0.00617284 - txt002 - SPHERE CENTER 0.113134 0.229382 0.726523 RAD 0.00617284 - txt002 - SPHERE CENTER 0.133808 0.234605 0.714074 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0863845 0.308551 0.682285 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0971427 0.330622 0.67968 RAD 0.00617284 - txt002 - SPHERE CENTER 0.109956 0.310023 0.675083 RAD 0.00617284 - txt002 - SPHERE CENTER 0.091905 0.317013 0.659755 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0735708 0.329151 0.686881 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0683331 0.315541 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0628126 0.30708 0.689486 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0916222 0.322161 0.702209 RAD 0.00617284 - txt002 - SPHERE CENTER 0.080864 0.30009 0.704814 RAD 0.00617284 - txt002 - SPHERE CENTER 0.104436 0.301561 0.697613 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00869528 0.245118 0.652044 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0110117 0.257416 0.660413 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00823377 0.253319 0.675329 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0102865 0.269325 0.656641 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0105502 0.249215 0.637128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.010748 0.261124 0.633356 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00915679 0.236916 0.628759 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0126029 0.233209 0.655816 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00710408 0.22091 0.647447 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00664257 0.229111 0.670732 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0511841 0.295616 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0555846 0.315856 0.604965 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0705987 0.309941 0.623653 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0705297 0.296292 0.603077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.03617 0.301531 0.599717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0511152 0.281968 0.597829 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0317696 0.281291 0.613157 RAD 0.00617284 - txt002 - SPHERE CENTER 0.036239 0.31518 0.620293 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0318385 0.29494 0.633733 RAD 0.00617284 - txt002 - SPHERE CENTER 0.051253 0.309265 0.638981 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0472866 0.226687 0.591563 RAD 0.0185185 - txt002 - SPHERE CENTER 0.025169 0.224935 0.580727 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0281502 0.217281 0.604012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0288111 0.241399 0.598764 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0443054 0.234341 0.568278 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0479475 0.250805 0.586315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.066423 0.236092 0.579113 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0436445 0.210223 0.573526 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0657621 0.211974 0.584361 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0466257 0.202569 0.596811 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0399982 0.189123 0.689081 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0335228 0.179527 0.71089 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0567332 0.187058 0.707118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0385291 0.203632 0.709006 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0167878 0.181593 0.692853 RAD 0.00617284 - txt002 - SPHERE CENTER 0.021794 0.205698 0.690969 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0232631 0.191189 0.671044 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0349919 0.165018 0.690965 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0414672 0.174615 0.669156 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0582023 0.172549 0.687193 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0785895 0.170692 0.6286 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0867911 0.147549 0.631205 RAD 0.00617284 - txt002 - SPHERE CENTER 0.101845 0.166573 0.635801 RAD 0.00617284 - txt002 - SPHERE CENTER 0.083121 0.161663 0.65113 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0635354 0.151669 0.624003 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0598652 0.165782 0.643928 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0553337 0.174812 0.621398 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0822597 0.156579 0.608675 RAD 0.00617284 - txt002 - SPHERE CENTER 0.074058 0.179722 0.60607 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0973138 0.175603 0.613272 RAD 0.00617284 - txt002 - SPHERE CENTER 0.11379 0.183628 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER 0.133336 0.176775 0.705919 RAD 0.00617284 - txt002 - SPHERE CENTER 0.136161 0.192663 0.687231 RAD 0.00617284 - txt002 - SPHERE CENTER 0.124499 0.199753 0.707807 RAD 0.00617284 - txt002 - SPHERE CENTER 0.110965 0.167739 0.711167 RAD 0.00617284 - txt002 - SPHERE CENTER 0.102127 0.190718 0.713055 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0914184 0.174592 0.697727 RAD 0.00617284 - txt002 - SPHERE CENTER 0.122627 0.160649 0.690591 RAD 0.00617284 - txt002 - SPHERE CENTER 0.103081 0.167502 0.677151 RAD 0.00617284 - txt002 - SPHERE CENTER 0.125452 0.176537 0.671903 RAD 0.00617284 - txt002 - SPHERE CENTER 0.38777 0.230635 0.729516 RAD 0.0555556 - txt002 - SPHERE CENTER 0.446614 0.2506 0.769837 RAD 0.0185185 - txt002 - SPHERE CENTER 0.467193 0.264242 0.770086 RAD 0.00617284 - txt002 - SPHERE CENTER 0.459832 0.253384 0.749168 RAD 0.00617284 - txt002 - SPHERE CENTER 0.447086 0.272442 0.758332 RAD 0.00617284 - txt002 - SPHERE CENTER 0.453974 0.261459 0.790755 RAD 0.00617284 - txt002 - SPHERE CENTER 0.433868 0.269659 0.779001 RAD 0.00617284 - txt002 - SPHERE CENTER 0.433396 0.247817 0.790506 RAD 0.00617284 - txt002 - SPHERE CENTER 0.46672 0.2424 0.781591 RAD 0.00617284 - txt002 - SPHERE CENTER 0.446141 0.228758 0.781342 RAD 0.00617284 - txt002 - SPHERE CENTER 0.459359 0.231541 0.760673 RAD 0.00617284 - txt002 - SPHERE CENTER 0.449775 0.253236 0.695877 RAD 0.0185185 - txt002 - SPHERE CENTER 0.459076 0.263032 0.675209 RAD 0.00617284 - txt002 - SPHERE CENTER 0.440021 0.247378 0.673964 RAD 0.00617284 - txt002 - SPHERE CENTER 0.436804 0.270029 0.683251 RAD 0.00617284 - txt002 - SPHERE CENTER 0.468829 0.26889 0.697123 RAD 0.00617284 - txt002 - SPHERE CENTER 0.446557 0.275887 0.705165 RAD 0.00617284 - txt002 - SPHERE CENTER 0.459528 0.259094 0.717791 RAD 0.00617284 - txt002 - SPHERE CENTER 0.472047 0.246239 0.687835 RAD 0.00617284 - txt002 - SPHERE CENTER 0.462746 0.236443 0.708504 RAD 0.00617284 - txt002 - SPHERE CENTER 0.452992 0.230585 0.68659 RAD 0.00617284 - txt002 - SPHERE CENTER 0.407906 0.301839 0.732914 RAD 0.0185185 - txt002 - SPHERE CENTER 0.420236 0.319874 0.72141 RAD 0.00617284 - txt002 - SPHERE CENTER 0.428474 0.296625 0.720288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.407886 0.303021 0.708251 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399668 0.325088 0.734036 RAD 0.00617284 - txt002 - SPHERE CENTER 0.387318 0.308235 0.720878 RAD 0.00617284 - txt002 - SPHERE CENTER 0.387338 0.307053 0.745541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.420256 0.318692 0.746073 RAD 0.00617284 - txt002 - SPHERE CENTER 0.407926 0.300656 0.757577 RAD 0.00617284 - txt002 - SPHERE CENTER 0.428494 0.295442 0.744951 RAD 0.00617284 - txt002 - SPHERE CENTER 0.384609 0.227999 0.803476 RAD 0.0185185 - txt002 - SPHERE CENTER 0.393812 0.237348 0.824394 RAD 0.00617284 - txt002 - SPHERE CENTER 0.408432 0.234368 0.804721 RAD 0.00617284 - txt002 - SPHERE CENTER 0.390976 0.251829 0.804597 RAD 0.00617284 - txt002 - SPHERE CENTER 0.369989 0.23098 0.823149 RAD 0.00617284 - txt002 - SPHERE CENTER 0.367152 0.245461 0.803352 RAD 0.00617284 - txt002 - SPHERE CENTER 0.360786 0.221631 0.802231 RAD 0.00617284 - txt002 - SPHERE CENTER 0.387445 0.213518 0.823273 RAD 0.00617284 - txt002 - SPHERE CENTER 0.378242 0.204169 0.802355 RAD 0.00617284 - txt002 - SPHERE CENTER 0.402066 0.210538 0.8036 RAD 0.00617284 - txt002 - SPHERE CENTER 0.345901 0.279238 0.766553 RAD 0.0185185 - txt002 - SPHERE CENTER 0.344931 0.302145 0.775717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.366251 0.289691 0.775841 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356827 0.297823 0.754517 RAD 0.00617284 - txt002 - SPHERE CENTER 0.324581 0.291692 0.766429 RAD 0.00617284 - txt002 - SPHERE CENTER 0.336477 0.28737 0.745229 RAD 0.00617284 - txt002 - SPHERE CENTER 0.325551 0.268785 0.757266 RAD 0.00617284 - txt002 - SPHERE CENTER 0.334005 0.28356 0.787754 RAD 0.00617284 - txt002 - SPHERE CENTER 0.334975 0.260653 0.77859 RAD 0.00617284 - txt002 - SPHERE CENTER 0.355325 0.271106 0.787878 RAD 0.00617284 - txt002 - SPHERE CENTER 0.325765 0.208034 0.763155 RAD 0.0185185 - txt002 - SPHERE CENTER 0.312342 0.209548 0.783824 RAD 0.00617284 - txt002 - SPHERE CENTER 0.337 0.209827 0.785069 RAD 0.00617284 - txt002 - SPHERE CENTER 0.324887 0.229235 0.775781 RAD 0.00617284 - txt002 - SPHERE CENTER 0.301107 0.207755 0.76191 RAD 0.00617284 - txt002 - SPHERE CENTER 0.313652 0.227442 0.753867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.31453 0.206242 0.741241 RAD 0.00617284 - txt002 - SPHERE CENTER 0.31322 0.188347 0.771198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.326643 0.186834 0.750529 RAD 0.00617284 - txt002 - SPHERE CENTER 0.337878 0.188626 0.772443 RAD 0.00617284 - txt002 - SPHERE CENTER 0.426478 0.179397 0.766439 RAD 0.0185185 - txt002 - SPHERE CENTER 0.447688 0.174744 0.778193 RAD 0.00617284 - txt002 - SPHERE CENTER 0.447523 0.1895 0.758396 RAD 0.00617284 - txt002 - SPHERE CENTER 0.437457 0.197172 0.779597 RAD 0.00617284 - txt002 - SPHERE CENTER 0.426642 0.164641 0.786236 RAD 0.00617284 - txt002 - SPHERE CENTER 0.416412 0.187069 0.787639 RAD 0.00617284 - txt002 - SPHERE CENTER 0.405432 0.169293 0.774481 RAD 0.00617284 - txt002 - SPHERE CENTER 0.436708 0.156968 0.765035 RAD 0.00617284 - txt002 - SPHERE CENTER 0.415499 0.161621 0.753281 RAD 0.00617284 - txt002 - SPHERE CENTER 0.436544 0.171724 0.745238 RAD 0.00617284 - txt002 - SPHERE CENTER 0.367634 0.159431 0.726118 RAD 0.0185185 - txt002 - SPHERE CENTER 0.368692 0.13761 0.737623 RAD 0.00617284 - txt002 - SPHERE CENTER 0.387887 0.153102 0.738744 RAD 0.00617284 - txt002 - SPHERE CENTER 0.366998 0.158434 0.750781 RAD 0.00617284 - txt002 - SPHERE CENTER 0.34844 0.14394 0.724997 RAD 0.00617284 - txt002 - SPHERE CENTER 0.346745 0.164764 0.738155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.347381 0.165761 0.713492 RAD 0.00617284 - txt002 - SPHERE CENTER 0.369329 0.138607 0.71296 RAD 0.00617284 - txt002 - SPHERE CENTER 0.36827 0.160429 0.701455 RAD 0.00617284 - txt002 - SPHERE CENTER 0.388523 0.154099 0.714081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.429639 0.182032 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER 0.45215 0.177682 0.683315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.44299 0.200611 0.683192 RAD 0.00617284 - txt002 - SPHERE CENTER 0.449636 0.190087 0.704516 RAD 0.00617284 - txt002 - SPHERE CENTER 0.438799 0.159104 0.692603 RAD 0.00617284 - txt002 - SPHERE CENTER 0.436286 0.171508 0.713804 RAD 0.00617284 - txt002 - SPHERE CENTER 0.416288 0.163454 0.701767 RAD 0.00617284 - txt002 - SPHERE CENTER 0.432153 0.169628 0.671279 RAD 0.00617284 - txt002 - SPHERE CENTER 0.409641 0.173978 0.680442 RAD 0.00617284 - txt002 - SPHERE CENTER 0.422992 0.192556 0.671155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.239622 0.082487 0.655442 RAD 0.0555556 - txt002 - SPHERE CENTER 0.258053 0.0438957 0.715923 RAD 0.0185185 - txt002 - SPHERE CENTER 0.273525 0.0426858 0.735128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.281546 0.0510334 0.713318 RAD 0.00617284 - txt002 - SPHERE CENTER 0.265928 0.064638 0.726759 RAD 0.00617284 - txt002 - SPHERE CENTER 0.250032 0.0355481 0.737733 RAD 0.00617284 - txt002 - SPHERE CENTER 0.242434 0.0575003 0.729364 RAD 0.00617284 - txt002 - SPHERE CENTER 0.23456 0.036758 0.718528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.26565 0.0219434 0.724292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.250178 0.0231533 0.705088 RAD 0.00617284 - txt002 - SPHERE CENTER 0.273671 0.030291 0.702483 RAD 0.00617284 - txt002 - SPHERE CENTER 0.308551 0.0863845 0.682285 RAD 0.0185185 - txt002 - SPHERE CENTER 0.330622 0.0971427 0.67968 RAD 0.00617284 - txt002 - SPHERE CENTER 0.317013 0.091905 0.659755 RAD 0.00617284 - txt002 - SPHERE CENTER 0.310023 0.109956 0.675083 RAD 0.00617284 - txt002 - SPHERE CENTER 0.322161 0.0916222 0.702209 RAD 0.00617284 - txt002 - SPHERE CENTER 0.301561 0.104436 0.697613 RAD 0.00617284 - txt002 - SPHERE CENTER 0.30009 0.080864 0.704814 RAD 0.00617284 - txt002 - SPHERE CENTER 0.329151 0.0735708 0.686881 RAD 0.00617284 - txt002 - SPHERE CENTER 0.30708 0.0628126 0.689486 RAD 0.00617284 - txt002 - SPHERE CENTER 0.315541 0.0683331 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER 0.252557 0.117687 0.719322 RAD 0.0185185 - txt002 - SPHERE CENTER 0.265544 0.135677 0.730157 RAD 0.00617284 - txt002 - SPHERE CENTER 0.275732 0.12224 0.71212 RAD 0.00617284 - txt002 - SPHERE CENTER 0.25778 0.138361 0.706872 RAD 0.00617284 - txt002 - SPHERE CENTER 0.242369 0.131123 0.737359 RAD 0.00617284 - txt002 - SPHERE CENTER 0.234605 0.133808 0.714074 RAD 0.00617284 - txt002 - SPHERE CENTER 0.229382 0.113134 0.726523 RAD 0.00617284 - txt002 - SPHERE CENTER 0.26032 0.115003 0.742607 RAD 0.00617284 - txt002 - SPHERE CENTER 0.247334 0.097014 0.731771 RAD 0.00617284 - txt002 - SPHERE CENTER 0.270508 0.101567 0.72457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.189123 0.0399982 0.689081 RAD 0.0185185 - txt002 - SPHERE CENTER 0.179527 0.0335228 0.71089 RAD 0.00617284 - txt002 - SPHERE CENTER 0.203632 0.0385291 0.709006 RAD 0.00617284 - txt002 - SPHERE CENTER 0.187058 0.0567332 0.707118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.165018 0.0349919 0.690965 RAD 0.00617284 - txt002 - SPHERE CENTER 0.172549 0.0582023 0.687193 RAD 0.00617284 - txt002 - SPHERE CENTER 0.174615 0.0414672 0.669156 RAD 0.00617284 - txt002 - SPHERE CENTER 0.181593 0.0167878 0.692853 RAD 0.00617284 - txt002 - SPHERE CENTER 0.191189 0.0232631 0.671044 RAD 0.00617284 - txt002 - SPHERE CENTER 0.205698 0.021794 0.690969 RAD 0.00617284 - txt002 - SPHERE CENTER 0.183628 0.11379 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER 0.176775 0.133336 0.705919 RAD 0.00617284 - txt002 - SPHERE CENTER 0.199753 0.124499 0.707807 RAD 0.00617284 - txt002 - SPHERE CENTER 0.192663 0.136161 0.687231 RAD 0.00617284 - txt002 - SPHERE CENTER 0.160649 0.122627 0.690591 RAD 0.00617284 - txt002 - SPHERE CENTER 0.176537 0.125452 0.671903 RAD 0.00617284 - txt002 - SPHERE CENTER 0.167502 0.103081 0.677151 RAD 0.00617284 - txt002 - SPHERE CENTER 0.167739 0.110965 0.711167 RAD 0.00617284 - txt002 - SPHERE CENTER 0.174592 0.0914184 0.697727 RAD 0.00617284 - txt002 - SPHERE CENTER 0.190718 0.102127 0.713055 RAD 0.00617284 - txt002 - SPHERE CENTER 0.170692 0.0785895 0.6286 RAD 0.0185185 - txt002 - SPHERE CENTER 0.147549 0.0867911 0.631205 RAD 0.00617284 - txt002 - SPHERE CENTER 0.161663 0.083121 0.65113 RAD 0.00617284 - txt002 - SPHERE CENTER 0.166573 0.101845 0.635801 RAD 0.00617284 - txt002 - SPHERE CENTER 0.156579 0.0822597 0.608675 RAD 0.00617284 - txt002 - SPHERE CENTER 0.175603 0.0973138 0.613272 RAD 0.00617284 - txt002 - SPHERE CENTER 0.179722 0.074058 0.60607 RAD 0.00617284 - txt002 - SPHERE CENTER 0.151669 0.0635354 0.624003 RAD 0.00617284 - txt002 - SPHERE CENTER 0.174812 0.0553337 0.621398 RAD 0.00617284 - txt002 - SPHERE CENTER 0.165782 0.0598652 0.643928 RAD 0.00617284 - txt002 - SPHERE CENTER 0.245118 0.00869528 0.652044 RAD 0.0185185 - txt002 - SPHERE CENTER 0.257416 -0.0110117 0.660413 RAD 0.00617284 - txt002 - SPHERE CENTER 0.269325 0.0102865 0.656641 RAD 0.00617284 - txt002 - SPHERE CENTER 0.253319 0.00823377 0.675329 RAD 0.00617284 - txt002 - SPHERE CENTER 0.233209 -0.0126029 0.655816 RAD 0.00617284 - txt002 - SPHERE CENTER 0.229111 0.00664257 0.670732 RAD 0.00617284 - txt002 - SPHERE CENTER 0.22091 0.00710408 0.647447 RAD 0.00617284 - txt002 - SPHERE CENTER 0.249215 -0.0105502 0.637128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.236916 0.00915679 0.628759 RAD 0.00617284 - txt002 - SPHERE CENTER 0.261124 0.010748 0.633356 RAD 0.00617284 - txt002 - SPHERE CENTER 0.226687 0.0472866 0.591563 RAD 0.0185185 - txt002 - SPHERE CENTER 0.224935 0.025169 0.580727 RAD 0.00617284 - txt002 - SPHERE CENTER 0.241399 0.0288111 0.598764 RAD 0.00617284 - txt002 - SPHERE CENTER 0.217281 0.0281502 0.604012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.210223 0.0436445 0.573526 RAD 0.00617284 - txt002 - SPHERE CENTER 0.202569 0.0466257 0.596811 RAD 0.00617284 - txt002 - SPHERE CENTER 0.211974 0.0657621 0.584361 RAD 0.00617284 - txt002 - SPHERE CENTER 0.234341 0.0443054 0.568278 RAD 0.00617284 - txt002 - SPHERE CENTER 0.236092 0.066423 0.579113 RAD 0.00617284 - txt002 - SPHERE CENTER 0.250805 0.0479475 0.586315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.295616 0.0511841 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.315856 0.0555846 0.604965 RAD 0.00617284 - txt002 - SPHERE CENTER 0.296292 0.0705297 0.603077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.309941 0.0705987 0.623653 RAD 0.00617284 - txt002 - SPHERE CENTER 0.31518 0.036239 0.620293 RAD 0.00617284 - txt002 - SPHERE CENTER 0.309265 0.051253 0.638981 RAD 0.00617284 - txt002 - SPHERE CENTER 0.29494 0.0318385 0.633733 RAD 0.00617284 - txt002 - SPHERE CENTER 0.301531 0.03617 0.599717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.281291 0.0317696 0.613157 RAD 0.00617284 - txt002 - SPHERE CENTER 0.281968 0.0511152 0.597829 RAD 0.00617284 - txt002 - SPHERE CENTER 0.4293 0.115031 0.544331 RAD 0.0555556 - txt002 - SPHERE CENTER 0.502308 0.102505 0.544331 RAD 0.0185185 - txt002 - SPHERE CENTER 0.524146 0.110567 0.536101 RAD 0.00617284 - txt002 - SPHERE CENTER 0.504055 0.112687 0.521905 RAD 0.00617284 - txt002 - SPHERE CENTER 0.506465 0.126738 0.542066 RAD 0.00617284 - txt002 - SPHERE CENTER 0.522399 0.100385 0.558526 RAD 0.00617284 - txt002 - SPHERE CENTER 0.504718 0.116555 0.564491 RAD 0.00617284 - txt002 - SPHERE CENTER 0.500561 0.0923218 0.566757 RAD 0.00617284 - txt002 - SPHERE CENTER 0.519988 0.0863343 0.538366 RAD 0.00617284 - txt002 - SPHERE CENTER 0.49815 0.0782715 0.546597 RAD 0.00617284 - txt002 - SPHERE CENTER 0.499897 0.0884544 0.524171 RAD 0.00617284 - txt002 - SPHERE CENTER 0.474661 0.160392 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.481967 0.167697 0.484868 RAD 0.00617284 - txt002 - SPHERE CENTER 0.475831 0.144102 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.458371 0.161561 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.480797 0.183987 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.457202 0.177851 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.473492 0.176681 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.498257 0.166528 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.490951 0.159222 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.492121 0.142932 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.474661 0.160392 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.492047 0.177777 0.579103 RAD 0.00617284 - txt002 - SPHERE CENTER 0.490951 0.159222 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.473492 0.176681 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.475757 0.178947 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER 0.457202 0.177851 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.458371 0.161561 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.493217 0.161488 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER 0.475831 0.144102 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.492121 0.142932 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.456947 0.0571437 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.475575 0.0493251 0.595564 RAD 0.00617284 - txt002 - SPHERE CENTER 0.479825 0.06557 0.577461 RAD 0.00617284 - txt002 - SPHERE CENTER 0.467381 0.0725262 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER 0.452697 0.0408988 0.599471 RAD 0.00617284 - txt002 - SPHERE CENTER 0.444504 0.0640999 0.601529 RAD 0.00617284 - txt002 - SPHERE CENTER 0.434069 0.0487174 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER 0.465141 0.0339426 0.57931 RAD 0.00617284 - txt002 - SPHERE CENTER 0.446512 0.0417612 0.565115 RAD 0.00617284 - txt002 - SPHERE CENTER 0.46939 0.0501875 0.561208 RAD 0.00617284 - txt002 - SPHERE CENTER 0.4293 0.115031 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.439381 0.125111 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.45315 0.121421 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.435691 0.138881 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.415531 0.11872 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.411841 0.13249 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.40545 0.10864 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.43299 0.101261 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.42291 0.0911807 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.44676 0.0975713 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.383939 0.0696698 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.376634 0.0623642 0.603794 RAD 0.00617284 - txt002 - SPHERE CENTER 0.400229 0.0685002 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.38277 0.0859596 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.360344 0.0635337 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER 0.36648 0.0871292 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.36765 0.0708393 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.377803 0.0460743 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER 0.385109 0.0533799 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.401399 0.0522103 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.456947 0.0571437 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.477623 0.0450372 0.501329 RAD 0.00617284 - txt002 - SPHERE CENTER 0.47788 0.0696413 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.475469 0.055591 0.523547 RAD 0.00617284 - txt002 - SPHERE CENTER 0.45669 0.0325396 0.505236 RAD 0.00617284 - txt002 - SPHERE CENTER 0.454536 0.0430934 0.527454 RAD 0.00617284 - txt002 - SPHERE CENTER 0.436013 0.0446461 0.511201 RAD 0.00617284 - txt002 - SPHERE CENTER 0.4591 0.0465898 0.485076 RAD 0.00617284 - txt002 - SPHERE CENTER 0.438424 0.0586963 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER 0.459357 0.071194 0.487134 RAD 0.00617284 - txt002 - SPHERE CENTER 0.383939 0.0696698 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.366554 0.052284 0.509559 RAD 0.00617284 - txt002 - SPHERE CENTER 0.385109 0.0533799 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.36765 0.0708393 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.365384 0.0685739 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER 0.36648 0.0871292 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.38277 0.0859596 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.382844 0.0511144 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER 0.400229 0.0685002 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.401399 0.0522103 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.4293 0.115031 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER 0.41922 0.125111 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER 0.40545 0.121421 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.42291 0.138881 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.44307 0.11872 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER 0.44676 0.13249 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.45315 0.10864 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.425611 0.101261 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER 0.435691 0.0911807 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.411841 0.0975713 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.643951 0.172546 1.11022e-16 RAD 0.166667 - txt002 - SPHERE CENTER 0.802608 0.281471 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.824035 0.30566 -0.177765 RAD 0.0185185 - txt002 - SPHERE CENTER 0.822021 0.302088 -0.202114 RAD 0.00617284 - txt002 - SPHERE CENTER 0.821938 0.282758 -0.186751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.802598 0.298094 -0.187402 RAD 0.00617284 - txt002 - SPHERE CENTER 0.824119 0.32499 -0.193128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.804695 0.320997 -0.178416 RAD 0.00617284 - txt002 - SPHERE CENTER 0.826132 0.328563 -0.16878 RAD 0.00617284 - txt002 - SPHERE CENTER 0.843459 0.309654 -0.192477 RAD 0.00617284 - txt002 - SPHERE CENTER 0.845472 0.313227 -0.168128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.843375 0.290324 -0.177114 RAD 0.00617284 - txt002 - SPHERE CENTER 0.787796 0.241352 -0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER 0.785699 0.218449 -0.180578 RAD 0.00617284 - txt002 - SPHERE CENTER 0.802677 0.22345 -0.163362 RAD 0.00617284 - txt002 - SPHERE CENTER 0.778718 0.223304 -0.157397 RAD 0.00617284 - txt002 - SPHERE CENTER 0.770818 0.236351 -0.188808 RAD 0.00617284 - txt002 - SPHERE CENTER 0.763837 0.241205 -0.165627 RAD 0.00617284 - txt002 - SPHERE CENTER 0.772915 0.259253 -0.179823 RAD 0.00617284 - txt002 - SPHERE CENTER 0.794777 0.236497 -0.194773 RAD 0.00617284 - txt002 - SPHERE CENTER 0.796874 0.2594 -0.185788 RAD 0.00617284 - txt002 - SPHERE CENTER 0.811756 0.241498 -0.177557 RAD 0.00617284 - txt002 - SPHERE CENTER 0.752156 0.305221 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.741263 0.325175 -0.169507 RAD 0.00617284 - txt002 - SPHERE CENTER 0.747715 0.32493 -0.145675 RAD 0.00617284 - txt002 - SPHERE CENTER 0.765112 0.325981 -0.163165 RAD 0.00617284 - txt002 - SPHERE CENTER 0.745704 0.305466 -0.183703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.769553 0.306272 -0.17736 RAD 0.00617284 - txt002 - SPHERE CENTER 0.756597 0.285513 -0.174066 RAD 0.00617284 - txt002 - SPHERE CENTER 0.728307 0.304415 -0.166213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.7392 0.284462 -0.156576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.734759 0.304171 -0.142381 RAD 0.00617284 - txt002 - SPHERE CENTER 0.838847 0.34578 -0.117284 RAD 0.0185185 - txt002 - SPHERE CENTER 0.851488 0.360404 -0.132647 RAD 0.00617284 - txt002 - SPHERE CENTER 0.853509 0.335865 -0.1345 RAD 0.00617284 - txt002 - SPHERE CENTER 0.832518 0.347059 -0.141116 RAD 0.00617284 - txt002 - SPHERE CENTER 0.836826 0.370319 -0.115431 RAD 0.00617284 - txt002 - SPHERE CENTER 0.817857 0.356973 -0.1239 RAD 0.00617284 - txt002 - SPHERE CENTER 0.824185 0.355695 -0.100068 RAD 0.00617284 - txt002 - SPHERE CENTER 0.857816 0.359125 -0.108814 RAD 0.00617284 - txt002 - SPHERE CENTER 0.845176 0.344501 -0.0934517 RAD 0.00617284 - txt002 - SPHERE CENTER 0.859838 0.334587 -0.110668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.766968 0.345341 -0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.768944 0.369945 -0.10004 RAD 0.00617284 - txt002 - SPHERE CENTER 0.788341 0.356172 -0.093424 RAD 0.00617284 - txt002 - SPHERE CENTER 0.780624 0.356171 -0.116879 RAD 0.00617284 - txt002 - SPHERE CENTER 0.747572 0.359113 -0.106005 RAD 0.00617284 - txt002 - SPHERE CENTER 0.759252 0.34534 -0.122844 RAD 0.00617284 - txt002 - SPHERE CENTER 0.745596 0.33451 -0.105354 RAD 0.00617284 - txt002 - SPHERE CENTER 0.755289 0.359115 -0.0825505 RAD 0.00617284 - txt002 - SPHERE CENTER 0.753313 0.334511 -0.0818993 RAD 0.00617284 - txt002 - SPHERE CENTER 0.774685 0.345342 -0.0759343 RAD 0.00617284 - txt002 - SPHERE CENTER 0.817421 0.321591 -0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER 0.83071 0.340361 -0.0416443 RAD 0.00617284 - txt002 - SPHERE CENTER 0.840365 0.325527 -0.0588603 RAD 0.00617284 - txt002 - SPHERE CENTER 0.822249 0.341208 -0.0648253 RAD 0.00617284 - txt002 - SPHERE CENTER 0.807766 0.336425 -0.0334138 RAD 0.00617284 - txt002 - SPHERE CENTER 0.799305 0.337272 -0.0565949 RAD 0.00617284 - txt002 - SPHERE CENTER 0.794477 0.317654 -0.0423994 RAD 0.00617284 - txt002 - SPHERE CENTER 0.825882 0.320744 -0.0274488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.812593 0.301973 -0.0364345 RAD 0.00617284 - txt002 - SPHERE CENTER 0.835537 0.30591 -0.0446649 RAD 0.00617284 - txt002 - SPHERE CENTER 0.874487 0.28191 -0.129006 RAD 0.0185185 - txt002 - SPHERE CENTER 0.891539 0.292033 -0.143718 RAD 0.00617284 - txt002 - SPHERE CENTER 0.868678 0.28812 -0.152187 RAD 0.00617284 - txt002 - SPHERE CENTER 0.872763 0.305711 -0.135349 RAD 0.00617284 - txt002 - SPHERE CENTER 0.897348 0.285824 -0.120537 RAD 0.00617284 - txt002 - SPHERE CENTER 0.878572 0.299501 -0.112168 RAD 0.00617284 - txt002 - SPHERE CENTER 0.880296 0.275701 -0.105825 RAD 0.00617284 - txt002 - SPHERE CENTER 0.893263 0.268233 -0.137375 RAD 0.00617284 - txt002 - SPHERE CENTER 0.876212 0.25811 -0.122663 RAD 0.00617284 - txt002 - SPHERE CENTER 0.870402 0.264319 -0.145845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.853061 0.257721 -0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER 0.87538 0.26204 -0.0527151 RAD 0.00617284 - txt002 - SPHERE CENTER 0.87108 0.266856 -0.0765474 RAD 0.00617284 - txt002 - SPHERE CENTER 0.860805 0.280934 -0.0590577 RAD 0.00617284 - txt002 - SPHERE CENTER 0.857361 0.252905 -0.0385197 RAD 0.00617284 - txt002 - SPHERE CENTER 0.842785 0.271799 -0.0448623 RAD 0.00617284 - txt002 - SPHERE CENTER 0.835041 0.248586 -0.0481565 RAD 0.00617284 - txt002 - SPHERE CENTER 0.867636 0.238827 -0.0560094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.845317 0.234508 -0.0656463 RAD 0.00617284 - txt002 - SPHERE CENTER 0.863337 0.243643 -0.0798417 RAD 0.00617284 - txt002 - SPHERE CENTER 0.838248 0.217602 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.860225 0.206363 -0.122182 RAD 0.00617284 - txt002 - SPHERE CENTER 0.858689 0.230102 -0.128798 RAD 0.00617284 - txt002 - SPHERE CENTER 0.854636 0.223536 -0.105343 RAD 0.00617284 - txt002 - SPHERE CENTER 0.839784 0.193863 -0.116217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.834196 0.211035 -0.0993785 RAD 0.00617284 - txt002 - SPHERE CENTER 0.817808 0.205101 -0.116868 RAD 0.00617284 - txt002 - SPHERE CENTER 0.843837 0.200429 -0.139672 RAD 0.00617284 - txt002 - SPHERE CENTER 0.821861 0.211667 -0.140323 RAD 0.00617284 - txt002 - SPHERE CENTER 0.842301 0.224168 -0.146288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.643951 0.172546 -0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER 0.61371 0.202787 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.61556 0.221097 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.621702 0.225035 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.635958 0.210779 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.607567 0.198849 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.627965 0.188531 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER 0.605717 0.180539 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.593312 0.213105 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER 0.591462 0.194794 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.599454 0.217042 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER 0.5724 0.191718 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.556122 0.208861 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.575596 0.203643 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.578791 0.215568 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.552927 0.196936 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER 0.575596 0.203643 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.569205 0.179793 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.549732 0.185011 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.56601 0.167868 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.569205 0.179793 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.624779 0.244096 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.631486 0.266765 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.648629 0.250487 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.636704 0.247291 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.607636 0.260374 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.612854 0.240901 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.600929 0.237705 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.619561 0.26357 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.612854 0.240901 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.636704 0.247291 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.68526 0.183615 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.684921 0.190903 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.665787 0.178397 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669989 0.201661 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.704395 0.196121 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER 0.689462 0.206879 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.704733 0.188833 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER 0.700193 0.172858 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.700531 0.165569 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.681058 0.160351 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.696329 0.224924 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.710584 0.23918 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER 0.705059 0.216195 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.687599 0.233654 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.701855 0.24791 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.678869 0.242384 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.687599 0.233654 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.719314 0.23045 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.705059 0.216195 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.713788 0.207465 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.715501 0.153374 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.738169 0.160081 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.718696 0.165299 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.721891 0.177224 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.734974 0.148156 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.718696 0.165299 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.712305 0.141449 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.731779 0.136231 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.70911 0.129524 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.712305 0.141449 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.632882 0.131237 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.634145 0.108412 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER 0.650927 0.115965 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.627664 0.111763 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER 0.616099 0.123683 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.609618 0.127034 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.614836 0.146508 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.639363 0.127886 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.6381 0.15071 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER 0.656145 0.135439 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.663122 0.100996 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.680265 0.0847178 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.686972 0.107387 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.675047 0.104191 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.656415 0.0783272 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.651197 0.0978007 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.639272 0.0946054 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.66834 0.0815225 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER 0.651197 0.0978007 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.675047 0.104191 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.591572 0.120168 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.577317 0.105912 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.600302 0.111438 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.582843 0.128897 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.568587 0.114642 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.574113 0.137627 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.582843 0.128897 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.586046 0.0971825 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.600302 0.111438 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.609032 0.102708 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.594141 0.358439 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.619127 0.408291 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.625955 0.411883 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.630791 0.390369 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.607547 0.396287 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.61429 0.429805 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.595882 0.414208 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER 0.607462 0.426212 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.637535 0.423887 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.630706 0.420295 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.642371 0.402373 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.665691 0.37761 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.68332 0.389713 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.665691 0.37761 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.660156 0.398265 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.68332 0.389713 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.660156 0.398265 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.665691 0.37761 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.688854 0.369058 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.671225 0.356956 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.671225 0.356956 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.638217 0.337042 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.652948 0.344865 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.632683 0.357697 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.651954 0.357326 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.658482 0.324211 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.657489 0.336672 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.643752 0.316388 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.639211 0.324581 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER 0.624481 0.316758 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.618946 0.337413 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.547576 0.389119 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.541008 0.410169 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.548718 0.410472 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.564748 0.405866 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER 0.539866 0.388816 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.563607 0.384513 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.546435 0.367766 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.523836 0.393422 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.530405 0.372372 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.531546 0.393725 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.566667 0.317871 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.555534 0.296626 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.572202 0.297216 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.550163 0.307914 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.549999 0.31728 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.544629 0.328569 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.561133 0.338525 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.572037 0.306582 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER 0.583171 0.327827 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.588706 0.307172 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.522591 0.339267 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.501272 0.340934 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.522591 0.339267 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.517056 0.359921 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.501272 0.340934 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.517056 0.359921 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.522591 0.339267 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.506807 0.320279 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.528125 0.318612 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.528125 0.318612 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.57505 0.429687 -0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER 0.58161 0.452905 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.5989 0.436077 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.586467 0.434777 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.55776 0.446515 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.562617 0.428387 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.5512 0.423296 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.570193 0.447815 -0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER 0.563633 0.424596 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.587483 0.430987 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.550064 0.379835 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.547099 0.396248 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.569716 0.388263 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.557504 0.403175 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.527447 0.387819 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.537852 0.394747 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.530412 0.371406 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.539659 0.372907 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.542624 0.356494 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.562276 0.364922 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.621614 0.399007 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.637209 0.41723 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.642848 0.401533 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.624734 0.418027 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.615976 0.414703 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.603501 0.4155 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.600381 0.39648 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.634089 0.39821 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.618494 0.379986 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.639728 0.382513 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.802608 0.281471 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.858698 0.329459 0.104938 RAD 0.0185185 - txt002 - SPHERE CENTER 0.872345 0.34259 0.0890951 RAD 0.00617284 - txt002 - SPHERE CENTER 0.86421 0.32016 0.0827387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.848329 0.338969 0.0846485 RAD 0.00617284 - txt002 - SPHERE CENTER 0.866833 0.351888 0.111295 RAD 0.00617284 - txt002 - SPHERE CENTER 0.842817 0.348268 0.106848 RAD 0.00617284 - txt002 - SPHERE CENTER 0.853186 0.338757 0.127138 RAD 0.00617284 - txt002 - SPHERE CENTER 0.882715 0.333079 0.109385 RAD 0.00617284 - txt002 - SPHERE CENTER 0.869068 0.319948 0.125228 RAD 0.00617284 - txt002 - SPHERE CENTER 0.87458 0.310649 0.103028 RAD 0.00617284 - txt002 - SPHERE CENTER 0.845371 0.280879 0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER 0.849036 0.291048 0.0284303 RAD 0.00617284 - txt002 - SPHERE CENTER 0.826067 0.287867 0.0369125 RAD 0.00617284 - txt002 - SPHERE CENTER 0.840755 0.304882 0.0471312 RAD 0.00617284 - txt002 - SPHERE CENTER 0.868341 0.28406 0.0421477 RAD 0.00617284 - txt002 - SPHERE CENTER 0.86006 0.297894 0.0608487 RAD 0.00617284 - txt002 - SPHERE CENTER 0.864676 0.273891 0.0643473 RAD 0.00617284 - txt002 - SPHERE CENTER 0.853652 0.267046 0.0319289 RAD 0.00617284 - txt002 - SPHERE CENTER 0.849987 0.256877 0.0541285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.830683 0.263865 0.0404111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.798572 0.337088 0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER 0.808673 0.346884 0.0420622 RAD 0.00617284 - txt002 - SPHERE CENTER 0.82298 0.335792 0.0588533 RAD 0.00617284 - txt002 - SPHERE CENTER 0.807762 0.322361 0.044793 RAD 0.00617284 - txt002 - SPHERE CENTER 0.784265 0.34818 0.0455609 RAD 0.00617284 - txt002 - SPHERE CENTER 0.783355 0.323657 0.0482916 RAD 0.00617284 - txt002 - SPHERE CENTER 0.774164 0.338384 0.0658506 RAD 0.00617284 - txt002 - SPHERE CENTER 0.799483 0.361611 0.0596212 RAD 0.00617284 - txt002 - SPHERE CENTER 0.789382 0.351815 0.079911 RAD 0.00617284 - txt002 - SPHERE CENTER 0.81379 0.350519 0.0764123 RAD 0.00617284 - txt002 - SPHERE CENTER 0.815936 0.330051 0.165419 RAD 0.0185185 - txt002 - SPHERE CENTER 0.828769 0.350165 0.171776 RAD 0.00617284 - txt002 - SPHERE CENTER 0.838905 0.333232 0.156937 RAD 0.00617284 - txt002 - SPHERE CENTER 0.820583 0.347547 0.148628 RAD 0.00617284 - txt002 - SPHERE CENTER 0.805799 0.346984 0.180258 RAD 0.00617284 - txt002 - SPHERE CENTER 0.797614 0.344366 0.157111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.792966 0.32687 0.173902 RAD 0.00617284 - txt002 - SPHERE CENTER 0.824121 0.332668 0.188567 RAD 0.00617284 - txt002 - SPHERE CENTER 0.811288 0.312554 0.182211 RAD 0.00617284 - txt002 - SPHERE CENTER 0.834258 0.315735 0.173728 RAD 0.00617284 - txt002 - SPHERE CENTER 0.75581 0.33768 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.753851 0.362219 0.124743 RAD 0.00617284 - txt002 - SPHERE CENTER 0.774086 0.350765 0.133052 RAD 0.00617284 - txt002 - SPHERE CENTER 0.76987 0.352319 0.108773 RAD 0.00617284 - txt002 - SPHERE CENTER 0.735575 0.349134 0.114524 RAD 0.00617284 - txt002 - SPHERE CENTER 0.751594 0.339233 0.0985541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.737534 0.324595 0.112614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.739791 0.347581 0.138803 RAD 0.00617284 - txt002 - SPHERE CENTER 0.74175 0.323042 0.136894 RAD 0.00617284 - txt002 - SPHERE CENTER 0.760026 0.336127 0.147112 RAD 0.00617284 - txt002 - SPHERE CENTER 0.759846 0.282063 0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER 0.756464 0.29233 0.193792 RAD 0.00617284 - txt002 - SPHERE CENTER 0.779336 0.288514 0.18531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.765125 0.305929 0.175091 RAD 0.00617284 - txt002 - SPHERE CENTER 0.736973 0.285879 0.180075 RAD 0.00617284 - txt002 - SPHERE CENTER 0.745634 0.299478 0.161374 RAD 0.00617284 - txt002 - SPHERE CENTER 0.740355 0.275612 0.157875 RAD 0.00617284 - txt002 - SPHERE CENTER 0.751185 0.268464 0.190293 RAD 0.00617284 - txt002 - SPHERE CENTER 0.754567 0.258198 0.168094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.774058 0.264649 0.181811 RAD 0.00617284 - txt002 - SPHERE CENTER 0.862735 0.273842 0.153697 RAD 0.0185185 - txt002 - SPHERE CENTER 0.885497 0.282313 0.158144 RAD 0.00617284 - txt002 - SPHERE CENTER 0.876946 0.281455 0.134996 RAD 0.00617284 - txt002 - SPHERE CENTER 0.867718 0.29787 0.150967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.871286 0.274699 0.176845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.853506 0.290257 0.169668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.848523 0.266228 0.172398 RAD 0.00617284 - txt002 - SPHERE CENTER 0.880514 0.258284 0.160875 RAD 0.00617284 - txt002 - SPHERE CENTER 0.857752 0.249813 0.156428 RAD 0.00617284 - txt002 - SPHERE CENTER 0.871963 0.257427 0.137727 RAD 0.00617284 - txt002 - SPHERE CENTER 0.806645 0.225855 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.818054 0.21762 0.18016 RAD 0.00617284 - txt002 - SPHERE CENTER 0.83061 0.230661 0.163369 RAD 0.00617284 - txt002 - SPHERE CENTER 0.813612 0.241754 0.177429 RAD 0.00617284 - txt002 - SPHERE CENTER 0.794089 0.212813 0.176661 RAD 0.00617284 - txt002 - SPHERE CENTER 0.789647 0.236948 0.173931 RAD 0.00617284 - txt002 - SPHERE CENTER 0.78268 0.221048 0.156372 RAD 0.00617284 - txt002 - SPHERE CENTER 0.811087 0.20172 0.162601 RAD 0.00617284 - txt002 - SPHERE CENTER 0.799677 0.209955 0.142311 RAD 0.00617284 - txt002 - SPHERE CENTER 0.823642 0.214761 0.14581 RAD 0.00617284 - txt002 - SPHERE CENTER 0.849407 0.225263 0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.873186 0.21889 0.0974792 RAD 0.00617284 - txt002 - SPHERE CENTER 0.865588 0.240865 0.0891702 RAD 0.00617284 - txt002 - SPHERE CENTER 0.866351 0.236437 0.113449 RAD 0.00617284 - txt002 - SPHERE CENTER 0.857005 0.203288 0.107698 RAD 0.00617284 - txt002 - SPHERE CENTER 0.850171 0.220835 0.123668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.833227 0.20966 0.109608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.856242 0.207715 0.0834188 RAD 0.00617284 - txt002 - SPHERE CENTER 0.832464 0.214088 0.0853287 RAD 0.00617284 - txt002 - SPHERE CENTER 0.848644 0.22969 0.0751099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.594141 0.358439 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.613592 0.428945 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.626191 0.448155 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.634643 0.42519 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.614455 0.43276 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER 0.60514 0.45191 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.593404 0.436515 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.592541 0.4327 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.625328 0.44434 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.612729 0.42513 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.63378 0.421375 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.665691 0.37761 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.68332 0.389713 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.665691 0.37761 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.660156 0.398265 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.68332 0.389713 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.660156 0.398265 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.665691 0.37761 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.688854 0.369058 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.671225 0.356956 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.671225 0.356956 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.621614 0.399007 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.625435 0.399844 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.627149 0.378352 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.60511 0.38905 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.619901 0.420499 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.599576 0.409705 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.61608 0.419661 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.641939 0.409801 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.638118 0.408963 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.643653 0.388308 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.542042 0.409774 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.53788 0.433888 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.558395 0.423551 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.55574 0.426423 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.521526 0.42011 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.539387 0.412646 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER 0.525689 0.395996 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.524182 0.417238 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.528344 0.393124 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.544697 0.406901 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.550064 0.379835 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.540802 0.399304 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.54453 0.400489 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.563801 0.400119 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.546337 0.37865 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.569335 0.379464 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.555599 0.35918 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.527065 0.37902 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.536327 0.359551 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.530793 0.380205 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.522591 0.339267 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.501272 0.340934 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.522591 0.339267 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.517056 0.359921 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.501272 0.340934 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.517056 0.359921 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.522591 0.339267 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.506807 0.320279 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.528125 0.318612 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.528125 0.318612 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.586119 0.388377 0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.594185 0.405974 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.609969 0.394768 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.593017 0.410332 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.570335 0.399584 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.569167 0.403942 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.562269 0.381987 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.587286 0.384019 0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.57922 0.366422 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.60307 0.372813 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.566667 0.317871 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.567308 0.314012 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER 0.587901 0.320398 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.569787 0.336891 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.546074 0.311485 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.548554 0.334364 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.545434 0.315344 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.564188 0.294991 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.563547 0.29885 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.584781 0.301377 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.638217 0.337042 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.659244 0.341809 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.65787 0.345471 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.645657 0.360383 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.639592 0.33338 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER 0.626005 0.351955 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.618565 0.328614 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.651804 0.318468 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.630777 0.313702 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.65043 0.32213 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.643951 0.172546 0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER 0.674191 0.202787 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.690652 0.219248 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER 0.695267 0.206403 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.677807 0.223862 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669577 0.215632 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.656732 0.220246 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.653116 0.199171 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.687036 0.198172 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.670575 0.181711 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.691651 0.185327 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.715501 0.191718 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.733129 0.203821 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.715501 0.191718 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.709966 0.212373 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.733129 0.203821 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.709966 0.212373 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.715501 0.191718 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.738664 0.183166 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.721035 0.171063 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.721035 0.171063 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.663122 0.244096 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.675225 0.261725 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.683777 0.238562 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.663122 0.244096 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.65457 0.267259 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.642468 0.249631 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.642468 0.249631 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.675225 0.261725 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.663122 0.244096 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.683777 0.238562 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.602641 0.183615 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.600215 0.197046 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.622701 0.191021 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.609032 0.207465 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.580155 0.18964 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER 0.588972 0.200059 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.582581 0.176209 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.593824 0.173196 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.596251 0.159765 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.61631 0.167171 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.591572 0.224924 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.587397 0.24926 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.606693 0.240045 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.606693 0.240045 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.572277 0.23414 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.591572 0.224924 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.576452 0.209804 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.572277 0.23414 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.576452 0.209804 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.591572 0.224924 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.5724 0.153374 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.551082 0.155041 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.5724 0.153374 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.566866 0.174029 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.551082 0.155041 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.566866 0.174029 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.5724 0.153374 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.556617 0.134387 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.577935 0.13272 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.577935 0.13272 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.655019 0.131237 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.668451 0.12881 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.678869 0.137627 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.662426 0.151296 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.644601 0.12242 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.638576 0.144906 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.631169 0.124846 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.661044 0.108751 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER 0.647613 0.111177 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.671463 0.117567 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.624779 0.100996 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.626446 0.0796777 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.645433 0.0954616 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.624779 0.100996 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.605791 0.0852121 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.604124 0.10653 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.604124 0.10653 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.626446 0.0796777 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.624779 0.100996 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.645433 0.0954616 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.696329 0.120168 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.720665 0.115992 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.711449 0.135288 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.711449 0.135288 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.705544 0.100872 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.696329 0.120168 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.681209 0.105047 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.705544 0.100872 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.681209 0.105047 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.696329 0.120168 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.852418 0.0955788 1.89979e-16 RAD 0.0555556 - txt002 - SPHERE CENTER 0.922609 0.11107 -0.0178949 RAD 0.0185185 - txt002 - SPHERE CENTER 0.937225 0.122151 -0.0344251 RAD 0.00617284 - txt002 - SPHERE CENTER 0.916553 0.11086 -0.0418311 RAD 0.00617284 - txt002 - SPHERE CENTER 0.915202 0.131874 -0.0289382 RAD 0.00617284 - txt002 - SPHERE CENTER 0.943281 0.12236 -0.0104889 RAD 0.00617284 - txt002 - SPHERE CENTER 0.921258 0.132084 -0.00500196 RAD 0.00617284 - txt002 - SPHERE CENTER 0.928665 0.111279 0.00604126 RAD 0.00617284 - txt002 - SPHERE CENTER 0.944632 0.101346 -0.0233819 RAD 0.00617284 - txt002 - SPHERE CENTER 0.930016 0.0902645 -0.00685171 RAD 0.00617284 - txt002 - SPHERE CENTER 0.92396 0.090055 -0.0307879 RAD 0.00617284 - txt002 - SPHERE CENTER 0.867231 0.135698 -0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER 0.873196 0.134634 -0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER 0.882112 0.117797 -0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER 0.858152 0.11765 -0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER 0.858315 0.152536 -0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER 0.843271 0.135552 -0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.852349 0.1536 -0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER 0.882275 0.152682 -0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.876309 0.153747 -0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER 0.89119 0.135845 -0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER 0.877966 0.164775 0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER 0.890926 0.182656 -0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER 0.897331 0.159019 -0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER 0.876622 0.167676 -0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER 0.871561 0.188412 0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER 0.857256 0.173431 -0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.8586 0.17053 0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER 0.89227 0.179755 0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER 0.87931 0.161874 0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.898675 0.156118 0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.907797 0.0709499 0.0425863 RAD 0.0185185 - txt002 - SPHERE CENTER 0.930963 0.0752104 0.0499923 RAD 0.00617284 - txt002 - SPHERE CENTER 0.924191 0.0806562 0.0268805 RAD 0.00617284 - txt002 - SPHERE CENTER 0.915684 0.0941344 0.0457385 RAD 0.00617284 - txt002 - SPHERE CENTER 0.914568 0.0655041 0.065698 RAD 0.00617284 - txt002 - SPHERE CENTER 0.899289 0.0844281 0.0614442 RAD 0.00617284 - txt002 - SPHERE CENTER 0.891402 0.0612436 0.058292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.923076 0.0520258 0.0468401 RAD 0.00617284 - txt002 - SPHERE CENTER 0.89991 0.0477654 0.0394341 RAD 0.00617284 - txt002 - SPHERE CENTER 0.916304 0.0574717 0.0237283 RAD 0.00617284 - txt002 - SPHERE CENTER 0.863153 0.124655 0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER 0.875744 0.141535 0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER 0.88655 0.129819 0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.868763 0.146389 0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER 0.852347 0.136371 0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER 0.845366 0.141225 0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER 0.839756 0.119492 0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER 0.870135 0.119801 0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER 0.857544 0.102922 0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER 0.880941 0.108085 0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER 0.837606 0.0554592 0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER 0.842832 0.0523913 0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER 0.86055 0.0593957 0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER 0.842434 0.0750766 0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER 0.819888 0.0484547 0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER 0.81949 0.07114 0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.814662 0.0515226 0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER 0.838004 0.0327739 0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.832778 0.0358417 0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER 0.855722 0.0397783 0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER 0.897062 0.0418734 -0.0246914 RAD 0.0185185 - txt002 - SPHERE CENTER 0.920407 0.0359958 -0.0301783 RAD 0.00617284 - txt002 - SPHERE CENTER 0.912106 0.0588574 -0.0344321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.915603 0.0511067 -0.0112511 RAD 0.00617284 - txt002 - SPHERE CENTER 0.905363 0.0190117 -0.0204376 RAD 0.00617284 - txt002 - SPHERE CENTER 0.900559 0.0341227 -0.00151032 RAD 0.00617284 - txt002 - SPHERE CENTER 0.882018 0.0248894 -0.0149506 RAD 0.00617284 - txt002 - SPHERE CENTER 0.901866 0.0267625 -0.0436186 RAD 0.00617284 - txt002 - SPHERE CENTER 0.878521 0.0326401 -0.0381316 RAD 0.00617284 - txt002 - SPHERE CENTER 0.893565 0.0496241 -0.0478724 RAD 0.00617284 - txt002 - SPHERE CENTER 0.826871 0.0263827 -0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER 0.825102 0.00436945 0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER 0.84533 0.018173 0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER 0.823964 0.025051 0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER 0.806642 0.0125791 -0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER 0.805505 0.0332607 0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.808411 0.0345923 -0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER 0.828008 0.00570109 -0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER 0.829777 0.0277143 -0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.848237 0.0195047 -0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.841683 0.0665023 -0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER 0.840284 0.0454909 -0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER 0.856111 0.0473735 -0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.831823 0.0463379 -0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER 0.825856 0.0646197 -0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER 0.817395 0.0654667 -0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER 0.827255 0.0856311 -0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER 0.850144 0.0656554 -0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER 0.851543 0.0866667 -0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER 0.865971 0.0675379 -0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER 0.69376 -0.0133465 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.740325 -0.0440268 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.762259 -0.0417568 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.759495 -0.0345526 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.748937 -0.0216407 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER 0.743089 -0.051231 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.729767 -0.0311149 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.721155 -0.053501 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.753646 -0.0641429 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.731712 -0.0664129 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.750882 -0.0569387 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.76531 0.0058253 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.782939 0.0179281 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.76531 0.0058253 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.759776 0.02648 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.782939 0.0179281 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.759776 0.02648 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.76531 0.0058253 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.788473 -0.00272662 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.770845 -0.0148294 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.770845 -0.0148294 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.721234 0.0272215 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.736829 0.0454452 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.742467 0.0297485 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.724354 0.046242 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.715595 0.0429182 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.70312 0.043715 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.7 0.0246945 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.733709 0.0264247 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER 0.718114 0.00820099 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.739347 0.010728 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.668775 -0.0631985 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.669983 -0.0708196 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.690113 -0.0618185 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.671462 -0.0467378 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.648644 -0.0721997 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.650123 -0.0481178 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER 0.647436 -0.0645786 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.667296 -0.0872804 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.666087 -0.0796593 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.687426 -0.0782793 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.649684 0.00804971 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.646718 0.0244627 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669336 0.016478 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.657124 0.0313903 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.627066 0.0160343 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.637471 0.022962 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.630031 -0.000378614 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.639278 0.00112207 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER 0.642244 -0.0152909 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.661896 -0.00686255 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.62221 -0.0325183 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.600892 -0.0308513 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.62221 -0.0325183 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.616676 -0.0118635 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.600892 -0.0308513 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.616676 -0.0118635 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.62221 -0.0325183 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.606426 -0.051506 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.627745 -0.053173 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.627745 -0.053173 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.712851 -0.0845947 0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER 0.730141 -0.101422 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.736701 -0.0782041 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.725284 -0.0832945 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.706291 -0.107813 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.701434 -0.0896851 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.689001 -0.0909853 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.717709 -0.102723 0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER 0.700418 -0.0858949 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.724268 -0.0795043 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.666287 -0.0539145 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.655153 -0.0751594 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.671821 -0.0745692 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.649783 -0.0638711 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.649619 -0.0545047 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.644249 -0.0432164 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.660752 -0.0332597 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.671657 -0.0652028 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.682791 -0.0439578 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.688325 -0.0646126 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.737837 -0.0347427 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.752567 -0.0269197 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.732303 -0.014088 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.751574 -0.0144587 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.758102 -0.0475745 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.757108 -0.0351134 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.743371 -0.0553974 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.73883 -0.0472037 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.7241 -0.0550267 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.718566 -0.0343719 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.69376 -0.0133465 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.745859 -0.0646815 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.770032 -0.0684873 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.759394 -0.0481266 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.762305 -0.0507391 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.756497 -0.0850422 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.74877 -0.067294 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER 0.732325 -0.0812364 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.753586 -0.0824297 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.729413 -0.0786239 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.742948 -0.062069 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.76531 0.0058253 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.782939 0.0179281 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.76531 0.0058253 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.759776 0.02648 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.782939 0.0179281 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.759776 0.02648 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.76531 0.0058253 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.788473 -0.00272662 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.770845 -0.0148294 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.770845 -0.0148294 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.737837 -0.0347427 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.758864 -0.0299763 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.757489 -0.0263144 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.745277 -0.0114021 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.739212 -0.0384047 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.725625 -0.0198304 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.718185 -0.043171 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.751424 -0.0533169 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.730397 -0.0580833 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.750049 -0.0496549 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.674309 -0.0838533 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.675276 -0.106805 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.694308 -0.091423 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.673094 -0.0875713 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER 0.655278 -0.0992356 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.653095 -0.0800016 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.65431 -0.0762835 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.676491 -0.103087 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.675524 -0.0801352 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.695522 -0.0877049 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.666287 -0.0539145 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.666927 -0.0577732 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.68752 -0.0513875 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669407 -0.034894 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.645694 -0.0603001 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.648173 -0.0374209 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.645053 -0.0564414 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.663807 -0.0767937 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.663167 -0.072935 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.6844 -0.070408 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.62221 -0.0325183 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.600892 -0.0308513 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.62221 -0.0325183 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.616676 -0.0118635 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.600892 -0.0308513 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.616676 -0.0118635 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.62221 -0.0325183 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.606426 -0.051506 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.627745 -0.053173 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.627745 -0.053173 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.701782 -0.0432853 -0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.717566 -0.0544915 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.725632 -0.0368947 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.718734 -0.0588496 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.693716 -0.0608821 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.694884 -0.0652402 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.677932 -0.0496759 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.700615 -0.0389272 -0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.684831 -0.027721 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.708681 -0.0213304 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.649684 0.00804971 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.640422 0.0275193 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.644149 0.0287044 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.66342 0.0283337 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.645956 0.00686453 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER 0.668955 0.00767898 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.655218 -0.012605 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.626685 0.00723527 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.635947 -0.0122343 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.630413 0.00842045 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.721234 0.0272215 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.725055 0.0280589 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER 0.726768 0.00656677 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.70473 0.0172649 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.71952 0.0487136 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.699195 0.0379196 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.715699 0.0478762 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.741558 0.0380155 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.737738 0.0371781 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.743272 0.0165234 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.172546 0.643951 1.11022e-16 RAD 0.166667 - txt002 - SPHERE CENTER 0.281471 0.802608 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.30566 0.824035 -0.177765 RAD 0.0185185 - txt002 - SPHERE CENTER 0.302088 0.822021 -0.202114 RAD 0.00617284 - txt002 - SPHERE CENTER 0.298094 0.802598 -0.187402 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282758 0.821938 -0.186751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.309654 0.843459 -0.192477 RAD 0.00617284 - txt002 - SPHERE CENTER 0.290324 0.843375 -0.177114 RAD 0.00617284 - txt002 - SPHERE CENTER 0.313227 0.845472 -0.168128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.32499 0.824119 -0.193128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.328563 0.826132 -0.16878 RAD 0.00617284 - txt002 - SPHERE CENTER 0.320997 0.804695 -0.178416 RAD 0.00617284 - txt002 - SPHERE CENTER 0.305221 0.752156 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.325175 0.741263 -0.169507 RAD 0.00617284 - txt002 - SPHERE CENTER 0.325981 0.765112 -0.163165 RAD 0.00617284 - txt002 - SPHERE CENTER 0.32493 0.747715 -0.145675 RAD 0.00617284 - txt002 - SPHERE CENTER 0.304415 0.728307 -0.166213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.304171 0.734759 -0.142381 RAD 0.00617284 - txt002 - SPHERE CENTER 0.284462 0.7392 -0.156576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.305466 0.745704 -0.183703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.285513 0.756597 -0.174066 RAD 0.00617284 - txt002 - SPHERE CENTER 0.306272 0.769553 -0.17736 RAD 0.00617284 - txt002 - SPHERE CENTER 0.241352 0.787796 -0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER 0.218449 0.785699 -0.180578 RAD 0.00617284 - txt002 - SPHERE CENTER 0.223304 0.778718 -0.157397 RAD 0.00617284 - txt002 - SPHERE CENTER 0.22345 0.802677 -0.163362 RAD 0.00617284 - txt002 - SPHERE CENTER 0.236497 0.794777 -0.194773 RAD 0.00617284 - txt002 - SPHERE CENTER 0.241498 0.811756 -0.177557 RAD 0.00617284 - txt002 - SPHERE CENTER 0.2594 0.796874 -0.185788 RAD 0.00617284 - txt002 - SPHERE CENTER 0.236351 0.770818 -0.188808 RAD 0.00617284 - txt002 - SPHERE CENTER 0.259253 0.772915 -0.179823 RAD 0.00617284 - txt002 - SPHERE CENTER 0.241205 0.763837 -0.165627 RAD 0.00617284 - txt002 - SPHERE CENTER 0.28191 0.874487 -0.129006 RAD 0.0185185 - txt002 - SPHERE CENTER 0.292033 0.891539 -0.143718 RAD 0.00617284 - txt002 - SPHERE CENTER 0.305711 0.872763 -0.135349 RAD 0.00617284 - txt002 - SPHERE CENTER 0.28812 0.868678 -0.152187 RAD 0.00617284 - txt002 - SPHERE CENTER 0.268233 0.893263 -0.137375 RAD 0.00617284 - txt002 - SPHERE CENTER 0.264319 0.870402 -0.145845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.25811 0.876212 -0.122663 RAD 0.00617284 - txt002 - SPHERE CENTER 0.285824 0.897348 -0.120537 RAD 0.00617284 - txt002 - SPHERE CENTER 0.275701 0.880296 -0.105825 RAD 0.00617284 - txt002 - SPHERE CENTER 0.299501 0.878572 -0.112168 RAD 0.00617284 - txt002 - SPHERE CENTER 0.217602 0.838248 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.206363 0.860225 -0.122182 RAD 0.00617284 - txt002 - SPHERE CENTER 0.223536 0.854636 -0.105343 RAD 0.00617284 - txt002 - SPHERE CENTER 0.230102 0.858689 -0.128798 RAD 0.00617284 - txt002 - SPHERE CENTER 0.200429 0.843837 -0.139672 RAD 0.00617284 - txt002 - SPHERE CENTER 0.224168 0.842301 -0.146288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.211667 0.821861 -0.140323 RAD 0.00617284 - txt002 - SPHERE CENTER 0.193863 0.839784 -0.116217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.205101 0.817808 -0.116868 RAD 0.00617284 - txt002 - SPHERE CENTER 0.211035 0.834196 -0.0993785 RAD 0.00617284 - txt002 - SPHERE CENTER 0.257721 0.853061 -0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER 0.26204 0.87538 -0.0527151 RAD 0.00617284 - txt002 - SPHERE CENTER 0.280934 0.860805 -0.0590577 RAD 0.00617284 - txt002 - SPHERE CENTER 0.266856 0.87108 -0.0765474 RAD 0.00617284 - txt002 - SPHERE CENTER 0.238827 0.867636 -0.0560094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.243643 0.863337 -0.0798417 RAD 0.00617284 - txt002 - SPHERE CENTER 0.234508 0.845317 -0.0656463 RAD 0.00617284 - txt002 - SPHERE CENTER 0.252905 0.857361 -0.0385197 RAD 0.00617284 - txt002 - SPHERE CENTER 0.248586 0.835041 -0.0481565 RAD 0.00617284 - txt002 - SPHERE CENTER 0.271799 0.842785 -0.0448623 RAD 0.00617284 - txt002 - SPHERE CENTER 0.34578 0.838847 -0.117284 RAD 0.0185185 - txt002 - SPHERE CENTER 0.360404 0.851488 -0.132647 RAD 0.00617284 - txt002 - SPHERE CENTER 0.347059 0.832518 -0.141116 RAD 0.00617284 - txt002 - SPHERE CENTER 0.335865 0.853509 -0.1345 RAD 0.00617284 - txt002 - SPHERE CENTER 0.359125 0.857816 -0.108814 RAD 0.00617284 - txt002 - SPHERE CENTER 0.334587 0.859838 -0.110668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.344501 0.845176 -0.0934517 RAD 0.00617284 - txt002 - SPHERE CENTER 0.370319 0.836826 -0.115431 RAD 0.00617284 - txt002 - SPHERE CENTER 0.355695 0.824185 -0.100068 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356973 0.817857 -0.1239 RAD 0.00617284 - txt002 - SPHERE CENTER 0.321591 0.817421 -0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER 0.340361 0.83071 -0.0416443 RAD 0.00617284 - txt002 - SPHERE CENTER 0.341208 0.822249 -0.0648253 RAD 0.00617284 - txt002 - SPHERE CENTER 0.325527 0.840365 -0.0588603 RAD 0.00617284 - txt002 - SPHERE CENTER 0.320744 0.825882 -0.0274488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.30591 0.835537 -0.0446649 RAD 0.00617284 - txt002 - SPHERE CENTER 0.301973 0.812593 -0.0364345 RAD 0.00617284 - txt002 - SPHERE CENTER 0.336425 0.807766 -0.0334138 RAD 0.00617284 - txt002 - SPHERE CENTER 0.317654 0.794477 -0.0423994 RAD 0.00617284 - txt002 - SPHERE CENTER 0.337272 0.799305 -0.0565949 RAD 0.00617284 - txt002 - SPHERE CENTER 0.345341 0.766968 -0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.369945 0.768944 -0.10004 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356171 0.780624 -0.116879 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356172 0.788341 -0.093424 RAD 0.00617284 - txt002 - SPHERE CENTER 0.359115 0.755289 -0.0825505 RAD 0.00617284 - txt002 - SPHERE CENTER 0.345342 0.774685 -0.0759343 RAD 0.00617284 - txt002 - SPHERE CENTER 0.334511 0.753313 -0.0818993 RAD 0.00617284 - txt002 - SPHERE CENTER 0.359113 0.747572 -0.106005 RAD 0.00617284 - txt002 - SPHERE CENTER 0.33451 0.745596 -0.105354 RAD 0.00617284 - txt002 - SPHERE CENTER 0.34534 0.759252 -0.122844 RAD 0.00617284 - txt002 - SPHERE CENTER 0.358439 0.594141 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.408291 0.619127 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.411883 0.625955 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.396287 0.607547 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.390369 0.630791 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.423887 0.637535 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.402373 0.642371 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.420295 0.630706 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.429805 0.61429 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.426212 0.607462 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.414208 0.595882 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER 0.337042 0.638217 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.344865 0.652948 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.357326 0.651954 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.357697 0.632683 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.324581 0.639211 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER 0.337413 0.618946 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.316758 0.624481 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.324211 0.658482 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.316388 0.643752 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.336672 0.657489 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37761 0.665691 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.389713 0.68332 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.398265 0.660156 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37761 0.665691 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.369058 0.688854 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356956 0.671225 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356956 0.671225 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.389713 0.68332 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37761 0.665691 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.398265 0.660156 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.429687 0.57505 -0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER 0.452905 0.58161 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.434777 0.586467 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.436077 0.5989 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.447815 0.570193 -0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER 0.430987 0.587483 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.424596 0.563633 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.446515 0.55776 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.423296 0.5512 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.428387 0.562617 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399007 0.621614 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.41723 0.637209 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.418027 0.624734 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.401533 0.642848 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.39821 0.634089 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.382513 0.639728 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.379986 0.618494 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.414703 0.615976 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.39648 0.600381 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.4155 0.603501 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.379835 0.550064 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.396248 0.547099 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.403175 0.557504 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.388263 0.569716 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.372907 0.539659 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.364922 0.562276 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356494 0.542624 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.387819 0.527447 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.371406 0.530412 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.394747 0.537852 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.389119 0.547576 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.410169 0.541008 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.405866 0.564748 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER 0.410472 0.548718 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.393422 0.523836 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.393725 0.531546 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.372372 0.530405 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.388816 0.539866 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.367766 0.546435 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.384513 0.563607 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.339267 0.522591 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.340934 0.501272 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.359921 0.517056 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.339267 0.522591 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.320279 0.506807 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.318612 0.528125 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.318612 0.528125 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.340934 0.501272 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.339267 0.522591 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.359921 0.517056 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.317871 0.566667 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.296626 0.555534 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.307914 0.550163 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.297216 0.572202 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.306582 0.572037 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER 0.307172 0.588706 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.327827 0.583171 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.31728 0.549999 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.338525 0.561133 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.328569 0.544629 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.172546 0.643951 -0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER 0.142305 0.674191 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.144155 0.692502 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.150298 0.696439 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.164554 0.682184 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.136163 0.670254 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.156561 0.659936 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER 0.134313 0.651943 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.121907 0.684509 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER 0.120057 0.666199 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.12805 0.688447 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER 0.100996 0.663122 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0847178 0.680265 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.104191 0.675047 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.107387 0.686972 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0815225 0.66834 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER 0.104191 0.675047 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0978007 0.651197 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0783272 0.656415 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0946054 0.639272 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0978007 0.651197 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.153374 0.715501 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.160081 0.738169 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.177224 0.721891 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.165299 0.718696 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.136231 0.731779 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.141449 0.712305 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.129524 0.70911 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.148156 0.734974 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.141449 0.712305 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.165299 0.718696 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.213855 0.655019 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.213517 0.662308 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.194382 0.649801 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER 0.198584 0.673065 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.23299 0.667526 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER 0.218058 0.678283 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.233329 0.660237 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER 0.228788 0.644262 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.229127 0.636974 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.209653 0.631756 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.224924 0.696329 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.23918 0.710584 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER 0.233654 0.687599 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.216195 0.705059 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.23045 0.719314 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.207465 0.713788 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.216195 0.705059 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.24791 0.701855 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.233654 0.687599 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.242384 0.678869 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.244096 0.624779 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.266765 0.631486 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.247291 0.636704 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.250487 0.648629 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.26357 0.619561 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.247291 0.636704 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.240901 0.612854 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.260374 0.607636 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.237705 0.600929 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.240901 0.612854 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.161477 0.602641 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.162741 0.579817 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER 0.179523 0.58737 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.156259 0.583168 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER 0.144695 0.595088 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.138214 0.598439 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.143431 0.617912 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.167958 0.59929 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.166695 0.622115 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER 0.184741 0.606843 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.191718 0.5724 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.208861 0.556122 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.215568 0.578791 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.203643 0.575596 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.185011 0.549732 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.179793 0.569205 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.167868 0.56601 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.196936 0.552927 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER 0.179793 0.569205 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.203643 0.575596 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.120168 0.591572 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.105912 0.577317 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.128897 0.582843 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.111438 0.600302 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0971825 0.586046 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.102708 0.609032 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.111438 0.600302 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.114642 0.568587 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.128897 0.582843 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.137627 0.574113 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0955788 0.852418 9.1293e-17 RAD 0.0555556 - txt002 - SPHERE CENTER 0.11107 0.922609 -0.0178949 RAD 0.0185185 - txt002 - SPHERE CENTER 0.122151 0.937225 -0.0344251 RAD 0.00617284 - txt002 - SPHERE CENTER 0.131874 0.915202 -0.0289382 RAD 0.00617284 - txt002 - SPHERE CENTER 0.11086 0.916553 -0.0418311 RAD 0.00617284 - txt002 - SPHERE CENTER 0.101346 0.944632 -0.0233819 RAD 0.00617284 - txt002 - SPHERE CENTER 0.090055 0.92396 -0.0307879 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0902645 0.930016 -0.00685171 RAD 0.00617284 - txt002 - SPHERE CENTER 0.12236 0.943281 -0.0104889 RAD 0.00617284 - txt002 - SPHERE CENTER 0.111279 0.928665 0.00604126 RAD 0.00617284 - txt002 - SPHERE CENTER 0.132084 0.921258 -0.00500196 RAD 0.00617284 - txt002 - SPHERE CENTER 0.164775 0.877966 0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER 0.182656 0.890926 -0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER 0.167676 0.876622 -0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER 0.159019 0.897331 -0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER 0.179755 0.89227 0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER 0.156118 0.898675 0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.161874 0.87931 0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.188412 0.871561 0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER 0.17053 0.8586 0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER 0.173431 0.857256 -0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.135698 0.867231 -0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER 0.134634 0.873196 -0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER 0.11765 0.858152 -0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER 0.117797 0.882112 -0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER 0.152682 0.882275 -0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.135845 0.89119 -0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER 0.153747 0.876309 -0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER 0.152536 0.858315 -0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER 0.1536 0.852349 -0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER 0.135552 0.843271 -0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0418734 0.897062 -0.0246914 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0359958 0.920407 -0.0301783 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0511067 0.915603 -0.0112511 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0588574 0.912106 -0.0344321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0267625 0.901866 -0.0436186 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0496241 0.893565 -0.0478724 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0326401 0.878521 -0.0381316 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0190117 0.905363 -0.0204376 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0248894 0.882018 -0.0149506 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0341227 0.900559 -0.00151032 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0665023 0.841683 -0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0454909 0.840284 -0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0463379 0.831823 -0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0473735 0.856111 -0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0656554 0.850144 -0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0675379 0.865971 -0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0866667 0.851543 -0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0646197 0.825856 -0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0856311 0.827255 -0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0654667 0.817395 -0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0263827 0.826871 -0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER 0.00436945 0.825102 0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER 0.025051 0.823964 0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER 0.018173 0.84533 0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00570109 0.828008 -0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0195047 0.848237 -0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0277143 0.829777 -0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0125791 0.806642 -0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0345923 0.808411 -0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0332607 0.805505 0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0709499 0.907797 0.0425863 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0752104 0.930963 0.0499923 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0941344 0.915684 0.0457385 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0806562 0.924191 0.0268805 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0520258 0.923076 0.0468401 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0574717 0.916304 0.0237283 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0477654 0.89991 0.0394341 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0655041 0.914568 0.065698 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0612436 0.891402 0.058292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0844281 0.899289 0.0614442 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0554592 0.837606 0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0523913 0.842832 0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0750766 0.842434 0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0593957 0.86055 0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0327739 0.838004 0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0397783 0.855722 0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0358417 0.832778 0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0484547 0.819888 0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0515226 0.814662 0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER 0.07114 0.81949 0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.124655 0.863153 0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER 0.141535 0.875744 0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER 0.146389 0.868763 0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER 0.129819 0.88655 0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.119801 0.870135 0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER 0.108085 0.880941 0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER 0.102922 0.857544 0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER 0.136371 0.852347 0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER 0.119492 0.839756 0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER 0.141225 0.845366 0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0133465 0.69376 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.0646815 0.745859 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0684873 0.770032 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0507391 0.762305 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0481266 0.759394 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0824297 0.753586 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.062069 0.742948 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0786239 0.729413 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0850422 0.756497 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0812364 0.732325 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.067294 0.74877 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0347427 0.737837 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0299763 0.758864 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0114021 0.745277 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0263144 0.757489 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0533169 0.751424 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0496549 0.750049 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0580833 0.730397 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0384047 0.739212 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.043171 0.718185 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0198304 0.725625 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0058253 0.76531 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0179281 0.782939 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.02648 0.759776 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0058253 0.76531 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00272662 0.788473 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0148294 0.770845 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0148294 0.770845 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0179281 0.782939 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0058253 0.76531 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.02648 0.759776 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0432853 0.701782 -0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0544915 0.717566 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0588496 0.718734 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0368947 0.725632 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0389272 0.700615 -0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0213304 0.708681 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.027721 0.684831 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0608821 0.693716 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0496759 0.677932 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0652402 0.694884 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0272215 0.721234 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0280589 0.725055 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0172649 0.70473 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00656677 0.726768 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0380155 0.741558 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0165234 0.743272 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0371781 0.737738 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0487136 0.71952 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0478762 0.715699 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0379196 0.699195 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00804971 0.649684 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0275193 0.640422 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0283337 0.66342 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0287044 0.644149 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00723527 0.626685 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00842045 0.630413 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0122343 0.635947 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00686453 0.645956 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.012605 0.655218 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00767898 0.668955 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0838533 0.674309 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.106805 0.675276 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0875713 0.673094 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.091423 0.694308 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.103087 0.676491 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0877049 0.695522 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0801352 0.675524 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0992356 0.655278 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0762835 0.65431 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0800016 0.653095 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0325183 0.62221 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0308513 0.600892 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0118635 0.616676 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0325183 0.62221 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.051506 0.606426 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.053173 0.627745 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.053173 0.627745 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0308513 0.600892 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0325183 0.62221 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0118635 0.616676 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0539145 0.666287 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0577732 0.666927 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.034894 0.669407 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0513875 0.68752 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0767937 0.663807 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.070408 0.6844 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.072935 0.663167 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0603001 0.645694 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0564414 0.645053 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0374209 0.648173 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0133465 0.69376 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.0440268 0.740325 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0417568 0.762259 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0216407 0.748937 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0345526 0.759495 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0641429 0.753646 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0569387 0.750882 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0664129 0.731712 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.051231 0.743089 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.053501 0.721155 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0311149 0.729767 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0272215 0.721234 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0454452 0.736829 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.046242 0.724354 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0297485 0.742467 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0264247 0.733709 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER 0.010728 0.739347 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00820099 0.718114 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0429182 0.715595 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0246945 0.7 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.043715 0.70312 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0058253 0.76531 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0179281 0.782939 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.02648 0.759776 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0058253 0.76531 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00272662 0.788473 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0148294 0.770845 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0148294 0.770845 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0179281 0.782939 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0058253 0.76531 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.02648 0.759776 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0845947 0.712851 0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER -0.101422 0.730141 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0832945 0.725284 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0782041 0.736701 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.102723 0.717709 0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0795043 0.724268 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0858949 0.700418 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.107813 0.706291 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0909853 0.689001 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0896851 0.701434 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0347427 0.737837 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0269197 0.752567 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0144587 0.751574 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.014088 0.732303 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0472037 0.73883 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0343719 0.718566 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0550267 0.7241 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0475745 0.758102 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0553974 0.743371 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0351134 0.757108 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0539145 0.666287 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0751594 0.655153 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0638711 0.649783 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0745692 0.671821 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0652028 0.671657 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0646126 0.688325 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0439578 0.682791 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0545047 0.649619 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0332597 0.660752 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0432164 0.644249 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0631985 0.668775 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0708196 0.669983 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0467378 0.671462 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0618185 0.690113 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0872804 0.667296 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0782793 0.687426 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0796593 0.666087 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0721997 0.648644 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0645786 0.647436 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0481178 0.650123 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0325183 0.62221 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0308513 0.600892 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0118635 0.616676 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0325183 0.62221 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.051506 0.606426 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.053173 0.627745 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.053173 0.627745 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0308513 0.600892 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0325183 0.62221 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0118635 0.616676 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00804971 0.649684 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0244627 0.646718 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0313903 0.657124 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.016478 0.669336 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00112207 0.639278 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00686255 0.661896 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0152909 0.642244 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0160343 0.627066 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.000378614 0.630031 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.022962 0.637471 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.281471 0.802608 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.329459 0.858698 0.104938 RAD 0.0185185 - txt002 - SPHERE CENTER 0.34259 0.872345 0.0890951 RAD 0.00617284 - txt002 - SPHERE CENTER 0.338969 0.848329 0.0846485 RAD 0.00617284 - txt002 - SPHERE CENTER 0.32016 0.86421 0.0827387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.333079 0.882715 0.109385 RAD 0.00617284 - txt002 - SPHERE CENTER 0.310649 0.87458 0.103028 RAD 0.00617284 - txt002 - SPHERE CENTER 0.319948 0.869068 0.125228 RAD 0.00617284 - txt002 - SPHERE CENTER 0.351888 0.866833 0.111295 RAD 0.00617284 - txt002 - SPHERE CENTER 0.338757 0.853186 0.127138 RAD 0.00617284 - txt002 - SPHERE CENTER 0.348268 0.842817 0.106848 RAD 0.00617284 - txt002 - SPHERE CENTER 0.337088 0.798572 0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER 0.346884 0.808673 0.0420622 RAD 0.00617284 - txt002 - SPHERE CENTER 0.322361 0.807762 0.044793 RAD 0.00617284 - txt002 - SPHERE CENTER 0.335792 0.82298 0.0588533 RAD 0.00617284 - txt002 - SPHERE CENTER 0.361611 0.799483 0.0596212 RAD 0.00617284 - txt002 - SPHERE CENTER 0.350519 0.81379 0.0764123 RAD 0.00617284 - txt002 - SPHERE CENTER 0.351815 0.789382 0.079911 RAD 0.00617284 - txt002 - SPHERE CENTER 0.34818 0.784265 0.0455609 RAD 0.00617284 - txt002 - SPHERE CENTER 0.338384 0.774164 0.0658506 RAD 0.00617284 - txt002 - SPHERE CENTER 0.323657 0.783355 0.0482916 RAD 0.00617284 - txt002 - SPHERE CENTER 0.280879 0.845371 0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER 0.291048 0.849036 0.0284303 RAD 0.00617284 - txt002 - SPHERE CENTER 0.304882 0.840755 0.0471312 RAD 0.00617284 - txt002 - SPHERE CENTER 0.287867 0.826067 0.0369125 RAD 0.00617284 - txt002 - SPHERE CENTER 0.267046 0.853652 0.0319289 RAD 0.00617284 - txt002 - SPHERE CENTER 0.263865 0.830683 0.0404111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.256877 0.849987 0.0541285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.28406 0.868341 0.0421477 RAD 0.00617284 - txt002 - SPHERE CENTER 0.273891 0.864676 0.0643473 RAD 0.00617284 - txt002 - SPHERE CENTER 0.297894 0.86006 0.0608487 RAD 0.00617284 - txt002 - SPHERE CENTER 0.273842 0.862735 0.153697 RAD 0.0185185 - txt002 - SPHERE CENTER 0.282313 0.885497 0.158144 RAD 0.00617284 - txt002 - SPHERE CENTER 0.29787 0.867718 0.150967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.281455 0.876946 0.134996 RAD 0.00617284 - txt002 - SPHERE CENTER 0.258284 0.880514 0.160875 RAD 0.00617284 - txt002 - SPHERE CENTER 0.257427 0.871963 0.137727 RAD 0.00617284 - txt002 - SPHERE CENTER 0.249813 0.857752 0.156428 RAD 0.00617284 - txt002 - SPHERE CENTER 0.274699 0.871286 0.176845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.266228 0.848523 0.172398 RAD 0.00617284 - txt002 - SPHERE CENTER 0.290257 0.853506 0.169668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.225263 0.849407 0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.21889 0.873186 0.0974792 RAD 0.00617284 - txt002 - SPHERE CENTER 0.236437 0.866351 0.113449 RAD 0.00617284 - txt002 - SPHERE CENTER 0.240865 0.865588 0.0891702 RAD 0.00617284 - txt002 - SPHERE CENTER 0.207715 0.856242 0.0834188 RAD 0.00617284 - txt002 - SPHERE CENTER 0.22969 0.848644 0.0751099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.214088 0.832464 0.0853287 RAD 0.00617284 - txt002 - SPHERE CENTER 0.203288 0.857005 0.107698 RAD 0.00617284 - txt002 - SPHERE CENTER 0.20966 0.833227 0.109608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.220835 0.850171 0.123668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.225855 0.806645 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.21762 0.818054 0.18016 RAD 0.00617284 - txt002 - SPHERE CENTER 0.241754 0.813612 0.177429 RAD 0.00617284 - txt002 - SPHERE CENTER 0.230661 0.83061 0.163369 RAD 0.00617284 - txt002 - SPHERE CENTER 0.20172 0.811087 0.162601 RAD 0.00617284 - txt002 - SPHERE CENTER 0.214761 0.823642 0.14581 RAD 0.00617284 - txt002 - SPHERE CENTER 0.209955 0.799677 0.142311 RAD 0.00617284 - txt002 - SPHERE CENTER 0.212813 0.794089 0.176661 RAD 0.00617284 - txt002 - SPHERE CENTER 0.221048 0.78268 0.156372 RAD 0.00617284 - txt002 - SPHERE CENTER 0.236948 0.789647 0.173931 RAD 0.00617284 - txt002 - SPHERE CENTER 0.330051 0.815936 0.165419 RAD 0.0185185 - txt002 - SPHERE CENTER 0.350165 0.828769 0.171776 RAD 0.00617284 - txt002 - SPHERE CENTER 0.347547 0.820583 0.148628 RAD 0.00617284 - txt002 - SPHERE CENTER 0.333232 0.838905 0.156937 RAD 0.00617284 - txt002 - SPHERE CENTER 0.332668 0.824121 0.188567 RAD 0.00617284 - txt002 - SPHERE CENTER 0.315735 0.834258 0.173728 RAD 0.00617284 - txt002 - SPHERE CENTER 0.312554 0.811288 0.182211 RAD 0.00617284 - txt002 - SPHERE CENTER 0.346984 0.805799 0.180258 RAD 0.00617284 - txt002 - SPHERE CENTER 0.32687 0.792966 0.173902 RAD 0.00617284 - txt002 - SPHERE CENTER 0.344366 0.797614 0.157111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282063 0.759846 0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER 0.29233 0.756464 0.193792 RAD 0.00617284 - txt002 - SPHERE CENTER 0.305929 0.765125 0.175091 RAD 0.00617284 - txt002 - SPHERE CENTER 0.288514 0.779336 0.18531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.268464 0.751185 0.190293 RAD 0.00617284 - txt002 - SPHERE CENTER 0.264649 0.774058 0.181811 RAD 0.00617284 - txt002 - SPHERE CENTER 0.258198 0.754567 0.168094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.285879 0.736973 0.180075 RAD 0.00617284 - txt002 - SPHERE CENTER 0.275612 0.740355 0.157875 RAD 0.00617284 - txt002 - SPHERE CENTER 0.299478 0.745634 0.161374 RAD 0.00617284 - txt002 - SPHERE CENTER 0.33768 0.75581 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.362219 0.753851 0.124743 RAD 0.00617284 - txt002 - SPHERE CENTER 0.352319 0.76987 0.108773 RAD 0.00617284 - txt002 - SPHERE CENTER 0.350765 0.774086 0.133052 RAD 0.00617284 - txt002 - SPHERE CENTER 0.347581 0.739791 0.138803 RAD 0.00617284 - txt002 - SPHERE CENTER 0.336127 0.760026 0.147112 RAD 0.00617284 - txt002 - SPHERE CENTER 0.323042 0.74175 0.136894 RAD 0.00617284 - txt002 - SPHERE CENTER 0.349134 0.735575 0.114524 RAD 0.00617284 - txt002 - SPHERE CENTER 0.324595 0.737534 0.112614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.339233 0.751594 0.0985541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.172546 0.643951 0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER 0.202787 0.674191 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.219248 0.690652 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER 0.223862 0.677807 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.206403 0.695267 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.198172 0.687036 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.185327 0.691651 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.181711 0.670575 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.215632 0.669577 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.199171 0.653116 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.220246 0.656732 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.244096 0.663122 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.261725 0.675225 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.244096 0.663122 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.238562 0.683777 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.261725 0.675225 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.238562 0.683777 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.244096 0.663122 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.267259 0.65457 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.249631 0.642468 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.249631 0.642468 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.191718 0.715501 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.203821 0.733129 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.212373 0.709966 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.191718 0.715501 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.183166 0.738664 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.171063 0.721035 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.171063 0.721035 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.203821 0.733129 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.191718 0.715501 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.212373 0.709966 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.131237 0.655019 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.12881 0.668451 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.151296 0.662426 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.137627 0.678869 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.108751 0.661044 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER 0.117567 0.671463 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.111177 0.647613 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.12242 0.644601 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.124846 0.631169 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.144906 0.638576 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.120168 0.696329 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.115992 0.720665 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.135288 0.711449 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.135288 0.711449 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.100872 0.705544 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.120168 0.696329 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.105047 0.681209 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.100872 0.705544 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.105047 0.681209 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.120168 0.696329 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.100996 0.624779 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0796777 0.626446 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.100996 0.624779 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0954616 0.645433 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0796777 0.626446 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0954616 0.645433 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.100996 0.624779 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0852121 0.605791 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.10653 0.604124 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.10653 0.604124 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.183615 0.602641 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.197046 0.600215 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.207465 0.609032 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.191021 0.622701 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.173196 0.593824 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.167171 0.61631 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.159765 0.596251 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.18964 0.580155 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER 0.176209 0.582581 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.200059 0.588972 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.153374 0.5724 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.155041 0.551082 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.174029 0.566866 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.153374 0.5724 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.134387 0.556617 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.13272 0.577935 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.13272 0.577935 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.155041 0.551082 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.153374 0.5724 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.174029 0.566866 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.224924 0.591572 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.24926 0.587397 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.240045 0.606693 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.240045 0.606693 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.23414 0.572277 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.224924 0.591572 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.209804 0.576452 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.23414 0.572277 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.209804 0.576452 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.224924 0.591572 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.358439 0.594141 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.428945 0.613592 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.448155 0.626191 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.43276 0.614455 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER 0.42519 0.634643 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.44434 0.625328 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.421375 0.63378 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.42513 0.612729 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.45191 0.60514 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.4327 0.592541 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.436515 0.593404 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399007 0.621614 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.399844 0.625435 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.38905 0.60511 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.378352 0.627149 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.409801 0.641939 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.388308 0.643653 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.408963 0.638118 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.420499 0.619901 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.419661 0.61608 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.409705 0.599576 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37761 0.665691 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.389713 0.68332 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.398265 0.660156 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37761 0.665691 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.369058 0.688854 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356956 0.671225 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356956 0.671225 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.389713 0.68332 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37761 0.665691 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.398265 0.660156 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.388377 0.586119 0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.405974 0.594185 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.410332 0.593017 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.394768 0.609969 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.384019 0.587286 0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.372813 0.60307 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.366422 0.57922 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399584 0.570335 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.381987 0.562269 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.403942 0.569167 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.337042 0.638217 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.341809 0.659244 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.360383 0.645657 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.345471 0.65787 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.318468 0.651804 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.32213 0.65043 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.313702 0.630777 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.33338 0.639592 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER 0.328614 0.618565 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.351955 0.626005 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.317871 0.566667 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.314012 0.567308 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER 0.336891 0.569787 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.320398 0.587901 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.294991 0.564188 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.301377 0.584781 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.29885 0.563547 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.311485 0.546074 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.315344 0.545434 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.334364 0.548554 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.409774 0.542042 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.433888 0.53788 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.426423 0.55574 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.423551 0.558395 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.417238 0.524182 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.406901 0.544697 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.393124 0.528344 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.42011 0.521526 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.395996 0.525689 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.412646 0.539387 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER 0.339267 0.522591 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.340934 0.501272 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.359921 0.517056 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.339267 0.522591 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.320279 0.506807 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.318612 0.528125 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.318612 0.528125 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.340934 0.501272 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.339267 0.522591 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.359921 0.517056 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.379835 0.550064 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.399304 0.540802 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.400119 0.563801 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.400489 0.54453 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37902 0.527065 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.380205 0.530793 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.359551 0.536327 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37865 0.546337 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.35918 0.555599 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.379464 0.569335 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.371785 0.0996195 0.544331 RAD 0.166667 - txt002 - SPHERE CENTER -0.393621 0.220501 0.729516 RAD 0.0555556 - txt002 - SPHERE CENTER -0.368601 0.279642 0.766439 RAD 0.0185185 - txt002 - SPHERE CENTER -0.354293 0.299716 0.765035 RAD 0.00617284 - txt002 - SPHERE CENTER -0.347717 0.279022 0.753281 RAD 0.00617284 - txt002 - SPHERE CENTER -0.366989 0.292196 0.745238 RAD 0.00617284 - txt002 - SPHERE CENTER -0.375177 0.300337 0.778193 RAD 0.00617284 - txt002 - SPHERE CENTER -0.387873 0.292817 0.758396 RAD 0.00617284 - txt002 - SPHERE CENTER -0.389485 0.280263 0.779597 RAD 0.00617284 - txt002 - SPHERE CENTER -0.355904 0.287162 0.786236 RAD 0.00617284 - txt002 - SPHERE CENTER -0.370213 0.267088 0.787639 RAD 0.00617284 - txt002 - SPHERE CENTER -0.349329 0.266468 0.774481 RAD 0.00617284 - txt002 - SPHERE CENTER -0.321889 0.238665 0.726118 RAD 0.0185185 - txt002 - SPHERE CENTER -0.304702 0.250544 0.71296 RAD 0.00617284 - txt002 - SPHERE CENTER -0.32307 0.238717 0.701455 RAD 0.00617284 - txt002 - SPHERE CENTER -0.327715 0.259421 0.714081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.30352 0.250492 0.737623 RAD 0.00617284 - txt002 - SPHERE CENTER -0.326533 0.259369 0.738744 RAD 0.00617284 - txt002 - SPHERE CENTER -0.320707 0.238612 0.750781 RAD 0.00617284 - txt002 - SPHERE CENTER -0.298875 0.229788 0.724997 RAD 0.00617284 - txt002 - SPHERE CENTER -0.316063 0.217908 0.738155 RAD 0.00617284 - txt002 - SPHERE CENTER -0.317244 0.21796 0.713492 RAD 0.00617284 - txt002 - SPHERE CENTER -0.372464 0.281062 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER -0.362978 0.289441 0.671279 RAD 0.00617284 - txt002 - SPHERE CENTER -0.35549 0.267771 0.680442 RAD 0.00617284 - txt002 - SPHERE CENTER -0.378255 0.270044 0.671155 RAD 0.00617284 - txt002 - SPHERE CENTER -0.379952 0.302733 0.683315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.395229 0.283335 0.683192 RAD 0.00617284 - txt002 - SPHERE CENTER -0.389438 0.294353 0.704516 RAD 0.00617284 - txt002 - SPHERE CENTER -0.357187 0.30046 0.692603 RAD 0.00617284 - txt002 - SPHERE CENTER -0.366673 0.29208 0.713804 RAD 0.00617284 - txt002 - SPHERE CENTER -0.349699 0.278789 0.701767 RAD 0.00617284 - txt002 - SPHERE CENTER -0.440333 0.261479 0.769837 RAD 0.0185185 - txt002 - SPHERE CENTER -0.443285 0.282991 0.781591 RAD 0.00617284 - txt002 - SPHERE CENTER -0.421181 0.271991 0.781342 RAD 0.00617284 - txt002 - SPHERE CENTER -0.4302 0.282046 0.760673 RAD 0.00617284 - txt002 - SPHERE CENTER -0.462437 0.27248 0.770086 RAD 0.00617284 - txt002 - SPHERE CENTER -0.449353 0.271534 0.749168 RAD 0.00617284 - txt002 - SPHERE CENTER -0.459485 0.250967 0.758332 RAD 0.00617284 - txt002 - SPHERE CENTER -0.453417 0.262424 0.790755 RAD 0.00617284 - txt002 - SPHERE CENTER -0.450466 0.240911 0.779001 RAD 0.00617284 - txt002 - SPHERE CENTER -0.431313 0.251423 0.790506 RAD 0.00617284 - txt002 - SPHERE CENTER -0.444196 0.262898 0.695877 RAD 0.0185185 - txt002 - SPHERE CENTER -0.449273 0.285685 0.687835 RAD 0.00617284 - txt002 - SPHERE CENTER -0.436139 0.282528 0.708504 RAD 0.00617284 - txt002 - SPHERE CENTER -0.426189 0.27701 0.68659 RAD 0.00617284 - txt002 - SPHERE CENTER -0.45733 0.266055 0.675209 RAD 0.00617284 - txt002 - SPHERE CENTER -0.434246 0.257381 0.673964 RAD 0.00617284 - txt002 - SPHERE CENTER -0.452254 0.243269 0.683251 RAD 0.00617284 - txt002 - SPHERE CENTER -0.46728 0.271573 0.697123 RAD 0.00617284 - txt002 - SPHERE CENTER -0.462204 0.248787 0.705165 RAD 0.00617284 - txt002 - SPHERE CENTER -0.454146 0.268416 0.717791 RAD 0.00617284 - txt002 - SPHERE CENTER -0.465353 0.202338 0.732914 RAD 0.0185185 - txt002 - SPHERE CENTER -0.486123 0.204606 0.746073 RAD 0.00617284 - txt002 - SPHERE CENTER -0.464339 0.202946 0.757577 RAD 0.00617284 - txt002 - SPHERE CENTER -0.470107 0.223366 0.744951 RAD 0.00617284 - txt002 - SPHERE CENTER -0.487137 0.203998 0.72141 RAD 0.00617284 - txt002 - SPHERE CENTER -0.471122 0.222757 0.720288 RAD 0.00617284 - txt002 - SPHERE CENTER -0.466367 0.201729 0.708251 RAD 0.00617284 - txt002 - SPHERE CENTER -0.481368 0.183578 0.734036 RAD 0.00617284 - txt002 - SPHERE CENTER -0.460599 0.18131 0.720878 RAD 0.00617284 - txt002 - SPHERE CENTER -0.459584 0.181918 0.745541 RAD 0.00617284 - txt002 - SPHERE CENTER -0.389758 0.219082 0.803476 RAD 0.0185185 - txt002 - SPHERE CENTER -0.378635 0.228779 0.823273 RAD 0.00617284 - txt002 - SPHERE CENTER -0.365937 0.225483 0.802355 RAD 0.00617284 - txt002 - SPHERE CENTER -0.383364 0.24293 0.8036 RAD 0.00617284 - txt002 - SPHERE CENTER -0.402455 0.222377 0.824394 RAD 0.00617284 - txt002 - SPHERE CENTER -0.407185 0.236529 0.804721 RAD 0.00617284 - txt002 - SPHERE CENTER -0.413578 0.21268 0.804597 RAD 0.00617284 - txt002 - SPHERE CENTER -0.385029 0.20493 0.823149 RAD 0.00617284 - txt002 - SPHERE CENTER -0.396152 0.195233 0.803352 RAD 0.00617284 - txt002 - SPHERE CENTER -0.372331 0.201634 0.802231 RAD 0.00617284 - txt002 - SPHERE CENTER -0.414778 0.15994 0.766553 RAD 0.0185185 - txt002 - SPHERE CENTER -0.412573 0.147477 0.787754 RAD 0.00617284 - txt002 - SPHERE CENTER -0.39322 0.15977 0.77859 RAD 0.00617284 - txt002 - SPHERE CENTER -0.412448 0.172167 0.787878 RAD 0.00617284 - txt002 - SPHERE CENTER -0.434131 0.147647 0.775717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.434006 0.172338 0.775841 RAD 0.00617284 - txt002 - SPHERE CENTER -0.436336 0.16011 0.754517 RAD 0.00617284 - txt002 - SPHERE CENTER -0.414903 0.13525 0.766429 RAD 0.00617284 - txt002 - SPHERE CENTER -0.417108 0.147713 0.745229 RAD 0.00617284 - txt002 - SPHERE CENTER -0.39555 0.147543 0.757266 RAD 0.00617284 - txt002 - SPHERE CENTER -0.343046 0.178104 0.763155 RAD 0.0185185 - txt002 - SPHERE CENTER -0.319723 0.177083 0.771198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.325124 0.189464 0.750529 RAD 0.00617284 - txt002 - SPHERE CENTER -0.332294 0.198298 0.772443 RAD 0.00617284 - txt002 - SPHERE CENTER -0.337645 0.165722 0.783824 RAD 0.00617284 - txt002 - SPHERE CENTER -0.350216 0.186938 0.785069 RAD 0.00617284 - txt002 - SPHERE CENTER -0.360967 0.166743 0.775781 RAD 0.00617284 - txt002 - SPHERE CENTER -0.330475 0.156889 0.76191 RAD 0.00617284 - txt002 - SPHERE CENTER -0.353797 0.157909 0.753867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.335876 0.16927 0.741241 RAD 0.00617284 - txt002 - SPHERE CENTER -0.191247 0.166275 0.655442 RAD 0.0555556 - txt002 - SPHERE CENTER -0.130089 0.20793 0.652044 RAD 0.0185185 - txt002 - SPHERE CENTER -0.115471 0.221102 0.637128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.126388 0.200597 0.628759 RAD 0.00617284 - txt002 - SPHERE CENTER -0.13987 0.220766 0.633356 RAD 0.00617284 - txt002 - SPHERE CENTER -0.119172 0.228435 0.660413 RAD 0.00617284 - txt002 - SPHERE CENTER -0.143571 0.228099 0.656641 RAD 0.00617284 - txt002 - SPHERE CENTER -0.13379 0.215264 0.675329 RAD 0.00617284 - txt002 - SPHERE CENTER -0.10569 0.208266 0.655816 RAD 0.00617284 - txt002 - SPHERE CENTER -0.120308 0.195095 0.670732 RAD 0.00617284 - txt002 - SPHERE CENTER -0.116607 0.187762 0.647447 RAD 0.00617284 - txt002 - SPHERE CENTER -0.154295 0.172673 0.591563 RAD 0.0185185 - txt002 - SPHERE CENTER -0.15554 0.180792 0.568278 RAD 0.00617284 - txt002 - SPHERE CENTER -0.17557 0.171251 0.579113 RAD 0.00617284 - txt002 - SPHERE CENTER -0.166926 0.19323 0.586315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.134265 0.182215 0.580727 RAD 0.00617284 - txt002 - SPHERE CENTER -0.145651 0.194652 0.598764 RAD 0.00617284 - txt002 - SPHERE CENTER -0.133019 0.174096 0.604012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.142909 0.160236 0.573526 RAD 0.00617284 - txt002 - SPHERE CENTER -0.141663 0.152117 0.596811 RAD 0.00617284 - txt002 - SPHERE CENTER -0.162939 0.150694 0.584361 RAD 0.00617284 - txt002 - SPHERE CENTER -0.192135 0.230419 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER -0.18209 0.243049 0.599717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.168159 0.227721 0.613157 RAD 0.00617284 - txt002 - SPHERE CENTER -0.185251 0.218634 0.597829 RAD 0.00617284 - txt002 - SPHERE CENTER -0.206066 0.245747 0.604965 RAD 0.00617284 - txt002 - SPHERE CENTER -0.209227 0.221332 0.603077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.216111 0.233117 0.623653 RAD 0.00617284 - txt002 - SPHERE CENTER -0.188974 0.254834 0.620293 RAD 0.00617284 - txt002 - SPHERE CENTER -0.199019 0.242204 0.638981 RAD 0.00617284 - txt002 - SPHERE CENTER -0.175043 0.239506 0.633733 RAD 0.00617284 - txt002 - SPHERE CENTER -0.167041 0.201532 0.715923 RAD 0.0185185 - txt002 - SPHERE CENTER -0.151829 0.219088 0.724292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.14514 0.205084 0.705088 RAD 0.00617284 - txt002 - SPHERE CENTER -0.163068 0.221861 0.702483 RAD 0.00617284 - txt002 - SPHERE CENTER -0.173729 0.215537 0.735128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.184969 0.218309 0.713318 RAD 0.00617284 - txt002 - SPHERE CENTER -0.188942 0.197981 0.726759 RAD 0.00617284 - txt002 - SPHERE CENTER -0.155801 0.19876 0.737733 RAD 0.00617284 - txt002 - SPHERE CENTER -0.171014 0.181204 0.729364 RAD 0.00617284 - txt002 - SPHERE CENTER -0.149113 0.184756 0.718528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.229087 0.224021 0.682285 RAD 0.0185185 - txt002 - SPHERE CENTER -0.22829 0.248268 0.686881 RAD 0.00617284 - txt002 - SPHERE CENTER -0.207937 0.234532 0.689486 RAD 0.00617284 - txt002 - SPHERE CENTER -0.216949 0.2391 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER -0.249439 0.237756 0.67968 RAD 0.00617284 - txt002 - SPHERE CENTER -0.238098 0.228589 0.659755 RAD 0.00617284 - txt002 - SPHERE CENTER -0.250236 0.213509 0.675083 RAD 0.00617284 - txt002 - SPHERE CENTER -0.240428 0.233189 0.702209 RAD 0.00617284 - txt002 - SPHERE CENTER -0.241225 0.208942 0.697613 RAD 0.00617284 - txt002 - SPHERE CENTER -0.220075 0.219453 0.704814 RAD 0.00617284 - txt002 - SPHERE CENTER -0.228199 0.159877 0.719322 RAD 0.0185185 - txt002 - SPHERE CENTER -0.229756 0.167942 0.742607 RAD 0.00617284 - txt002 - SPHERE CENTER -0.207683 0.16569 0.731771 RAD 0.00617284 - txt002 - SPHERE CENTER -0.223214 0.183484 0.72457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.250271 0.162129 0.730157 RAD 0.00617284 - txt002 - SPHERE CENTER -0.243729 0.177671 0.71212 RAD 0.00617284 - txt002 - SPHERE CENTER -0.248714 0.154064 0.706872 RAD 0.00617284 - txt002 - SPHERE CENTER -0.234741 0.144336 0.737359 RAD 0.00617284 - txt002 - SPHERE CENTER -0.233184 0.13627 0.714074 RAD 0.00617284 - txt002 - SPHERE CENTER -0.212668 0.142084 0.726523 RAD 0.00617284 - txt002 - SPHERE CENTER -0.129201 0.143787 0.689081 RAD 0.0185185 - txt002 - SPHERE CENTER -0.105335 0.14887 0.692853 RAD 0.00617284 - txt002 - SPHERE CENTER -0.115741 0.153943 0.671044 RAD 0.00617284 - txt002 - SPHERE CENTER -0.121723 0.167242 0.690969 RAD 0.00617284 - txt002 - SPHERE CENTER -0.118795 0.138714 0.71089 RAD 0.00617284 - txt002 - SPHERE CENTER -0.135183 0.157086 0.709006 RAD 0.00617284 - txt002 - SPHERE CENTER -0.142661 0.13363 0.707118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.112813 0.125414 0.690965 RAD 0.00617284 - txt002 - SPHERE CENTER -0.136679 0.120331 0.687193 RAD 0.00617284 - txt002 - SPHERE CENTER -0.123219 0.130487 0.669156 RAD 0.00617284 - txt002 - SPHERE CENTER -0.190359 0.102131 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER -0.179968 0.0897843 0.711167 RAD 0.00617284 - txt002 - SPHERE CENTER -0.166467 0.105492 0.697727 RAD 0.00617284 - txt002 - SPHERE CENTER -0.183804 0.114103 0.713055 RAD 0.00617284 - txt002 - SPHERE CENTER -0.20386 0.0864233 0.705919 RAD 0.00617284 - txt002 - SPHERE CENTER -0.207696 0.110742 0.707807 RAD 0.00617284 - txt002 - SPHERE CENTER -0.214251 0.0987702 0.687231 RAD 0.00617284 - txt002 - SPHERE CENTER -0.186523 0.0778128 0.690591 RAD 0.00617284 - txt002 - SPHERE CENTER -0.196914 0.0901597 0.671903 RAD 0.00617284 - txt002 - SPHERE CENTER -0.173022 0.0935207 0.677151 RAD 0.00617284 - txt002 - SPHERE CENTER -0.153407 0.108529 0.6286 RAD 0.0185185 - txt002 - SPHERE CENTER -0.130858 0.0995811 0.624003 RAD 0.00617284 - txt002 - SPHERE CENTER -0.135326 0.123725 0.621398 RAD 0.00617284 - txt002 - SPHERE CENTER -0.134736 0.113639 0.643928 RAD 0.00617284 - txt002 - SPHERE CENTER -0.148938 0.0843858 0.631205 RAD 0.00617284 - txt002 - SPHERE CENTER -0.152816 0.0984435 0.65113 RAD 0.00617284 - txt002 - SPHERE CENTER -0.171487 0.0933338 0.635801 RAD 0.00617284 - txt002 - SPHERE CENTER -0.149528 0.0944715 0.608675 RAD 0.00617284 - txt002 - SPHERE CENTER -0.172078 0.10342 0.613272 RAD 0.00617284 - txt002 - SPHERE CENTER -0.153997 0.118615 0.60607 RAD 0.00617284 - txt002 - SPHERE CENTER -0.31427 0.31427 0.544331 RAD 0.0555556 - txt002 - SPHERE CENTER -0.277961 0.367156 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.269898 0.374298 0.485076 RAD 0.00617284 - txt002 - SPHERE CENTER -0.270045 0.350338 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER -0.291334 0.362218 0.487134 RAD 0.00617284 - txt002 - SPHERE CENTER -0.277815 0.391115 0.501329 RAD 0.00617284 - txt002 - SPHERE CENTER -0.299251 0.379036 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.285878 0.383973 0.523547 RAD 0.00617284 - txt002 - SPHERE CENTER -0.256525 0.379235 0.505236 RAD 0.00617284 - txt002 - SPHERE CENTER -0.264588 0.372093 0.527454 RAD 0.00617284 - txt002 - SPHERE CENTER -0.256671 0.355276 0.511201 RAD 0.00617284 - txt002 - SPHERE CENTER -0.252306 0.297666 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.235688 0.305995 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER -0.259438 0.312359 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.245915 0.321516 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.228556 0.291303 0.509559 RAD 0.00617284 - txt002 - SPHERE CENTER -0.238783 0.306824 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.245173 0.282974 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.242079 0.282145 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER -0.258696 0.273816 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.265828 0.288509 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.31427 0.31427 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER -0.32435 0.32435 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER -0.33812 0.32066 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.32066 0.33812 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.3005 0.317959 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER -0.29681 0.331729 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.29042 0.307879 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.317959 0.3005 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER -0.307879 0.29042 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.331729 0.29681 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.339925 0.383759 0.544331 RAD 0.0185185 - txt002 - SPHERE CENTER -0.334762 0.407156 0.538366 RAD 0.00617284 - txt002 - SPHERE CENTER -0.31686 0.392275 0.546597 RAD 0.00617284 - txt002 - SPHERE CENTER -0.326552 0.388696 0.524171 RAD 0.00617284 - txt002 - SPHERE CENTER -0.357827 0.39864 0.536101 RAD 0.00617284 - txt002 - SPHERE CENTER -0.349618 0.380181 0.521905 RAD 0.00617284 - txt002 - SPHERE CENTER -0.362991 0.375243 0.542066 RAD 0.00617284 - txt002 - SPHERE CENTER -0.348135 0.402218 0.558526 RAD 0.00617284 - txt002 - SPHERE CENTER -0.353299 0.378821 0.564491 RAD 0.00617284 - txt002 - SPHERE CENTER -0.330233 0.387337 0.566757 RAD 0.00617284 - txt002 - SPHERE CENTER -0.376234 0.330873 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.393346 0.348239 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.383366 0.345565 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.369843 0.354723 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.386213 0.333547 0.484868 RAD 0.00617284 - txt002 - SPHERE CENTER -0.362711 0.340031 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.369102 0.316181 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399736 0.324389 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.382624 0.307023 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.389757 0.321715 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.376234 0.330873 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.386461 0.346394 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER -0.362711 0.340031 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.369843 0.354723 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399983 0.337237 0.579103 RAD 0.00617284 - txt002 - SPHERE CENTER -0.383366 0.345565 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.389757 0.321715 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.392851 0.322544 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER -0.382624 0.307023 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.369102 0.316181 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.277961 0.367156 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.261966 0.385852 0.57931 RAD 0.00617284 - txt002 - SPHERE CENTER -0.259422 0.36581 0.565115 RAD 0.00617284 - txt002 - SPHERE CENTER -0.278159 0.38141 0.561208 RAD 0.00617284 - txt002 - SPHERE CENTER -0.280504 0.387198 0.595564 RAD 0.00617284 - txt002 - SPHERE CENTER -0.296698 0.382755 0.577461 RAD 0.00617284 - txt002 - SPHERE CENTER -0.2965 0.368501 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER -0.261768 0.371598 0.599471 RAD 0.00617284 - txt002 - SPHERE CENTER -0.277764 0.352901 0.601529 RAD 0.00617284 - txt002 - SPHERE CENTER -0.259225 0.351556 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER -0.31427 0.31427 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER -0.304189 0.32435 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER -0.29042 0.32066 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.307879 0.33812 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.328039 0.317959 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER -0.331729 0.331729 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.33812 0.307879 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.31058 0.3005 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER -0.32066 0.29042 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.29681 0.29681 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.252306 0.297666 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.228803 0.30415 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER -0.238783 0.306824 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.245915 0.321516 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.242326 0.294992 0.603794 RAD 0.00617284 - txt002 - SPHERE CENTER -0.259438 0.312359 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.265828 0.288509 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.235194 0.2803 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER -0.258696 0.273816 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.245173 0.282974 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.574159 0.153845 0.618405 RAD 0.0555556 - txt002 - SPHERE CENTER -0.612768 0.202534 0.658726 RAD 0.0185185 - txt002 - SPHERE CENTER -0.612732 0.225282 0.668328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.591695 0.212428 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER -0.60221 0.22113 0.64638 RAD 0.00617284 - txt002 - SPHERE CENTER -0.633805 0.215388 0.660098 RAD 0.00617284 - txt002 - SPHERE CENTER -0.623283 0.211236 0.63815 RAD 0.00617284 - txt002 - SPHERE CENTER -0.63384 0.192641 0.650495 RAD 0.00617284 - txt002 - SPHERE CENTER -0.62329 0.206686 0.680674 RAD 0.00617284 - txt002 - SPHERE CENTER -0.623325 0.183939 0.671072 RAD 0.00617284 - txt002 - SPHERE CENTER -0.602253 0.193832 0.679302 RAD 0.00617284 - txt002 - SPHERE CENTER -0.543919 0.184086 0.678886 RAD 0.0185185 - txt002 - SPHERE CENTER -0.527458 0.200547 0.687117 RAD 0.00617284 - txt002 - SPHERE CENTER -0.522843 0.187702 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER -0.540303 0.205161 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER -0.548533 0.196931 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER -0.561378 0.201546 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER -0.564994 0.18047 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER -0.531074 0.179472 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER -0.547535 0.163011 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER -0.526459 0.166627 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER -0.554987 0.225396 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER -0.542885 0.243024 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER -0.534333 0.219861 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER -0.554987 0.225396 0.593714 RAD 0.00617284 - txt002 - SPHERE CENTER -0.563539 0.248559 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.575642 0.23093 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER -0.575642 0.23093 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER -0.542885 0.243024 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER -0.554987 0.225396 0.643096 RAD 0.00617284 - txt002 - SPHERE CENTER -0.534333 0.219861 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER -0.643008 0.172294 0.598245 RAD 0.0185185 - txt002 - SPHERE CENTER -0.660425 0.189742 0.599616 RAD 0.00617284 - txt002 - SPHERE CENTER -0.645434 0.185725 0.618821 RAD 0.00617284 - txt002 - SPHERE CENTER -0.636618 0.196144 0.598245 RAD 0.00617284 - txt002 - SPHERE CENTER -0.657999 0.17631 0.57904 RAD 0.00617284 - txt002 - SPHERE CENTER -0.634191 0.182712 0.577669 RAD 0.00617284 - txt002 - SPHERE CENTER -0.640582 0.158862 0.577669 RAD 0.00617284 - txt002 - SPHERE CENTER -0.666816 0.165892 0.599616 RAD 0.00617284 - txt002 - SPHERE CENTER -0.649399 0.148444 0.598245 RAD 0.00617284 - txt002 - SPHERE CENTER -0.651825 0.161875 0.618821 RAD 0.00617284 - txt002 - SPHERE CENTER -0.585228 0.195155 0.557924 RAD 0.0185185 - txt002 - SPHERE CENTER -0.574809 0.203972 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER -0.561378 0.201546 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER -0.568784 0.181486 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER -0.598659 0.197581 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER -0.592634 0.175095 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER -0.609078 0.188764 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER -0.591253 0.217641 0.549693 RAD 0.00617284 - txt002 - SPHERE CENTER -0.601672 0.208824 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER -0.577822 0.215215 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER -0.6044 0.123605 0.557924 RAD 0.0185185 - txt002 - SPHERE CENTER -0.620861 0.107144 0.549693 RAD 0.00617284 - txt002 - SPHERE CENTER -0.608016 0.102529 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER -0.625475 0.119989 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER -0.617245 0.128219 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER -0.621859 0.141064 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER -0.600784 0.14468 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER -0.599785 0.11076 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER -0.583324 0.127221 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER -0.58694 0.106145 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER -0.631939 0.130984 0.658726 RAD 0.0185185 - txt002 - SPHERE CENTER -0.643128 0.132649 0.680674 RAD 0.00617284 - txt002 - SPHERE CENTER -0.618482 0.133263 0.679302 RAD 0.00617284 - txt002 - SPHERE CENTER -0.631785 0.152367 0.671072 RAD 0.00617284 - txt002 - SPHERE CENTER -0.656585 0.130371 0.660098 RAD 0.00617284 - txt002 - SPHERE CENTER -0.645242 0.150088 0.650495 RAD 0.00617284 - txt002 - SPHERE CENTER -0.645397 0.128706 0.63815 RAD 0.00617284 - txt002 - SPHERE CENTER -0.643283 0.111266 0.668328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.632094 0.109601 0.64638 RAD 0.00617284 - txt002 - SPHERE CENTER -0.618637 0.11188 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER -0.593331 0.0822954 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER -0.591664 0.0609772 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER -0.572676 0.076761 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER -0.593331 0.0822954 0.643096 RAD 0.00617284 - txt002 - SPHERE CENTER -0.612319 0.0665116 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.613986 0.0878298 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER -0.613986 0.0878298 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER -0.591664 0.0609772 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER -0.593331 0.0822954 0.593714 RAD 0.00617284 - txt002 - SPHERE CENTER -0.572676 0.076761 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER -0.56309 0.112536 0.678886 RAD 0.0185185 - txt002 - SPHERE CENTER -0.549659 0.11011 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER -0.53924 0.118927 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555684 0.132596 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER -0.573509 0.103719 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER -0.579534 0.126205 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER -0.58694 0.106145 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER -0.557065 0.09005 0.687117 RAD 0.00617284 - txt002 - SPHERE CENTER -0.570497 0.0924762 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER -0.546646 0.0988668 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER -0.494808 0.247614 0.43322 RAD 0.0555556 - txt002 - SPHERE CENTER -0.494287 0.313607 0.399581 RAD 0.0185185 - txt002 - SPHERE CENTER -0.484182 0.326876 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER -0.470513 0.310432 0.39372 RAD 0.00617284 - txt002 - SPHERE CENTER -0.488171 0.302705 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER -0.507957 0.330051 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.511946 0.305881 0.384149 RAD 0.00617284 - txt002 - SPHERE CENTER -0.518062 0.316783 0.405442 RAD 0.00617284 - txt002 - SPHERE CENTER -0.490299 0.337778 0.402668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.500404 0.324509 0.420874 RAD 0.00617284 - txt002 - SPHERE CENTER -0.476629 0.321334 0.415013 RAD 0.00617284 - txt002 - SPHERE CENTER -0.452978 0.302539 0.460062 RAD 0.0185185 - txt002 - SPHERE CENTER -0.436971 0.320401 0.454201 RAD 0.00617284 - txt002 - SPHERE CENTER -0.436675 0.29902 0.441856 RAD 0.00617284 - txt002 - SPHERE CENTER -0.455413 0.3148 0.438769 RAD 0.00617284 - txt002 - SPHERE CENTER -0.453274 0.32392 0.472408 RAD 0.00617284 - txt002 - SPHERE CENTER -0.471717 0.318318 0.456976 RAD 0.00617284 - txt002 - SPHERE CENTER -0.469281 0.306057 0.478269 RAD 0.00617284 - txt002 - SPHERE CENTER -0.434535 0.30814 0.475494 RAD 0.00617284 - txt002 - SPHERE CENTER -0.450543 0.290278 0.481355 RAD 0.00617284 - txt002 - SPHERE CENTER -0.434239 0.286759 0.463149 RAD 0.00617284 - txt002 - SPHERE CENTER -0.434629 0.269833 0.396183 RAD 0.0185185 - txt002 - SPHERE CENTER -0.426389 0.279233 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER -0.445377 0.263449 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER -0.448298 0.286276 0.383837 RAD 0.00617284 - txt002 - SPHERE CENTER -0.415641 0.285616 0.396183 RAD 0.00617284 - txt002 - SPHERE CENTER -0.43755 0.29266 0.40513 RAD 0.00617284 - txt002 - SPHERE CENTER -0.42388 0.276216 0.417476 RAD 0.00617284 - txt002 - SPHERE CENTER -0.41272 0.262789 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.420959 0.253389 0.408529 RAD 0.00617284 - txt002 - SPHERE CENTER -0.431707 0.247006 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.536117 0.258683 0.372739 RAD 0.0185185 - txt002 - SPHERE CENTER -0.549787 0.275127 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER -0.549787 0.275127 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER -0.529727 0.282533 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER -0.536117 0.258683 0.348047 RAD 0.00617284 - txt002 - SPHERE CENTER -0.516058 0.266089 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER -0.522448 0.242239 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER -0.556177 0.251277 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER -0.542508 0.234833 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER -0.556177 0.251277 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER -0.476459 0.214908 0.369341 RAD 0.0185185 - txt002 - SPHERE CENTER -0.457868 0.209819 0.353908 RAD 0.00617284 - txt002 - SPHERE CENTER -0.458164 0.2312 0.366254 RAD 0.00617284 - txt002 - SPHERE CENTER -0.453963 0.210053 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER -0.476163 0.193527 0.356995 RAD 0.00617284 - txt002 - SPHERE CENTER -0.472258 0.193761 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER -0.494753 0.198616 0.372427 RAD 0.00617284 - txt002 - SPHERE CENTER -0.480363 0.214674 0.344961 RAD 0.00617284 - txt002 - SPHERE CENTER -0.498954 0.219763 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER -0.480659 0.236055 0.357307 RAD 0.00617284 - txt002 - SPHERE CENTER -0.536638 0.19269 0.406378 RAD 0.0185185 - txt002 - SPHERE CENTER -0.549603 0.17251 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER -0.528912 0.177908 0.424584 RAD 0.00617284 - txt002 - SPHERE CENTER -0.549105 0.191778 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER -0.557329 0.187292 0.394032 RAD 0.00617284 - txt002 - SPHERE CENTER -0.556831 0.20656 0.409464 RAD 0.00617284 - txt002 - SPHERE CENTER -0.544363 0.207471 0.388171 RAD 0.00617284 - txt002 - SPHERE CENTER -0.537136 0.173421 0.390945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.524171 0.193601 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER -0.516445 0.178819 0.403291 RAD 0.00617284 - txt002 - SPHERE CENTER -0.554467 0.291389 0.436618 RAD 0.0185185 - txt002 - SPHERE CENTER -0.562288 0.314604 0.439705 RAD 0.00617284 - txt002 - SPHERE CENTER -0.542501 0.306499 0.45205 RAD 0.00617284 - txt002 - SPHERE CENTER -0.541186 0.310183 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER -0.574255 0.299494 0.424272 RAD 0.00617284 - txt002 - SPHERE CENTER -0.553152 0.295073 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER -0.566433 0.276279 0.421186 RAD 0.00617284 - txt002 - SPHERE CENTER -0.575569 0.29581 0.448652 RAD 0.00617284 - txt002 - SPHERE CENTER -0.567748 0.272595 0.445566 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555781 0.287705 0.460998 RAD 0.00617284 - txt002 - SPHERE CENTER -0.554987 0.225396 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER -0.567359 0.227186 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER -0.54267 0.227528 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555283 0.246777 0.482603 RAD 0.00617284 - txt002 - SPHERE CENTER -0.579676 0.225054 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.567601 0.244644 0.46131 RAD 0.00617284 - txt002 - SPHERE CENTER -0.567305 0.223263 0.448964 RAD 0.00617284 - txt002 - SPHERE CENTER -0.567063 0.205805 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER -0.554691 0.204014 0.457911 RAD 0.00617284 - txt002 - SPHERE CENTER -0.542374 0.206147 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER -0.513157 0.28032 0.497099 RAD 0.0185185 - txt002 - SPHERE CENTER -0.507811 0.298839 0.512531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.489718 0.287442 0.500186 RAD 0.00617284 - txt002 - SPHERE CENTER -0.505577 0.302049 0.488152 RAD 0.00617284 - txt002 - SPHERE CENTER -0.531251 0.291716 0.509445 RAD 0.00617284 - txt002 - SPHERE CENTER -0.529016 0.294927 0.485065 RAD 0.00617284 - txt002 - SPHERE CENTER -0.536597 0.273198 0.494013 RAD 0.00617284 - txt002 - SPHERE CENTER -0.515392 0.27711 0.521479 RAD 0.00617284 - txt002 - SPHERE CENTER -0.520738 0.258591 0.506047 RAD 0.00617284 - txt002 - SPHERE CENTER -0.497299 0.265714 0.509133 RAD 0.00617284 - txt002 - SPHERE CENTER -0.552323 0.0329639 0.43322 RAD 0.0555556 - txt002 - SPHERE CENTER -0.625877 0.0248832 0.436618 RAD 0.0185185 - txt002 - SPHERE CENTER -0.646362 0.0316054 0.448652 RAD 0.00617284 - txt002 - SPHERE CENTER -0.625173 0.0287309 0.460998 RAD 0.00617284 - txt002 - SPHERE CENTER -0.627981 0.0478 0.445566 RAD 0.00617284 - txt002 - SPHERE CENTER -0.647066 0.0277577 0.424272 RAD 0.00617284 - txt002 - SPHERE CENTER -0.628685 0.0439523 0.421186 RAD 0.00617284 - txt002 - SPHERE CENTER -0.62658 0.0210355 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER -0.644258 0.00868865 0.439705 RAD 0.00617284 - txt002 - SPHERE CENTER -0.623773 0.00196644 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER -0.623069 0.00581415 0.45205 RAD 0.00617284 - txt002 - SPHERE CENTER -0.584567 0.0138144 0.497099 RAD 0.0185185 - txt002 - SPHERE CENTER -0.584898 0.0177119 0.521479 RAD 0.00617284 - txt002 - SPHERE CENTER -0.56353 0.0185345 0.509133 RAD 0.00617284 - txt002 - SPHERE CENTER -0.580268 0.0364224 0.506047 RAD 0.00617284 - txt002 - SPHERE CENTER -0.605935 0.0129918 0.509445 RAD 0.00617284 - txt002 - SPHERE CENTER -0.601305 0.0317022 0.494013 RAD 0.00617284 - txt002 - SPHERE CENTER -0.605605 0.00909422 0.485065 RAD 0.00617284 - txt002 - SPHERE CENTER -0.589197 -0.00489609 0.512531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.588867 -0.00879364 0.488152 RAD 0.00617284 - txt002 - SPHERE CENTER -0.567829 -0.00407348 0.500186 RAD 0.00617284 - txt002 - SPHERE CENTER -0.593331 0.0822954 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER -0.593994 0.105299 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER -0.572783 0.0926585 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER -0.582384 0.100664 0.457911 RAD 0.00617284 - txt002 - SPHERE CENTER -0.614541 0.0949359 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.602932 0.090301 0.448964 RAD 0.00617284 - txt002 - SPHERE CENTER -0.613879 0.0719323 0.46131 RAD 0.00617284 - txt002 - SPHERE CENTER -0.604941 0.0869303 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER -0.604278 0.0639267 0.482603 RAD 0.00617284 - txt002 - SPHERE CENTER -0.58373 0.0742898 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER -0.593633 0.0440327 0.372739 RAD 0.0185185 - txt002 - SPHERE CENTER -0.607302 0.0604766 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER -0.607302 0.0604766 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER -0.587242 0.0678827 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER -0.593633 0.0440327 0.348047 RAD 0.00617284 - txt002 - SPHERE CENTER -0.573573 0.0514389 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER -0.579964 0.0275889 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER -0.613693 0.0366265 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER -0.600023 0.0201827 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER -0.613693 0.0366265 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER -0.561087 0.101445 0.406378 RAD 0.0185185 - txt002 - SPHERE CENTER -0.551884 0.118381 0.390945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.536664 0.103361 0.403291 RAD 0.00617284 - txt002 - SPHERE CENTER -0.550745 0.0944221 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER -0.576307 0.116465 0.394032 RAD 0.00617284 - txt002 - SPHERE CENTER -0.575168 0.0925065 0.388171 RAD 0.00617284 - txt002 - SPHERE CENTER -0.58551 0.0995293 0.409464 RAD 0.00617284 - txt002 - SPHERE CENTER -0.562225 0.125404 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER -0.571428 0.108468 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER -0.547006 0.110383 0.424584 RAD 0.00617284 - txt002 - SPHERE CENTER -0.520079 0.0521134 0.369341 RAD 0.0185185 - txt002 - SPHERE CENTER -0.523344 0.0542684 0.344961 RAD 0.00617284 - txt002 - SPHERE CENTER -0.534291 0.0358996 0.357307 RAD 0.00617284 - txt002 - SPHERE CENTER -0.541988 0.0591566 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER -0.509132 0.0704822 0.356995 RAD 0.00617284 - txt002 - SPHERE CENTER -0.527777 0.0753703 0.372427 RAD 0.00617284 - txt002 - SPHERE CENTER -0.505868 0.0683272 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER -0.501435 0.0472252 0.353908 RAD 0.00617284 - txt002 - SPHERE CENTER -0.49817 0.0450702 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER -0.512382 0.0288565 0.366254 RAD 0.00617284 - txt002 - SPHERE CENTER -0.584869 -0.0244483 0.399581 RAD 0.0185185 - txt002 - SPHERE CENTER -0.5935 -0.0473753 0.402668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.57344 -0.0399691 0.415013 RAD 0.00617284 - txt002 - SPHERE CENTER -0.595617 -0.0308315 0.420874 RAD 0.00617284 - txt002 - SPHERE CENTER -0.604929 -0.0318545 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.607046 -0.0153107 0.405442 RAD 0.00617284 - txt002 - SPHERE CENTER -0.596298 -0.00892756 0.384149 RAD 0.00617284 - txt002 - SPHERE CENTER -0.582752 -0.0409921 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER -0.574121 -0.0180651 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER -0.562692 -0.0335859 0.39372 RAD 0.00617284 - txt002 - SPHERE CENTER -0.511316 -0.0163676 0.396183 RAD 0.0185185 - txt002 - SPHERE CENTER -0.48882 -0.0212225 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.497372 0.00194055 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.491256 -0.00896145 0.408529 RAD 0.00617284 - txt002 - SPHERE CENTER -0.502764 -0.0395307 0.396183 RAD 0.00617284 - txt002 - SPHERE CENTER -0.505199 -0.0272696 0.417476 RAD 0.00617284 - txt002 - SPHERE CENTER -0.525259 -0.0346758 0.40513 RAD 0.00617284 - txt002 - SPHERE CENTER -0.50888 -0.0286287 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER -0.531375 -0.0237738 0.383837 RAD 0.00617284 - txt002 - SPHERE CENTER -0.517432 -0.00546563 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER -0.54356 -0.0355172 0.460062 RAD 0.0185185 - txt002 - SPHERE CENTER -0.530389 -0.0495897 0.475494 RAD 0.00617284 - txt002 - SPHERE CENTER -0.519442 -0.031221 0.463149 RAD 0.00617284 - txt002 - SPHERE CENTER -0.53532 -0.0261165 0.481355 RAD 0.00617284 - txt002 - SPHERE CENTER -0.554507 -0.0538859 0.472408 RAD 0.00617284 - txt002 - SPHERE CENTER -0.559438 -0.0304127 0.478269 RAD 0.00617284 - txt002 - SPHERE CENTER -0.567678 -0.0398133 0.456976 RAD 0.00617284 - txt002 - SPHERE CENTER -0.538628 -0.0589904 0.454201 RAD 0.00617284 - txt002 - SPHERE CENTER -0.551799 -0.0449178 0.438769 RAD 0.00617284 - txt002 - SPHERE CENTER -0.527681 -0.0406217 0.441856 RAD 0.00617284 - txt002 - SPHERE CENTER -0.451136 0.0058509 0.729516 RAD 0.0555556 - txt002 - SPHERE CENTER -0.447081 0.0051487 0.803476 RAD 0.0185185 - txt002 - SPHERE CENTER -0.435909 0.01504 0.823149 RAD 0.00617284 - txt002 - SPHERE CENTER -0.423265 0.0115452 0.802231 RAD 0.00617284 - txt002 - SPHERE CENTER -0.440694 0.0289993 0.803352 RAD 0.00617284 - txt002 - SPHERE CENTER -0.459725 0.00864346 0.824394 RAD 0.00617284 - txt002 - SPHERE CENTER -0.46451 0.0226028 0.804597 RAD 0.00617284 - txt002 - SPHERE CENTER -0.470897 -0.0012478 0.804721 RAD 0.00617284 - txt002 - SPHERE CENTER -0.442297 -0.00881065 0.823273 RAD 0.00617284 - txt002 - SPHERE CENTER -0.453468 -0.0187019 0.8036 RAD 0.00617284 - txt002 - SPHERE CENTER -0.429652 -0.0123054 0.802355 RAD 0.00617284 - txt002 - SPHERE CENTER -0.386138 0.0172804 0.763155 RAD 0.0185185 - txt002 - SPHERE CENTER -0.364644 0.0293677 0.76191 RAD 0.00617284 - txt002 - SPHERE CENTER -0.375512 0.0213457 0.741241 RAD 0.00617284 - txt002 - SPHERE CENTER -0.385352 0.0401449 0.753867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.37527 0.0253024 0.783824 RAD 0.00617284 - txt002 - SPHERE CENTER -0.395978 0.0360796 0.775781 RAD 0.00617284 - txt002 - SPHERE CENTER -0.396764 0.0132151 0.785069 RAD 0.00617284 - txt002 - SPHERE CENTER -0.36543 0.0065032 0.771198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.386924 -0.00558411 0.772443 RAD 0.00617284 - txt002 - SPHERE CENTER -0.376298 -0.00151881 0.750529 RAD 0.00617284 - txt002 - SPHERE CENTER -0.439178 0.0688765 0.766553 RAD 0.0185185 - txt002 - SPHERE CENTER -0.426942 0.0903221 0.766429 RAD 0.00617284 - txt002 - SPHERE CENTER -0.416328 0.0699989 0.757266 RAD 0.00617284 - txt002 - SPHERE CENTER -0.435083 0.0806307 0.745229 RAD 0.00617284 - txt002 - SPHERE CENTER -0.449792 0.0891998 0.775717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.457933 0.0795084 0.754517 RAD 0.00617284 - txt002 - SPHERE CENTER -0.462029 0.0677542 0.775841 RAD 0.00617284 - txt002 - SPHERE CENTER -0.431037 0.078568 0.787754 RAD 0.00617284 - txt002 - SPHERE CENTER -0.443274 0.0571224 0.787878 RAD 0.00617284 - txt002 - SPHERE CENTER -0.420423 0.0582447 0.77859 RAD 0.00617284 - txt002 - SPHERE CENTER -0.512079 -0.00628079 0.769837 RAD 0.0185185 - txt002 - SPHERE CENTER -0.523883 -0.000557006 0.790755 RAD 0.00617284 - txt002 - SPHERE CENTER -0.49924 -0.00208214 0.790506 RAD 0.00617284 - txt002 - SPHERE CENTER -0.51057 0.0165974 0.779001 RAD 0.00617284 - txt002 - SPHERE CENTER -0.536722 -0.00475566 0.770086 RAD 0.00617284 - txt002 - SPHERE CENTER -0.523409 0.0123987 0.758332 RAD 0.00617284 - txt002 - SPHERE CENTER -0.524918 -0.0104794 0.749168 RAD 0.00617284 - txt002 - SPHERE CENTER -0.525392 -0.0234352 0.781591 RAD 0.00617284 - txt002 - SPHERE CENTER -0.513588 -0.029159 0.760673 RAD 0.00617284 - txt002 - SPHERE CENTER -0.500749 -0.0249603 0.781342 RAD 0.00617284 - txt002 - SPHERE CENTER -0.504176 0.0574471 0.732914 RAD 0.0185185 - txt002 - SPHERE CENTER -0.508666 0.0817008 0.734036 RAD 0.00617284 - txt002 - SPHERE CENTER -0.488971 0.0722467 0.745541 RAD 0.00617284 - txt002 - SPHERE CENTER -0.489545 0.0732807 0.720878 RAD 0.00617284 - txt002 - SPHERE CENTER -0.523872 0.0669012 0.72141 RAD 0.00617284 - txt002 - SPHERE CENTER -0.504751 0.058481 0.708251 RAD 0.00617284 - txt002 - SPHERE CENTER -0.519382 0.0426474 0.720288 RAD 0.00617284 - txt002 - SPHERE CENTER -0.523298 0.0658672 0.746073 RAD 0.00617284 - txt002 - SPHERE CENTER -0.518808 0.0416134 0.744951 RAD 0.00617284 - txt002 - SPHERE CENTER -0.503602 0.0564131 0.757577 RAD 0.00617284 - txt002 - SPHERE CENTER -0.516134 -0.00557859 0.695877 RAD 0.0185185 - txt002 - SPHERE CENTER -0.540463 -0.00154892 0.697123 RAD 0.00617284 - txt002 - SPHERE CENTER -0.52751 -0.00538221 0.717791 RAD 0.00617284 - txt002 - SPHERE CENTER -0.524673 0.0156462 0.705165 RAD 0.00617284 - txt002 - SPHERE CENTER -0.529087 -0.00174531 0.675209 RAD 0.00617284 - txt002 - SPHERE CENTER -0.513298 0.0154498 0.683251 RAD 0.00617284 - txt002 - SPHERE CENTER -0.504759 -0.00577498 0.673964 RAD 0.00617284 - txt002 - SPHERE CENTER -0.531924 -0.0227737 0.687835 RAD 0.00617284 - txt002 - SPHERE CENTER -0.507596 -0.0268034 0.68659 RAD 0.00617284 - txt002 - SPHERE CENTER -0.518971 -0.026607 0.708504 RAD 0.00617284 - txt002 - SPHERE CENTER -0.459039 -0.0578769 0.766439 RAD 0.0185185 - txt002 - SPHERE CENTER -0.451803 -0.0707378 0.786236 RAD 0.00617284 - txt002 - SPHERE CENTER -0.435761 -0.0561039 0.774481 RAD 0.00617284 - txt002 - SPHERE CENTER -0.454158 -0.0461991 0.787639 RAD 0.00617284 - txt002 - SPHERE CENTER -0.475081 -0.0725109 0.778193 RAD 0.00617284 - txt002 - SPHERE CENTER -0.477435 -0.0479721 0.779597 RAD 0.00617284 - txt002 - SPHERE CENTER -0.482316 -0.05965 0.758396 RAD 0.00617284 - txt002 - SPHERE CENTER -0.456685 -0.0824157 0.765035 RAD 0.00617284 - txt002 - SPHERE CENTER -0.46392 -0.0695548 0.745238 RAD 0.00617284 - txt002 - SPHERE CENTER -0.440643 -0.0677817 0.753281 RAD 0.00617284 - txt002 - SPHERE CENTER -0.463094 -0.0571747 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER -0.459563 -0.081612 0.692603 RAD 0.00617284 - txt002 - SPHERE CENTER -0.442243 -0.0665888 0.701767 RAD 0.00617284 - txt002 - SPHERE CENTER -0.463589 -0.0696122 0.713804 RAD 0.00617284 - txt002 - SPHERE CENTER -0.480415 -0.0721979 0.683315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.48444 -0.0601982 0.704516 RAD 0.00617284 - txt002 - SPHERE CENTER -0.483946 -0.0477607 0.683192 RAD 0.00617284 - txt002 - SPHERE CENTER -0.459069 -0.0691745 0.671279 RAD 0.00617284 - txt002 - SPHERE CENTER -0.4626 -0.0447373 0.671155 RAD 0.00617284 - txt002 - SPHERE CENTER -0.441749 -0.0541513 0.680442 RAD 0.00617284 - txt002 - SPHERE CENTER -0.398096 -0.0457452 0.726118 RAD 0.0185185 - txt002 - SPHERE CENTER -0.373728 -0.0495643 0.724997 RAD 0.00617284 - txt002 - SPHERE CENTER -0.383722 -0.030137 0.713492 RAD 0.00617284 - txt002 - SPHERE CENTER -0.382672 -0.0306825 0.738155 RAD 0.00617284 - txt002 - SPHERE CENTER -0.388102 -0.0651725 0.737623 RAD 0.00617284 - txt002 - SPHERE CENTER -0.397047 -0.0462908 0.750781 RAD 0.00617284 - txt002 - SPHERE CENTER -0.41247 -0.0613535 0.738744 RAD 0.00617284 - txt002 - SPHERE CENTER -0.389151 -0.064627 0.71296 RAD 0.00617284 - txt002 - SPHERE CENTER -0.41352 -0.060808 0.714081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399146 -0.0451997 0.701455 RAD 0.00617284 - txt002 - SPHERE CENTER -0.4293 -0.115031 0.544331 RAD 0.0555556 - txt002 - SPHERE CENTER -0.424299 -0.178985 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.412497 -0.190929 0.599471 RAD 0.00617284 - txt002 - SPHERE CENTER -0.400273 -0.174844 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER -0.417001 -0.16674 0.601529 RAD 0.00617284 - txt002 - SPHERE CENTER -0.436523 -0.195071 0.595564 RAD 0.00617284 - txt002 - SPHERE CENTER -0.441027 -0.170881 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER -0.448325 -0.183127 0.577461 RAD 0.00617284 - txt002 - SPHERE CENTER -0.419795 -0.203175 0.57931 RAD 0.00617284 - txt002 - SPHERE CENTER -0.431597 -0.191231 0.561208 RAD 0.00617284 - txt002 - SPHERE CENTER -0.407571 -0.18709 0.565115 RAD 0.00617284 - txt002 - SPHERE CENTER -0.367336 -0.131634 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.343834 -0.12515 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER -0.353814 -0.122476 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.360946 -0.107784 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.357357 -0.134308 0.603794 RAD 0.00617284 - txt002 - SPHERE CENTER -0.374468 -0.116942 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.380859 -0.140792 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.350225 -0.149 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER -0.373727 -0.155484 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.360204 -0.146326 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.4293 -0.115031 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER -0.41922 -0.10495 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER -0.40545 -0.10864 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.42291 -0.0911807 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.44307 -0.111341 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER -0.44676 -0.0975713 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.45315 -0.121421 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.425611 -0.128801 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER -0.435691 -0.138881 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.411841 -0.13249 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.486264 -0.162382 0.544331 RAD 0.0185185 - txt002 - SPHERE CENTER -0.502603 -0.174264 0.558526 RAD 0.00617284 - txt002 - SPHERE CENTER -0.479659 -0.170327 0.566757 RAD 0.00617284 - txt002 - SPHERE CENTER -0.495376 -0.15142 0.564491 RAD 0.00617284 - txt002 - SPHERE CENTER -0.509207 -0.166319 0.536101 RAD 0.00617284 - txt002 - SPHERE CENTER -0.501981 -0.143475 0.542066 RAD 0.00617284 - txt002 - SPHERE CENTER -0.492868 -0.154437 0.521905 RAD 0.00617284 - txt002 - SPHERE CENTER -0.49349 -0.185226 0.538366 RAD 0.00617284 - txt002 - SPHERE CENTER -0.477151 -0.173345 0.524171 RAD 0.00617284 - txt002 - SPHERE CENTER -0.470546 -0.18129 0.546597 RAD 0.00617284 - txt002 - SPHERE CENTER -0.491265 -0.0984274 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.501491 -0.082906 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER -0.477742 -0.0892696 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.484874 -0.0745774 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.515014 -0.0920638 0.579103 RAD 0.00617284 - txt002 - SPHERE CENTER -0.498397 -0.0837352 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.504787 -0.107585 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.507882 -0.106756 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER -0.497655 -0.122277 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.484132 -0.11312 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.491265 -0.0984274 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.508376 -0.0810612 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.498397 -0.0837352 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.484874 -0.0745774 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.501244 -0.0957534 0.484868 RAD 0.00617284 - txt002 - SPHERE CENTER -0.477742 -0.0892696 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.484132 -0.11312 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.514767 -0.104911 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.497655 -0.122277 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.504787 -0.107585 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.424299 -0.178985 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.411775 -0.200165 0.505236 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399922 -0.179342 0.511201 RAD 0.00617284 - txt002 - SPHERE CENTER -0.415187 -0.189948 0.527454 RAD 0.00617284 - txt002 - SPHERE CENTER -0.436152 -0.199808 0.501329 RAD 0.00617284 - txt002 - SPHERE CENTER -0.439564 -0.189591 0.523547 RAD 0.00617284 - txt002 - SPHERE CENTER -0.448677 -0.178629 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.420888 -0.189202 0.485076 RAD 0.00617284 - txt002 - SPHERE CENTER -0.433412 -0.168023 0.487134 RAD 0.00617284 - txt002 - SPHERE CENTER -0.409035 -0.168379 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER -0.4293 -0.115031 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER -0.439381 -0.10495 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER -0.45315 -0.10864 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.435691 -0.0911807 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.415531 -0.111341 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER -0.411841 -0.0975713 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.40545 -0.121421 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.43299 -0.128801 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER -0.42291 -0.138881 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.44676 -0.13249 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.367336 -0.131634 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.350719 -0.123305 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER -0.374468 -0.116942 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.360946 -0.107784 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.343587 -0.137998 0.509559 RAD 0.00617284 - txt002 - SPHERE CENTER -0.353814 -0.122476 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.360204 -0.146326 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.357109 -0.147155 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER -0.373727 -0.155484 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.380859 -0.140792 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.248762 -0.0483751 0.655442 RAD 0.0555556 - txt002 - SPHERE CENTER -0.183785 -0.0599222 0.689081 RAD 0.0185185 - txt002 - SPHERE CENTER -0.160406 -0.0522053 0.690965 RAD 0.00617284 - txt002 - SPHERE CENTER -0.171954 -0.0513956 0.669156 RAD 0.00617284 - txt002 - SPHERE CENTER -0.178533 -0.0358698 0.687193 RAD 0.00617284 - txt002 - SPHERE CENTER -0.172236 -0.0607319 0.71089 RAD 0.00617284 - txt002 - SPHERE CENTER -0.190363 -0.0443964 0.707118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.195615 -0.0684488 0.709006 RAD 0.00617284 - txt002 - SPHERE CENTER -0.165658 -0.0762577 0.692853 RAD 0.00617284 - txt002 - SPHERE CENTER -0.189036 -0.0839747 0.690969 RAD 0.00617284 - txt002 - SPHERE CENTER -0.177206 -0.075448 0.671044 RAD 0.00617284 - txt002 - SPHERE CENTER -0.187119 -0.0172857 0.6286 RAD 0.0185185 - txt002 - SPHERE CENTER -0.176731 -0.00705049 0.608675 RAD 0.00617284 - txt002 - SPHERE CENTER -0.192673 -0.025725 0.60607 RAD 0.00617284 - txt002 - SPHERE CENTER -0.200733 -0.00352517 0.613272 RAD 0.00617284 - txt002 - SPHERE CENTER -0.171177 0.00138875 0.631205 RAD 0.00617284 - txt002 - SPHERE CENTER -0.195179 0.00491406 0.635801 RAD 0.00617284 - txt002 - SPHERE CENTER -0.181564 -0.00884647 0.65113 RAD 0.00617284 - txt002 - SPHERE CENTER -0.163117 -0.020811 0.624003 RAD 0.00617284 - txt002 - SPHERE CENTER -0.173504 -0.0310463 0.643928 RAD 0.00617284 - txt002 - SPHERE CENTER -0.179058 -0.0394855 0.621398 RAD 0.00617284 - txt002 - SPHERE CENTER -0.215921 0.00673113 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER -0.20044 0.0258737 0.690591 RAD 0.00617284 - txt002 - SPHERE CENTER -0.196602 0.00551963 0.677151 RAD 0.00617284 - txt002 - SPHERE CENTER -0.215612 0.0203763 0.671903 RAD 0.00617284 - txt002 - SPHERE CENTER -0.21976 0.0270852 0.705919 RAD 0.00617284 - txt002 - SPHERE CENTER -0.234932 0.0215878 0.687231 RAD 0.00617284 - txt002 - SPHERE CENTER -0.235241 0.00794264 0.707807 RAD 0.00617284 - txt002 - SPHERE CENTER -0.200749 0.0122285 0.711167 RAD 0.00617284 - txt002 - SPHERE CENTER -0.21623 -0.00691403 0.713055 RAD 0.00617284 - txt002 - SPHERE CENTER -0.196911 -0.00812553 0.697727 RAD 0.00617284 - txt002 - SPHERE CENTER -0.245428 -0.0910116 0.715923 RAD 0.0185185 - txt002 - SPHERE CENTER -0.234308 -0.0942304 0.737733 RAD 0.00617284 - txt002 - SPHERE CENTER -0.221514 -0.0854464 0.718528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.238704 -0.0714204 0.729364 RAD 0.00617284 - txt002 - SPHERE CENTER -0.258223 -0.0997955 0.735128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.262619 -0.0769856 0.726759 RAD 0.00617284 - txt002 - SPHERE CENTER -0.269343 -0.0965768 0.713318 RAD 0.00617284 - txt002 - SPHERE CENTER -0.241032 -0.113822 0.724292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.252152 -0.110603 0.702483 RAD 0.00617284 - txt002 - SPHERE CENTER -0.228237 -0.105038 0.705088 RAD 0.00617284 - txt002 - SPHERE CENTER -0.277564 -0.0243582 0.719322 RAD 0.0185185 - txt002 - SPHERE CENTER -0.275459 -0.0076281 0.737359 RAD 0.00617284 - txt002 - SPHERE CENTER -0.255218 -0.0167139 0.726523 RAD 0.00617284 - txt002 - SPHERE CENTER -0.270078 -0.00142185 0.714074 RAD 0.00617284 - txt002 - SPHERE CENTER -0.297806 -0.0152725 0.730157 RAD 0.00617284 - txt002 - SPHERE CENTER -0.292425 -0.00906621 0.706872 RAD 0.00617284 - txt002 - SPHERE CENTER -0.299911 -0.0320026 0.71212 RAD 0.00617284 - txt002 - SPHERE CENTER -0.282946 -0.0305645 0.742607 RAD 0.00617284 - txt002 - SPHERE CENTER -0.285051 -0.0472946 0.72457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.262704 -0.0396503 0.731771 RAD 0.00617284 - txt002 - SPHERE CENTER -0.310405 -0.0794645 0.682285 RAD 0.0185185 - txt002 - SPHERE CENTER -0.324811 -0.0817333 0.702209 RAD 0.00617284 - txt002 - SPHERE CENTER -0.300317 -0.0800146 0.704814 RAD 0.00617284 - txt002 - SPHERE CENTER -0.313378 -0.0603366 0.697613 RAD 0.00617284 - txt002 - SPHERE CENTER -0.334899 -0.0811832 0.67968 RAD 0.00617284 - txt002 - SPHERE CENTER -0.323466 -0.0597864 0.675083 RAD 0.00617284 - txt002 - SPHERE CENTER -0.320493 -0.0789143 0.659755 RAD 0.00617284 - txt002 - SPHERE CENTER -0.321838 -0.100861 0.686881 RAD 0.00617284 - txt002 - SPHERE CENTER -0.307433 -0.0985923 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER -0.297345 -0.0991425 0.689486 RAD 0.00617284 - txt002 - SPHERE CENTER -0.216626 -0.115028 0.652044 RAD 0.0185185 - txt002 - SPHERE CENTER -0.195663 -0.127519 0.655816 RAD 0.00617284 - txt002 - SPHERE CENTER -0.194866 -0.104303 0.647447 RAD 0.00617284 - txt002 - SPHERE CENTER -0.201738 -0.108803 0.670732 RAD 0.00617284 - txt002 - SPHERE CENTER -0.217423 -0.138245 0.660413 RAD 0.00617284 - txt002 - SPHERE CENTER -0.223497 -0.119529 0.675329 RAD 0.00617284 - txt002 - SPHERE CENTER -0.238386 -0.125754 0.656641 RAD 0.00617284 - txt002 - SPHERE CENTER -0.210551 -0.133744 0.637128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.231514 -0.121254 0.633356 RAD 0.00617284 - txt002 - SPHERE CENTER -0.209754 -0.110528 0.628759 RAD 0.00617284 - txt002 - SPHERE CENTER -0.281603 -0.103481 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER -0.291073 -0.126206 0.620293 RAD 0.00617284 - txt002 - SPHERE CENTER -0.271345 -0.119897 0.633733 RAD 0.00617284 - txt002 - SPHERE CENTER -0.293457 -0.110246 0.638981 RAD 0.00617284 - txt002 - SPHERE CENTER -0.301332 -0.10979 0.604965 RAD 0.00617284 - txt002 - SPHERE CENTER -0.303716 -0.0938302 0.623653 RAD 0.00617284 - txt002 - SPHERE CENTER -0.291862 -0.0870656 0.603077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.279219 -0.119442 0.599717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.269749 -0.0967168 0.597829 RAD 0.00617284 - txt002 - SPHERE CENTER -0.25949 -0.113132 0.613157 RAD 0.00617284 - txt002 - SPHERE CENTER -0.21996 -0.0723919 0.591563 RAD 0.0185185 - txt002 - SPHERE CENTER -0.20388 -0.0673141 0.573526 RAD 0.00617284 - txt002 - SPHERE CENTER -0.216456 -0.0490355 0.584361 RAD 0.00617284 - txt002 - SPHERE CENTER -0.198742 -0.0609052 0.596811 RAD 0.00617284 - txt002 - SPHERE CENTER -0.207384 -0.0906706 0.580727 RAD 0.00617284 - txt002 - SPHERE CENTER -0.202246 -0.0842617 0.604012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.223463 -0.0957484 0.598764 RAD 0.00617284 - txt002 - SPHERE CENTER -0.225098 -0.0788008 0.568278 RAD 0.00617284 - txt002 - SPHERE CENTER -0.241177 -0.0838786 0.586315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.237674 -0.0605222 0.579113 RAD 0.00617284 - txt002 - SPHERE CENTER -0.471405 0.471405 1.11022e-16 RAD 0.166667 - txt002 - SPHERE CENTER -0.508983 0.690426 8.51251e-17 RAD 0.0555556 - txt002 - SPHERE CENTER -0.484794 0.755941 -0.0246914 RAD 0.0185185 - txt002 - SPHERE CENTER -0.47411 0.767658 -0.0436186 RAD 0.00617284 - txt002 - SPHERE CENTER -0.467528 0.744501 -0.0381316 RAD 0.00617284 - txt002 - SPHERE CENTER -0.489758 0.749038 -0.0478724 RAD 0.00617284 - txt002 - SPHERE CENTER -0.491377 0.779098 -0.0301783 RAD 0.00617284 - txt002 - SPHERE CENTER -0.507025 0.760478 -0.0344321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.502061 0.767382 -0.0112511 RAD 0.00617284 - txt002 - SPHERE CENTER -0.469146 0.774562 -0.0204376 RAD 0.00617284 - txt002 - SPHERE CENTER -0.47983 0.762845 -0.00151032 RAD 0.00617284 - txt002 - SPHERE CENTER -0.462564 0.751405 -0.0149506 RAD 0.00617284 - txt002 - SPHERE CENTER -0.436283 0.7029 -0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER -0.418941 0.714226 -0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER -0.43889 0.704751 -0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.44101 0.724842 -0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.416335 0.712374 0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER -0.438403 0.722991 0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER -0.433677 0.701048 0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER -0.414215 0.692283 -0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER -0.431557 0.680957 0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.434163 0.682808 -0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER -0.478434 0.695668 -0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER -0.481931 0.703418 -0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER -0.500827 0.694124 -0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER -0.491475 0.716184 -0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER -0.459538 0.704962 -0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER -0.469082 0.717727 -0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.456041 0.697211 -0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER -0.46889 0.682902 -0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER -0.465393 0.675152 -0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER -0.487786 0.673608 -0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER -0.557494 0.743468 -0.0178949 RAD 0.0185185 - txt002 - SPHERE CENTER -0.560084 0.767402 -0.0233819 RAD 0.00617284 - txt002 - SPHERE CENTER -0.543179 0.760285 -0.00685171 RAD 0.00617284 - txt002 - SPHERE CENTER -0.53997 0.755145 -0.0307879 RAD 0.00617284 - txt002 - SPHERE CENTER -0.574398 0.750585 -0.0344251 RAD 0.00617284 - txt002 - SPHERE CENTER -0.554284 0.738328 -0.0418311 RAD 0.00617284 - txt002 - SPHERE CENTER -0.571808 0.726651 -0.0289382 RAD 0.00617284 - txt002 - SPHERE CENTER -0.577608 0.755725 -0.0104889 RAD 0.00617284 - txt002 - SPHERE CENTER -0.575017 0.731791 -0.00500196 RAD 0.00617284 - txt002 - SPHERE CENTER -0.560703 0.748608 0.00604126 RAD 0.00617284 - txt002 - SPHERE CENTER -0.551134 0.683194 -0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER -0.573364 0.687731 -0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.571303 0.682033 -0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER -0.56324 0.703871 -0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER -0.553195 0.688893 -0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER -0.543071 0.705033 -0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER -0.530964 0.684356 -0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER -0.561258 0.667055 -0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER -0.539027 0.662518 -0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER -0.559196 0.661356 -0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER -0.581682 0.677953 0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER -0.601808 0.682851 0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER -0.579842 0.680568 0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.58454 0.700216 0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.603648 0.680237 -0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER -0.58638 0.697602 -0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER -0.583522 0.675339 -0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER -0.59895 0.660588 0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER -0.578824 0.65569 -0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.576984 0.658304 0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER -0.515343 0.7507 0.0425863 RAD 0.0185185 - txt002 - SPHERE CENTER -0.506594 0.773394 0.0468401 RAD 0.00617284 - txt002 - SPHERE CENTER -0.491321 0.755462 0.0394341 RAD 0.00617284 - txt002 - SPHERE CENTER -0.507924 0.764807 0.0237283 RAD 0.00617284 - txt002 - SPHERE CENTER -0.530616 0.768632 0.0499923 RAD 0.00617284 - txt002 - SPHERE CENTER -0.531946 0.760045 0.0268805 RAD 0.00617284 - txt002 - SPHERE CENTER -0.539365 0.745938 0.0457385 RAD 0.00617284 - txt002 - SPHERE CENTER -0.514012 0.759287 0.065698 RAD 0.00617284 - txt002 - SPHERE CENTER -0.522762 0.736593 0.0614442 RAD 0.00617284 - txt002 - SPHERE CENTER -0.49874 0.741355 0.058292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.539531 0.685185 0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER -0.538818 0.693658 0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER -0.517905 0.691194 0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER -0.534075 0.708875 0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER -0.560445 0.687649 0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555702 0.702866 0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.561158 0.679176 0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER -0.544274 0.669969 0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER -0.544988 0.661495 0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER -0.523361 0.667505 0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER -0.466832 0.697658 0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER -0.447385 0.709346 0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.447429 0.703286 0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER -0.46231 0.721188 0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER -0.466788 0.703718 0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER -0.481713 0.71556 0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER -0.486235 0.692031 0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER -0.451907 0.685816 0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER -0.471354 0.674129 0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER -0.451951 0.679757 0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER -0.335322 0.607487 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.283164 0.659645 0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER -0.269894 0.672915 0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER -0.275822 0.649528 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.293281 0.666987 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.277236 0.683032 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.300624 0.677104 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.290507 0.669762 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.259777 0.665573 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.273047 0.652302 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.265705 0.642185 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.286452 0.603979 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.279361 0.614273 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.303327 0.613293 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.288206 0.628413 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.262487 0.604959 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.271332 0.619099 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.269578 0.594664 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.277607 0.589839 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.284698 0.579544 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.301572 0.588858 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.33883 0.656357 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.328536 0.663448 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.314396 0.654603 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.329516 0.639482 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.35297 0.665202 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.353951 0.641237 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.363265 0.658111 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.33785 0.680322 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.348145 0.673232 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.32371 0.671477 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.332034 0.663153 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.321274 0.684748 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.308341 0.666888 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.326131 0.678752 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.344967 0.681014 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.349824 0.675018 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.355727 0.659419 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.327177 0.669149 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.337937 0.647554 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.314244 0.651289 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.3877 0.659866 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.391875 0.684201 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.37258 0.674986 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.37258 0.674986 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.406996 0.669081 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.3877 0.659866 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.40282 0.644745 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.406996 0.669081 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.40282 0.644745 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.3877 0.659866 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.384191 0.610996 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.389739 0.622198 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.366159 0.617804 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.378964 0.63493 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.407771 0.61539 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.396997 0.628121 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.402224 0.604188 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.394966 0.598265 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER -0.389418 0.587062 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.371386 0.593871 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.279656 0.610775 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.258061 0.621535 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.264057 0.616678 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.275921 0.634468 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.27366 0.615632 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.29152 0.628565 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.295255 0.604872 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.261795 0.597842 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.28339 0.587082 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.267791 0.592985 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.331813 0.558618 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.320611 0.55307 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.30788 0.563845 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.325005 0.57665 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.344544 0.547843 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER -0.348938 0.571423 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.355747 0.553391 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.327419 0.535038 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.338621 0.540585 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.314688 0.545813 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.282943 0.555109 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.258608 0.550934 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.267823 0.570229 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.267823 0.570229 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.273728 0.535813 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.282943 0.555109 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.298064 0.539989 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.273728 0.535813 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.298064 0.539989 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.282943 0.555109 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.335322 0.607487 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.313405 0.629404 -0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.316595 0.626214 -0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.318408 0.606941 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.335868 0.624401 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.311592 0.648676 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.330864 0.646863 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.308402 0.651867 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.294133 0.631217 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.290942 0.634407 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.295946 0.611945 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.331813 0.558618 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.319608 0.539107 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.307378 0.556863 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.322499 0.541743 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.344043 0.540862 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER -0.346933 0.543497 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.356248 0.560372 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.328923 0.555982 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.341128 0.575492 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.316693 0.573738 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.384191 0.610996 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.403702 0.623201 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.401066 0.62031 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.385946 0.635431 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.386827 0.613886 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.369071 0.626116 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.367317 0.601681 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.401947 0.598766 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER -0.382437 0.586561 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399312 0.595876 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.316914 0.678274 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.305407 0.69384 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.296616 0.671002 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.317721 0.674446 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.325704 0.701111 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.338018 0.681717 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.337211 0.685545 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.3046 0.697667 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.316107 0.682101 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.295809 0.67483 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.3877 0.659866 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.391875 0.684201 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.37258 0.674986 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.37258 0.674986 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.406996 0.669081 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.3877 0.659866 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.40282 0.644745 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.406996 0.669081 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.40282 0.644745 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.3877 0.659866 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.33883 0.656357 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.329538 0.677411 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.314897 0.661584 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.332022 0.674389 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.353472 0.672184 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.355956 0.669162 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.362764 0.65113 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.336346 0.659378 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.345639 0.638325 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.321705 0.643552 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.264535 0.625895 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.248969 0.637402 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.268363 0.625088 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.271807 0.646193 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.245142 0.638209 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.267979 0.647 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.260708 0.626702 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.241698 0.617105 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.257264 0.605598 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.261092 0.604791 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.286452 0.603979 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.265398 0.613271 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.26842 0.610787 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.281225 0.627912 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.283431 0.606463 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.299257 0.621104 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.304484 0.59717 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.270625 0.589337 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.291679 0.580045 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.273647 0.586853 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.282943 0.555109 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.258608 0.550934 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.267823 0.570229 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.267823 0.570229 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.273728 0.535813 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.282943 0.555109 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.298064 0.539989 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.273728 0.535813 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.298064 0.539989 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.282943 0.555109 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.645066 0.554344 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.681385 0.616373 -0.129006 RAD 0.0185185 - txt002 - SPHERE CENTER -0.678928 0.639472 -0.137375 RAD 0.00617284 - txt002 - SPHERE CENTER -0.661636 0.629767 -0.122663 RAD 0.00617284 - txt002 - SPHERE CENTER -0.664108 0.621631 -0.145845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.698678 0.626079 -0.143718 RAD 0.00617284 - txt002 - SPHERE CENTER -0.683858 0.608237 -0.152187 RAD 0.00617284 - txt002 - SPHERE CENTER -0.701135 0.602979 -0.135349 RAD 0.00617284 - txt002 - SPHERE CENTER -0.696205 0.634214 -0.120537 RAD 0.00617284 - txt002 - SPHERE CENTER -0.698662 0.611115 -0.112168 RAD 0.00617284 - txt002 - SPHERE CENTER -0.678912 0.624508 -0.105825 RAD 0.00617284 - txt002 - SPHERE CENTER -0.649723 0.609912 -0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER -0.640648 0.631982 -0.0560094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.625749 0.614812 -0.0656463 RAD 0.00617284 - txt002 - SPHERE CENTER -0.64267 0.62585 -0.0798417 RAD 0.00617284 - txt002 - SPHERE CENTER -0.664623 0.627081 -0.0527151 RAD 0.00617284 - txt002 - SPHERE CENTER -0.666645 0.620949 -0.0765474 RAD 0.00617284 - txt002 - SPHERE CENTER -0.673698 0.605012 -0.0590577 RAD 0.00617284 - txt002 - SPHERE CENTER -0.647702 0.616044 -0.0385197 RAD 0.00617284 - txt002 - SPHERE CENTER -0.656777 0.593974 -0.0448623 RAD 0.00617284 - txt002 - SPHERE CENTER -0.632802 0.598874 -0.0481565 RAD 0.00617284 - txt002 - SPHERE CENTER -0.607573 0.617144 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.595495 0.63057 -0.139672 RAD 0.00617284 - txt002 - SPHERE CENTER -0.594239 0.605919 -0.140323 RAD 0.00617284 - txt002 - SPHERE CENTER -0.615286 0.617371 -0.146288 RAD 0.00617284 - txt002 - SPHERE CENTER -0.608828 0.641795 -0.122182 RAD 0.00617284 - txt002 - SPHERE CENTER -0.628619 0.628595 -0.128798 RAD 0.00617284 - txt002 - SPHERE CENTER -0.620906 0.628369 -0.105343 RAD 0.00617284 - txt002 - SPHERE CENTER -0.587782 0.630343 -0.116217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.59986 0.616917 -0.0993785 RAD 0.00617284 - txt002 - SPHERE CENTER -0.586526 0.605692 -0.116868 RAD 0.00617284 - txt002 - SPHERE CENTER -0.676727 0.560805 -0.177765 RAD 0.0185185 - txt002 - SPHERE CENTER -0.689897 0.57563 -0.192477 RAD 0.00617284 - txt002 - SPHERE CENTER -0.693998 0.575587 -0.168128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.673115 0.585222 -0.177114 RAD 0.00617284 - txt002 - SPHERE CENTER -0.672626 0.560848 -0.202114 RAD 0.00617284 - txt002 - SPHERE CENTER -0.655844 0.57044 -0.186751 RAD 0.00617284 - txt002 - SPHERE CENTER -0.659456 0.546023 -0.187402 RAD 0.00617284 - txt002 - SPHERE CENTER -0.693509 0.551213 -0.193128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.680339 0.536388 -0.178416 RAD 0.00617284 - txt002 - SPHERE CENTER -0.69761 0.55117 -0.16878 RAD 0.00617284 - txt002 - SPHERE CENTER -0.602915 0.561576 -0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER -0.602201 0.570049 -0.194773 RAD 0.00617284 - txt002 - SPHERE CENTER -0.623084 0.560414 -0.185788 RAD 0.00617284 - txt002 - SPHERE CENTER -0.615021 0.582252 -0.177557 RAD 0.00617284 - txt002 - SPHERE CENTER -0.582032 0.571211 -0.180578 RAD 0.00617284 - txt002 - SPHERE CENTER -0.594852 0.583414 -0.163362 RAD 0.00617284 - txt002 - SPHERE CENTER -0.582745 0.562738 -0.157397 RAD 0.00617284 - txt002 - SPHERE CENTER -0.590095 0.549372 -0.188808 RAD 0.00617284 - txt002 - SPHERE CENTER -0.590808 0.540899 -0.165627 RAD 0.00617284 - txt002 - SPHERE CENTER -0.610978 0.539737 -0.179823 RAD 0.00617284 - txt002 - SPHERE CENTER -0.640408 0.498776 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.627785 0.478525 -0.166213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.615951 0.497935 -0.156576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.630799 0.484234 -0.142381 RAD 0.00617284 - txt002 - SPHERE CENTER -0.652241 0.479365 -0.169507 RAD 0.00617284 - txt002 - SPHERE CENTER -0.655255 0.485075 -0.145675 RAD 0.00617284 - txt002 - SPHERE CENTER -0.664864 0.499616 -0.163165 RAD 0.00617284 - txt002 - SPHERE CENTER -0.637394 0.493066 -0.183703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.650016 0.513317 -0.17736 RAD 0.00617284 - txt002 - SPHERE CENTER -0.62556 0.512476 -0.174066 RAD 0.00617284 - txt002 - SPHERE CENTER -0.718878 0.553573 -0.117284 RAD 0.0185185 - txt002 - SPHERE CENTER -0.73992 0.563328 -0.108814 RAD 0.00617284 - txt002 - SPHERE CENTER -0.720935 0.559693 -0.0934517 RAD 0.00617284 - txt002 - SPHERE CENTER -0.719679 0.577348 -0.110668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.737863 0.557208 -0.132647 RAD 0.00617284 - txt002 - SPHERE CENTER -0.717623 0.571228 -0.1345 RAD 0.00617284 - txt002 - SPHERE CENTER -0.716821 0.547453 -0.141116 RAD 0.00617284 - txt002 - SPHERE CENTER -0.739118 0.539553 -0.115431 RAD 0.00617284 - txt002 - SPHERE CENTER -0.718076 0.529798 -0.1239 RAD 0.00617284 - txt002 - SPHERE CENTER -0.720133 0.535918 -0.100068 RAD 0.00617284 - txt002 - SPHERE CENTER -0.682558 0.491544 -0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.688647 0.474542 -0.0825505 RAD 0.00617284 - txt002 - SPHERE CENTER -0.666351 0.485132 -0.0818993 RAD 0.00617284 - txt002 - SPHERE CENTER -0.686417 0.498226 -0.0759343 RAD 0.00617284 - txt002 - SPHERE CENTER -0.704854 0.480953 -0.10004 RAD 0.00617284 - txt002 - SPHERE CENTER -0.702624 0.504637 -0.093424 RAD 0.00617284 - txt002 - SPHERE CENTER -0.698765 0.497955 -0.116879 RAD 0.00617284 - txt002 - SPHERE CENTER -0.684788 0.46786 -0.106005 RAD 0.00617284 - txt002 - SPHERE CENTER -0.678699 0.484862 -0.122844 RAD 0.00617284 - txt002 - SPHERE CENTER -0.662492 0.47845 -0.105354 RAD 0.00617284 - txt002 - SPHERE CENTER -0.687216 0.547112 -0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER -0.690713 0.554862 -0.0274488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.667813 0.552739 -0.0364345 RAD 0.00617284 - txt002 - SPHERE CENTER -0.682694 0.570641 -0.0446649 RAD 0.00617284 - txt002 - SPHERE CENTER -0.710116 0.549235 -0.0416443 RAD 0.00617284 - txt002 - SPHERE CENTER -0.702097 0.565014 -0.0588603 RAD 0.00617284 - txt002 - SPHERE CENTER -0.706619 0.541484 -0.0648253 RAD 0.00617284 - txt002 - SPHERE CENTER -0.695235 0.531333 -0.0334138 RAD 0.00617284 - txt002 - SPHERE CENTER -0.691738 0.523582 -0.0565949 RAD 0.00617284 - txt002 - SPHERE CENTER -0.672335 0.52921 -0.0423994 RAD 0.00617284 - txt002 - SPHERE CENTER -0.471405 0.471405 -0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER -0.501645 0.501645 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.499795 0.519956 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.493653 0.523893 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.479397 0.509638 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.507788 0.497708 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.48739 0.48739 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER -0.509638 0.479397 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.522043 0.511963 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER -0.523893 0.493653 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.515901 0.515901 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER -0.542955 0.490576 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.559233 0.507719 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.539759 0.502501 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.536564 0.514426 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.562428 0.495794 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER -0.539759 0.502501 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.54615 0.478651 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.565623 0.483869 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.549345 0.466726 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.54615 0.478651 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.490576 0.542955 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.483869 0.565623 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.466726 0.549345 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.478651 0.54615 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.507719 0.559233 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.502501 0.539759 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.514426 0.536564 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.495794 0.562428 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.502501 0.539759 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.478651 0.54615 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.430095 0.482473 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.430434 0.489762 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.449569 0.477255 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER -0.445366 0.500519 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.41096 0.49498 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER -0.425893 0.505737 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.410622 0.487691 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER -0.415162 0.471716 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.414824 0.464428 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.434297 0.45921 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.419026 0.523783 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.404771 0.538038 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER -0.410297 0.515053 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.427756 0.532513 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.4135 0.546768 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.436486 0.541242 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.427756 0.532513 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.396041 0.529309 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.410297 0.515053 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.401567 0.506323 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399854 0.452233 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.377186 0.45894 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.396659 0.464158 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.393464 0.476083 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.380381 0.447015 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.396659 0.464158 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.40305 0.440308 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.383576 0.43509 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.406245 0.428383 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.40305 0.440308 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.482473 0.430095 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.48121 0.407271 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER -0.464428 0.414824 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.487691 0.410622 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER -0.499256 0.422542 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.505737 0.425893 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.500519 0.445366 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.475992 0.426744 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.477255 0.449569 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER -0.45921 0.434297 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.452233 0.399854 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.43509 0.383576 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.428383 0.406245 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.440308 0.40305 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.45894 0.377186 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.464158 0.396659 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.476083 0.393464 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.447015 0.380381 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER -0.464158 0.396659 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.440308 0.40305 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.523783 0.419026 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.538038 0.404771 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.515053 0.410297 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.532513 0.427756 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.546768 0.4135 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.541242 0.436486 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.532513 0.427756 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.529309 0.396041 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.515053 0.410297 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.506323 0.401567 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.607487 0.335322 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.659645 0.283164 -0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER -0.672915 0.269894 -0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER -0.649528 0.275822 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.666987 0.293281 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.683032 0.277236 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.677104 0.300624 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.669762 0.290507 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.665573 0.259777 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.652302 0.273047 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.642185 0.265705 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.603979 0.286452 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.592776 0.280905 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.580045 0.291679 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.59717 0.304484 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.61671 0.275678 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.621104 0.299257 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.627912 0.281225 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.599585 0.262872 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.610787 0.26842 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.586853 0.273647 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.656357 0.33883 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.661904 0.350033 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.638325 0.345639 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.65113 0.362764 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.679937 0.343224 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.669162 0.355956 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.674389 0.332022 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.667131 0.326099 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.661584 0.314897 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.643552 0.321705 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.663153 0.332034 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.685865 0.340177 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.679339 0.33606 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.669651 0.355123 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.669679 0.336151 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.653465 0.351097 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.646968 0.328008 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.679367 0.317089 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.656656 0.308945 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.672841 0.312971 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.659866 0.3877 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.664041 0.412036 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.644745 0.40282 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.644745 0.40282 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.679161 0.396915 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.659866 0.3877 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.674986 0.37258 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.679161 0.396915 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.674986 0.37258 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.659866 0.3877 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.610996 0.384191 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.600701 0.391282 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.586561 0.382437 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.601681 0.367317 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.625136 0.393037 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER -0.626116 0.369071 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.635431 0.385946 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.610016 0.408157 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.62031 0.401066 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.595876 0.399312 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.610775 0.279656 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.602632 0.256944 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.587686 0.273158 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.606749 0.26347 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.62572 0.263442 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.629838 0.269968 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.633864 0.286153 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.606658 0.27313 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.614801 0.295841 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.591712 0.289344 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.558618 0.331813 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.551527 0.342108 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.575492 0.341128 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.560372 0.356248 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.534652 0.332793 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.543497 0.346933 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.541743 0.322499 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.549772 0.317673 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER -0.556863 0.307378 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.573738 0.316693 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555109 0.282943 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.530773 0.278768 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.539989 0.298064 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.539989 0.298064 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.545894 0.263648 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555109 0.282943 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.570229 0.267823 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.545894 0.263648 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.570229 0.267823 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555109 0.282943 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.645066 0.554344 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.668521 0.610229 0.153697 RAD 0.0185185 - txt002 - SPHERE CENTER -0.663938 0.633406 0.160875 RAD 0.00617284 - txt002 - SPHERE CENTER -0.64522 0.617928 0.156428 RAD 0.00617284 - txt002 - SPHERE CENTER -0.65892 0.626429 0.137727 RAD 0.00617284 - txt002 - SPHERE CENTER -0.687239 0.625707 0.158144 RAD 0.00617284 - txt002 - SPHERE CENTER -0.682221 0.61873 0.134996 RAD 0.00617284 - txt002 - SPHERE CENTER -0.691822 0.602531 0.150967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.673539 0.617206 0.176845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.678123 0.59403 0.169668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.654822 0.601728 0.172398 RAD 0.00617284 - txt002 - SPHERE CENTER -0.598918 0.585648 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.580238 0.601562 0.162601 RAD 0.00617284 - txt002 - SPHERE CENTER -0.581665 0.587563 0.142311 RAD 0.00617284 - txt002 - SPHERE CENTER -0.59781 0.605914 0.14581 RAD 0.00617284 - txt002 - SPHERE CENTER -0.597491 0.599646 0.18016 RAD 0.00617284 - txt002 - SPHERE CENTER -0.615063 0.603999 0.163369 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616171 0.583732 0.177429 RAD 0.00617284 - txt002 - SPHERE CENTER -0.581346 0.581295 0.176661 RAD 0.00617284 - txt002 - SPHERE CENTER -0.600026 0.565381 0.173931 RAD 0.00617284 - txt002 - SPHERE CENTER -0.582773 0.567297 0.156372 RAD 0.00617284 - txt002 - SPHERE CENTER -0.619787 0.622977 0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.608008 0.63767 0.0834188 RAD 0.00617284 - txt002 - SPHERE CENTER -0.601637 0.613891 0.0853287 RAD 0.00617284 - txt002 - SPHERE CENTER -0.623239 0.620102 0.0751099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.626157 0.646756 0.0974792 RAD 0.00617284 - txt002 - SPHERE CENTER -0.641389 0.629188 0.0891702 RAD 0.00617284 - txt002 - SPHERE CENTER -0.637936 0.632063 0.113449 RAD 0.00617284 - txt002 - SPHERE CENTER -0.604555 0.640545 0.107698 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616334 0.625852 0.123668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.598184 0.616766 0.109608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.714669 0.578925 0.104938 RAD 0.0185185 - txt002 - SPHERE CENTER -0.729812 0.597914 0.109385 RAD 0.00617284 - txt002 - SPHERE CENTER -0.711617 0.592661 0.125228 RAD 0.00617284 - txt002 - SPHERE CENTER -0.70632 0.602084 0.103028 RAD 0.00617284 - txt002 - SPHERE CENTER -0.732864 0.584178 0.0890951 RAD 0.00617284 - txt002 - SPHERE CENTER -0.709372 0.588348 0.0827387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.71772 0.565189 0.0846485 RAD 0.00617284 - txt002 - SPHERE CENTER -0.738161 0.574755 0.111295 RAD 0.00617284 - txt002 - SPHERE CENTER -0.723017 0.555767 0.106848 RAD 0.00617284 - txt002 - SPHERE CENTER -0.719965 0.569503 0.127138 RAD 0.00617284 - txt002 - SPHERE CENTER -0.665934 0.591673 0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER -0.658095 0.605761 0.0319289 RAD 0.00617284 - txt002 - SPHERE CENTER -0.647455 0.607672 0.0541285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.643855 0.58746 0.0404111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.676573 0.589763 0.0284303 RAD 0.00617284 - txt002 - SPHERE CENTER -0.662334 0.571461 0.0369125 RAD 0.00617284 - txt002 - SPHERE CENTER -0.684413 0.575674 0.0471312 RAD 0.00617284 - txt002 - SPHERE CENTER -0.680174 0.609975 0.0421477 RAD 0.00617284 - txt002 - SPHERE CENTER -0.688013 0.595887 0.0608487 RAD 0.00617284 - txt002 - SPHERE CENTER -0.669535 0.611885 0.0643473 RAD 0.00617284 - txt002 - SPHERE CENTER -0.691213 0.52304 0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER -0.712906 0.511567 0.0596212 RAD 0.00617284 - txt002 - SPHERE CENTER -0.699372 0.507717 0.079911 RAD 0.00617284 - txt002 - SPHERE CENTER -0.710453 0.529503 0.0764123 RAD 0.00617284 - txt002 - SPHERE CENTER -0.704747 0.526889 0.0420622 RAD 0.00617284 - txt002 - SPHERE CENTER -0.702295 0.544826 0.0588533 RAD 0.00617284 - txt002 - SPHERE CENTER -0.683054 0.538362 0.044793 RAD 0.00617284 - txt002 - SPHERE CENTER -0.693665 0.505104 0.0455609 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671972 0.516576 0.0482916 RAD 0.00617284 - txt002 - SPHERE CENTER -0.680131 0.501254 0.0658506 RAD 0.00617284 - txt002 - SPHERE CENTER -0.6938 0.541596 0.165419 RAD 0.0185185 - txt002 - SPHERE CENTER -0.70016 0.547376 0.188567 RAD 0.00617284 - txt002 - SPHERE CENTER -0.676324 0.546319 0.182211 RAD 0.00617284 - txt002 - SPHERE CENTER -0.690564 0.564621 0.173728 RAD 0.00617284 - txt002 - SPHERE CENTER -0.717636 0.542652 0.171776 RAD 0.00617284 - txt002 - SPHERE CENTER -0.70804 0.559898 0.156937 RAD 0.00617284 - txt002 - SPHERE CENTER -0.711276 0.536873 0.148628 RAD 0.00617284 - txt002 - SPHERE CENTER -0.703396 0.524351 0.180258 RAD 0.00617284 - txt002 - SPHERE CENTER -0.697037 0.518571 0.157111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.679561 0.523294 0.173902 RAD 0.00617284 - txt002 - SPHERE CENTER -0.670344 0.48571 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.67091 0.466887 0.138803 RAD 0.00617284 - txt002 - SPHERE CENTER -0.650637 0.480853 0.136894 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671107 0.490138 0.147112 RAD 0.00617284 - txt002 - SPHERE CENTER -0.690617 0.471745 0.124743 RAD 0.00617284 - txt002 - SPHERE CENTER -0.690815 0.494995 0.133052 RAD 0.00617284 - txt002 - SPHERE CENTER -0.690052 0.490567 0.108773 RAD 0.00617284 - txt002 - SPHERE CENTER -0.670147 0.46246 0.114524 RAD 0.00617284 - txt002 - SPHERE CENTER -0.669581 0.481283 0.0985541 RAD 0.00617284 - txt002 - SPHERE CENTER -0.649874 0.476425 0.112614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.624197 0.517014 0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER -0.60809 0.516313 0.190293 RAD 0.00617284 - txt002 - SPHERE CENTER -0.60089 0.524375 0.168094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616221 0.538029 0.181811 RAD 0.00617284 - txt002 - SPHERE CENTER -0.631397 0.508952 0.193792 RAD 0.00617284 - txt002 - SPHERE CENTER -0.639529 0.530668 0.18531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.647504 0.509653 0.175091 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616065 0.495298 0.180075 RAD 0.00617284 - txt002 - SPHERE CENTER -0.632172 0.495999 0.161374 RAD 0.00617284 - txt002 - SPHERE CENTER -0.608865 0.50336 0.157875 RAD 0.00617284 - txt002 - SPHERE CENTER -0.607487 0.335322 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.629404 0.313405 0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.626214 0.316595 0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.606941 0.318408 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.624401 0.335868 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.648676 0.311592 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.646863 0.330864 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.651867 0.308402 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.631217 0.294133 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.634407 0.290942 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.611945 0.295946 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.558618 0.331813 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.537564 0.341105 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.540585 0.338621 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.553391 0.355747 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555596 0.334297 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.571423 0.348938 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.57665 0.325005 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.542791 0.317172 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER -0.563845 0.30788 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.545813 0.314688 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.610996 0.384191 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.601704 0.405245 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.587062 0.389418 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.604188 0.402224 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.625637 0.400018 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER -0.628121 0.396997 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.63493 0.378964 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.608512 0.387213 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.617804 0.366159 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.593871 0.371386 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.678274 0.316914 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.697473 0.31938 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.674538 0.318074 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.681812 0.338182 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.701209 0.31822 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.685547 0.337022 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.682009 0.315754 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.693935 0.298112 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.674736 0.295646 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671 0.296805 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.659866 0.3877 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.664041 0.412036 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.644745 0.40282 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.644745 0.40282 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.679161 0.396915 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.659866 0.3877 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.674986 0.37258 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.679161 0.396915 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.674986 0.37258 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.659866 0.3877 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.656357 0.33883 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.675867 0.351035 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.673232 0.348145 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.658111 0.363265 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.658993 0.341721 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.641237 0.353951 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.639482 0.329516 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.674113 0.3266 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.654603 0.314396 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671477 0.32371 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.625895 0.264535 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.623429 0.245336 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.604627 0.260997 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.624736 0.268271 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.644697 0.248874 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.646004 0.271809 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.647163 0.268073 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.624589 0.2416 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.627055 0.2608 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.605787 0.257262 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.603979 0.286452 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.591774 0.266942 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.579544 0.284698 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.594664 0.269578 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616209 0.268696 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.619099 0.271332 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.628413 0.288206 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.601088 0.283817 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.613293 0.303327 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.588858 0.301572 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555109 0.282943 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.530773 0.278768 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.539989 0.298064 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.539989 0.298064 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.545894 0.263648 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555109 0.282943 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.570229 0.267823 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.545894 0.263648 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.570229 0.267823 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555109 0.282943 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.471405 0.471405 0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER -0.441164 0.501645 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.424703 0.518106 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER -0.420089 0.505261 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.437548 0.522721 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.445778 0.51449 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.458623 0.519105 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.462239 0.498029 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.428319 0.497031 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.44478 0.48057 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.423704 0.484186 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399854 0.490576 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.382226 0.502679 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399854 0.490576 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.405389 0.511231 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.382226 0.502679 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.405389 0.511231 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399854 0.490576 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.376691 0.482024 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.39432 0.469922 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.39432 0.469922 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.452233 0.542955 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.44013 0.560583 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.431578 0.53742 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.452233 0.542955 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.460785 0.566118 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.472887 0.548489 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.472887 0.548489 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.44013 0.560583 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.452233 0.542955 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.431578 0.53742 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.512714 0.482473 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.51514 0.495905 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.492654 0.48988 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.506323 0.506323 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.5352 0.488498 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER -0.526383 0.498917 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.532774 0.475067 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.521531 0.472055 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.519105 0.458623 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.499045 0.46603 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.523783 0.523783 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.527958 0.548119 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.508662 0.538903 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.508662 0.538903 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.543078 0.532998 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.523783 0.523783 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.538903 0.508662 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.543078 0.532998 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.538903 0.508662 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.523783 0.523783 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.542955 0.452233 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.564273 0.4539 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.542955 0.452233 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.548489 0.472887 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.564273 0.4539 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.548489 0.472887 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.542955 0.452233 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.558738 0.433245 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.53742 0.431578 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.53742 0.431578 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.460336 0.430095 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.446904 0.427669 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.436486 0.436486 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.45293 0.450155 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.470754 0.421278 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.47678 0.443764 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.484186 0.423704 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.454311 0.407609 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER -0.467742 0.410035 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.443892 0.416426 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.490576 0.399854 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.488909 0.378536 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.469922 0.39432 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.490576 0.399854 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.509564 0.384071 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.511231 0.405389 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.511231 0.405389 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.488909 0.378536 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.490576 0.399854 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.469922 0.39432 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.419026 0.419026 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.39469 0.414851 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.403906 0.434147 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.403906 0.434147 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.409811 0.399731 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.419026 0.419026 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.434147 0.403906 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.409811 0.399731 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.434147 0.403906 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.419026 0.419026 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.643951 -0.172546 1.11022e-16 RAD 0.166667 - txt002 - SPHERE CENTER -0.835815 -0.157543 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.871646 -0.122136 0.165419 RAD 0.0185185 - txt002 - SPHERE CENTER -0.871334 -0.102403 0.180258 RAD 0.00617284 - txt002 - SPHERE CENTER -0.850164 -0.113406 0.173902 RAD 0.00617284 - txt002 - SPHERE CENTER -0.862937 -0.100577 0.157111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.892817 -0.111133 0.171776 RAD 0.00617284 - txt002 - SPHERE CENTER -0.884419 -0.109307 0.148628 RAD 0.00617284 - txt002 - SPHERE CENTER -0.893129 -0.130866 0.156937 RAD 0.00617284 - txt002 - SPHERE CENTER -0.880044 -0.123961 0.188567 RAD 0.00617284 - txt002 - SPHERE CENTER -0.880356 -0.143694 0.173728 RAD 0.00617284 - txt002 - SPHERE CENTER -0.858873 -0.134964 0.182211 RAD 0.00617284 - txt002 - SPHERE CENTER -0.799077 -0.135649 0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER -0.781177 -0.120908 0.180075 RAD 0.00617284 - txt002 - SPHERE CENTER -0.778973 -0.13149 0.157875 RAD 0.00617284 - txt002 - SPHERE CENTER -0.795477 -0.113462 0.161374 RAD 0.00617284 - txt002 - SPHERE CENTER -0.801282 -0.125067 0.193792 RAD 0.00617284 - txt002 - SPHERE CENTER -0.815582 -0.11762 0.175091 RAD 0.00617284 - txt002 - SPHERE CENTER -0.819182 -0.139808 0.18531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.784778 -0.143095 0.190293 RAD 0.00617284 - txt002 - SPHERE CENTER -0.802678 -0.157836 0.181811 RAD 0.00617284 - txt002 - SPHERE CENTER -0.782573 -0.153678 0.168094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.82339 -0.0854653 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.811594 -0.0654286 0.114524 RAD 0.00617284 - txt002 - SPHERE CENTER -0.80102 -0.0876595 0.112614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.820516 -0.0820122 0.0985541 RAD 0.00617284 - txt002 - SPHERE CENTER -0.833964 -0.0632344 0.124743 RAD 0.00617284 - txt002 - SPHERE CENTER -0.842886 -0.079818 0.108773 RAD 0.00617284 - txt002 - SPHERE CENTER -0.845761 -0.083271 0.133052 RAD 0.00617284 - txt002 - SPHERE CENTER -0.814468 -0.0688817 0.138803 RAD 0.00617284 - txt002 - SPHERE CENTER -0.826265 -0.0889183 0.147112 RAD 0.00617284 - txt002 - SPHERE CENTER -0.803895 -0.0911125 0.136894 RAD 0.00617284 - txt002 - SPHERE CENTER -0.908384 -0.14403 0.104938 RAD 0.0185185 - txt002 - SPHERE CENTER -0.926643 -0.128672 0.111295 RAD 0.00617284 - txt002 - SPHERE CENTER -0.90826 -0.133221 0.127138 RAD 0.00617284 - txt002 - SPHERE CENTER -0.904034 -0.1198 0.106848 RAD 0.00617284 - txt002 - SPHERE CENTER -0.926768 -0.139481 0.0890951 RAD 0.00617284 - txt002 - SPHERE CENTER -0.904159 -0.130608 0.0846485 RAD 0.00617284 - txt002 - SPHERE CENTER -0.908508 -0.154838 0.0827387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.930993 -0.152902 0.109385 RAD 0.00617284 - txt002 - SPHERE CENTER -0.912733 -0.16826 0.103028 RAD 0.00617284 - txt002 - SPHERE CENTER -0.912609 -0.157451 0.125228 RAD 0.00617284 - txt002 - SPHERE CENTER -0.860128 -0.107359 0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER -0.853284 -0.0905999 0.0455609 RAD 0.00617284 - txt002 - SPHERE CENTER -0.839638 -0.0940331 0.0658506 RAD 0.00617284 - txt002 - SPHERE CENTER -0.840233 -0.111382 0.0482916 RAD 0.00617284 - txt002 - SPHERE CENTER -0.873773 -0.103926 0.0420622 RAD 0.00617284 - txt002 - SPHERE CENTER -0.860723 -0.124708 0.044793 RAD 0.00617284 - txt002 - SPHERE CENTER -0.880618 -0.120685 0.0588533 RAD 0.00617284 - txt002 - SPHERE CENTER -0.873178 -0.086577 0.0596212 RAD 0.00617284 - txt002 - SPHERE CENTER -0.880022 -0.103336 0.0764123 RAD 0.00617284 - txt002 - SPHERE CENTER -0.859532 -0.0900102 0.079911 RAD 0.00617284 - txt002 - SPHERE CENTER -0.872552 -0.179437 0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER -0.894035 -0.188167 0.0421477 RAD 0.00617284 - txt002 - SPHERE CENTER -0.885777 -0.195141 0.0643473 RAD 0.00617284 - txt002 - SPHERE CENTER -0.89378 -0.172046 0.0608487 RAD 0.00617284 - txt002 - SPHERE CENTER -0.880811 -0.172463 0.0284303 RAD 0.00617284 - txt002 - SPHERE CENTER -0.880556 -0.156342 0.0471312 RAD 0.00617284 - txt002 - SPHERE CENTER -0.859328 -0.163733 0.0369125 RAD 0.00617284 - txt002 - SPHERE CENTER -0.872807 -0.195558 0.0319289 RAD 0.00617284 - txt002 - SPHERE CENTER -0.851325 -0.186828 0.0404111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.864549 -0.202532 0.0541285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.884071 -0.194213 0.153697 RAD 0.0185185 - txt002 - SPHERE CENTER -0.891905 -0.197746 0.176845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.867957 -0.193701 0.172398 RAD 0.00617284 - txt002 - SPHERE CENTER -0.884286 -0.175383 0.169668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.908019 -0.198259 0.158144 RAD 0.00617284 - txt002 - SPHERE CENTER -0.900401 -0.175896 0.150967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.900186 -0.194726 0.134996 RAD 0.00617284 - txt002 - SPHERE CENTER -0.89169 -0.216576 0.160875 RAD 0.00617284 - txt002 - SPHERE CENTER -0.883856 -0.213043 0.137727 RAD 0.00617284 - txt002 - SPHERE CENTER -0.867741 -0.212531 0.156428 RAD 0.00617284 - txt002 - SPHERE CENTER -0.84824 -0.229621 0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.843832 -0.25245 0.107698 RAD 0.00617284 - txt002 - SPHERE CENTER -0.826426 -0.235043 0.109608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.846687 -0.233837 0.123668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.865646 -0.247028 0.0974792 RAD 0.00617284 - txt002 - SPHERE CENTER -0.868501 -0.228415 0.113449 RAD 0.00617284 - txt002 - SPHERE CENTER -0.870053 -0.224198 0.0891702 RAD 0.00617284 - txt002 - SPHERE CENTER -0.845385 -0.248234 0.0834188 RAD 0.00617284 - txt002 - SPHERE CENTER -0.849792 -0.225404 0.0751099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.827978 -0.230827 0.0853287 RAD 0.00617284 - txt002 - SPHERE CENTER -0.811502 -0.207727 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.794108 -0.212743 0.176661 RAD 0.00617284 - txt002 - SPHERE CENTER -0.788345 -0.199907 0.156372 RAD 0.00617284 - txt002 - SPHERE CENTER -0.802328 -0.189621 0.173931 RAD 0.00617284 - txt002 - SPHERE CENTER -0.817265 -0.220563 0.18016 RAD 0.00617284 - txt002 - SPHERE CENTER -0.825486 -0.197441 0.177429 RAD 0.00617284 - txt002 - SPHERE CENTER -0.83466 -0.215547 0.163369 RAD 0.00617284 - txt002 - SPHERE CENTER -0.803282 -0.230849 0.162601 RAD 0.00617284 - txt002 - SPHERE CENTER -0.820676 -0.225832 0.14581 RAD 0.00617284 - txt002 - SPHERE CENTER -0.797518 -0.218012 0.142311 RAD 0.00617284 - txt002 - SPHERE CENTER -0.643951 -0.172546 0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER -0.61371 -0.142305 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.597249 -0.125845 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER -0.592635 -0.138689 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.610094 -0.12123 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.618324 -0.12946 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.631169 -0.124846 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.634785 -0.145921 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.600865 -0.14692 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.617326 -0.163381 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.596251 -0.159765 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.5724 -0.153374 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.554772 -0.141271 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.5724 -0.153374 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.577935 -0.13272 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.554772 -0.141271 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.577935 -0.13272 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.5724 -0.153374 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.549237 -0.161926 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.566866 -0.174029 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.566866 -0.174029 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.624779 -0.100996 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.612676 -0.0833673 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.604124 -0.10653 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.624779 -0.100996 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.633331 -0.0778329 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.645433 -0.0954616 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.645433 -0.0954616 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.612676 -0.0833673 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.624779 -0.100996 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.604124 -0.10653 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.68526 -0.161477 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.687686 -0.148046 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.6652 -0.154071 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.678869 -0.137627 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.707746 -0.155452 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER -0.698929 -0.145033 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.70532 -0.168883 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.694077 -0.171896 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.691651 -0.185327 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671591 -0.177921 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.696329 -0.120168 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.700504 -0.095832 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.681209 -0.105047 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.681209 -0.105047 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.715624 -0.110952 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.696329 -0.120168 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.711449 -0.135288 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.715624 -0.110952 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.711449 -0.135288 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.696329 -0.120168 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.715501 -0.191718 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.736819 -0.190051 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.715501 -0.191718 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.721035 -0.171063 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.736819 -0.190051 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.721035 -0.171063 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.715501 -0.191718 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.731284 -0.210706 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.709966 -0.212373 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.709966 -0.212373 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.632882 -0.213855 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.61945 -0.216282 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.609032 -0.207465 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.625476 -0.193796 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.6433 -0.222672 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.649326 -0.200186 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.656732 -0.220246 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.626857 -0.236341 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER -0.640288 -0.233915 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616438 -0.227525 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.663122 -0.244096 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.661455 -0.265414 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.642468 -0.249631 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.663122 -0.244096 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.68211 -0.25988 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.683777 -0.238562 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.683777 -0.238562 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.661455 -0.265414 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.663122 -0.244096 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.642468 -0.249631 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.591572 -0.224924 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.567237 -0.2291 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.576452 -0.209804 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.576452 -0.209804 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.582357 -0.24422 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.591572 -0.224924 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.606693 -0.240045 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.582357 -0.24422 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.606693 -0.240045 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.591572 -0.224924 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.69376 0.0133465 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.674309 0.0838533 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.66171 0.103063 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.653258 0.0800983 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.673446 0.0876683 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.682761 0.106818 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.694497 0.0914233 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.69536 0.0876083 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.662574 0.0992478 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.675172 0.0800382 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.654121 0.0762832 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.62221 0.0325183 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.604582 0.0446211 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.62221 0.0325183 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.627745 0.053173 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.604582 0.0446211 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.627745 0.053173 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.62221 0.0325183 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.599047 0.0239663 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616676 0.0118635 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616676 0.0118635 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.666287 0.0539145 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.662466 0.0547519 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.660752 0.0332597 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.682791 0.0439578 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.668 0.0754066 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.688325 0.0646126 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671821 0.0745692 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.645962 0.0647085 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.649783 0.0638711 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.644249 0.0432164 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.745859 0.0646815 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.750021 0.0887955 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.729506 0.078459 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.732161 0.0813312 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.766375 0.075018 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.748514 0.0675537 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.762212 0.050904 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.763719 0.0721458 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.759557 0.0480318 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.743204 0.0618093 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.737837 0.0347427 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.747099 0.0542122 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.743371 0.0553974 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.7241 0.0550267 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.741565 0.0335575 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.718566 0.0343719 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.732303 0.014088 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.760836 0.0339282 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.751574 0.0144587 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.757108 0.0351134 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.76531 -0.0058253 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.786629 -0.00415829 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.76531 -0.0058253 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.770845 0.0148294 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.786629 -0.00415829 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.770845 0.0148294 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.76531 -0.0058253 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.781094 -0.024813 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.759776 -0.02648 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.759776 -0.02648 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.701782 0.0432853 0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.693716 0.0608821 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.677932 0.0496759 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.694884 0.0652402 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.717566 0.0544915 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.718734 0.0588496 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.725632 0.0368947 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.700615 0.0389272 0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.708681 0.0213304 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.684831 0.027721 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.721234 -0.0272215 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.720593 -0.0310802 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.7 -0.0246945 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.718114 -0.00820099 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.741827 -0.0336072 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER -0.739347 -0.010728 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.742467 -0.0297485 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.723713 -0.0501007 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.724354 -0.046242 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.70312 -0.043715 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.649684 -0.00804971 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.628657 -0.00328338 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER -0.630031 0.000378614 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.642244 0.0152909 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.648309 -0.0117117 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.661896 0.00686255 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.669336 -0.016478 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.636097 -0.026624 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.657124 -0.0313903 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.637471 -0.022962 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.835815 -0.157543 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.899353 -0.119969 -0.117284 RAD 0.0185185 - txt002 - SPHERE CENTER -0.909872 -0.0977075 -0.115431 RAD 0.00617284 - txt002 - SPHERE CENTER -0.891613 -0.104052 -0.100068 RAD 0.00617284 - txt002 - SPHERE CENTER -0.886771 -0.0997803 -0.1239 RAD 0.00617284 - txt002 - SPHERE CENTER -0.917612 -0.113625 -0.132647 RAD 0.00617284 - txt002 - SPHERE CENTER -0.894512 -0.115698 -0.141116 RAD 0.00617284 - txt002 - SPHERE CENTER -0.907093 -0.135886 -0.1345 RAD 0.00617284 - txt002 - SPHERE CENTER -0.922453 -0.117896 -0.108814 RAD 0.00617284 - txt002 - SPHERE CENTER -0.911935 -0.140158 -0.110668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.904194 -0.124241 -0.0934517 RAD 0.00617284 - txt002 - SPHERE CENTER -0.868703 -0.130205 -0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER -0.867758 -0.11253 -0.0334138 RAD 0.00617284 - txt002 - SPHERE CENTER -0.846864 -0.122142 -0.0423994 RAD 0.00617284 - txt002 - SPHERE CENTER -0.860854 -0.107566 -0.0565949 RAD 0.00617284 - txt002 - SPHERE CENTER -0.889596 -0.120593 -0.0416443 RAD 0.00617284 - txt002 - SPHERE CENTER -0.882692 -0.115629 -0.0648253 RAD 0.00617284 - txt002 - SPHERE CENTER -0.890541 -0.138267 -0.0588603 RAD 0.00617284 - txt002 - SPHERE CENTER -0.875606 -0.135168 -0.0274488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.876551 -0.152843 -0.0446649 RAD 0.00617284 - txt002 - SPHERE CENTER -0.854713 -0.14478 -0.0364345 RAD 0.00617284 - txt002 - SPHERE CENTER -0.836885 -0.0844101 -0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.826973 -0.0627848 -0.106005 RAD 0.00617284 - txt002 - SPHERE CENTER -0.81296 -0.083104 -0.105354 RAD 0.00617284 - txt002 - SPHERE CENTER -0.830202 -0.0805529 -0.122844 RAD 0.00617284 - txt002 - SPHERE CENTER -0.850898 -0.0640908 -0.10004 RAD 0.00617284 - txt002 - SPHERE CENTER -0.854126 -0.0818589 -0.116879 RAD 0.00617284 - txt002 - SPHERE CENTER -0.860809 -0.0857161 -0.093424 RAD 0.00617284 - txt002 - SPHERE CENTER -0.833656 -0.0666419 -0.0825505 RAD 0.00617284 - txt002 - SPHERE CENTER -0.843568 -0.0882673 -0.0759343 RAD 0.00617284 - txt002 - SPHERE CENTER -0.819643 -0.0869612 -0.0818993 RAD 0.00617284 - txt002 - SPHERE CENTER -0.866465 -0.147308 -0.177765 RAD 0.0185185 - txt002 - SPHERE CENTER -0.876203 -0.130609 -0.193128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.879733 -0.128522 -0.16878 RAD 0.00617284 - txt002 - SPHERE CENTER -0.857385 -0.124356 -0.178416 RAD 0.00617284 - txt002 - SPHERE CENTER -0.862935 -0.149395 -0.202114 RAD 0.00617284 - txt002 - SPHERE CENTER -0.844117 -0.143141 -0.187402 RAD 0.00617284 - txt002 - SPHERE CENTER -0.853198 -0.166093 -0.186751 RAD 0.00617284 - txt002 - SPHERE CENTER -0.885283 -0.153561 -0.192477 RAD 0.00617284 - txt002 - SPHERE CENTER -0.875546 -0.170259 -0.177114 RAD 0.00617284 - txt002 - SPHERE CENTER -0.888813 -0.151474 -0.168128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.803997 -0.111748 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.798532 -0.108311 -0.183703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.797989 -0.131037 -0.174066 RAD 0.00617284 - txt002 - SPHERE CENTER -0.819589 -0.119537 -0.17736 RAD 0.00617284 - txt002 - SPHERE CENTER -0.80454 -0.0890219 -0.169507 RAD 0.00617284 - txt002 - SPHERE CENTER -0.825597 -0.100248 -0.163165 RAD 0.00617284 - txt002 - SPHERE CENTER -0.810005 -0.0924597 -0.145675 RAD 0.00617284 - txt002 - SPHERE CENTER -0.78294 -0.100522 -0.166213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.788405 -0.10396 -0.142381 RAD 0.00617284 - txt002 - SPHERE CENTER -0.782397 -0.123249 -0.156576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.802927 -0.184881 -0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER -0.785723 -0.180723 -0.188808 RAD 0.00617284 - txt002 - SPHERE CENTER -0.798991 -0.161937 -0.179823 RAD 0.00617284 - txt002 - SPHERE CENTER -0.782104 -0.173028 -0.165627 RAD 0.00617284 - txt002 - SPHERE CENTER -0.78966 -0.203667 -0.180578 RAD 0.00617284 - txt002 - SPHERE CENTER -0.786041 -0.195972 -0.157397 RAD 0.00617284 - txt002 - SPHERE CENTER -0.806864 -0.207825 -0.163362 RAD 0.00617284 - txt002 - SPHERE CENTER -0.806546 -0.192576 -0.194773 RAD 0.00617284 - txt002 - SPHERE CENTER -0.82375 -0.196734 -0.177557 RAD 0.00617284 - txt002 - SPHERE CENTER -0.819813 -0.17379 -0.185788 RAD 0.00617284 - txt002 - SPHERE CENTER -0.898283 -0.193102 -0.129006 RAD 0.0185185 - txt002 - SPHERE CENTER -0.920038 -0.201143 -0.120537 RAD 0.00617284 - txt002 - SPHERE CENTER -0.900209 -0.201384 -0.105825 RAD 0.00617284 - txt002 - SPHERE CENTER -0.910616 -0.17991 -0.112168 RAD 0.00617284 - txt002 - SPHERE CENTER -0.918112 -0.192861 -0.143718 RAD 0.00617284 - txt002 - SPHERE CENTER -0.90869 -0.171628 -0.135349 RAD 0.00617284 - txt002 - SPHERE CENTER -0.896357 -0.18482 -0.152187 RAD 0.00617284 - txt002 - SPHERE CENTER -0.907705 -0.214335 -0.137375 RAD 0.00617284 - txt002 - SPHERE CENTER -0.88595 -0.206294 -0.145845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.887876 -0.214576 -0.122663 RAD 0.00617284 - txt002 - SPHERE CENTER -0.834745 -0.230676 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.824206 -0.252002 -0.116217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.810793 -0.231282 -0.116868 RAD 0.00617284 - txt002 - SPHERE CENTER -0.827952 -0.234336 -0.0993785 RAD 0.00617284 - txt002 - SPHERE CENTER -0.848158 -0.251396 -0.122182 RAD 0.00617284 - txt002 - SPHERE CENTER -0.851905 -0.23373 -0.105343 RAD 0.00617284 - txt002 - SPHERE CENTER -0.858698 -0.23007 -0.128798 RAD 0.00617284 - txt002 - SPHERE CENTER -0.830999 -0.248342 -0.139672 RAD 0.00617284 - txt002 - SPHERE CENTER -0.841538 -0.227016 -0.146288 RAD 0.00617284 - txt002 - SPHERE CENTER -0.817586 -0.227621 -0.140323 RAD 0.00617284 - txt002 - SPHERE CENTER -0.867633 -0.203337 -0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER -0.868948 -0.209658 -0.0385197 RAD 0.00617284 - txt002 - SPHERE CENTER -0.84746 -0.202239 -0.0481565 RAD 0.00617284 - txt002 - SPHERE CENTER -0.865773 -0.186008 -0.0448623 RAD 0.00617284 - txt002 - SPHERE CENTER -0.889121 -0.210757 -0.0527151 RAD 0.00617284 - txt002 - SPHERE CENTER -0.885946 -0.187106 -0.0590577 RAD 0.00617284 - txt002 - SPHERE CENTER -0.887806 -0.204436 -0.0765474 RAD 0.00617284 - txt002 - SPHERE CENTER -0.870808 -0.226988 -0.0560094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.869493 -0.220667 -0.0798417 RAD 0.00617284 - txt002 - SPHERE CENTER -0.84932 -0.219569 -0.0656463 RAD 0.00617284 - txt002 - SPHERE CENTER -0.69376 0.0133465 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.668775 0.0631985 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.661946 0.0667914 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.65711 0.0452771 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.680354 0.0511945 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.673611 0.0847128 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.692019 0.069116 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.680439 0.08112 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.650366 0.0787954 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.657195 0.0752026 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.64553 0.0572811 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.62221 0.0325183 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.604582 0.0446211 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.62221 0.0325183 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.627745 0.053173 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.604582 0.0446211 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.627745 0.053173 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.62221 0.0325183 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.599047 0.0239663 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616676 0.0118635 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616676 0.0118635 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.649684 -0.00804971 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.634953 -0.000226782 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER -0.655218 0.012605 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.635947 0.0122343 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.629419 -0.0208815 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.630413 -0.00842045 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.644149 -0.0287044 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.64869 -0.0205108 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.66342 -0.0283337 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.668955 -0.00767898 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.740325 0.0440268 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.746894 0.0650768 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.739183 0.0653796 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.723153 0.0607735 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.748035 0.0437239 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.724295 0.0394207 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.741466 0.0226739 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.764065 0.04833 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.757496 0.02728 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.756355 0.0486329 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.721234 -0.0272215 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.732368 -0.0484665 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.715699 -0.0478762 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.737738 -0.0371781 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.737902 -0.0278118 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER -0.743272 -0.0165234 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.726768 -0.00656677 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.715864 -0.0385099 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.70473 -0.0172649 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.699195 -0.0379196 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.76531 -0.0058253 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.786629 -0.00415829 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.76531 -0.0058253 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.770845 0.0148294 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.786629 -0.00415829 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.770845 0.0148294 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.76531 -0.0058253 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.781094 -0.024813 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.759776 -0.02648 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.759776 -0.02648 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.712851 0.0845947 -0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER -0.706291 0.107813 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.689001 0.0909853 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.701434 0.0896851 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.730141 0.101422 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.725284 0.0832945 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.736701 0.0782041 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.717709 0.102723 -0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER -0.724268 0.0795043 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.700418 0.0858949 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.737837 0.0347427 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.740802 0.0511556 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.718185 0.043171 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.730397 0.0580833 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.760455 0.0427273 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.750049 0.0496549 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.757489 0.0263144 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.748242 0.027815 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.745277 0.0114021 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.725625 0.0198304 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.666287 0.0539145 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.650692 0.0721382 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.645053 0.0564414 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.663167 0.072935 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671925 0.0696112 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.6844 0.070408 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.68752 0.0513875 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.653812 0.0531177 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.669407 0.034894 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.648173 0.0374209 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.643951 -0.172546 -0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER -0.674191 -0.142305 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.672341 -0.123995 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.666199 -0.120057 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.651943 -0.134313 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.680334 -0.146243 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.659936 -0.156561 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER -0.682184 -0.164554 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.69459 -0.131987 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER -0.696439 -0.150298 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.688447 -0.12805 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER -0.715501 -0.153374 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.731779 -0.136231 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.712305 -0.141449 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.70911 -0.129524 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.734974 -0.148156 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER -0.712305 -0.141449 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.718696 -0.165299 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.738169 -0.160081 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.721891 -0.177224 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.718696 -0.165299 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.663122 -0.100996 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.656415 -0.0783272 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.639272 -0.0946054 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.651197 -0.0978007 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.680265 -0.0847178 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.675047 -0.104191 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.686972 -0.107387 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.66834 -0.0815225 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.675047 -0.104191 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.651197 -0.0978007 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.602641 -0.161477 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.60298 -0.154189 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.622115 -0.166695 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER -0.617912 -0.143431 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.583506 -0.148971 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER -0.598439 -0.138214 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.583168 -0.156259 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER -0.587708 -0.172234 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.58737 -0.179523 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.606843 -0.184741 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.591572 -0.120168 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.577317 -0.105912 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER -0.582843 -0.128897 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.600302 -0.111438 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.586046 -0.0971825 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.609032 -0.102708 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.600302 -0.111438 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.568587 -0.114642 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.582843 -0.128897 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.574113 -0.137627 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.5724 -0.191718 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.549732 -0.185011 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.569205 -0.179793 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.56601 -0.167868 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.552927 -0.196936 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.569205 -0.179793 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.575596 -0.203643 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.556122 -0.208861 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.578791 -0.215568 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.575596 -0.203643 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.655019 -0.213855 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.653756 -0.23668 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER -0.636974 -0.229127 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.660237 -0.233329 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671802 -0.221409 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.678283 -0.218058 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.673065 -0.198584 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.648538 -0.217207 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.649801 -0.194382 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER -0.631756 -0.209653 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.624779 -0.244096 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.607636 -0.260374 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.600929 -0.237705 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.612854 -0.240901 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.631486 -0.266765 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.636704 -0.247291 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.648629 -0.250487 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.619561 -0.26357 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER -0.636704 -0.247291 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.612854 -0.240901 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.696329 -0.224924 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.710584 -0.23918 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.687599 -0.233654 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.705059 -0.216195 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.719314 -0.23045 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.713788 -0.207465 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.705059 -0.216195 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.701855 -0.24791 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.687599 -0.233654 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.678869 -0.242384 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.786005 -0.343435 8.51251e-17 RAD 0.0555556 - txt002 - SPHERE CENTER -0.82165 -0.392454 0.0425863 RAD 0.0185185 - txt002 - SPHERE CENTER -0.824791 -0.400556 0.065698 RAD 0.00617284 - txt002 - SPHERE CENTER -0.802599 -0.392663 0.058292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.821021 -0.376528 0.0614442 RAD 0.00617284 - txt002 - SPHERE CENTER -0.843843 -0.400347 0.0499923 RAD 0.00617284 - txt002 - SPHERE CENTER -0.840073 -0.376319 0.0457385 RAD 0.00617284 - txt002 - SPHERE CENTER -0.840701 -0.392245 0.0268805 RAD 0.00617284 - txt002 - SPHERE CENTER -0.82542 -0.416482 0.0468401 RAD 0.00617284 - txt002 - SPHERE CENTER -0.822279 -0.40838 0.0237283 RAD 0.00617284 - txt002 - SPHERE CENTER -0.803228 -0.408589 0.0394341 RAD 0.00617284 - txt002 - SPHERE CENTER -0.753118 -0.370774 0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER -0.734271 -0.367981 0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER -0.731279 -0.362711 0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER -0.745269 -0.348136 0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER -0.756109 -0.376044 0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER -0.767107 -0.356199 0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER -0.774956 -0.378837 0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER -0.74212 -0.390619 0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.760966 -0.393412 0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER -0.739128 -0.385349 0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER -0.80984 -0.323622 0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER -0.80634 -0.308073 0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER -0.786996 -0.316395 0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER -0.802721 -0.300378 0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER -0.829184 -0.315299 0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER -0.825565 -0.307605 0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER -0.832685 -0.330849 0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.813459 -0.331317 0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER -0.81696 -0.346866 0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER -0.794116 -0.339639 0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER -0.854538 -0.365116 -0.0178949 RAD 0.0185185 - txt002 - SPHERE CENTER -0.878086 -0.365674 -0.0104889 RAD 0.00617284 - txt002 - SPHERE CENTER -0.859887 -0.367962 0.00604126 RAD 0.00617284 - txt002 - SPHERE CENTER -0.863875 -0.346241 -0.00500196 RAD 0.00617284 - txt002 - SPHERE CENTER -0.872736 -0.362827 -0.0344251 RAD 0.00617284 - txt002 - SPHERE CENTER -0.858526 -0.343394 -0.0289382 RAD 0.00617284 - txt002 - SPHERE CENTER -0.849188 -0.362269 -0.0418311 RAD 0.00617284 - txt002 - SPHERE CENTER -0.868748 -0.384548 -0.0233819 RAD 0.00617284 - txt002 - SPHERE CENTER -0.8452 -0.38399 -0.0307879 RAD 0.00617284 - txt002 - SPHERE CENTER -0.85055 -0.386837 -0.00685171 RAD 0.00617284 - txt002 - SPHERE CENTER -0.842728 -0.296284 0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER -0.848999 -0.272611 0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER -0.828835 -0.281616 0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER -0.829121 -0.278432 -0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.862893 -0.287278 -0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER -0.843015 -0.293099 -0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER -0.856621 -0.310951 -0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER -0.862606 -0.290462 0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER -0.856335 -0.314135 0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.842441 -0.299468 0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.818893 -0.316097 -0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER -0.819591 -0.297057 -0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER -0.814956 -0.293153 -0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER -0.79807 -0.304244 -0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER -0.823527 -0.320001 -0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER -0.802007 -0.327188 -0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER -0.822829 -0.339041 -0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER -0.840413 -0.30891 -0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.839716 -0.32795 -0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER -0.835779 -0.305006 -0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER -0.797815 -0.412267 -0.0246914 RAD 0.0185185 - txt002 - SPHERE CENTER -0.793573 -0.436217 -0.0204376 RAD 0.00617284 - txt002 - SPHERE CENTER -0.776294 -0.419454 -0.0149506 RAD 0.00617284 - txt002 - SPHERE CENTER -0.796968 -0.420728 -0.00151032 RAD 0.00617284 - txt002 - SPHERE CENTER -0.815094 -0.42903 -0.0301783 RAD 0.00617284 - txt002 - SPHERE CENTER -0.818489 -0.413542 -0.0112511 RAD 0.00617284 - txt002 - SPHERE CENTER -0.819335 -0.405081 -0.0344321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.79442 -0.427756 -0.0436186 RAD 0.00617284 - txt002 - SPHERE CENTER -0.798662 -0.403807 -0.0478724 RAD 0.00617284 - txt002 - SPHERE CENTER -0.777141 -0.410993 -0.0381316 RAD 0.00617284 - txt002 - SPHERE CENTER -0.76217 -0.363249 -0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER -0.747522 -0.356966 -0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER -0.759239 -0.339469 -0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER -0.740618 -0.352002 -0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER -0.750453 -0.380746 -0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER -0.743549 -0.375782 -0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER -0.765101 -0.387029 -0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.769074 -0.368213 -0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER -0.783722 -0.374496 -0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER -0.780791 -0.350716 -0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER -0.729282 -0.390587 -0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER -0.704862 -0.392427 -0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER -0.717401 -0.374248 -0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER -0.714218 -0.373948 0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.716744 -0.408767 0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER -0.726099 -0.390287 0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER -0.741164 -0.406927 0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER -0.719927 -0.409067 -0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER -0.744347 -0.407227 -0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.732465 -0.390887 -0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.594141 -0.358439 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.542042 -0.409774 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.517869 -0.413579 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.528508 -0.393219 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.525596 -0.395831 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.531404 -0.430134 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.539131 -0.412386 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555577 -0.426328 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.534315 -0.427522 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.558488 -0.423716 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.544953 -0.407161 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.522591 -0.339267 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.504962 -0.327164 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.522591 -0.339267 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.528125 -0.318612 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.504962 -0.327164 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.528125 -0.318612 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.522591 -0.339267 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.499428 -0.347819 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.517056 -0.359921 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.517056 -0.359921 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.550064 -0.379835 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.529037 -0.375068 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.530412 -0.371406 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.542624 -0.356494 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.548689 -0.383497 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.562276 -0.364922 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.569716 -0.388263 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.536477 -0.398409 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.557504 -0.403175 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.537852 -0.394747 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.613592 -0.428945 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.612625 -0.451897 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.593593 -0.436515 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.614807 -0.432663 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.632624 -0.444328 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.634806 -0.425094 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.633591 -0.421376 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.61141 -0.448179 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.612377 -0.425227 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.592379 -0.432797 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.621614 -0.399007 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.620974 -0.402865 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.600381 -0.39648 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.618494 -0.379986 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.642207 -0.405392 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.639728 -0.382513 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.642848 -0.401533 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.624094 -0.421886 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.624734 -0.418027 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.603501 -0.4155 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.665691 -0.37761 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.687009 -0.375943 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.665691 -0.37761 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671225 -0.356956 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.687009 -0.375943 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671225 -0.356956 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.665691 -0.37761 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.681475 -0.396598 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.660156 -0.398265 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.660156 -0.398265 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.586119 -0.388377 -0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.570335 -0.399584 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.562269 -0.381987 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.569167 -0.403942 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.594185 -0.405974 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.593017 -0.410332 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.609969 -0.394768 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.587286 -0.384019 -0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.60307 -0.372813 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.57922 -0.366422 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.638217 -0.337042 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.64748 -0.317573 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER -0.643752 -0.316388 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.624481 -0.316758 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.641945 -0.338228 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.618946 -0.337413 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.632683 -0.357697 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.661216 -0.337857 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.651954 -0.357326 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.657489 -0.336672 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.566667 -0.317871 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.562847 -0.317033 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.561133 -0.338525 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.583171 -0.327827 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.568381 -0.296378 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER -0.588706 -0.307172 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.572202 -0.297216 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.546343 -0.307077 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.550163 -0.307914 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.544629 -0.328569 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.594141 -0.358439 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.547576 -0.389119 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.525642 -0.386849 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.528407 -0.379645 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.538964 -0.366733 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.544812 -0.396323 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.558134 -0.376207 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.566746 -0.398593 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.534255 -0.409235 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.556189 -0.411505 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.537019 -0.402031 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.522591 -0.339267 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.504962 -0.327164 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.522591 -0.339267 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.528125 -0.318612 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.504962 -0.327164 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.528125 -0.318612 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.522591 -0.339267 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.499428 -0.347819 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.517056 -0.359921 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.517056 -0.359921 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.566667 -0.317871 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.551072 -0.299647 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.545434 -0.315344 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.563547 -0.29885 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.572306 -0.302174 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER -0.584781 -0.301377 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.587901 -0.320398 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.554192 -0.318667 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.569787 -0.336891 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.548554 -0.334364 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.619127 -0.408291 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.617918 -0.415912 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.597788 -0.406911 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616439 -0.39183 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.639257 -0.417292 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.637778 -0.39321 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.640465 -0.409671 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.620605 -0.432372 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.621814 -0.424751 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.600475 -0.423371 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.638217 -0.337042 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.641183 -0.320629 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER -0.618565 -0.328614 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.630777 -0.313702 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.660835 -0.329058 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.65043 -0.32213 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.65787 -0.345471 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.648623 -0.34397 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.645657 -0.360383 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.626005 -0.351955 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.665691 -0.37761 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.687009 -0.375943 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.665691 -0.37761 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671225 -0.356956 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.687009 -0.375943 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671225 -0.356956 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.665691 -0.37761 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.681475 -0.396598 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.660156 -0.398265 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.660156 -0.398265 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.57505 -0.429687 0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER -0.55776 -0.446515 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.5512 -0.423296 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.562617 -0.428387 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.58161 -0.452905 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.586467 -0.434777 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.5989 -0.436077 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.570193 -0.447815 0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER -0.587483 -0.430987 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.563633 -0.424596 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.621614 -0.399007 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.632748 -0.420252 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.61608 -0.419661 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.638118 -0.408963 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.638282 -0.399597 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.643653 -0.388308 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.627149 -0.378352 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616244 -0.410295 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.60511 -0.38905 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.599576 -0.409705 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.550064 -0.379835 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.535334 -0.372012 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555599 -0.35918 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.536327 -0.359551 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.529799 -0.392667 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.530793 -0.380205 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.54453 -0.400489 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.549071 -0.392296 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.563801 -0.400119 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.569335 -0.379464 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0996195 -0.371785 0.544331 RAD 0.166667 - txt002 - SPHERE CENTER 0.220501 -0.393621 0.729516 RAD 0.0555556 - txt002 - SPHERE CENTER 0.279642 -0.368601 0.766439 RAD 0.0185185 - txt002 - SPHERE CENTER 0.299716 -0.354293 0.765035 RAD 0.00617284 - txt002 - SPHERE CENTER 0.292196 -0.366989 0.745238 RAD 0.00617284 - txt002 - SPHERE CENTER 0.279022 -0.347717 0.753281 RAD 0.00617284 - txt002 - SPHERE CENTER 0.287162 -0.355904 0.786236 RAD 0.00617284 - txt002 - SPHERE CENTER 0.266468 -0.349329 0.774481 RAD 0.00617284 - txt002 - SPHERE CENTER 0.267088 -0.370213 0.787639 RAD 0.00617284 - txt002 - SPHERE CENTER 0.300337 -0.375177 0.778193 RAD 0.00617284 - txt002 - SPHERE CENTER 0.280263 -0.389485 0.779597 RAD 0.00617284 - txt002 - SPHERE CENTER 0.292817 -0.387873 0.758396 RAD 0.00617284 - txt002 - SPHERE CENTER 0.281062 -0.372464 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER 0.289441 -0.362978 0.671279 RAD 0.00617284 - txt002 - SPHERE CENTER 0.270044 -0.378255 0.671155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.267771 -0.35549 0.680442 RAD 0.00617284 - txt002 - SPHERE CENTER 0.30046 -0.357187 0.692603 RAD 0.00617284 - txt002 - SPHERE CENTER 0.278789 -0.349699 0.701767 RAD 0.00617284 - txt002 - SPHERE CENTER 0.29208 -0.366673 0.713804 RAD 0.00617284 - txt002 - SPHERE CENTER 0.302733 -0.379952 0.683315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.294353 -0.389438 0.704516 RAD 0.00617284 - txt002 - SPHERE CENTER 0.283335 -0.395229 0.683192 RAD 0.00617284 - txt002 - SPHERE CENTER 0.238665 -0.321889 0.726118 RAD 0.0185185 - txt002 - SPHERE CENTER 0.250544 -0.304702 0.71296 RAD 0.00617284 - txt002 - SPHERE CENTER 0.259421 -0.327715 0.714081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.238717 -0.32307 0.701455 RAD 0.00617284 - txt002 - SPHERE CENTER 0.229788 -0.298875 0.724997 RAD 0.00617284 - txt002 - SPHERE CENTER 0.21796 -0.317244 0.713492 RAD 0.00617284 - txt002 - SPHERE CENTER 0.217908 -0.316063 0.738155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.250492 -0.30352 0.737623 RAD 0.00617284 - txt002 - SPHERE CENTER 0.238612 -0.320707 0.750781 RAD 0.00617284 - txt002 - SPHERE CENTER 0.259369 -0.326533 0.738744 RAD 0.00617284 - txt002 - SPHERE CENTER 0.219082 -0.389758 0.803476 RAD 0.0185185 - txt002 - SPHERE CENTER 0.228779 -0.378635 0.823273 RAD 0.00617284 - txt002 - SPHERE CENTER 0.24293 -0.383364 0.8036 RAD 0.00617284 - txt002 - SPHERE CENTER 0.225483 -0.365937 0.802355 RAD 0.00617284 - txt002 - SPHERE CENTER 0.20493 -0.385029 0.823149 RAD 0.00617284 - txt002 - SPHERE CENTER 0.201634 -0.372331 0.802231 RAD 0.00617284 - txt002 - SPHERE CENTER 0.195233 -0.396152 0.803352 RAD 0.00617284 - txt002 - SPHERE CENTER 0.222377 -0.402455 0.824394 RAD 0.00617284 - txt002 - SPHERE CENTER 0.21268 -0.413578 0.804597 RAD 0.00617284 - txt002 - SPHERE CENTER 0.236529 -0.407185 0.804721 RAD 0.00617284 - txt002 - SPHERE CENTER 0.178104 -0.343046 0.763155 RAD 0.0185185 - txt002 - SPHERE CENTER 0.177083 -0.319723 0.771198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.198298 -0.332294 0.772443 RAD 0.00617284 - txt002 - SPHERE CENTER 0.189464 -0.325124 0.750529 RAD 0.00617284 - txt002 - SPHERE CENTER 0.156889 -0.330475 0.76191 RAD 0.00617284 - txt002 - SPHERE CENTER 0.16927 -0.335876 0.741241 RAD 0.00617284 - txt002 - SPHERE CENTER 0.157909 -0.353797 0.753867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.165722 -0.337645 0.783824 RAD 0.00617284 - txt002 - SPHERE CENTER 0.166743 -0.360967 0.775781 RAD 0.00617284 - txt002 - SPHERE CENTER 0.186938 -0.350216 0.785069 RAD 0.00617284 - txt002 - SPHERE CENTER 0.15994 -0.414778 0.766553 RAD 0.0185185 - txt002 - SPHERE CENTER 0.147477 -0.412573 0.787754 RAD 0.00617284 - txt002 - SPHERE CENTER 0.172167 -0.412448 0.787878 RAD 0.00617284 - txt002 - SPHERE CENTER 0.15977 -0.39322 0.77859 RAD 0.00617284 - txt002 - SPHERE CENTER 0.13525 -0.414903 0.766429 RAD 0.00617284 - txt002 - SPHERE CENTER 0.147543 -0.39555 0.757266 RAD 0.00617284 - txt002 - SPHERE CENTER 0.147713 -0.417108 0.745229 RAD 0.00617284 - txt002 - SPHERE CENTER 0.147647 -0.434131 0.775717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.16011 -0.436336 0.754517 RAD 0.00617284 - txt002 - SPHERE CENTER 0.172338 -0.434006 0.775841 RAD 0.00617284 - txt002 - SPHERE CENTER 0.261479 -0.440333 0.769837 RAD 0.0185185 - txt002 - SPHERE CENTER 0.282991 -0.443285 0.781591 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282046 -0.4302 0.760673 RAD 0.00617284 - txt002 - SPHERE CENTER 0.271991 -0.421181 0.781342 RAD 0.00617284 - txt002 - SPHERE CENTER 0.262424 -0.453417 0.790755 RAD 0.00617284 - txt002 - SPHERE CENTER 0.251423 -0.431313 0.790506 RAD 0.00617284 - txt002 - SPHERE CENTER 0.240911 -0.450466 0.779001 RAD 0.00617284 - txt002 - SPHERE CENTER 0.27248 -0.462437 0.770086 RAD 0.00617284 - txt002 - SPHERE CENTER 0.250967 -0.459485 0.758332 RAD 0.00617284 - txt002 - SPHERE CENTER 0.271534 -0.449353 0.749168 RAD 0.00617284 - txt002 - SPHERE CENTER 0.202338 -0.465353 0.732914 RAD 0.0185185 - txt002 - SPHERE CENTER 0.204606 -0.486123 0.746073 RAD 0.00617284 - txt002 - SPHERE CENTER 0.223366 -0.470107 0.744951 RAD 0.00617284 - txt002 - SPHERE CENTER 0.202946 -0.464339 0.757577 RAD 0.00617284 - txt002 - SPHERE CENTER 0.183578 -0.481368 0.734036 RAD 0.00617284 - txt002 - SPHERE CENTER 0.181918 -0.459584 0.745541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.18131 -0.460599 0.720878 RAD 0.00617284 - txt002 - SPHERE CENTER 0.203998 -0.487137 0.72141 RAD 0.00617284 - txt002 - SPHERE CENTER 0.201729 -0.466367 0.708251 RAD 0.00617284 - txt002 - SPHERE CENTER 0.222757 -0.471122 0.720288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.262898 -0.444196 0.695877 RAD 0.0185185 - txt002 - SPHERE CENTER 0.285685 -0.449273 0.687835 RAD 0.00617284 - txt002 - SPHERE CENTER 0.27701 -0.426189 0.68659 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282528 -0.436139 0.708504 RAD 0.00617284 - txt002 - SPHERE CENTER 0.271573 -0.46728 0.697123 RAD 0.00617284 - txt002 - SPHERE CENTER 0.268416 -0.454146 0.717791 RAD 0.00617284 - txt002 - SPHERE CENTER 0.248787 -0.462204 0.705165 RAD 0.00617284 - txt002 - SPHERE CENTER 0.266055 -0.45733 0.675209 RAD 0.00617284 - txt002 - SPHERE CENTER 0.243269 -0.452254 0.683251 RAD 0.00617284 - txt002 - SPHERE CENTER 0.257381 -0.434246 0.673964 RAD 0.00617284 - txt002 - SPHERE CENTER 0.31427 -0.31427 0.544331 RAD 0.0555556 - txt002 - SPHERE CENTER 0.367156 -0.277961 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.374298 -0.269898 0.485076 RAD 0.00617284 - txt002 - SPHERE CENTER 0.362218 -0.291334 0.487134 RAD 0.00617284 - txt002 - SPHERE CENTER 0.350338 -0.270045 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER 0.379235 -0.256525 0.505236 RAD 0.00617284 - txt002 - SPHERE CENTER 0.355276 -0.256671 0.511201 RAD 0.00617284 - txt002 - SPHERE CENTER 0.372093 -0.264588 0.527454 RAD 0.00617284 - txt002 - SPHERE CENTER 0.391115 -0.277815 0.501329 RAD 0.00617284 - txt002 - SPHERE CENTER 0.383973 -0.285878 0.523547 RAD 0.00617284 - txt002 - SPHERE CENTER 0.379036 -0.299251 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.31427 -0.31427 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER 0.304189 -0.304189 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER 0.29042 -0.307879 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.307879 -0.29042 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.328039 -0.31058 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER 0.331729 -0.29681 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.33812 -0.32066 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.31058 -0.328039 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER 0.32066 -0.33812 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.29681 -0.331729 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.297666 -0.252306 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.305995 -0.235688 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER 0.321516 -0.245915 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.312359 -0.259438 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282145 -0.242079 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER 0.288509 -0.265828 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.273816 -0.258696 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.291303 -0.228556 0.509559 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282974 -0.245173 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.306824 -0.238783 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.367156 -0.277961 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.385852 -0.261966 0.57931 RAD 0.00617284 - txt002 - SPHERE CENTER 0.38141 -0.278159 0.561208 RAD 0.00617284 - txt002 - SPHERE CENTER 0.36581 -0.259422 0.565115 RAD 0.00617284 - txt002 - SPHERE CENTER 0.371598 -0.261768 0.599471 RAD 0.00617284 - txt002 - SPHERE CENTER 0.351556 -0.259225 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER 0.352901 -0.277764 0.601529 RAD 0.00617284 - txt002 - SPHERE CENTER 0.387198 -0.280504 0.595564 RAD 0.00617284 - txt002 - SPHERE CENTER 0.368501 -0.2965 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER 0.382755 -0.296698 0.577461 RAD 0.00617284 - txt002 - SPHERE CENTER 0.297666 -0.252306 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.30415 -0.228803 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER 0.321516 -0.245915 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.306824 -0.238783 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.2803 -0.235194 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282974 -0.245173 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.273816 -0.258696 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.294992 -0.242326 0.603794 RAD 0.00617284 - txt002 - SPHERE CENTER 0.288509 -0.265828 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.312359 -0.259438 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.31427 -0.31427 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.32435 -0.304189 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.33812 -0.307879 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.32066 -0.29042 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.3005 -0.31058 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.29681 -0.29681 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.29042 -0.32066 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.317959 -0.328039 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.307879 -0.33812 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.331729 -0.331729 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.383759 -0.339925 0.544331 RAD 0.0185185 - txt002 - SPHERE CENTER 0.407156 -0.334762 0.538366 RAD 0.00617284 - txt002 - SPHERE CENTER 0.388696 -0.326552 0.524171 RAD 0.00617284 - txt002 - SPHERE CENTER 0.392275 -0.31686 0.546597 RAD 0.00617284 - txt002 - SPHERE CENTER 0.402218 -0.348135 0.558526 RAD 0.00617284 - txt002 - SPHERE CENTER 0.387337 -0.330233 0.566757 RAD 0.00617284 - txt002 - SPHERE CENTER 0.378821 -0.353299 0.564491 RAD 0.00617284 - txt002 - SPHERE CENTER 0.39864 -0.357827 0.536101 RAD 0.00617284 - txt002 - SPHERE CENTER 0.375243 -0.362991 0.542066 RAD 0.00617284 - txt002 - SPHERE CENTER 0.380181 -0.349618 0.521905 RAD 0.00617284 - txt002 - SPHERE CENTER 0.330873 -0.376234 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.346394 -0.386461 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER 0.354723 -0.369843 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.340031 -0.362711 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.322544 -0.392851 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER 0.316181 -0.369102 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.307023 -0.382624 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.337237 -0.399983 0.579103 RAD 0.00617284 - txt002 - SPHERE CENTER 0.321715 -0.389757 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.345565 -0.383366 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.330873 -0.376234 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.348239 -0.393346 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.354723 -0.369843 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.345565 -0.383366 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.324389 -0.399736 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.321715 -0.389757 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.307023 -0.382624 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.333547 -0.386213 0.484868 RAD 0.00617284 - txt002 - SPHERE CENTER 0.316181 -0.369102 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.340031 -0.362711 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.166275 -0.191247 0.655442 RAD 0.0555556 - txt002 - SPHERE CENTER 0.20793 -0.130089 0.652044 RAD 0.0185185 - txt002 - SPHERE CENTER 0.221102 -0.115471 0.637128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.220766 -0.13987 0.633356 RAD 0.00617284 - txt002 - SPHERE CENTER 0.200597 -0.126388 0.628759 RAD 0.00617284 - txt002 - SPHERE CENTER 0.208266 -0.10569 0.655816 RAD 0.00617284 - txt002 - SPHERE CENTER 0.187762 -0.116607 0.647447 RAD 0.00617284 - txt002 - SPHERE CENTER 0.195095 -0.120308 0.670732 RAD 0.00617284 - txt002 - SPHERE CENTER 0.228435 -0.119172 0.660413 RAD 0.00617284 - txt002 - SPHERE CENTER 0.215264 -0.13379 0.675329 RAD 0.00617284 - txt002 - SPHERE CENTER 0.228099 -0.143571 0.656641 RAD 0.00617284 - txt002 - SPHERE CENTER 0.230419 -0.192135 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.243049 -0.18209 0.599717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.218634 -0.185251 0.597829 RAD 0.00617284 - txt002 - SPHERE CENTER 0.227721 -0.168159 0.613157 RAD 0.00617284 - txt002 - SPHERE CENTER 0.254834 -0.188974 0.620293 RAD 0.00617284 - txt002 - SPHERE CENTER 0.239506 -0.175043 0.633733 RAD 0.00617284 - txt002 - SPHERE CENTER 0.242204 -0.199019 0.638981 RAD 0.00617284 - txt002 - SPHERE CENTER 0.245747 -0.206066 0.604965 RAD 0.00617284 - txt002 - SPHERE CENTER 0.233117 -0.216111 0.623653 RAD 0.00617284 - txt002 - SPHERE CENTER 0.221332 -0.209227 0.603077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.172673 -0.154295 0.591563 RAD 0.0185185 - txt002 - SPHERE CENTER 0.180792 -0.15554 0.568278 RAD 0.00617284 - txt002 - SPHERE CENTER 0.19323 -0.166926 0.586315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.171251 -0.17557 0.579113 RAD 0.00617284 - txt002 - SPHERE CENTER 0.160236 -0.142909 0.573526 RAD 0.00617284 - txt002 - SPHERE CENTER 0.150694 -0.162939 0.584361 RAD 0.00617284 - txt002 - SPHERE CENTER 0.152117 -0.141663 0.596811 RAD 0.00617284 - txt002 - SPHERE CENTER 0.182215 -0.134265 0.580727 RAD 0.00617284 - txt002 - SPHERE CENTER 0.174096 -0.133019 0.604012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.194652 -0.145651 0.598764 RAD 0.00617284 - txt002 - SPHERE CENTER 0.143787 -0.129201 0.689081 RAD 0.0185185 - txt002 - SPHERE CENTER 0.14887 -0.105335 0.692853 RAD 0.00617284 - txt002 - SPHERE CENTER 0.167242 -0.121723 0.690969 RAD 0.00617284 - txt002 - SPHERE CENTER 0.153943 -0.115741 0.671044 RAD 0.00617284 - txt002 - SPHERE CENTER 0.125414 -0.112813 0.690965 RAD 0.00617284 - txt002 - SPHERE CENTER 0.130487 -0.123219 0.669156 RAD 0.00617284 - txt002 - SPHERE CENTER 0.120331 -0.136679 0.687193 RAD 0.00617284 - txt002 - SPHERE CENTER 0.138714 -0.118795 0.71089 RAD 0.00617284 - txt002 - SPHERE CENTER 0.13363 -0.142661 0.707118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.157086 -0.135183 0.709006 RAD 0.00617284 - txt002 - SPHERE CENTER 0.108529 -0.153407 0.6286 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0995811 -0.130858 0.624003 RAD 0.00617284 - txt002 - SPHERE CENTER 0.113639 -0.134736 0.643928 RAD 0.00617284 - txt002 - SPHERE CENTER 0.123725 -0.135326 0.621398 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0944715 -0.149528 0.608675 RAD 0.00617284 - txt002 - SPHERE CENTER 0.118615 -0.153997 0.60607 RAD 0.00617284 - txt002 - SPHERE CENTER 0.10342 -0.172078 0.613272 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0843858 -0.148938 0.631205 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0933338 -0.171487 0.635801 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0984435 -0.152816 0.65113 RAD 0.00617284 - txt002 - SPHERE CENTER 0.102131 -0.190359 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0897843 -0.179968 0.711167 RAD 0.00617284 - txt002 - SPHERE CENTER 0.114103 -0.183804 0.713055 RAD 0.00617284 - txt002 - SPHERE CENTER 0.105492 -0.166467 0.697727 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0778128 -0.186523 0.690591 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0935207 -0.173022 0.677151 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0901597 -0.196914 0.671903 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0864233 -0.20386 0.705919 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0987702 -0.214251 0.687231 RAD 0.00617284 - txt002 - SPHERE CENTER 0.110742 -0.207696 0.707807 RAD 0.00617284 - txt002 - SPHERE CENTER 0.201532 -0.167041 0.715923 RAD 0.0185185 - txt002 - SPHERE CENTER 0.219088 -0.151829 0.724292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.221861 -0.163068 0.702483 RAD 0.00617284 - txt002 - SPHERE CENTER 0.205084 -0.14514 0.705088 RAD 0.00617284 - txt002 - SPHERE CENTER 0.19876 -0.155801 0.737733 RAD 0.00617284 - txt002 - SPHERE CENTER 0.184756 -0.149113 0.718528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.181204 -0.171014 0.729364 RAD 0.00617284 - txt002 - SPHERE CENTER 0.215537 -0.173729 0.735128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.197981 -0.188942 0.726759 RAD 0.00617284 - txt002 - SPHERE CENTER 0.218309 -0.184969 0.713318 RAD 0.00617284 - txt002 - SPHERE CENTER 0.159877 -0.228199 0.719322 RAD 0.0185185 - txt002 - SPHERE CENTER 0.167942 -0.229756 0.742607 RAD 0.00617284 - txt002 - SPHERE CENTER 0.183484 -0.223214 0.72457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.16569 -0.207683 0.731771 RAD 0.00617284 - txt002 - SPHERE CENTER 0.144336 -0.234741 0.737359 RAD 0.00617284 - txt002 - SPHERE CENTER 0.142084 -0.212668 0.726523 RAD 0.00617284 - txt002 - SPHERE CENTER 0.13627 -0.233184 0.714074 RAD 0.00617284 - txt002 - SPHERE CENTER 0.162129 -0.250271 0.730157 RAD 0.00617284 - txt002 - SPHERE CENTER 0.154064 -0.248714 0.706872 RAD 0.00617284 - txt002 - SPHERE CENTER 0.177671 -0.243729 0.71212 RAD 0.00617284 - txt002 - SPHERE CENTER 0.224021 -0.229087 0.682285 RAD 0.0185185 - txt002 - SPHERE CENTER 0.248268 -0.22829 0.686881 RAD 0.00617284 - txt002 - SPHERE CENTER 0.2391 -0.216949 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER 0.234532 -0.207937 0.689486 RAD 0.00617284 - txt002 - SPHERE CENTER 0.233189 -0.240428 0.702209 RAD 0.00617284 - txt002 - SPHERE CENTER 0.219453 -0.220075 0.704814 RAD 0.00617284 - txt002 - SPHERE CENTER 0.208942 -0.241225 0.697613 RAD 0.00617284 - txt002 - SPHERE CENTER 0.237756 -0.249439 0.67968 RAD 0.00617284 - txt002 - SPHERE CENTER 0.213509 -0.250236 0.675083 RAD 0.00617284 - txt002 - SPHERE CENTER 0.228589 -0.238098 0.659755 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0058509 -0.451136 0.729516 RAD 0.0555556 - txt002 - SPHERE CENTER 0.0051487 -0.447081 0.803476 RAD 0.0185185 - txt002 - SPHERE CENTER 0.01504 -0.435909 0.823149 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0289993 -0.440694 0.803352 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0115452 -0.423265 0.802231 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00881065 -0.442297 0.823273 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0123054 -0.429652 0.802355 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0187019 -0.453468 0.8036 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00864346 -0.459725 0.824394 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0012478 -0.470897 0.804721 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0226028 -0.46451 0.804597 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0688765 -0.439178 0.766553 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0903221 -0.426942 0.766429 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0806307 -0.435083 0.745229 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0699989 -0.416328 0.757266 RAD 0.00617284 - txt002 - SPHERE CENTER 0.078568 -0.431037 0.787754 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0582447 -0.420423 0.77859 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0571224 -0.443274 0.787878 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0891998 -0.449792 0.775717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0677542 -0.462029 0.775841 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0795084 -0.457933 0.754517 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0172804 -0.386138 0.763155 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0293677 -0.364644 0.76191 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0401449 -0.385352 0.753867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0213457 -0.375512 0.741241 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0065032 -0.36543 0.771198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00151881 -0.376298 0.750529 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00558411 -0.386924 0.772443 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0253024 -0.37527 0.783824 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0132151 -0.396764 0.785069 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0360796 -0.395978 0.775781 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0578769 -0.459039 0.766439 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0707378 -0.451803 0.786236 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0461991 -0.454158 0.787639 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0561039 -0.435761 0.774481 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0824157 -0.456685 0.765035 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0677817 -0.440643 0.753281 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0695548 -0.46392 0.745238 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0725109 -0.475081 0.778193 RAD 0.00617284 - txt002 - SPHERE CENTER -0.05965 -0.482316 0.758396 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0479721 -0.477435 0.779597 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0457452 -0.398096 0.726118 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0495643 -0.373728 0.724997 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0306825 -0.382672 0.738155 RAD 0.00617284 - txt002 - SPHERE CENTER -0.030137 -0.383722 0.713492 RAD 0.00617284 - txt002 - SPHERE CENTER -0.064627 -0.389151 0.71296 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0451997 -0.399146 0.701455 RAD 0.00617284 - txt002 - SPHERE CENTER -0.060808 -0.41352 0.714081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0651725 -0.388102 0.737623 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0613535 -0.41247 0.738744 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0462908 -0.397047 0.750781 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0571747 -0.463094 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER -0.081612 -0.459563 0.692603 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0696122 -0.463589 0.713804 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0665888 -0.442243 0.701767 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0691745 -0.459069 0.671279 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0541513 -0.441749 0.680442 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0447373 -0.4626 0.671155 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0721979 -0.480415 0.683315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0477607 -0.483946 0.683192 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0601982 -0.48444 0.704516 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00628079 -0.512079 0.769837 RAD 0.0185185 - txt002 - SPHERE CENTER -0.000557006 -0.523883 0.790755 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0165974 -0.51057 0.779001 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00208214 -0.49924 0.790506 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0234352 -0.525392 0.781591 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0249603 -0.500749 0.781342 RAD 0.00617284 - txt002 - SPHERE CENTER -0.029159 -0.513588 0.760673 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00475566 -0.536722 0.770086 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0104794 -0.524918 0.749168 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0123987 -0.523409 0.758332 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00557859 -0.516134 0.695877 RAD 0.0185185 - txt002 - SPHERE CENTER -0.00154892 -0.540463 0.697123 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0156462 -0.524673 0.705165 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00538221 -0.52751 0.717791 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0227737 -0.531924 0.687835 RAD 0.00617284 - txt002 - SPHERE CENTER -0.026607 -0.518971 0.708504 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0268034 -0.507596 0.68659 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00174531 -0.529087 0.675209 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00577498 -0.504759 0.673964 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0154498 -0.513298 0.683251 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0574471 -0.504176 0.732914 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0817008 -0.508666 0.734036 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0732807 -0.489545 0.720878 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0722467 -0.488971 0.745541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0658672 -0.523298 0.746073 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0564131 -0.503602 0.757577 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0416134 -0.518808 0.744951 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0669012 -0.523872 0.72141 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0426474 -0.519382 0.720288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.058481 -0.504751 0.708251 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0483751 -0.248762 0.655442 RAD 0.0555556 - txt002 - SPHERE CENTER -0.0599222 -0.183785 0.689081 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0522053 -0.160406 0.690965 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0358698 -0.178533 0.687193 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0513956 -0.171954 0.669156 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0762577 -0.165658 0.692853 RAD 0.00617284 - txt002 - SPHERE CENTER -0.075448 -0.177206 0.671044 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0839747 -0.189036 0.690969 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0607319 -0.172236 0.71089 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0684488 -0.195615 0.709006 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0443964 -0.190363 0.707118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00673113 -0.215921 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0258737 -0.20044 0.690591 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0203763 -0.215612 0.671903 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00551963 -0.196602 0.677151 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0122285 -0.200749 0.711167 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00812553 -0.196911 0.697727 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00691403 -0.21623 0.713055 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0270852 -0.21976 0.705919 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00794264 -0.235241 0.707807 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0215878 -0.234932 0.687231 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0172857 -0.187119 0.6286 RAD 0.0185185 - txt002 - SPHERE CENTER -0.00705049 -0.176731 0.608675 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00352517 -0.200733 0.613272 RAD 0.00617284 - txt002 - SPHERE CENTER -0.025725 -0.192673 0.60607 RAD 0.00617284 - txt002 - SPHERE CENTER -0.020811 -0.163117 0.624003 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0394855 -0.179058 0.621398 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0310463 -0.173504 0.643928 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00138875 -0.171177 0.631205 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00884647 -0.181564 0.65113 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00491406 -0.195179 0.635801 RAD 0.00617284 - txt002 - SPHERE CENTER -0.115028 -0.216626 0.652044 RAD 0.0185185 - txt002 - SPHERE CENTER -0.127519 -0.195663 0.655816 RAD 0.00617284 - txt002 - SPHERE CENTER -0.108803 -0.201738 0.670732 RAD 0.00617284 - txt002 - SPHERE CENTER -0.104303 -0.194866 0.647447 RAD 0.00617284 - txt002 - SPHERE CENTER -0.133744 -0.210551 0.637128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.110528 -0.209754 0.628759 RAD 0.00617284 - txt002 - SPHERE CENTER -0.121254 -0.231514 0.633356 RAD 0.00617284 - txt002 - SPHERE CENTER -0.138245 -0.217423 0.660413 RAD 0.00617284 - txt002 - SPHERE CENTER -0.125754 -0.238386 0.656641 RAD 0.00617284 - txt002 - SPHERE CENTER -0.119529 -0.223497 0.675329 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0723919 -0.21996 0.591563 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0673141 -0.20388 0.573526 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0609052 -0.198742 0.596811 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0490355 -0.216456 0.584361 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0788008 -0.225098 0.568278 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0605222 -0.237674 0.579113 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0838786 -0.241177 0.586315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0906706 -0.207384 0.580727 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0957484 -0.223463 0.598764 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0842617 -0.202246 0.604012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.103481 -0.281603 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER -0.126206 -0.291073 0.620293 RAD 0.00617284 - txt002 - SPHERE CENTER -0.110246 -0.293457 0.638981 RAD 0.00617284 - txt002 - SPHERE CENTER -0.119897 -0.271345 0.633733 RAD 0.00617284 - txt002 - SPHERE CENTER -0.119442 -0.279219 0.599717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.113132 -0.25949 0.613157 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0967168 -0.269749 0.597829 RAD 0.00617284 - txt002 - SPHERE CENTER -0.10979 -0.301332 0.604965 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0870656 -0.291862 0.603077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0938302 -0.303716 0.623653 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0910116 -0.245428 0.715923 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0942304 -0.234308 0.737733 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0714204 -0.238704 0.729364 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0854464 -0.221514 0.718528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.113822 -0.241032 0.724292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.105038 -0.228237 0.705088 RAD 0.00617284 - txt002 - SPHERE CENTER -0.110603 -0.252152 0.702483 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0997955 -0.258223 0.735128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0965768 -0.269343 0.713318 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0769856 -0.262619 0.726759 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0794645 -0.310405 0.682285 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0817333 -0.324811 0.702209 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0603366 -0.313378 0.697613 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0800146 -0.300317 0.704814 RAD 0.00617284 - txt002 - SPHERE CENTER -0.100861 -0.321838 0.686881 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0991425 -0.297345 0.689486 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0985923 -0.307433 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0811832 -0.334899 0.67968 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0789143 -0.320493 0.659755 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0597864 -0.323466 0.675083 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0243582 -0.277564 0.719322 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0076281 -0.275459 0.737359 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00142185 -0.270078 0.714074 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0167139 -0.255218 0.726523 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0305645 -0.282946 0.742607 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0396503 -0.262704 0.731771 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0472946 -0.285051 0.72457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0152725 -0.297806 0.730157 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0320026 -0.299911 0.71212 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00906621 -0.292425 0.706872 RAD 0.00617284 - txt002 - SPHERE CENTER -0.115031 -0.4293 0.544331 RAD 0.0555556 - txt002 - SPHERE CENTER -0.178985 -0.424299 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.190929 -0.412497 0.599471 RAD 0.00617284 - txt002 - SPHERE CENTER -0.16674 -0.417001 0.601529 RAD 0.00617284 - txt002 - SPHERE CENTER -0.174844 -0.400273 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER -0.203175 -0.419795 0.57931 RAD 0.00617284 - txt002 - SPHERE CENTER -0.18709 -0.407571 0.565115 RAD 0.00617284 - txt002 - SPHERE CENTER -0.191231 -0.431597 0.561208 RAD 0.00617284 - txt002 - SPHERE CENTER -0.195071 -0.436523 0.595564 RAD 0.00617284 - txt002 - SPHERE CENTER -0.183127 -0.448325 0.577461 RAD 0.00617284 - txt002 - SPHERE CENTER -0.170881 -0.441027 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER -0.115031 -0.4293 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER -0.10495 -0.41922 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0911807 -0.42291 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.10864 -0.40545 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.128801 -0.425611 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER -0.13249 -0.411841 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.138881 -0.435691 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.111341 -0.44307 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER -0.121421 -0.45315 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0975713 -0.44676 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.131634 -0.367336 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.12515 -0.343834 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER -0.107784 -0.360946 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.122476 -0.353814 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.149 -0.350225 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER -0.146326 -0.360204 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.155484 -0.373727 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.134308 -0.357357 0.603794 RAD 0.00617284 - txt002 - SPHERE CENTER -0.140792 -0.380859 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.116942 -0.374468 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.178985 -0.424299 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.200165 -0.411775 0.505236 RAD 0.00617284 - txt002 - SPHERE CENTER -0.189948 -0.415187 0.527454 RAD 0.00617284 - txt002 - SPHERE CENTER -0.179342 -0.399922 0.511201 RAD 0.00617284 - txt002 - SPHERE CENTER -0.189202 -0.420888 0.485076 RAD 0.00617284 - txt002 - SPHERE CENTER -0.168379 -0.409035 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER -0.168023 -0.433412 0.487134 RAD 0.00617284 - txt002 - SPHERE CENTER -0.199808 -0.436152 0.501329 RAD 0.00617284 - txt002 - SPHERE CENTER -0.178629 -0.448677 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.189591 -0.439564 0.523547 RAD 0.00617284 - txt002 - SPHERE CENTER -0.131634 -0.367336 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.123305 -0.350719 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER -0.107784 -0.360946 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.116942 -0.374468 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.147155 -0.357109 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER -0.140792 -0.380859 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.155484 -0.373727 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.137998 -0.343587 0.509559 RAD 0.00617284 - txt002 - SPHERE CENTER -0.146326 -0.360204 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.122476 -0.353814 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.115031 -0.4293 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER -0.125111 -0.41922 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER -0.138881 -0.42291 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.121421 -0.40545 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.101261 -0.425611 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0975713 -0.411841 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0911807 -0.435691 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.11872 -0.44307 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER -0.10864 -0.45315 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.13249 -0.44676 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.162382 -0.486264 0.544331 RAD 0.0185185 - txt002 - SPHERE CENTER -0.174264 -0.502603 0.558526 RAD 0.00617284 - txt002 - SPHERE CENTER -0.15142 -0.495376 0.564491 RAD 0.00617284 - txt002 - SPHERE CENTER -0.170327 -0.479659 0.566757 RAD 0.00617284 - txt002 - SPHERE CENTER -0.185226 -0.49349 0.538366 RAD 0.00617284 - txt002 - SPHERE CENTER -0.18129 -0.470546 0.546597 RAD 0.00617284 - txt002 - SPHERE CENTER -0.173345 -0.477151 0.524171 RAD 0.00617284 - txt002 - SPHERE CENTER -0.166319 -0.509207 0.536101 RAD 0.00617284 - txt002 - SPHERE CENTER -0.154437 -0.492868 0.521905 RAD 0.00617284 - txt002 - SPHERE CENTER -0.143475 -0.501981 0.542066 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0984274 -0.491265 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0810612 -0.508376 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0745774 -0.484874 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0837352 -0.498397 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.104911 -0.514767 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.107585 -0.504787 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.122277 -0.497655 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0957534 -0.501244 0.484868 RAD 0.00617284 - txt002 - SPHERE CENTER -0.11312 -0.484132 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0892696 -0.477742 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0984274 -0.491265 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.082906 -0.501491 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0745774 -0.484874 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0892696 -0.477742 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.106756 -0.507882 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER -0.11312 -0.484132 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.122277 -0.497655 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0920638 -0.515014 0.579103 RAD 0.00617284 - txt002 - SPHERE CENTER -0.107585 -0.504787 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0837352 -0.498397 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.153845 -0.574159 0.618405 RAD 0.0555556 - txt002 - SPHERE CENTER 0.202534 -0.612768 0.658726 RAD 0.0185185 - txt002 - SPHERE CENTER 0.225282 -0.612732 0.668328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.22113 -0.60221 0.64638 RAD 0.00617284 - txt002 - SPHERE CENTER 0.212428 -0.591695 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER 0.206686 -0.62329 0.680674 RAD 0.00617284 - txt002 - SPHERE CENTER 0.193832 -0.602253 0.679302 RAD 0.00617284 - txt002 - SPHERE CENTER 0.183939 -0.623325 0.671072 RAD 0.00617284 - txt002 - SPHERE CENTER 0.215388 -0.633805 0.660098 RAD 0.00617284 - txt002 - SPHERE CENTER 0.192641 -0.63384 0.650495 RAD 0.00617284 - txt002 - SPHERE CENTER 0.211236 -0.623283 0.63815 RAD 0.00617284 - txt002 - SPHERE CENTER 0.225396 -0.554987 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.243024 -0.542885 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.225396 -0.554987 0.593714 RAD 0.00617284 - txt002 - SPHERE CENTER 0.219861 -0.534333 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.243024 -0.542885 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.219861 -0.534333 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.225396 -0.554987 0.643096 RAD 0.00617284 - txt002 - SPHERE CENTER 0.248559 -0.563539 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.23093 -0.575642 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.23093 -0.575642 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.184086 -0.543919 0.678886 RAD 0.0185185 - txt002 - SPHERE CENTER 0.200547 -0.527458 0.687117 RAD 0.00617284 - txt002 - SPHERE CENTER 0.205161 -0.540303 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.187702 -0.522843 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.179472 -0.531074 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.166627 -0.526459 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER 0.163011 -0.547535 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER 0.196931 -0.548533 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.18047 -0.564994 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER 0.201546 -0.561378 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER 0.130984 -0.631939 0.658726 RAD 0.0185185 - txt002 - SPHERE CENTER 0.132649 -0.643128 0.680674 RAD 0.00617284 - txt002 - SPHERE CENTER 0.152367 -0.631785 0.671072 RAD 0.00617284 - txt002 - SPHERE CENTER 0.133263 -0.618482 0.679302 RAD 0.00617284 - txt002 - SPHERE CENTER 0.111266 -0.643283 0.668328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.11188 -0.618637 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER 0.109601 -0.632094 0.64638 RAD 0.00617284 - txt002 - SPHERE CENTER 0.130371 -0.656585 0.660098 RAD 0.00617284 - txt002 - SPHERE CENTER 0.128706 -0.645397 0.63815 RAD 0.00617284 - txt002 - SPHERE CENTER 0.150088 -0.645242 0.650495 RAD 0.00617284 - txt002 - SPHERE CENTER 0.112536 -0.56309 0.678886 RAD 0.0185185 - txt002 - SPHERE CENTER 0.11011 -0.549659 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.132596 -0.555684 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER 0.118927 -0.53924 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER 0.09005 -0.557065 0.687117 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0988668 -0.546646 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0924762 -0.570497 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.103719 -0.573509 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.106145 -0.58694 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER 0.126205 -0.579534 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0822954 -0.593331 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0609772 -0.591664 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0822954 -0.593331 0.643096 RAD 0.00617284 - txt002 - SPHERE CENTER 0.076761 -0.572676 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0609772 -0.591664 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.076761 -0.572676 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0822954 -0.593331 0.593714 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0665116 -0.612319 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0878298 -0.613986 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0878298 -0.613986 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.172294 -0.643008 0.598245 RAD 0.0185185 - txt002 - SPHERE CENTER 0.189742 -0.660425 0.599616 RAD 0.00617284 - txt002 - SPHERE CENTER 0.196144 -0.636618 0.598245 RAD 0.00617284 - txt002 - SPHERE CENTER 0.185725 -0.645434 0.618821 RAD 0.00617284 - txt002 - SPHERE CENTER 0.165892 -0.666816 0.599616 RAD 0.00617284 - txt002 - SPHERE CENTER 0.161875 -0.651825 0.618821 RAD 0.00617284 - txt002 - SPHERE CENTER 0.148444 -0.649399 0.598245 RAD 0.00617284 - txt002 - SPHERE CENTER 0.17631 -0.657999 0.57904 RAD 0.00617284 - txt002 - SPHERE CENTER 0.158862 -0.640582 0.577669 RAD 0.00617284 - txt002 - SPHERE CENTER 0.182712 -0.634191 0.577669 RAD 0.00617284 - txt002 - SPHERE CENTER 0.123605 -0.6044 0.557924 RAD 0.0185185 - txt002 - SPHERE CENTER 0.107144 -0.620861 0.549693 RAD 0.00617284 - txt002 - SPHERE CENTER 0.119989 -0.625475 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER 0.102529 -0.608016 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER 0.11076 -0.599785 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER 0.106145 -0.58694 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER 0.127221 -0.583324 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER 0.128219 -0.617245 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER 0.14468 -0.600784 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER 0.141064 -0.621859 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER 0.195155 -0.585228 0.557924 RAD 0.0185185 - txt002 - SPHERE CENTER 0.203972 -0.574809 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER 0.181486 -0.568784 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER 0.201546 -0.561378 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER 0.217641 -0.591253 0.549693 RAD 0.00617284 - txt002 - SPHERE CENTER 0.215215 -0.577822 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER 0.208824 -0.601672 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER 0.197581 -0.598659 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER 0.188764 -0.609078 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER 0.175095 -0.592634 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0329639 -0.552323 0.43322 RAD 0.0555556 - txt002 - SPHERE CENTER 0.0248832 -0.625877 0.436618 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0316054 -0.646362 0.448652 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0478 -0.627981 0.445566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0287309 -0.625173 0.460998 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00868865 -0.644258 0.439705 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00581415 -0.623069 0.45205 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00196644 -0.623773 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0277577 -0.647066 0.424272 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0210355 -0.62658 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0439523 -0.628685 0.421186 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0822954 -0.593331 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER 0.105299 -0.593994 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER 0.100664 -0.582384 0.457911 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0926585 -0.572783 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0869303 -0.604941 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0742898 -0.58373 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0639267 -0.604278 0.482603 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0949359 -0.614541 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0719323 -0.613879 0.46131 RAD 0.00617284 - txt002 - SPHERE CENTER 0.090301 -0.602932 0.448964 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0138144 -0.584567 0.497099 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0177119 -0.584898 0.521479 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0364224 -0.580268 0.506047 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0185345 -0.56353 0.509133 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00489609 -0.589197 0.512531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00407348 -0.567829 0.500186 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00879364 -0.588867 0.488152 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0129918 -0.605935 0.509445 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00909422 -0.605605 0.485065 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0317022 -0.601305 0.494013 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0244483 -0.584869 0.399581 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0473753 -0.5935 0.402668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0308315 -0.595617 0.420874 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0399691 -0.57344 0.415013 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0409921 -0.582752 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0335859 -0.562692 0.39372 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0180651 -0.574121 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0318545 -0.604929 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00892756 -0.596298 0.384149 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0153107 -0.607046 0.405442 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0355172 -0.54356 0.460062 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0495897 -0.530389 0.475494 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0261165 -0.53532 0.481355 RAD 0.00617284 - txt002 - SPHERE CENTER -0.031221 -0.519442 0.463149 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0589904 -0.538628 0.454201 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0406217 -0.527681 0.441856 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0449178 -0.551799 0.438769 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0538859 -0.554507 0.472408 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0398133 -0.567678 0.456976 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0304127 -0.559438 0.478269 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0163676 -0.511316 0.396183 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0212225 -0.48882 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00896145 -0.491256 0.408529 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00194055 -0.497372 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0286287 -0.50888 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00546563 -0.517432 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0237738 -0.531375 0.383837 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0395307 -0.502764 0.396183 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0346758 -0.525259 0.40513 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0272696 -0.505199 0.417476 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0440327 -0.593633 0.372739 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0604766 -0.607302 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0678827 -0.587242 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0604766 -0.607302 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0366265 -0.613693 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0366265 -0.613693 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0201827 -0.600023 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0440327 -0.593633 0.348047 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0275889 -0.579964 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0514389 -0.573573 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0521134 -0.520079 0.369341 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0542684 -0.523344 0.344961 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0591566 -0.541988 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0358996 -0.534291 0.357307 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0472252 -0.501435 0.353908 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0288565 -0.512382 0.366254 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0450702 -0.49817 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0704822 -0.509132 0.356995 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0683272 -0.505868 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0753703 -0.527777 0.372427 RAD 0.00617284 - txt002 - SPHERE CENTER 0.101445 -0.561087 0.406378 RAD 0.0185185 - txt002 - SPHERE CENTER 0.118381 -0.551884 0.390945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0944221 -0.550745 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.103361 -0.536664 0.403291 RAD 0.00617284 - txt002 - SPHERE CENTER 0.125404 -0.562225 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER 0.110383 -0.547006 0.424584 RAD 0.00617284 - txt002 - SPHERE CENTER 0.108468 -0.571428 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER 0.116465 -0.576307 0.394032 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0995293 -0.58551 0.409464 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0925065 -0.575168 0.388171 RAD 0.00617284 - txt002 - SPHERE CENTER 0.247614 -0.494808 0.43322 RAD 0.0555556 - txt002 - SPHERE CENTER 0.313607 -0.494287 0.399581 RAD 0.0185185 - txt002 - SPHERE CENTER 0.326876 -0.484182 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER 0.302705 -0.488171 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.310432 -0.470513 0.39372 RAD 0.00617284 - txt002 - SPHERE CENTER 0.337778 -0.490299 0.402668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.321334 -0.476629 0.415013 RAD 0.00617284 - txt002 - SPHERE CENTER 0.324509 -0.500404 0.420874 RAD 0.00617284 - txt002 - SPHERE CENTER 0.330051 -0.507957 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.316783 -0.518062 0.405442 RAD 0.00617284 - txt002 - SPHERE CENTER 0.305881 -0.511946 0.384149 RAD 0.00617284 - txt002 - SPHERE CENTER 0.269833 -0.434629 0.396183 RAD 0.0185185 - txt002 - SPHERE CENTER 0.279233 -0.426389 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER 0.286276 -0.448298 0.383837 RAD 0.00617284 - txt002 - SPHERE CENTER 0.263449 -0.445377 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER 0.262789 -0.41272 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.247006 -0.431707 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.253389 -0.420959 0.408529 RAD 0.00617284 - txt002 - SPHERE CENTER 0.285616 -0.415641 0.396183 RAD 0.00617284 - txt002 - SPHERE CENTER 0.276216 -0.42388 0.417476 RAD 0.00617284 - txt002 - SPHERE CENTER 0.29266 -0.43755 0.40513 RAD 0.00617284 - txt002 - SPHERE CENTER 0.302539 -0.452978 0.460062 RAD 0.0185185 - txt002 - SPHERE CENTER 0.320401 -0.436971 0.454201 RAD 0.00617284 - txt002 - SPHERE CENTER 0.3148 -0.455413 0.438769 RAD 0.00617284 - txt002 - SPHERE CENTER 0.29902 -0.436675 0.441856 RAD 0.00617284 - txt002 - SPHERE CENTER 0.30814 -0.434535 0.475494 RAD 0.00617284 - txt002 - SPHERE CENTER 0.286759 -0.434239 0.463149 RAD 0.00617284 - txt002 - SPHERE CENTER 0.290278 -0.450543 0.481355 RAD 0.00617284 - txt002 - SPHERE CENTER 0.32392 -0.453274 0.472408 RAD 0.00617284 - txt002 - SPHERE CENTER 0.306057 -0.469281 0.478269 RAD 0.00617284 - txt002 - SPHERE CENTER 0.318318 -0.471717 0.456976 RAD 0.00617284 - txt002 - SPHERE CENTER 0.291389 -0.554467 0.436618 RAD 0.0185185 - txt002 - SPHERE CENTER 0.314604 -0.562288 0.439705 RAD 0.00617284 - txt002 - SPHERE CENTER 0.310183 -0.541186 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER 0.306499 -0.542501 0.45205 RAD 0.00617284 - txt002 - SPHERE CENTER 0.29581 -0.575569 0.448652 RAD 0.00617284 - txt002 - SPHERE CENTER 0.287705 -0.555781 0.460998 RAD 0.00617284 - txt002 - SPHERE CENTER 0.272595 -0.567748 0.445566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.299494 -0.574255 0.424272 RAD 0.00617284 - txt002 - SPHERE CENTER 0.276279 -0.566433 0.421186 RAD 0.00617284 - txt002 - SPHERE CENTER 0.295073 -0.553152 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER 0.28032 -0.513157 0.497099 RAD 0.0185185 - txt002 - SPHERE CENTER 0.298839 -0.507811 0.512531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.302049 -0.505577 0.488152 RAD 0.00617284 - txt002 - SPHERE CENTER 0.287442 -0.489718 0.500186 RAD 0.00617284 - txt002 - SPHERE CENTER 0.27711 -0.515392 0.521479 RAD 0.00617284 - txt002 - SPHERE CENTER 0.265714 -0.497299 0.509133 RAD 0.00617284 - txt002 - SPHERE CENTER 0.258591 -0.520738 0.506047 RAD 0.00617284 - txt002 - SPHERE CENTER 0.291716 -0.531251 0.509445 RAD 0.00617284 - txt002 - SPHERE CENTER 0.273198 -0.536597 0.494013 RAD 0.00617284 - txt002 - SPHERE CENTER 0.294927 -0.529016 0.485065 RAD 0.00617284 - txt002 - SPHERE CENTER 0.225396 -0.554987 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER 0.227186 -0.567359 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.246777 -0.555283 0.482603 RAD 0.00617284 - txt002 - SPHERE CENTER 0.227528 -0.54267 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.205805 -0.567063 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER 0.206147 -0.542374 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER 0.204014 -0.554691 0.457911 RAD 0.00617284 - txt002 - SPHERE CENTER 0.225054 -0.579676 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.223263 -0.567305 0.448964 RAD 0.00617284 - txt002 - SPHERE CENTER 0.244644 -0.567601 0.46131 RAD 0.00617284 - txt002 - SPHERE CENTER 0.258683 -0.536117 0.372739 RAD 0.0185185 - txt002 - SPHERE CENTER 0.275127 -0.549787 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282533 -0.529727 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER 0.275127 -0.549787 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.251277 -0.556177 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.251277 -0.556177 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.234833 -0.542508 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER 0.258683 -0.536117 0.348047 RAD 0.00617284 - txt002 - SPHERE CENTER 0.242239 -0.522448 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.266089 -0.516058 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.19269 -0.536638 0.406378 RAD 0.0185185 - txt002 - SPHERE CENTER 0.17251 -0.549603 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER 0.191778 -0.549105 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER 0.177908 -0.528912 0.424584 RAD 0.00617284 - txt002 - SPHERE CENTER 0.173421 -0.537136 0.390945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.178819 -0.516445 0.403291 RAD 0.00617284 - txt002 - SPHERE CENTER 0.193601 -0.524171 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.187292 -0.557329 0.394032 RAD 0.00617284 - txt002 - SPHERE CENTER 0.207471 -0.544363 0.388171 RAD 0.00617284 - txt002 - SPHERE CENTER 0.20656 -0.556831 0.409464 RAD 0.00617284 - txt002 - SPHERE CENTER 0.214908 -0.476459 0.369341 RAD 0.0185185 - txt002 - SPHERE CENTER 0.209819 -0.457868 0.353908 RAD 0.00617284 - txt002 - SPHERE CENTER 0.210053 -0.453963 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.2312 -0.458164 0.366254 RAD 0.00617284 - txt002 - SPHERE CENTER 0.214674 -0.480363 0.344961 RAD 0.00617284 - txt002 - SPHERE CENTER 0.236055 -0.480659 0.357307 RAD 0.00617284 - txt002 - SPHERE CENTER 0.219763 -0.498954 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.193527 -0.476163 0.356995 RAD 0.00617284 - txt002 - SPHERE CENTER 0.198616 -0.494753 0.372427 RAD 0.00617284 - txt002 - SPHERE CENTER 0.193761 -0.472258 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER -0.172546 -0.643951 1.11022e-16 RAD 0.166667 - txt002 - SPHERE CENTER -0.157543 -0.835815 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.122136 -0.871646 0.165419 RAD 0.0185185 - txt002 - SPHERE CENTER -0.102403 -0.871334 0.180258 RAD 0.00617284 - txt002 - SPHERE CENTER -0.100577 -0.862937 0.157111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.113406 -0.850164 0.173902 RAD 0.00617284 - txt002 - SPHERE CENTER -0.123961 -0.880044 0.188567 RAD 0.00617284 - txt002 - SPHERE CENTER -0.134964 -0.858873 0.182211 RAD 0.00617284 - txt002 - SPHERE CENTER -0.143694 -0.880356 0.173728 RAD 0.00617284 - txt002 - SPHERE CENTER -0.111133 -0.892817 0.171776 RAD 0.00617284 - txt002 - SPHERE CENTER -0.130866 -0.893129 0.156937 RAD 0.00617284 - txt002 - SPHERE CENTER -0.109307 -0.884419 0.148628 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0854653 -0.82339 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0654286 -0.811594 0.114524 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0820122 -0.820516 0.0985541 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0876595 -0.80102 0.112614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0688817 -0.814468 0.138803 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0911125 -0.803895 0.136894 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0889183 -0.826265 0.147112 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0632344 -0.833964 0.124743 RAD 0.00617284 - txt002 - SPHERE CENTER -0.083271 -0.845761 0.133052 RAD 0.00617284 - txt002 - SPHERE CENTER -0.079818 -0.842886 0.108773 RAD 0.00617284 - txt002 - SPHERE CENTER -0.135649 -0.799077 0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER -0.120908 -0.781177 0.180075 RAD 0.00617284 - txt002 - SPHERE CENTER -0.113462 -0.795477 0.161374 RAD 0.00617284 - txt002 - SPHERE CENTER -0.13149 -0.778973 0.157875 RAD 0.00617284 - txt002 - SPHERE CENTER -0.143095 -0.784778 0.190293 RAD 0.00617284 - txt002 - SPHERE CENTER -0.153678 -0.782573 0.168094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.157836 -0.802678 0.181811 RAD 0.00617284 - txt002 - SPHERE CENTER -0.125067 -0.801282 0.193792 RAD 0.00617284 - txt002 - SPHERE CENTER -0.139808 -0.819182 0.18531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.11762 -0.815582 0.175091 RAD 0.00617284 - txt002 - SPHERE CENTER -0.194213 -0.884071 0.153697 RAD 0.0185185 - txt002 - SPHERE CENTER -0.197746 -0.891905 0.176845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.175383 -0.884286 0.169668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.193701 -0.867957 0.172398 RAD 0.00617284 - txt002 - SPHERE CENTER -0.216576 -0.89169 0.160875 RAD 0.00617284 - txt002 - SPHERE CENTER -0.212531 -0.867741 0.156428 RAD 0.00617284 - txt002 - SPHERE CENTER -0.213043 -0.883856 0.137727 RAD 0.00617284 - txt002 - SPHERE CENTER -0.198259 -0.908019 0.158144 RAD 0.00617284 - txt002 - SPHERE CENTER -0.194726 -0.900186 0.134996 RAD 0.00617284 - txt002 - SPHERE CENTER -0.175896 -0.900401 0.150967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.207727 -0.811502 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.212743 -0.794108 0.176661 RAD 0.00617284 - txt002 - SPHERE CENTER -0.189621 -0.802328 0.173931 RAD 0.00617284 - txt002 - SPHERE CENTER -0.199907 -0.788345 0.156372 RAD 0.00617284 - txt002 - SPHERE CENTER -0.230849 -0.803282 0.162601 RAD 0.00617284 - txt002 - SPHERE CENTER -0.218012 -0.797518 0.142311 RAD 0.00617284 - txt002 - SPHERE CENTER -0.225832 -0.820676 0.14581 RAD 0.00617284 - txt002 - SPHERE CENTER -0.220563 -0.817265 0.18016 RAD 0.00617284 - txt002 - SPHERE CENTER -0.215547 -0.83466 0.163369 RAD 0.00617284 - txt002 - SPHERE CENTER -0.197441 -0.825486 0.177429 RAD 0.00617284 - txt002 - SPHERE CENTER -0.229621 -0.84824 0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.25245 -0.843832 0.107698 RAD 0.00617284 - txt002 - SPHERE CENTER -0.233837 -0.846687 0.123668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.235043 -0.826426 0.109608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.248234 -0.845385 0.0834188 RAD 0.00617284 - txt002 - SPHERE CENTER -0.230827 -0.827978 0.0853287 RAD 0.00617284 - txt002 - SPHERE CENTER -0.225404 -0.849792 0.0751099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.247028 -0.865646 0.0974792 RAD 0.00617284 - txt002 - SPHERE CENTER -0.224198 -0.870053 0.0891702 RAD 0.00617284 - txt002 - SPHERE CENTER -0.228415 -0.868501 0.113449 RAD 0.00617284 - txt002 - SPHERE CENTER -0.14403 -0.908384 0.104938 RAD 0.0185185 - txt002 - SPHERE CENTER -0.128672 -0.926643 0.111295 RAD 0.00617284 - txt002 - SPHERE CENTER -0.1198 -0.904034 0.106848 RAD 0.00617284 - txt002 - SPHERE CENTER -0.133221 -0.90826 0.127138 RAD 0.00617284 - txt002 - SPHERE CENTER -0.152902 -0.930993 0.109385 RAD 0.00617284 - txt002 - SPHERE CENTER -0.157451 -0.912609 0.125228 RAD 0.00617284 - txt002 - SPHERE CENTER -0.16826 -0.912733 0.103028 RAD 0.00617284 - txt002 - SPHERE CENTER -0.139481 -0.926768 0.0890951 RAD 0.00617284 - txt002 - SPHERE CENTER -0.154838 -0.908508 0.0827387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.130608 -0.904159 0.0846485 RAD 0.00617284 - txt002 - SPHERE CENTER -0.179437 -0.872552 0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER -0.188167 -0.894035 0.0421477 RAD 0.00617284 - txt002 - SPHERE CENTER -0.172046 -0.89378 0.0608487 RAD 0.00617284 - txt002 - SPHERE CENTER -0.195141 -0.885777 0.0643473 RAD 0.00617284 - txt002 - SPHERE CENTER -0.195558 -0.872807 0.0319289 RAD 0.00617284 - txt002 - SPHERE CENTER -0.202532 -0.864549 0.0541285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.186828 -0.851325 0.0404111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.172463 -0.880811 0.0284303 RAD 0.00617284 - txt002 - SPHERE CENTER -0.163733 -0.859328 0.0369125 RAD 0.00617284 - txt002 - SPHERE CENTER -0.156342 -0.880556 0.0471312 RAD 0.00617284 - txt002 - SPHERE CENTER -0.107359 -0.860128 0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0905999 -0.853284 0.0455609 RAD 0.00617284 - txt002 - SPHERE CENTER -0.111382 -0.840233 0.0482916 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0940331 -0.839638 0.0658506 RAD 0.00617284 - txt002 - SPHERE CENTER -0.086577 -0.873178 0.0596212 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0900102 -0.859532 0.079911 RAD 0.00617284 - txt002 - SPHERE CENTER -0.103336 -0.880022 0.0764123 RAD 0.00617284 - txt002 - SPHERE CENTER -0.103926 -0.873773 0.0420622 RAD 0.00617284 - txt002 - SPHERE CENTER -0.120685 -0.880618 0.0588533 RAD 0.00617284 - txt002 - SPHERE CENTER -0.124708 -0.860723 0.044793 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0133465 -0.69376 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.0838533 -0.674309 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.103063 -0.66171 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0876683 -0.673446 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0800983 -0.653258 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0992478 -0.662574 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0762832 -0.654121 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0800382 -0.675172 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.106818 -0.682761 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0876083 -0.69536 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0914233 -0.694497 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0539145 -0.666287 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0547519 -0.662466 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0439578 -0.682791 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0332597 -0.660752 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0647085 -0.645962 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0432164 -0.644249 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0638711 -0.649783 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0754066 -0.668 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0745692 -0.671821 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0646126 -0.688325 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0325183 -0.62221 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0446211 -0.604582 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.053173 -0.627745 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0325183 -0.62221 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0239663 -0.599047 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0118635 -0.616676 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0118635 -0.616676 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0446211 -0.604582 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0325183 -0.62221 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.053173 -0.627745 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0432853 -0.701782 0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0608821 -0.693716 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0652402 -0.694884 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0496759 -0.677932 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0389272 -0.700615 0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.027721 -0.684831 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0213304 -0.708681 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0544915 -0.717566 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0368947 -0.725632 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0588496 -0.718734 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00804971 -0.649684 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.00328338 -0.628657 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0152909 -0.642244 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.000378614 -0.630031 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.026624 -0.636097 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.022962 -0.637471 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0313903 -0.657124 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0117117 -0.648309 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.016478 -0.669336 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00686255 -0.661896 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0272215 -0.721234 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0310802 -0.720593 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00820099 -0.718114 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0246945 -0.7 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0501007 -0.723713 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.043715 -0.70312 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.046242 -0.724354 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0336072 -0.741827 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0297485 -0.742467 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.010728 -0.739347 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0646815 -0.745859 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0887955 -0.750021 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0813312 -0.732161 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.078459 -0.729506 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0721458 -0.763719 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0618093 -0.743204 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0480318 -0.759557 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.075018 -0.766375 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.050904 -0.762212 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0675537 -0.748514 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0058253 -0.76531 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.00415829 -0.786629 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0148294 -0.770845 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0058253 -0.76531 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.024813 -0.781094 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.02648 -0.759776 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.02648 -0.759776 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00415829 -0.786629 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0058253 -0.76531 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0148294 -0.770845 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0347427 -0.737837 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0542122 -0.747099 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0550267 -0.7241 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0553974 -0.743371 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0339282 -0.760836 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0351134 -0.757108 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0144587 -0.751574 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0335575 -0.741565 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.014088 -0.732303 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0343719 -0.718566 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.172546 -0.643951 0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER -0.142305 -0.61371 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.125845 -0.597249 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER -0.12123 -0.610094 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.138689 -0.592635 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.14692 -0.600865 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.159765 -0.596251 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.163381 -0.617326 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.12946 -0.618324 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.145921 -0.634785 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.124846 -0.631169 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.100996 -0.624779 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0833673 -0.612676 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.100996 -0.624779 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.10653 -0.604124 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0833673 -0.612676 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.10653 -0.604124 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.100996 -0.624779 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0778329 -0.633331 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0954616 -0.645433 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0954616 -0.645433 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.153374 -0.5724 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.141271 -0.554772 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.13272 -0.577935 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.153374 -0.5724 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.161926 -0.549237 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.174029 -0.566866 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.174029 -0.566866 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.141271 -0.554772 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.153374 -0.5724 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.13272 -0.577935 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.213855 -0.632882 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.216282 -0.61945 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.193796 -0.625476 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.207465 -0.609032 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.236341 -0.626857 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER -0.227525 -0.616438 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.233915 -0.640288 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.222672 -0.6433 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.220246 -0.656732 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.200186 -0.649326 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.224924 -0.591572 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.2291 -0.567237 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.209804 -0.576452 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.209804 -0.576452 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.24422 -0.582357 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.224924 -0.591572 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.240045 -0.606693 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.24422 -0.582357 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.240045 -0.606693 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.224924 -0.591572 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.244096 -0.663122 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.265414 -0.661455 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.244096 -0.663122 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.249631 -0.642468 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.265414 -0.661455 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.249631 -0.642468 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.244096 -0.663122 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.25988 -0.68211 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.238562 -0.683777 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.238562 -0.683777 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.161477 -0.68526 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.148046 -0.687686 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.137627 -0.678869 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.154071 -0.6652 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.171896 -0.694077 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.177921 -0.671591 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.185327 -0.691651 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.155452 -0.707746 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER -0.168883 -0.70532 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.145033 -0.698929 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.191718 -0.715501 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.190051 -0.736819 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.171063 -0.721035 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.191718 -0.715501 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.210706 -0.731284 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.212373 -0.709966 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.212373 -0.709966 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.190051 -0.736819 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.191718 -0.715501 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.171063 -0.721035 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.120168 -0.696329 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.095832 -0.700504 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.105047 -0.681209 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.105047 -0.681209 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.110952 -0.715624 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.120168 -0.696329 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.135288 -0.711449 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.110952 -0.715624 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.135288 -0.711449 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.120168 -0.696329 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.343435 -0.786005 8.51251e-17 RAD 0.0555556 - txt002 - SPHERE CENTER -0.392454 -0.82165 0.0425863 RAD 0.0185185 - txt002 - SPHERE CENTER -0.400556 -0.824791 0.065698 RAD 0.00617284 - txt002 - SPHERE CENTER -0.376528 -0.821021 0.0614442 RAD 0.00617284 - txt002 - SPHERE CENTER -0.392663 -0.802599 0.058292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.416482 -0.82542 0.0468401 RAD 0.00617284 - txt002 - SPHERE CENTER -0.408589 -0.803228 0.0394341 RAD 0.00617284 - txt002 - SPHERE CENTER -0.40838 -0.822279 0.0237283 RAD 0.00617284 - txt002 - SPHERE CENTER -0.400347 -0.843843 0.0499923 RAD 0.00617284 - txt002 - SPHERE CENTER -0.392245 -0.840701 0.0268805 RAD 0.00617284 - txt002 - SPHERE CENTER -0.376319 -0.840073 0.0457385 RAD 0.00617284 - txt002 - SPHERE CENTER -0.323622 -0.80984 0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER -0.308073 -0.80634 0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER -0.300378 -0.802721 0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER -0.316395 -0.786996 0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER -0.331317 -0.813459 0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER -0.339639 -0.794116 0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER -0.346866 -0.81696 0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER -0.315299 -0.829184 0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER -0.330849 -0.832685 0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.307605 -0.825565 0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER -0.370774 -0.753118 0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER -0.367981 -0.734271 0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER -0.348136 -0.745269 0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER -0.362711 -0.731279 0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER -0.390619 -0.74212 0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.385349 -0.739128 0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER -0.393412 -0.760966 0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER -0.376044 -0.756109 0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER -0.378837 -0.774956 0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER -0.356199 -0.767107 0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER -0.412267 -0.797815 -0.0246914 RAD 0.0185185 - txt002 - SPHERE CENTER -0.436217 -0.793573 -0.0204376 RAD 0.00617284 - txt002 - SPHERE CENTER -0.420728 -0.796968 -0.00151032 RAD 0.00617284 - txt002 - SPHERE CENTER -0.419454 -0.776294 -0.0149506 RAD 0.00617284 - txt002 - SPHERE CENTER -0.427756 -0.79442 -0.0436186 RAD 0.00617284 - txt002 - SPHERE CENTER -0.410993 -0.777141 -0.0381316 RAD 0.00617284 - txt002 - SPHERE CENTER -0.403807 -0.798662 -0.0478724 RAD 0.00617284 - txt002 - SPHERE CENTER -0.42903 -0.815094 -0.0301783 RAD 0.00617284 - txt002 - SPHERE CENTER -0.405081 -0.819335 -0.0344321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.413542 -0.818489 -0.0112511 RAD 0.00617284 - txt002 - SPHERE CENTER -0.390587 -0.729282 -0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER -0.392427 -0.704862 -0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER -0.373948 -0.714218 0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.374248 -0.717401 -0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER -0.409067 -0.719927 -0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER -0.390887 -0.732465 -0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.407227 -0.744347 -0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.408767 -0.716744 0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER -0.406927 -0.741164 0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER -0.390287 -0.726099 0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER -0.363249 -0.76217 -0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER -0.356966 -0.747522 -0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER -0.352002 -0.740618 -0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER -0.339469 -0.759239 -0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER -0.368213 -0.769074 -0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER -0.350716 -0.780791 -0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER -0.374496 -0.783722 -0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER -0.380746 -0.750453 -0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER -0.387029 -0.765101 -0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.375782 -0.743549 -0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER -0.365116 -0.854538 -0.0178949 RAD 0.0185185 - txt002 - SPHERE CENTER -0.365674 -0.878086 -0.0104889 RAD 0.00617284 - txt002 - SPHERE CENTER -0.346241 -0.863875 -0.00500196 RAD 0.00617284 - txt002 - SPHERE CENTER -0.367962 -0.859887 0.00604126 RAD 0.00617284 - txt002 - SPHERE CENTER -0.384548 -0.868748 -0.0233819 RAD 0.00617284 - txt002 - SPHERE CENTER -0.386837 -0.85055 -0.00685171 RAD 0.00617284 - txt002 - SPHERE CENTER -0.38399 -0.8452 -0.0307879 RAD 0.00617284 - txt002 - SPHERE CENTER -0.362827 -0.872736 -0.0344251 RAD 0.00617284 - txt002 - SPHERE CENTER -0.362269 -0.849188 -0.0418311 RAD 0.00617284 - txt002 - SPHERE CENTER -0.343394 -0.858526 -0.0289382 RAD 0.00617284 - txt002 - SPHERE CENTER -0.316097 -0.818893 -0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER -0.297057 -0.819591 -0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER -0.304244 -0.79807 -0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER -0.293153 -0.814956 -0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER -0.30891 -0.840413 -0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.305006 -0.835779 -0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER -0.32795 -0.839716 -0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER -0.320001 -0.823527 -0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER -0.339041 -0.822829 -0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER -0.327188 -0.802007 -0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER -0.296284 -0.842728 0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER -0.272611 -0.848999 0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER -0.278432 -0.829121 -0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.281616 -0.828835 0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER -0.290462 -0.862606 0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER -0.299468 -0.842441 0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.314135 -0.856335 0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.287278 -0.862893 -0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER -0.310951 -0.856621 -0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER -0.293099 -0.843015 -0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER -0.358439 -0.594141 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.389119 -0.547576 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.386849 -0.525642 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.366733 -0.538964 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.379645 -0.528407 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.409235 -0.534255 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.402031 -0.537019 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.411505 -0.556189 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.396323 -0.544812 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.398593 -0.566746 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.376207 -0.558134 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.317871 -0.566667 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.299647 -0.551072 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.29885 -0.563547 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.315344 -0.545434 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.318667 -0.554192 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.334364 -0.548554 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.336891 -0.569787 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.302174 -0.572306 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER -0.320398 -0.587901 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.301377 -0.584781 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.339267 -0.522591 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.327164 -0.504962 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.318612 -0.528125 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.339267 -0.522591 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.347819 -0.499428 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.359921 -0.517056 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.359921 -0.517056 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.327164 -0.504962 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.339267 -0.522591 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.318612 -0.528125 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.429687 -0.57505 0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER -0.446515 -0.55776 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.428387 -0.562617 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.423296 -0.5512 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.447815 -0.570193 0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER -0.424596 -0.563633 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.430987 -0.587483 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.452905 -0.58161 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.436077 -0.5989 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.434777 -0.586467 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.379835 -0.550064 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.372012 -0.535334 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.359551 -0.536327 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.35918 -0.555599 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.392296 -0.549071 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.379464 -0.569335 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.400119 -0.563801 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.392667 -0.529799 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.400489 -0.54453 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.380205 -0.530793 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399007 -0.621614 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.420252 -0.632748 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.408963 -0.638118 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.419661 -0.61608 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.410295 -0.616244 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.409705 -0.599576 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.38905 -0.60511 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399597 -0.638282 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.378352 -0.627149 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.388308 -0.643653 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.408291 -0.619127 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.415912 -0.617918 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.39183 -0.616439 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.406911 -0.597788 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.432372 -0.620605 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.423371 -0.600475 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.424751 -0.621814 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.417292 -0.639257 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.409671 -0.640465 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.39321 -0.637778 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.37761 -0.665691 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.375943 -0.687009 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.356956 -0.671225 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.37761 -0.665691 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.396598 -0.681475 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.398265 -0.660156 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.398265 -0.660156 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.375943 -0.687009 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.37761 -0.665691 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.356956 -0.671225 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.337042 -0.638217 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.320629 -0.641183 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER -0.313702 -0.630777 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.328614 -0.618565 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.34397 -0.648623 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.351955 -0.626005 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.360383 -0.645657 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.329058 -0.660835 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.345471 -0.65787 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.32213 -0.65043 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.358439 -0.594141 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.409774 -0.542042 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.413579 -0.517869 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.395831 -0.525596 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.393219 -0.528508 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.427522 -0.534315 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.407161 -0.544953 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.423716 -0.558488 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.430134 -0.531404 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.426328 -0.555577 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.412386 -0.539131 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.379835 -0.550064 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.375068 -0.529037 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.356494 -0.542624 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.371406 -0.530412 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.398409 -0.536477 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.394747 -0.537852 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.403175 -0.557504 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.383497 -0.548689 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.388263 -0.569716 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.364922 -0.562276 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.339267 -0.522591 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.327164 -0.504962 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.318612 -0.528125 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.339267 -0.522591 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.347819 -0.499428 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.359921 -0.517056 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.359921 -0.517056 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.327164 -0.504962 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.339267 -0.522591 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.318612 -0.528125 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.388377 -0.586119 -0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.399584 -0.570335 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.403942 -0.569167 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.381987 -0.562269 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.384019 -0.587286 -0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.366422 -0.57922 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.372813 -0.60307 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.405974 -0.594185 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.394768 -0.609969 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.410332 -0.593017 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.317871 -0.566667 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.317033 -0.562847 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.327827 -0.583171 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.338525 -0.561133 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.307077 -0.546343 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.328569 -0.544629 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.307914 -0.550163 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.296378 -0.568381 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER -0.297216 -0.572202 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.307172 -0.588706 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.337042 -0.638217 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.317573 -0.64748 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER -0.316758 -0.624481 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.316388 -0.643752 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.337857 -0.661216 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.336672 -0.657489 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.357326 -0.651954 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.338228 -0.641945 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.357697 -0.632683 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.337413 -0.618946 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.428945 -0.613592 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.451897 -0.612625 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.432663 -0.614807 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.436515 -0.593593 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.448179 -0.61141 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.432797 -0.592379 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.425227 -0.612377 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.444328 -0.632624 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.421376 -0.633591 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.425094 -0.634806 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.37761 -0.665691 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.375943 -0.687009 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.356956 -0.671225 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.37761 -0.665691 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.396598 -0.681475 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.398265 -0.660156 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.398265 -0.660156 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.375943 -0.687009 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.37761 -0.665691 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.356956 -0.671225 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399007 -0.621614 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.402865 -0.620974 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.379986 -0.618494 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.39648 -0.600381 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.421886 -0.624094 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.4155 -0.603501 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.418027 -0.624734 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.405392 -0.642207 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.401533 -0.642848 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.382513 -0.639728 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.157543 -0.835815 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.119969 -0.899353 -0.117284 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0977075 -0.909872 -0.115431 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0997803 -0.886771 -0.1239 RAD 0.00617284 - txt002 - SPHERE CENTER -0.104052 -0.891613 -0.100068 RAD 0.00617284 - txt002 - SPHERE CENTER -0.117896 -0.922453 -0.108814 RAD 0.00617284 - txt002 - SPHERE CENTER -0.124241 -0.904194 -0.0934517 RAD 0.00617284 - txt002 - SPHERE CENTER -0.140158 -0.911935 -0.110668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.113625 -0.917612 -0.132647 RAD 0.00617284 - txt002 - SPHERE CENTER -0.135886 -0.907093 -0.1345 RAD 0.00617284 - txt002 - SPHERE CENTER -0.115698 -0.894512 -0.141116 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0844101 -0.836885 -0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0627848 -0.826973 -0.106005 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0805529 -0.830202 -0.122844 RAD 0.00617284 - txt002 - SPHERE CENTER -0.083104 -0.81296 -0.105354 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0666419 -0.833656 -0.0825505 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0869612 -0.819643 -0.0818993 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0882673 -0.843568 -0.0759343 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0640908 -0.850898 -0.10004 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0857161 -0.860809 -0.093424 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0818589 -0.854126 -0.116879 RAD 0.00617284 - txt002 - SPHERE CENTER -0.130205 -0.868703 -0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER -0.11253 -0.867758 -0.0334138 RAD 0.00617284 - txt002 - SPHERE CENTER -0.107566 -0.860854 -0.0565949 RAD 0.00617284 - txt002 - SPHERE CENTER -0.122142 -0.846864 -0.0423994 RAD 0.00617284 - txt002 - SPHERE CENTER -0.135168 -0.875606 -0.0274488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.14478 -0.854713 -0.0364345 RAD 0.00617284 - txt002 - SPHERE CENTER -0.152843 -0.876551 -0.0446649 RAD 0.00617284 - txt002 - SPHERE CENTER -0.120593 -0.889596 -0.0416443 RAD 0.00617284 - txt002 - SPHERE CENTER -0.138267 -0.890541 -0.0588603 RAD 0.00617284 - txt002 - SPHERE CENTER -0.115629 -0.882692 -0.0648253 RAD 0.00617284 - txt002 - SPHERE CENTER -0.193102 -0.898283 -0.129006 RAD 0.0185185 - txt002 - SPHERE CENTER -0.201143 -0.920038 -0.120537 RAD 0.00617284 - txt002 - SPHERE CENTER -0.17991 -0.910616 -0.112168 RAD 0.00617284 - txt002 - SPHERE CENTER -0.201384 -0.900209 -0.105825 RAD 0.00617284 - txt002 - SPHERE CENTER -0.214335 -0.907705 -0.137375 RAD 0.00617284 - txt002 - SPHERE CENTER -0.214576 -0.887876 -0.122663 RAD 0.00617284 - txt002 - SPHERE CENTER -0.206294 -0.88595 -0.145845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.192861 -0.918112 -0.143718 RAD 0.00617284 - txt002 - SPHERE CENTER -0.18482 -0.896357 -0.152187 RAD 0.00617284 - txt002 - SPHERE CENTER -0.171628 -0.90869 -0.135349 RAD 0.00617284 - txt002 - SPHERE CENTER -0.203337 -0.867633 -0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER -0.209658 -0.868948 -0.0385197 RAD 0.00617284 - txt002 - SPHERE CENTER -0.186008 -0.865773 -0.0448623 RAD 0.00617284 - txt002 - SPHERE CENTER -0.202239 -0.84746 -0.0481565 RAD 0.00617284 - txt002 - SPHERE CENTER -0.226988 -0.870808 -0.0560094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.219569 -0.84932 -0.0656463 RAD 0.00617284 - txt002 - SPHERE CENTER -0.220667 -0.869493 -0.0798417 RAD 0.00617284 - txt002 - SPHERE CENTER -0.210757 -0.889121 -0.0527151 RAD 0.00617284 - txt002 - SPHERE CENTER -0.204436 -0.887806 -0.0765474 RAD 0.00617284 - txt002 - SPHERE CENTER -0.187106 -0.885946 -0.0590577 RAD 0.00617284 - txt002 - SPHERE CENTER -0.230676 -0.834745 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.252002 -0.824206 -0.116217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.234336 -0.827952 -0.0993785 RAD 0.00617284 - txt002 - SPHERE CENTER -0.231282 -0.810793 -0.116868 RAD 0.00617284 - txt002 - SPHERE CENTER -0.248342 -0.830999 -0.139672 RAD 0.00617284 - txt002 - SPHERE CENTER -0.227621 -0.817586 -0.140323 RAD 0.00617284 - txt002 - SPHERE CENTER -0.227016 -0.841538 -0.146288 RAD 0.00617284 - txt002 - SPHERE CENTER -0.251396 -0.848158 -0.122182 RAD 0.00617284 - txt002 - SPHERE CENTER -0.23007 -0.858698 -0.128798 RAD 0.00617284 - txt002 - SPHERE CENTER -0.23373 -0.851905 -0.105343 RAD 0.00617284 - txt002 - SPHERE CENTER -0.147308 -0.866465 -0.177765 RAD 0.0185185 - txt002 - SPHERE CENTER -0.130609 -0.876203 -0.193128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.124356 -0.857385 -0.178416 RAD 0.00617284 - txt002 - SPHERE CENTER -0.128522 -0.879733 -0.16878 RAD 0.00617284 - txt002 - SPHERE CENTER -0.153561 -0.885283 -0.192477 RAD 0.00617284 - txt002 - SPHERE CENTER -0.151474 -0.888813 -0.168128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.170259 -0.875546 -0.177114 RAD 0.00617284 - txt002 - SPHERE CENTER -0.149395 -0.862935 -0.202114 RAD 0.00617284 - txt002 - SPHERE CENTER -0.166093 -0.853198 -0.186751 RAD 0.00617284 - txt002 - SPHERE CENTER -0.143141 -0.844117 -0.187402 RAD 0.00617284 - txt002 - SPHERE CENTER -0.184881 -0.802927 -0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER -0.180723 -0.785723 -0.188808 RAD 0.00617284 - txt002 - SPHERE CENTER -0.173028 -0.782104 -0.165627 RAD 0.00617284 - txt002 - SPHERE CENTER -0.161937 -0.798991 -0.179823 RAD 0.00617284 - txt002 - SPHERE CENTER -0.192576 -0.806546 -0.194773 RAD 0.00617284 - txt002 - SPHERE CENTER -0.17379 -0.819813 -0.185788 RAD 0.00617284 - txt002 - SPHERE CENTER -0.196734 -0.82375 -0.177557 RAD 0.00617284 - txt002 - SPHERE CENTER -0.203667 -0.78966 -0.180578 RAD 0.00617284 - txt002 - SPHERE CENTER -0.207825 -0.806864 -0.163362 RAD 0.00617284 - txt002 - SPHERE CENTER -0.195972 -0.786041 -0.157397 RAD 0.00617284 - txt002 - SPHERE CENTER -0.111748 -0.803997 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.108311 -0.798532 -0.183703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.119537 -0.819589 -0.17736 RAD 0.00617284 - txt002 - SPHERE CENTER -0.131037 -0.797989 -0.174066 RAD 0.00617284 - txt002 - SPHERE CENTER -0.100522 -0.78294 -0.166213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.123249 -0.782397 -0.156576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.10396 -0.788405 -0.142381 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0890219 -0.80454 -0.169507 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0924597 -0.810005 -0.145675 RAD 0.00617284 - txt002 - SPHERE CENTER -0.100248 -0.825597 -0.163165 RAD 0.00617284 - txt002 - SPHERE CENTER -0.172546 -0.643951 -0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER -0.202787 -0.61371 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.200937 -0.595399 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.194794 -0.591462 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.180539 -0.605717 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.208929 -0.617647 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.188531 -0.627965 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER -0.210779 -0.635958 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.223185 -0.603392 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER -0.225035 -0.621702 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.217042 -0.599454 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER -0.244096 -0.624779 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.260374 -0.607636 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.240901 -0.612854 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.237705 -0.600929 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.26357 -0.619561 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER -0.240901 -0.612854 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.247291 -0.636704 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.266765 -0.631486 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.250487 -0.648629 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.247291 -0.636704 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.191718 -0.5724 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.185011 -0.549732 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.167868 -0.56601 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.179793 -0.569205 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.208861 -0.556122 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.203643 -0.575596 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.215568 -0.578791 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.196936 -0.552927 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.203643 -0.575596 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.179793 -0.569205 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.131237 -0.632882 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.131575 -0.625593 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.15071 -0.6381 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER -0.146508 -0.614836 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.112102 -0.620375 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER -0.127034 -0.609618 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.111763 -0.627664 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER -0.116304 -0.643639 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.115965 -0.650927 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.135439 -0.656145 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.120168 -0.591572 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.105912 -0.577317 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER -0.111438 -0.600302 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.128897 -0.582843 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.114642 -0.568587 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.137627 -0.574113 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.128897 -0.582843 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0971825 -0.586046 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.111438 -0.600302 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.102708 -0.609032 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.100996 -0.663122 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0783272 -0.656415 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0978007 -0.651197 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0946054 -0.639272 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0815225 -0.66834 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0978007 -0.651197 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.104191 -0.675047 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0847178 -0.680265 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.107387 -0.686972 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.104191 -0.675047 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.183615 -0.68526 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.182351 -0.708085 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER -0.165569 -0.700531 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.188833 -0.704733 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER -0.200397 -0.692813 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.206879 -0.689462 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.201661 -0.669989 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.177134 -0.688611 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.178397 -0.665787 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER -0.160351 -0.681058 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.153374 -0.715501 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.136231 -0.731779 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.129524 -0.70911 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.141449 -0.712305 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.160081 -0.738169 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.165299 -0.718696 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.177224 -0.721891 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.148156 -0.734974 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER -0.165299 -0.718696 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.141449 -0.712305 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.224924 -0.696329 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.23918 -0.710584 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.216195 -0.705059 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.233654 -0.687599 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.24791 -0.701855 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.242384 -0.678869 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.233654 -0.687599 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.23045 -0.719314 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.216195 -0.705059 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.207465 -0.713788 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0133465 -0.69376 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.0631985 -0.668775 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0667914 -0.661946 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0511945 -0.680354 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0452771 -0.65711 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0787954 -0.650366 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0572811 -0.64553 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0752026 -0.657195 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0847128 -0.673611 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.08112 -0.680439 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.069116 -0.692019 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00804971 -0.649684 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.000226782 -0.634953 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0122343 -0.635947 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.012605 -0.655218 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0205108 -0.64869 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00767898 -0.668955 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0283337 -0.66342 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0208815 -0.629419 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0287044 -0.644149 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00842045 -0.630413 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0325183 -0.62221 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0446211 -0.604582 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.053173 -0.627745 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0325183 -0.62221 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0239663 -0.599047 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0118635 -0.616676 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0118635 -0.616676 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0446211 -0.604582 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0325183 -0.62221 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.053173 -0.627745 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0845947 -0.712851 -0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER 0.107813 -0.706291 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0896851 -0.701434 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0909853 -0.689001 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.102723 -0.717709 -0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0858949 -0.700418 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0795043 -0.724268 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.101422 -0.730141 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0782041 -0.736701 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0832945 -0.725284 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0539145 -0.666287 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0721382 -0.650692 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.072935 -0.663167 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0564414 -0.645053 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0531177 -0.653812 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0374209 -0.648173 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.034894 -0.669407 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0696112 -0.671925 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0513875 -0.68752 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.070408 -0.6844 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0347427 -0.737837 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0511556 -0.740802 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0580833 -0.730397 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.043171 -0.718185 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.027815 -0.748242 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0198304 -0.725625 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0114021 -0.745277 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0427273 -0.760455 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0263144 -0.757489 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0496549 -0.750049 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0440268 -0.740325 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0650768 -0.746894 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0607735 -0.723153 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0653796 -0.739183 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.04833 -0.764065 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0486329 -0.756355 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.02728 -0.757496 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0437239 -0.748035 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0226739 -0.741466 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0394207 -0.724295 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0058253 -0.76531 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.00415829 -0.786629 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0148294 -0.770845 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0058253 -0.76531 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.024813 -0.781094 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.02648 -0.759776 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.02648 -0.759776 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00415829 -0.786629 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0058253 -0.76531 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0148294 -0.770845 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0272215 -0.721234 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0484665 -0.732368 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0371781 -0.737738 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0478762 -0.715699 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0385099 -0.715864 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0379196 -0.699195 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0172649 -0.70473 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0278118 -0.737902 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00656677 -0.726768 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0165234 -0.743272 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.471405 -0.471405 1.11022e-16 RAD 0.166667 - txt002 - SPHERE CENTER 0.690426 -0.508983 1.83812e-16 RAD 0.0555556 - txt002 - SPHERE CENTER 0.755941 -0.484794 -0.0246914 RAD 0.0185185 - txt002 - SPHERE CENTER 0.767658 -0.47411 -0.0436186 RAD 0.00617284 - txt002 - SPHERE CENTER 0.749038 -0.489758 -0.0478724 RAD 0.00617284 - txt002 - SPHERE CENTER 0.744501 -0.467528 -0.0381316 RAD 0.00617284 - txt002 - SPHERE CENTER 0.774562 -0.469146 -0.0204376 RAD 0.00617284 - txt002 - SPHERE CENTER 0.751405 -0.462564 -0.0149506 RAD 0.00617284 - txt002 - SPHERE CENTER 0.762845 -0.47983 -0.00151032 RAD 0.00617284 - txt002 - SPHERE CENTER 0.779098 -0.491377 -0.0301783 RAD 0.00617284 - txt002 - SPHERE CENTER 0.767382 -0.502061 -0.0112511 RAD 0.00617284 - txt002 - SPHERE CENTER 0.760478 -0.507025 -0.0344321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.695668 -0.478434 -0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER 0.703418 -0.481931 -0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER 0.716184 -0.491475 -0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER 0.694124 -0.500827 -0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER 0.682902 -0.46889 -0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER 0.673608 -0.487786 -0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER 0.675152 -0.465393 -0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER 0.704962 -0.459538 -0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER 0.697211 -0.456041 -0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER 0.717727 -0.469082 -0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.7029 -0.436283 -0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER 0.714226 -0.418941 -0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER 0.724842 -0.44101 -0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.704751 -0.43889 -0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.692283 -0.414215 -0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER 0.682808 -0.434163 -0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER 0.680957 -0.431557 0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.712374 -0.416335 0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER 0.701048 -0.433677 0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER 0.722991 -0.438403 0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER 0.7507 -0.515343 0.0425863 RAD 0.0185185 - txt002 - SPHERE CENTER 0.773394 -0.506594 0.0468401 RAD 0.00617284 - txt002 - SPHERE CENTER 0.764807 -0.507924 0.0237283 RAD 0.00617284 - txt002 - SPHERE CENTER 0.755462 -0.491321 0.0394341 RAD 0.00617284 - txt002 - SPHERE CENTER 0.759287 -0.514012 0.065698 RAD 0.00617284 - txt002 - SPHERE CENTER 0.741355 -0.49874 0.058292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.736593 -0.522762 0.0614442 RAD 0.00617284 - txt002 - SPHERE CENTER 0.768632 -0.530616 0.0499923 RAD 0.00617284 - txt002 - SPHERE CENTER 0.745938 -0.539365 0.0457385 RAD 0.00617284 - txt002 - SPHERE CENTER 0.760045 -0.531946 0.0268805 RAD 0.00617284 - txt002 - SPHERE CENTER 0.697658 -0.466832 0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER 0.709346 -0.447385 0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.721188 -0.46231 0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER 0.703286 -0.447429 0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER 0.685816 -0.451907 0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER 0.679757 -0.451951 0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER 0.674129 -0.471354 0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.703718 -0.466788 0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER 0.692031 -0.486235 0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER 0.71556 -0.481713 0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER 0.685185 -0.539531 0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER 0.693658 -0.538818 0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER 0.708875 -0.534075 0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER 0.691194 -0.517905 0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669969 -0.544274 0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER 0.667505 -0.523361 0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER 0.661495 -0.544988 0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER 0.687649 -0.560445 0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER 0.679176 -0.561158 0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER 0.702866 -0.555702 0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.743468 -0.557494 -0.0178949 RAD 0.0185185 - txt002 - SPHERE CENTER 0.767402 -0.560084 -0.0233819 RAD 0.00617284 - txt002 - SPHERE CENTER 0.755145 -0.53997 -0.0307879 RAD 0.00617284 - txt002 - SPHERE CENTER 0.760285 -0.543179 -0.00685171 RAD 0.00617284 - txt002 - SPHERE CENTER 0.755725 -0.577608 -0.0104889 RAD 0.00617284 - txt002 - SPHERE CENTER 0.748608 -0.560703 0.00604126 RAD 0.00617284 - txt002 - SPHERE CENTER 0.731791 -0.575017 -0.00500196 RAD 0.00617284 - txt002 - SPHERE CENTER 0.750585 -0.574398 -0.0344251 RAD 0.00617284 - txt002 - SPHERE CENTER 0.726651 -0.571808 -0.0289382 RAD 0.00617284 - txt002 - SPHERE CENTER 0.738328 -0.554284 -0.0418311 RAD 0.00617284 - txt002 - SPHERE CENTER 0.677953 -0.581682 0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER 0.682851 -0.601808 0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER 0.700216 -0.58454 0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.680568 -0.579842 0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.660588 -0.59895 0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER 0.658304 -0.576984 0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER 0.65569 -0.578824 -0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.680237 -0.603648 -0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER 0.675339 -0.583522 -0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER 0.697602 -0.58638 -0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER 0.683194 -0.551134 -0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER 0.687731 -0.573364 -0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.703871 -0.56324 -0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER 0.682033 -0.571303 -0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER 0.667055 -0.561258 -0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER 0.661356 -0.559196 -0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER 0.662518 -0.539027 -0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.688893 -0.553195 -0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER 0.684356 -0.530964 -0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER 0.705033 -0.543071 -0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER 0.607487 -0.335322 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.629404 -0.313405 -0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.626214 -0.316595 -0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.624401 -0.335868 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.606941 -0.318408 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.631217 -0.294133 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.611945 -0.295946 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.634407 -0.290942 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.648676 -0.311592 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.651867 -0.308402 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.646863 -0.330864 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.610996 -0.384191 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.623201 -0.403702 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.635431 -0.385946 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.62031 -0.401066 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.598766 -0.401947 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.595876 -0.399312 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.586561 -0.382437 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.613886 -0.386827 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER 0.601681 -0.367317 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.626116 -0.369071 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.558618 -0.331813 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.539107 -0.319608 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.541743 -0.322499 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.556863 -0.307378 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.555982 -0.328923 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER 0.573738 -0.316693 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.575492 -0.341128 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.540862 -0.344043 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.560372 -0.356248 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.543497 -0.346933 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.625895 -0.264535 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.637402 -0.248969 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.646193 -0.271807 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.625088 -0.268363 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.617105 -0.241698 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.604791 -0.261092 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.605598 -0.257264 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.638209 -0.245142 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.626702 -0.260708 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER 0.647 -0.267979 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.555109 -0.282943 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.550934 -0.258608 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.570229 -0.267823 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.570229 -0.267823 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.535813 -0.273728 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.555109 -0.282943 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.539989 -0.298064 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.535813 -0.273728 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.539989 -0.298064 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.555109 -0.282943 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.603979 -0.286452 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.613271 -0.265398 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.627912 -0.281225 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.610787 -0.26842 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.589337 -0.270625 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.586853 -0.273647 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.580045 -0.291679 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.606463 -0.283431 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.59717 -0.304484 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.621104 -0.299257 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.678274 -0.316914 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.69384 -0.305407 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.674446 -0.317721 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.671002 -0.296616 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.697667 -0.3046 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.67483 -0.295809 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.682101 -0.316107 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER 0.701111 -0.325704 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.685545 -0.337211 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.681717 -0.338018 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.656357 -0.33883 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.677411 -0.329538 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.674389 -0.332022 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.661584 -0.314897 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.659378 -0.336346 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.643552 -0.321705 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.638325 -0.345639 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.672184 -0.353472 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.65113 -0.362764 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669162 -0.355956 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.659866 -0.3877 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.684201 -0.391875 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.674986 -0.37258 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.674986 -0.37258 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669081 -0.406996 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.659866 -0.3877 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.644745 -0.40282 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669081 -0.406996 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.644745 -0.40282 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.659866 -0.3877 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.607487 -0.335322 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.659645 -0.283164 0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER 0.672915 -0.269894 0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER 0.666987 -0.293281 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.649528 -0.275822 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.665573 -0.259777 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.642185 -0.265705 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.652302 -0.273047 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.683032 -0.277236 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669762 -0.290507 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.677104 -0.300624 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.656357 -0.33883 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.663448 -0.328536 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.639482 -0.329516 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.654603 -0.314396 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.680322 -0.33785 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.671477 -0.32371 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.673232 -0.348145 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.665202 -0.35297 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.658111 -0.363265 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.641237 -0.353951 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.603979 -0.286452 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.614273 -0.279361 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.628413 -0.288206 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.613293 -0.303327 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.589839 -0.277607 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.588858 -0.301572 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.579544 -0.284698 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.604959 -0.262487 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.594664 -0.269578 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.619099 -0.271332 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.610775 -0.279656 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.621535 -0.258061 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.634468 -0.275921 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.616678 -0.264057 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.597842 -0.261795 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.592985 -0.267791 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.587082 -0.28339 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER 0.615632 -0.27366 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.604872 -0.295255 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.628565 -0.29152 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.555109 -0.282943 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.550934 -0.258608 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.570229 -0.267823 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.570229 -0.267823 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.535813 -0.273728 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.555109 -0.282943 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.539989 -0.298064 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.535813 -0.273728 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.539989 -0.298064 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.555109 -0.282943 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.558618 -0.331813 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.55307 -0.320611 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER 0.57665 -0.325005 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.563845 -0.30788 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.535038 -0.327419 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.545813 -0.314688 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.540585 -0.338621 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.547843 -0.344544 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.553391 -0.355747 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.571423 -0.348938 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.663153 -0.332034 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.684748 -0.321274 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.678752 -0.326131 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.666888 -0.308341 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669149 -0.327177 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.651289 -0.314244 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.647554 -0.337937 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.681014 -0.344967 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.659419 -0.355727 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER 0.675018 -0.349824 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.610996 -0.384191 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.622198 -0.389739 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER 0.63493 -0.378964 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.617804 -0.366159 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.598265 -0.394966 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.593871 -0.371386 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.587062 -0.389418 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.61539 -0.407771 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.604188 -0.402224 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.628121 -0.396997 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.659866 -0.3877 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.684201 -0.391875 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.674986 -0.37258 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.674986 -0.37258 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669081 -0.406996 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.659866 -0.3877 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.644745 -0.40282 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669081 -0.406996 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.644745 -0.40282 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.659866 -0.3877 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.554344 -0.645066 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.610229 -0.668521 0.153697 RAD 0.0185185 - txt002 - SPHERE CENTER 0.633406 -0.663938 0.160875 RAD 0.00617284 - txt002 - SPHERE CENTER 0.626429 -0.65892 0.137727 RAD 0.00617284 - txt002 - SPHERE CENTER 0.617928 -0.64522 0.156428 RAD 0.00617284 - txt002 - SPHERE CENTER 0.617206 -0.673539 0.176845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.601728 -0.654822 0.172398 RAD 0.00617284 - txt002 - SPHERE CENTER 0.59403 -0.678123 0.169668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.625707 -0.687239 0.158144 RAD 0.00617284 - txt002 - SPHERE CENTER 0.602531 -0.691822 0.150967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.61873 -0.682221 0.134996 RAD 0.00617284 - txt002 - SPHERE CENTER 0.622977 -0.619787 0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.63767 -0.608008 0.0834188 RAD 0.00617284 - txt002 - SPHERE CENTER 0.620102 -0.623239 0.0751099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.613891 -0.601637 0.0853287 RAD 0.00617284 - txt002 - SPHERE CENTER 0.640545 -0.604555 0.107698 RAD 0.00617284 - txt002 - SPHERE CENTER 0.616766 -0.598184 0.109608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.625852 -0.616334 0.123668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.646756 -0.626157 0.0974792 RAD 0.00617284 - txt002 - SPHERE CENTER 0.632063 -0.637936 0.113449 RAD 0.00617284 - txt002 - SPHERE CENTER 0.629188 -0.641389 0.0891702 RAD 0.00617284 - txt002 - SPHERE CENTER 0.585648 -0.598918 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.601562 -0.580238 0.162601 RAD 0.00617284 - txt002 - SPHERE CENTER 0.605914 -0.59781 0.14581 RAD 0.00617284 - txt002 - SPHERE CENTER 0.587563 -0.581665 0.142311 RAD 0.00617284 - txt002 - SPHERE CENTER 0.581295 -0.581346 0.176661 RAD 0.00617284 - txt002 - SPHERE CENTER 0.567297 -0.582773 0.156372 RAD 0.00617284 - txt002 - SPHERE CENTER 0.565381 -0.600026 0.173931 RAD 0.00617284 - txt002 - SPHERE CENTER 0.599646 -0.597491 0.18016 RAD 0.00617284 - txt002 - SPHERE CENTER 0.583732 -0.616171 0.177429 RAD 0.00617284 - txt002 - SPHERE CENTER 0.603999 -0.615063 0.163369 RAD 0.00617284 - txt002 - SPHERE CENTER 0.541596 -0.6938 0.165419 RAD 0.0185185 - txt002 - SPHERE CENTER 0.547376 -0.70016 0.188567 RAD 0.00617284 - txt002 - SPHERE CENTER 0.564621 -0.690564 0.173728 RAD 0.00617284 - txt002 - SPHERE CENTER 0.546319 -0.676324 0.182211 RAD 0.00617284 - txt002 - SPHERE CENTER 0.524351 -0.703396 0.180258 RAD 0.00617284 - txt002 - SPHERE CENTER 0.523294 -0.679561 0.173902 RAD 0.00617284 - txt002 - SPHERE CENTER 0.518571 -0.697037 0.157111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.542652 -0.717636 0.171776 RAD 0.00617284 - txt002 - SPHERE CENTER 0.536873 -0.711276 0.148628 RAD 0.00617284 - txt002 - SPHERE CENTER 0.559898 -0.70804 0.156937 RAD 0.00617284 - txt002 - SPHERE CENTER 0.517014 -0.624197 0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER 0.516313 -0.60809 0.190293 RAD 0.00617284 - txt002 - SPHERE CENTER 0.538029 -0.616221 0.181811 RAD 0.00617284 - txt002 - SPHERE CENTER 0.524375 -0.60089 0.168094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.495298 -0.616065 0.180075 RAD 0.00617284 - txt002 - SPHERE CENTER 0.50336 -0.608865 0.157875 RAD 0.00617284 - txt002 - SPHERE CENTER 0.495999 -0.632172 0.161374 RAD 0.00617284 - txt002 - SPHERE CENTER 0.508952 -0.631397 0.193792 RAD 0.00617284 - txt002 - SPHERE CENTER 0.509653 -0.647504 0.175091 RAD 0.00617284 - txt002 - SPHERE CENTER 0.530668 -0.639529 0.18531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.48571 -0.670344 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.466887 -0.67091 0.138803 RAD 0.00617284 - txt002 - SPHERE CENTER 0.490138 -0.671107 0.147112 RAD 0.00617284 - txt002 - SPHERE CENTER 0.480853 -0.650637 0.136894 RAD 0.00617284 - txt002 - SPHERE CENTER 0.46246 -0.670147 0.114524 RAD 0.00617284 - txt002 - SPHERE CENTER 0.476425 -0.649874 0.112614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.481283 -0.669581 0.0985541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.471745 -0.690617 0.124743 RAD 0.00617284 - txt002 - SPHERE CENTER 0.490567 -0.690052 0.108773 RAD 0.00617284 - txt002 - SPHERE CENTER 0.494995 -0.690815 0.133052 RAD 0.00617284 - txt002 - SPHERE CENTER 0.578925 -0.714669 0.104938 RAD 0.0185185 - txt002 - SPHERE CENTER 0.597914 -0.729812 0.109385 RAD 0.00617284 - txt002 - SPHERE CENTER 0.602084 -0.70632 0.103028 RAD 0.00617284 - txt002 - SPHERE CENTER 0.592661 -0.711617 0.125228 RAD 0.00617284 - txt002 - SPHERE CENTER 0.574755 -0.738161 0.111295 RAD 0.00617284 - txt002 - SPHERE CENTER 0.569503 -0.719965 0.127138 RAD 0.00617284 - txt002 - SPHERE CENTER 0.555767 -0.723017 0.106848 RAD 0.00617284 - txt002 - SPHERE CENTER 0.584178 -0.732864 0.0890951 RAD 0.00617284 - txt002 - SPHERE CENTER 0.565189 -0.71772 0.0846485 RAD 0.00617284 - txt002 - SPHERE CENTER 0.588348 -0.709372 0.0827387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.52304 -0.691213 0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER 0.511567 -0.712906 0.0596212 RAD 0.00617284 - txt002 - SPHERE CENTER 0.529503 -0.710453 0.0764123 RAD 0.00617284 - txt002 - SPHERE CENTER 0.507717 -0.699372 0.079911 RAD 0.00617284 - txt002 - SPHERE CENTER 0.505104 -0.693665 0.0455609 RAD 0.00617284 - txt002 - SPHERE CENTER 0.501254 -0.680131 0.0658506 RAD 0.00617284 - txt002 - SPHERE CENTER 0.516576 -0.671972 0.0482916 RAD 0.00617284 - txt002 - SPHERE CENTER 0.526889 -0.704747 0.0420622 RAD 0.00617284 - txt002 - SPHERE CENTER 0.538362 -0.683054 0.044793 RAD 0.00617284 - txt002 - SPHERE CENTER 0.544826 -0.702295 0.0588533 RAD 0.00617284 - txt002 - SPHERE CENTER 0.591673 -0.665934 0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER 0.605761 -0.658095 0.0319289 RAD 0.00617284 - txt002 - SPHERE CENTER 0.58746 -0.643855 0.0404111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.607672 -0.647455 0.0541285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.609975 -0.680174 0.0421477 RAD 0.00617284 - txt002 - SPHERE CENTER 0.611885 -0.669535 0.0643473 RAD 0.00617284 - txt002 - SPHERE CENTER 0.595887 -0.688013 0.0608487 RAD 0.00617284 - txt002 - SPHERE CENTER 0.589763 -0.676573 0.0284303 RAD 0.00617284 - txt002 - SPHERE CENTER 0.575674 -0.684413 0.0471312 RAD 0.00617284 - txt002 - SPHERE CENTER 0.571461 -0.662334 0.0369125 RAD 0.00617284 - txt002 - SPHERE CENTER 0.471405 -0.471405 0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER 0.501645 -0.441164 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.518106 -0.424703 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER 0.522721 -0.437548 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.505261 -0.420089 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.497031 -0.428319 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.484186 -0.423704 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.48057 -0.44478 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.51449 -0.445778 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.498029 -0.462239 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.519105 -0.458623 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.542955 -0.452233 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.560583 -0.44013 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.542955 -0.452233 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.53742 -0.431578 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.560583 -0.44013 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.53742 -0.431578 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.542955 -0.452233 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.566118 -0.460785 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.548489 -0.472887 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.548489 -0.472887 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.490576 -0.399854 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.502679 -0.382226 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.511231 -0.405389 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.490576 -0.399854 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.482024 -0.376691 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.469922 -0.39432 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.469922 -0.39432 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.502679 -0.382226 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.490576 -0.399854 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.511231 -0.405389 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.430095 -0.460336 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.427669 -0.446904 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.450155 -0.45293 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.436486 -0.436486 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.407609 -0.454311 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER 0.416426 -0.443892 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.410035 -0.467742 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.421278 -0.470754 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.423704 -0.484186 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.443764 -0.47678 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.419026 -0.419026 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.414851 -0.39469 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.434147 -0.403906 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.434147 -0.403906 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399731 -0.409811 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.419026 -0.419026 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.403906 -0.434147 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399731 -0.409811 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.403906 -0.434147 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.419026 -0.419026 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399854 -0.490576 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.378536 -0.488909 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399854 -0.490576 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.39432 -0.469922 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.378536 -0.488909 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.39432 -0.469922 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399854 -0.490576 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.384071 -0.509564 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.405389 -0.511231 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.405389 -0.511231 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.482473 -0.512714 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.495905 -0.51514 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.506323 -0.506323 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.48988 -0.492654 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.472055 -0.521531 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.46603 -0.499045 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.458623 -0.519105 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.488498 -0.5352 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER 0.475067 -0.532774 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.498917 -0.526383 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.452233 -0.542955 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.4539 -0.564273 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.472887 -0.548489 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.452233 -0.542955 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.433245 -0.558738 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.431578 -0.53742 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.431578 -0.53742 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.4539 -0.564273 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.452233 -0.542955 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.472887 -0.548489 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.523783 -0.523783 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.548119 -0.527958 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.538903 -0.508662 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.538903 -0.508662 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.532998 -0.543078 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.523783 -0.523783 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.508662 -0.538903 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.532998 -0.543078 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.508662 -0.538903 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.523783 -0.523783 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.335322 -0.607487 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.313405 -0.629404 0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.316595 -0.626214 0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.335868 -0.624401 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.318408 -0.606941 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.294133 -0.631217 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.295946 -0.611945 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.290942 -0.634407 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.311592 -0.648676 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.308402 -0.651867 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.330864 -0.646863 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.384191 -0.610996 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.405245 -0.601704 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.402224 -0.604188 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.389418 -0.587062 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.387213 -0.608512 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER 0.371386 -0.593871 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.366159 -0.617804 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.400018 -0.625637 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.378964 -0.63493 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.396997 -0.628121 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.331813 -0.558618 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.341105 -0.537564 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.355747 -0.553391 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.338621 -0.540585 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.317172 -0.542791 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.314688 -0.545813 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.30788 -0.563845 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.334297 -0.555596 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER 0.325005 -0.57665 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.348938 -0.571423 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.264535 -0.625895 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.245336 -0.623429 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.268271 -0.624736 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.260997 -0.604627 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.2416 -0.624589 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.257262 -0.605787 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.2608 -0.627055 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER 0.248874 -0.644697 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.268073 -0.647163 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.271809 -0.646004 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282943 -0.555109 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.278768 -0.530773 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.298064 -0.539989 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.298064 -0.539989 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.263648 -0.545894 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282943 -0.555109 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.267823 -0.570229 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.263648 -0.545894 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.267823 -0.570229 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282943 -0.555109 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.286452 -0.603979 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.266942 -0.591774 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.269578 -0.594664 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.284698 -0.579544 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.283817 -0.601088 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.301572 -0.588858 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.303327 -0.613293 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.268696 -0.616209 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.288206 -0.628413 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.271332 -0.619099 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.316914 -0.678274 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.31938 -0.697473 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.338182 -0.681812 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.318074 -0.674538 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.298112 -0.693935 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.296805 -0.671 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.295646 -0.674736 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.31822 -0.701209 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.315754 -0.682009 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER 0.337022 -0.685547 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.33883 -0.656357 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.351035 -0.675867 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.363265 -0.658111 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.348145 -0.673232 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.3266 -0.674113 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.32371 -0.671477 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.314396 -0.654603 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.341721 -0.658993 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.329516 -0.639482 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.353951 -0.641237 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.3877 -0.659866 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.412036 -0.664041 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.40282 -0.644745 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.40282 -0.644745 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.396915 -0.679161 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.3877 -0.659866 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37258 -0.674986 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.396915 -0.679161 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37258 -0.674986 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.3877 -0.659866 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.554344 -0.645066 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.616373 -0.681385 -0.129006 RAD 0.0185185 - txt002 - SPHERE CENTER 0.639472 -0.678928 -0.137375 RAD 0.00617284 - txt002 - SPHERE CENTER 0.621631 -0.664108 -0.145845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.629767 -0.661636 -0.122663 RAD 0.00617284 - txt002 - SPHERE CENTER 0.634214 -0.696205 -0.120537 RAD 0.00617284 - txt002 - SPHERE CENTER 0.624508 -0.678912 -0.105825 RAD 0.00617284 - txt002 - SPHERE CENTER 0.611115 -0.698662 -0.112168 RAD 0.00617284 - txt002 - SPHERE CENTER 0.626079 -0.698678 -0.143718 RAD 0.00617284 - txt002 - SPHERE CENTER 0.602979 -0.701135 -0.135349 RAD 0.00617284 - txt002 - SPHERE CENTER 0.608237 -0.683858 -0.152187 RAD 0.00617284 - txt002 - SPHERE CENTER 0.617144 -0.607573 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.63057 -0.595495 -0.139672 RAD 0.00617284 - txt002 - SPHERE CENTER 0.617371 -0.615286 -0.146288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.605919 -0.594239 -0.140323 RAD 0.00617284 - txt002 - SPHERE CENTER 0.630343 -0.587782 -0.116217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.605692 -0.586526 -0.116868 RAD 0.00617284 - txt002 - SPHERE CENTER 0.616917 -0.59986 -0.0993785 RAD 0.00617284 - txt002 - SPHERE CENTER 0.641795 -0.608828 -0.122182 RAD 0.00617284 - txt002 - SPHERE CENTER 0.628369 -0.620906 -0.105343 RAD 0.00617284 - txt002 - SPHERE CENTER 0.628595 -0.628619 -0.128798 RAD 0.00617284 - txt002 - SPHERE CENTER 0.609912 -0.649723 -0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER 0.631982 -0.640648 -0.0560094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.62585 -0.64267 -0.0798417 RAD 0.00617284 - txt002 - SPHERE CENTER 0.614812 -0.625749 -0.0656463 RAD 0.00617284 - txt002 - SPHERE CENTER 0.616044 -0.647702 -0.0385197 RAD 0.00617284 - txt002 - SPHERE CENTER 0.598874 -0.632802 -0.0481565 RAD 0.00617284 - txt002 - SPHERE CENTER 0.593974 -0.656777 -0.0448623 RAD 0.00617284 - txt002 - SPHERE CENTER 0.627081 -0.664623 -0.0527151 RAD 0.00617284 - txt002 - SPHERE CENTER 0.605012 -0.673698 -0.0590577 RAD 0.00617284 - txt002 - SPHERE CENTER 0.620949 -0.666645 -0.0765474 RAD 0.00617284 - txt002 - SPHERE CENTER 0.553573 -0.718878 -0.117284 RAD 0.0185185 - txt002 - SPHERE CENTER 0.563328 -0.73992 -0.108814 RAD 0.00617284 - txt002 - SPHERE CENTER 0.577348 -0.719679 -0.110668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.559693 -0.720935 -0.0934517 RAD 0.00617284 - txt002 - SPHERE CENTER 0.539553 -0.739118 -0.115431 RAD 0.00617284 - txt002 - SPHERE CENTER 0.535918 -0.720133 -0.100068 RAD 0.00617284 - txt002 - SPHERE CENTER 0.529798 -0.718076 -0.1239 RAD 0.00617284 - txt002 - SPHERE CENTER 0.557208 -0.737863 -0.132647 RAD 0.00617284 - txt002 - SPHERE CENTER 0.547453 -0.716821 -0.141116 RAD 0.00617284 - txt002 - SPHERE CENTER 0.571228 -0.717623 -0.1345 RAD 0.00617284 - txt002 - SPHERE CENTER 0.547112 -0.687216 -0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER 0.554862 -0.690713 -0.0274488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.570641 -0.682694 -0.0446649 RAD 0.00617284 - txt002 - SPHERE CENTER 0.552739 -0.667813 -0.0364345 RAD 0.00617284 - txt002 - SPHERE CENTER 0.531333 -0.695235 -0.0334138 RAD 0.00617284 - txt002 - SPHERE CENTER 0.52921 -0.672335 -0.0423994 RAD 0.00617284 - txt002 - SPHERE CENTER 0.523582 -0.691738 -0.0565949 RAD 0.00617284 - txt002 - SPHERE CENTER 0.549235 -0.710116 -0.0416443 RAD 0.00617284 - txt002 - SPHERE CENTER 0.541484 -0.706619 -0.0648253 RAD 0.00617284 - txt002 - SPHERE CENTER 0.565014 -0.702097 -0.0588603 RAD 0.00617284 - txt002 - SPHERE CENTER 0.491544 -0.682558 -0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.474542 -0.688647 -0.0825505 RAD 0.00617284 - txt002 - SPHERE CENTER 0.498226 -0.686417 -0.0759343 RAD 0.00617284 - txt002 - SPHERE CENTER 0.485132 -0.666351 -0.0818993 RAD 0.00617284 - txt002 - SPHERE CENTER 0.46786 -0.684788 -0.106005 RAD 0.00617284 - txt002 - SPHERE CENTER 0.47845 -0.662492 -0.105354 RAD 0.00617284 - txt002 - SPHERE CENTER 0.484862 -0.678699 -0.122844 RAD 0.00617284 - txt002 - SPHERE CENTER 0.480953 -0.704854 -0.10004 RAD 0.00617284 - txt002 - SPHERE CENTER 0.497955 -0.698765 -0.116879 RAD 0.00617284 - txt002 - SPHERE CENTER 0.504637 -0.702624 -0.093424 RAD 0.00617284 - txt002 - SPHERE CENTER 0.560805 -0.676727 -0.177765 RAD 0.0185185 - txt002 - SPHERE CENTER 0.57563 -0.689897 -0.192477 RAD 0.00617284 - txt002 - SPHERE CENTER 0.585222 -0.673115 -0.177114 RAD 0.00617284 - txt002 - SPHERE CENTER 0.575587 -0.693998 -0.168128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.551213 -0.693509 -0.193128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.55117 -0.69761 -0.16878 RAD 0.00617284 - txt002 - SPHERE CENTER 0.536388 -0.680339 -0.178416 RAD 0.00617284 - txt002 - SPHERE CENTER 0.560848 -0.672626 -0.202114 RAD 0.00617284 - txt002 - SPHERE CENTER 0.546023 -0.659456 -0.187402 RAD 0.00617284 - txt002 - SPHERE CENTER 0.57044 -0.655844 -0.186751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.498776 -0.640408 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.478525 -0.627785 -0.166213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.484234 -0.630799 -0.142381 RAD 0.00617284 - txt002 - SPHERE CENTER 0.497935 -0.615951 -0.156576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.493066 -0.637394 -0.183703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.512476 -0.62556 -0.174066 RAD 0.00617284 - txt002 - SPHERE CENTER 0.513317 -0.650016 -0.17736 RAD 0.00617284 - txt002 - SPHERE CENTER 0.479365 -0.652241 -0.169507 RAD 0.00617284 - txt002 - SPHERE CENTER 0.499616 -0.664864 -0.163165 RAD 0.00617284 - txt002 - SPHERE CENTER 0.485075 -0.655255 -0.145675 RAD 0.00617284 - txt002 - SPHERE CENTER 0.561576 -0.602915 -0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER 0.570049 -0.602201 -0.194773 RAD 0.00617284 - txt002 - SPHERE CENTER 0.582252 -0.615021 -0.177557 RAD 0.00617284 - txt002 - SPHERE CENTER 0.560414 -0.623084 -0.185788 RAD 0.00617284 - txt002 - SPHERE CENTER 0.549372 -0.590095 -0.188808 RAD 0.00617284 - txt002 - SPHERE CENTER 0.539737 -0.610978 -0.179823 RAD 0.00617284 - txt002 - SPHERE CENTER 0.540899 -0.590808 -0.165627 RAD 0.00617284 - txt002 - SPHERE CENTER 0.571211 -0.582032 -0.180578 RAD 0.00617284 - txt002 - SPHERE CENTER 0.562738 -0.582745 -0.157397 RAD 0.00617284 - txt002 - SPHERE CENTER 0.583414 -0.594852 -0.163362 RAD 0.00617284 - txt002 - SPHERE CENTER 0.335322 -0.607487 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.283164 -0.659645 -0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER 0.269894 -0.672915 -0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER 0.293281 -0.666987 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.275822 -0.649528 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.259777 -0.665573 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.265705 -0.642185 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.273047 -0.652302 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.277236 -0.683032 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.290507 -0.669762 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.300624 -0.677104 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.33883 -0.656357 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.350033 -0.661904 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.362764 -0.65113 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.345639 -0.638325 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.326099 -0.667131 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.321705 -0.643552 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.314897 -0.661584 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.343224 -0.679937 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.332022 -0.674389 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.355956 -0.669162 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.286452 -0.603979 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.280905 -0.592776 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.304484 -0.59717 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.291679 -0.580045 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.262872 -0.599585 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.273647 -0.586853 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.26842 -0.610787 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.275678 -0.61671 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.281225 -0.627912 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.299257 -0.621104 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.279656 -0.610775 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.256944 -0.602632 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.26347 -0.606749 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.273158 -0.587686 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.27313 -0.606658 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.289344 -0.591712 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.295841 -0.614801 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.263442 -0.62572 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.286153 -0.633864 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER 0.269968 -0.629838 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282943 -0.555109 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.278768 -0.530773 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.298064 -0.539989 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.298064 -0.539989 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.263648 -0.545894 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282943 -0.555109 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.267823 -0.570229 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.263648 -0.545894 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.267823 -0.570229 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282943 -0.555109 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.331813 -0.558618 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.342108 -0.551527 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356248 -0.560372 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.341128 -0.575492 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.317673 -0.549772 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.316693 -0.573738 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.307378 -0.556863 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.332793 -0.534652 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.322499 -0.541743 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.346933 -0.543497 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.332034 -0.663153 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.340177 -0.685865 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.355123 -0.669651 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.33606 -0.679339 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.317089 -0.679367 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.312971 -0.672841 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.308945 -0.656656 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER 0.336151 -0.669679 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.328008 -0.646968 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.351097 -0.653465 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.384191 -0.610996 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.391282 -0.600701 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER 0.367317 -0.601681 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.382437 -0.586561 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.408157 -0.610016 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399312 -0.595876 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.401066 -0.62031 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.393037 -0.625136 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.385946 -0.635431 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.369071 -0.626116 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.3877 -0.659866 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.412036 -0.664041 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.40282 -0.644745 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.40282 -0.644745 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.396915 -0.679161 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.3877 -0.659866 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37258 -0.674986 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.396915 -0.679161 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37258 -0.674986 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.3877 -0.659866 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.471405 -0.471405 -0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER 0.441164 -0.441164 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.443014 -0.422853 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.449156 -0.418916 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.463412 -0.433171 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.435021 -0.445101 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.455419 -0.455419 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER 0.433171 -0.463412 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.420766 -0.430846 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER 0.418916 -0.449156 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.426908 -0.426908 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399854 -0.452233 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.383576 -0.43509 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.40305 -0.440308 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.406245 -0.428383 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.380381 -0.447015 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER 0.40305 -0.440308 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.396659 -0.464158 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.377186 -0.45894 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.393464 -0.476083 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.396659 -0.464158 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.452233 -0.399854 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.45894 -0.377186 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.476083 -0.393464 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.464158 -0.396659 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.43509 -0.383576 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.440308 -0.40305 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.428383 -0.406245 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.447015 -0.380381 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.440308 -0.40305 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.464158 -0.396659 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.512714 -0.460336 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.512375 -0.453047 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.493241 -0.465554 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER 0.497443 -0.44229 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.531849 -0.447829 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER 0.516916 -0.437072 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.532187 -0.455118 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER 0.527647 -0.471093 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.527985 -0.478381 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.508512 -0.483599 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.523783 -0.419026 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.538038 -0.404771 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER 0.532513 -0.427756 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.515053 -0.410297 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.529309 -0.396041 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.506323 -0.401567 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.515053 -0.410297 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.546768 -0.4135 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.532513 -0.427756 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.541242 -0.436486 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.542955 -0.490576 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.565623 -0.483869 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.54615 -0.478651 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.549345 -0.466726 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.562428 -0.495794 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.54615 -0.478651 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.539759 -0.502501 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.559233 -0.507719 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.536564 -0.514426 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.539759 -0.502501 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.460336 -0.512714 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.461599 -0.535539 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER 0.478381 -0.527985 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.455118 -0.532187 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER 0.443553 -0.520267 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.437072 -0.516916 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.44229 -0.497443 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.466817 -0.516065 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.465554 -0.493241 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER 0.483599 -0.508512 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.490576 -0.542955 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.507719 -0.559233 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.514426 -0.536564 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.502501 -0.539759 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.483869 -0.565623 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.478651 -0.54615 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.466726 -0.549345 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.495794 -0.562428 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER 0.478651 -0.54615 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.502501 -0.539759 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.419026 -0.523783 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.404771 -0.538038 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.427756 -0.532513 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.410297 -0.515053 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.396041 -0.529309 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.401567 -0.506323 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.410297 -0.515053 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.4135 -0.546768 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.427756 -0.532513 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.436486 -0.541242 -0.222222 RAD 0.00617284 - txt002 - -END_SCENE diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/jni/Android.mk b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/jni/Android.mk deleted file mode 100644 index 3a3a5c86f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/jni/Android.mk +++ /dev/null @@ -1,84 +0,0 @@ -# Copyright 2005-2014 Intel Corporation. All Rights Reserved. -# -# This file is part of Threading Building Blocks. -# -# Threading Building Blocks is free software; you can redistribute it -# and/or modify it under the terms of the GNU General Public License -# version 2 as published by the Free Software Foundation. -# -# Threading Building Blocks is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied warranty -# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Threading Building Blocks; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# -# As a special exception, you may use this file as part of a free software -# library without restriction. Specifically, if other files instantiate -# templates or use macros or inline functions from this file, or you compile -# this file and link it with other files to produce an executable, this -# file does not by itself cause the resulting executable to be covered by -# the GNU General Public License. This exception does not however -# invalidate any other reasons why the executable file might be covered by -# the GNU General Public License. - - -# The original source for this example is -# Copyright (c) 1994-2008 John E. Stone -# 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. -# 3. The name of the author may not be used to endorse or promote products -# derived from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. - -LOCAL_PATH := $(realpath $(call my-dir)/..) - -#Relative paths -TBB_PATH := ../../../.. -SRC_PATH := $(TBB_PATH)/examples/parallel_for/tachyon/src - -#Absolute paths -TBB_FULL_PATH := $(realpath $(TBB_PATH)) -TBB_COMMON_FULL_PATH := $(realpath $(TBB_PATH))/examples/common - -#The path is setup for binary package -#Override if needed -TBB_LIBRARY_FULL_PATH ?= $(TBB_FULL_PATH)/lib/android - -include $(CLEAR_VARS) -LOCAL_MODULE := jni-engine -LOCAL_SRC_FILES := jni/jni-engine.cpp $(TBB_PATH)/examples/common/gui/convideo.cpp $(SRC_PATH)/trace.tbb.cpp $(SRC_PATH)/pthread.cpp $(SRC_PATH)/tachyon_video.cpp $(SRC_PATH)/api.cpp $(SRC_PATH)/apigeom.cpp $(SRC_PATH)/apitrigeom.cpp $(SRC_PATH)/bndbox.cpp $(SRC_PATH)/box.cpp $(SRC_PATH)/camera.cpp $(SRC_PATH)/coordsys.cpp $(SRC_PATH)/cylinder.cpp $(SRC_PATH)/extvol.cpp $(SRC_PATH)/global.cpp $(SRC_PATH)/grid.cpp $(SRC_PATH)/imageio.cpp $(SRC_PATH)/imap.cpp $(SRC_PATH)/intersect.cpp $(SRC_PATH)/jpeg.cpp $(SRC_PATH)/light.cpp $(SRC_PATH)/objbound.cpp $(SRC_PATH)/parse.cpp $(SRC_PATH)/plane.cpp $(SRC_PATH)/ppm.cpp $(SRC_PATH)/quadric.cpp $(SRC_PATH)/render.cpp $(SRC_PATH)/ring.cpp $(SRC_PATH)/shade.cpp $(SRC_PATH)/sphere.cpp $(SRC_PATH)/texture.cpp $(SRC_PATH)/tgafile.cpp $(SRC_PATH)/trace_rest.cpp $(SRC_PATH)/triangle.cpp $(SRC_PATH)/ui.cpp $(SRC_PATH)/util.cpp $(SRC_PATH)/vector.cpp $(SRC_PATH)/vol.cpp -# Add -DMARK_RENDERING_AREA=1 to see graphical threads work -LOCAL_CFLAGS += -DTBB_USE_EXCEPTIONS=0 -DTBB_USE_GCC_BUILTINS -std=c++11 -fexceptions -Wdeprecated-declarations -I$(NDK_ROOT)/sources/cxx-stl/gnu-libstdc++/$(NDK_TOOLCHAIN_VERSION)/include -I$(NDK_ROOT)/sources/cxx-stl/gnu-libstdc++/$(NDK_TOOLCHAIN_VERSION)/libs/$(APP_ABI)/include -I$(TBB_FULL_PATH)/include -I$(TBB_COMMON_FULL_PATH) -I$(realpath $(SRC_PATH)) -LOCAL_LDLIBS := -lm -llog -ljnigraphics -ltbb -lgnustl_shared -L./ -L$(TBB_FULL_PATH)/lib/android -L$(NDK_ROOT)/sources/cxx-stl/gnu-libstdc++/$(NDK_TOOLCHAIN_VERSION)/libs/$(APP_ABI) - -include $(BUILD_SHARED_LIBRARY) - -LOCAL_PATH := $(TBB_LIBRARY_FULL_PATH) - -include $(CLEAR_VARS) -LOCAL_MODULE := libtbb -LOCAL_SRC_FILES := libtbb.so -include $(PREBUILT_SHARED_LIBRARY) - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/jni/Application.mk b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/jni/Application.mk deleted file mode 100644 index 9c47b3a46..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/jni/Application.mk +++ /dev/null @@ -1,31 +0,0 @@ -# Copyright 2005-2014 Intel Corporation. All Rights Reserved. -# -# This file is part of Threading Building Blocks. -# -# Threading Building Blocks is free software; you can redistribute it -# and/or modify it under the terms of the GNU General Public License -# version 2 as published by the Free Software Foundation. -# -# Threading Building Blocks is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied warranty -# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Threading Building Blocks; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# -# As a special exception, you may use this file as part of a free software -# library without restriction. Specifically, if other files instantiate -# templates or use macros or inline functions from this file, or you compile -# this file and link it with other files to produce an executable, this -# file does not by itself cause the resulting executable to be covered by -# the GNU General Public License. This exception does not however -# invalidate any other reasons why the executable file might be covered by -# the GNU General Public License. - -APP_ABI:=x86 -APP_STL:=gnustl_shared -APP_GNUSTL_FORCE_CPP_FEATURES := exceptions rtti -APP_PLATFORM:=android-15 -NDK_TOOLCHAIN_VERSION:=4.6 diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/jni/jni-engine.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/jni/jni-engine.cpp deleted file mode 100644 index 481624536..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/jni/jni-engine.cpp +++ /dev/null @@ -1,287 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. - */ - -#include -#include -#include -#include - -#include "utility/utility.h" -#include "tachyon_video.h" -#include "tbb/tick_count.h" -#include "tbb/task_scheduler_init.h" - -#include -#include -#include - -#include -#define LOG_INFO(...) __android_log_print(ANDROID_LOG_INFO,"tachyon",__VA_ARGS__) -#define LOG_ERROR(...) __android_log_print(ANDROID_LOG_ERROR,"tachyon",__VA_ARGS__) - -#include -#include -#include - -#include "types.h" -#include "api.h" /* The ray tracing library API */ -#include "parse.h" /* Support for my own file format */ -#include "ui.h" -#include "util.h" - -SceneHandle global_scene; -int global_xsize; /* size of graphic image rendered in window (from hres, vres) */ -int global_ysize; -int global_xwinsize; /* size of window (may be larger than above) */ -int global_ywinsize; -bool global_usegraphics; -char* global_window_title; -static long startTime=0; -static volatile long elapsedTime=0; -static volatile bool isCancelled=false; -static volatile bool isPaused=false; - -bool silent_mode = false; /* silent mode */ - -class tachyon_video *video = 0; - -typedef struct { - int foundfilename; /* was a model file name found in the args? */ - char filename[1024]; /* model file to render */ - int useoutfilename; /* command line override of output filename */ - char outfilename[1024]; /* name of output image file */ - int verbosemode; /* verbose flags */ - int antialiasing; /* antialiasing setting */ - int displaymode; /* display mode */ - int boundmode; /* bounding mode */ - int boundthresh; /* bounding threshold */ - int usecamfile; /* use camera file */ - char camfilename[1024]; /* camera filename */ -} argoptions; - -void initoptions(argoptions * opt) { - memset(opt, 0, sizeof(argoptions)); - opt->foundfilename = -1; - opt->useoutfilename = -1; - opt->verbosemode = -1; - opt->antialiasing = -1; - opt->displaymode = -1; - opt->boundmode = -1; - opt->boundthresh = -1; - opt->usecamfile = -1; -} - -int CreateScene(argoptions &opt) { - char *filename; - - global_scene = rt_newscene(); - rt_initialize(); - - //filename = "/mnt/sdcard/tachyon/data.dat"; - filename = opt.filename; - LOG_INFO("CreateScene: data file name is %s", filename); - - LOG_INFO("Readmodel"); - if (readmodel(filename, global_scene) != 0) { - LOG_ERROR("Parser returned a non-zero error code reading %s\n", filename); - LOG_ERROR("Aborting Render...\n"); - rt_finalize(); - return -1; - } - LOG_INFO("Readmodel done"); - - scenedef *scene = (scenedef *) global_scene; - - //scene->hres and scene->yres are taken from display properties in *initBitmap() function - scene->hres = global_xwinsize = global_xsize; - scene->vres = global_ywinsize = global_ysize; - LOG_INFO("CreateScene: global_xsize=%d global_ysize=%d", global_xsize, global_ysize); - - return 0; -} - -extern unsigned int * g_pImg; - -void* example_main(void *filename) { - try { - LOG_INFO("initoptions"); - argoptions opt; - initoptions(&opt); - strcpy(opt.filename, (char*) filename); - LOG_INFO("initoptions done"); - - LOG_INFO("CreateScene"); - if ((CreateScene(opt) != 0)) - return NULL; - LOG_INFO("CreateScene done"); - - LOG_INFO("tachyon video"); - tachyon_video tachyon; - LOG_INFO("tachyon video init_console"); - tachyon.init_console(); - LOG_INFO("tachyon video init_window"); - - tachyon.init_window(global_xsize, global_ysize); - LOG_INFO("tachyon video init_window done"); - if( !tachyon.running ) - return NULL; - LOG_INFO("tachyon video done"); - - video = &tachyon; - //Exit from the while via GUI "Exit" menu. - for(;;) { - LOG_INFO("main_loop() start"); - elapsedTime = 0; - startTime=time(NULL); - isCancelled=false; - if (video)video->running = true; - memset(g_pImg, 0, 4 * global_xsize * global_ysize); - tachyon.main_loop(); - elapsedTime = (long)(time(NULL)-startTime); - video->running=false; - //The timer to restart drawing then it is complete. - int timer=5; - do{ - sleep(1); - }while( ( isPaused || !isCancelled && (timer--)>0 ) ); - LOG_INFO("main_loop() done"); - } - return NULL; - } catch (std::exception& e) { - LOG_ERROR("An error occurred. Error text is %s", e.what()); - return NULL; - } -} - -static int fill_rect(void* pixels, int size) { - if( pixels && g_pImg ){ - memcpy(pixels, g_pImg, size); - if (video->running) - elapsedTime=(long)(time(NULL)-startTime); - return 0; - }else{ - return -1; - } -} - -extern "C" JNIEXPORT jlong JNICALL Java_com_intel_tbb_example_tachyon_tachyonView_getElapsedTime( - JNIEnv * env) { - return elapsedTime; -} - -extern "C" JNIEXPORT void JNICALL Java_com_intel_tbb_example_tachyon_tachyonView_initBitmap( - JNIEnv * env, jobject obj, jobject bitmap, jint x_size, jint y_size, - jint number_of_threads, jstring filename) { - LOG_INFO("initBitmap start"); - static pthread_t handle; - char buf[5]; - LOG_INFO("video"); - //TBB_NUM_THREADS is reading somewhere inside C++ common code - if (number_of_threads >= 0 && number_of_threads < 256) { - snprintf(buf, 4, "%d", number_of_threads); - setenv("TBB_NUM_THREADS", buf, 1); - } - LOG_INFO("TBB_NUM_THREADS=%s",getenv ("TBB_NUM_THREADS")); - //Cancel if we are in the middle of the painting - isCancelled = true; - if (video) - video->running = false; - if (!handle) { - LOG_INFO("Starting native thread"); - pthread_attr_t s; - pthread_attr_init(&s); - //adjusting picture to physical resolution - global_xsize = x_size; - global_ysize = y_size; - char const* fn = env->GetStringUTFChars(filename, NULL); - LOG_INFO("fn=%s",fn); - //Starting example_main and returning back to GUI - pthread_create(&handle, NULL, &example_main, (void*) fn); - LOG_INFO("Thread handle is %x", handle); - } -} - -extern "C" JNIEXPORT jint JNICALL Java_com_intel_tbb_example_tachyon_tachyonView_renderBitmap( - JNIEnv * env, jobject obj, jobject bitmap, jint size) { - AndroidBitmapInfo info; - void* pixels; - int ret; - - //Getting bitmap to fill - if ((ret = AndroidBitmap_getInfo(env, bitmap, &info)) < 0) { - LOG_ERROR("AndroidBitmap_getInfo() returned %d", ret); - return ret; - } - - //Locking bitmap to fill - if ((ret = AndroidBitmap_lockPixels(env, bitmap, &pixels)) < 0) { - LOG_ERROR("AndroidBitmap_lockPixels() returned %d", ret); - } - - //Filling the bitmap - ret = fill_rect(pixels, size); - - //Unlocking the bitmap - AndroidBitmap_unlockPixels(env, bitmap); - return ret; -} - -extern "C" JNIEXPORT void JNICALL Java_com_intel_tbb_example_tachyon_tachyon_setPaused( - JNIEnv * env, jobject obj, jboolean paused) { - if(video)video->pausing = isPaused = paused; - return; -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/project.properties b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/project.properties deleted file mode 100644 index 0840b4a05..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/project.properties +++ /dev/null @@ -1,14 +0,0 @@ -# This file is automatically generated by Android Tools. -# Do not modify this file -- YOUR CHANGES WILL BE ERASED! -# -# This file must be checked in Version Control Systems. -# -# To customize properties used by the Ant build system edit -# "ant.properties", and override values to adapt the script to your -# project structure. -# -# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): -#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt - -# Project target. -target=android-15 diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/res/menu/main_screen_menu.xml b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/res/menu/main_screen_menu.xml deleted file mode 100644 index 8d1d4e4c6..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/res/menu/main_screen_menu.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/res/values/strings.xml b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/res/values/strings.xml deleted file mode 100644 index f3514bbd6..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/res/values/strings.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - Tachyon demo - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/src/com/intel/tbb/example/tachyon/tachyon.java b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/src/com/intel/tbb/example/tachyon/tachyon.java deleted file mode 100644 index d8be46de4..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/android/src/com/intel/tbb/example/tachyon/tachyon.java +++ /dev/null @@ -1,315 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -package com.intel.tbb.example.tachyon; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.InputStream; -import java.io.OutputStream; -import java.util.Timer; -import java.util.TimerTask; - -import android.app.ActionBar; -import android.app.Activity; -import android.os.Bundle; -import android.os.Environment; -import android.content.Context; -import android.content.res.AssetManager; -import android.util.DisplayMetrics; -import android.util.Log; -import android.view.Gravity; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; -import android.view.MotionEvent; -import android.view.View; -import android.view.ViewGroup.LayoutParams; -import android.widget.LinearLayout; -import android.widget.TextView; -import android.graphics.Bitmap; -import android.graphics.Canvas; -import android.graphics.Rect; - -public class tachyon extends Activity { - private tachyonView myView; - private int W; - private int H; - private String fileOnSDcard; - private float currentYMenuPosition=(float) 1e5; - private float previousYMenuPosition=0; - public int number_of_threads=0; - public static TextView txtThreadNumber; - public static TextView txtElapsedTime; - - private static native void setPaused(boolean paused); - - @SuppressWarnings("deprecation") - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - try { - fileOnSDcard = Environment.getExternalStorageDirectory() - .getPath() + "/tachyon/data.dat"; - Log.i("tachyon", "Data file name is " + fileOnSDcard); - File dataFile = new File(fileOnSDcard); - if (dataFile.exists()) { - dataFile.delete(); - } - if (!dataFile.exists()) { - AssetManager assetManager = getAssets(); - InputStream inputFile = assetManager.open("data.dat"); - dataFile.getParentFile().mkdirs(); - dataFile.createNewFile(); - OutputStream outputFile = new FileOutputStream(fileOnSDcard); - byte[] buffer = new byte[10000]; - int bytesRead; - while ((bytesRead = inputFile.read(buffer)) != -1) - outputFile.write(buffer, 0, bytesRead); - inputFile.close(); - inputFile = null; - outputFile.flush(); - outputFile.close(); - outputFile = null; - } - DisplayMetrics displayMetrics = new DisplayMetrics(); - getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); - ActionBar actionBar = getActionBar(); - actionBar.hide(); - - H = displayMetrics.heightPixels; - W = displayMetrics.widthPixels; - Log.i("tachyon", "displayMetrics.heightPixels: " + H); - Log.i("tachyon", "displayMetrics.widthPixels: " + W); - - //uncomment to override scene size - int sceneWidth = 400; - float ratio = W>H?(float)(W)/H:(float)(H)/W; - W = sceneWidth; - H = (int) (W/ratio); - - Log.i("tachyon", "Scene size is " + W + "*" + H ); - - } catch (Exception e) { - Log.e("tachyon", "Exception in file copy: " + e.getMessage()); - } - myView = new tachyonView(this, W, H, fileOnSDcard); - setContentView(myView); - - LinearLayout llThreadNumber = new LinearLayout(this); - txtThreadNumber = new TextView(this); - txtThreadNumber.setText(""); - txtThreadNumber.setTextColor(0xFF00FF00); - txtThreadNumber.setScaleX(1); - txtThreadNumber.setScaleY(1); - txtThreadNumber.setPadding(10, 10, 10, 10); - llThreadNumber.setGravity(Gravity.TOP | Gravity.CENTER); - llThreadNumber.addView(txtThreadNumber); - this.addContentView(llThreadNumber, - new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); - LinearLayout llElapsedTime = new LinearLayout(this); - txtElapsedTime = new TextView(this); - txtElapsedTime.setText(""); - txtElapsedTime.setTextColor(0xFFFF0000); - txtElapsedTime.setScaleX(2); - txtElapsedTime.setScaleY(2); - txtElapsedTime.setPadding(10, 10, 40, 10); - llElapsedTime.setGravity(Gravity.TOP | Gravity.RIGHT); - llElapsedTime.addView(txtElapsedTime); - this.addContentView(llElapsedTime, - new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); - } - - public boolean onCreateOptionsMenu(Menu menu) { - MenuInflater inflater = getMenuInflater(); - inflater.inflate(R.menu.main_screen_menu, menu); - return true; - } - - @Override - public boolean onTouchEvent(MotionEvent event) - { - currentYMenuPosition = event.getY(); - if(event.getAction()==MotionEvent.ACTION_UP ){ - ActionBar actionBar = getActionBar(); - if (previousYMenuPosition < currentYMenuPosition){ - actionBar.show(); - }else{ - actionBar.hide(); - } - previousYMenuPosition = currentYMenuPosition; - return true; - } - return super.onTouchEvent(event); - } - - @Override - public void onPause() { - super.onPause(); - Log.i("tachyon", "onPause working" ); - setPaused(true); - } - - @Override - public void onResume() { - super.onResume(); - Log.i("tachyon", "onResume working" ); - setPaused(false); - } - - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case R.id.thread0: { - number_of_threads = 0; - break; - } - case R.id.thread1: { - number_of_threads = 1; - break; - } - case R.id.thread2: { - number_of_threads = 2; - break; - } - case R.id.thread4: { - number_of_threads = 4; - break; - } - case R.id.thread8: { - number_of_threads = 8; - break; - } - case R.id.exit: { - Log.i("tachyon", "Exiting..."); - System.exit(0); - } - } - Log.i("tachyon", "Starting in " + number_of_threads + " Thread(s)"); - myView.initNative(number_of_threads); - return true; - } - - static { - System.loadLibrary("gnustl_shared"); - System.loadLibrary("tbb"); - System.loadLibrary("jni-engine"); - } -} - -class tachyonView extends View { - private Bitmap myBitmap; - private Rect targetRect; - private TimerTask myRefreshTask; - private static Timer myRefreshTimer; - private int W; - private int H; - private String filename; - public static String strCntDisplay; - public static String strFpsDisplay; - - private static native int renderBitmap(Bitmap bitmap, int size); - - private static native void initBitmap(Bitmap bitmap, int x_size, - int y_size, int number_of_threads, String fileOnSDcard); - - private static native void pressButton(int x, int y); - - private static native long getElapsedTime(); - - public void initNative(int number_of_threads) { - initBitmap(myBitmap, W, H, number_of_threads, filename); - } - - public tachyonView(Context context, int widthPixels, int heightPixels, String fileOnSDcard) { - super(context); - - //Landscape support only: H must be less than W - //In case application is started on locked phone portrait layout comes - //to the constructor even landscape is set in the manifest - W = widthPixels>heightPixels?widthPixels:heightPixels; - H = widthPixels>heightPixels?heightPixels:widthPixels; - filename=fileOnSDcard; - myBitmap = Bitmap.createBitmap(W, H, Bitmap.Config.ARGB_8888); - targetRect = new Rect(); - initBitmap(myBitmap, W, H, 0, filename); - - } - - @Override - protected void onDraw(Canvas canvas) { - //Write bitmap buffer - if( renderBitmap(myBitmap, 4 * H * W) == 0 ){ - targetRect.right = canvas.getWidth(); - targetRect.bottom = canvas.getHeight(); - //Draw bitmap buffer - canvas.drawBitmap(myBitmap, null, targetRect, null); - tachyon parent = (tachyon)getContext(); - long elapsedTime=getElapsedTime(); - if ( parent.number_of_threads > 0 ){ - parent.getWindow().setTitle(parent.number_of_threads + " Thread(s): " + elapsedTime + " s."); - tachyon.txtThreadNumber.setText(parent.number_of_threads + " thread(s)"); - tachyon.txtElapsedTime.setText(elapsedTime + " secs"); - }else{ - parent.getWindow().setTitle("HW concurrency: " + elapsedTime + " s."); - tachyon.txtThreadNumber.setText("Auto HW concurrency"); - tachyon.txtElapsedTime.setText(elapsedTime + " secs"); - } - } - invalidate(); - return; - } -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/dat/820spheres.dat b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/dat/820spheres.dat deleted file mode 100644 index 5d5a4300e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/dat/820spheres.dat +++ /dev/null @@ -1,1671 +0,0 @@ -BEGIN_SCENE - OUTFILE /dev/null - RESOLUTION 512 512 - VERBOSE 0 - -CAMERA - ZOOM 1.0 - ASPECTRATIO 1.0 - ANTIALIASING 0 - RAYDEPTH 12 - CENTER 0.0 0.0 2.0 - VIEWDIR 0 0 -1 - UPDIR 0 1 0 - -END_CAMERA - -LIGHT CENTER 4 3 2 RAD 0.2 COLOR 0.5 0.5 0.5 - -LIGHT CENTER 1 -4 4 RAD 0.2 COLOR 0.5 0.5 0.5 - -LIGHT CENTER -3 1 5 RAD 0.2 COLOR 0.5 0.5 0.5 - -TEXDEF txt001 AMBIENT 0.2 DIFFUSE 0.8 SPECULAR 0 OPACITY 1 - COLOR 1 0.75 0.33 - TEXFUNC 0 - -TEXDEF txt002 AMBIENT 0.1 DIFFUSE 0.9 SPECULAR 0.0 OPACITY 1.0 - COLOR 1.0 1.0 1.0 TEXFUNC 0 - - SPHERE CENTER 0 0 0 RAD 0.5 - txt002 - SPHERE CENTER 0.272166 0.272166 0.544331 RAD 0.166667 - txt002 - SPHERE CENTER 0.420314 0.420314 0.618405 RAD 0.0555556 - txt002 - SPHERE CENTER 0.470715 0.470715 0.598245 RAD 0.0185185 - txt002 - SPHERE CENTER 0.461623 0.409245 0.557924 RAD 0.0185185 - txt002 - SPHERE CENTER 0.409245 0.461623 0.557924 RAD 0.0185185 - txt002 - SPHERE CENTER 0.429405 0.481784 0.658726 RAD 0.0185185 - txt002 - SPHERE CENTER 0.367935 0.472692 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.379004 0.431383 0.678886 RAD 0.0185185 - txt002 - SPHERE CENTER 0.481784 0.429405 0.658726 RAD 0.0185185 - txt002 - SPHERE CENTER 0.431383 0.379004 0.678886 RAD 0.0185185 - txt002 - SPHERE CENTER 0.472692 0.367935 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.461844 0.304709 0.43322 RAD 0.0555556 - txt002 - SPHERE CENTER 0.492085 0.33495 0.372739 RAD 0.0185185 - txt002 - SPHERE CENTER 0.424345 0.305171 0.369341 RAD 0.0185185 - txt002 - SPHERE CENTER 0.435193 0.368397 0.406378 RAD 0.0185185 - txt002 - SPHERE CENTER 0.529584 0.334488 0.436618 RAD 0.0185185 - txt002 - SPHERE CENTER 0.472692 0.367935 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER 0.499343 0.304247 0.497099 RAD 0.0185185 - txt002 - SPHERE CENTER 0.518736 0.271262 0.399581 RAD 0.0185185 - txt002 - SPHERE CENTER 0.488495 0.241021 0.460062 RAD 0.0185185 - txt002 - SPHERE CENTER 0.450996 0.241483 0.396183 RAD 0.0185185 - txt002 - SPHERE CENTER 0.304709 0.461844 0.43322 RAD 0.0555556 - txt002 - SPHERE CENTER 0.33495 0.492085 0.372739 RAD 0.0185185 - txt002 - SPHERE CENTER 0.368397 0.435193 0.406378 RAD 0.0185185 - txt002 - SPHERE CENTER 0.305171 0.424345 0.369341 RAD 0.0185185 - txt002 - SPHERE CENTER 0.271262 0.518736 0.399581 RAD 0.0185185 - txt002 - SPHERE CENTER 0.241483 0.450996 0.396183 RAD 0.0185185 - txt002 - SPHERE CENTER 0.241021 0.488495 0.460062 RAD 0.0185185 - txt002 - SPHERE CENTER 0.334488 0.529584 0.436618 RAD 0.0185185 - txt002 - SPHERE CENTER 0.304247 0.499343 0.497099 RAD 0.0185185 - txt002 - SPHERE CENTER 0.367935 0.472692 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER 0.230635 0.38777 0.729516 RAD 0.0555556 - txt002 - SPHERE CENTER 0.2506 0.446614 0.769837 RAD 0.0185185 - txt002 - SPHERE CENTER 0.301839 0.407906 0.732914 RAD 0.0185185 - txt002 - SPHERE CENTER 0.253236 0.449775 0.695877 RAD 0.0185185 - txt002 - SPHERE CENTER 0.179397 0.426478 0.766439 RAD 0.0185185 - txt002 - SPHERE CENTER 0.182032 0.429639 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER 0.159431 0.367634 0.726118 RAD 0.0185185 - txt002 - SPHERE CENTER 0.227999 0.384609 0.803476 RAD 0.0185185 - txt002 - SPHERE CENTER 0.208034 0.325765 0.763155 RAD 0.0185185 - txt002 - SPHERE CENTER 0.279238 0.345901 0.766553 RAD 0.0185185 - txt002 - SPHERE CENTER 0.115031 0.4293 0.544331 RAD 0.0555556 - txt002 - SPHERE CENTER 0.102505 0.502308 0.544331 RAD 0.0185185 - txt002 - SPHERE CENTER 0.160392 0.474661 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.160392 0.474661 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0571437 0.456947 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.115031 0.4293 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0696698 0.383939 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0571437 0.456947 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0696698 0.383939 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.115031 0.4293 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.082487 0.239622 0.655442 RAD 0.0555556 - txt002 - SPHERE CENTER 0.0438957 0.258053 0.715923 RAD 0.0185185 - txt002 - SPHERE CENTER 0.117687 0.252557 0.719322 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0863845 0.308551 0.682285 RAD 0.0185185 - txt002 - SPHERE CENTER 0.00869528 0.245118 0.652044 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0511841 0.295616 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0472866 0.226687 0.591563 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0399982 0.189123 0.689081 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0785895 0.170692 0.6286 RAD 0.0185185 - txt002 - SPHERE CENTER 0.11379 0.183628 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER 0.38777 0.230635 0.729516 RAD 0.0555556 - txt002 - SPHERE CENTER 0.446614 0.2506 0.769837 RAD 0.0185185 - txt002 - SPHERE CENTER 0.449775 0.253236 0.695877 RAD 0.0185185 - txt002 - SPHERE CENTER 0.407906 0.301839 0.732914 RAD 0.0185185 - txt002 - SPHERE CENTER 0.384609 0.227999 0.803476 RAD 0.0185185 - txt002 - SPHERE CENTER 0.345901 0.279238 0.766553 RAD 0.0185185 - txt002 - SPHERE CENTER 0.325765 0.208034 0.763155 RAD 0.0185185 - txt002 - SPHERE CENTER 0.426478 0.179397 0.766439 RAD 0.0185185 - txt002 - SPHERE CENTER 0.367634 0.159431 0.726118 RAD 0.0185185 - txt002 - SPHERE CENTER 0.429639 0.182032 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER 0.239622 0.082487 0.655442 RAD 0.0555556 - txt002 - SPHERE CENTER 0.258053 0.0438957 0.715923 RAD 0.0185185 - txt002 - SPHERE CENTER 0.308551 0.0863845 0.682285 RAD 0.0185185 - txt002 - SPHERE CENTER 0.252557 0.117687 0.719322 RAD 0.0185185 - txt002 - SPHERE CENTER 0.189123 0.0399982 0.689081 RAD 0.0185185 - txt002 - SPHERE CENTER 0.183628 0.11379 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER 0.170692 0.0785895 0.6286 RAD 0.0185185 - txt002 - SPHERE CENTER 0.245118 0.00869528 0.652044 RAD 0.0185185 - txt002 - SPHERE CENTER 0.226687 0.0472866 0.591563 RAD 0.0185185 - txt002 - SPHERE CENTER 0.295616 0.0511841 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.4293 0.115031 0.544331 RAD 0.0555556 - txt002 - SPHERE CENTER 0.502308 0.102505 0.544331 RAD 0.0185185 - txt002 - SPHERE CENTER 0.474661 0.160392 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.474661 0.160392 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.456947 0.0571437 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.4293 0.115031 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.383939 0.0696698 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.456947 0.0571437 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.383939 0.0696698 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.4293 0.115031 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER 0.643951 0.172546 1.11022e-16 RAD 0.166667 - txt002 - SPHERE CENTER 0.802608 0.281471 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.824035 0.30566 -0.177765 RAD 0.0185185 - txt002 - SPHERE CENTER 0.787796 0.241352 -0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER 0.752156 0.305221 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.838847 0.34578 -0.117284 RAD 0.0185185 - txt002 - SPHERE CENTER 0.766968 0.345341 -0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.817421 0.321591 -0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER 0.874487 0.28191 -0.129006 RAD 0.0185185 - txt002 - SPHERE CENTER 0.853061 0.257721 -0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER 0.838248 0.217602 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.643951 0.172546 -0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER 0.61371 0.202787 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.5724 0.191718 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.624779 0.244096 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.68526 0.183615 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.696329 0.224924 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.715501 0.153374 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.632882 0.131237 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.663122 0.100996 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.591572 0.120168 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.594141 0.358439 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.619127 0.408291 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.665691 0.37761 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.638217 0.337042 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.547576 0.389119 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.566667 0.317871 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.522591 0.339267 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.57505 0.429687 -0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER 0.550064 0.379835 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.621614 0.399007 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.802608 0.281471 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.858698 0.329459 0.104938 RAD 0.0185185 - txt002 - SPHERE CENTER 0.845371 0.280879 0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER 0.798572 0.337088 0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER 0.815936 0.330051 0.165419 RAD 0.0185185 - txt002 - SPHERE CENTER 0.75581 0.33768 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.759846 0.282063 0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER 0.862735 0.273842 0.153697 RAD 0.0185185 - txt002 - SPHERE CENTER 0.806645 0.225855 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.849407 0.225263 0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.594141 0.358439 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.613592 0.428945 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.665691 0.37761 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.621614 0.399007 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.542042 0.409774 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.550064 0.379835 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.522591 0.339267 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.586119 0.388377 0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.566667 0.317871 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.638217 0.337042 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.643951 0.172546 0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER 0.674191 0.202787 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.715501 0.191718 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.663122 0.244096 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.602641 0.183615 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.591572 0.224924 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.5724 0.153374 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.655019 0.131237 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.624779 0.100996 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.696329 0.120168 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.852418 0.0955788 2.30268e-16 RAD 0.0555556 - txt002 - SPHERE CENTER 0.922609 0.11107 -0.0178949 RAD 0.0185185 - txt002 - SPHERE CENTER 0.867231 0.135698 -0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER 0.877966 0.164775 0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER 0.907797 0.0709499 0.0425863 RAD 0.0185185 - txt002 - SPHERE CENTER 0.863153 0.124655 0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER 0.837606 0.0554592 0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER 0.897062 0.0418734 -0.0246914 RAD 0.0185185 - txt002 - SPHERE CENTER 0.826871 0.0263827 -0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER 0.841683 0.0665023 -0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER 0.69376 -0.0133465 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.740325 -0.0440268 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.76531 0.0058253 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.721234 0.0272215 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.668775 -0.0631985 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.649684 0.00804971 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.62221 -0.0325183 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.712851 -0.0845947 0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER 0.666287 -0.0539145 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.737837 -0.0347427 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.69376 -0.0133465 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.745859 -0.0646815 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.76531 0.0058253 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.737837 -0.0347427 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.674309 -0.0838533 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.666287 -0.0539145 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.62221 -0.0325183 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.701782 -0.0432853 -0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.649684 0.00804971 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.721234 0.0272215 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.172546 0.643951 1.11022e-16 RAD 0.166667 - txt002 - SPHERE CENTER 0.281471 0.802608 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.30566 0.824035 -0.177765 RAD 0.0185185 - txt002 - SPHERE CENTER 0.305221 0.752156 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.241352 0.787796 -0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER 0.28191 0.874487 -0.129006 RAD 0.0185185 - txt002 - SPHERE CENTER 0.217602 0.838248 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.257721 0.853061 -0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER 0.34578 0.838847 -0.117284 RAD 0.0185185 - txt002 - SPHERE CENTER 0.321591 0.817421 -0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER 0.345341 0.766968 -0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.358439 0.594141 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.408291 0.619127 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.337042 0.638217 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.37761 0.665691 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.429687 0.57505 -0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER 0.399007 0.621614 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.379835 0.550064 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.389119 0.547576 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.339267 0.522591 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.317871 0.566667 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.172546 0.643951 -0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER 0.142305 0.674191 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.100996 0.663122 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.153374 0.715501 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.213855 0.655019 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.224924 0.696329 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.244096 0.624779 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.161477 0.602641 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.191718 0.5724 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.120168 0.591572 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0955788 0.852418 1.31582e-16 RAD 0.0555556 - txt002 - SPHERE CENTER 0.11107 0.922609 -0.0178949 RAD 0.0185185 - txt002 - SPHERE CENTER 0.164775 0.877966 0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER 0.135698 0.867231 -0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0418734 0.897062 -0.0246914 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0665023 0.841683 -0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0263827 0.826871 -0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0709499 0.907797 0.0425863 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0554592 0.837606 0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER 0.124655 0.863153 0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0133465 0.69376 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.0646815 0.745859 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0347427 0.737837 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0058253 0.76531 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0432853 0.701782 -0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0272215 0.721234 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.00804971 0.649684 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0838533 0.674309 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0325183 0.62221 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0539145 0.666287 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0133465 0.69376 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.0440268 0.740325 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0272215 0.721234 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0058253 0.76531 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0845947 0.712851 0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0347427 0.737837 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0539145 0.666287 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0631985 0.668775 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0325183 0.62221 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.00804971 0.649684 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.281471 0.802608 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.329459 0.858698 0.104938 RAD 0.0185185 - txt002 - SPHERE CENTER 0.337088 0.798572 0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER 0.280879 0.845371 0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER 0.273842 0.862735 0.153697 RAD 0.0185185 - txt002 - SPHERE CENTER 0.225263 0.849407 0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.225855 0.806645 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.330051 0.815936 0.165419 RAD 0.0185185 - txt002 - SPHERE CENTER 0.282063 0.759846 0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER 0.33768 0.75581 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.172546 0.643951 0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER 0.202787 0.674191 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.244096 0.663122 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.191718 0.715501 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.131237 0.655019 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.120168 0.696329 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.100996 0.624779 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.183615 0.602641 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.153374 0.5724 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.224924 0.591572 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.358439 0.594141 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.428945 0.613592 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.399007 0.621614 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.37761 0.665691 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.388377 0.586119 0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.337042 0.638217 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.317871 0.566667 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.409774 0.542042 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.339267 0.522591 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.379835 0.550064 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.371785 0.0996195 0.544331 RAD 0.166667 - txt002 - SPHERE CENTER -0.393621 0.220501 0.729516 RAD 0.0555556 - txt002 - SPHERE CENTER -0.368601 0.279642 0.766439 RAD 0.0185185 - txt002 - SPHERE CENTER -0.321889 0.238665 0.726118 RAD 0.0185185 - txt002 - SPHERE CENTER -0.372464 0.281062 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER -0.440333 0.261479 0.769837 RAD 0.0185185 - txt002 - SPHERE CENTER -0.444196 0.262898 0.695877 RAD 0.0185185 - txt002 - SPHERE CENTER -0.465353 0.202338 0.732914 RAD 0.0185185 - txt002 - SPHERE CENTER -0.389758 0.219082 0.803476 RAD 0.0185185 - txt002 - SPHERE CENTER -0.414778 0.15994 0.766553 RAD 0.0185185 - txt002 - SPHERE CENTER -0.343046 0.178104 0.763155 RAD 0.0185185 - txt002 - SPHERE CENTER -0.191247 0.166275 0.655442 RAD 0.0555556 - txt002 - SPHERE CENTER -0.130089 0.20793 0.652044 RAD 0.0185185 - txt002 - SPHERE CENTER -0.154295 0.172673 0.591563 RAD 0.0185185 - txt002 - SPHERE CENTER -0.192135 0.230419 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER -0.167041 0.201532 0.715923 RAD 0.0185185 - txt002 - SPHERE CENTER -0.229087 0.224021 0.682285 RAD 0.0185185 - txt002 - SPHERE CENTER -0.228199 0.159877 0.719322 RAD 0.0185185 - txt002 - SPHERE CENTER -0.129201 0.143787 0.689081 RAD 0.0185185 - txt002 - SPHERE CENTER -0.190359 0.102131 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER -0.153407 0.108529 0.6286 RAD 0.0185185 - txt002 - SPHERE CENTER -0.31427 0.31427 0.544331 RAD 0.0555556 - txt002 - SPHERE CENTER -0.277961 0.367156 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.252306 0.297666 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.31427 0.31427 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER -0.339925 0.383759 0.544331 RAD 0.0185185 - txt002 - SPHERE CENTER -0.376234 0.330873 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.376234 0.330873 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.277961 0.367156 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.31427 0.31427 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER -0.252306 0.297666 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.574159 0.153845 0.618405 RAD 0.0555556 - txt002 - SPHERE CENTER -0.612768 0.202534 0.658726 RAD 0.0185185 - txt002 - SPHERE CENTER -0.543919 0.184086 0.678886 RAD 0.0185185 - txt002 - SPHERE CENTER -0.554987 0.225396 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER -0.643008 0.172294 0.598245 RAD 0.0185185 - txt002 - SPHERE CENTER -0.585228 0.195155 0.557924 RAD 0.0185185 - txt002 - SPHERE CENTER -0.6044 0.123605 0.557924 RAD 0.0185185 - txt002 - SPHERE CENTER -0.631939 0.130984 0.658726 RAD 0.0185185 - txt002 - SPHERE CENTER -0.593331 0.0822954 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER -0.56309 0.112536 0.678886 RAD 0.0185185 - txt002 - SPHERE CENTER -0.494808 0.247614 0.43322 RAD 0.0555556 - txt002 - SPHERE CENTER -0.494287 0.313607 0.399581 RAD 0.0185185 - txt002 - SPHERE CENTER -0.452978 0.302539 0.460062 RAD 0.0185185 - txt002 - SPHERE CENTER -0.434629 0.269833 0.396183 RAD 0.0185185 - txt002 - SPHERE CENTER -0.536117 0.258683 0.372739 RAD 0.0185185 - txt002 - SPHERE CENTER -0.476459 0.214908 0.369341 RAD 0.0185185 - txt002 - SPHERE CENTER -0.536638 0.19269 0.406378 RAD 0.0185185 - txt002 - SPHERE CENTER -0.554467 0.291389 0.436618 RAD 0.0185185 - txt002 - SPHERE CENTER -0.554987 0.225396 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER -0.513157 0.28032 0.497099 RAD 0.0185185 - txt002 - SPHERE CENTER -0.552323 0.0329639 0.43322 RAD 0.0555556 - txt002 - SPHERE CENTER -0.625877 0.0248832 0.436618 RAD 0.0185185 - txt002 - SPHERE CENTER -0.584567 0.0138144 0.497099 RAD 0.0185185 - txt002 - SPHERE CENTER -0.593331 0.0822954 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER -0.593633 0.0440327 0.372739 RAD 0.0185185 - txt002 - SPHERE CENTER -0.561087 0.101445 0.406378 RAD 0.0185185 - txt002 - SPHERE CENTER -0.520079 0.0521134 0.369341 RAD 0.0185185 - txt002 - SPHERE CENTER -0.584869 -0.0244483 0.399581 RAD 0.0185185 - txt002 - SPHERE CENTER -0.511316 -0.0163676 0.396183 RAD 0.0185185 - txt002 - SPHERE CENTER -0.54356 -0.0355172 0.460062 RAD 0.0185185 - txt002 - SPHERE CENTER -0.451136 0.0058509 0.729516 RAD 0.0555556 - txt002 - SPHERE CENTER -0.447081 0.0051487 0.803476 RAD 0.0185185 - txt002 - SPHERE CENTER -0.386138 0.0172804 0.763155 RAD 0.0185185 - txt002 - SPHERE CENTER -0.439178 0.0688765 0.766553 RAD 0.0185185 - txt002 - SPHERE CENTER -0.512079 -0.00628079 0.769837 RAD 0.0185185 - txt002 - SPHERE CENTER -0.504176 0.0574471 0.732914 RAD 0.0185185 - txt002 - SPHERE CENTER -0.516134 -0.00557859 0.695877 RAD 0.0185185 - txt002 - SPHERE CENTER -0.459039 -0.0578769 0.766439 RAD 0.0185185 - txt002 - SPHERE CENTER -0.463094 -0.0571747 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER -0.398096 -0.0457452 0.726118 RAD 0.0185185 - txt002 - SPHERE CENTER -0.4293 -0.115031 0.544331 RAD 0.0555556 - txt002 - SPHERE CENTER -0.424299 -0.178985 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.367336 -0.131634 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.4293 -0.115031 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER -0.486264 -0.162382 0.544331 RAD 0.0185185 - txt002 - SPHERE CENTER -0.491265 -0.0984274 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.491265 -0.0984274 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.424299 -0.178985 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.4293 -0.115031 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER -0.367336 -0.131634 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.248762 -0.0483751 0.655442 RAD 0.0555556 - txt002 - SPHERE CENTER -0.183785 -0.0599222 0.689081 RAD 0.0185185 - txt002 - SPHERE CENTER -0.187119 -0.0172857 0.6286 RAD 0.0185185 - txt002 - SPHERE CENTER -0.215921 0.00673113 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER -0.245428 -0.0910116 0.715923 RAD 0.0185185 - txt002 - SPHERE CENTER -0.277564 -0.0243582 0.719322 RAD 0.0185185 - txt002 - SPHERE CENTER -0.310405 -0.0794645 0.682285 RAD 0.0185185 - txt002 - SPHERE CENTER -0.216626 -0.115028 0.652044 RAD 0.0185185 - txt002 - SPHERE CENTER -0.281603 -0.103481 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER -0.21996 -0.0723919 0.591563 RAD 0.0185185 - txt002 - SPHERE CENTER -0.471405 0.471405 1.11022e-16 RAD 0.166667 - txt002 - SPHERE CENTER -0.508983 0.690426 1.25414e-16 RAD 0.0555556 - txt002 - SPHERE CENTER -0.484794 0.755941 -0.0246914 RAD 0.0185185 - txt002 - SPHERE CENTER -0.436283 0.7029 -0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER -0.478434 0.695668 -0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER -0.557494 0.743468 -0.0178949 RAD 0.0185185 - txt002 - SPHERE CENTER -0.551134 0.683194 -0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER -0.581682 0.677953 0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER -0.515343 0.7507 0.0425863 RAD 0.0185185 - txt002 - SPHERE CENTER -0.539531 0.685185 0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER -0.466832 0.697658 0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER -0.335322 0.607487 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.283164 0.659645 0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER -0.286452 0.603979 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.33883 0.656357 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.332034 0.663153 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.3877 0.659866 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.384191 0.610996 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.279656 0.610775 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.331813 0.558618 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.282943 0.555109 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.335322 0.607487 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.313405 0.629404 -0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.331813 0.558618 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.384191 0.610996 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.316914 0.678274 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.3877 0.659866 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.33883 0.656357 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.264535 0.625895 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.286452 0.603979 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.282943 0.555109 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.645066 0.554344 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.681385 0.616373 -0.129006 RAD 0.0185185 - txt002 - SPHERE CENTER -0.649723 0.609912 -0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER -0.607573 0.617144 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.676727 0.560805 -0.177765 RAD 0.0185185 - txt002 - SPHERE CENTER -0.602915 0.561576 -0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER -0.640408 0.498776 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.718878 0.553573 -0.117284 RAD 0.0185185 - txt002 - SPHERE CENTER -0.682558 0.491544 -0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.687216 0.547112 -0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER -0.471405 0.471405 -0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER -0.501645 0.501645 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.542955 0.490576 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.490576 0.542955 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.430095 0.482473 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.419026 0.523783 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.399854 0.452233 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.482473 0.430095 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.452233 0.399854 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.523783 0.419026 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.607487 0.335322 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.659645 0.283164 -0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER -0.603979 0.286452 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.656357 0.33883 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.663153 0.332034 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.659866 0.3877 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.610996 0.384191 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.610775 0.279656 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.558618 0.331813 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.555109 0.282943 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.645066 0.554344 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.668521 0.610229 0.153697 RAD 0.0185185 - txt002 - SPHERE CENTER -0.598918 0.585648 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.619787 0.622977 0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.714669 0.578925 0.104938 RAD 0.0185185 - txt002 - SPHERE CENTER -0.665934 0.591673 0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER -0.691213 0.52304 0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER -0.6938 0.541596 0.165419 RAD 0.0185185 - txt002 - SPHERE CENTER -0.670344 0.48571 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.624197 0.517014 0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER -0.607487 0.335322 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.629404 0.313405 0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.558618 0.331813 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.610996 0.384191 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.678274 0.316914 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.659866 0.3877 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.656357 0.33883 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.625895 0.264535 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.603979 0.286452 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.555109 0.282943 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.471405 0.471405 0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER -0.441164 0.501645 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.399854 0.490576 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.452233 0.542955 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.512714 0.482473 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.523783 0.523783 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.542955 0.452233 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.460336 0.430095 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.490576 0.399854 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.419026 0.419026 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.643951 -0.172546 1.11022e-16 RAD 0.166667 - txt002 - SPHERE CENTER -0.835815 -0.157543 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.871646 -0.122136 0.165419 RAD 0.0185185 - txt002 - SPHERE CENTER -0.799077 -0.135649 0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER -0.82339 -0.0854653 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.908384 -0.14403 0.104938 RAD 0.0185185 - txt002 - SPHERE CENTER -0.860128 -0.107359 0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER -0.872552 -0.179437 0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER -0.884071 -0.194213 0.153697 RAD 0.0185185 - txt002 - SPHERE CENTER -0.84824 -0.229621 0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.811502 -0.207727 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.643951 -0.172546 0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER -0.61371 -0.142305 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.5724 -0.153374 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.624779 -0.100996 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.68526 -0.161477 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.696329 -0.120168 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.715501 -0.191718 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.632882 -0.213855 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.663122 -0.244096 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.591572 -0.224924 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.69376 0.0133465 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.674309 0.0838533 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.62221 0.0325183 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.666287 0.0539145 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.745859 0.0646815 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.737837 0.0347427 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.76531 -0.0058253 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.701782 0.0432853 0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.721234 -0.0272215 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.649684 -0.00804971 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.835815 -0.157543 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.899353 -0.119969 -0.117284 RAD 0.0185185 - txt002 - SPHERE CENTER -0.868703 -0.130205 -0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER -0.836885 -0.0844101 -0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.866465 -0.147308 -0.177765 RAD 0.0185185 - txt002 - SPHERE CENTER -0.803997 -0.111748 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.802927 -0.184881 -0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER -0.898283 -0.193102 -0.129006 RAD 0.0185185 - txt002 - SPHERE CENTER -0.834745 -0.230676 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.867633 -0.203337 -0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER -0.69376 0.0133465 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.668775 0.0631985 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.62221 0.0325183 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.649684 -0.00804971 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.740325 0.0440268 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.721234 -0.0272215 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.76531 -0.0058253 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.712851 0.0845947 -0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER -0.737837 0.0347427 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.666287 0.0539145 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.643951 -0.172546 -0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER -0.674191 -0.142305 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.715501 -0.153374 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.663122 -0.100996 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.602641 -0.161477 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.591572 -0.120168 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.5724 -0.191718 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.655019 -0.213855 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.624779 -0.244096 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.696329 -0.224924 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.786005 -0.343435 1.25414e-16 RAD 0.0555556 - txt002 - SPHERE CENTER -0.82165 -0.392454 0.0425863 RAD 0.0185185 - txt002 - SPHERE CENTER -0.753118 -0.370774 0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER -0.80984 -0.323622 0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER -0.854538 -0.365116 -0.0178949 RAD 0.0185185 - txt002 - SPHERE CENTER -0.842728 -0.296284 0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER -0.818893 -0.316097 -0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER -0.797815 -0.412267 -0.0246914 RAD 0.0185185 - txt002 - SPHERE CENTER -0.76217 -0.363249 -0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER -0.729282 -0.390587 -0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER -0.594141 -0.358439 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.542042 -0.409774 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.522591 -0.339267 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.550064 -0.379835 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.613592 -0.428945 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.621614 -0.399007 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.665691 -0.37761 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.586119 -0.388377 -0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.638217 -0.337042 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.566667 -0.317871 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.594141 -0.358439 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.547576 -0.389119 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.522591 -0.339267 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.566667 -0.317871 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.619127 -0.408291 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.638217 -0.337042 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.665691 -0.37761 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.57505 -0.429687 0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER -0.621614 -0.399007 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.550064 -0.379835 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0996195 -0.371785 0.544331 RAD 0.166667 - txt002 - SPHERE CENTER 0.220501 -0.393621 0.729516 RAD 0.0555556 - txt002 - SPHERE CENTER 0.279642 -0.368601 0.766439 RAD 0.0185185 - txt002 - SPHERE CENTER 0.281062 -0.372464 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER 0.238665 -0.321889 0.726118 RAD 0.0185185 - txt002 - SPHERE CENTER 0.219082 -0.389758 0.803476 RAD 0.0185185 - txt002 - SPHERE CENTER 0.178104 -0.343046 0.763155 RAD 0.0185185 - txt002 - SPHERE CENTER 0.15994 -0.414778 0.766553 RAD 0.0185185 - txt002 - SPHERE CENTER 0.261479 -0.440333 0.769837 RAD 0.0185185 - txt002 - SPHERE CENTER 0.202338 -0.465353 0.732914 RAD 0.0185185 - txt002 - SPHERE CENTER 0.262898 -0.444196 0.695877 RAD 0.0185185 - txt002 - SPHERE CENTER 0.31427 -0.31427 0.544331 RAD 0.0555556 - txt002 - SPHERE CENTER 0.367156 -0.277961 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.31427 -0.31427 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER 0.297666 -0.252306 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.367156 -0.277961 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.297666 -0.252306 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.31427 -0.31427 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.383759 -0.339925 0.544331 RAD 0.0185185 - txt002 - SPHERE CENTER 0.330873 -0.376234 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.330873 -0.376234 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.166275 -0.191247 0.655442 RAD 0.0555556 - txt002 - SPHERE CENTER 0.20793 -0.130089 0.652044 RAD 0.0185185 - txt002 - SPHERE CENTER 0.230419 -0.192135 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.172673 -0.154295 0.591563 RAD 0.0185185 - txt002 - SPHERE CENTER 0.143787 -0.129201 0.689081 RAD 0.0185185 - txt002 - SPHERE CENTER 0.108529 -0.153407 0.6286 RAD 0.0185185 - txt002 - SPHERE CENTER 0.102131 -0.190359 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER 0.201532 -0.167041 0.715923 RAD 0.0185185 - txt002 - SPHERE CENTER 0.159877 -0.228199 0.719322 RAD 0.0185185 - txt002 - SPHERE CENTER 0.224021 -0.229087 0.682285 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0058509 -0.451136 0.729516 RAD 0.0555556 - txt002 - SPHERE CENTER 0.0051487 -0.447081 0.803476 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0688765 -0.439178 0.766553 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0172804 -0.386138 0.763155 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0578769 -0.459039 0.766439 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0457452 -0.398096 0.726118 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0571747 -0.463094 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER -0.00628079 -0.512079 0.769837 RAD 0.0185185 - txt002 - SPHERE CENTER -0.00557859 -0.516134 0.695877 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0574471 -0.504176 0.732914 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0483751 -0.248762 0.655442 RAD 0.0555556 - txt002 - SPHERE CENTER -0.0599222 -0.183785 0.689081 RAD 0.0185185 - txt002 - SPHERE CENTER 0.00673113 -0.215921 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0172857 -0.187119 0.6286 RAD 0.0185185 - txt002 - SPHERE CENTER -0.115028 -0.216626 0.652044 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0723919 -0.21996 0.591563 RAD 0.0185185 - txt002 - SPHERE CENTER -0.103481 -0.281603 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0910116 -0.245428 0.715923 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0794645 -0.310405 0.682285 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0243582 -0.277564 0.719322 RAD 0.0185185 - txt002 - SPHERE CENTER -0.115031 -0.4293 0.544331 RAD 0.0555556 - txt002 - SPHERE CENTER -0.178985 -0.424299 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.115031 -0.4293 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER -0.131634 -0.367336 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.178985 -0.424299 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.131634 -0.367336 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.115031 -0.4293 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER -0.162382 -0.486264 0.544331 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0984274 -0.491265 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0984274 -0.491265 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.153845 -0.574159 0.618405 RAD 0.0555556 - txt002 - SPHERE CENTER 0.202534 -0.612768 0.658726 RAD 0.0185185 - txt002 - SPHERE CENTER 0.225396 -0.554987 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.184086 -0.543919 0.678886 RAD 0.0185185 - txt002 - SPHERE CENTER 0.130984 -0.631939 0.658726 RAD 0.0185185 - txt002 - SPHERE CENTER 0.112536 -0.56309 0.678886 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0822954 -0.593331 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.172294 -0.643008 0.598245 RAD 0.0185185 - txt002 - SPHERE CENTER 0.123605 -0.6044 0.557924 RAD 0.0185185 - txt002 - SPHERE CENTER 0.195155 -0.585228 0.557924 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0329639 -0.552323 0.43322 RAD 0.0555556 - txt002 - SPHERE CENTER 0.0248832 -0.625877 0.436618 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0822954 -0.593331 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0138144 -0.584567 0.497099 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0244483 -0.584869 0.399581 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0355172 -0.54356 0.460062 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0163676 -0.511316 0.396183 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0440327 -0.593633 0.372739 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0521134 -0.520079 0.369341 RAD 0.0185185 - txt002 - SPHERE CENTER 0.101445 -0.561087 0.406378 RAD 0.0185185 - txt002 - SPHERE CENTER 0.247614 -0.494808 0.43322 RAD 0.0555556 - txt002 - SPHERE CENTER 0.313607 -0.494287 0.399581 RAD 0.0185185 - txt002 - SPHERE CENTER 0.269833 -0.434629 0.396183 RAD 0.0185185 - txt002 - SPHERE CENTER 0.302539 -0.452978 0.460062 RAD 0.0185185 - txt002 - SPHERE CENTER 0.291389 -0.554467 0.436618 RAD 0.0185185 - txt002 - SPHERE CENTER 0.28032 -0.513157 0.497099 RAD 0.0185185 - txt002 - SPHERE CENTER 0.225396 -0.554987 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER 0.258683 -0.536117 0.372739 RAD 0.0185185 - txt002 - SPHERE CENTER 0.19269 -0.536638 0.406378 RAD 0.0185185 - txt002 - SPHERE CENTER 0.214908 -0.476459 0.369341 RAD 0.0185185 - txt002 - SPHERE CENTER -0.172546 -0.643951 1.11022e-16 RAD 0.166667 - txt002 - SPHERE CENTER -0.157543 -0.835815 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.122136 -0.871646 0.165419 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0854653 -0.82339 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.135649 -0.799077 0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER -0.194213 -0.884071 0.153697 RAD 0.0185185 - txt002 - SPHERE CENTER -0.207727 -0.811502 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.229621 -0.84824 0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.14403 -0.908384 0.104938 RAD 0.0185185 - txt002 - SPHERE CENTER -0.179437 -0.872552 0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER -0.107359 -0.860128 0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0133465 -0.69376 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.0838533 -0.674309 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0539145 -0.666287 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0325183 -0.62221 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0432853 -0.701782 0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.00804971 -0.649684 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0272215 -0.721234 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0646815 -0.745859 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0058253 -0.76531 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0347427 -0.737837 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.172546 -0.643951 0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER -0.142305 -0.61371 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.100996 -0.624779 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.153374 -0.5724 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.213855 -0.632882 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.224924 -0.591572 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.244096 -0.663122 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.161477 -0.68526 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.191718 -0.715501 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.120168 -0.696329 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.343435 -0.786005 1.25414e-16 RAD 0.0555556 - txt002 - SPHERE CENTER -0.392454 -0.82165 0.0425863 RAD 0.0185185 - txt002 - SPHERE CENTER -0.323622 -0.80984 0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER -0.370774 -0.753118 0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER -0.412267 -0.797815 -0.0246914 RAD 0.0185185 - txt002 - SPHERE CENTER -0.390587 -0.729282 -0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER -0.363249 -0.76217 -0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER -0.365116 -0.854538 -0.0178949 RAD 0.0185185 - txt002 - SPHERE CENTER -0.316097 -0.818893 -0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER -0.296284 -0.842728 0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER -0.358439 -0.594141 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.389119 -0.547576 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.317871 -0.566667 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.339267 -0.522591 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.429687 -0.57505 0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER -0.379835 -0.550064 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.399007 -0.621614 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.408291 -0.619127 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.37761 -0.665691 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.337042 -0.638217 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.358439 -0.594141 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.409774 -0.542042 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.379835 -0.550064 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.339267 -0.522591 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.388377 -0.586119 -0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.317871 -0.566667 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.337042 -0.638217 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.428945 -0.613592 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.37761 -0.665691 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.399007 -0.621614 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.157543 -0.835815 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.119969 -0.899353 -0.117284 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0844101 -0.836885 -0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.130205 -0.868703 -0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER -0.193102 -0.898283 -0.129006 RAD 0.0185185 - txt002 - SPHERE CENTER -0.203337 -0.867633 -0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER -0.230676 -0.834745 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.147308 -0.866465 -0.177765 RAD 0.0185185 - txt002 - SPHERE CENTER -0.184881 -0.802927 -0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER -0.111748 -0.803997 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.172546 -0.643951 -0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER -0.202787 -0.61371 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.244096 -0.624779 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.191718 -0.5724 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.131237 -0.632882 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.120168 -0.591572 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.100996 -0.663122 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.183615 -0.68526 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.153374 -0.715501 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.224924 -0.696329 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0133465 -0.69376 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.0631985 -0.668775 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.00804971 -0.649684 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0325183 -0.62221 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0845947 -0.712851 -0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0539145 -0.666287 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0347427 -0.737837 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0440268 -0.740325 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0058253 -0.76531 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0272215 -0.721234 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.471405 -0.471405 1.11022e-16 RAD 0.166667 - txt002 - SPHERE CENTER 0.690426 -0.508983 2.241e-16 RAD 0.0555556 - txt002 - SPHERE CENTER 0.755941 -0.484794 -0.0246914 RAD 0.0185185 - txt002 - SPHERE CENTER 0.695668 -0.478434 -0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER 0.7029 -0.436283 -0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER 0.7507 -0.515343 0.0425863 RAD 0.0185185 - txt002 - SPHERE CENTER 0.697658 -0.466832 0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER 0.685185 -0.539531 0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER 0.743468 -0.557494 -0.0178949 RAD 0.0185185 - txt002 - SPHERE CENTER 0.677953 -0.581682 0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER 0.683194 -0.551134 -0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER 0.607487 -0.335322 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.629404 -0.313405 -0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.610996 -0.384191 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.558618 -0.331813 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.625895 -0.264535 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.555109 -0.282943 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.603979 -0.286452 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.678274 -0.316914 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.656357 -0.33883 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.659866 -0.3877 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.607487 -0.335322 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.659645 -0.283164 0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER 0.656357 -0.33883 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.603979 -0.286452 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.610775 -0.279656 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.555109 -0.282943 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.558618 -0.331813 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.663153 -0.332034 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.610996 -0.384191 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.659866 -0.3877 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.554344 -0.645066 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.610229 -0.668521 0.153697 RAD 0.0185185 - txt002 - SPHERE CENTER 0.622977 -0.619787 0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.585648 -0.598918 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.541596 -0.6938 0.165419 RAD 0.0185185 - txt002 - SPHERE CENTER 0.517014 -0.624197 0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER 0.48571 -0.670344 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.578925 -0.714669 0.104938 RAD 0.0185185 - txt002 - SPHERE CENTER 0.52304 -0.691213 0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER 0.591673 -0.665934 0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER 0.471405 -0.471405 0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER 0.501645 -0.441164 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.542955 -0.452233 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.490576 -0.399854 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.430095 -0.460336 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.419026 -0.419026 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.399854 -0.490576 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.482473 -0.512714 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.452233 -0.542955 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.523783 -0.523783 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.335322 -0.607487 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.313405 -0.629404 0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.384191 -0.610996 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.331813 -0.558618 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.264535 -0.625895 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.282943 -0.555109 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.286452 -0.603979 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.316914 -0.678274 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.33883 -0.656357 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.3877 -0.659866 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.554344 -0.645066 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.616373 -0.681385 -0.129006 RAD 0.0185185 - txt002 - SPHERE CENTER 0.617144 -0.607573 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.609912 -0.649723 -0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER 0.553573 -0.718878 -0.117284 RAD 0.0185185 - txt002 - SPHERE CENTER 0.547112 -0.687216 -0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER 0.491544 -0.682558 -0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.560805 -0.676727 -0.177765 RAD 0.0185185 - txt002 - SPHERE CENTER 0.498776 -0.640408 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.561576 -0.602915 -0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER 0.335322 -0.607487 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.283164 -0.659645 -0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER 0.33883 -0.656357 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.286452 -0.603979 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.279656 -0.610775 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.282943 -0.555109 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.331813 -0.558618 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.332034 -0.663153 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.384191 -0.610996 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.3877 -0.659866 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.471405 -0.471405 -0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER 0.441164 -0.441164 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.399854 -0.452233 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.452233 -0.399854 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.512714 -0.460336 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.523783 -0.419026 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.542955 -0.490576 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.460336 -0.512714 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.490576 -0.542955 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.419026 -0.523783 -0.222222 RAD 0.0185185 - txt002 - -END_SCENE diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/dat/balls.dat b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/dat/balls.dat deleted file mode 100644 index 0d4bbb15b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/dat/balls.dat +++ /dev/null @@ -1,14804 +0,0 @@ -BEGIN_SCENE - OUTFILE /dev/null - RESOLUTION 512 512 - VERBOSE 0 - -CAMERA - ZOOM 1.20711 -ASPECTRATIO 1.0 - ANTIALIASING 0 - RAYDEPTH 5 - CENTER 2.1 1.3 1.7 - VIEWDIR -0.700389 -0.433574 -0.566982 - UPDIR -0.482085 -0.298433 0.82373 - -END_CAMERA - -BACKGROUND 0.078 0.361 0.753 - -LIGHT CENTER 4 3 2 RAD 0.002 COLOR 0.5 0.5 0.5 - -LIGHT CENTER 1 -4 4 RAD 0.002 COLOR 0.5 0.5 0.5 - -LIGHT CENTER -3 1 5 RAD 0.002 COLOR 0.5 0.5 0.5 - -TEXDEF txt001 AMBIENT 0.2 DIFFUSE 0.8 SPECULAR 0 OPACITY 1 -PHONG PLASTIC 0 PHONG_SIZE 100000 - COLOR 1 0.75 0.33 - TEXFUNC 0 - -TRI - V0 12 12 -0.5 V1 -12 -12 -0.5 V2 12 -12 -0.5 - txt001 -TRI - V0 12 12 -0.5 V1 -12 12 -0.5 V2 -12 -12 -0.5 - txt001 -TEXDEF txt002 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 -PHONG PLASTIC 0.5 PHONG_SIZE 45.2776 - COLOR 1 0.9 0.7 - TEXFUNC 0 - - SPHERE CENTER 0 0 0 RAD 0.5 - txt002 - SPHERE CENTER 0.272166 0.272166 0.544331 RAD 0.166667 - txt002 - SPHERE CENTER 0.420314 0.420314 0.618405 RAD 0.0555556 - txt002 - SPHERE CENTER 0.470715 0.470715 0.598245 RAD 0.0185185 - txt002 - SPHERE CENTER 0.481689 0.481689 0.57904 RAD 0.00617284 - txt002 - SPHERE CENTER 0.475329 0.45787 0.577669 RAD 0.00617284 - txt002 - SPHERE CENTER 0.45787 0.475329 0.577669 RAD 0.00617284 - txt002 - SPHERE CENTER 0.477074 0.494534 0.599616 RAD 0.00617284 - txt002 - SPHERE CENTER 0.453255 0.488174 0.598245 RAD 0.00617284 - txt002 - SPHERE CENTER 0.4661 0.48356 0.618821 RAD 0.00617284 - txt002 - SPHERE CENTER 0.494534 0.477074 0.599616 RAD 0.00617284 - txt002 - SPHERE CENTER 0.48356 0.4661 0.618821 RAD 0.00617284 - txt002 - SPHERE CENTER 0.488174 0.453255 0.598245 RAD 0.00617284 - txt002 - SPHERE CENTER 0.461623 0.409245 0.557924 RAD 0.0185185 - txt002 - SPHERE CENTER 0.47044 0.419664 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER 0.447954 0.425689 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER 0.468014 0.433095 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER 0.484109 0.40322 0.549693 RAD 0.00617284 - txt002 - SPHERE CENTER 0.481683 0.416651 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER 0.475292 0.392801 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER 0.464049 0.395814 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER 0.455233 0.385395 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER 0.441563 0.401839 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER 0.409245 0.461623 0.557924 RAD 0.0185185 - txt002 - SPHERE CENTER 0.419664 0.47044 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER 0.433095 0.468014 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER 0.425689 0.447954 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER 0.395814 0.464049 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER 0.401839 0.441563 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER 0.385395 0.455233 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER 0.40322 0.484109 0.549693 RAD 0.00617284 - txt002 - SPHERE CENTER 0.392801 0.475292 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER 0.416651 0.481683 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER 0.429405 0.481784 0.658726 RAD 0.0185185 - txt002 - SPHERE CENTER 0.441197 0.503434 0.660098 RAD 0.00617284 - txt002 - SPHERE CENTER 0.452601 0.483752 0.650495 RAD 0.00617284 - txt002 - SPHERE CENTER 0.434161 0.494577 0.63815 RAD 0.00617284 - txt002 - SPHERE CENTER 0.418001 0.501466 0.668328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.410965 0.492609 0.64638 RAD 0.00617284 - txt002 - SPHERE CENTER 0.406209 0.479816 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER 0.436441 0.490641 0.680674 RAD 0.00617284 - txt002 - SPHERE CENTER 0.42465 0.46899 0.679302 RAD 0.00617284 - txt002 - SPHERE CENTER 0.447846 0.470958 0.671072 RAD 0.00617284 - txt002 - SPHERE CENTER 0.367935 0.472692 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.36376 0.497028 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.383056 0.487812 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.383056 0.487812 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.34864 0.481907 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.367935 0.472692 0.593714 RAD 0.00617284 - txt002 - SPHERE CENTER 0.352815 0.457572 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.34864 0.481907 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.352815 0.457572 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.367935 0.472692 0.643096 RAD 0.00617284 - txt002 - SPHERE CENTER 0.379004 0.431383 0.678886 RAD 0.0185185 - txt002 - SPHERE CENTER 0.376578 0.444814 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399064 0.438789 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER 0.385395 0.455233 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356518 0.437408 0.687117 RAD 0.00617284 - txt002 - SPHERE CENTER 0.365335 0.447826 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.358944 0.423976 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.370187 0.420964 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.372614 0.407532 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER 0.392673 0.414939 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER 0.481784 0.429405 0.658726 RAD 0.0185185 - txt002 - SPHERE CENTER 0.503434 0.441197 0.660098 RAD 0.00617284 - txt002 - SPHERE CENTER 0.494577 0.434161 0.63815 RAD 0.00617284 - txt002 - SPHERE CENTER 0.483752 0.452601 0.650495 RAD 0.00617284 - txt002 - SPHERE CENTER 0.490641 0.436441 0.680674 RAD 0.00617284 - txt002 - SPHERE CENTER 0.470958 0.447846 0.671072 RAD 0.00617284 - txt002 - SPHERE CENTER 0.46899 0.42465 0.679302 RAD 0.00617284 - txt002 - SPHERE CENTER 0.501466 0.418001 0.668328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.479816 0.406209 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER 0.492609 0.410965 0.64638 RAD 0.00617284 - txt002 - SPHERE CENTER 0.431383 0.379004 0.678886 RAD 0.0185185 - txt002 - SPHERE CENTER 0.444814 0.376578 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.455233 0.385395 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER 0.438789 0.399064 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER 0.420964 0.370187 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.414939 0.392673 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER 0.407532 0.372614 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER 0.437408 0.356518 0.687117 RAD 0.00617284 - txt002 - SPHERE CENTER 0.423976 0.358944 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.447826 0.365335 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.472692 0.367935 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.497028 0.36376 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.487812 0.383056 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.487812 0.383056 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.481907 0.34864 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.472692 0.367935 0.643096 RAD 0.00617284 - txt002 - SPHERE CENTER 0.457572 0.352815 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.481907 0.34864 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.457572 0.352815 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.472692 0.367935 0.593714 RAD 0.00617284 - txt002 - SPHERE CENTER 0.461844 0.304709 0.43322 RAD 0.0555556 - txt002 - SPHERE CENTER 0.492085 0.33495 0.372739 RAD 0.0185185 - txt002 - SPHERE CENTER 0.492085 0.33495 0.348047 RAD 0.00617284 - txt002 - SPHERE CENTER 0.488469 0.313874 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.471009 0.331334 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.495701 0.356025 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.474625 0.352409 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER 0.495701 0.356025 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.51316 0.338566 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.51316 0.338566 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.509544 0.31749 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER 0.424345 0.305171 0.369341 RAD 0.0185185 - txt002 - SPHERE CENTER 0.40568 0.315605 0.356995 RAD 0.00617284 - txt002 - SPHERE CENTER 0.403931 0.312107 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER 0.419383 0.329161 0.372427 RAD 0.00617284 - txt002 - SPHERE CENTER 0.426095 0.30867 0.344961 RAD 0.00617284 - txt002 - SPHERE CENTER 0.439797 0.322225 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.444759 0.298235 0.357307 RAD 0.00617284 - txt002 - SPHERE CENTER 0.410643 0.291616 0.353908 RAD 0.00617284 - txt002 - SPHERE CENTER 0.429307 0.281181 0.366254 RAD 0.00617284 - txt002 - SPHERE CENTER 0.408893 0.288117 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.435193 0.368397 0.406378 RAD 0.0185185 - txt002 - SPHERE CENTER 0.440864 0.389015 0.394032 RAD 0.00617284 - txt002 - SPHERE CENTER 0.457301 0.37895 0.409464 RAD 0.00617284 - txt002 - SPHERE CENTER 0.451857 0.367697 0.388171 RAD 0.00617284 - txt002 - SPHERE CENTER 0.418755 0.378463 0.390945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.429748 0.357145 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.413085 0.357845 0.403291 RAD 0.00617284 - txt002 - SPHERE CENTER 0.4242 0.389715 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER 0.418529 0.369098 0.424584 RAD 0.00617284 - txt002 - SPHERE CENTER 0.440637 0.37965 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER 0.529584 0.334488 0.436618 RAD 0.0185185 - txt002 - SPHERE CENTER 0.546497 0.347572 0.424272 RAD 0.00617284 - txt002 - SPHERE CENTER 0.532117 0.331508 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER 0.522481 0.352406 0.421186 RAD 0.00617284 - txt002 - SPHERE CENTER 0.543964 0.350552 0.448652 RAD 0.00617284 - txt002 - SPHERE CENTER 0.519948 0.355387 0.445566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.52705 0.337468 0.460998 RAD 0.00617284 - txt002 - SPHERE CENTER 0.5536 0.329654 0.439705 RAD 0.00617284 - txt002 - SPHERE CENTER 0.536686 0.31657 0.45205 RAD 0.00617284 - txt002 - SPHERE CENTER 0.53922 0.313589 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER 0.472692 0.367935 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER 0.48474 0.389488 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.495668 0.369235 0.46131 RAD 0.00617284 - txt002 - SPHERE CENTER 0.477004 0.379669 0.448964 RAD 0.00617284 - txt002 - SPHERE CENTER 0.461764 0.388188 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER 0.454027 0.37837 0.457911 RAD 0.00617284 - txt002 - SPHERE CENTER 0.449715 0.366636 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER 0.480429 0.377754 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.46838 0.356202 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.491357 0.357501 0.482603 RAD 0.00617284 - txt002 - SPHERE CENTER 0.499343 0.304247 0.497099 RAD 0.0185185 - txt002 - SPHERE CENTER 0.518259 0.314219 0.509445 RAD 0.00617284 - txt002 - SPHERE CENTER 0.519922 0.310678 0.485065 RAD 0.00617284 - txt002 - SPHERE CENTER 0.504895 0.328108 0.494013 RAD 0.00617284 - txt002 - SPHERE CENTER 0.49768 0.307788 0.521479 RAD 0.00617284 - txt002 - SPHERE CENTER 0.484316 0.321677 0.506047 RAD 0.00617284 - txt002 - SPHERE CENTER 0.478764 0.297816 0.509133 RAD 0.00617284 - txt002 - SPHERE CENTER 0.512708 0.290358 0.512531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.493791 0.280387 0.500186 RAD 0.00617284 - txt002 - SPHERE CENTER 0.51437 0.286818 0.488152 RAD 0.00617284 - txt002 - SPHERE CENTER 0.518736 0.271262 0.399581 RAD 0.0185185 - txt002 - SPHERE CENTER 0.539811 0.274878 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.520873 0.290418 0.384149 RAD 0.00617284 - txt002 - SPHERE CENTER 0.533373 0.290264 0.405442 RAD 0.00617284 - txt002 - SPHERE CENTER 0.537674 0.255722 0.402668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.531235 0.271108 0.420874 RAD 0.00617284 - txt002 - SPHERE CENTER 0.516598 0.252106 0.415013 RAD 0.00617284 - txt002 - SPHERE CENTER 0.525174 0.255876 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER 0.504099 0.25226 0.39372 RAD 0.00617284 - txt002 - SPHERE CENTER 0.506236 0.271416 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.488495 0.241021 0.460062 RAD 0.0185185 - txt002 - SPHERE CENTER 0.50716 0.230587 0.472408 RAD 0.00617284 - txt002 - SPHERE CENTER 0.51153 0.24936 0.456976 RAD 0.00617284 - txt002 - SPHERE CENTER 0.499694 0.253381 0.478269 RAD 0.00617284 - txt002 - SPHERE CENTER 0.484125 0.222248 0.475494 RAD 0.00617284 - txt002 - SPHERE CENTER 0.476659 0.245042 0.481355 RAD 0.00617284 - txt002 - SPHERE CENTER 0.46546 0.232683 0.463149 RAD 0.00617284 - txt002 - SPHERE CENTER 0.495961 0.218227 0.454201 RAD 0.00617284 - txt002 - SPHERE CENTER 0.477296 0.228661 0.441856 RAD 0.00617284 - txt002 - SPHERE CENTER 0.500331 0.237 0.438769 RAD 0.00617284 - txt002 - SPHERE CENTER 0.450996 0.241483 0.396183 RAD 0.0185185 - txt002 - SPHERE CENTER 0.455172 0.217147 0.396183 RAD 0.00617284 - txt002 - SPHERE CENTER 0.472226 0.232599 0.40513 RAD 0.00617284 - txt002 - SPHERE CENTER 0.45115 0.228983 0.417476 RAD 0.00617284 - txt002 - SPHERE CENTER 0.433942 0.226031 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.429921 0.237867 0.408529 RAD 0.00617284 - txt002 - SPHERE CENTER 0.429767 0.250367 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.455018 0.229647 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER 0.450842 0.253983 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER 0.472072 0.245099 0.383837 RAD 0.00617284 - txt002 - SPHERE CENTER 0.304709 0.461844 0.43322 RAD 0.0555556 - txt002 - SPHERE CENTER 0.33495 0.492085 0.372739 RAD 0.0185185 - txt002 - SPHERE CENTER 0.33495 0.492085 0.348047 RAD 0.00617284 - txt002 - SPHERE CENTER 0.331334 0.471009 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.313874 0.488469 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.338566 0.51316 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.31749 0.509544 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER 0.338566 0.51316 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356025 0.495701 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356025 0.495701 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.352409 0.474625 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER 0.368397 0.435193 0.406378 RAD 0.0185185 - txt002 - SPHERE CENTER 0.389015 0.440864 0.394032 RAD 0.00617284 - txt002 - SPHERE CENTER 0.367697 0.451857 0.388171 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37895 0.457301 0.409464 RAD 0.00617284 - txt002 - SPHERE CENTER 0.389715 0.4242 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37965 0.440637 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER 0.369098 0.418529 0.424584 RAD 0.00617284 - txt002 - SPHERE CENTER 0.378463 0.418755 0.390945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.357845 0.413085 0.403291 RAD 0.00617284 - txt002 - SPHERE CENTER 0.357145 0.429748 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.305171 0.424345 0.369341 RAD 0.0185185 - txt002 - SPHERE CENTER 0.315605 0.40568 0.356995 RAD 0.00617284 - txt002 - SPHERE CENTER 0.329161 0.419383 0.372427 RAD 0.00617284 - txt002 - SPHERE CENTER 0.312107 0.403931 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER 0.291616 0.410643 0.353908 RAD 0.00617284 - txt002 - SPHERE CENTER 0.288117 0.408893 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.281181 0.429307 0.366254 RAD 0.00617284 - txt002 - SPHERE CENTER 0.30867 0.426095 0.344961 RAD 0.00617284 - txt002 - SPHERE CENTER 0.298235 0.444759 0.357307 RAD 0.00617284 - txt002 - SPHERE CENTER 0.322225 0.439797 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.271262 0.518736 0.399581 RAD 0.0185185 - txt002 - SPHERE CENTER 0.274878 0.539811 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.290264 0.533373 0.405442 RAD 0.00617284 - txt002 - SPHERE CENTER 0.290418 0.520873 0.384149 RAD 0.00617284 - txt002 - SPHERE CENTER 0.255876 0.525174 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER 0.271416 0.506236 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.25226 0.504099 0.39372 RAD 0.00617284 - txt002 - SPHERE CENTER 0.255722 0.537674 0.402668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.252106 0.516598 0.415013 RAD 0.00617284 - txt002 - SPHERE CENTER 0.271108 0.531235 0.420874 RAD 0.00617284 - txt002 - SPHERE CENTER 0.241483 0.450996 0.396183 RAD 0.0185185 - txt002 - SPHERE CENTER 0.217147 0.455172 0.396183 RAD 0.00617284 - txt002 - SPHERE CENTER 0.228983 0.45115 0.417476 RAD 0.00617284 - txt002 - SPHERE CENTER 0.232599 0.472226 0.40513 RAD 0.00617284 - txt002 - SPHERE CENTER 0.229647 0.455018 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER 0.245099 0.472072 0.383837 RAD 0.00617284 - txt002 - SPHERE CENTER 0.253983 0.450842 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER 0.226031 0.433942 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.250367 0.429767 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.237867 0.429921 0.408529 RAD 0.00617284 - txt002 - SPHERE CENTER 0.241021 0.488495 0.460062 RAD 0.0185185 - txt002 - SPHERE CENTER 0.230587 0.50716 0.472408 RAD 0.00617284 - txt002 - SPHERE CENTER 0.253381 0.499694 0.478269 RAD 0.00617284 - txt002 - SPHERE CENTER 0.24936 0.51153 0.456976 RAD 0.00617284 - txt002 - SPHERE CENTER 0.218227 0.495961 0.454201 RAD 0.00617284 - txt002 - SPHERE CENTER 0.237 0.500331 0.438769 RAD 0.00617284 - txt002 - SPHERE CENTER 0.228661 0.477296 0.441856 RAD 0.00617284 - txt002 - SPHERE CENTER 0.222248 0.484125 0.475494 RAD 0.00617284 - txt002 - SPHERE CENTER 0.232683 0.46546 0.463149 RAD 0.00617284 - txt002 - SPHERE CENTER 0.245042 0.476659 0.481355 RAD 0.00617284 - txt002 - SPHERE CENTER 0.334488 0.529584 0.436618 RAD 0.0185185 - txt002 - SPHERE CENTER 0.347572 0.546497 0.424272 RAD 0.00617284 - txt002 - SPHERE CENTER 0.352406 0.522481 0.421186 RAD 0.00617284 - txt002 - SPHERE CENTER 0.331508 0.532117 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER 0.329654 0.5536 0.439705 RAD 0.00617284 - txt002 - SPHERE CENTER 0.313589 0.53922 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER 0.31657 0.536686 0.45205 RAD 0.00617284 - txt002 - SPHERE CENTER 0.350552 0.543964 0.448652 RAD 0.00617284 - txt002 - SPHERE CENTER 0.337468 0.52705 0.460998 RAD 0.00617284 - txt002 - SPHERE CENTER 0.355387 0.519948 0.445566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.304247 0.499343 0.497099 RAD 0.0185185 - txt002 - SPHERE CENTER 0.314219 0.518259 0.509445 RAD 0.00617284 - txt002 - SPHERE CENTER 0.328108 0.504895 0.494013 RAD 0.00617284 - txt002 - SPHERE CENTER 0.310678 0.519922 0.485065 RAD 0.00617284 - txt002 - SPHERE CENTER 0.290358 0.512708 0.512531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.286818 0.51437 0.488152 RAD 0.00617284 - txt002 - SPHERE CENTER 0.280387 0.493791 0.500186 RAD 0.00617284 - txt002 - SPHERE CENTER 0.307788 0.49768 0.521479 RAD 0.00617284 - txt002 - SPHERE CENTER 0.297816 0.478764 0.509133 RAD 0.00617284 - txt002 - SPHERE CENTER 0.321677 0.484316 0.506047 RAD 0.00617284 - txt002 - SPHERE CENTER 0.367935 0.472692 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER 0.389488 0.48474 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.379669 0.477004 0.448964 RAD 0.00617284 - txt002 - SPHERE CENTER 0.369235 0.495668 0.46131 RAD 0.00617284 - txt002 - SPHERE CENTER 0.377754 0.480429 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.357501 0.491357 0.482603 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356202 0.46838 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.388188 0.461764 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER 0.366636 0.449715 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37837 0.454027 0.457911 RAD 0.00617284 - txt002 - SPHERE CENTER 0.230635 0.38777 0.729516 RAD 0.0555556 - txt002 - SPHERE CENTER 0.2506 0.446614 0.769837 RAD 0.0185185 - txt002 - SPHERE CENTER 0.264242 0.467193 0.770086 RAD 0.00617284 - txt002 - SPHERE CENTER 0.272442 0.447086 0.758332 RAD 0.00617284 - txt002 - SPHERE CENTER 0.253384 0.459832 0.749168 RAD 0.00617284 - txt002 - SPHERE CENTER 0.2424 0.46672 0.781591 RAD 0.00617284 - txt002 - SPHERE CENTER 0.231541 0.459359 0.760673 RAD 0.00617284 - txt002 - SPHERE CENTER 0.228758 0.446141 0.781342 RAD 0.00617284 - txt002 - SPHERE CENTER 0.261459 0.453974 0.790755 RAD 0.00617284 - txt002 - SPHERE CENTER 0.247817 0.433396 0.790506 RAD 0.00617284 - txt002 - SPHERE CENTER 0.269659 0.433868 0.779001 RAD 0.00617284 - txt002 - SPHERE CENTER 0.301839 0.407906 0.732914 RAD 0.0185185 - txt002 - SPHERE CENTER 0.319874 0.420236 0.72141 RAD 0.00617284 - txt002 - SPHERE CENTER 0.303021 0.407886 0.708251 RAD 0.00617284 - txt002 - SPHERE CENTER 0.296625 0.428474 0.720288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.318692 0.420256 0.746073 RAD 0.00617284 - txt002 - SPHERE CENTER 0.295442 0.428494 0.744951 RAD 0.00617284 - txt002 - SPHERE CENTER 0.300656 0.407926 0.757577 RAD 0.00617284 - txt002 - SPHERE CENTER 0.325088 0.399668 0.734036 RAD 0.00617284 - txt002 - SPHERE CENTER 0.307053 0.387338 0.745541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.308235 0.387318 0.720878 RAD 0.00617284 - txt002 - SPHERE CENTER 0.253236 0.449775 0.695877 RAD 0.0185185 - txt002 - SPHERE CENTER 0.263032 0.459076 0.675209 RAD 0.00617284 - txt002 - SPHERE CENTER 0.270029 0.436804 0.683251 RAD 0.00617284 - txt002 - SPHERE CENTER 0.247378 0.440021 0.673964 RAD 0.00617284 - txt002 - SPHERE CENTER 0.246239 0.472047 0.687835 RAD 0.00617284 - txt002 - SPHERE CENTER 0.230585 0.452992 0.68659 RAD 0.00617284 - txt002 - SPHERE CENTER 0.236443 0.462746 0.708504 RAD 0.00617284 - txt002 - SPHERE CENTER 0.26889 0.468829 0.697123 RAD 0.00617284 - txt002 - SPHERE CENTER 0.259094 0.459528 0.717791 RAD 0.00617284 - txt002 - SPHERE CENTER 0.275887 0.446557 0.705165 RAD 0.00617284 - txt002 - SPHERE CENTER 0.179397 0.426478 0.766439 RAD 0.0185185 - txt002 - SPHERE CENTER 0.174744 0.447688 0.778193 RAD 0.00617284 - txt002 - SPHERE CENTER 0.197172 0.437457 0.779597 RAD 0.00617284 - txt002 - SPHERE CENTER 0.1895 0.447523 0.758396 RAD 0.00617284 - txt002 - SPHERE CENTER 0.156968 0.436708 0.765035 RAD 0.00617284 - txt002 - SPHERE CENTER 0.171724 0.436544 0.745238 RAD 0.00617284 - txt002 - SPHERE CENTER 0.161621 0.415499 0.753281 RAD 0.00617284 - txt002 - SPHERE CENTER 0.164641 0.426642 0.786236 RAD 0.00617284 - txt002 - SPHERE CENTER 0.169293 0.405432 0.774481 RAD 0.00617284 - txt002 - SPHERE CENTER 0.187069 0.416412 0.787639 RAD 0.00617284 - txt002 - SPHERE CENTER 0.182032 0.429639 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER 0.177682 0.45215 0.683315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.190087 0.449636 0.704516 RAD 0.00617284 - txt002 - SPHERE CENTER 0.200611 0.44299 0.683192 RAD 0.00617284 - txt002 - SPHERE CENTER 0.169628 0.432153 0.671279 RAD 0.00617284 - txt002 - SPHERE CENTER 0.192556 0.422992 0.671155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.173978 0.409641 0.680442 RAD 0.00617284 - txt002 - SPHERE CENTER 0.159104 0.438799 0.692603 RAD 0.00617284 - txt002 - SPHERE CENTER 0.163454 0.416288 0.701767 RAD 0.00617284 - txt002 - SPHERE CENTER 0.171508 0.436286 0.713804 RAD 0.00617284 - txt002 - SPHERE CENTER 0.159431 0.367634 0.726118 RAD 0.0185185 - txt002 - SPHERE CENTER 0.13761 0.368692 0.737623 RAD 0.00617284 - txt002 - SPHERE CENTER 0.158434 0.366998 0.750781 RAD 0.00617284 - txt002 - SPHERE CENTER 0.153102 0.387887 0.738744 RAD 0.00617284 - txt002 - SPHERE CENTER 0.138607 0.369329 0.71296 RAD 0.00617284 - txt002 - SPHERE CENTER 0.154099 0.388523 0.714081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.160429 0.36827 0.701455 RAD 0.00617284 - txt002 - SPHERE CENTER 0.14394 0.34844 0.724997 RAD 0.00617284 - txt002 - SPHERE CENTER 0.165761 0.347381 0.713492 RAD 0.00617284 - txt002 - SPHERE CENTER 0.164764 0.346745 0.738155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.227999 0.384609 0.803476 RAD 0.0185185 - txt002 - SPHERE CENTER 0.237348 0.393812 0.824394 RAD 0.00617284 - txt002 - SPHERE CENTER 0.251829 0.390976 0.804597 RAD 0.00617284 - txt002 - SPHERE CENTER 0.234368 0.408432 0.804721 RAD 0.00617284 - txt002 - SPHERE CENTER 0.213518 0.387445 0.823273 RAD 0.00617284 - txt002 - SPHERE CENTER 0.210538 0.402066 0.8036 RAD 0.00617284 - txt002 - SPHERE CENTER 0.204169 0.378242 0.802355 RAD 0.00617284 - txt002 - SPHERE CENTER 0.23098 0.369989 0.823149 RAD 0.00617284 - txt002 - SPHERE CENTER 0.221631 0.360786 0.802231 RAD 0.00617284 - txt002 - SPHERE CENTER 0.245461 0.367152 0.803352 RAD 0.00617284 - txt002 - SPHERE CENTER 0.208034 0.325765 0.763155 RAD 0.0185185 - txt002 - SPHERE CENTER 0.209548 0.312342 0.783824 RAD 0.00617284 - txt002 - SPHERE CENTER 0.229235 0.324887 0.775781 RAD 0.00617284 - txt002 - SPHERE CENTER 0.209827 0.337 0.785069 RAD 0.00617284 - txt002 - SPHERE CENTER 0.188347 0.31322 0.771198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.188626 0.337878 0.772443 RAD 0.00617284 - txt002 - SPHERE CENTER 0.186834 0.326643 0.750529 RAD 0.00617284 - txt002 - SPHERE CENTER 0.207755 0.301107 0.76191 RAD 0.00617284 - txt002 - SPHERE CENTER 0.206242 0.31453 0.741241 RAD 0.00617284 - txt002 - SPHERE CENTER 0.227442 0.313652 0.753867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.279238 0.345901 0.766553 RAD 0.0185185 - txt002 - SPHERE CENTER 0.302145 0.344931 0.775717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.297823 0.356827 0.754517 RAD 0.00617284 - txt002 - SPHERE CENTER 0.289691 0.366251 0.775841 RAD 0.00617284 - txt002 - SPHERE CENTER 0.28356 0.334005 0.787754 RAD 0.00617284 - txt002 - SPHERE CENTER 0.271106 0.355325 0.787878 RAD 0.00617284 - txt002 - SPHERE CENTER 0.260653 0.334975 0.77859 RAD 0.00617284 - txt002 - SPHERE CENTER 0.291692 0.324581 0.766429 RAD 0.00617284 - txt002 - SPHERE CENTER 0.268785 0.325551 0.757266 RAD 0.00617284 - txt002 - SPHERE CENTER 0.28737 0.336477 0.745229 RAD 0.00617284 - txt002 - SPHERE CENTER 0.115031 0.4293 0.544331 RAD 0.0555556 - txt002 - SPHERE CENTER 0.102505 0.502308 0.544331 RAD 0.0185185 - txt002 - SPHERE CENTER 0.110567 0.524146 0.536101 RAD 0.00617284 - txt002 - SPHERE CENTER 0.126738 0.506465 0.542066 RAD 0.00617284 - txt002 - SPHERE CENTER 0.112687 0.504055 0.521905 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0863343 0.519988 0.538366 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0884544 0.499897 0.524171 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0782715 0.49815 0.546597 RAD 0.00617284 - txt002 - SPHERE CENTER 0.100385 0.522399 0.558526 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0923218 0.500561 0.566757 RAD 0.00617284 - txt002 - SPHERE CENTER 0.116555 0.504718 0.564491 RAD 0.00617284 - txt002 - SPHERE CENTER 0.160392 0.474661 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.177777 0.492047 0.579103 RAD 0.00617284 - txt002 - SPHERE CENTER 0.176681 0.473492 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.159222 0.490951 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.161488 0.493217 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER 0.142932 0.492121 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.144102 0.475831 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.178947 0.475757 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER 0.161561 0.458371 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.177851 0.457202 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.160392 0.474661 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.167697 0.481967 0.484868 RAD 0.00617284 - txt002 - SPHERE CENTER 0.161561 0.458371 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.144102 0.475831 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.166528 0.498257 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.142932 0.492121 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.159222 0.490951 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.183987 0.480797 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.176681 0.473492 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.177851 0.457202 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0571437 0.456947 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0450372 0.477623 0.501329 RAD 0.00617284 - txt002 - SPHERE CENTER 0.055591 0.475469 0.523547 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0696413 0.47788 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0465898 0.4591 0.485076 RAD 0.00617284 - txt002 - SPHERE CENTER 0.071194 0.459357 0.487134 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0586963 0.438424 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0325396 0.45669 0.505236 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0446461 0.436013 0.511201 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0430934 0.454536 0.527454 RAD 0.00617284 - txt002 - SPHERE CENTER 0.115031 0.4293 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER 0.10495 0.439381 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0911807 0.435691 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.10864 0.45315 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.128801 0.43299 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER 0.13249 0.44676 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.138881 0.42291 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.111341 0.415531 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER 0.121421 0.40545 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0975713 0.411841 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0696698 0.383939 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.052284 0.366554 0.509559 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0708393 0.36765 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0533799 0.385109 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0511144 0.382844 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0522103 0.401399 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0685002 0.400229 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0685739 0.365384 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0859596 0.38277 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0871292 0.36648 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0571437 0.456947 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0493251 0.475575 0.595564 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0725262 0.467381 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER 0.06557 0.479825 0.577461 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0339426 0.465141 0.57931 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0501875 0.46939 0.561208 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0417612 0.446512 0.565115 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0408988 0.452697 0.599471 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0487174 0.434069 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0640999 0.444504 0.601529 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0696698 0.383939 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0623642 0.376634 0.603794 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0859596 0.38277 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0685002 0.400229 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0460743 0.377803 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0522103 0.401399 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0533799 0.385109 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0635337 0.360344 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0708393 0.36765 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0871292 0.36648 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.115031 0.4293 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.125111 0.439381 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.138881 0.435691 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.121421 0.45315 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.101261 0.43299 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0975713 0.44676 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0911807 0.42291 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.11872 0.415531 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.10864 0.40545 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.13249 0.411841 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.082487 0.239622 0.655442 RAD 0.0555556 - txt002 - SPHERE CENTER 0.0438957 0.258053 0.715923 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0426858 0.273525 0.735128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.064638 0.265928 0.726759 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0510334 0.281546 0.713318 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0219434 0.26565 0.724292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.030291 0.273671 0.702483 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0231533 0.250178 0.705088 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0355481 0.250032 0.737733 RAD 0.00617284 - txt002 - SPHERE CENTER 0.036758 0.23456 0.718528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0575003 0.242434 0.729364 RAD 0.00617284 - txt002 - SPHERE CENTER 0.117687 0.252557 0.719322 RAD 0.0185185 - txt002 - SPHERE CENTER 0.135677 0.265544 0.730157 RAD 0.00617284 - txt002 - SPHERE CENTER 0.138361 0.25778 0.706872 RAD 0.00617284 - txt002 - SPHERE CENTER 0.12224 0.275732 0.71212 RAD 0.00617284 - txt002 - SPHERE CENTER 0.115003 0.26032 0.742607 RAD 0.00617284 - txt002 - SPHERE CENTER 0.101567 0.270508 0.72457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.097014 0.247334 0.731771 RAD 0.00617284 - txt002 - SPHERE CENTER 0.131123 0.242369 0.737359 RAD 0.00617284 - txt002 - SPHERE CENTER 0.113134 0.229382 0.726523 RAD 0.00617284 - txt002 - SPHERE CENTER 0.133808 0.234605 0.714074 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0863845 0.308551 0.682285 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0971427 0.330622 0.67968 RAD 0.00617284 - txt002 - SPHERE CENTER 0.109956 0.310023 0.675083 RAD 0.00617284 - txt002 - SPHERE CENTER 0.091905 0.317013 0.659755 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0735708 0.329151 0.686881 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0683331 0.315541 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0628126 0.30708 0.689486 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0916222 0.322161 0.702209 RAD 0.00617284 - txt002 - SPHERE CENTER 0.080864 0.30009 0.704814 RAD 0.00617284 - txt002 - SPHERE CENTER 0.104436 0.301561 0.697613 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00869528 0.245118 0.652044 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0110117 0.257416 0.660413 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00823377 0.253319 0.675329 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0102865 0.269325 0.656641 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0105502 0.249215 0.637128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.010748 0.261124 0.633356 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00915679 0.236916 0.628759 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0126029 0.233209 0.655816 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00710408 0.22091 0.647447 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00664257 0.229111 0.670732 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0511841 0.295616 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0555846 0.315856 0.604965 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0705987 0.309941 0.623653 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0705297 0.296292 0.603077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.03617 0.301531 0.599717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0511152 0.281968 0.597829 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0317696 0.281291 0.613157 RAD 0.00617284 - txt002 - SPHERE CENTER 0.036239 0.31518 0.620293 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0318385 0.29494 0.633733 RAD 0.00617284 - txt002 - SPHERE CENTER 0.051253 0.309265 0.638981 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0472866 0.226687 0.591563 RAD 0.0185185 - txt002 - SPHERE CENTER 0.025169 0.224935 0.580727 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0281502 0.217281 0.604012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0288111 0.241399 0.598764 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0443054 0.234341 0.568278 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0479475 0.250805 0.586315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.066423 0.236092 0.579113 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0436445 0.210223 0.573526 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0657621 0.211974 0.584361 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0466257 0.202569 0.596811 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0399982 0.189123 0.689081 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0335228 0.179527 0.71089 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0567332 0.187058 0.707118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0385291 0.203632 0.709006 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0167878 0.181593 0.692853 RAD 0.00617284 - txt002 - SPHERE CENTER 0.021794 0.205698 0.690969 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0232631 0.191189 0.671044 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0349919 0.165018 0.690965 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0414672 0.174615 0.669156 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0582023 0.172549 0.687193 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0785895 0.170692 0.6286 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0867911 0.147549 0.631205 RAD 0.00617284 - txt002 - SPHERE CENTER 0.101845 0.166573 0.635801 RAD 0.00617284 - txt002 - SPHERE CENTER 0.083121 0.161663 0.65113 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0635354 0.151669 0.624003 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0598652 0.165782 0.643928 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0553337 0.174812 0.621398 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0822597 0.156579 0.608675 RAD 0.00617284 - txt002 - SPHERE CENTER 0.074058 0.179722 0.60607 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0973138 0.175603 0.613272 RAD 0.00617284 - txt002 - SPHERE CENTER 0.11379 0.183628 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER 0.133336 0.176775 0.705919 RAD 0.00617284 - txt002 - SPHERE CENTER 0.136161 0.192663 0.687231 RAD 0.00617284 - txt002 - SPHERE CENTER 0.124499 0.199753 0.707807 RAD 0.00617284 - txt002 - SPHERE CENTER 0.110965 0.167739 0.711167 RAD 0.00617284 - txt002 - SPHERE CENTER 0.102127 0.190718 0.713055 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0914184 0.174592 0.697727 RAD 0.00617284 - txt002 - SPHERE CENTER 0.122627 0.160649 0.690591 RAD 0.00617284 - txt002 - SPHERE CENTER 0.103081 0.167502 0.677151 RAD 0.00617284 - txt002 - SPHERE CENTER 0.125452 0.176537 0.671903 RAD 0.00617284 - txt002 - SPHERE CENTER 0.38777 0.230635 0.729516 RAD 0.0555556 - txt002 - SPHERE CENTER 0.446614 0.2506 0.769837 RAD 0.0185185 - txt002 - SPHERE CENTER 0.467193 0.264242 0.770086 RAD 0.00617284 - txt002 - SPHERE CENTER 0.459832 0.253384 0.749168 RAD 0.00617284 - txt002 - SPHERE CENTER 0.447086 0.272442 0.758332 RAD 0.00617284 - txt002 - SPHERE CENTER 0.453974 0.261459 0.790755 RAD 0.00617284 - txt002 - SPHERE CENTER 0.433868 0.269659 0.779001 RAD 0.00617284 - txt002 - SPHERE CENTER 0.433396 0.247817 0.790506 RAD 0.00617284 - txt002 - SPHERE CENTER 0.46672 0.2424 0.781591 RAD 0.00617284 - txt002 - SPHERE CENTER 0.446141 0.228758 0.781342 RAD 0.00617284 - txt002 - SPHERE CENTER 0.459359 0.231541 0.760673 RAD 0.00617284 - txt002 - SPHERE CENTER 0.449775 0.253236 0.695877 RAD 0.0185185 - txt002 - SPHERE CENTER 0.459076 0.263032 0.675209 RAD 0.00617284 - txt002 - SPHERE CENTER 0.440021 0.247378 0.673964 RAD 0.00617284 - txt002 - SPHERE CENTER 0.436804 0.270029 0.683251 RAD 0.00617284 - txt002 - SPHERE CENTER 0.468829 0.26889 0.697123 RAD 0.00617284 - txt002 - SPHERE CENTER 0.446557 0.275887 0.705165 RAD 0.00617284 - txt002 - SPHERE CENTER 0.459528 0.259094 0.717791 RAD 0.00617284 - txt002 - SPHERE CENTER 0.472047 0.246239 0.687835 RAD 0.00617284 - txt002 - SPHERE CENTER 0.462746 0.236443 0.708504 RAD 0.00617284 - txt002 - SPHERE CENTER 0.452992 0.230585 0.68659 RAD 0.00617284 - txt002 - SPHERE CENTER 0.407906 0.301839 0.732914 RAD 0.0185185 - txt002 - SPHERE CENTER 0.420236 0.319874 0.72141 RAD 0.00617284 - txt002 - SPHERE CENTER 0.428474 0.296625 0.720288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.407886 0.303021 0.708251 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399668 0.325088 0.734036 RAD 0.00617284 - txt002 - SPHERE CENTER 0.387318 0.308235 0.720878 RAD 0.00617284 - txt002 - SPHERE CENTER 0.387338 0.307053 0.745541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.420256 0.318692 0.746073 RAD 0.00617284 - txt002 - SPHERE CENTER 0.407926 0.300656 0.757577 RAD 0.00617284 - txt002 - SPHERE CENTER 0.428494 0.295442 0.744951 RAD 0.00617284 - txt002 - SPHERE CENTER 0.384609 0.227999 0.803476 RAD 0.0185185 - txt002 - SPHERE CENTER 0.393812 0.237348 0.824394 RAD 0.00617284 - txt002 - SPHERE CENTER 0.408432 0.234368 0.804721 RAD 0.00617284 - txt002 - SPHERE CENTER 0.390976 0.251829 0.804597 RAD 0.00617284 - txt002 - SPHERE CENTER 0.369989 0.23098 0.823149 RAD 0.00617284 - txt002 - SPHERE CENTER 0.367152 0.245461 0.803352 RAD 0.00617284 - txt002 - SPHERE CENTER 0.360786 0.221631 0.802231 RAD 0.00617284 - txt002 - SPHERE CENTER 0.387445 0.213518 0.823273 RAD 0.00617284 - txt002 - SPHERE CENTER 0.378242 0.204169 0.802355 RAD 0.00617284 - txt002 - SPHERE CENTER 0.402066 0.210538 0.8036 RAD 0.00617284 - txt002 - SPHERE CENTER 0.345901 0.279238 0.766553 RAD 0.0185185 - txt002 - SPHERE CENTER 0.344931 0.302145 0.775717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.366251 0.289691 0.775841 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356827 0.297823 0.754517 RAD 0.00617284 - txt002 - SPHERE CENTER 0.324581 0.291692 0.766429 RAD 0.00617284 - txt002 - SPHERE CENTER 0.336477 0.28737 0.745229 RAD 0.00617284 - txt002 - SPHERE CENTER 0.325551 0.268785 0.757266 RAD 0.00617284 - txt002 - SPHERE CENTER 0.334005 0.28356 0.787754 RAD 0.00617284 - txt002 - SPHERE CENTER 0.334975 0.260653 0.77859 RAD 0.00617284 - txt002 - SPHERE CENTER 0.355325 0.271106 0.787878 RAD 0.00617284 - txt002 - SPHERE CENTER 0.325765 0.208034 0.763155 RAD 0.0185185 - txt002 - SPHERE CENTER 0.312342 0.209548 0.783824 RAD 0.00617284 - txt002 - SPHERE CENTER 0.337 0.209827 0.785069 RAD 0.00617284 - txt002 - SPHERE CENTER 0.324887 0.229235 0.775781 RAD 0.00617284 - txt002 - SPHERE CENTER 0.301107 0.207755 0.76191 RAD 0.00617284 - txt002 - SPHERE CENTER 0.313652 0.227442 0.753867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.31453 0.206242 0.741241 RAD 0.00617284 - txt002 - SPHERE CENTER 0.31322 0.188347 0.771198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.326643 0.186834 0.750529 RAD 0.00617284 - txt002 - SPHERE CENTER 0.337878 0.188626 0.772443 RAD 0.00617284 - txt002 - SPHERE CENTER 0.426478 0.179397 0.766439 RAD 0.0185185 - txt002 - SPHERE CENTER 0.447688 0.174744 0.778193 RAD 0.00617284 - txt002 - SPHERE CENTER 0.447523 0.1895 0.758396 RAD 0.00617284 - txt002 - SPHERE CENTER 0.437457 0.197172 0.779597 RAD 0.00617284 - txt002 - SPHERE CENTER 0.426642 0.164641 0.786236 RAD 0.00617284 - txt002 - SPHERE CENTER 0.416412 0.187069 0.787639 RAD 0.00617284 - txt002 - SPHERE CENTER 0.405432 0.169293 0.774481 RAD 0.00617284 - txt002 - SPHERE CENTER 0.436708 0.156968 0.765035 RAD 0.00617284 - txt002 - SPHERE CENTER 0.415499 0.161621 0.753281 RAD 0.00617284 - txt002 - SPHERE CENTER 0.436544 0.171724 0.745238 RAD 0.00617284 - txt002 - SPHERE CENTER 0.367634 0.159431 0.726118 RAD 0.0185185 - txt002 - SPHERE CENTER 0.368692 0.13761 0.737623 RAD 0.00617284 - txt002 - SPHERE CENTER 0.387887 0.153102 0.738744 RAD 0.00617284 - txt002 - SPHERE CENTER 0.366998 0.158434 0.750781 RAD 0.00617284 - txt002 - SPHERE CENTER 0.34844 0.14394 0.724997 RAD 0.00617284 - txt002 - SPHERE CENTER 0.346745 0.164764 0.738155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.347381 0.165761 0.713492 RAD 0.00617284 - txt002 - SPHERE CENTER 0.369329 0.138607 0.71296 RAD 0.00617284 - txt002 - SPHERE CENTER 0.36827 0.160429 0.701455 RAD 0.00617284 - txt002 - SPHERE CENTER 0.388523 0.154099 0.714081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.429639 0.182032 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER 0.45215 0.177682 0.683315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.44299 0.200611 0.683192 RAD 0.00617284 - txt002 - SPHERE CENTER 0.449636 0.190087 0.704516 RAD 0.00617284 - txt002 - SPHERE CENTER 0.438799 0.159104 0.692603 RAD 0.00617284 - txt002 - SPHERE CENTER 0.436286 0.171508 0.713804 RAD 0.00617284 - txt002 - SPHERE CENTER 0.416288 0.163454 0.701767 RAD 0.00617284 - txt002 - SPHERE CENTER 0.432153 0.169628 0.671279 RAD 0.00617284 - txt002 - SPHERE CENTER 0.409641 0.173978 0.680442 RAD 0.00617284 - txt002 - SPHERE CENTER 0.422992 0.192556 0.671155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.239622 0.082487 0.655442 RAD 0.0555556 - txt002 - SPHERE CENTER 0.258053 0.0438957 0.715923 RAD 0.0185185 - txt002 - SPHERE CENTER 0.273525 0.0426858 0.735128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.281546 0.0510334 0.713318 RAD 0.00617284 - txt002 - SPHERE CENTER 0.265928 0.064638 0.726759 RAD 0.00617284 - txt002 - SPHERE CENTER 0.250032 0.0355481 0.737733 RAD 0.00617284 - txt002 - SPHERE CENTER 0.242434 0.0575003 0.729364 RAD 0.00617284 - txt002 - SPHERE CENTER 0.23456 0.036758 0.718528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.26565 0.0219434 0.724292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.250178 0.0231533 0.705088 RAD 0.00617284 - txt002 - SPHERE CENTER 0.273671 0.030291 0.702483 RAD 0.00617284 - txt002 - SPHERE CENTER 0.308551 0.0863845 0.682285 RAD 0.0185185 - txt002 - SPHERE CENTER 0.330622 0.0971427 0.67968 RAD 0.00617284 - txt002 - SPHERE CENTER 0.317013 0.091905 0.659755 RAD 0.00617284 - txt002 - SPHERE CENTER 0.310023 0.109956 0.675083 RAD 0.00617284 - txt002 - SPHERE CENTER 0.322161 0.0916222 0.702209 RAD 0.00617284 - txt002 - SPHERE CENTER 0.301561 0.104436 0.697613 RAD 0.00617284 - txt002 - SPHERE CENTER 0.30009 0.080864 0.704814 RAD 0.00617284 - txt002 - SPHERE CENTER 0.329151 0.0735708 0.686881 RAD 0.00617284 - txt002 - SPHERE CENTER 0.30708 0.0628126 0.689486 RAD 0.00617284 - txt002 - SPHERE CENTER 0.315541 0.0683331 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER 0.252557 0.117687 0.719322 RAD 0.0185185 - txt002 - SPHERE CENTER 0.265544 0.135677 0.730157 RAD 0.00617284 - txt002 - SPHERE CENTER 0.275732 0.12224 0.71212 RAD 0.00617284 - txt002 - SPHERE CENTER 0.25778 0.138361 0.706872 RAD 0.00617284 - txt002 - SPHERE CENTER 0.242369 0.131123 0.737359 RAD 0.00617284 - txt002 - SPHERE CENTER 0.234605 0.133808 0.714074 RAD 0.00617284 - txt002 - SPHERE CENTER 0.229382 0.113134 0.726523 RAD 0.00617284 - txt002 - SPHERE CENTER 0.26032 0.115003 0.742607 RAD 0.00617284 - txt002 - SPHERE CENTER 0.247334 0.097014 0.731771 RAD 0.00617284 - txt002 - SPHERE CENTER 0.270508 0.101567 0.72457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.189123 0.0399982 0.689081 RAD 0.0185185 - txt002 - SPHERE CENTER 0.179527 0.0335228 0.71089 RAD 0.00617284 - txt002 - SPHERE CENTER 0.203632 0.0385291 0.709006 RAD 0.00617284 - txt002 - SPHERE CENTER 0.187058 0.0567332 0.707118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.165018 0.0349919 0.690965 RAD 0.00617284 - txt002 - SPHERE CENTER 0.172549 0.0582023 0.687193 RAD 0.00617284 - txt002 - SPHERE CENTER 0.174615 0.0414672 0.669156 RAD 0.00617284 - txt002 - SPHERE CENTER 0.181593 0.0167878 0.692853 RAD 0.00617284 - txt002 - SPHERE CENTER 0.191189 0.0232631 0.671044 RAD 0.00617284 - txt002 - SPHERE CENTER 0.205698 0.021794 0.690969 RAD 0.00617284 - txt002 - SPHERE CENTER 0.183628 0.11379 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER 0.176775 0.133336 0.705919 RAD 0.00617284 - txt002 - SPHERE CENTER 0.199753 0.124499 0.707807 RAD 0.00617284 - txt002 - SPHERE CENTER 0.192663 0.136161 0.687231 RAD 0.00617284 - txt002 - SPHERE CENTER 0.160649 0.122627 0.690591 RAD 0.00617284 - txt002 - SPHERE CENTER 0.176537 0.125452 0.671903 RAD 0.00617284 - txt002 - SPHERE CENTER 0.167502 0.103081 0.677151 RAD 0.00617284 - txt002 - SPHERE CENTER 0.167739 0.110965 0.711167 RAD 0.00617284 - txt002 - SPHERE CENTER 0.174592 0.0914184 0.697727 RAD 0.00617284 - txt002 - SPHERE CENTER 0.190718 0.102127 0.713055 RAD 0.00617284 - txt002 - SPHERE CENTER 0.170692 0.0785895 0.6286 RAD 0.0185185 - txt002 - SPHERE CENTER 0.147549 0.0867911 0.631205 RAD 0.00617284 - txt002 - SPHERE CENTER 0.161663 0.083121 0.65113 RAD 0.00617284 - txt002 - SPHERE CENTER 0.166573 0.101845 0.635801 RAD 0.00617284 - txt002 - SPHERE CENTER 0.156579 0.0822597 0.608675 RAD 0.00617284 - txt002 - SPHERE CENTER 0.175603 0.0973138 0.613272 RAD 0.00617284 - txt002 - SPHERE CENTER 0.179722 0.074058 0.60607 RAD 0.00617284 - txt002 - SPHERE CENTER 0.151669 0.0635354 0.624003 RAD 0.00617284 - txt002 - SPHERE CENTER 0.174812 0.0553337 0.621398 RAD 0.00617284 - txt002 - SPHERE CENTER 0.165782 0.0598652 0.643928 RAD 0.00617284 - txt002 - SPHERE CENTER 0.245118 0.00869528 0.652044 RAD 0.0185185 - txt002 - SPHERE CENTER 0.257416 -0.0110117 0.660413 RAD 0.00617284 - txt002 - SPHERE CENTER 0.269325 0.0102865 0.656641 RAD 0.00617284 - txt002 - SPHERE CENTER 0.253319 0.00823377 0.675329 RAD 0.00617284 - txt002 - SPHERE CENTER 0.233209 -0.0126029 0.655816 RAD 0.00617284 - txt002 - SPHERE CENTER 0.229111 0.00664257 0.670732 RAD 0.00617284 - txt002 - SPHERE CENTER 0.22091 0.00710408 0.647447 RAD 0.00617284 - txt002 - SPHERE CENTER 0.249215 -0.0105502 0.637128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.236916 0.00915679 0.628759 RAD 0.00617284 - txt002 - SPHERE CENTER 0.261124 0.010748 0.633356 RAD 0.00617284 - txt002 - SPHERE CENTER 0.226687 0.0472866 0.591563 RAD 0.0185185 - txt002 - SPHERE CENTER 0.224935 0.025169 0.580727 RAD 0.00617284 - txt002 - SPHERE CENTER 0.241399 0.0288111 0.598764 RAD 0.00617284 - txt002 - SPHERE CENTER 0.217281 0.0281502 0.604012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.210223 0.0436445 0.573526 RAD 0.00617284 - txt002 - SPHERE CENTER 0.202569 0.0466257 0.596811 RAD 0.00617284 - txt002 - SPHERE CENTER 0.211974 0.0657621 0.584361 RAD 0.00617284 - txt002 - SPHERE CENTER 0.234341 0.0443054 0.568278 RAD 0.00617284 - txt002 - SPHERE CENTER 0.236092 0.066423 0.579113 RAD 0.00617284 - txt002 - SPHERE CENTER 0.250805 0.0479475 0.586315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.295616 0.0511841 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.315856 0.0555846 0.604965 RAD 0.00617284 - txt002 - SPHERE CENTER 0.296292 0.0705297 0.603077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.309941 0.0705987 0.623653 RAD 0.00617284 - txt002 - SPHERE CENTER 0.31518 0.036239 0.620293 RAD 0.00617284 - txt002 - SPHERE CENTER 0.309265 0.051253 0.638981 RAD 0.00617284 - txt002 - SPHERE CENTER 0.29494 0.0318385 0.633733 RAD 0.00617284 - txt002 - SPHERE CENTER 0.301531 0.03617 0.599717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.281291 0.0317696 0.613157 RAD 0.00617284 - txt002 - SPHERE CENTER 0.281968 0.0511152 0.597829 RAD 0.00617284 - txt002 - SPHERE CENTER 0.4293 0.115031 0.544331 RAD 0.0555556 - txt002 - SPHERE CENTER 0.502308 0.102505 0.544331 RAD 0.0185185 - txt002 - SPHERE CENTER 0.524146 0.110567 0.536101 RAD 0.00617284 - txt002 - SPHERE CENTER 0.504055 0.112687 0.521905 RAD 0.00617284 - txt002 - SPHERE CENTER 0.506465 0.126738 0.542066 RAD 0.00617284 - txt002 - SPHERE CENTER 0.522399 0.100385 0.558526 RAD 0.00617284 - txt002 - SPHERE CENTER 0.504718 0.116555 0.564491 RAD 0.00617284 - txt002 - SPHERE CENTER 0.500561 0.0923218 0.566757 RAD 0.00617284 - txt002 - SPHERE CENTER 0.519988 0.0863343 0.538366 RAD 0.00617284 - txt002 - SPHERE CENTER 0.49815 0.0782715 0.546597 RAD 0.00617284 - txt002 - SPHERE CENTER 0.499897 0.0884544 0.524171 RAD 0.00617284 - txt002 - SPHERE CENTER 0.474661 0.160392 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.481967 0.167697 0.484868 RAD 0.00617284 - txt002 - SPHERE CENTER 0.475831 0.144102 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.458371 0.161561 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.480797 0.183987 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.457202 0.177851 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.473492 0.176681 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.498257 0.166528 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.490951 0.159222 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.492121 0.142932 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.474661 0.160392 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.492047 0.177777 0.579103 RAD 0.00617284 - txt002 - SPHERE CENTER 0.490951 0.159222 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.473492 0.176681 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.475757 0.178947 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER 0.457202 0.177851 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.458371 0.161561 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.493217 0.161488 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER 0.475831 0.144102 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.492121 0.142932 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.456947 0.0571437 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.475575 0.0493251 0.595564 RAD 0.00617284 - txt002 - SPHERE CENTER 0.479825 0.06557 0.577461 RAD 0.00617284 - txt002 - SPHERE CENTER 0.467381 0.0725262 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER 0.452697 0.0408988 0.599471 RAD 0.00617284 - txt002 - SPHERE CENTER 0.444504 0.0640999 0.601529 RAD 0.00617284 - txt002 - SPHERE CENTER 0.434069 0.0487174 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER 0.465141 0.0339426 0.57931 RAD 0.00617284 - txt002 - SPHERE CENTER 0.446512 0.0417612 0.565115 RAD 0.00617284 - txt002 - SPHERE CENTER 0.46939 0.0501875 0.561208 RAD 0.00617284 - txt002 - SPHERE CENTER 0.4293 0.115031 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.439381 0.125111 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.45315 0.121421 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.435691 0.138881 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.415531 0.11872 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.411841 0.13249 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.40545 0.10864 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.43299 0.101261 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.42291 0.0911807 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.44676 0.0975713 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.383939 0.0696698 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.376634 0.0623642 0.603794 RAD 0.00617284 - txt002 - SPHERE CENTER 0.400229 0.0685002 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.38277 0.0859596 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.360344 0.0635337 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER 0.36648 0.0871292 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.36765 0.0708393 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.377803 0.0460743 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER 0.385109 0.0533799 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.401399 0.0522103 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.456947 0.0571437 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.477623 0.0450372 0.501329 RAD 0.00617284 - txt002 - SPHERE CENTER 0.47788 0.0696413 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.475469 0.055591 0.523547 RAD 0.00617284 - txt002 - SPHERE CENTER 0.45669 0.0325396 0.505236 RAD 0.00617284 - txt002 - SPHERE CENTER 0.454536 0.0430934 0.527454 RAD 0.00617284 - txt002 - SPHERE CENTER 0.436013 0.0446461 0.511201 RAD 0.00617284 - txt002 - SPHERE CENTER 0.4591 0.0465898 0.485076 RAD 0.00617284 - txt002 - SPHERE CENTER 0.438424 0.0586963 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER 0.459357 0.071194 0.487134 RAD 0.00617284 - txt002 - SPHERE CENTER 0.383939 0.0696698 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.366554 0.052284 0.509559 RAD 0.00617284 - txt002 - SPHERE CENTER 0.385109 0.0533799 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.36765 0.0708393 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.365384 0.0685739 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER 0.36648 0.0871292 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.38277 0.0859596 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.382844 0.0511144 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER 0.400229 0.0685002 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.401399 0.0522103 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.4293 0.115031 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER 0.41922 0.125111 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER 0.40545 0.121421 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.42291 0.138881 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.44307 0.11872 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER 0.44676 0.13249 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.45315 0.10864 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.425611 0.101261 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER 0.435691 0.0911807 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.411841 0.0975713 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.643951 0.172546 1.11022e-16 RAD 0.166667 - txt002 - SPHERE CENTER 0.802608 0.281471 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.824035 0.30566 -0.177765 RAD 0.0185185 - txt002 - SPHERE CENTER 0.822021 0.302088 -0.202114 RAD 0.00617284 - txt002 - SPHERE CENTER 0.821938 0.282758 -0.186751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.802598 0.298094 -0.187402 RAD 0.00617284 - txt002 - SPHERE CENTER 0.824119 0.32499 -0.193128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.804695 0.320997 -0.178416 RAD 0.00617284 - txt002 - SPHERE CENTER 0.826132 0.328563 -0.16878 RAD 0.00617284 - txt002 - SPHERE CENTER 0.843459 0.309654 -0.192477 RAD 0.00617284 - txt002 - SPHERE CENTER 0.845472 0.313227 -0.168128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.843375 0.290324 -0.177114 RAD 0.00617284 - txt002 - SPHERE CENTER 0.787796 0.241352 -0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER 0.785699 0.218449 -0.180578 RAD 0.00617284 - txt002 - SPHERE CENTER 0.802677 0.22345 -0.163362 RAD 0.00617284 - txt002 - SPHERE CENTER 0.778718 0.223304 -0.157397 RAD 0.00617284 - txt002 - SPHERE CENTER 0.770818 0.236351 -0.188808 RAD 0.00617284 - txt002 - SPHERE CENTER 0.763837 0.241205 -0.165627 RAD 0.00617284 - txt002 - SPHERE CENTER 0.772915 0.259253 -0.179823 RAD 0.00617284 - txt002 - SPHERE CENTER 0.794777 0.236497 -0.194773 RAD 0.00617284 - txt002 - SPHERE CENTER 0.796874 0.2594 -0.185788 RAD 0.00617284 - txt002 - SPHERE CENTER 0.811756 0.241498 -0.177557 RAD 0.00617284 - txt002 - SPHERE CENTER 0.752156 0.305221 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.741263 0.325175 -0.169507 RAD 0.00617284 - txt002 - SPHERE CENTER 0.747715 0.32493 -0.145675 RAD 0.00617284 - txt002 - SPHERE CENTER 0.765112 0.325981 -0.163165 RAD 0.00617284 - txt002 - SPHERE CENTER 0.745704 0.305466 -0.183703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.769553 0.306272 -0.17736 RAD 0.00617284 - txt002 - SPHERE CENTER 0.756597 0.285513 -0.174066 RAD 0.00617284 - txt002 - SPHERE CENTER 0.728307 0.304415 -0.166213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.7392 0.284462 -0.156576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.734759 0.304171 -0.142381 RAD 0.00617284 - txt002 - SPHERE CENTER 0.838847 0.34578 -0.117284 RAD 0.0185185 - txt002 - SPHERE CENTER 0.851488 0.360404 -0.132647 RAD 0.00617284 - txt002 - SPHERE CENTER 0.853509 0.335865 -0.1345 RAD 0.00617284 - txt002 - SPHERE CENTER 0.832518 0.347059 -0.141116 RAD 0.00617284 - txt002 - SPHERE CENTER 0.836826 0.370319 -0.115431 RAD 0.00617284 - txt002 - SPHERE CENTER 0.817857 0.356973 -0.1239 RAD 0.00617284 - txt002 - SPHERE CENTER 0.824185 0.355695 -0.100068 RAD 0.00617284 - txt002 - SPHERE CENTER 0.857816 0.359125 -0.108814 RAD 0.00617284 - txt002 - SPHERE CENTER 0.845176 0.344501 -0.0934517 RAD 0.00617284 - txt002 - SPHERE CENTER 0.859838 0.334587 -0.110668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.766968 0.345341 -0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.768944 0.369945 -0.10004 RAD 0.00617284 - txt002 - SPHERE CENTER 0.788341 0.356172 -0.093424 RAD 0.00617284 - txt002 - SPHERE CENTER 0.780624 0.356171 -0.116879 RAD 0.00617284 - txt002 - SPHERE CENTER 0.747572 0.359113 -0.106005 RAD 0.00617284 - txt002 - SPHERE CENTER 0.759252 0.34534 -0.122844 RAD 0.00617284 - txt002 - SPHERE CENTER 0.745596 0.33451 -0.105354 RAD 0.00617284 - txt002 - SPHERE CENTER 0.755289 0.359115 -0.0825505 RAD 0.00617284 - txt002 - SPHERE CENTER 0.753313 0.334511 -0.0818993 RAD 0.00617284 - txt002 - SPHERE CENTER 0.774685 0.345342 -0.0759343 RAD 0.00617284 - txt002 - SPHERE CENTER 0.817421 0.321591 -0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER 0.83071 0.340361 -0.0416443 RAD 0.00617284 - txt002 - SPHERE CENTER 0.840365 0.325527 -0.0588603 RAD 0.00617284 - txt002 - SPHERE CENTER 0.822249 0.341208 -0.0648253 RAD 0.00617284 - txt002 - SPHERE CENTER 0.807766 0.336425 -0.0334138 RAD 0.00617284 - txt002 - SPHERE CENTER 0.799305 0.337272 -0.0565949 RAD 0.00617284 - txt002 - SPHERE CENTER 0.794477 0.317654 -0.0423994 RAD 0.00617284 - txt002 - SPHERE CENTER 0.825882 0.320744 -0.0274488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.812593 0.301973 -0.0364345 RAD 0.00617284 - txt002 - SPHERE CENTER 0.835537 0.30591 -0.0446649 RAD 0.00617284 - txt002 - SPHERE CENTER 0.874487 0.28191 -0.129006 RAD 0.0185185 - txt002 - SPHERE CENTER 0.891539 0.292033 -0.143718 RAD 0.00617284 - txt002 - SPHERE CENTER 0.868678 0.28812 -0.152187 RAD 0.00617284 - txt002 - SPHERE CENTER 0.872763 0.305711 -0.135349 RAD 0.00617284 - txt002 - SPHERE CENTER 0.897348 0.285824 -0.120537 RAD 0.00617284 - txt002 - SPHERE CENTER 0.878572 0.299501 -0.112168 RAD 0.00617284 - txt002 - SPHERE CENTER 0.880296 0.275701 -0.105825 RAD 0.00617284 - txt002 - SPHERE CENTER 0.893263 0.268233 -0.137375 RAD 0.00617284 - txt002 - SPHERE CENTER 0.876212 0.25811 -0.122663 RAD 0.00617284 - txt002 - SPHERE CENTER 0.870402 0.264319 -0.145845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.853061 0.257721 -0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER 0.87538 0.26204 -0.0527151 RAD 0.00617284 - txt002 - SPHERE CENTER 0.87108 0.266856 -0.0765474 RAD 0.00617284 - txt002 - SPHERE CENTER 0.860805 0.280934 -0.0590577 RAD 0.00617284 - txt002 - SPHERE CENTER 0.857361 0.252905 -0.0385197 RAD 0.00617284 - txt002 - SPHERE CENTER 0.842785 0.271799 -0.0448623 RAD 0.00617284 - txt002 - SPHERE CENTER 0.835041 0.248586 -0.0481565 RAD 0.00617284 - txt002 - SPHERE CENTER 0.867636 0.238827 -0.0560094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.845317 0.234508 -0.0656463 RAD 0.00617284 - txt002 - SPHERE CENTER 0.863337 0.243643 -0.0798417 RAD 0.00617284 - txt002 - SPHERE CENTER 0.838248 0.217602 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.860225 0.206363 -0.122182 RAD 0.00617284 - txt002 - SPHERE CENTER 0.858689 0.230102 -0.128798 RAD 0.00617284 - txt002 - SPHERE CENTER 0.854636 0.223536 -0.105343 RAD 0.00617284 - txt002 - SPHERE CENTER 0.839784 0.193863 -0.116217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.834196 0.211035 -0.0993785 RAD 0.00617284 - txt002 - SPHERE CENTER 0.817808 0.205101 -0.116868 RAD 0.00617284 - txt002 - SPHERE CENTER 0.843837 0.200429 -0.139672 RAD 0.00617284 - txt002 - SPHERE CENTER 0.821861 0.211667 -0.140323 RAD 0.00617284 - txt002 - SPHERE CENTER 0.842301 0.224168 -0.146288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.643951 0.172546 -0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER 0.61371 0.202787 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.61556 0.221097 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.621702 0.225035 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.635958 0.210779 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.607567 0.198849 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.627965 0.188531 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER 0.605717 0.180539 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.593312 0.213105 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER 0.591462 0.194794 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.599454 0.217042 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER 0.5724 0.191718 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.556122 0.208861 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.575596 0.203643 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.578791 0.215568 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.552927 0.196936 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER 0.575596 0.203643 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.569205 0.179793 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.549732 0.185011 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.56601 0.167868 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.569205 0.179793 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.624779 0.244096 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.631486 0.266765 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.648629 0.250487 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.636704 0.247291 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.607636 0.260374 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.612854 0.240901 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.600929 0.237705 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.619561 0.26357 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.612854 0.240901 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.636704 0.247291 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.68526 0.183615 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.684921 0.190903 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.665787 0.178397 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669989 0.201661 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.704395 0.196121 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER 0.689462 0.206879 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.704733 0.188833 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER 0.700193 0.172858 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.700531 0.165569 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.681058 0.160351 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.696329 0.224924 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.710584 0.23918 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER 0.705059 0.216195 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.687599 0.233654 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.701855 0.24791 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.678869 0.242384 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.687599 0.233654 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.719314 0.23045 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.705059 0.216195 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.713788 0.207465 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.715501 0.153374 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.738169 0.160081 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.718696 0.165299 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.721891 0.177224 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.734974 0.148156 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.718696 0.165299 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.712305 0.141449 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.731779 0.136231 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.70911 0.129524 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.712305 0.141449 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.632882 0.131237 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.634145 0.108412 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER 0.650927 0.115965 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.627664 0.111763 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER 0.616099 0.123683 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.609618 0.127034 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.614836 0.146508 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.639363 0.127886 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.6381 0.15071 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER 0.656145 0.135439 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.663122 0.100996 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.680265 0.0847178 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.686972 0.107387 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.675047 0.104191 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.656415 0.0783272 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.651197 0.0978007 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.639272 0.0946054 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.66834 0.0815225 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER 0.651197 0.0978007 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.675047 0.104191 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.591572 0.120168 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.577317 0.105912 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.600302 0.111438 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.582843 0.128897 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.568587 0.114642 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.574113 0.137627 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.582843 0.128897 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.586046 0.0971825 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.600302 0.111438 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.609032 0.102708 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.594141 0.358439 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.619127 0.408291 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.625955 0.411883 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.630791 0.390369 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.607547 0.396287 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.61429 0.429805 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.595882 0.414208 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER 0.607462 0.426212 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.637535 0.423887 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.630706 0.420295 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.642371 0.402373 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.665691 0.37761 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.68332 0.389713 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.665691 0.37761 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.660156 0.398265 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.68332 0.389713 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.660156 0.398265 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.665691 0.37761 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.688854 0.369058 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.671225 0.356956 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.671225 0.356956 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.638217 0.337042 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.652948 0.344865 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.632683 0.357697 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.651954 0.357326 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.658482 0.324211 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.657489 0.336672 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.643752 0.316388 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.639211 0.324581 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER 0.624481 0.316758 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.618946 0.337413 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.547576 0.389119 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.541008 0.410169 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.548718 0.410472 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.564748 0.405866 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER 0.539866 0.388816 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.563607 0.384513 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.546435 0.367766 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.523836 0.393422 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.530405 0.372372 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.531546 0.393725 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.566667 0.317871 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.555534 0.296626 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.572202 0.297216 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.550163 0.307914 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.549999 0.31728 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.544629 0.328569 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.561133 0.338525 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.572037 0.306582 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER 0.583171 0.327827 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.588706 0.307172 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.522591 0.339267 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.501272 0.340934 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.522591 0.339267 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.517056 0.359921 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.501272 0.340934 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.517056 0.359921 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.522591 0.339267 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.506807 0.320279 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.528125 0.318612 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.528125 0.318612 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.57505 0.429687 -0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER 0.58161 0.452905 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.5989 0.436077 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.586467 0.434777 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.55776 0.446515 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.562617 0.428387 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.5512 0.423296 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.570193 0.447815 -0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER 0.563633 0.424596 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.587483 0.430987 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.550064 0.379835 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.547099 0.396248 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.569716 0.388263 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.557504 0.403175 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.527447 0.387819 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.537852 0.394747 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.530412 0.371406 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.539659 0.372907 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.542624 0.356494 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.562276 0.364922 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.621614 0.399007 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.637209 0.41723 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.642848 0.401533 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.624734 0.418027 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.615976 0.414703 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.603501 0.4155 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.600381 0.39648 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.634089 0.39821 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.618494 0.379986 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.639728 0.382513 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.802608 0.281471 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.858698 0.329459 0.104938 RAD 0.0185185 - txt002 - SPHERE CENTER 0.872345 0.34259 0.0890951 RAD 0.00617284 - txt002 - SPHERE CENTER 0.86421 0.32016 0.0827387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.848329 0.338969 0.0846485 RAD 0.00617284 - txt002 - SPHERE CENTER 0.866833 0.351888 0.111295 RAD 0.00617284 - txt002 - SPHERE CENTER 0.842817 0.348268 0.106848 RAD 0.00617284 - txt002 - SPHERE CENTER 0.853186 0.338757 0.127138 RAD 0.00617284 - txt002 - SPHERE CENTER 0.882715 0.333079 0.109385 RAD 0.00617284 - txt002 - SPHERE CENTER 0.869068 0.319948 0.125228 RAD 0.00617284 - txt002 - SPHERE CENTER 0.87458 0.310649 0.103028 RAD 0.00617284 - txt002 - SPHERE CENTER 0.845371 0.280879 0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER 0.849036 0.291048 0.0284303 RAD 0.00617284 - txt002 - SPHERE CENTER 0.826067 0.287867 0.0369125 RAD 0.00617284 - txt002 - SPHERE CENTER 0.840755 0.304882 0.0471312 RAD 0.00617284 - txt002 - SPHERE CENTER 0.868341 0.28406 0.0421477 RAD 0.00617284 - txt002 - SPHERE CENTER 0.86006 0.297894 0.0608487 RAD 0.00617284 - txt002 - SPHERE CENTER 0.864676 0.273891 0.0643473 RAD 0.00617284 - txt002 - SPHERE CENTER 0.853652 0.267046 0.0319289 RAD 0.00617284 - txt002 - SPHERE CENTER 0.849987 0.256877 0.0541285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.830683 0.263865 0.0404111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.798572 0.337088 0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER 0.808673 0.346884 0.0420622 RAD 0.00617284 - txt002 - SPHERE CENTER 0.82298 0.335792 0.0588533 RAD 0.00617284 - txt002 - SPHERE CENTER 0.807762 0.322361 0.044793 RAD 0.00617284 - txt002 - SPHERE CENTER 0.784265 0.34818 0.0455609 RAD 0.00617284 - txt002 - SPHERE CENTER 0.783355 0.323657 0.0482916 RAD 0.00617284 - txt002 - SPHERE CENTER 0.774164 0.338384 0.0658506 RAD 0.00617284 - txt002 - SPHERE CENTER 0.799483 0.361611 0.0596212 RAD 0.00617284 - txt002 - SPHERE CENTER 0.789382 0.351815 0.079911 RAD 0.00617284 - txt002 - SPHERE CENTER 0.81379 0.350519 0.0764123 RAD 0.00617284 - txt002 - SPHERE CENTER 0.815936 0.330051 0.165419 RAD 0.0185185 - txt002 - SPHERE CENTER 0.828769 0.350165 0.171776 RAD 0.00617284 - txt002 - SPHERE CENTER 0.838905 0.333232 0.156937 RAD 0.00617284 - txt002 - SPHERE CENTER 0.820583 0.347547 0.148628 RAD 0.00617284 - txt002 - SPHERE CENTER 0.805799 0.346984 0.180258 RAD 0.00617284 - txt002 - SPHERE CENTER 0.797614 0.344366 0.157111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.792966 0.32687 0.173902 RAD 0.00617284 - txt002 - SPHERE CENTER 0.824121 0.332668 0.188567 RAD 0.00617284 - txt002 - SPHERE CENTER 0.811288 0.312554 0.182211 RAD 0.00617284 - txt002 - SPHERE CENTER 0.834258 0.315735 0.173728 RAD 0.00617284 - txt002 - SPHERE CENTER 0.75581 0.33768 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.753851 0.362219 0.124743 RAD 0.00617284 - txt002 - SPHERE CENTER 0.774086 0.350765 0.133052 RAD 0.00617284 - txt002 - SPHERE CENTER 0.76987 0.352319 0.108773 RAD 0.00617284 - txt002 - SPHERE CENTER 0.735575 0.349134 0.114524 RAD 0.00617284 - txt002 - SPHERE CENTER 0.751594 0.339233 0.0985541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.737534 0.324595 0.112614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.739791 0.347581 0.138803 RAD 0.00617284 - txt002 - SPHERE CENTER 0.74175 0.323042 0.136894 RAD 0.00617284 - txt002 - SPHERE CENTER 0.760026 0.336127 0.147112 RAD 0.00617284 - txt002 - SPHERE CENTER 0.759846 0.282063 0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER 0.756464 0.29233 0.193792 RAD 0.00617284 - txt002 - SPHERE CENTER 0.779336 0.288514 0.18531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.765125 0.305929 0.175091 RAD 0.00617284 - txt002 - SPHERE CENTER 0.736973 0.285879 0.180075 RAD 0.00617284 - txt002 - SPHERE CENTER 0.745634 0.299478 0.161374 RAD 0.00617284 - txt002 - SPHERE CENTER 0.740355 0.275612 0.157875 RAD 0.00617284 - txt002 - SPHERE CENTER 0.751185 0.268464 0.190293 RAD 0.00617284 - txt002 - SPHERE CENTER 0.754567 0.258198 0.168094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.774058 0.264649 0.181811 RAD 0.00617284 - txt002 - SPHERE CENTER 0.862735 0.273842 0.153697 RAD 0.0185185 - txt002 - SPHERE CENTER 0.885497 0.282313 0.158144 RAD 0.00617284 - txt002 - SPHERE CENTER 0.876946 0.281455 0.134996 RAD 0.00617284 - txt002 - SPHERE CENTER 0.867718 0.29787 0.150967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.871286 0.274699 0.176845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.853506 0.290257 0.169668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.848523 0.266228 0.172398 RAD 0.00617284 - txt002 - SPHERE CENTER 0.880514 0.258284 0.160875 RAD 0.00617284 - txt002 - SPHERE CENTER 0.857752 0.249813 0.156428 RAD 0.00617284 - txt002 - SPHERE CENTER 0.871963 0.257427 0.137727 RAD 0.00617284 - txt002 - SPHERE CENTER 0.806645 0.225855 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.818054 0.21762 0.18016 RAD 0.00617284 - txt002 - SPHERE CENTER 0.83061 0.230661 0.163369 RAD 0.00617284 - txt002 - SPHERE CENTER 0.813612 0.241754 0.177429 RAD 0.00617284 - txt002 - SPHERE CENTER 0.794089 0.212813 0.176661 RAD 0.00617284 - txt002 - SPHERE CENTER 0.789647 0.236948 0.173931 RAD 0.00617284 - txt002 - SPHERE CENTER 0.78268 0.221048 0.156372 RAD 0.00617284 - txt002 - SPHERE CENTER 0.811087 0.20172 0.162601 RAD 0.00617284 - txt002 - SPHERE CENTER 0.799677 0.209955 0.142311 RAD 0.00617284 - txt002 - SPHERE CENTER 0.823642 0.214761 0.14581 RAD 0.00617284 - txt002 - SPHERE CENTER 0.849407 0.225263 0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.873186 0.21889 0.0974792 RAD 0.00617284 - txt002 - SPHERE CENTER 0.865588 0.240865 0.0891702 RAD 0.00617284 - txt002 - SPHERE CENTER 0.866351 0.236437 0.113449 RAD 0.00617284 - txt002 - SPHERE CENTER 0.857005 0.203288 0.107698 RAD 0.00617284 - txt002 - SPHERE CENTER 0.850171 0.220835 0.123668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.833227 0.20966 0.109608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.856242 0.207715 0.0834188 RAD 0.00617284 - txt002 - SPHERE CENTER 0.832464 0.214088 0.0853287 RAD 0.00617284 - txt002 - SPHERE CENTER 0.848644 0.22969 0.0751099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.594141 0.358439 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.613592 0.428945 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.626191 0.448155 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.634643 0.42519 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.614455 0.43276 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER 0.60514 0.45191 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.593404 0.436515 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.592541 0.4327 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.625328 0.44434 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.612729 0.42513 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.63378 0.421375 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.665691 0.37761 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.68332 0.389713 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.665691 0.37761 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.660156 0.398265 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.68332 0.389713 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.660156 0.398265 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.665691 0.37761 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.688854 0.369058 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.671225 0.356956 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.671225 0.356956 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.621614 0.399007 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.625435 0.399844 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.627149 0.378352 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.60511 0.38905 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.619901 0.420499 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.599576 0.409705 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.61608 0.419661 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.641939 0.409801 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.638118 0.408963 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.643653 0.388308 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.542042 0.409774 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.53788 0.433888 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.558395 0.423551 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.55574 0.426423 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.521526 0.42011 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.539387 0.412646 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER 0.525689 0.395996 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.524182 0.417238 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.528344 0.393124 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.544697 0.406901 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.550064 0.379835 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.540802 0.399304 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.54453 0.400489 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.563801 0.400119 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.546337 0.37865 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.569335 0.379464 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.555599 0.35918 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.527065 0.37902 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.536327 0.359551 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.530793 0.380205 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.522591 0.339267 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.501272 0.340934 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.522591 0.339267 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.517056 0.359921 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.501272 0.340934 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.517056 0.359921 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.522591 0.339267 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.506807 0.320279 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.528125 0.318612 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.528125 0.318612 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.586119 0.388377 0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.594185 0.405974 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.609969 0.394768 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.593017 0.410332 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.570335 0.399584 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.569167 0.403942 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.562269 0.381987 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.587286 0.384019 0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.57922 0.366422 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.60307 0.372813 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.566667 0.317871 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.567308 0.314012 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER 0.587901 0.320398 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.569787 0.336891 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.546074 0.311485 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.548554 0.334364 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.545434 0.315344 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.564188 0.294991 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.563547 0.29885 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.584781 0.301377 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.638217 0.337042 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.659244 0.341809 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.65787 0.345471 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.645657 0.360383 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.639592 0.33338 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER 0.626005 0.351955 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.618565 0.328614 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.651804 0.318468 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.630777 0.313702 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.65043 0.32213 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.643951 0.172546 0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER 0.674191 0.202787 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.690652 0.219248 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER 0.695267 0.206403 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.677807 0.223862 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669577 0.215632 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.656732 0.220246 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.653116 0.199171 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.687036 0.198172 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.670575 0.181711 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.691651 0.185327 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.715501 0.191718 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.733129 0.203821 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.715501 0.191718 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.709966 0.212373 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.733129 0.203821 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.709966 0.212373 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.715501 0.191718 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.738664 0.183166 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.721035 0.171063 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.721035 0.171063 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.663122 0.244096 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.675225 0.261725 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.683777 0.238562 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.663122 0.244096 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.65457 0.267259 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.642468 0.249631 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.642468 0.249631 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.675225 0.261725 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.663122 0.244096 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.683777 0.238562 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.602641 0.183615 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.600215 0.197046 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.622701 0.191021 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.609032 0.207465 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.580155 0.18964 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER 0.588972 0.200059 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.582581 0.176209 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.593824 0.173196 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.596251 0.159765 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.61631 0.167171 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.591572 0.224924 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.587397 0.24926 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.606693 0.240045 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.606693 0.240045 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.572277 0.23414 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.591572 0.224924 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.576452 0.209804 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.572277 0.23414 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.576452 0.209804 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.591572 0.224924 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.5724 0.153374 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.551082 0.155041 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.5724 0.153374 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.566866 0.174029 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.551082 0.155041 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.566866 0.174029 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.5724 0.153374 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.556617 0.134387 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.577935 0.13272 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.577935 0.13272 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.655019 0.131237 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.668451 0.12881 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.678869 0.137627 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.662426 0.151296 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.644601 0.12242 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.638576 0.144906 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.631169 0.124846 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.661044 0.108751 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER 0.647613 0.111177 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.671463 0.117567 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.624779 0.100996 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.626446 0.0796777 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.645433 0.0954616 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.624779 0.100996 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.605791 0.0852121 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.604124 0.10653 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.604124 0.10653 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.626446 0.0796777 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.624779 0.100996 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.645433 0.0954616 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.696329 0.120168 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.720665 0.115992 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.711449 0.135288 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.711449 0.135288 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.705544 0.100872 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.696329 0.120168 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.681209 0.105047 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.705544 0.100872 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.681209 0.105047 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.696329 0.120168 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.852418 0.0955788 1.89979e-16 RAD 0.0555556 - txt002 - SPHERE CENTER 0.922609 0.11107 -0.0178949 RAD 0.0185185 - txt002 - SPHERE CENTER 0.937225 0.122151 -0.0344251 RAD 0.00617284 - txt002 - SPHERE CENTER 0.916553 0.11086 -0.0418311 RAD 0.00617284 - txt002 - SPHERE CENTER 0.915202 0.131874 -0.0289382 RAD 0.00617284 - txt002 - SPHERE CENTER 0.943281 0.12236 -0.0104889 RAD 0.00617284 - txt002 - SPHERE CENTER 0.921258 0.132084 -0.00500196 RAD 0.00617284 - txt002 - SPHERE CENTER 0.928665 0.111279 0.00604126 RAD 0.00617284 - txt002 - SPHERE CENTER 0.944632 0.101346 -0.0233819 RAD 0.00617284 - txt002 - SPHERE CENTER 0.930016 0.0902645 -0.00685171 RAD 0.00617284 - txt002 - SPHERE CENTER 0.92396 0.090055 -0.0307879 RAD 0.00617284 - txt002 - SPHERE CENTER 0.867231 0.135698 -0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER 0.873196 0.134634 -0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER 0.882112 0.117797 -0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER 0.858152 0.11765 -0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER 0.858315 0.152536 -0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER 0.843271 0.135552 -0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.852349 0.1536 -0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER 0.882275 0.152682 -0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.876309 0.153747 -0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER 0.89119 0.135845 -0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER 0.877966 0.164775 0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER 0.890926 0.182656 -0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER 0.897331 0.159019 -0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER 0.876622 0.167676 -0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER 0.871561 0.188412 0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER 0.857256 0.173431 -0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.8586 0.17053 0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER 0.89227 0.179755 0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER 0.87931 0.161874 0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.898675 0.156118 0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.907797 0.0709499 0.0425863 RAD 0.0185185 - txt002 - SPHERE CENTER 0.930963 0.0752104 0.0499923 RAD 0.00617284 - txt002 - SPHERE CENTER 0.924191 0.0806562 0.0268805 RAD 0.00617284 - txt002 - SPHERE CENTER 0.915684 0.0941344 0.0457385 RAD 0.00617284 - txt002 - SPHERE CENTER 0.914568 0.0655041 0.065698 RAD 0.00617284 - txt002 - SPHERE CENTER 0.899289 0.0844281 0.0614442 RAD 0.00617284 - txt002 - SPHERE CENTER 0.891402 0.0612436 0.058292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.923076 0.0520258 0.0468401 RAD 0.00617284 - txt002 - SPHERE CENTER 0.89991 0.0477654 0.0394341 RAD 0.00617284 - txt002 - SPHERE CENTER 0.916304 0.0574717 0.0237283 RAD 0.00617284 - txt002 - SPHERE CENTER 0.863153 0.124655 0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER 0.875744 0.141535 0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER 0.88655 0.129819 0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.868763 0.146389 0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER 0.852347 0.136371 0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER 0.845366 0.141225 0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER 0.839756 0.119492 0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER 0.870135 0.119801 0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER 0.857544 0.102922 0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER 0.880941 0.108085 0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER 0.837606 0.0554592 0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER 0.842832 0.0523913 0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER 0.86055 0.0593957 0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER 0.842434 0.0750766 0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER 0.819888 0.0484547 0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER 0.81949 0.07114 0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.814662 0.0515226 0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER 0.838004 0.0327739 0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.832778 0.0358417 0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER 0.855722 0.0397783 0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER 0.897062 0.0418734 -0.0246914 RAD 0.0185185 - txt002 - SPHERE CENTER 0.920407 0.0359958 -0.0301783 RAD 0.00617284 - txt002 - SPHERE CENTER 0.912106 0.0588574 -0.0344321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.915603 0.0511067 -0.0112511 RAD 0.00617284 - txt002 - SPHERE CENTER 0.905363 0.0190117 -0.0204376 RAD 0.00617284 - txt002 - SPHERE CENTER 0.900559 0.0341227 -0.00151032 RAD 0.00617284 - txt002 - SPHERE CENTER 0.882018 0.0248894 -0.0149506 RAD 0.00617284 - txt002 - SPHERE CENTER 0.901866 0.0267625 -0.0436186 RAD 0.00617284 - txt002 - SPHERE CENTER 0.878521 0.0326401 -0.0381316 RAD 0.00617284 - txt002 - SPHERE CENTER 0.893565 0.0496241 -0.0478724 RAD 0.00617284 - txt002 - SPHERE CENTER 0.826871 0.0263827 -0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER 0.825102 0.00436945 0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER 0.84533 0.018173 0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER 0.823964 0.025051 0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER 0.806642 0.0125791 -0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER 0.805505 0.0332607 0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.808411 0.0345923 -0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER 0.828008 0.00570109 -0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER 0.829777 0.0277143 -0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.848237 0.0195047 -0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.841683 0.0665023 -0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER 0.840284 0.0454909 -0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER 0.856111 0.0473735 -0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.831823 0.0463379 -0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER 0.825856 0.0646197 -0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER 0.817395 0.0654667 -0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER 0.827255 0.0856311 -0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER 0.850144 0.0656554 -0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER 0.851543 0.0866667 -0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER 0.865971 0.0675379 -0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER 0.69376 -0.0133465 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.740325 -0.0440268 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.762259 -0.0417568 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.759495 -0.0345526 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.748937 -0.0216407 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER 0.743089 -0.051231 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.729767 -0.0311149 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.721155 -0.053501 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.753646 -0.0641429 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.731712 -0.0664129 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.750882 -0.0569387 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.76531 0.0058253 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.782939 0.0179281 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.76531 0.0058253 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.759776 0.02648 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.782939 0.0179281 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.759776 0.02648 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.76531 0.0058253 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.788473 -0.00272662 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.770845 -0.0148294 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.770845 -0.0148294 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.721234 0.0272215 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.736829 0.0454452 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.742467 0.0297485 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.724354 0.046242 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.715595 0.0429182 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.70312 0.043715 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.7 0.0246945 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.733709 0.0264247 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER 0.718114 0.00820099 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.739347 0.010728 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.668775 -0.0631985 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.669983 -0.0708196 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.690113 -0.0618185 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.671462 -0.0467378 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.648644 -0.0721997 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.650123 -0.0481178 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER 0.647436 -0.0645786 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.667296 -0.0872804 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.666087 -0.0796593 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.687426 -0.0782793 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.649684 0.00804971 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.646718 0.0244627 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669336 0.016478 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.657124 0.0313903 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.627066 0.0160343 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.637471 0.022962 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.630031 -0.000378614 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.639278 0.00112207 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER 0.642244 -0.0152909 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.661896 -0.00686255 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.62221 -0.0325183 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.600892 -0.0308513 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.62221 -0.0325183 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.616676 -0.0118635 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.600892 -0.0308513 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.616676 -0.0118635 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.62221 -0.0325183 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.606426 -0.051506 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.627745 -0.053173 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.627745 -0.053173 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.712851 -0.0845947 0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER 0.730141 -0.101422 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.736701 -0.0782041 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.725284 -0.0832945 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.706291 -0.107813 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.701434 -0.0896851 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.689001 -0.0909853 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.717709 -0.102723 0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER 0.700418 -0.0858949 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.724268 -0.0795043 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.666287 -0.0539145 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.655153 -0.0751594 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.671821 -0.0745692 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.649783 -0.0638711 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.649619 -0.0545047 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.644249 -0.0432164 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.660752 -0.0332597 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.671657 -0.0652028 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.682791 -0.0439578 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.688325 -0.0646126 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.737837 -0.0347427 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.752567 -0.0269197 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.732303 -0.014088 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.751574 -0.0144587 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.758102 -0.0475745 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.757108 -0.0351134 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.743371 -0.0553974 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.73883 -0.0472037 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.7241 -0.0550267 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.718566 -0.0343719 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.69376 -0.0133465 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.745859 -0.0646815 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.770032 -0.0684873 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.759394 -0.0481266 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.762305 -0.0507391 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.756497 -0.0850422 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.74877 -0.067294 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER 0.732325 -0.0812364 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.753586 -0.0824297 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.729413 -0.0786239 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.742948 -0.062069 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.76531 0.0058253 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.782939 0.0179281 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.76531 0.0058253 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.759776 0.02648 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.782939 0.0179281 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.759776 0.02648 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.76531 0.0058253 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.788473 -0.00272662 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.770845 -0.0148294 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.770845 -0.0148294 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.737837 -0.0347427 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.758864 -0.0299763 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.757489 -0.0263144 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.745277 -0.0114021 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.739212 -0.0384047 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.725625 -0.0198304 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.718185 -0.043171 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.751424 -0.0533169 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.730397 -0.0580833 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.750049 -0.0496549 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.674309 -0.0838533 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.675276 -0.106805 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.694308 -0.091423 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.673094 -0.0875713 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER 0.655278 -0.0992356 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.653095 -0.0800016 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.65431 -0.0762835 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.676491 -0.103087 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.675524 -0.0801352 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.695522 -0.0877049 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.666287 -0.0539145 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.666927 -0.0577732 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.68752 -0.0513875 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669407 -0.034894 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.645694 -0.0603001 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.648173 -0.0374209 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.645053 -0.0564414 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.663807 -0.0767937 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.663167 -0.072935 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.6844 -0.070408 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.62221 -0.0325183 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.600892 -0.0308513 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.62221 -0.0325183 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.616676 -0.0118635 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.600892 -0.0308513 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.616676 -0.0118635 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.62221 -0.0325183 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.606426 -0.051506 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.627745 -0.053173 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.627745 -0.053173 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.701782 -0.0432853 -0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.717566 -0.0544915 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.725632 -0.0368947 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.718734 -0.0588496 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.693716 -0.0608821 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.694884 -0.0652402 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.677932 -0.0496759 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.700615 -0.0389272 -0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.684831 -0.027721 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.708681 -0.0213304 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.649684 0.00804971 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.640422 0.0275193 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.644149 0.0287044 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.66342 0.0283337 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.645956 0.00686453 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER 0.668955 0.00767898 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.655218 -0.012605 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.626685 0.00723527 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.635947 -0.0122343 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.630413 0.00842045 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.721234 0.0272215 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.725055 0.0280589 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER 0.726768 0.00656677 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.70473 0.0172649 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.71952 0.0487136 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.699195 0.0379196 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.715699 0.0478762 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.741558 0.0380155 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.737738 0.0371781 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.743272 0.0165234 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.172546 0.643951 1.11022e-16 RAD 0.166667 - txt002 - SPHERE CENTER 0.281471 0.802608 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.30566 0.824035 -0.177765 RAD 0.0185185 - txt002 - SPHERE CENTER 0.302088 0.822021 -0.202114 RAD 0.00617284 - txt002 - SPHERE CENTER 0.298094 0.802598 -0.187402 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282758 0.821938 -0.186751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.309654 0.843459 -0.192477 RAD 0.00617284 - txt002 - SPHERE CENTER 0.290324 0.843375 -0.177114 RAD 0.00617284 - txt002 - SPHERE CENTER 0.313227 0.845472 -0.168128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.32499 0.824119 -0.193128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.328563 0.826132 -0.16878 RAD 0.00617284 - txt002 - SPHERE CENTER 0.320997 0.804695 -0.178416 RAD 0.00617284 - txt002 - SPHERE CENTER 0.305221 0.752156 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.325175 0.741263 -0.169507 RAD 0.00617284 - txt002 - SPHERE CENTER 0.325981 0.765112 -0.163165 RAD 0.00617284 - txt002 - SPHERE CENTER 0.32493 0.747715 -0.145675 RAD 0.00617284 - txt002 - SPHERE CENTER 0.304415 0.728307 -0.166213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.304171 0.734759 -0.142381 RAD 0.00617284 - txt002 - SPHERE CENTER 0.284462 0.7392 -0.156576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.305466 0.745704 -0.183703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.285513 0.756597 -0.174066 RAD 0.00617284 - txt002 - SPHERE CENTER 0.306272 0.769553 -0.17736 RAD 0.00617284 - txt002 - SPHERE CENTER 0.241352 0.787796 -0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER 0.218449 0.785699 -0.180578 RAD 0.00617284 - txt002 - SPHERE CENTER 0.223304 0.778718 -0.157397 RAD 0.00617284 - txt002 - SPHERE CENTER 0.22345 0.802677 -0.163362 RAD 0.00617284 - txt002 - SPHERE CENTER 0.236497 0.794777 -0.194773 RAD 0.00617284 - txt002 - SPHERE CENTER 0.241498 0.811756 -0.177557 RAD 0.00617284 - txt002 - SPHERE CENTER 0.2594 0.796874 -0.185788 RAD 0.00617284 - txt002 - SPHERE CENTER 0.236351 0.770818 -0.188808 RAD 0.00617284 - txt002 - SPHERE CENTER 0.259253 0.772915 -0.179823 RAD 0.00617284 - txt002 - SPHERE CENTER 0.241205 0.763837 -0.165627 RAD 0.00617284 - txt002 - SPHERE CENTER 0.28191 0.874487 -0.129006 RAD 0.0185185 - txt002 - SPHERE CENTER 0.292033 0.891539 -0.143718 RAD 0.00617284 - txt002 - SPHERE CENTER 0.305711 0.872763 -0.135349 RAD 0.00617284 - txt002 - SPHERE CENTER 0.28812 0.868678 -0.152187 RAD 0.00617284 - txt002 - SPHERE CENTER 0.268233 0.893263 -0.137375 RAD 0.00617284 - txt002 - SPHERE CENTER 0.264319 0.870402 -0.145845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.25811 0.876212 -0.122663 RAD 0.00617284 - txt002 - SPHERE CENTER 0.285824 0.897348 -0.120537 RAD 0.00617284 - txt002 - SPHERE CENTER 0.275701 0.880296 -0.105825 RAD 0.00617284 - txt002 - SPHERE CENTER 0.299501 0.878572 -0.112168 RAD 0.00617284 - txt002 - SPHERE CENTER 0.217602 0.838248 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.206363 0.860225 -0.122182 RAD 0.00617284 - txt002 - SPHERE CENTER 0.223536 0.854636 -0.105343 RAD 0.00617284 - txt002 - SPHERE CENTER 0.230102 0.858689 -0.128798 RAD 0.00617284 - txt002 - SPHERE CENTER 0.200429 0.843837 -0.139672 RAD 0.00617284 - txt002 - SPHERE CENTER 0.224168 0.842301 -0.146288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.211667 0.821861 -0.140323 RAD 0.00617284 - txt002 - SPHERE CENTER 0.193863 0.839784 -0.116217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.205101 0.817808 -0.116868 RAD 0.00617284 - txt002 - SPHERE CENTER 0.211035 0.834196 -0.0993785 RAD 0.00617284 - txt002 - SPHERE CENTER 0.257721 0.853061 -0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER 0.26204 0.87538 -0.0527151 RAD 0.00617284 - txt002 - SPHERE CENTER 0.280934 0.860805 -0.0590577 RAD 0.00617284 - txt002 - SPHERE CENTER 0.266856 0.87108 -0.0765474 RAD 0.00617284 - txt002 - SPHERE CENTER 0.238827 0.867636 -0.0560094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.243643 0.863337 -0.0798417 RAD 0.00617284 - txt002 - SPHERE CENTER 0.234508 0.845317 -0.0656463 RAD 0.00617284 - txt002 - SPHERE CENTER 0.252905 0.857361 -0.0385197 RAD 0.00617284 - txt002 - SPHERE CENTER 0.248586 0.835041 -0.0481565 RAD 0.00617284 - txt002 - SPHERE CENTER 0.271799 0.842785 -0.0448623 RAD 0.00617284 - txt002 - SPHERE CENTER 0.34578 0.838847 -0.117284 RAD 0.0185185 - txt002 - SPHERE CENTER 0.360404 0.851488 -0.132647 RAD 0.00617284 - txt002 - SPHERE CENTER 0.347059 0.832518 -0.141116 RAD 0.00617284 - txt002 - SPHERE CENTER 0.335865 0.853509 -0.1345 RAD 0.00617284 - txt002 - SPHERE CENTER 0.359125 0.857816 -0.108814 RAD 0.00617284 - txt002 - SPHERE CENTER 0.334587 0.859838 -0.110668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.344501 0.845176 -0.0934517 RAD 0.00617284 - txt002 - SPHERE CENTER 0.370319 0.836826 -0.115431 RAD 0.00617284 - txt002 - SPHERE CENTER 0.355695 0.824185 -0.100068 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356973 0.817857 -0.1239 RAD 0.00617284 - txt002 - SPHERE CENTER 0.321591 0.817421 -0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER 0.340361 0.83071 -0.0416443 RAD 0.00617284 - txt002 - SPHERE CENTER 0.341208 0.822249 -0.0648253 RAD 0.00617284 - txt002 - SPHERE CENTER 0.325527 0.840365 -0.0588603 RAD 0.00617284 - txt002 - SPHERE CENTER 0.320744 0.825882 -0.0274488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.30591 0.835537 -0.0446649 RAD 0.00617284 - txt002 - SPHERE CENTER 0.301973 0.812593 -0.0364345 RAD 0.00617284 - txt002 - SPHERE CENTER 0.336425 0.807766 -0.0334138 RAD 0.00617284 - txt002 - SPHERE CENTER 0.317654 0.794477 -0.0423994 RAD 0.00617284 - txt002 - SPHERE CENTER 0.337272 0.799305 -0.0565949 RAD 0.00617284 - txt002 - SPHERE CENTER 0.345341 0.766968 -0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.369945 0.768944 -0.10004 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356171 0.780624 -0.116879 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356172 0.788341 -0.093424 RAD 0.00617284 - txt002 - SPHERE CENTER 0.359115 0.755289 -0.0825505 RAD 0.00617284 - txt002 - SPHERE CENTER 0.345342 0.774685 -0.0759343 RAD 0.00617284 - txt002 - SPHERE CENTER 0.334511 0.753313 -0.0818993 RAD 0.00617284 - txt002 - SPHERE CENTER 0.359113 0.747572 -0.106005 RAD 0.00617284 - txt002 - SPHERE CENTER 0.33451 0.745596 -0.105354 RAD 0.00617284 - txt002 - SPHERE CENTER 0.34534 0.759252 -0.122844 RAD 0.00617284 - txt002 - SPHERE CENTER 0.358439 0.594141 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.408291 0.619127 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.411883 0.625955 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.396287 0.607547 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.390369 0.630791 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.423887 0.637535 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.402373 0.642371 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.420295 0.630706 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.429805 0.61429 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.426212 0.607462 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.414208 0.595882 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER 0.337042 0.638217 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.344865 0.652948 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.357326 0.651954 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.357697 0.632683 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.324581 0.639211 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER 0.337413 0.618946 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.316758 0.624481 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.324211 0.658482 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.316388 0.643752 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.336672 0.657489 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37761 0.665691 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.389713 0.68332 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.398265 0.660156 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37761 0.665691 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.369058 0.688854 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356956 0.671225 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356956 0.671225 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.389713 0.68332 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37761 0.665691 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.398265 0.660156 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.429687 0.57505 -0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER 0.452905 0.58161 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.434777 0.586467 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.436077 0.5989 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.447815 0.570193 -0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER 0.430987 0.587483 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.424596 0.563633 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.446515 0.55776 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.423296 0.5512 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.428387 0.562617 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399007 0.621614 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.41723 0.637209 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.418027 0.624734 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.401533 0.642848 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.39821 0.634089 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.382513 0.639728 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.379986 0.618494 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.414703 0.615976 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.39648 0.600381 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.4155 0.603501 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.379835 0.550064 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.396248 0.547099 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.403175 0.557504 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.388263 0.569716 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.372907 0.539659 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.364922 0.562276 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356494 0.542624 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.387819 0.527447 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.371406 0.530412 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.394747 0.537852 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.389119 0.547576 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.410169 0.541008 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.405866 0.564748 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER 0.410472 0.548718 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.393422 0.523836 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.393725 0.531546 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.372372 0.530405 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.388816 0.539866 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.367766 0.546435 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.384513 0.563607 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.339267 0.522591 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.340934 0.501272 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.359921 0.517056 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.339267 0.522591 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.320279 0.506807 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.318612 0.528125 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.318612 0.528125 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.340934 0.501272 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.339267 0.522591 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.359921 0.517056 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.317871 0.566667 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.296626 0.555534 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.307914 0.550163 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.297216 0.572202 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.306582 0.572037 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER 0.307172 0.588706 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.327827 0.583171 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.31728 0.549999 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.338525 0.561133 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.328569 0.544629 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.172546 0.643951 -0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER 0.142305 0.674191 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.144155 0.692502 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.150298 0.696439 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.164554 0.682184 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.136163 0.670254 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.156561 0.659936 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER 0.134313 0.651943 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.121907 0.684509 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER 0.120057 0.666199 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.12805 0.688447 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER 0.100996 0.663122 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0847178 0.680265 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.104191 0.675047 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.107387 0.686972 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0815225 0.66834 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER 0.104191 0.675047 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0978007 0.651197 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0783272 0.656415 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0946054 0.639272 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0978007 0.651197 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.153374 0.715501 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.160081 0.738169 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.177224 0.721891 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.165299 0.718696 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.136231 0.731779 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.141449 0.712305 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.129524 0.70911 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.148156 0.734974 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.141449 0.712305 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.165299 0.718696 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.213855 0.655019 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.213517 0.662308 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.194382 0.649801 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER 0.198584 0.673065 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.23299 0.667526 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER 0.218058 0.678283 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.233329 0.660237 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER 0.228788 0.644262 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.229127 0.636974 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.209653 0.631756 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.224924 0.696329 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.23918 0.710584 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER 0.233654 0.687599 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.216195 0.705059 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.23045 0.719314 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.207465 0.713788 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.216195 0.705059 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.24791 0.701855 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.233654 0.687599 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.242384 0.678869 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.244096 0.624779 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.266765 0.631486 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.247291 0.636704 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.250487 0.648629 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.26357 0.619561 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.247291 0.636704 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.240901 0.612854 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.260374 0.607636 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.237705 0.600929 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.240901 0.612854 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.161477 0.602641 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.162741 0.579817 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER 0.179523 0.58737 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.156259 0.583168 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER 0.144695 0.595088 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.138214 0.598439 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.143431 0.617912 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.167958 0.59929 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.166695 0.622115 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER 0.184741 0.606843 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.191718 0.5724 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.208861 0.556122 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.215568 0.578791 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.203643 0.575596 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.185011 0.549732 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.179793 0.569205 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.167868 0.56601 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.196936 0.552927 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER 0.179793 0.569205 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.203643 0.575596 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.120168 0.591572 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.105912 0.577317 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.128897 0.582843 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.111438 0.600302 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0971825 0.586046 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.102708 0.609032 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.111438 0.600302 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.114642 0.568587 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.128897 0.582843 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.137627 0.574113 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0955788 0.852418 9.1293e-17 RAD 0.0555556 - txt002 - SPHERE CENTER 0.11107 0.922609 -0.0178949 RAD 0.0185185 - txt002 - SPHERE CENTER 0.122151 0.937225 -0.0344251 RAD 0.00617284 - txt002 - SPHERE CENTER 0.131874 0.915202 -0.0289382 RAD 0.00617284 - txt002 - SPHERE CENTER 0.11086 0.916553 -0.0418311 RAD 0.00617284 - txt002 - SPHERE CENTER 0.101346 0.944632 -0.0233819 RAD 0.00617284 - txt002 - SPHERE CENTER 0.090055 0.92396 -0.0307879 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0902645 0.930016 -0.00685171 RAD 0.00617284 - txt002 - SPHERE CENTER 0.12236 0.943281 -0.0104889 RAD 0.00617284 - txt002 - SPHERE CENTER 0.111279 0.928665 0.00604126 RAD 0.00617284 - txt002 - SPHERE CENTER 0.132084 0.921258 -0.00500196 RAD 0.00617284 - txt002 - SPHERE CENTER 0.164775 0.877966 0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER 0.182656 0.890926 -0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER 0.167676 0.876622 -0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER 0.159019 0.897331 -0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER 0.179755 0.89227 0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER 0.156118 0.898675 0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.161874 0.87931 0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.188412 0.871561 0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER 0.17053 0.8586 0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER 0.173431 0.857256 -0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.135698 0.867231 -0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER 0.134634 0.873196 -0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER 0.11765 0.858152 -0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER 0.117797 0.882112 -0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER 0.152682 0.882275 -0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.135845 0.89119 -0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER 0.153747 0.876309 -0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER 0.152536 0.858315 -0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER 0.1536 0.852349 -0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER 0.135552 0.843271 -0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0418734 0.897062 -0.0246914 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0359958 0.920407 -0.0301783 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0511067 0.915603 -0.0112511 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0588574 0.912106 -0.0344321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0267625 0.901866 -0.0436186 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0496241 0.893565 -0.0478724 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0326401 0.878521 -0.0381316 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0190117 0.905363 -0.0204376 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0248894 0.882018 -0.0149506 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0341227 0.900559 -0.00151032 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0665023 0.841683 -0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0454909 0.840284 -0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0463379 0.831823 -0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0473735 0.856111 -0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0656554 0.850144 -0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0675379 0.865971 -0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0866667 0.851543 -0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0646197 0.825856 -0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0856311 0.827255 -0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0654667 0.817395 -0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0263827 0.826871 -0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER 0.00436945 0.825102 0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER 0.025051 0.823964 0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER 0.018173 0.84533 0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00570109 0.828008 -0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0195047 0.848237 -0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0277143 0.829777 -0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0125791 0.806642 -0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0345923 0.808411 -0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0332607 0.805505 0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0709499 0.907797 0.0425863 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0752104 0.930963 0.0499923 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0941344 0.915684 0.0457385 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0806562 0.924191 0.0268805 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0520258 0.923076 0.0468401 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0574717 0.916304 0.0237283 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0477654 0.89991 0.0394341 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0655041 0.914568 0.065698 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0612436 0.891402 0.058292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0844281 0.899289 0.0614442 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0554592 0.837606 0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0523913 0.842832 0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0750766 0.842434 0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0593957 0.86055 0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0327739 0.838004 0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0397783 0.855722 0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0358417 0.832778 0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0484547 0.819888 0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0515226 0.814662 0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER 0.07114 0.81949 0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.124655 0.863153 0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER 0.141535 0.875744 0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER 0.146389 0.868763 0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER 0.129819 0.88655 0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.119801 0.870135 0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER 0.108085 0.880941 0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER 0.102922 0.857544 0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER 0.136371 0.852347 0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER 0.119492 0.839756 0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER 0.141225 0.845366 0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0133465 0.69376 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.0646815 0.745859 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0684873 0.770032 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0507391 0.762305 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0481266 0.759394 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0824297 0.753586 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.062069 0.742948 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0786239 0.729413 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0850422 0.756497 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0812364 0.732325 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.067294 0.74877 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0347427 0.737837 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0299763 0.758864 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0114021 0.745277 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0263144 0.757489 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0533169 0.751424 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0496549 0.750049 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0580833 0.730397 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0384047 0.739212 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.043171 0.718185 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0198304 0.725625 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0058253 0.76531 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0179281 0.782939 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.02648 0.759776 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0058253 0.76531 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00272662 0.788473 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0148294 0.770845 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0148294 0.770845 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0179281 0.782939 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0058253 0.76531 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.02648 0.759776 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0432853 0.701782 -0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0544915 0.717566 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0588496 0.718734 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0368947 0.725632 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0389272 0.700615 -0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0213304 0.708681 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.027721 0.684831 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0608821 0.693716 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0496759 0.677932 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0652402 0.694884 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0272215 0.721234 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0280589 0.725055 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0172649 0.70473 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00656677 0.726768 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0380155 0.741558 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0165234 0.743272 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0371781 0.737738 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0487136 0.71952 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0478762 0.715699 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0379196 0.699195 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00804971 0.649684 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0275193 0.640422 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0283337 0.66342 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0287044 0.644149 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00723527 0.626685 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00842045 0.630413 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0122343 0.635947 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00686453 0.645956 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.012605 0.655218 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00767898 0.668955 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0838533 0.674309 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.106805 0.675276 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0875713 0.673094 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.091423 0.694308 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.103087 0.676491 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0877049 0.695522 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0801352 0.675524 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0992356 0.655278 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0762835 0.65431 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0800016 0.653095 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0325183 0.62221 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0308513 0.600892 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0118635 0.616676 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0325183 0.62221 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.051506 0.606426 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.053173 0.627745 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.053173 0.627745 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0308513 0.600892 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0325183 0.62221 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0118635 0.616676 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0539145 0.666287 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0577732 0.666927 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.034894 0.669407 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0513875 0.68752 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0767937 0.663807 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.070408 0.6844 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.072935 0.663167 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0603001 0.645694 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0564414 0.645053 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0374209 0.648173 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0133465 0.69376 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.0440268 0.740325 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0417568 0.762259 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0216407 0.748937 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0345526 0.759495 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0641429 0.753646 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0569387 0.750882 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0664129 0.731712 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.051231 0.743089 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.053501 0.721155 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0311149 0.729767 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0272215 0.721234 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0454452 0.736829 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.046242 0.724354 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0297485 0.742467 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0264247 0.733709 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER 0.010728 0.739347 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00820099 0.718114 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0429182 0.715595 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0246945 0.7 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.043715 0.70312 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0058253 0.76531 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0179281 0.782939 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.02648 0.759776 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0058253 0.76531 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00272662 0.788473 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0148294 0.770845 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0148294 0.770845 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0179281 0.782939 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0058253 0.76531 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.02648 0.759776 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0845947 0.712851 0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER -0.101422 0.730141 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0832945 0.725284 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0782041 0.736701 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.102723 0.717709 0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0795043 0.724268 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0858949 0.700418 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.107813 0.706291 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0909853 0.689001 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0896851 0.701434 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0347427 0.737837 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0269197 0.752567 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0144587 0.751574 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.014088 0.732303 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0472037 0.73883 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0343719 0.718566 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0550267 0.7241 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0475745 0.758102 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0553974 0.743371 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0351134 0.757108 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0539145 0.666287 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0751594 0.655153 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0638711 0.649783 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0745692 0.671821 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0652028 0.671657 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0646126 0.688325 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0439578 0.682791 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0545047 0.649619 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0332597 0.660752 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0432164 0.644249 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0631985 0.668775 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0708196 0.669983 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0467378 0.671462 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0618185 0.690113 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0872804 0.667296 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0782793 0.687426 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0796593 0.666087 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0721997 0.648644 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0645786 0.647436 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0481178 0.650123 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0325183 0.62221 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0308513 0.600892 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0118635 0.616676 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0325183 0.62221 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.051506 0.606426 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.053173 0.627745 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.053173 0.627745 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0308513 0.600892 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0325183 0.62221 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0118635 0.616676 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00804971 0.649684 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0244627 0.646718 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0313903 0.657124 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.016478 0.669336 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00112207 0.639278 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00686255 0.661896 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0152909 0.642244 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0160343 0.627066 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.000378614 0.630031 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.022962 0.637471 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.281471 0.802608 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.329459 0.858698 0.104938 RAD 0.0185185 - txt002 - SPHERE CENTER 0.34259 0.872345 0.0890951 RAD 0.00617284 - txt002 - SPHERE CENTER 0.338969 0.848329 0.0846485 RAD 0.00617284 - txt002 - SPHERE CENTER 0.32016 0.86421 0.0827387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.333079 0.882715 0.109385 RAD 0.00617284 - txt002 - SPHERE CENTER 0.310649 0.87458 0.103028 RAD 0.00617284 - txt002 - SPHERE CENTER 0.319948 0.869068 0.125228 RAD 0.00617284 - txt002 - SPHERE CENTER 0.351888 0.866833 0.111295 RAD 0.00617284 - txt002 - SPHERE CENTER 0.338757 0.853186 0.127138 RAD 0.00617284 - txt002 - SPHERE CENTER 0.348268 0.842817 0.106848 RAD 0.00617284 - txt002 - SPHERE CENTER 0.337088 0.798572 0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER 0.346884 0.808673 0.0420622 RAD 0.00617284 - txt002 - SPHERE CENTER 0.322361 0.807762 0.044793 RAD 0.00617284 - txt002 - SPHERE CENTER 0.335792 0.82298 0.0588533 RAD 0.00617284 - txt002 - SPHERE CENTER 0.361611 0.799483 0.0596212 RAD 0.00617284 - txt002 - SPHERE CENTER 0.350519 0.81379 0.0764123 RAD 0.00617284 - txt002 - SPHERE CENTER 0.351815 0.789382 0.079911 RAD 0.00617284 - txt002 - SPHERE CENTER 0.34818 0.784265 0.0455609 RAD 0.00617284 - txt002 - SPHERE CENTER 0.338384 0.774164 0.0658506 RAD 0.00617284 - txt002 - SPHERE CENTER 0.323657 0.783355 0.0482916 RAD 0.00617284 - txt002 - SPHERE CENTER 0.280879 0.845371 0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER 0.291048 0.849036 0.0284303 RAD 0.00617284 - txt002 - SPHERE CENTER 0.304882 0.840755 0.0471312 RAD 0.00617284 - txt002 - SPHERE CENTER 0.287867 0.826067 0.0369125 RAD 0.00617284 - txt002 - SPHERE CENTER 0.267046 0.853652 0.0319289 RAD 0.00617284 - txt002 - SPHERE CENTER 0.263865 0.830683 0.0404111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.256877 0.849987 0.0541285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.28406 0.868341 0.0421477 RAD 0.00617284 - txt002 - SPHERE CENTER 0.273891 0.864676 0.0643473 RAD 0.00617284 - txt002 - SPHERE CENTER 0.297894 0.86006 0.0608487 RAD 0.00617284 - txt002 - SPHERE CENTER 0.273842 0.862735 0.153697 RAD 0.0185185 - txt002 - SPHERE CENTER 0.282313 0.885497 0.158144 RAD 0.00617284 - txt002 - SPHERE CENTER 0.29787 0.867718 0.150967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.281455 0.876946 0.134996 RAD 0.00617284 - txt002 - SPHERE CENTER 0.258284 0.880514 0.160875 RAD 0.00617284 - txt002 - SPHERE CENTER 0.257427 0.871963 0.137727 RAD 0.00617284 - txt002 - SPHERE CENTER 0.249813 0.857752 0.156428 RAD 0.00617284 - txt002 - SPHERE CENTER 0.274699 0.871286 0.176845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.266228 0.848523 0.172398 RAD 0.00617284 - txt002 - SPHERE CENTER 0.290257 0.853506 0.169668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.225263 0.849407 0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.21889 0.873186 0.0974792 RAD 0.00617284 - txt002 - SPHERE CENTER 0.236437 0.866351 0.113449 RAD 0.00617284 - txt002 - SPHERE CENTER 0.240865 0.865588 0.0891702 RAD 0.00617284 - txt002 - SPHERE CENTER 0.207715 0.856242 0.0834188 RAD 0.00617284 - txt002 - SPHERE CENTER 0.22969 0.848644 0.0751099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.214088 0.832464 0.0853287 RAD 0.00617284 - txt002 - SPHERE CENTER 0.203288 0.857005 0.107698 RAD 0.00617284 - txt002 - SPHERE CENTER 0.20966 0.833227 0.109608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.220835 0.850171 0.123668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.225855 0.806645 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.21762 0.818054 0.18016 RAD 0.00617284 - txt002 - SPHERE CENTER 0.241754 0.813612 0.177429 RAD 0.00617284 - txt002 - SPHERE CENTER 0.230661 0.83061 0.163369 RAD 0.00617284 - txt002 - SPHERE CENTER 0.20172 0.811087 0.162601 RAD 0.00617284 - txt002 - SPHERE CENTER 0.214761 0.823642 0.14581 RAD 0.00617284 - txt002 - SPHERE CENTER 0.209955 0.799677 0.142311 RAD 0.00617284 - txt002 - SPHERE CENTER 0.212813 0.794089 0.176661 RAD 0.00617284 - txt002 - SPHERE CENTER 0.221048 0.78268 0.156372 RAD 0.00617284 - txt002 - SPHERE CENTER 0.236948 0.789647 0.173931 RAD 0.00617284 - txt002 - SPHERE CENTER 0.330051 0.815936 0.165419 RAD 0.0185185 - txt002 - SPHERE CENTER 0.350165 0.828769 0.171776 RAD 0.00617284 - txt002 - SPHERE CENTER 0.347547 0.820583 0.148628 RAD 0.00617284 - txt002 - SPHERE CENTER 0.333232 0.838905 0.156937 RAD 0.00617284 - txt002 - SPHERE CENTER 0.332668 0.824121 0.188567 RAD 0.00617284 - txt002 - SPHERE CENTER 0.315735 0.834258 0.173728 RAD 0.00617284 - txt002 - SPHERE CENTER 0.312554 0.811288 0.182211 RAD 0.00617284 - txt002 - SPHERE CENTER 0.346984 0.805799 0.180258 RAD 0.00617284 - txt002 - SPHERE CENTER 0.32687 0.792966 0.173902 RAD 0.00617284 - txt002 - SPHERE CENTER 0.344366 0.797614 0.157111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282063 0.759846 0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER 0.29233 0.756464 0.193792 RAD 0.00617284 - txt002 - SPHERE CENTER 0.305929 0.765125 0.175091 RAD 0.00617284 - txt002 - SPHERE CENTER 0.288514 0.779336 0.18531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.268464 0.751185 0.190293 RAD 0.00617284 - txt002 - SPHERE CENTER 0.264649 0.774058 0.181811 RAD 0.00617284 - txt002 - SPHERE CENTER 0.258198 0.754567 0.168094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.285879 0.736973 0.180075 RAD 0.00617284 - txt002 - SPHERE CENTER 0.275612 0.740355 0.157875 RAD 0.00617284 - txt002 - SPHERE CENTER 0.299478 0.745634 0.161374 RAD 0.00617284 - txt002 - SPHERE CENTER 0.33768 0.75581 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.362219 0.753851 0.124743 RAD 0.00617284 - txt002 - SPHERE CENTER 0.352319 0.76987 0.108773 RAD 0.00617284 - txt002 - SPHERE CENTER 0.350765 0.774086 0.133052 RAD 0.00617284 - txt002 - SPHERE CENTER 0.347581 0.739791 0.138803 RAD 0.00617284 - txt002 - SPHERE CENTER 0.336127 0.760026 0.147112 RAD 0.00617284 - txt002 - SPHERE CENTER 0.323042 0.74175 0.136894 RAD 0.00617284 - txt002 - SPHERE CENTER 0.349134 0.735575 0.114524 RAD 0.00617284 - txt002 - SPHERE CENTER 0.324595 0.737534 0.112614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.339233 0.751594 0.0985541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.172546 0.643951 0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER 0.202787 0.674191 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.219248 0.690652 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER 0.223862 0.677807 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.206403 0.695267 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.198172 0.687036 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.185327 0.691651 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.181711 0.670575 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.215632 0.669577 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.199171 0.653116 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.220246 0.656732 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.244096 0.663122 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.261725 0.675225 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.244096 0.663122 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.238562 0.683777 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.261725 0.675225 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.238562 0.683777 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.244096 0.663122 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.267259 0.65457 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.249631 0.642468 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.249631 0.642468 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.191718 0.715501 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.203821 0.733129 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.212373 0.709966 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.191718 0.715501 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.183166 0.738664 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.171063 0.721035 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.171063 0.721035 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.203821 0.733129 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.191718 0.715501 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.212373 0.709966 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.131237 0.655019 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.12881 0.668451 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.151296 0.662426 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.137627 0.678869 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.108751 0.661044 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER 0.117567 0.671463 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.111177 0.647613 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.12242 0.644601 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.124846 0.631169 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.144906 0.638576 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.120168 0.696329 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.115992 0.720665 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.135288 0.711449 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.135288 0.711449 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.100872 0.705544 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.120168 0.696329 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.105047 0.681209 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.100872 0.705544 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.105047 0.681209 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.120168 0.696329 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.100996 0.624779 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0796777 0.626446 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.100996 0.624779 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0954616 0.645433 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0796777 0.626446 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0954616 0.645433 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.100996 0.624779 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0852121 0.605791 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.10653 0.604124 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.10653 0.604124 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.183615 0.602641 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.197046 0.600215 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.207465 0.609032 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.191021 0.622701 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.173196 0.593824 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.167171 0.61631 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.159765 0.596251 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.18964 0.580155 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER 0.176209 0.582581 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.200059 0.588972 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.153374 0.5724 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.155041 0.551082 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.174029 0.566866 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.153374 0.5724 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.134387 0.556617 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.13272 0.577935 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.13272 0.577935 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.155041 0.551082 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.153374 0.5724 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.174029 0.566866 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.224924 0.591572 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.24926 0.587397 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.240045 0.606693 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.240045 0.606693 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.23414 0.572277 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.224924 0.591572 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.209804 0.576452 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.23414 0.572277 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.209804 0.576452 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.224924 0.591572 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.358439 0.594141 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.428945 0.613592 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.448155 0.626191 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.43276 0.614455 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER 0.42519 0.634643 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.44434 0.625328 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.421375 0.63378 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.42513 0.612729 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.45191 0.60514 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.4327 0.592541 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.436515 0.593404 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399007 0.621614 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.399844 0.625435 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.38905 0.60511 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.378352 0.627149 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.409801 0.641939 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.388308 0.643653 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.408963 0.638118 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.420499 0.619901 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.419661 0.61608 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.409705 0.599576 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37761 0.665691 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.389713 0.68332 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.398265 0.660156 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37761 0.665691 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.369058 0.688854 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356956 0.671225 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356956 0.671225 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.389713 0.68332 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37761 0.665691 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.398265 0.660156 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.388377 0.586119 0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.405974 0.594185 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.410332 0.593017 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.394768 0.609969 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.384019 0.587286 0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.372813 0.60307 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.366422 0.57922 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399584 0.570335 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.381987 0.562269 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.403942 0.569167 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.337042 0.638217 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.341809 0.659244 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.360383 0.645657 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.345471 0.65787 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.318468 0.651804 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.32213 0.65043 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.313702 0.630777 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.33338 0.639592 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER 0.328614 0.618565 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.351955 0.626005 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.317871 0.566667 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.314012 0.567308 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER 0.336891 0.569787 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.320398 0.587901 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.294991 0.564188 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.301377 0.584781 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.29885 0.563547 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.311485 0.546074 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.315344 0.545434 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.334364 0.548554 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.409774 0.542042 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.433888 0.53788 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.426423 0.55574 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.423551 0.558395 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.417238 0.524182 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.406901 0.544697 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.393124 0.528344 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.42011 0.521526 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.395996 0.525689 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.412646 0.539387 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER 0.339267 0.522591 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.340934 0.501272 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.359921 0.517056 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.339267 0.522591 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.320279 0.506807 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.318612 0.528125 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.318612 0.528125 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.340934 0.501272 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.339267 0.522591 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.359921 0.517056 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.379835 0.550064 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.399304 0.540802 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.400119 0.563801 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.400489 0.54453 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37902 0.527065 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.380205 0.530793 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.359551 0.536327 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37865 0.546337 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.35918 0.555599 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.379464 0.569335 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.371785 0.0996195 0.544331 RAD 0.166667 - txt002 - SPHERE CENTER -0.393621 0.220501 0.729516 RAD 0.0555556 - txt002 - SPHERE CENTER -0.368601 0.279642 0.766439 RAD 0.0185185 - txt002 - SPHERE CENTER -0.354293 0.299716 0.765035 RAD 0.00617284 - txt002 - SPHERE CENTER -0.347717 0.279022 0.753281 RAD 0.00617284 - txt002 - SPHERE CENTER -0.366989 0.292196 0.745238 RAD 0.00617284 - txt002 - SPHERE CENTER -0.375177 0.300337 0.778193 RAD 0.00617284 - txt002 - SPHERE CENTER -0.387873 0.292817 0.758396 RAD 0.00617284 - txt002 - SPHERE CENTER -0.389485 0.280263 0.779597 RAD 0.00617284 - txt002 - SPHERE CENTER -0.355904 0.287162 0.786236 RAD 0.00617284 - txt002 - SPHERE CENTER -0.370213 0.267088 0.787639 RAD 0.00617284 - txt002 - SPHERE CENTER -0.349329 0.266468 0.774481 RAD 0.00617284 - txt002 - SPHERE CENTER -0.321889 0.238665 0.726118 RAD 0.0185185 - txt002 - SPHERE CENTER -0.304702 0.250544 0.71296 RAD 0.00617284 - txt002 - SPHERE CENTER -0.32307 0.238717 0.701455 RAD 0.00617284 - txt002 - SPHERE CENTER -0.327715 0.259421 0.714081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.30352 0.250492 0.737623 RAD 0.00617284 - txt002 - SPHERE CENTER -0.326533 0.259369 0.738744 RAD 0.00617284 - txt002 - SPHERE CENTER -0.320707 0.238612 0.750781 RAD 0.00617284 - txt002 - SPHERE CENTER -0.298875 0.229788 0.724997 RAD 0.00617284 - txt002 - SPHERE CENTER -0.316063 0.217908 0.738155 RAD 0.00617284 - txt002 - SPHERE CENTER -0.317244 0.21796 0.713492 RAD 0.00617284 - txt002 - SPHERE CENTER -0.372464 0.281062 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER -0.362978 0.289441 0.671279 RAD 0.00617284 - txt002 - SPHERE CENTER -0.35549 0.267771 0.680442 RAD 0.00617284 - txt002 - SPHERE CENTER -0.378255 0.270044 0.671155 RAD 0.00617284 - txt002 - SPHERE CENTER -0.379952 0.302733 0.683315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.395229 0.283335 0.683192 RAD 0.00617284 - txt002 - SPHERE CENTER -0.389438 0.294353 0.704516 RAD 0.00617284 - txt002 - SPHERE CENTER -0.357187 0.30046 0.692603 RAD 0.00617284 - txt002 - SPHERE CENTER -0.366673 0.29208 0.713804 RAD 0.00617284 - txt002 - SPHERE CENTER -0.349699 0.278789 0.701767 RAD 0.00617284 - txt002 - SPHERE CENTER -0.440333 0.261479 0.769837 RAD 0.0185185 - txt002 - SPHERE CENTER -0.443285 0.282991 0.781591 RAD 0.00617284 - txt002 - SPHERE CENTER -0.421181 0.271991 0.781342 RAD 0.00617284 - txt002 - SPHERE CENTER -0.4302 0.282046 0.760673 RAD 0.00617284 - txt002 - SPHERE CENTER -0.462437 0.27248 0.770086 RAD 0.00617284 - txt002 - SPHERE CENTER -0.449353 0.271534 0.749168 RAD 0.00617284 - txt002 - SPHERE CENTER -0.459485 0.250967 0.758332 RAD 0.00617284 - txt002 - SPHERE CENTER -0.453417 0.262424 0.790755 RAD 0.00617284 - txt002 - SPHERE CENTER -0.450466 0.240911 0.779001 RAD 0.00617284 - txt002 - SPHERE CENTER -0.431313 0.251423 0.790506 RAD 0.00617284 - txt002 - SPHERE CENTER -0.444196 0.262898 0.695877 RAD 0.0185185 - txt002 - SPHERE CENTER -0.449273 0.285685 0.687835 RAD 0.00617284 - txt002 - SPHERE CENTER -0.436139 0.282528 0.708504 RAD 0.00617284 - txt002 - SPHERE CENTER -0.426189 0.27701 0.68659 RAD 0.00617284 - txt002 - SPHERE CENTER -0.45733 0.266055 0.675209 RAD 0.00617284 - txt002 - SPHERE CENTER -0.434246 0.257381 0.673964 RAD 0.00617284 - txt002 - SPHERE CENTER -0.452254 0.243269 0.683251 RAD 0.00617284 - txt002 - SPHERE CENTER -0.46728 0.271573 0.697123 RAD 0.00617284 - txt002 - SPHERE CENTER -0.462204 0.248787 0.705165 RAD 0.00617284 - txt002 - SPHERE CENTER -0.454146 0.268416 0.717791 RAD 0.00617284 - txt002 - SPHERE CENTER -0.465353 0.202338 0.732914 RAD 0.0185185 - txt002 - SPHERE CENTER -0.486123 0.204606 0.746073 RAD 0.00617284 - txt002 - SPHERE CENTER -0.464339 0.202946 0.757577 RAD 0.00617284 - txt002 - SPHERE CENTER -0.470107 0.223366 0.744951 RAD 0.00617284 - txt002 - SPHERE CENTER -0.487137 0.203998 0.72141 RAD 0.00617284 - txt002 - SPHERE CENTER -0.471122 0.222757 0.720288 RAD 0.00617284 - txt002 - SPHERE CENTER -0.466367 0.201729 0.708251 RAD 0.00617284 - txt002 - SPHERE CENTER -0.481368 0.183578 0.734036 RAD 0.00617284 - txt002 - SPHERE CENTER -0.460599 0.18131 0.720878 RAD 0.00617284 - txt002 - SPHERE CENTER -0.459584 0.181918 0.745541 RAD 0.00617284 - txt002 - SPHERE CENTER -0.389758 0.219082 0.803476 RAD 0.0185185 - txt002 - SPHERE CENTER -0.378635 0.228779 0.823273 RAD 0.00617284 - txt002 - SPHERE CENTER -0.365937 0.225483 0.802355 RAD 0.00617284 - txt002 - SPHERE CENTER -0.383364 0.24293 0.8036 RAD 0.00617284 - txt002 - SPHERE CENTER -0.402455 0.222377 0.824394 RAD 0.00617284 - txt002 - SPHERE CENTER -0.407185 0.236529 0.804721 RAD 0.00617284 - txt002 - SPHERE CENTER -0.413578 0.21268 0.804597 RAD 0.00617284 - txt002 - SPHERE CENTER -0.385029 0.20493 0.823149 RAD 0.00617284 - txt002 - SPHERE CENTER -0.396152 0.195233 0.803352 RAD 0.00617284 - txt002 - SPHERE CENTER -0.372331 0.201634 0.802231 RAD 0.00617284 - txt002 - SPHERE CENTER -0.414778 0.15994 0.766553 RAD 0.0185185 - txt002 - SPHERE CENTER -0.412573 0.147477 0.787754 RAD 0.00617284 - txt002 - SPHERE CENTER -0.39322 0.15977 0.77859 RAD 0.00617284 - txt002 - SPHERE CENTER -0.412448 0.172167 0.787878 RAD 0.00617284 - txt002 - SPHERE CENTER -0.434131 0.147647 0.775717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.434006 0.172338 0.775841 RAD 0.00617284 - txt002 - SPHERE CENTER -0.436336 0.16011 0.754517 RAD 0.00617284 - txt002 - SPHERE CENTER -0.414903 0.13525 0.766429 RAD 0.00617284 - txt002 - SPHERE CENTER -0.417108 0.147713 0.745229 RAD 0.00617284 - txt002 - SPHERE CENTER -0.39555 0.147543 0.757266 RAD 0.00617284 - txt002 - SPHERE CENTER -0.343046 0.178104 0.763155 RAD 0.0185185 - txt002 - SPHERE CENTER -0.319723 0.177083 0.771198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.325124 0.189464 0.750529 RAD 0.00617284 - txt002 - SPHERE CENTER -0.332294 0.198298 0.772443 RAD 0.00617284 - txt002 - SPHERE CENTER -0.337645 0.165722 0.783824 RAD 0.00617284 - txt002 - SPHERE CENTER -0.350216 0.186938 0.785069 RAD 0.00617284 - txt002 - SPHERE CENTER -0.360967 0.166743 0.775781 RAD 0.00617284 - txt002 - SPHERE CENTER -0.330475 0.156889 0.76191 RAD 0.00617284 - txt002 - SPHERE CENTER -0.353797 0.157909 0.753867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.335876 0.16927 0.741241 RAD 0.00617284 - txt002 - SPHERE CENTER -0.191247 0.166275 0.655442 RAD 0.0555556 - txt002 - SPHERE CENTER -0.130089 0.20793 0.652044 RAD 0.0185185 - txt002 - SPHERE CENTER -0.115471 0.221102 0.637128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.126388 0.200597 0.628759 RAD 0.00617284 - txt002 - SPHERE CENTER -0.13987 0.220766 0.633356 RAD 0.00617284 - txt002 - SPHERE CENTER -0.119172 0.228435 0.660413 RAD 0.00617284 - txt002 - SPHERE CENTER -0.143571 0.228099 0.656641 RAD 0.00617284 - txt002 - SPHERE CENTER -0.13379 0.215264 0.675329 RAD 0.00617284 - txt002 - SPHERE CENTER -0.10569 0.208266 0.655816 RAD 0.00617284 - txt002 - SPHERE CENTER -0.120308 0.195095 0.670732 RAD 0.00617284 - txt002 - SPHERE CENTER -0.116607 0.187762 0.647447 RAD 0.00617284 - txt002 - SPHERE CENTER -0.154295 0.172673 0.591563 RAD 0.0185185 - txt002 - SPHERE CENTER -0.15554 0.180792 0.568278 RAD 0.00617284 - txt002 - SPHERE CENTER -0.17557 0.171251 0.579113 RAD 0.00617284 - txt002 - SPHERE CENTER -0.166926 0.19323 0.586315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.134265 0.182215 0.580727 RAD 0.00617284 - txt002 - SPHERE CENTER -0.145651 0.194652 0.598764 RAD 0.00617284 - txt002 - SPHERE CENTER -0.133019 0.174096 0.604012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.142909 0.160236 0.573526 RAD 0.00617284 - txt002 - SPHERE CENTER -0.141663 0.152117 0.596811 RAD 0.00617284 - txt002 - SPHERE CENTER -0.162939 0.150694 0.584361 RAD 0.00617284 - txt002 - SPHERE CENTER -0.192135 0.230419 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER -0.18209 0.243049 0.599717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.168159 0.227721 0.613157 RAD 0.00617284 - txt002 - SPHERE CENTER -0.185251 0.218634 0.597829 RAD 0.00617284 - txt002 - SPHERE CENTER -0.206066 0.245747 0.604965 RAD 0.00617284 - txt002 - SPHERE CENTER -0.209227 0.221332 0.603077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.216111 0.233117 0.623653 RAD 0.00617284 - txt002 - SPHERE CENTER -0.188974 0.254834 0.620293 RAD 0.00617284 - txt002 - SPHERE CENTER -0.199019 0.242204 0.638981 RAD 0.00617284 - txt002 - SPHERE CENTER -0.175043 0.239506 0.633733 RAD 0.00617284 - txt002 - SPHERE CENTER -0.167041 0.201532 0.715923 RAD 0.0185185 - txt002 - SPHERE CENTER -0.151829 0.219088 0.724292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.14514 0.205084 0.705088 RAD 0.00617284 - txt002 - SPHERE CENTER -0.163068 0.221861 0.702483 RAD 0.00617284 - txt002 - SPHERE CENTER -0.173729 0.215537 0.735128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.184969 0.218309 0.713318 RAD 0.00617284 - txt002 - SPHERE CENTER -0.188942 0.197981 0.726759 RAD 0.00617284 - txt002 - SPHERE CENTER -0.155801 0.19876 0.737733 RAD 0.00617284 - txt002 - SPHERE CENTER -0.171014 0.181204 0.729364 RAD 0.00617284 - txt002 - SPHERE CENTER -0.149113 0.184756 0.718528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.229087 0.224021 0.682285 RAD 0.0185185 - txt002 - SPHERE CENTER -0.22829 0.248268 0.686881 RAD 0.00617284 - txt002 - SPHERE CENTER -0.207937 0.234532 0.689486 RAD 0.00617284 - txt002 - SPHERE CENTER -0.216949 0.2391 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER -0.249439 0.237756 0.67968 RAD 0.00617284 - txt002 - SPHERE CENTER -0.238098 0.228589 0.659755 RAD 0.00617284 - txt002 - SPHERE CENTER -0.250236 0.213509 0.675083 RAD 0.00617284 - txt002 - SPHERE CENTER -0.240428 0.233189 0.702209 RAD 0.00617284 - txt002 - SPHERE CENTER -0.241225 0.208942 0.697613 RAD 0.00617284 - txt002 - SPHERE CENTER -0.220075 0.219453 0.704814 RAD 0.00617284 - txt002 - SPHERE CENTER -0.228199 0.159877 0.719322 RAD 0.0185185 - txt002 - SPHERE CENTER -0.229756 0.167942 0.742607 RAD 0.00617284 - txt002 - SPHERE CENTER -0.207683 0.16569 0.731771 RAD 0.00617284 - txt002 - SPHERE CENTER -0.223214 0.183484 0.72457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.250271 0.162129 0.730157 RAD 0.00617284 - txt002 - SPHERE CENTER -0.243729 0.177671 0.71212 RAD 0.00617284 - txt002 - SPHERE CENTER -0.248714 0.154064 0.706872 RAD 0.00617284 - txt002 - SPHERE CENTER -0.234741 0.144336 0.737359 RAD 0.00617284 - txt002 - SPHERE CENTER -0.233184 0.13627 0.714074 RAD 0.00617284 - txt002 - SPHERE CENTER -0.212668 0.142084 0.726523 RAD 0.00617284 - txt002 - SPHERE CENTER -0.129201 0.143787 0.689081 RAD 0.0185185 - txt002 - SPHERE CENTER -0.105335 0.14887 0.692853 RAD 0.00617284 - txt002 - SPHERE CENTER -0.115741 0.153943 0.671044 RAD 0.00617284 - txt002 - SPHERE CENTER -0.121723 0.167242 0.690969 RAD 0.00617284 - txt002 - SPHERE CENTER -0.118795 0.138714 0.71089 RAD 0.00617284 - txt002 - SPHERE CENTER -0.135183 0.157086 0.709006 RAD 0.00617284 - txt002 - SPHERE CENTER -0.142661 0.13363 0.707118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.112813 0.125414 0.690965 RAD 0.00617284 - txt002 - SPHERE CENTER -0.136679 0.120331 0.687193 RAD 0.00617284 - txt002 - SPHERE CENTER -0.123219 0.130487 0.669156 RAD 0.00617284 - txt002 - SPHERE CENTER -0.190359 0.102131 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER -0.179968 0.0897843 0.711167 RAD 0.00617284 - txt002 - SPHERE CENTER -0.166467 0.105492 0.697727 RAD 0.00617284 - txt002 - SPHERE CENTER -0.183804 0.114103 0.713055 RAD 0.00617284 - txt002 - SPHERE CENTER -0.20386 0.0864233 0.705919 RAD 0.00617284 - txt002 - SPHERE CENTER -0.207696 0.110742 0.707807 RAD 0.00617284 - txt002 - SPHERE CENTER -0.214251 0.0987702 0.687231 RAD 0.00617284 - txt002 - SPHERE CENTER -0.186523 0.0778128 0.690591 RAD 0.00617284 - txt002 - SPHERE CENTER -0.196914 0.0901597 0.671903 RAD 0.00617284 - txt002 - SPHERE CENTER -0.173022 0.0935207 0.677151 RAD 0.00617284 - txt002 - SPHERE CENTER -0.153407 0.108529 0.6286 RAD 0.0185185 - txt002 - SPHERE CENTER -0.130858 0.0995811 0.624003 RAD 0.00617284 - txt002 - SPHERE CENTER -0.135326 0.123725 0.621398 RAD 0.00617284 - txt002 - SPHERE CENTER -0.134736 0.113639 0.643928 RAD 0.00617284 - txt002 - SPHERE CENTER -0.148938 0.0843858 0.631205 RAD 0.00617284 - txt002 - SPHERE CENTER -0.152816 0.0984435 0.65113 RAD 0.00617284 - txt002 - SPHERE CENTER -0.171487 0.0933338 0.635801 RAD 0.00617284 - txt002 - SPHERE CENTER -0.149528 0.0944715 0.608675 RAD 0.00617284 - txt002 - SPHERE CENTER -0.172078 0.10342 0.613272 RAD 0.00617284 - txt002 - SPHERE CENTER -0.153997 0.118615 0.60607 RAD 0.00617284 - txt002 - SPHERE CENTER -0.31427 0.31427 0.544331 RAD 0.0555556 - txt002 - SPHERE CENTER -0.277961 0.367156 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.269898 0.374298 0.485076 RAD 0.00617284 - txt002 - SPHERE CENTER -0.270045 0.350338 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER -0.291334 0.362218 0.487134 RAD 0.00617284 - txt002 - SPHERE CENTER -0.277815 0.391115 0.501329 RAD 0.00617284 - txt002 - SPHERE CENTER -0.299251 0.379036 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.285878 0.383973 0.523547 RAD 0.00617284 - txt002 - SPHERE CENTER -0.256525 0.379235 0.505236 RAD 0.00617284 - txt002 - SPHERE CENTER -0.264588 0.372093 0.527454 RAD 0.00617284 - txt002 - SPHERE CENTER -0.256671 0.355276 0.511201 RAD 0.00617284 - txt002 - SPHERE CENTER -0.252306 0.297666 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.235688 0.305995 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER -0.259438 0.312359 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.245915 0.321516 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.228556 0.291303 0.509559 RAD 0.00617284 - txt002 - SPHERE CENTER -0.238783 0.306824 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.245173 0.282974 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.242079 0.282145 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER -0.258696 0.273816 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.265828 0.288509 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.31427 0.31427 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER -0.32435 0.32435 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER -0.33812 0.32066 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.32066 0.33812 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.3005 0.317959 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER -0.29681 0.331729 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.29042 0.307879 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.317959 0.3005 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER -0.307879 0.29042 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.331729 0.29681 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.339925 0.383759 0.544331 RAD 0.0185185 - txt002 - SPHERE CENTER -0.334762 0.407156 0.538366 RAD 0.00617284 - txt002 - SPHERE CENTER -0.31686 0.392275 0.546597 RAD 0.00617284 - txt002 - SPHERE CENTER -0.326552 0.388696 0.524171 RAD 0.00617284 - txt002 - SPHERE CENTER -0.357827 0.39864 0.536101 RAD 0.00617284 - txt002 - SPHERE CENTER -0.349618 0.380181 0.521905 RAD 0.00617284 - txt002 - SPHERE CENTER -0.362991 0.375243 0.542066 RAD 0.00617284 - txt002 - SPHERE CENTER -0.348135 0.402218 0.558526 RAD 0.00617284 - txt002 - SPHERE CENTER -0.353299 0.378821 0.564491 RAD 0.00617284 - txt002 - SPHERE CENTER -0.330233 0.387337 0.566757 RAD 0.00617284 - txt002 - SPHERE CENTER -0.376234 0.330873 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.393346 0.348239 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.383366 0.345565 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.369843 0.354723 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.386213 0.333547 0.484868 RAD 0.00617284 - txt002 - SPHERE CENTER -0.362711 0.340031 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.369102 0.316181 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399736 0.324389 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.382624 0.307023 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.389757 0.321715 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.376234 0.330873 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.386461 0.346394 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER -0.362711 0.340031 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.369843 0.354723 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399983 0.337237 0.579103 RAD 0.00617284 - txt002 - SPHERE CENTER -0.383366 0.345565 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.389757 0.321715 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.392851 0.322544 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER -0.382624 0.307023 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.369102 0.316181 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.277961 0.367156 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.261966 0.385852 0.57931 RAD 0.00617284 - txt002 - SPHERE CENTER -0.259422 0.36581 0.565115 RAD 0.00617284 - txt002 - SPHERE CENTER -0.278159 0.38141 0.561208 RAD 0.00617284 - txt002 - SPHERE CENTER -0.280504 0.387198 0.595564 RAD 0.00617284 - txt002 - SPHERE CENTER -0.296698 0.382755 0.577461 RAD 0.00617284 - txt002 - SPHERE CENTER -0.2965 0.368501 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER -0.261768 0.371598 0.599471 RAD 0.00617284 - txt002 - SPHERE CENTER -0.277764 0.352901 0.601529 RAD 0.00617284 - txt002 - SPHERE CENTER -0.259225 0.351556 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER -0.31427 0.31427 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER -0.304189 0.32435 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER -0.29042 0.32066 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.307879 0.33812 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.328039 0.317959 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER -0.331729 0.331729 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.33812 0.307879 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.31058 0.3005 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER -0.32066 0.29042 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.29681 0.29681 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.252306 0.297666 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.228803 0.30415 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER -0.238783 0.306824 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.245915 0.321516 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.242326 0.294992 0.603794 RAD 0.00617284 - txt002 - SPHERE CENTER -0.259438 0.312359 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.265828 0.288509 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.235194 0.2803 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER -0.258696 0.273816 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.245173 0.282974 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.574159 0.153845 0.618405 RAD 0.0555556 - txt002 - SPHERE CENTER -0.612768 0.202534 0.658726 RAD 0.0185185 - txt002 - SPHERE CENTER -0.612732 0.225282 0.668328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.591695 0.212428 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER -0.60221 0.22113 0.64638 RAD 0.00617284 - txt002 - SPHERE CENTER -0.633805 0.215388 0.660098 RAD 0.00617284 - txt002 - SPHERE CENTER -0.623283 0.211236 0.63815 RAD 0.00617284 - txt002 - SPHERE CENTER -0.63384 0.192641 0.650495 RAD 0.00617284 - txt002 - SPHERE CENTER -0.62329 0.206686 0.680674 RAD 0.00617284 - txt002 - SPHERE CENTER -0.623325 0.183939 0.671072 RAD 0.00617284 - txt002 - SPHERE CENTER -0.602253 0.193832 0.679302 RAD 0.00617284 - txt002 - SPHERE CENTER -0.543919 0.184086 0.678886 RAD 0.0185185 - txt002 - SPHERE CENTER -0.527458 0.200547 0.687117 RAD 0.00617284 - txt002 - SPHERE CENTER -0.522843 0.187702 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER -0.540303 0.205161 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER -0.548533 0.196931 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER -0.561378 0.201546 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER -0.564994 0.18047 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER -0.531074 0.179472 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER -0.547535 0.163011 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER -0.526459 0.166627 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER -0.554987 0.225396 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER -0.542885 0.243024 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER -0.534333 0.219861 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER -0.554987 0.225396 0.593714 RAD 0.00617284 - txt002 - SPHERE CENTER -0.563539 0.248559 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.575642 0.23093 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER -0.575642 0.23093 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER -0.542885 0.243024 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER -0.554987 0.225396 0.643096 RAD 0.00617284 - txt002 - SPHERE CENTER -0.534333 0.219861 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER -0.643008 0.172294 0.598245 RAD 0.0185185 - txt002 - SPHERE CENTER -0.660425 0.189742 0.599616 RAD 0.00617284 - txt002 - SPHERE CENTER -0.645434 0.185725 0.618821 RAD 0.00617284 - txt002 - SPHERE CENTER -0.636618 0.196144 0.598245 RAD 0.00617284 - txt002 - SPHERE CENTER -0.657999 0.17631 0.57904 RAD 0.00617284 - txt002 - SPHERE CENTER -0.634191 0.182712 0.577669 RAD 0.00617284 - txt002 - SPHERE CENTER -0.640582 0.158862 0.577669 RAD 0.00617284 - txt002 - SPHERE CENTER -0.666816 0.165892 0.599616 RAD 0.00617284 - txt002 - SPHERE CENTER -0.649399 0.148444 0.598245 RAD 0.00617284 - txt002 - SPHERE CENTER -0.651825 0.161875 0.618821 RAD 0.00617284 - txt002 - SPHERE CENTER -0.585228 0.195155 0.557924 RAD 0.0185185 - txt002 - SPHERE CENTER -0.574809 0.203972 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER -0.561378 0.201546 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER -0.568784 0.181486 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER -0.598659 0.197581 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER -0.592634 0.175095 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER -0.609078 0.188764 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER -0.591253 0.217641 0.549693 RAD 0.00617284 - txt002 - SPHERE CENTER -0.601672 0.208824 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER -0.577822 0.215215 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER -0.6044 0.123605 0.557924 RAD 0.0185185 - txt002 - SPHERE CENTER -0.620861 0.107144 0.549693 RAD 0.00617284 - txt002 - SPHERE CENTER -0.608016 0.102529 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER -0.625475 0.119989 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER -0.617245 0.128219 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER -0.621859 0.141064 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER -0.600784 0.14468 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER -0.599785 0.11076 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER -0.583324 0.127221 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER -0.58694 0.106145 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER -0.631939 0.130984 0.658726 RAD 0.0185185 - txt002 - SPHERE CENTER -0.643128 0.132649 0.680674 RAD 0.00617284 - txt002 - SPHERE CENTER -0.618482 0.133263 0.679302 RAD 0.00617284 - txt002 - SPHERE CENTER -0.631785 0.152367 0.671072 RAD 0.00617284 - txt002 - SPHERE CENTER -0.656585 0.130371 0.660098 RAD 0.00617284 - txt002 - SPHERE CENTER -0.645242 0.150088 0.650495 RAD 0.00617284 - txt002 - SPHERE CENTER -0.645397 0.128706 0.63815 RAD 0.00617284 - txt002 - SPHERE CENTER -0.643283 0.111266 0.668328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.632094 0.109601 0.64638 RAD 0.00617284 - txt002 - SPHERE CENTER -0.618637 0.11188 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER -0.593331 0.0822954 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER -0.591664 0.0609772 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER -0.572676 0.076761 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER -0.593331 0.0822954 0.643096 RAD 0.00617284 - txt002 - SPHERE CENTER -0.612319 0.0665116 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.613986 0.0878298 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER -0.613986 0.0878298 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER -0.591664 0.0609772 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER -0.593331 0.0822954 0.593714 RAD 0.00617284 - txt002 - SPHERE CENTER -0.572676 0.076761 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER -0.56309 0.112536 0.678886 RAD 0.0185185 - txt002 - SPHERE CENTER -0.549659 0.11011 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER -0.53924 0.118927 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555684 0.132596 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER -0.573509 0.103719 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER -0.579534 0.126205 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER -0.58694 0.106145 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER -0.557065 0.09005 0.687117 RAD 0.00617284 - txt002 - SPHERE CENTER -0.570497 0.0924762 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER -0.546646 0.0988668 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER -0.494808 0.247614 0.43322 RAD 0.0555556 - txt002 - SPHERE CENTER -0.494287 0.313607 0.399581 RAD 0.0185185 - txt002 - SPHERE CENTER -0.484182 0.326876 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER -0.470513 0.310432 0.39372 RAD 0.00617284 - txt002 - SPHERE CENTER -0.488171 0.302705 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER -0.507957 0.330051 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.511946 0.305881 0.384149 RAD 0.00617284 - txt002 - SPHERE CENTER -0.518062 0.316783 0.405442 RAD 0.00617284 - txt002 - SPHERE CENTER -0.490299 0.337778 0.402668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.500404 0.324509 0.420874 RAD 0.00617284 - txt002 - SPHERE CENTER -0.476629 0.321334 0.415013 RAD 0.00617284 - txt002 - SPHERE CENTER -0.452978 0.302539 0.460062 RAD 0.0185185 - txt002 - SPHERE CENTER -0.436971 0.320401 0.454201 RAD 0.00617284 - txt002 - SPHERE CENTER -0.436675 0.29902 0.441856 RAD 0.00617284 - txt002 - SPHERE CENTER -0.455413 0.3148 0.438769 RAD 0.00617284 - txt002 - SPHERE CENTER -0.453274 0.32392 0.472408 RAD 0.00617284 - txt002 - SPHERE CENTER -0.471717 0.318318 0.456976 RAD 0.00617284 - txt002 - SPHERE CENTER -0.469281 0.306057 0.478269 RAD 0.00617284 - txt002 - SPHERE CENTER -0.434535 0.30814 0.475494 RAD 0.00617284 - txt002 - SPHERE CENTER -0.450543 0.290278 0.481355 RAD 0.00617284 - txt002 - SPHERE CENTER -0.434239 0.286759 0.463149 RAD 0.00617284 - txt002 - SPHERE CENTER -0.434629 0.269833 0.396183 RAD 0.0185185 - txt002 - SPHERE CENTER -0.426389 0.279233 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER -0.445377 0.263449 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER -0.448298 0.286276 0.383837 RAD 0.00617284 - txt002 - SPHERE CENTER -0.415641 0.285616 0.396183 RAD 0.00617284 - txt002 - SPHERE CENTER -0.43755 0.29266 0.40513 RAD 0.00617284 - txt002 - SPHERE CENTER -0.42388 0.276216 0.417476 RAD 0.00617284 - txt002 - SPHERE CENTER -0.41272 0.262789 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.420959 0.253389 0.408529 RAD 0.00617284 - txt002 - SPHERE CENTER -0.431707 0.247006 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.536117 0.258683 0.372739 RAD 0.0185185 - txt002 - SPHERE CENTER -0.549787 0.275127 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER -0.549787 0.275127 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER -0.529727 0.282533 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER -0.536117 0.258683 0.348047 RAD 0.00617284 - txt002 - SPHERE CENTER -0.516058 0.266089 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER -0.522448 0.242239 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER -0.556177 0.251277 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER -0.542508 0.234833 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER -0.556177 0.251277 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER -0.476459 0.214908 0.369341 RAD 0.0185185 - txt002 - SPHERE CENTER -0.457868 0.209819 0.353908 RAD 0.00617284 - txt002 - SPHERE CENTER -0.458164 0.2312 0.366254 RAD 0.00617284 - txt002 - SPHERE CENTER -0.453963 0.210053 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER -0.476163 0.193527 0.356995 RAD 0.00617284 - txt002 - SPHERE CENTER -0.472258 0.193761 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER -0.494753 0.198616 0.372427 RAD 0.00617284 - txt002 - SPHERE CENTER -0.480363 0.214674 0.344961 RAD 0.00617284 - txt002 - SPHERE CENTER -0.498954 0.219763 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER -0.480659 0.236055 0.357307 RAD 0.00617284 - txt002 - SPHERE CENTER -0.536638 0.19269 0.406378 RAD 0.0185185 - txt002 - SPHERE CENTER -0.549603 0.17251 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER -0.528912 0.177908 0.424584 RAD 0.00617284 - txt002 - SPHERE CENTER -0.549105 0.191778 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER -0.557329 0.187292 0.394032 RAD 0.00617284 - txt002 - SPHERE CENTER -0.556831 0.20656 0.409464 RAD 0.00617284 - txt002 - SPHERE CENTER -0.544363 0.207471 0.388171 RAD 0.00617284 - txt002 - SPHERE CENTER -0.537136 0.173421 0.390945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.524171 0.193601 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER -0.516445 0.178819 0.403291 RAD 0.00617284 - txt002 - SPHERE CENTER -0.554467 0.291389 0.436618 RAD 0.0185185 - txt002 - SPHERE CENTER -0.562288 0.314604 0.439705 RAD 0.00617284 - txt002 - SPHERE CENTER -0.542501 0.306499 0.45205 RAD 0.00617284 - txt002 - SPHERE CENTER -0.541186 0.310183 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER -0.574255 0.299494 0.424272 RAD 0.00617284 - txt002 - SPHERE CENTER -0.553152 0.295073 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER -0.566433 0.276279 0.421186 RAD 0.00617284 - txt002 - SPHERE CENTER -0.575569 0.29581 0.448652 RAD 0.00617284 - txt002 - SPHERE CENTER -0.567748 0.272595 0.445566 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555781 0.287705 0.460998 RAD 0.00617284 - txt002 - SPHERE CENTER -0.554987 0.225396 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER -0.567359 0.227186 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER -0.54267 0.227528 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555283 0.246777 0.482603 RAD 0.00617284 - txt002 - SPHERE CENTER -0.579676 0.225054 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.567601 0.244644 0.46131 RAD 0.00617284 - txt002 - SPHERE CENTER -0.567305 0.223263 0.448964 RAD 0.00617284 - txt002 - SPHERE CENTER -0.567063 0.205805 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER -0.554691 0.204014 0.457911 RAD 0.00617284 - txt002 - SPHERE CENTER -0.542374 0.206147 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER -0.513157 0.28032 0.497099 RAD 0.0185185 - txt002 - SPHERE CENTER -0.507811 0.298839 0.512531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.489718 0.287442 0.500186 RAD 0.00617284 - txt002 - SPHERE CENTER -0.505577 0.302049 0.488152 RAD 0.00617284 - txt002 - SPHERE CENTER -0.531251 0.291716 0.509445 RAD 0.00617284 - txt002 - SPHERE CENTER -0.529016 0.294927 0.485065 RAD 0.00617284 - txt002 - SPHERE CENTER -0.536597 0.273198 0.494013 RAD 0.00617284 - txt002 - SPHERE CENTER -0.515392 0.27711 0.521479 RAD 0.00617284 - txt002 - SPHERE CENTER -0.520738 0.258591 0.506047 RAD 0.00617284 - txt002 - SPHERE CENTER -0.497299 0.265714 0.509133 RAD 0.00617284 - txt002 - SPHERE CENTER -0.552323 0.0329639 0.43322 RAD 0.0555556 - txt002 - SPHERE CENTER -0.625877 0.0248832 0.436618 RAD 0.0185185 - txt002 - SPHERE CENTER -0.646362 0.0316054 0.448652 RAD 0.00617284 - txt002 - SPHERE CENTER -0.625173 0.0287309 0.460998 RAD 0.00617284 - txt002 - SPHERE CENTER -0.627981 0.0478 0.445566 RAD 0.00617284 - txt002 - SPHERE CENTER -0.647066 0.0277577 0.424272 RAD 0.00617284 - txt002 - SPHERE CENTER -0.628685 0.0439523 0.421186 RAD 0.00617284 - txt002 - SPHERE CENTER -0.62658 0.0210355 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER -0.644258 0.00868865 0.439705 RAD 0.00617284 - txt002 - SPHERE CENTER -0.623773 0.00196644 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER -0.623069 0.00581415 0.45205 RAD 0.00617284 - txt002 - SPHERE CENTER -0.584567 0.0138144 0.497099 RAD 0.0185185 - txt002 - SPHERE CENTER -0.584898 0.0177119 0.521479 RAD 0.00617284 - txt002 - SPHERE CENTER -0.56353 0.0185345 0.509133 RAD 0.00617284 - txt002 - SPHERE CENTER -0.580268 0.0364224 0.506047 RAD 0.00617284 - txt002 - SPHERE CENTER -0.605935 0.0129918 0.509445 RAD 0.00617284 - txt002 - SPHERE CENTER -0.601305 0.0317022 0.494013 RAD 0.00617284 - txt002 - SPHERE CENTER -0.605605 0.00909422 0.485065 RAD 0.00617284 - txt002 - SPHERE CENTER -0.589197 -0.00489609 0.512531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.588867 -0.00879364 0.488152 RAD 0.00617284 - txt002 - SPHERE CENTER -0.567829 -0.00407348 0.500186 RAD 0.00617284 - txt002 - SPHERE CENTER -0.593331 0.0822954 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER -0.593994 0.105299 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER -0.572783 0.0926585 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER -0.582384 0.100664 0.457911 RAD 0.00617284 - txt002 - SPHERE CENTER -0.614541 0.0949359 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.602932 0.090301 0.448964 RAD 0.00617284 - txt002 - SPHERE CENTER -0.613879 0.0719323 0.46131 RAD 0.00617284 - txt002 - SPHERE CENTER -0.604941 0.0869303 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER -0.604278 0.0639267 0.482603 RAD 0.00617284 - txt002 - SPHERE CENTER -0.58373 0.0742898 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER -0.593633 0.0440327 0.372739 RAD 0.0185185 - txt002 - SPHERE CENTER -0.607302 0.0604766 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER -0.607302 0.0604766 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER -0.587242 0.0678827 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER -0.593633 0.0440327 0.348047 RAD 0.00617284 - txt002 - SPHERE CENTER -0.573573 0.0514389 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER -0.579964 0.0275889 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER -0.613693 0.0366265 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER -0.600023 0.0201827 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER -0.613693 0.0366265 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER -0.561087 0.101445 0.406378 RAD 0.0185185 - txt002 - SPHERE CENTER -0.551884 0.118381 0.390945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.536664 0.103361 0.403291 RAD 0.00617284 - txt002 - SPHERE CENTER -0.550745 0.0944221 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER -0.576307 0.116465 0.394032 RAD 0.00617284 - txt002 - SPHERE CENTER -0.575168 0.0925065 0.388171 RAD 0.00617284 - txt002 - SPHERE CENTER -0.58551 0.0995293 0.409464 RAD 0.00617284 - txt002 - SPHERE CENTER -0.562225 0.125404 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER -0.571428 0.108468 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER -0.547006 0.110383 0.424584 RAD 0.00617284 - txt002 - SPHERE CENTER -0.520079 0.0521134 0.369341 RAD 0.0185185 - txt002 - SPHERE CENTER -0.523344 0.0542684 0.344961 RAD 0.00617284 - txt002 - SPHERE CENTER -0.534291 0.0358996 0.357307 RAD 0.00617284 - txt002 - SPHERE CENTER -0.541988 0.0591566 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER -0.509132 0.0704822 0.356995 RAD 0.00617284 - txt002 - SPHERE CENTER -0.527777 0.0753703 0.372427 RAD 0.00617284 - txt002 - SPHERE CENTER -0.505868 0.0683272 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER -0.501435 0.0472252 0.353908 RAD 0.00617284 - txt002 - SPHERE CENTER -0.49817 0.0450702 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER -0.512382 0.0288565 0.366254 RAD 0.00617284 - txt002 - SPHERE CENTER -0.584869 -0.0244483 0.399581 RAD 0.0185185 - txt002 - SPHERE CENTER -0.5935 -0.0473753 0.402668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.57344 -0.0399691 0.415013 RAD 0.00617284 - txt002 - SPHERE CENTER -0.595617 -0.0308315 0.420874 RAD 0.00617284 - txt002 - SPHERE CENTER -0.604929 -0.0318545 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.607046 -0.0153107 0.405442 RAD 0.00617284 - txt002 - SPHERE CENTER -0.596298 -0.00892756 0.384149 RAD 0.00617284 - txt002 - SPHERE CENTER -0.582752 -0.0409921 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER -0.574121 -0.0180651 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER -0.562692 -0.0335859 0.39372 RAD 0.00617284 - txt002 - SPHERE CENTER -0.511316 -0.0163676 0.396183 RAD 0.0185185 - txt002 - SPHERE CENTER -0.48882 -0.0212225 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.497372 0.00194055 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.491256 -0.00896145 0.408529 RAD 0.00617284 - txt002 - SPHERE CENTER -0.502764 -0.0395307 0.396183 RAD 0.00617284 - txt002 - SPHERE CENTER -0.505199 -0.0272696 0.417476 RAD 0.00617284 - txt002 - SPHERE CENTER -0.525259 -0.0346758 0.40513 RAD 0.00617284 - txt002 - SPHERE CENTER -0.50888 -0.0286287 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER -0.531375 -0.0237738 0.383837 RAD 0.00617284 - txt002 - SPHERE CENTER -0.517432 -0.00546563 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER -0.54356 -0.0355172 0.460062 RAD 0.0185185 - txt002 - SPHERE CENTER -0.530389 -0.0495897 0.475494 RAD 0.00617284 - txt002 - SPHERE CENTER -0.519442 -0.031221 0.463149 RAD 0.00617284 - txt002 - SPHERE CENTER -0.53532 -0.0261165 0.481355 RAD 0.00617284 - txt002 - SPHERE CENTER -0.554507 -0.0538859 0.472408 RAD 0.00617284 - txt002 - SPHERE CENTER -0.559438 -0.0304127 0.478269 RAD 0.00617284 - txt002 - SPHERE CENTER -0.567678 -0.0398133 0.456976 RAD 0.00617284 - txt002 - SPHERE CENTER -0.538628 -0.0589904 0.454201 RAD 0.00617284 - txt002 - SPHERE CENTER -0.551799 -0.0449178 0.438769 RAD 0.00617284 - txt002 - SPHERE CENTER -0.527681 -0.0406217 0.441856 RAD 0.00617284 - txt002 - SPHERE CENTER -0.451136 0.0058509 0.729516 RAD 0.0555556 - txt002 - SPHERE CENTER -0.447081 0.0051487 0.803476 RAD 0.0185185 - txt002 - SPHERE CENTER -0.435909 0.01504 0.823149 RAD 0.00617284 - txt002 - SPHERE CENTER -0.423265 0.0115452 0.802231 RAD 0.00617284 - txt002 - SPHERE CENTER -0.440694 0.0289993 0.803352 RAD 0.00617284 - txt002 - SPHERE CENTER -0.459725 0.00864346 0.824394 RAD 0.00617284 - txt002 - SPHERE CENTER -0.46451 0.0226028 0.804597 RAD 0.00617284 - txt002 - SPHERE CENTER -0.470897 -0.0012478 0.804721 RAD 0.00617284 - txt002 - SPHERE CENTER -0.442297 -0.00881065 0.823273 RAD 0.00617284 - txt002 - SPHERE CENTER -0.453468 -0.0187019 0.8036 RAD 0.00617284 - txt002 - SPHERE CENTER -0.429652 -0.0123054 0.802355 RAD 0.00617284 - txt002 - SPHERE CENTER -0.386138 0.0172804 0.763155 RAD 0.0185185 - txt002 - SPHERE CENTER -0.364644 0.0293677 0.76191 RAD 0.00617284 - txt002 - SPHERE CENTER -0.375512 0.0213457 0.741241 RAD 0.00617284 - txt002 - SPHERE CENTER -0.385352 0.0401449 0.753867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.37527 0.0253024 0.783824 RAD 0.00617284 - txt002 - SPHERE CENTER -0.395978 0.0360796 0.775781 RAD 0.00617284 - txt002 - SPHERE CENTER -0.396764 0.0132151 0.785069 RAD 0.00617284 - txt002 - SPHERE CENTER -0.36543 0.0065032 0.771198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.386924 -0.00558411 0.772443 RAD 0.00617284 - txt002 - SPHERE CENTER -0.376298 -0.00151881 0.750529 RAD 0.00617284 - txt002 - SPHERE CENTER -0.439178 0.0688765 0.766553 RAD 0.0185185 - txt002 - SPHERE CENTER -0.426942 0.0903221 0.766429 RAD 0.00617284 - txt002 - SPHERE CENTER -0.416328 0.0699989 0.757266 RAD 0.00617284 - txt002 - SPHERE CENTER -0.435083 0.0806307 0.745229 RAD 0.00617284 - txt002 - SPHERE CENTER -0.449792 0.0891998 0.775717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.457933 0.0795084 0.754517 RAD 0.00617284 - txt002 - SPHERE CENTER -0.462029 0.0677542 0.775841 RAD 0.00617284 - txt002 - SPHERE CENTER -0.431037 0.078568 0.787754 RAD 0.00617284 - txt002 - SPHERE CENTER -0.443274 0.0571224 0.787878 RAD 0.00617284 - txt002 - SPHERE CENTER -0.420423 0.0582447 0.77859 RAD 0.00617284 - txt002 - SPHERE CENTER -0.512079 -0.00628079 0.769837 RAD 0.0185185 - txt002 - SPHERE CENTER -0.523883 -0.000557006 0.790755 RAD 0.00617284 - txt002 - SPHERE CENTER -0.49924 -0.00208214 0.790506 RAD 0.00617284 - txt002 - SPHERE CENTER -0.51057 0.0165974 0.779001 RAD 0.00617284 - txt002 - SPHERE CENTER -0.536722 -0.00475566 0.770086 RAD 0.00617284 - txt002 - SPHERE CENTER -0.523409 0.0123987 0.758332 RAD 0.00617284 - txt002 - SPHERE CENTER -0.524918 -0.0104794 0.749168 RAD 0.00617284 - txt002 - SPHERE CENTER -0.525392 -0.0234352 0.781591 RAD 0.00617284 - txt002 - SPHERE CENTER -0.513588 -0.029159 0.760673 RAD 0.00617284 - txt002 - SPHERE CENTER -0.500749 -0.0249603 0.781342 RAD 0.00617284 - txt002 - SPHERE CENTER -0.504176 0.0574471 0.732914 RAD 0.0185185 - txt002 - SPHERE CENTER -0.508666 0.0817008 0.734036 RAD 0.00617284 - txt002 - SPHERE CENTER -0.488971 0.0722467 0.745541 RAD 0.00617284 - txt002 - SPHERE CENTER -0.489545 0.0732807 0.720878 RAD 0.00617284 - txt002 - SPHERE CENTER -0.523872 0.0669012 0.72141 RAD 0.00617284 - txt002 - SPHERE CENTER -0.504751 0.058481 0.708251 RAD 0.00617284 - txt002 - SPHERE CENTER -0.519382 0.0426474 0.720288 RAD 0.00617284 - txt002 - SPHERE CENTER -0.523298 0.0658672 0.746073 RAD 0.00617284 - txt002 - SPHERE CENTER -0.518808 0.0416134 0.744951 RAD 0.00617284 - txt002 - SPHERE CENTER -0.503602 0.0564131 0.757577 RAD 0.00617284 - txt002 - SPHERE CENTER -0.516134 -0.00557859 0.695877 RAD 0.0185185 - txt002 - SPHERE CENTER -0.540463 -0.00154892 0.697123 RAD 0.00617284 - txt002 - SPHERE CENTER -0.52751 -0.00538221 0.717791 RAD 0.00617284 - txt002 - SPHERE CENTER -0.524673 0.0156462 0.705165 RAD 0.00617284 - txt002 - SPHERE CENTER -0.529087 -0.00174531 0.675209 RAD 0.00617284 - txt002 - SPHERE CENTER -0.513298 0.0154498 0.683251 RAD 0.00617284 - txt002 - SPHERE CENTER -0.504759 -0.00577498 0.673964 RAD 0.00617284 - txt002 - SPHERE CENTER -0.531924 -0.0227737 0.687835 RAD 0.00617284 - txt002 - SPHERE CENTER -0.507596 -0.0268034 0.68659 RAD 0.00617284 - txt002 - SPHERE CENTER -0.518971 -0.026607 0.708504 RAD 0.00617284 - txt002 - SPHERE CENTER -0.459039 -0.0578769 0.766439 RAD 0.0185185 - txt002 - SPHERE CENTER -0.451803 -0.0707378 0.786236 RAD 0.00617284 - txt002 - SPHERE CENTER -0.435761 -0.0561039 0.774481 RAD 0.00617284 - txt002 - SPHERE CENTER -0.454158 -0.0461991 0.787639 RAD 0.00617284 - txt002 - SPHERE CENTER -0.475081 -0.0725109 0.778193 RAD 0.00617284 - txt002 - SPHERE CENTER -0.477435 -0.0479721 0.779597 RAD 0.00617284 - txt002 - SPHERE CENTER -0.482316 -0.05965 0.758396 RAD 0.00617284 - txt002 - SPHERE CENTER -0.456685 -0.0824157 0.765035 RAD 0.00617284 - txt002 - SPHERE CENTER -0.46392 -0.0695548 0.745238 RAD 0.00617284 - txt002 - SPHERE CENTER -0.440643 -0.0677817 0.753281 RAD 0.00617284 - txt002 - SPHERE CENTER -0.463094 -0.0571747 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER -0.459563 -0.081612 0.692603 RAD 0.00617284 - txt002 - SPHERE CENTER -0.442243 -0.0665888 0.701767 RAD 0.00617284 - txt002 - SPHERE CENTER -0.463589 -0.0696122 0.713804 RAD 0.00617284 - txt002 - SPHERE CENTER -0.480415 -0.0721979 0.683315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.48444 -0.0601982 0.704516 RAD 0.00617284 - txt002 - SPHERE CENTER -0.483946 -0.0477607 0.683192 RAD 0.00617284 - txt002 - SPHERE CENTER -0.459069 -0.0691745 0.671279 RAD 0.00617284 - txt002 - SPHERE CENTER -0.4626 -0.0447373 0.671155 RAD 0.00617284 - txt002 - SPHERE CENTER -0.441749 -0.0541513 0.680442 RAD 0.00617284 - txt002 - SPHERE CENTER -0.398096 -0.0457452 0.726118 RAD 0.0185185 - txt002 - SPHERE CENTER -0.373728 -0.0495643 0.724997 RAD 0.00617284 - txt002 - SPHERE CENTER -0.383722 -0.030137 0.713492 RAD 0.00617284 - txt002 - SPHERE CENTER -0.382672 -0.0306825 0.738155 RAD 0.00617284 - txt002 - SPHERE CENTER -0.388102 -0.0651725 0.737623 RAD 0.00617284 - txt002 - SPHERE CENTER -0.397047 -0.0462908 0.750781 RAD 0.00617284 - txt002 - SPHERE CENTER -0.41247 -0.0613535 0.738744 RAD 0.00617284 - txt002 - SPHERE CENTER -0.389151 -0.064627 0.71296 RAD 0.00617284 - txt002 - SPHERE CENTER -0.41352 -0.060808 0.714081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399146 -0.0451997 0.701455 RAD 0.00617284 - txt002 - SPHERE CENTER -0.4293 -0.115031 0.544331 RAD 0.0555556 - txt002 - SPHERE CENTER -0.424299 -0.178985 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.412497 -0.190929 0.599471 RAD 0.00617284 - txt002 - SPHERE CENTER -0.400273 -0.174844 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER -0.417001 -0.16674 0.601529 RAD 0.00617284 - txt002 - SPHERE CENTER -0.436523 -0.195071 0.595564 RAD 0.00617284 - txt002 - SPHERE CENTER -0.441027 -0.170881 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER -0.448325 -0.183127 0.577461 RAD 0.00617284 - txt002 - SPHERE CENTER -0.419795 -0.203175 0.57931 RAD 0.00617284 - txt002 - SPHERE CENTER -0.431597 -0.191231 0.561208 RAD 0.00617284 - txt002 - SPHERE CENTER -0.407571 -0.18709 0.565115 RAD 0.00617284 - txt002 - SPHERE CENTER -0.367336 -0.131634 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.343834 -0.12515 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER -0.353814 -0.122476 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.360946 -0.107784 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.357357 -0.134308 0.603794 RAD 0.00617284 - txt002 - SPHERE CENTER -0.374468 -0.116942 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.380859 -0.140792 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.350225 -0.149 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER -0.373727 -0.155484 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.360204 -0.146326 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.4293 -0.115031 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER -0.41922 -0.10495 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER -0.40545 -0.10864 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.42291 -0.0911807 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.44307 -0.111341 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER -0.44676 -0.0975713 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.45315 -0.121421 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.425611 -0.128801 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER -0.435691 -0.138881 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.411841 -0.13249 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.486264 -0.162382 0.544331 RAD 0.0185185 - txt002 - SPHERE CENTER -0.502603 -0.174264 0.558526 RAD 0.00617284 - txt002 - SPHERE CENTER -0.479659 -0.170327 0.566757 RAD 0.00617284 - txt002 - SPHERE CENTER -0.495376 -0.15142 0.564491 RAD 0.00617284 - txt002 - SPHERE CENTER -0.509207 -0.166319 0.536101 RAD 0.00617284 - txt002 - SPHERE CENTER -0.501981 -0.143475 0.542066 RAD 0.00617284 - txt002 - SPHERE CENTER -0.492868 -0.154437 0.521905 RAD 0.00617284 - txt002 - SPHERE CENTER -0.49349 -0.185226 0.538366 RAD 0.00617284 - txt002 - SPHERE CENTER -0.477151 -0.173345 0.524171 RAD 0.00617284 - txt002 - SPHERE CENTER -0.470546 -0.18129 0.546597 RAD 0.00617284 - txt002 - SPHERE CENTER -0.491265 -0.0984274 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.501491 -0.082906 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER -0.477742 -0.0892696 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.484874 -0.0745774 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.515014 -0.0920638 0.579103 RAD 0.00617284 - txt002 - SPHERE CENTER -0.498397 -0.0837352 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.504787 -0.107585 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.507882 -0.106756 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER -0.497655 -0.122277 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.484132 -0.11312 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.491265 -0.0984274 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.508376 -0.0810612 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.498397 -0.0837352 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.484874 -0.0745774 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.501244 -0.0957534 0.484868 RAD 0.00617284 - txt002 - SPHERE CENTER -0.477742 -0.0892696 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.484132 -0.11312 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.514767 -0.104911 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.497655 -0.122277 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.504787 -0.107585 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.424299 -0.178985 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.411775 -0.200165 0.505236 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399922 -0.179342 0.511201 RAD 0.00617284 - txt002 - SPHERE CENTER -0.415187 -0.189948 0.527454 RAD 0.00617284 - txt002 - SPHERE CENTER -0.436152 -0.199808 0.501329 RAD 0.00617284 - txt002 - SPHERE CENTER -0.439564 -0.189591 0.523547 RAD 0.00617284 - txt002 - SPHERE CENTER -0.448677 -0.178629 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.420888 -0.189202 0.485076 RAD 0.00617284 - txt002 - SPHERE CENTER -0.433412 -0.168023 0.487134 RAD 0.00617284 - txt002 - SPHERE CENTER -0.409035 -0.168379 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER -0.4293 -0.115031 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER -0.439381 -0.10495 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER -0.45315 -0.10864 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.435691 -0.0911807 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.415531 -0.111341 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER -0.411841 -0.0975713 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.40545 -0.121421 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.43299 -0.128801 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER -0.42291 -0.138881 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.44676 -0.13249 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.367336 -0.131634 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.350719 -0.123305 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER -0.374468 -0.116942 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.360946 -0.107784 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.343587 -0.137998 0.509559 RAD 0.00617284 - txt002 - SPHERE CENTER -0.353814 -0.122476 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.360204 -0.146326 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.357109 -0.147155 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER -0.373727 -0.155484 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.380859 -0.140792 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.248762 -0.0483751 0.655442 RAD 0.0555556 - txt002 - SPHERE CENTER -0.183785 -0.0599222 0.689081 RAD 0.0185185 - txt002 - SPHERE CENTER -0.160406 -0.0522053 0.690965 RAD 0.00617284 - txt002 - SPHERE CENTER -0.171954 -0.0513956 0.669156 RAD 0.00617284 - txt002 - SPHERE CENTER -0.178533 -0.0358698 0.687193 RAD 0.00617284 - txt002 - SPHERE CENTER -0.172236 -0.0607319 0.71089 RAD 0.00617284 - txt002 - SPHERE CENTER -0.190363 -0.0443964 0.707118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.195615 -0.0684488 0.709006 RAD 0.00617284 - txt002 - SPHERE CENTER -0.165658 -0.0762577 0.692853 RAD 0.00617284 - txt002 - SPHERE CENTER -0.189036 -0.0839747 0.690969 RAD 0.00617284 - txt002 - SPHERE CENTER -0.177206 -0.075448 0.671044 RAD 0.00617284 - txt002 - SPHERE CENTER -0.187119 -0.0172857 0.6286 RAD 0.0185185 - txt002 - SPHERE CENTER -0.176731 -0.00705049 0.608675 RAD 0.00617284 - txt002 - SPHERE CENTER -0.192673 -0.025725 0.60607 RAD 0.00617284 - txt002 - SPHERE CENTER -0.200733 -0.00352517 0.613272 RAD 0.00617284 - txt002 - SPHERE CENTER -0.171177 0.00138875 0.631205 RAD 0.00617284 - txt002 - SPHERE CENTER -0.195179 0.00491406 0.635801 RAD 0.00617284 - txt002 - SPHERE CENTER -0.181564 -0.00884647 0.65113 RAD 0.00617284 - txt002 - SPHERE CENTER -0.163117 -0.020811 0.624003 RAD 0.00617284 - txt002 - SPHERE CENTER -0.173504 -0.0310463 0.643928 RAD 0.00617284 - txt002 - SPHERE CENTER -0.179058 -0.0394855 0.621398 RAD 0.00617284 - txt002 - SPHERE CENTER -0.215921 0.00673113 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER -0.20044 0.0258737 0.690591 RAD 0.00617284 - txt002 - SPHERE CENTER -0.196602 0.00551963 0.677151 RAD 0.00617284 - txt002 - SPHERE CENTER -0.215612 0.0203763 0.671903 RAD 0.00617284 - txt002 - SPHERE CENTER -0.21976 0.0270852 0.705919 RAD 0.00617284 - txt002 - SPHERE CENTER -0.234932 0.0215878 0.687231 RAD 0.00617284 - txt002 - SPHERE CENTER -0.235241 0.00794264 0.707807 RAD 0.00617284 - txt002 - SPHERE CENTER -0.200749 0.0122285 0.711167 RAD 0.00617284 - txt002 - SPHERE CENTER -0.21623 -0.00691403 0.713055 RAD 0.00617284 - txt002 - SPHERE CENTER -0.196911 -0.00812553 0.697727 RAD 0.00617284 - txt002 - SPHERE CENTER -0.245428 -0.0910116 0.715923 RAD 0.0185185 - txt002 - SPHERE CENTER -0.234308 -0.0942304 0.737733 RAD 0.00617284 - txt002 - SPHERE CENTER -0.221514 -0.0854464 0.718528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.238704 -0.0714204 0.729364 RAD 0.00617284 - txt002 - SPHERE CENTER -0.258223 -0.0997955 0.735128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.262619 -0.0769856 0.726759 RAD 0.00617284 - txt002 - SPHERE CENTER -0.269343 -0.0965768 0.713318 RAD 0.00617284 - txt002 - SPHERE CENTER -0.241032 -0.113822 0.724292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.252152 -0.110603 0.702483 RAD 0.00617284 - txt002 - SPHERE CENTER -0.228237 -0.105038 0.705088 RAD 0.00617284 - txt002 - SPHERE CENTER -0.277564 -0.0243582 0.719322 RAD 0.0185185 - txt002 - SPHERE CENTER -0.275459 -0.0076281 0.737359 RAD 0.00617284 - txt002 - SPHERE CENTER -0.255218 -0.0167139 0.726523 RAD 0.00617284 - txt002 - SPHERE CENTER -0.270078 -0.00142185 0.714074 RAD 0.00617284 - txt002 - SPHERE CENTER -0.297806 -0.0152725 0.730157 RAD 0.00617284 - txt002 - SPHERE CENTER -0.292425 -0.00906621 0.706872 RAD 0.00617284 - txt002 - SPHERE CENTER -0.299911 -0.0320026 0.71212 RAD 0.00617284 - txt002 - SPHERE CENTER -0.282946 -0.0305645 0.742607 RAD 0.00617284 - txt002 - SPHERE CENTER -0.285051 -0.0472946 0.72457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.262704 -0.0396503 0.731771 RAD 0.00617284 - txt002 - SPHERE CENTER -0.310405 -0.0794645 0.682285 RAD 0.0185185 - txt002 - SPHERE CENTER -0.324811 -0.0817333 0.702209 RAD 0.00617284 - txt002 - SPHERE CENTER -0.300317 -0.0800146 0.704814 RAD 0.00617284 - txt002 - SPHERE CENTER -0.313378 -0.0603366 0.697613 RAD 0.00617284 - txt002 - SPHERE CENTER -0.334899 -0.0811832 0.67968 RAD 0.00617284 - txt002 - SPHERE CENTER -0.323466 -0.0597864 0.675083 RAD 0.00617284 - txt002 - SPHERE CENTER -0.320493 -0.0789143 0.659755 RAD 0.00617284 - txt002 - SPHERE CENTER -0.321838 -0.100861 0.686881 RAD 0.00617284 - txt002 - SPHERE CENTER -0.307433 -0.0985923 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER -0.297345 -0.0991425 0.689486 RAD 0.00617284 - txt002 - SPHERE CENTER -0.216626 -0.115028 0.652044 RAD 0.0185185 - txt002 - SPHERE CENTER -0.195663 -0.127519 0.655816 RAD 0.00617284 - txt002 - SPHERE CENTER -0.194866 -0.104303 0.647447 RAD 0.00617284 - txt002 - SPHERE CENTER -0.201738 -0.108803 0.670732 RAD 0.00617284 - txt002 - SPHERE CENTER -0.217423 -0.138245 0.660413 RAD 0.00617284 - txt002 - SPHERE CENTER -0.223497 -0.119529 0.675329 RAD 0.00617284 - txt002 - SPHERE CENTER -0.238386 -0.125754 0.656641 RAD 0.00617284 - txt002 - SPHERE CENTER -0.210551 -0.133744 0.637128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.231514 -0.121254 0.633356 RAD 0.00617284 - txt002 - SPHERE CENTER -0.209754 -0.110528 0.628759 RAD 0.00617284 - txt002 - SPHERE CENTER -0.281603 -0.103481 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER -0.291073 -0.126206 0.620293 RAD 0.00617284 - txt002 - SPHERE CENTER -0.271345 -0.119897 0.633733 RAD 0.00617284 - txt002 - SPHERE CENTER -0.293457 -0.110246 0.638981 RAD 0.00617284 - txt002 - SPHERE CENTER -0.301332 -0.10979 0.604965 RAD 0.00617284 - txt002 - SPHERE CENTER -0.303716 -0.0938302 0.623653 RAD 0.00617284 - txt002 - SPHERE CENTER -0.291862 -0.0870656 0.603077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.279219 -0.119442 0.599717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.269749 -0.0967168 0.597829 RAD 0.00617284 - txt002 - SPHERE CENTER -0.25949 -0.113132 0.613157 RAD 0.00617284 - txt002 - SPHERE CENTER -0.21996 -0.0723919 0.591563 RAD 0.0185185 - txt002 - SPHERE CENTER -0.20388 -0.0673141 0.573526 RAD 0.00617284 - txt002 - SPHERE CENTER -0.216456 -0.0490355 0.584361 RAD 0.00617284 - txt002 - SPHERE CENTER -0.198742 -0.0609052 0.596811 RAD 0.00617284 - txt002 - SPHERE CENTER -0.207384 -0.0906706 0.580727 RAD 0.00617284 - txt002 - SPHERE CENTER -0.202246 -0.0842617 0.604012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.223463 -0.0957484 0.598764 RAD 0.00617284 - txt002 - SPHERE CENTER -0.225098 -0.0788008 0.568278 RAD 0.00617284 - txt002 - SPHERE CENTER -0.241177 -0.0838786 0.586315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.237674 -0.0605222 0.579113 RAD 0.00617284 - txt002 - SPHERE CENTER -0.471405 0.471405 1.11022e-16 RAD 0.166667 - txt002 - SPHERE CENTER -0.508983 0.690426 8.51251e-17 RAD 0.0555556 - txt002 - SPHERE CENTER -0.484794 0.755941 -0.0246914 RAD 0.0185185 - txt002 - SPHERE CENTER -0.47411 0.767658 -0.0436186 RAD 0.00617284 - txt002 - SPHERE CENTER -0.467528 0.744501 -0.0381316 RAD 0.00617284 - txt002 - SPHERE CENTER -0.489758 0.749038 -0.0478724 RAD 0.00617284 - txt002 - SPHERE CENTER -0.491377 0.779098 -0.0301783 RAD 0.00617284 - txt002 - SPHERE CENTER -0.507025 0.760478 -0.0344321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.502061 0.767382 -0.0112511 RAD 0.00617284 - txt002 - SPHERE CENTER -0.469146 0.774562 -0.0204376 RAD 0.00617284 - txt002 - SPHERE CENTER -0.47983 0.762845 -0.00151032 RAD 0.00617284 - txt002 - SPHERE CENTER -0.462564 0.751405 -0.0149506 RAD 0.00617284 - txt002 - SPHERE CENTER -0.436283 0.7029 -0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER -0.418941 0.714226 -0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER -0.43889 0.704751 -0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.44101 0.724842 -0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.416335 0.712374 0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER -0.438403 0.722991 0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER -0.433677 0.701048 0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER -0.414215 0.692283 -0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER -0.431557 0.680957 0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.434163 0.682808 -0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER -0.478434 0.695668 -0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER -0.481931 0.703418 -0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER -0.500827 0.694124 -0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER -0.491475 0.716184 -0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER -0.459538 0.704962 -0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER -0.469082 0.717727 -0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.456041 0.697211 -0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER -0.46889 0.682902 -0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER -0.465393 0.675152 -0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER -0.487786 0.673608 -0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER -0.557494 0.743468 -0.0178949 RAD 0.0185185 - txt002 - SPHERE CENTER -0.560084 0.767402 -0.0233819 RAD 0.00617284 - txt002 - SPHERE CENTER -0.543179 0.760285 -0.00685171 RAD 0.00617284 - txt002 - SPHERE CENTER -0.53997 0.755145 -0.0307879 RAD 0.00617284 - txt002 - SPHERE CENTER -0.574398 0.750585 -0.0344251 RAD 0.00617284 - txt002 - SPHERE CENTER -0.554284 0.738328 -0.0418311 RAD 0.00617284 - txt002 - SPHERE CENTER -0.571808 0.726651 -0.0289382 RAD 0.00617284 - txt002 - SPHERE CENTER -0.577608 0.755725 -0.0104889 RAD 0.00617284 - txt002 - SPHERE CENTER -0.575017 0.731791 -0.00500196 RAD 0.00617284 - txt002 - SPHERE CENTER -0.560703 0.748608 0.00604126 RAD 0.00617284 - txt002 - SPHERE CENTER -0.551134 0.683194 -0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER -0.573364 0.687731 -0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.571303 0.682033 -0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER -0.56324 0.703871 -0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER -0.553195 0.688893 -0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER -0.543071 0.705033 -0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER -0.530964 0.684356 -0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER -0.561258 0.667055 -0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER -0.539027 0.662518 -0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER -0.559196 0.661356 -0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER -0.581682 0.677953 0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER -0.601808 0.682851 0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER -0.579842 0.680568 0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.58454 0.700216 0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.603648 0.680237 -0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER -0.58638 0.697602 -0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER -0.583522 0.675339 -0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER -0.59895 0.660588 0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER -0.578824 0.65569 -0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.576984 0.658304 0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER -0.515343 0.7507 0.0425863 RAD 0.0185185 - txt002 - SPHERE CENTER -0.506594 0.773394 0.0468401 RAD 0.00617284 - txt002 - SPHERE CENTER -0.491321 0.755462 0.0394341 RAD 0.00617284 - txt002 - SPHERE CENTER -0.507924 0.764807 0.0237283 RAD 0.00617284 - txt002 - SPHERE CENTER -0.530616 0.768632 0.0499923 RAD 0.00617284 - txt002 - SPHERE CENTER -0.531946 0.760045 0.0268805 RAD 0.00617284 - txt002 - SPHERE CENTER -0.539365 0.745938 0.0457385 RAD 0.00617284 - txt002 - SPHERE CENTER -0.514012 0.759287 0.065698 RAD 0.00617284 - txt002 - SPHERE CENTER -0.522762 0.736593 0.0614442 RAD 0.00617284 - txt002 - SPHERE CENTER -0.49874 0.741355 0.058292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.539531 0.685185 0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER -0.538818 0.693658 0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER -0.517905 0.691194 0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER -0.534075 0.708875 0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER -0.560445 0.687649 0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555702 0.702866 0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.561158 0.679176 0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER -0.544274 0.669969 0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER -0.544988 0.661495 0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER -0.523361 0.667505 0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER -0.466832 0.697658 0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER -0.447385 0.709346 0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.447429 0.703286 0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER -0.46231 0.721188 0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER -0.466788 0.703718 0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER -0.481713 0.71556 0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER -0.486235 0.692031 0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER -0.451907 0.685816 0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER -0.471354 0.674129 0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER -0.451951 0.679757 0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER -0.335322 0.607487 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.283164 0.659645 0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER -0.269894 0.672915 0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER -0.275822 0.649528 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.293281 0.666987 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.277236 0.683032 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.300624 0.677104 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.290507 0.669762 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.259777 0.665573 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.273047 0.652302 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.265705 0.642185 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.286452 0.603979 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.279361 0.614273 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.303327 0.613293 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.288206 0.628413 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.262487 0.604959 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.271332 0.619099 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.269578 0.594664 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.277607 0.589839 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.284698 0.579544 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.301572 0.588858 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.33883 0.656357 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.328536 0.663448 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.314396 0.654603 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.329516 0.639482 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.35297 0.665202 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.353951 0.641237 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.363265 0.658111 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.33785 0.680322 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.348145 0.673232 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.32371 0.671477 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.332034 0.663153 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.321274 0.684748 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.308341 0.666888 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.326131 0.678752 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.344967 0.681014 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.349824 0.675018 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.355727 0.659419 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.327177 0.669149 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.337937 0.647554 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.314244 0.651289 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.3877 0.659866 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.391875 0.684201 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.37258 0.674986 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.37258 0.674986 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.406996 0.669081 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.3877 0.659866 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.40282 0.644745 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.406996 0.669081 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.40282 0.644745 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.3877 0.659866 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.384191 0.610996 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.389739 0.622198 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.366159 0.617804 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.378964 0.63493 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.407771 0.61539 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.396997 0.628121 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.402224 0.604188 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.394966 0.598265 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER -0.389418 0.587062 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.371386 0.593871 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.279656 0.610775 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.258061 0.621535 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.264057 0.616678 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.275921 0.634468 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.27366 0.615632 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.29152 0.628565 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.295255 0.604872 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.261795 0.597842 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.28339 0.587082 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.267791 0.592985 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.331813 0.558618 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.320611 0.55307 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.30788 0.563845 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.325005 0.57665 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.344544 0.547843 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER -0.348938 0.571423 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.355747 0.553391 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.327419 0.535038 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.338621 0.540585 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.314688 0.545813 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.282943 0.555109 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.258608 0.550934 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.267823 0.570229 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.267823 0.570229 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.273728 0.535813 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.282943 0.555109 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.298064 0.539989 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.273728 0.535813 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.298064 0.539989 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.282943 0.555109 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.335322 0.607487 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.313405 0.629404 -0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.316595 0.626214 -0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.318408 0.606941 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.335868 0.624401 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.311592 0.648676 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.330864 0.646863 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.308402 0.651867 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.294133 0.631217 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.290942 0.634407 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.295946 0.611945 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.331813 0.558618 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.319608 0.539107 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.307378 0.556863 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.322499 0.541743 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.344043 0.540862 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER -0.346933 0.543497 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.356248 0.560372 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.328923 0.555982 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.341128 0.575492 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.316693 0.573738 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.384191 0.610996 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.403702 0.623201 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.401066 0.62031 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.385946 0.635431 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.386827 0.613886 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.369071 0.626116 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.367317 0.601681 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.401947 0.598766 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER -0.382437 0.586561 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399312 0.595876 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.316914 0.678274 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.305407 0.69384 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.296616 0.671002 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.317721 0.674446 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.325704 0.701111 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.338018 0.681717 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.337211 0.685545 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.3046 0.697667 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.316107 0.682101 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.295809 0.67483 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.3877 0.659866 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.391875 0.684201 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.37258 0.674986 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.37258 0.674986 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.406996 0.669081 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.3877 0.659866 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.40282 0.644745 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.406996 0.669081 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.40282 0.644745 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.3877 0.659866 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.33883 0.656357 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.329538 0.677411 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.314897 0.661584 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.332022 0.674389 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.353472 0.672184 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.355956 0.669162 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.362764 0.65113 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.336346 0.659378 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.345639 0.638325 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.321705 0.643552 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.264535 0.625895 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.248969 0.637402 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.268363 0.625088 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.271807 0.646193 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.245142 0.638209 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.267979 0.647 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.260708 0.626702 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.241698 0.617105 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.257264 0.605598 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.261092 0.604791 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.286452 0.603979 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.265398 0.613271 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.26842 0.610787 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.281225 0.627912 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.283431 0.606463 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.299257 0.621104 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.304484 0.59717 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.270625 0.589337 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.291679 0.580045 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.273647 0.586853 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.282943 0.555109 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.258608 0.550934 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.267823 0.570229 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.267823 0.570229 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.273728 0.535813 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.282943 0.555109 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.298064 0.539989 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.273728 0.535813 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.298064 0.539989 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.282943 0.555109 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.645066 0.554344 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.681385 0.616373 -0.129006 RAD 0.0185185 - txt002 - SPHERE CENTER -0.678928 0.639472 -0.137375 RAD 0.00617284 - txt002 - SPHERE CENTER -0.661636 0.629767 -0.122663 RAD 0.00617284 - txt002 - SPHERE CENTER -0.664108 0.621631 -0.145845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.698678 0.626079 -0.143718 RAD 0.00617284 - txt002 - SPHERE CENTER -0.683858 0.608237 -0.152187 RAD 0.00617284 - txt002 - SPHERE CENTER -0.701135 0.602979 -0.135349 RAD 0.00617284 - txt002 - SPHERE CENTER -0.696205 0.634214 -0.120537 RAD 0.00617284 - txt002 - SPHERE CENTER -0.698662 0.611115 -0.112168 RAD 0.00617284 - txt002 - SPHERE CENTER -0.678912 0.624508 -0.105825 RAD 0.00617284 - txt002 - SPHERE CENTER -0.649723 0.609912 -0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER -0.640648 0.631982 -0.0560094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.625749 0.614812 -0.0656463 RAD 0.00617284 - txt002 - SPHERE CENTER -0.64267 0.62585 -0.0798417 RAD 0.00617284 - txt002 - SPHERE CENTER -0.664623 0.627081 -0.0527151 RAD 0.00617284 - txt002 - SPHERE CENTER -0.666645 0.620949 -0.0765474 RAD 0.00617284 - txt002 - SPHERE CENTER -0.673698 0.605012 -0.0590577 RAD 0.00617284 - txt002 - SPHERE CENTER -0.647702 0.616044 -0.0385197 RAD 0.00617284 - txt002 - SPHERE CENTER -0.656777 0.593974 -0.0448623 RAD 0.00617284 - txt002 - SPHERE CENTER -0.632802 0.598874 -0.0481565 RAD 0.00617284 - txt002 - SPHERE CENTER -0.607573 0.617144 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.595495 0.63057 -0.139672 RAD 0.00617284 - txt002 - SPHERE CENTER -0.594239 0.605919 -0.140323 RAD 0.00617284 - txt002 - SPHERE CENTER -0.615286 0.617371 -0.146288 RAD 0.00617284 - txt002 - SPHERE CENTER -0.608828 0.641795 -0.122182 RAD 0.00617284 - txt002 - SPHERE CENTER -0.628619 0.628595 -0.128798 RAD 0.00617284 - txt002 - SPHERE CENTER -0.620906 0.628369 -0.105343 RAD 0.00617284 - txt002 - SPHERE CENTER -0.587782 0.630343 -0.116217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.59986 0.616917 -0.0993785 RAD 0.00617284 - txt002 - SPHERE CENTER -0.586526 0.605692 -0.116868 RAD 0.00617284 - txt002 - SPHERE CENTER -0.676727 0.560805 -0.177765 RAD 0.0185185 - txt002 - SPHERE CENTER -0.689897 0.57563 -0.192477 RAD 0.00617284 - txt002 - SPHERE CENTER -0.693998 0.575587 -0.168128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.673115 0.585222 -0.177114 RAD 0.00617284 - txt002 - SPHERE CENTER -0.672626 0.560848 -0.202114 RAD 0.00617284 - txt002 - SPHERE CENTER -0.655844 0.57044 -0.186751 RAD 0.00617284 - txt002 - SPHERE CENTER -0.659456 0.546023 -0.187402 RAD 0.00617284 - txt002 - SPHERE CENTER -0.693509 0.551213 -0.193128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.680339 0.536388 -0.178416 RAD 0.00617284 - txt002 - SPHERE CENTER -0.69761 0.55117 -0.16878 RAD 0.00617284 - txt002 - SPHERE CENTER -0.602915 0.561576 -0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER -0.602201 0.570049 -0.194773 RAD 0.00617284 - txt002 - SPHERE CENTER -0.623084 0.560414 -0.185788 RAD 0.00617284 - txt002 - SPHERE CENTER -0.615021 0.582252 -0.177557 RAD 0.00617284 - txt002 - SPHERE CENTER -0.582032 0.571211 -0.180578 RAD 0.00617284 - txt002 - SPHERE CENTER -0.594852 0.583414 -0.163362 RAD 0.00617284 - txt002 - SPHERE CENTER -0.582745 0.562738 -0.157397 RAD 0.00617284 - txt002 - SPHERE CENTER -0.590095 0.549372 -0.188808 RAD 0.00617284 - txt002 - SPHERE CENTER -0.590808 0.540899 -0.165627 RAD 0.00617284 - txt002 - SPHERE CENTER -0.610978 0.539737 -0.179823 RAD 0.00617284 - txt002 - SPHERE CENTER -0.640408 0.498776 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.627785 0.478525 -0.166213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.615951 0.497935 -0.156576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.630799 0.484234 -0.142381 RAD 0.00617284 - txt002 - SPHERE CENTER -0.652241 0.479365 -0.169507 RAD 0.00617284 - txt002 - SPHERE CENTER -0.655255 0.485075 -0.145675 RAD 0.00617284 - txt002 - SPHERE CENTER -0.664864 0.499616 -0.163165 RAD 0.00617284 - txt002 - SPHERE CENTER -0.637394 0.493066 -0.183703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.650016 0.513317 -0.17736 RAD 0.00617284 - txt002 - SPHERE CENTER -0.62556 0.512476 -0.174066 RAD 0.00617284 - txt002 - SPHERE CENTER -0.718878 0.553573 -0.117284 RAD 0.0185185 - txt002 - SPHERE CENTER -0.73992 0.563328 -0.108814 RAD 0.00617284 - txt002 - SPHERE CENTER -0.720935 0.559693 -0.0934517 RAD 0.00617284 - txt002 - SPHERE CENTER -0.719679 0.577348 -0.110668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.737863 0.557208 -0.132647 RAD 0.00617284 - txt002 - SPHERE CENTER -0.717623 0.571228 -0.1345 RAD 0.00617284 - txt002 - SPHERE CENTER -0.716821 0.547453 -0.141116 RAD 0.00617284 - txt002 - SPHERE CENTER -0.739118 0.539553 -0.115431 RAD 0.00617284 - txt002 - SPHERE CENTER -0.718076 0.529798 -0.1239 RAD 0.00617284 - txt002 - SPHERE CENTER -0.720133 0.535918 -0.100068 RAD 0.00617284 - txt002 - SPHERE CENTER -0.682558 0.491544 -0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.688647 0.474542 -0.0825505 RAD 0.00617284 - txt002 - SPHERE CENTER -0.666351 0.485132 -0.0818993 RAD 0.00617284 - txt002 - SPHERE CENTER -0.686417 0.498226 -0.0759343 RAD 0.00617284 - txt002 - SPHERE CENTER -0.704854 0.480953 -0.10004 RAD 0.00617284 - txt002 - SPHERE CENTER -0.702624 0.504637 -0.093424 RAD 0.00617284 - txt002 - SPHERE CENTER -0.698765 0.497955 -0.116879 RAD 0.00617284 - txt002 - SPHERE CENTER -0.684788 0.46786 -0.106005 RAD 0.00617284 - txt002 - SPHERE CENTER -0.678699 0.484862 -0.122844 RAD 0.00617284 - txt002 - SPHERE CENTER -0.662492 0.47845 -0.105354 RAD 0.00617284 - txt002 - SPHERE CENTER -0.687216 0.547112 -0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER -0.690713 0.554862 -0.0274488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.667813 0.552739 -0.0364345 RAD 0.00617284 - txt002 - SPHERE CENTER -0.682694 0.570641 -0.0446649 RAD 0.00617284 - txt002 - SPHERE CENTER -0.710116 0.549235 -0.0416443 RAD 0.00617284 - txt002 - SPHERE CENTER -0.702097 0.565014 -0.0588603 RAD 0.00617284 - txt002 - SPHERE CENTER -0.706619 0.541484 -0.0648253 RAD 0.00617284 - txt002 - SPHERE CENTER -0.695235 0.531333 -0.0334138 RAD 0.00617284 - txt002 - SPHERE CENTER -0.691738 0.523582 -0.0565949 RAD 0.00617284 - txt002 - SPHERE CENTER -0.672335 0.52921 -0.0423994 RAD 0.00617284 - txt002 - SPHERE CENTER -0.471405 0.471405 -0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER -0.501645 0.501645 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.499795 0.519956 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.493653 0.523893 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.479397 0.509638 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.507788 0.497708 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.48739 0.48739 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER -0.509638 0.479397 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.522043 0.511963 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER -0.523893 0.493653 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.515901 0.515901 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER -0.542955 0.490576 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.559233 0.507719 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.539759 0.502501 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.536564 0.514426 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.562428 0.495794 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER -0.539759 0.502501 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.54615 0.478651 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.565623 0.483869 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.549345 0.466726 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.54615 0.478651 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.490576 0.542955 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.483869 0.565623 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.466726 0.549345 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.478651 0.54615 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.507719 0.559233 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.502501 0.539759 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.514426 0.536564 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.495794 0.562428 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.502501 0.539759 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.478651 0.54615 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.430095 0.482473 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.430434 0.489762 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.449569 0.477255 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER -0.445366 0.500519 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.41096 0.49498 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER -0.425893 0.505737 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.410622 0.487691 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER -0.415162 0.471716 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.414824 0.464428 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.434297 0.45921 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.419026 0.523783 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.404771 0.538038 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER -0.410297 0.515053 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.427756 0.532513 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.4135 0.546768 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.436486 0.541242 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.427756 0.532513 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.396041 0.529309 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.410297 0.515053 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.401567 0.506323 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399854 0.452233 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.377186 0.45894 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.396659 0.464158 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.393464 0.476083 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.380381 0.447015 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.396659 0.464158 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.40305 0.440308 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.383576 0.43509 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.406245 0.428383 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.40305 0.440308 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.482473 0.430095 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.48121 0.407271 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER -0.464428 0.414824 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.487691 0.410622 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER -0.499256 0.422542 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.505737 0.425893 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.500519 0.445366 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.475992 0.426744 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.477255 0.449569 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER -0.45921 0.434297 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.452233 0.399854 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.43509 0.383576 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.428383 0.406245 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.440308 0.40305 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.45894 0.377186 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.464158 0.396659 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.476083 0.393464 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.447015 0.380381 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER -0.464158 0.396659 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.440308 0.40305 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.523783 0.419026 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.538038 0.404771 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.515053 0.410297 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.532513 0.427756 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.546768 0.4135 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.541242 0.436486 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.532513 0.427756 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.529309 0.396041 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.515053 0.410297 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.506323 0.401567 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.607487 0.335322 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.659645 0.283164 -0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER -0.672915 0.269894 -0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER -0.649528 0.275822 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.666987 0.293281 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.683032 0.277236 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.677104 0.300624 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.669762 0.290507 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.665573 0.259777 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.652302 0.273047 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.642185 0.265705 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.603979 0.286452 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.592776 0.280905 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.580045 0.291679 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.59717 0.304484 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.61671 0.275678 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.621104 0.299257 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.627912 0.281225 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.599585 0.262872 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.610787 0.26842 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.586853 0.273647 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.656357 0.33883 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.661904 0.350033 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.638325 0.345639 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.65113 0.362764 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.679937 0.343224 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.669162 0.355956 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.674389 0.332022 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.667131 0.326099 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.661584 0.314897 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.643552 0.321705 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.663153 0.332034 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.685865 0.340177 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.679339 0.33606 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.669651 0.355123 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.669679 0.336151 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.653465 0.351097 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.646968 0.328008 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.679367 0.317089 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.656656 0.308945 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.672841 0.312971 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.659866 0.3877 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.664041 0.412036 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.644745 0.40282 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.644745 0.40282 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.679161 0.396915 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.659866 0.3877 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.674986 0.37258 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.679161 0.396915 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.674986 0.37258 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.659866 0.3877 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.610996 0.384191 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.600701 0.391282 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.586561 0.382437 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.601681 0.367317 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.625136 0.393037 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER -0.626116 0.369071 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.635431 0.385946 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.610016 0.408157 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.62031 0.401066 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.595876 0.399312 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.610775 0.279656 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.602632 0.256944 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.587686 0.273158 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.606749 0.26347 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.62572 0.263442 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.629838 0.269968 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.633864 0.286153 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.606658 0.27313 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.614801 0.295841 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.591712 0.289344 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.558618 0.331813 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.551527 0.342108 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.575492 0.341128 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.560372 0.356248 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.534652 0.332793 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.543497 0.346933 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.541743 0.322499 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.549772 0.317673 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER -0.556863 0.307378 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.573738 0.316693 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555109 0.282943 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.530773 0.278768 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.539989 0.298064 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.539989 0.298064 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.545894 0.263648 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555109 0.282943 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.570229 0.267823 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.545894 0.263648 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.570229 0.267823 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555109 0.282943 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.645066 0.554344 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.668521 0.610229 0.153697 RAD 0.0185185 - txt002 - SPHERE CENTER -0.663938 0.633406 0.160875 RAD 0.00617284 - txt002 - SPHERE CENTER -0.64522 0.617928 0.156428 RAD 0.00617284 - txt002 - SPHERE CENTER -0.65892 0.626429 0.137727 RAD 0.00617284 - txt002 - SPHERE CENTER -0.687239 0.625707 0.158144 RAD 0.00617284 - txt002 - SPHERE CENTER -0.682221 0.61873 0.134996 RAD 0.00617284 - txt002 - SPHERE CENTER -0.691822 0.602531 0.150967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.673539 0.617206 0.176845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.678123 0.59403 0.169668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.654822 0.601728 0.172398 RAD 0.00617284 - txt002 - SPHERE CENTER -0.598918 0.585648 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.580238 0.601562 0.162601 RAD 0.00617284 - txt002 - SPHERE CENTER -0.581665 0.587563 0.142311 RAD 0.00617284 - txt002 - SPHERE CENTER -0.59781 0.605914 0.14581 RAD 0.00617284 - txt002 - SPHERE CENTER -0.597491 0.599646 0.18016 RAD 0.00617284 - txt002 - SPHERE CENTER -0.615063 0.603999 0.163369 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616171 0.583732 0.177429 RAD 0.00617284 - txt002 - SPHERE CENTER -0.581346 0.581295 0.176661 RAD 0.00617284 - txt002 - SPHERE CENTER -0.600026 0.565381 0.173931 RAD 0.00617284 - txt002 - SPHERE CENTER -0.582773 0.567297 0.156372 RAD 0.00617284 - txt002 - SPHERE CENTER -0.619787 0.622977 0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.608008 0.63767 0.0834188 RAD 0.00617284 - txt002 - SPHERE CENTER -0.601637 0.613891 0.0853287 RAD 0.00617284 - txt002 - SPHERE CENTER -0.623239 0.620102 0.0751099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.626157 0.646756 0.0974792 RAD 0.00617284 - txt002 - SPHERE CENTER -0.641389 0.629188 0.0891702 RAD 0.00617284 - txt002 - SPHERE CENTER -0.637936 0.632063 0.113449 RAD 0.00617284 - txt002 - SPHERE CENTER -0.604555 0.640545 0.107698 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616334 0.625852 0.123668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.598184 0.616766 0.109608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.714669 0.578925 0.104938 RAD 0.0185185 - txt002 - SPHERE CENTER -0.729812 0.597914 0.109385 RAD 0.00617284 - txt002 - SPHERE CENTER -0.711617 0.592661 0.125228 RAD 0.00617284 - txt002 - SPHERE CENTER -0.70632 0.602084 0.103028 RAD 0.00617284 - txt002 - SPHERE CENTER -0.732864 0.584178 0.0890951 RAD 0.00617284 - txt002 - SPHERE CENTER -0.709372 0.588348 0.0827387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.71772 0.565189 0.0846485 RAD 0.00617284 - txt002 - SPHERE CENTER -0.738161 0.574755 0.111295 RAD 0.00617284 - txt002 - SPHERE CENTER -0.723017 0.555767 0.106848 RAD 0.00617284 - txt002 - SPHERE CENTER -0.719965 0.569503 0.127138 RAD 0.00617284 - txt002 - SPHERE CENTER -0.665934 0.591673 0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER -0.658095 0.605761 0.0319289 RAD 0.00617284 - txt002 - SPHERE CENTER -0.647455 0.607672 0.0541285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.643855 0.58746 0.0404111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.676573 0.589763 0.0284303 RAD 0.00617284 - txt002 - SPHERE CENTER -0.662334 0.571461 0.0369125 RAD 0.00617284 - txt002 - SPHERE CENTER -0.684413 0.575674 0.0471312 RAD 0.00617284 - txt002 - SPHERE CENTER -0.680174 0.609975 0.0421477 RAD 0.00617284 - txt002 - SPHERE CENTER -0.688013 0.595887 0.0608487 RAD 0.00617284 - txt002 - SPHERE CENTER -0.669535 0.611885 0.0643473 RAD 0.00617284 - txt002 - SPHERE CENTER -0.691213 0.52304 0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER -0.712906 0.511567 0.0596212 RAD 0.00617284 - txt002 - SPHERE CENTER -0.699372 0.507717 0.079911 RAD 0.00617284 - txt002 - SPHERE CENTER -0.710453 0.529503 0.0764123 RAD 0.00617284 - txt002 - SPHERE CENTER -0.704747 0.526889 0.0420622 RAD 0.00617284 - txt002 - SPHERE CENTER -0.702295 0.544826 0.0588533 RAD 0.00617284 - txt002 - SPHERE CENTER -0.683054 0.538362 0.044793 RAD 0.00617284 - txt002 - SPHERE CENTER -0.693665 0.505104 0.0455609 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671972 0.516576 0.0482916 RAD 0.00617284 - txt002 - SPHERE CENTER -0.680131 0.501254 0.0658506 RAD 0.00617284 - txt002 - SPHERE CENTER -0.6938 0.541596 0.165419 RAD 0.0185185 - txt002 - SPHERE CENTER -0.70016 0.547376 0.188567 RAD 0.00617284 - txt002 - SPHERE CENTER -0.676324 0.546319 0.182211 RAD 0.00617284 - txt002 - SPHERE CENTER -0.690564 0.564621 0.173728 RAD 0.00617284 - txt002 - SPHERE CENTER -0.717636 0.542652 0.171776 RAD 0.00617284 - txt002 - SPHERE CENTER -0.70804 0.559898 0.156937 RAD 0.00617284 - txt002 - SPHERE CENTER -0.711276 0.536873 0.148628 RAD 0.00617284 - txt002 - SPHERE CENTER -0.703396 0.524351 0.180258 RAD 0.00617284 - txt002 - SPHERE CENTER -0.697037 0.518571 0.157111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.679561 0.523294 0.173902 RAD 0.00617284 - txt002 - SPHERE CENTER -0.670344 0.48571 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.67091 0.466887 0.138803 RAD 0.00617284 - txt002 - SPHERE CENTER -0.650637 0.480853 0.136894 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671107 0.490138 0.147112 RAD 0.00617284 - txt002 - SPHERE CENTER -0.690617 0.471745 0.124743 RAD 0.00617284 - txt002 - SPHERE CENTER -0.690815 0.494995 0.133052 RAD 0.00617284 - txt002 - SPHERE CENTER -0.690052 0.490567 0.108773 RAD 0.00617284 - txt002 - SPHERE CENTER -0.670147 0.46246 0.114524 RAD 0.00617284 - txt002 - SPHERE CENTER -0.669581 0.481283 0.0985541 RAD 0.00617284 - txt002 - SPHERE CENTER -0.649874 0.476425 0.112614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.624197 0.517014 0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER -0.60809 0.516313 0.190293 RAD 0.00617284 - txt002 - SPHERE CENTER -0.60089 0.524375 0.168094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616221 0.538029 0.181811 RAD 0.00617284 - txt002 - SPHERE CENTER -0.631397 0.508952 0.193792 RAD 0.00617284 - txt002 - SPHERE CENTER -0.639529 0.530668 0.18531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.647504 0.509653 0.175091 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616065 0.495298 0.180075 RAD 0.00617284 - txt002 - SPHERE CENTER -0.632172 0.495999 0.161374 RAD 0.00617284 - txt002 - SPHERE CENTER -0.608865 0.50336 0.157875 RAD 0.00617284 - txt002 - SPHERE CENTER -0.607487 0.335322 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.629404 0.313405 0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.626214 0.316595 0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.606941 0.318408 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.624401 0.335868 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.648676 0.311592 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.646863 0.330864 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.651867 0.308402 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.631217 0.294133 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.634407 0.290942 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.611945 0.295946 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.558618 0.331813 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.537564 0.341105 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.540585 0.338621 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.553391 0.355747 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555596 0.334297 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.571423 0.348938 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.57665 0.325005 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.542791 0.317172 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER -0.563845 0.30788 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.545813 0.314688 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.610996 0.384191 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.601704 0.405245 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.587062 0.389418 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.604188 0.402224 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.625637 0.400018 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER -0.628121 0.396997 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.63493 0.378964 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.608512 0.387213 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.617804 0.366159 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.593871 0.371386 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.678274 0.316914 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.697473 0.31938 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.674538 0.318074 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.681812 0.338182 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.701209 0.31822 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.685547 0.337022 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.682009 0.315754 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.693935 0.298112 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.674736 0.295646 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671 0.296805 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.659866 0.3877 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.664041 0.412036 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.644745 0.40282 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.644745 0.40282 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.679161 0.396915 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.659866 0.3877 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.674986 0.37258 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.679161 0.396915 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.674986 0.37258 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.659866 0.3877 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.656357 0.33883 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.675867 0.351035 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.673232 0.348145 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.658111 0.363265 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.658993 0.341721 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.641237 0.353951 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.639482 0.329516 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.674113 0.3266 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.654603 0.314396 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671477 0.32371 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.625895 0.264535 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.623429 0.245336 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.604627 0.260997 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.624736 0.268271 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.644697 0.248874 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.646004 0.271809 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.647163 0.268073 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.624589 0.2416 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.627055 0.2608 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.605787 0.257262 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.603979 0.286452 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.591774 0.266942 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.579544 0.284698 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.594664 0.269578 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616209 0.268696 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.619099 0.271332 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.628413 0.288206 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.601088 0.283817 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.613293 0.303327 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.588858 0.301572 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555109 0.282943 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.530773 0.278768 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.539989 0.298064 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.539989 0.298064 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.545894 0.263648 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555109 0.282943 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.570229 0.267823 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.545894 0.263648 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.570229 0.267823 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555109 0.282943 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.471405 0.471405 0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER -0.441164 0.501645 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.424703 0.518106 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER -0.420089 0.505261 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.437548 0.522721 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.445778 0.51449 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.458623 0.519105 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.462239 0.498029 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.428319 0.497031 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.44478 0.48057 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.423704 0.484186 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399854 0.490576 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.382226 0.502679 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399854 0.490576 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.405389 0.511231 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.382226 0.502679 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.405389 0.511231 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399854 0.490576 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.376691 0.482024 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.39432 0.469922 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.39432 0.469922 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.452233 0.542955 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.44013 0.560583 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.431578 0.53742 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.452233 0.542955 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.460785 0.566118 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.472887 0.548489 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.472887 0.548489 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.44013 0.560583 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.452233 0.542955 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.431578 0.53742 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.512714 0.482473 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.51514 0.495905 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.492654 0.48988 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.506323 0.506323 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.5352 0.488498 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER -0.526383 0.498917 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.532774 0.475067 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.521531 0.472055 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.519105 0.458623 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.499045 0.46603 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.523783 0.523783 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.527958 0.548119 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.508662 0.538903 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.508662 0.538903 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.543078 0.532998 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.523783 0.523783 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.538903 0.508662 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.543078 0.532998 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.538903 0.508662 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.523783 0.523783 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.542955 0.452233 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.564273 0.4539 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.542955 0.452233 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.548489 0.472887 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.564273 0.4539 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.548489 0.472887 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.542955 0.452233 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.558738 0.433245 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.53742 0.431578 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.53742 0.431578 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.460336 0.430095 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.446904 0.427669 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.436486 0.436486 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.45293 0.450155 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.470754 0.421278 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.47678 0.443764 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.484186 0.423704 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.454311 0.407609 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER -0.467742 0.410035 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.443892 0.416426 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.490576 0.399854 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.488909 0.378536 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.469922 0.39432 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.490576 0.399854 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.509564 0.384071 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.511231 0.405389 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.511231 0.405389 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.488909 0.378536 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.490576 0.399854 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.469922 0.39432 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.419026 0.419026 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.39469 0.414851 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.403906 0.434147 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.403906 0.434147 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.409811 0.399731 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.419026 0.419026 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.434147 0.403906 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.409811 0.399731 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.434147 0.403906 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.419026 0.419026 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.643951 -0.172546 1.11022e-16 RAD 0.166667 - txt002 - SPHERE CENTER -0.835815 -0.157543 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.871646 -0.122136 0.165419 RAD 0.0185185 - txt002 - SPHERE CENTER -0.871334 -0.102403 0.180258 RAD 0.00617284 - txt002 - SPHERE CENTER -0.850164 -0.113406 0.173902 RAD 0.00617284 - txt002 - SPHERE CENTER -0.862937 -0.100577 0.157111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.892817 -0.111133 0.171776 RAD 0.00617284 - txt002 - SPHERE CENTER -0.884419 -0.109307 0.148628 RAD 0.00617284 - txt002 - SPHERE CENTER -0.893129 -0.130866 0.156937 RAD 0.00617284 - txt002 - SPHERE CENTER -0.880044 -0.123961 0.188567 RAD 0.00617284 - txt002 - SPHERE CENTER -0.880356 -0.143694 0.173728 RAD 0.00617284 - txt002 - SPHERE CENTER -0.858873 -0.134964 0.182211 RAD 0.00617284 - txt002 - SPHERE CENTER -0.799077 -0.135649 0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER -0.781177 -0.120908 0.180075 RAD 0.00617284 - txt002 - SPHERE CENTER -0.778973 -0.13149 0.157875 RAD 0.00617284 - txt002 - SPHERE CENTER -0.795477 -0.113462 0.161374 RAD 0.00617284 - txt002 - SPHERE CENTER -0.801282 -0.125067 0.193792 RAD 0.00617284 - txt002 - SPHERE CENTER -0.815582 -0.11762 0.175091 RAD 0.00617284 - txt002 - SPHERE CENTER -0.819182 -0.139808 0.18531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.784778 -0.143095 0.190293 RAD 0.00617284 - txt002 - SPHERE CENTER -0.802678 -0.157836 0.181811 RAD 0.00617284 - txt002 - SPHERE CENTER -0.782573 -0.153678 0.168094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.82339 -0.0854653 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.811594 -0.0654286 0.114524 RAD 0.00617284 - txt002 - SPHERE CENTER -0.80102 -0.0876595 0.112614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.820516 -0.0820122 0.0985541 RAD 0.00617284 - txt002 - SPHERE CENTER -0.833964 -0.0632344 0.124743 RAD 0.00617284 - txt002 - SPHERE CENTER -0.842886 -0.079818 0.108773 RAD 0.00617284 - txt002 - SPHERE CENTER -0.845761 -0.083271 0.133052 RAD 0.00617284 - txt002 - SPHERE CENTER -0.814468 -0.0688817 0.138803 RAD 0.00617284 - txt002 - SPHERE CENTER -0.826265 -0.0889183 0.147112 RAD 0.00617284 - txt002 - SPHERE CENTER -0.803895 -0.0911125 0.136894 RAD 0.00617284 - txt002 - SPHERE CENTER -0.908384 -0.14403 0.104938 RAD 0.0185185 - txt002 - SPHERE CENTER -0.926643 -0.128672 0.111295 RAD 0.00617284 - txt002 - SPHERE CENTER -0.90826 -0.133221 0.127138 RAD 0.00617284 - txt002 - SPHERE CENTER -0.904034 -0.1198 0.106848 RAD 0.00617284 - txt002 - SPHERE CENTER -0.926768 -0.139481 0.0890951 RAD 0.00617284 - txt002 - SPHERE CENTER -0.904159 -0.130608 0.0846485 RAD 0.00617284 - txt002 - SPHERE CENTER -0.908508 -0.154838 0.0827387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.930993 -0.152902 0.109385 RAD 0.00617284 - txt002 - SPHERE CENTER -0.912733 -0.16826 0.103028 RAD 0.00617284 - txt002 - SPHERE CENTER -0.912609 -0.157451 0.125228 RAD 0.00617284 - txt002 - SPHERE CENTER -0.860128 -0.107359 0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER -0.853284 -0.0905999 0.0455609 RAD 0.00617284 - txt002 - SPHERE CENTER -0.839638 -0.0940331 0.0658506 RAD 0.00617284 - txt002 - SPHERE CENTER -0.840233 -0.111382 0.0482916 RAD 0.00617284 - txt002 - SPHERE CENTER -0.873773 -0.103926 0.0420622 RAD 0.00617284 - txt002 - SPHERE CENTER -0.860723 -0.124708 0.044793 RAD 0.00617284 - txt002 - SPHERE CENTER -0.880618 -0.120685 0.0588533 RAD 0.00617284 - txt002 - SPHERE CENTER -0.873178 -0.086577 0.0596212 RAD 0.00617284 - txt002 - SPHERE CENTER -0.880022 -0.103336 0.0764123 RAD 0.00617284 - txt002 - SPHERE CENTER -0.859532 -0.0900102 0.079911 RAD 0.00617284 - txt002 - SPHERE CENTER -0.872552 -0.179437 0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER -0.894035 -0.188167 0.0421477 RAD 0.00617284 - txt002 - SPHERE CENTER -0.885777 -0.195141 0.0643473 RAD 0.00617284 - txt002 - SPHERE CENTER -0.89378 -0.172046 0.0608487 RAD 0.00617284 - txt002 - SPHERE CENTER -0.880811 -0.172463 0.0284303 RAD 0.00617284 - txt002 - SPHERE CENTER -0.880556 -0.156342 0.0471312 RAD 0.00617284 - txt002 - SPHERE CENTER -0.859328 -0.163733 0.0369125 RAD 0.00617284 - txt002 - SPHERE CENTER -0.872807 -0.195558 0.0319289 RAD 0.00617284 - txt002 - SPHERE CENTER -0.851325 -0.186828 0.0404111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.864549 -0.202532 0.0541285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.884071 -0.194213 0.153697 RAD 0.0185185 - txt002 - SPHERE CENTER -0.891905 -0.197746 0.176845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.867957 -0.193701 0.172398 RAD 0.00617284 - txt002 - SPHERE CENTER -0.884286 -0.175383 0.169668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.908019 -0.198259 0.158144 RAD 0.00617284 - txt002 - SPHERE CENTER -0.900401 -0.175896 0.150967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.900186 -0.194726 0.134996 RAD 0.00617284 - txt002 - SPHERE CENTER -0.89169 -0.216576 0.160875 RAD 0.00617284 - txt002 - SPHERE CENTER -0.883856 -0.213043 0.137727 RAD 0.00617284 - txt002 - SPHERE CENTER -0.867741 -0.212531 0.156428 RAD 0.00617284 - txt002 - SPHERE CENTER -0.84824 -0.229621 0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.843832 -0.25245 0.107698 RAD 0.00617284 - txt002 - SPHERE CENTER -0.826426 -0.235043 0.109608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.846687 -0.233837 0.123668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.865646 -0.247028 0.0974792 RAD 0.00617284 - txt002 - SPHERE CENTER -0.868501 -0.228415 0.113449 RAD 0.00617284 - txt002 - SPHERE CENTER -0.870053 -0.224198 0.0891702 RAD 0.00617284 - txt002 - SPHERE CENTER -0.845385 -0.248234 0.0834188 RAD 0.00617284 - txt002 - SPHERE CENTER -0.849792 -0.225404 0.0751099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.827978 -0.230827 0.0853287 RAD 0.00617284 - txt002 - SPHERE CENTER -0.811502 -0.207727 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.794108 -0.212743 0.176661 RAD 0.00617284 - txt002 - SPHERE CENTER -0.788345 -0.199907 0.156372 RAD 0.00617284 - txt002 - SPHERE CENTER -0.802328 -0.189621 0.173931 RAD 0.00617284 - txt002 - SPHERE CENTER -0.817265 -0.220563 0.18016 RAD 0.00617284 - txt002 - SPHERE CENTER -0.825486 -0.197441 0.177429 RAD 0.00617284 - txt002 - SPHERE CENTER -0.83466 -0.215547 0.163369 RAD 0.00617284 - txt002 - SPHERE CENTER -0.803282 -0.230849 0.162601 RAD 0.00617284 - txt002 - SPHERE CENTER -0.820676 -0.225832 0.14581 RAD 0.00617284 - txt002 - SPHERE CENTER -0.797518 -0.218012 0.142311 RAD 0.00617284 - txt002 - SPHERE CENTER -0.643951 -0.172546 0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER -0.61371 -0.142305 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.597249 -0.125845 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER -0.592635 -0.138689 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.610094 -0.12123 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.618324 -0.12946 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.631169 -0.124846 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.634785 -0.145921 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.600865 -0.14692 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.617326 -0.163381 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.596251 -0.159765 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.5724 -0.153374 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.554772 -0.141271 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.5724 -0.153374 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.577935 -0.13272 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.554772 -0.141271 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.577935 -0.13272 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.5724 -0.153374 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.549237 -0.161926 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.566866 -0.174029 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.566866 -0.174029 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.624779 -0.100996 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.612676 -0.0833673 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.604124 -0.10653 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.624779 -0.100996 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.633331 -0.0778329 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.645433 -0.0954616 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.645433 -0.0954616 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.612676 -0.0833673 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.624779 -0.100996 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.604124 -0.10653 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.68526 -0.161477 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.687686 -0.148046 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.6652 -0.154071 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.678869 -0.137627 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.707746 -0.155452 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER -0.698929 -0.145033 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.70532 -0.168883 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.694077 -0.171896 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.691651 -0.185327 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671591 -0.177921 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.696329 -0.120168 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.700504 -0.095832 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.681209 -0.105047 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.681209 -0.105047 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.715624 -0.110952 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.696329 -0.120168 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.711449 -0.135288 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.715624 -0.110952 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.711449 -0.135288 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.696329 -0.120168 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.715501 -0.191718 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.736819 -0.190051 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.715501 -0.191718 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.721035 -0.171063 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.736819 -0.190051 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.721035 -0.171063 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.715501 -0.191718 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.731284 -0.210706 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.709966 -0.212373 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.709966 -0.212373 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.632882 -0.213855 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.61945 -0.216282 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.609032 -0.207465 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.625476 -0.193796 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.6433 -0.222672 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.649326 -0.200186 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.656732 -0.220246 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.626857 -0.236341 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER -0.640288 -0.233915 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616438 -0.227525 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.663122 -0.244096 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.661455 -0.265414 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.642468 -0.249631 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.663122 -0.244096 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.68211 -0.25988 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.683777 -0.238562 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.683777 -0.238562 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.661455 -0.265414 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.663122 -0.244096 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.642468 -0.249631 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.591572 -0.224924 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.567237 -0.2291 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.576452 -0.209804 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.576452 -0.209804 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.582357 -0.24422 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.591572 -0.224924 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.606693 -0.240045 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.582357 -0.24422 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.606693 -0.240045 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.591572 -0.224924 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.69376 0.0133465 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.674309 0.0838533 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.66171 0.103063 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.653258 0.0800983 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.673446 0.0876683 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.682761 0.106818 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.694497 0.0914233 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.69536 0.0876083 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.662574 0.0992478 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.675172 0.0800382 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.654121 0.0762832 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.62221 0.0325183 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.604582 0.0446211 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.62221 0.0325183 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.627745 0.053173 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.604582 0.0446211 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.627745 0.053173 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.62221 0.0325183 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.599047 0.0239663 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616676 0.0118635 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616676 0.0118635 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.666287 0.0539145 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.662466 0.0547519 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.660752 0.0332597 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.682791 0.0439578 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.668 0.0754066 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.688325 0.0646126 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671821 0.0745692 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.645962 0.0647085 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.649783 0.0638711 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.644249 0.0432164 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.745859 0.0646815 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.750021 0.0887955 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.729506 0.078459 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.732161 0.0813312 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.766375 0.075018 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.748514 0.0675537 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.762212 0.050904 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.763719 0.0721458 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.759557 0.0480318 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.743204 0.0618093 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.737837 0.0347427 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.747099 0.0542122 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.743371 0.0553974 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.7241 0.0550267 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.741565 0.0335575 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.718566 0.0343719 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.732303 0.014088 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.760836 0.0339282 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.751574 0.0144587 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.757108 0.0351134 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.76531 -0.0058253 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.786629 -0.00415829 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.76531 -0.0058253 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.770845 0.0148294 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.786629 -0.00415829 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.770845 0.0148294 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.76531 -0.0058253 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.781094 -0.024813 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.759776 -0.02648 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.759776 -0.02648 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.701782 0.0432853 0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.693716 0.0608821 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.677932 0.0496759 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.694884 0.0652402 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.717566 0.0544915 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.718734 0.0588496 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.725632 0.0368947 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.700615 0.0389272 0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.708681 0.0213304 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.684831 0.027721 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.721234 -0.0272215 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.720593 -0.0310802 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.7 -0.0246945 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.718114 -0.00820099 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.741827 -0.0336072 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER -0.739347 -0.010728 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.742467 -0.0297485 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.723713 -0.0501007 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.724354 -0.046242 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.70312 -0.043715 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.649684 -0.00804971 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.628657 -0.00328338 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER -0.630031 0.000378614 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.642244 0.0152909 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.648309 -0.0117117 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.661896 0.00686255 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.669336 -0.016478 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.636097 -0.026624 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.657124 -0.0313903 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.637471 -0.022962 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.835815 -0.157543 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.899353 -0.119969 -0.117284 RAD 0.0185185 - txt002 - SPHERE CENTER -0.909872 -0.0977075 -0.115431 RAD 0.00617284 - txt002 - SPHERE CENTER -0.891613 -0.104052 -0.100068 RAD 0.00617284 - txt002 - SPHERE CENTER -0.886771 -0.0997803 -0.1239 RAD 0.00617284 - txt002 - SPHERE CENTER -0.917612 -0.113625 -0.132647 RAD 0.00617284 - txt002 - SPHERE CENTER -0.894512 -0.115698 -0.141116 RAD 0.00617284 - txt002 - SPHERE CENTER -0.907093 -0.135886 -0.1345 RAD 0.00617284 - txt002 - SPHERE CENTER -0.922453 -0.117896 -0.108814 RAD 0.00617284 - txt002 - SPHERE CENTER -0.911935 -0.140158 -0.110668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.904194 -0.124241 -0.0934517 RAD 0.00617284 - txt002 - SPHERE CENTER -0.868703 -0.130205 -0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER -0.867758 -0.11253 -0.0334138 RAD 0.00617284 - txt002 - SPHERE CENTER -0.846864 -0.122142 -0.0423994 RAD 0.00617284 - txt002 - SPHERE CENTER -0.860854 -0.107566 -0.0565949 RAD 0.00617284 - txt002 - SPHERE CENTER -0.889596 -0.120593 -0.0416443 RAD 0.00617284 - txt002 - SPHERE CENTER -0.882692 -0.115629 -0.0648253 RAD 0.00617284 - txt002 - SPHERE CENTER -0.890541 -0.138267 -0.0588603 RAD 0.00617284 - txt002 - SPHERE CENTER -0.875606 -0.135168 -0.0274488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.876551 -0.152843 -0.0446649 RAD 0.00617284 - txt002 - SPHERE CENTER -0.854713 -0.14478 -0.0364345 RAD 0.00617284 - txt002 - SPHERE CENTER -0.836885 -0.0844101 -0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.826973 -0.0627848 -0.106005 RAD 0.00617284 - txt002 - SPHERE CENTER -0.81296 -0.083104 -0.105354 RAD 0.00617284 - txt002 - SPHERE CENTER -0.830202 -0.0805529 -0.122844 RAD 0.00617284 - txt002 - SPHERE CENTER -0.850898 -0.0640908 -0.10004 RAD 0.00617284 - txt002 - SPHERE CENTER -0.854126 -0.0818589 -0.116879 RAD 0.00617284 - txt002 - SPHERE CENTER -0.860809 -0.0857161 -0.093424 RAD 0.00617284 - txt002 - SPHERE CENTER -0.833656 -0.0666419 -0.0825505 RAD 0.00617284 - txt002 - SPHERE CENTER -0.843568 -0.0882673 -0.0759343 RAD 0.00617284 - txt002 - SPHERE CENTER -0.819643 -0.0869612 -0.0818993 RAD 0.00617284 - txt002 - SPHERE CENTER -0.866465 -0.147308 -0.177765 RAD 0.0185185 - txt002 - SPHERE CENTER -0.876203 -0.130609 -0.193128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.879733 -0.128522 -0.16878 RAD 0.00617284 - txt002 - SPHERE CENTER -0.857385 -0.124356 -0.178416 RAD 0.00617284 - txt002 - SPHERE CENTER -0.862935 -0.149395 -0.202114 RAD 0.00617284 - txt002 - SPHERE CENTER -0.844117 -0.143141 -0.187402 RAD 0.00617284 - txt002 - SPHERE CENTER -0.853198 -0.166093 -0.186751 RAD 0.00617284 - txt002 - SPHERE CENTER -0.885283 -0.153561 -0.192477 RAD 0.00617284 - txt002 - SPHERE CENTER -0.875546 -0.170259 -0.177114 RAD 0.00617284 - txt002 - SPHERE CENTER -0.888813 -0.151474 -0.168128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.803997 -0.111748 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.798532 -0.108311 -0.183703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.797989 -0.131037 -0.174066 RAD 0.00617284 - txt002 - SPHERE CENTER -0.819589 -0.119537 -0.17736 RAD 0.00617284 - txt002 - SPHERE CENTER -0.80454 -0.0890219 -0.169507 RAD 0.00617284 - txt002 - SPHERE CENTER -0.825597 -0.100248 -0.163165 RAD 0.00617284 - txt002 - SPHERE CENTER -0.810005 -0.0924597 -0.145675 RAD 0.00617284 - txt002 - SPHERE CENTER -0.78294 -0.100522 -0.166213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.788405 -0.10396 -0.142381 RAD 0.00617284 - txt002 - SPHERE CENTER -0.782397 -0.123249 -0.156576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.802927 -0.184881 -0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER -0.785723 -0.180723 -0.188808 RAD 0.00617284 - txt002 - SPHERE CENTER -0.798991 -0.161937 -0.179823 RAD 0.00617284 - txt002 - SPHERE CENTER -0.782104 -0.173028 -0.165627 RAD 0.00617284 - txt002 - SPHERE CENTER -0.78966 -0.203667 -0.180578 RAD 0.00617284 - txt002 - SPHERE CENTER -0.786041 -0.195972 -0.157397 RAD 0.00617284 - txt002 - SPHERE CENTER -0.806864 -0.207825 -0.163362 RAD 0.00617284 - txt002 - SPHERE CENTER -0.806546 -0.192576 -0.194773 RAD 0.00617284 - txt002 - SPHERE CENTER -0.82375 -0.196734 -0.177557 RAD 0.00617284 - txt002 - SPHERE CENTER -0.819813 -0.17379 -0.185788 RAD 0.00617284 - txt002 - SPHERE CENTER -0.898283 -0.193102 -0.129006 RAD 0.0185185 - txt002 - SPHERE CENTER -0.920038 -0.201143 -0.120537 RAD 0.00617284 - txt002 - SPHERE CENTER -0.900209 -0.201384 -0.105825 RAD 0.00617284 - txt002 - SPHERE CENTER -0.910616 -0.17991 -0.112168 RAD 0.00617284 - txt002 - SPHERE CENTER -0.918112 -0.192861 -0.143718 RAD 0.00617284 - txt002 - SPHERE CENTER -0.90869 -0.171628 -0.135349 RAD 0.00617284 - txt002 - SPHERE CENTER -0.896357 -0.18482 -0.152187 RAD 0.00617284 - txt002 - SPHERE CENTER -0.907705 -0.214335 -0.137375 RAD 0.00617284 - txt002 - SPHERE CENTER -0.88595 -0.206294 -0.145845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.887876 -0.214576 -0.122663 RAD 0.00617284 - txt002 - SPHERE CENTER -0.834745 -0.230676 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.824206 -0.252002 -0.116217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.810793 -0.231282 -0.116868 RAD 0.00617284 - txt002 - SPHERE CENTER -0.827952 -0.234336 -0.0993785 RAD 0.00617284 - txt002 - SPHERE CENTER -0.848158 -0.251396 -0.122182 RAD 0.00617284 - txt002 - SPHERE CENTER -0.851905 -0.23373 -0.105343 RAD 0.00617284 - txt002 - SPHERE CENTER -0.858698 -0.23007 -0.128798 RAD 0.00617284 - txt002 - SPHERE CENTER -0.830999 -0.248342 -0.139672 RAD 0.00617284 - txt002 - SPHERE CENTER -0.841538 -0.227016 -0.146288 RAD 0.00617284 - txt002 - SPHERE CENTER -0.817586 -0.227621 -0.140323 RAD 0.00617284 - txt002 - SPHERE CENTER -0.867633 -0.203337 -0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER -0.868948 -0.209658 -0.0385197 RAD 0.00617284 - txt002 - SPHERE CENTER -0.84746 -0.202239 -0.0481565 RAD 0.00617284 - txt002 - SPHERE CENTER -0.865773 -0.186008 -0.0448623 RAD 0.00617284 - txt002 - SPHERE CENTER -0.889121 -0.210757 -0.0527151 RAD 0.00617284 - txt002 - SPHERE CENTER -0.885946 -0.187106 -0.0590577 RAD 0.00617284 - txt002 - SPHERE CENTER -0.887806 -0.204436 -0.0765474 RAD 0.00617284 - txt002 - SPHERE CENTER -0.870808 -0.226988 -0.0560094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.869493 -0.220667 -0.0798417 RAD 0.00617284 - txt002 - SPHERE CENTER -0.84932 -0.219569 -0.0656463 RAD 0.00617284 - txt002 - SPHERE CENTER -0.69376 0.0133465 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.668775 0.0631985 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.661946 0.0667914 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.65711 0.0452771 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.680354 0.0511945 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.673611 0.0847128 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.692019 0.069116 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.680439 0.08112 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.650366 0.0787954 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.657195 0.0752026 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.64553 0.0572811 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.62221 0.0325183 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.604582 0.0446211 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.62221 0.0325183 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.627745 0.053173 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.604582 0.0446211 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.627745 0.053173 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.62221 0.0325183 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.599047 0.0239663 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616676 0.0118635 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616676 0.0118635 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.649684 -0.00804971 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.634953 -0.000226782 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER -0.655218 0.012605 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.635947 0.0122343 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.629419 -0.0208815 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.630413 -0.00842045 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.644149 -0.0287044 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.64869 -0.0205108 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.66342 -0.0283337 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.668955 -0.00767898 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.740325 0.0440268 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.746894 0.0650768 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.739183 0.0653796 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.723153 0.0607735 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.748035 0.0437239 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.724295 0.0394207 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.741466 0.0226739 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.764065 0.04833 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.757496 0.02728 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.756355 0.0486329 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.721234 -0.0272215 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.732368 -0.0484665 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.715699 -0.0478762 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.737738 -0.0371781 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.737902 -0.0278118 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER -0.743272 -0.0165234 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.726768 -0.00656677 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.715864 -0.0385099 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.70473 -0.0172649 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.699195 -0.0379196 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.76531 -0.0058253 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.786629 -0.00415829 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.76531 -0.0058253 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.770845 0.0148294 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.786629 -0.00415829 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.770845 0.0148294 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.76531 -0.0058253 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.781094 -0.024813 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.759776 -0.02648 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.759776 -0.02648 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.712851 0.0845947 -0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER -0.706291 0.107813 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.689001 0.0909853 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.701434 0.0896851 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.730141 0.101422 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.725284 0.0832945 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.736701 0.0782041 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.717709 0.102723 -0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER -0.724268 0.0795043 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.700418 0.0858949 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.737837 0.0347427 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.740802 0.0511556 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.718185 0.043171 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.730397 0.0580833 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.760455 0.0427273 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.750049 0.0496549 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.757489 0.0263144 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.748242 0.027815 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.745277 0.0114021 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.725625 0.0198304 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.666287 0.0539145 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.650692 0.0721382 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.645053 0.0564414 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.663167 0.072935 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671925 0.0696112 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.6844 0.070408 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.68752 0.0513875 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.653812 0.0531177 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.669407 0.034894 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.648173 0.0374209 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.643951 -0.172546 -0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER -0.674191 -0.142305 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.672341 -0.123995 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.666199 -0.120057 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.651943 -0.134313 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.680334 -0.146243 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.659936 -0.156561 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER -0.682184 -0.164554 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.69459 -0.131987 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER -0.696439 -0.150298 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.688447 -0.12805 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER -0.715501 -0.153374 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.731779 -0.136231 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.712305 -0.141449 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.70911 -0.129524 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.734974 -0.148156 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER -0.712305 -0.141449 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.718696 -0.165299 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.738169 -0.160081 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.721891 -0.177224 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.718696 -0.165299 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.663122 -0.100996 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.656415 -0.0783272 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.639272 -0.0946054 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.651197 -0.0978007 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.680265 -0.0847178 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.675047 -0.104191 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.686972 -0.107387 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.66834 -0.0815225 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.675047 -0.104191 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.651197 -0.0978007 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.602641 -0.161477 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.60298 -0.154189 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.622115 -0.166695 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER -0.617912 -0.143431 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.583506 -0.148971 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER -0.598439 -0.138214 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.583168 -0.156259 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER -0.587708 -0.172234 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.58737 -0.179523 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.606843 -0.184741 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.591572 -0.120168 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.577317 -0.105912 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER -0.582843 -0.128897 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.600302 -0.111438 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.586046 -0.0971825 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.609032 -0.102708 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.600302 -0.111438 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.568587 -0.114642 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.582843 -0.128897 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.574113 -0.137627 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.5724 -0.191718 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.549732 -0.185011 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.569205 -0.179793 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.56601 -0.167868 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.552927 -0.196936 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.569205 -0.179793 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.575596 -0.203643 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.556122 -0.208861 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.578791 -0.215568 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.575596 -0.203643 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.655019 -0.213855 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.653756 -0.23668 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER -0.636974 -0.229127 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.660237 -0.233329 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671802 -0.221409 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.678283 -0.218058 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.673065 -0.198584 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.648538 -0.217207 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.649801 -0.194382 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER -0.631756 -0.209653 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.624779 -0.244096 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.607636 -0.260374 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.600929 -0.237705 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.612854 -0.240901 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.631486 -0.266765 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.636704 -0.247291 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.648629 -0.250487 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.619561 -0.26357 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER -0.636704 -0.247291 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.612854 -0.240901 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.696329 -0.224924 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.710584 -0.23918 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.687599 -0.233654 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.705059 -0.216195 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.719314 -0.23045 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.713788 -0.207465 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.705059 -0.216195 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.701855 -0.24791 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.687599 -0.233654 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.678869 -0.242384 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.786005 -0.343435 8.51251e-17 RAD 0.0555556 - txt002 - SPHERE CENTER -0.82165 -0.392454 0.0425863 RAD 0.0185185 - txt002 - SPHERE CENTER -0.824791 -0.400556 0.065698 RAD 0.00617284 - txt002 - SPHERE CENTER -0.802599 -0.392663 0.058292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.821021 -0.376528 0.0614442 RAD 0.00617284 - txt002 - SPHERE CENTER -0.843843 -0.400347 0.0499923 RAD 0.00617284 - txt002 - SPHERE CENTER -0.840073 -0.376319 0.0457385 RAD 0.00617284 - txt002 - SPHERE CENTER -0.840701 -0.392245 0.0268805 RAD 0.00617284 - txt002 - SPHERE CENTER -0.82542 -0.416482 0.0468401 RAD 0.00617284 - txt002 - SPHERE CENTER -0.822279 -0.40838 0.0237283 RAD 0.00617284 - txt002 - SPHERE CENTER -0.803228 -0.408589 0.0394341 RAD 0.00617284 - txt002 - SPHERE CENTER -0.753118 -0.370774 0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER -0.734271 -0.367981 0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER -0.731279 -0.362711 0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER -0.745269 -0.348136 0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER -0.756109 -0.376044 0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER -0.767107 -0.356199 0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER -0.774956 -0.378837 0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER -0.74212 -0.390619 0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.760966 -0.393412 0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER -0.739128 -0.385349 0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER -0.80984 -0.323622 0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER -0.80634 -0.308073 0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER -0.786996 -0.316395 0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER -0.802721 -0.300378 0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER -0.829184 -0.315299 0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER -0.825565 -0.307605 0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER -0.832685 -0.330849 0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.813459 -0.331317 0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER -0.81696 -0.346866 0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER -0.794116 -0.339639 0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER -0.854538 -0.365116 -0.0178949 RAD 0.0185185 - txt002 - SPHERE CENTER -0.878086 -0.365674 -0.0104889 RAD 0.00617284 - txt002 - SPHERE CENTER -0.859887 -0.367962 0.00604126 RAD 0.00617284 - txt002 - SPHERE CENTER -0.863875 -0.346241 -0.00500196 RAD 0.00617284 - txt002 - SPHERE CENTER -0.872736 -0.362827 -0.0344251 RAD 0.00617284 - txt002 - SPHERE CENTER -0.858526 -0.343394 -0.0289382 RAD 0.00617284 - txt002 - SPHERE CENTER -0.849188 -0.362269 -0.0418311 RAD 0.00617284 - txt002 - SPHERE CENTER -0.868748 -0.384548 -0.0233819 RAD 0.00617284 - txt002 - SPHERE CENTER -0.8452 -0.38399 -0.0307879 RAD 0.00617284 - txt002 - SPHERE CENTER -0.85055 -0.386837 -0.00685171 RAD 0.00617284 - txt002 - SPHERE CENTER -0.842728 -0.296284 0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER -0.848999 -0.272611 0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER -0.828835 -0.281616 0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER -0.829121 -0.278432 -0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.862893 -0.287278 -0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER -0.843015 -0.293099 -0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER -0.856621 -0.310951 -0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER -0.862606 -0.290462 0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER -0.856335 -0.314135 0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.842441 -0.299468 0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.818893 -0.316097 -0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER -0.819591 -0.297057 -0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER -0.814956 -0.293153 -0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER -0.79807 -0.304244 -0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER -0.823527 -0.320001 -0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER -0.802007 -0.327188 -0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER -0.822829 -0.339041 -0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER -0.840413 -0.30891 -0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.839716 -0.32795 -0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER -0.835779 -0.305006 -0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER -0.797815 -0.412267 -0.0246914 RAD 0.0185185 - txt002 - SPHERE CENTER -0.793573 -0.436217 -0.0204376 RAD 0.00617284 - txt002 - SPHERE CENTER -0.776294 -0.419454 -0.0149506 RAD 0.00617284 - txt002 - SPHERE CENTER -0.796968 -0.420728 -0.00151032 RAD 0.00617284 - txt002 - SPHERE CENTER -0.815094 -0.42903 -0.0301783 RAD 0.00617284 - txt002 - SPHERE CENTER -0.818489 -0.413542 -0.0112511 RAD 0.00617284 - txt002 - SPHERE CENTER -0.819335 -0.405081 -0.0344321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.79442 -0.427756 -0.0436186 RAD 0.00617284 - txt002 - SPHERE CENTER -0.798662 -0.403807 -0.0478724 RAD 0.00617284 - txt002 - SPHERE CENTER -0.777141 -0.410993 -0.0381316 RAD 0.00617284 - txt002 - SPHERE CENTER -0.76217 -0.363249 -0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER -0.747522 -0.356966 -0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER -0.759239 -0.339469 -0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER -0.740618 -0.352002 -0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER -0.750453 -0.380746 -0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER -0.743549 -0.375782 -0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER -0.765101 -0.387029 -0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.769074 -0.368213 -0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER -0.783722 -0.374496 -0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER -0.780791 -0.350716 -0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER -0.729282 -0.390587 -0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER -0.704862 -0.392427 -0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER -0.717401 -0.374248 -0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER -0.714218 -0.373948 0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.716744 -0.408767 0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER -0.726099 -0.390287 0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER -0.741164 -0.406927 0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER -0.719927 -0.409067 -0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER -0.744347 -0.407227 -0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.732465 -0.390887 -0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.594141 -0.358439 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.542042 -0.409774 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.517869 -0.413579 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.528508 -0.393219 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.525596 -0.395831 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.531404 -0.430134 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.539131 -0.412386 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555577 -0.426328 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.534315 -0.427522 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.558488 -0.423716 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.544953 -0.407161 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.522591 -0.339267 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.504962 -0.327164 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.522591 -0.339267 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.528125 -0.318612 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.504962 -0.327164 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.528125 -0.318612 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.522591 -0.339267 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.499428 -0.347819 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.517056 -0.359921 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.517056 -0.359921 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.550064 -0.379835 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.529037 -0.375068 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.530412 -0.371406 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.542624 -0.356494 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.548689 -0.383497 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.562276 -0.364922 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.569716 -0.388263 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.536477 -0.398409 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.557504 -0.403175 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.537852 -0.394747 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.613592 -0.428945 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.612625 -0.451897 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.593593 -0.436515 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.614807 -0.432663 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.632624 -0.444328 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.634806 -0.425094 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.633591 -0.421376 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.61141 -0.448179 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.612377 -0.425227 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.592379 -0.432797 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.621614 -0.399007 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.620974 -0.402865 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.600381 -0.39648 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.618494 -0.379986 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.642207 -0.405392 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.639728 -0.382513 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.642848 -0.401533 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.624094 -0.421886 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.624734 -0.418027 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.603501 -0.4155 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.665691 -0.37761 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.687009 -0.375943 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.665691 -0.37761 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671225 -0.356956 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.687009 -0.375943 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671225 -0.356956 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.665691 -0.37761 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.681475 -0.396598 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.660156 -0.398265 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.660156 -0.398265 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.586119 -0.388377 -0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.570335 -0.399584 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.562269 -0.381987 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.569167 -0.403942 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.594185 -0.405974 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.593017 -0.410332 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.609969 -0.394768 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.587286 -0.384019 -0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.60307 -0.372813 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.57922 -0.366422 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.638217 -0.337042 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.64748 -0.317573 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER -0.643752 -0.316388 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.624481 -0.316758 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.641945 -0.338228 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.618946 -0.337413 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.632683 -0.357697 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.661216 -0.337857 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.651954 -0.357326 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.657489 -0.336672 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.566667 -0.317871 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.562847 -0.317033 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.561133 -0.338525 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.583171 -0.327827 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.568381 -0.296378 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER -0.588706 -0.307172 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.572202 -0.297216 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.546343 -0.307077 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.550163 -0.307914 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.544629 -0.328569 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.594141 -0.358439 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.547576 -0.389119 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.525642 -0.386849 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.528407 -0.379645 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.538964 -0.366733 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.544812 -0.396323 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.558134 -0.376207 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.566746 -0.398593 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.534255 -0.409235 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.556189 -0.411505 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.537019 -0.402031 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.522591 -0.339267 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.504962 -0.327164 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.522591 -0.339267 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.528125 -0.318612 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.504962 -0.327164 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.528125 -0.318612 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.522591 -0.339267 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.499428 -0.347819 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.517056 -0.359921 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.517056 -0.359921 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.566667 -0.317871 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.551072 -0.299647 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.545434 -0.315344 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.563547 -0.29885 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.572306 -0.302174 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER -0.584781 -0.301377 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.587901 -0.320398 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.554192 -0.318667 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.569787 -0.336891 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.548554 -0.334364 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.619127 -0.408291 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.617918 -0.415912 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.597788 -0.406911 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616439 -0.39183 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.639257 -0.417292 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.637778 -0.39321 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.640465 -0.409671 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.620605 -0.432372 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.621814 -0.424751 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.600475 -0.423371 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.638217 -0.337042 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.641183 -0.320629 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER -0.618565 -0.328614 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.630777 -0.313702 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.660835 -0.329058 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.65043 -0.32213 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.65787 -0.345471 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.648623 -0.34397 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.645657 -0.360383 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.626005 -0.351955 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.665691 -0.37761 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.687009 -0.375943 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.665691 -0.37761 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671225 -0.356956 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.687009 -0.375943 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671225 -0.356956 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.665691 -0.37761 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.681475 -0.396598 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.660156 -0.398265 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.660156 -0.398265 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.57505 -0.429687 0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER -0.55776 -0.446515 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.5512 -0.423296 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.562617 -0.428387 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.58161 -0.452905 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.586467 -0.434777 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.5989 -0.436077 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.570193 -0.447815 0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER -0.587483 -0.430987 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.563633 -0.424596 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.621614 -0.399007 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.632748 -0.420252 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.61608 -0.419661 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.638118 -0.408963 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.638282 -0.399597 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.643653 -0.388308 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.627149 -0.378352 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616244 -0.410295 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.60511 -0.38905 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.599576 -0.409705 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.550064 -0.379835 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.535334 -0.372012 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555599 -0.35918 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.536327 -0.359551 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.529799 -0.392667 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.530793 -0.380205 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.54453 -0.400489 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.549071 -0.392296 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.563801 -0.400119 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.569335 -0.379464 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0996195 -0.371785 0.544331 RAD 0.166667 - txt002 - SPHERE CENTER 0.220501 -0.393621 0.729516 RAD 0.0555556 - txt002 - SPHERE CENTER 0.279642 -0.368601 0.766439 RAD 0.0185185 - txt002 - SPHERE CENTER 0.299716 -0.354293 0.765035 RAD 0.00617284 - txt002 - SPHERE CENTER 0.292196 -0.366989 0.745238 RAD 0.00617284 - txt002 - SPHERE CENTER 0.279022 -0.347717 0.753281 RAD 0.00617284 - txt002 - SPHERE CENTER 0.287162 -0.355904 0.786236 RAD 0.00617284 - txt002 - SPHERE CENTER 0.266468 -0.349329 0.774481 RAD 0.00617284 - txt002 - SPHERE CENTER 0.267088 -0.370213 0.787639 RAD 0.00617284 - txt002 - SPHERE CENTER 0.300337 -0.375177 0.778193 RAD 0.00617284 - txt002 - SPHERE CENTER 0.280263 -0.389485 0.779597 RAD 0.00617284 - txt002 - SPHERE CENTER 0.292817 -0.387873 0.758396 RAD 0.00617284 - txt002 - SPHERE CENTER 0.281062 -0.372464 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER 0.289441 -0.362978 0.671279 RAD 0.00617284 - txt002 - SPHERE CENTER 0.270044 -0.378255 0.671155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.267771 -0.35549 0.680442 RAD 0.00617284 - txt002 - SPHERE CENTER 0.30046 -0.357187 0.692603 RAD 0.00617284 - txt002 - SPHERE CENTER 0.278789 -0.349699 0.701767 RAD 0.00617284 - txt002 - SPHERE CENTER 0.29208 -0.366673 0.713804 RAD 0.00617284 - txt002 - SPHERE CENTER 0.302733 -0.379952 0.683315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.294353 -0.389438 0.704516 RAD 0.00617284 - txt002 - SPHERE CENTER 0.283335 -0.395229 0.683192 RAD 0.00617284 - txt002 - SPHERE CENTER 0.238665 -0.321889 0.726118 RAD 0.0185185 - txt002 - SPHERE CENTER 0.250544 -0.304702 0.71296 RAD 0.00617284 - txt002 - SPHERE CENTER 0.259421 -0.327715 0.714081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.238717 -0.32307 0.701455 RAD 0.00617284 - txt002 - SPHERE CENTER 0.229788 -0.298875 0.724997 RAD 0.00617284 - txt002 - SPHERE CENTER 0.21796 -0.317244 0.713492 RAD 0.00617284 - txt002 - SPHERE CENTER 0.217908 -0.316063 0.738155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.250492 -0.30352 0.737623 RAD 0.00617284 - txt002 - SPHERE CENTER 0.238612 -0.320707 0.750781 RAD 0.00617284 - txt002 - SPHERE CENTER 0.259369 -0.326533 0.738744 RAD 0.00617284 - txt002 - SPHERE CENTER 0.219082 -0.389758 0.803476 RAD 0.0185185 - txt002 - SPHERE CENTER 0.228779 -0.378635 0.823273 RAD 0.00617284 - txt002 - SPHERE CENTER 0.24293 -0.383364 0.8036 RAD 0.00617284 - txt002 - SPHERE CENTER 0.225483 -0.365937 0.802355 RAD 0.00617284 - txt002 - SPHERE CENTER 0.20493 -0.385029 0.823149 RAD 0.00617284 - txt002 - SPHERE CENTER 0.201634 -0.372331 0.802231 RAD 0.00617284 - txt002 - SPHERE CENTER 0.195233 -0.396152 0.803352 RAD 0.00617284 - txt002 - SPHERE CENTER 0.222377 -0.402455 0.824394 RAD 0.00617284 - txt002 - SPHERE CENTER 0.21268 -0.413578 0.804597 RAD 0.00617284 - txt002 - SPHERE CENTER 0.236529 -0.407185 0.804721 RAD 0.00617284 - txt002 - SPHERE CENTER 0.178104 -0.343046 0.763155 RAD 0.0185185 - txt002 - SPHERE CENTER 0.177083 -0.319723 0.771198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.198298 -0.332294 0.772443 RAD 0.00617284 - txt002 - SPHERE CENTER 0.189464 -0.325124 0.750529 RAD 0.00617284 - txt002 - SPHERE CENTER 0.156889 -0.330475 0.76191 RAD 0.00617284 - txt002 - SPHERE CENTER 0.16927 -0.335876 0.741241 RAD 0.00617284 - txt002 - SPHERE CENTER 0.157909 -0.353797 0.753867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.165722 -0.337645 0.783824 RAD 0.00617284 - txt002 - SPHERE CENTER 0.166743 -0.360967 0.775781 RAD 0.00617284 - txt002 - SPHERE CENTER 0.186938 -0.350216 0.785069 RAD 0.00617284 - txt002 - SPHERE CENTER 0.15994 -0.414778 0.766553 RAD 0.0185185 - txt002 - SPHERE CENTER 0.147477 -0.412573 0.787754 RAD 0.00617284 - txt002 - SPHERE CENTER 0.172167 -0.412448 0.787878 RAD 0.00617284 - txt002 - SPHERE CENTER 0.15977 -0.39322 0.77859 RAD 0.00617284 - txt002 - SPHERE CENTER 0.13525 -0.414903 0.766429 RAD 0.00617284 - txt002 - SPHERE CENTER 0.147543 -0.39555 0.757266 RAD 0.00617284 - txt002 - SPHERE CENTER 0.147713 -0.417108 0.745229 RAD 0.00617284 - txt002 - SPHERE CENTER 0.147647 -0.434131 0.775717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.16011 -0.436336 0.754517 RAD 0.00617284 - txt002 - SPHERE CENTER 0.172338 -0.434006 0.775841 RAD 0.00617284 - txt002 - SPHERE CENTER 0.261479 -0.440333 0.769837 RAD 0.0185185 - txt002 - SPHERE CENTER 0.282991 -0.443285 0.781591 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282046 -0.4302 0.760673 RAD 0.00617284 - txt002 - SPHERE CENTER 0.271991 -0.421181 0.781342 RAD 0.00617284 - txt002 - SPHERE CENTER 0.262424 -0.453417 0.790755 RAD 0.00617284 - txt002 - SPHERE CENTER 0.251423 -0.431313 0.790506 RAD 0.00617284 - txt002 - SPHERE CENTER 0.240911 -0.450466 0.779001 RAD 0.00617284 - txt002 - SPHERE CENTER 0.27248 -0.462437 0.770086 RAD 0.00617284 - txt002 - SPHERE CENTER 0.250967 -0.459485 0.758332 RAD 0.00617284 - txt002 - SPHERE CENTER 0.271534 -0.449353 0.749168 RAD 0.00617284 - txt002 - SPHERE CENTER 0.202338 -0.465353 0.732914 RAD 0.0185185 - txt002 - SPHERE CENTER 0.204606 -0.486123 0.746073 RAD 0.00617284 - txt002 - SPHERE CENTER 0.223366 -0.470107 0.744951 RAD 0.00617284 - txt002 - SPHERE CENTER 0.202946 -0.464339 0.757577 RAD 0.00617284 - txt002 - SPHERE CENTER 0.183578 -0.481368 0.734036 RAD 0.00617284 - txt002 - SPHERE CENTER 0.181918 -0.459584 0.745541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.18131 -0.460599 0.720878 RAD 0.00617284 - txt002 - SPHERE CENTER 0.203998 -0.487137 0.72141 RAD 0.00617284 - txt002 - SPHERE CENTER 0.201729 -0.466367 0.708251 RAD 0.00617284 - txt002 - SPHERE CENTER 0.222757 -0.471122 0.720288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.262898 -0.444196 0.695877 RAD 0.0185185 - txt002 - SPHERE CENTER 0.285685 -0.449273 0.687835 RAD 0.00617284 - txt002 - SPHERE CENTER 0.27701 -0.426189 0.68659 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282528 -0.436139 0.708504 RAD 0.00617284 - txt002 - SPHERE CENTER 0.271573 -0.46728 0.697123 RAD 0.00617284 - txt002 - SPHERE CENTER 0.268416 -0.454146 0.717791 RAD 0.00617284 - txt002 - SPHERE CENTER 0.248787 -0.462204 0.705165 RAD 0.00617284 - txt002 - SPHERE CENTER 0.266055 -0.45733 0.675209 RAD 0.00617284 - txt002 - SPHERE CENTER 0.243269 -0.452254 0.683251 RAD 0.00617284 - txt002 - SPHERE CENTER 0.257381 -0.434246 0.673964 RAD 0.00617284 - txt002 - SPHERE CENTER 0.31427 -0.31427 0.544331 RAD 0.0555556 - txt002 - SPHERE CENTER 0.367156 -0.277961 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.374298 -0.269898 0.485076 RAD 0.00617284 - txt002 - SPHERE CENTER 0.362218 -0.291334 0.487134 RAD 0.00617284 - txt002 - SPHERE CENTER 0.350338 -0.270045 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER 0.379235 -0.256525 0.505236 RAD 0.00617284 - txt002 - SPHERE CENTER 0.355276 -0.256671 0.511201 RAD 0.00617284 - txt002 - SPHERE CENTER 0.372093 -0.264588 0.527454 RAD 0.00617284 - txt002 - SPHERE CENTER 0.391115 -0.277815 0.501329 RAD 0.00617284 - txt002 - SPHERE CENTER 0.383973 -0.285878 0.523547 RAD 0.00617284 - txt002 - SPHERE CENTER 0.379036 -0.299251 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.31427 -0.31427 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER 0.304189 -0.304189 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER 0.29042 -0.307879 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.307879 -0.29042 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.328039 -0.31058 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER 0.331729 -0.29681 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.33812 -0.32066 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.31058 -0.328039 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER 0.32066 -0.33812 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.29681 -0.331729 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.297666 -0.252306 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.305995 -0.235688 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER 0.321516 -0.245915 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.312359 -0.259438 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282145 -0.242079 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER 0.288509 -0.265828 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.273816 -0.258696 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.291303 -0.228556 0.509559 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282974 -0.245173 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.306824 -0.238783 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.367156 -0.277961 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.385852 -0.261966 0.57931 RAD 0.00617284 - txt002 - SPHERE CENTER 0.38141 -0.278159 0.561208 RAD 0.00617284 - txt002 - SPHERE CENTER 0.36581 -0.259422 0.565115 RAD 0.00617284 - txt002 - SPHERE CENTER 0.371598 -0.261768 0.599471 RAD 0.00617284 - txt002 - SPHERE CENTER 0.351556 -0.259225 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER 0.352901 -0.277764 0.601529 RAD 0.00617284 - txt002 - SPHERE CENTER 0.387198 -0.280504 0.595564 RAD 0.00617284 - txt002 - SPHERE CENTER 0.368501 -0.2965 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER 0.382755 -0.296698 0.577461 RAD 0.00617284 - txt002 - SPHERE CENTER 0.297666 -0.252306 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.30415 -0.228803 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER 0.321516 -0.245915 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.306824 -0.238783 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.2803 -0.235194 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282974 -0.245173 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.273816 -0.258696 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.294992 -0.242326 0.603794 RAD 0.00617284 - txt002 - SPHERE CENTER 0.288509 -0.265828 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.312359 -0.259438 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.31427 -0.31427 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.32435 -0.304189 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.33812 -0.307879 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.32066 -0.29042 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.3005 -0.31058 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.29681 -0.29681 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.29042 -0.32066 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.317959 -0.328039 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.307879 -0.33812 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.331729 -0.331729 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.383759 -0.339925 0.544331 RAD 0.0185185 - txt002 - SPHERE CENTER 0.407156 -0.334762 0.538366 RAD 0.00617284 - txt002 - SPHERE CENTER 0.388696 -0.326552 0.524171 RAD 0.00617284 - txt002 - SPHERE CENTER 0.392275 -0.31686 0.546597 RAD 0.00617284 - txt002 - SPHERE CENTER 0.402218 -0.348135 0.558526 RAD 0.00617284 - txt002 - SPHERE CENTER 0.387337 -0.330233 0.566757 RAD 0.00617284 - txt002 - SPHERE CENTER 0.378821 -0.353299 0.564491 RAD 0.00617284 - txt002 - SPHERE CENTER 0.39864 -0.357827 0.536101 RAD 0.00617284 - txt002 - SPHERE CENTER 0.375243 -0.362991 0.542066 RAD 0.00617284 - txt002 - SPHERE CENTER 0.380181 -0.349618 0.521905 RAD 0.00617284 - txt002 - SPHERE CENTER 0.330873 -0.376234 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.346394 -0.386461 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER 0.354723 -0.369843 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.340031 -0.362711 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.322544 -0.392851 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER 0.316181 -0.369102 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.307023 -0.382624 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.337237 -0.399983 0.579103 RAD 0.00617284 - txt002 - SPHERE CENTER 0.321715 -0.389757 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.345565 -0.383366 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.330873 -0.376234 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.348239 -0.393346 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.354723 -0.369843 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.345565 -0.383366 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.324389 -0.399736 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.321715 -0.389757 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.307023 -0.382624 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.333547 -0.386213 0.484868 RAD 0.00617284 - txt002 - SPHERE CENTER 0.316181 -0.369102 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.340031 -0.362711 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.166275 -0.191247 0.655442 RAD 0.0555556 - txt002 - SPHERE CENTER 0.20793 -0.130089 0.652044 RAD 0.0185185 - txt002 - SPHERE CENTER 0.221102 -0.115471 0.637128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.220766 -0.13987 0.633356 RAD 0.00617284 - txt002 - SPHERE CENTER 0.200597 -0.126388 0.628759 RAD 0.00617284 - txt002 - SPHERE CENTER 0.208266 -0.10569 0.655816 RAD 0.00617284 - txt002 - SPHERE CENTER 0.187762 -0.116607 0.647447 RAD 0.00617284 - txt002 - SPHERE CENTER 0.195095 -0.120308 0.670732 RAD 0.00617284 - txt002 - SPHERE CENTER 0.228435 -0.119172 0.660413 RAD 0.00617284 - txt002 - SPHERE CENTER 0.215264 -0.13379 0.675329 RAD 0.00617284 - txt002 - SPHERE CENTER 0.228099 -0.143571 0.656641 RAD 0.00617284 - txt002 - SPHERE CENTER 0.230419 -0.192135 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.243049 -0.18209 0.599717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.218634 -0.185251 0.597829 RAD 0.00617284 - txt002 - SPHERE CENTER 0.227721 -0.168159 0.613157 RAD 0.00617284 - txt002 - SPHERE CENTER 0.254834 -0.188974 0.620293 RAD 0.00617284 - txt002 - SPHERE CENTER 0.239506 -0.175043 0.633733 RAD 0.00617284 - txt002 - SPHERE CENTER 0.242204 -0.199019 0.638981 RAD 0.00617284 - txt002 - SPHERE CENTER 0.245747 -0.206066 0.604965 RAD 0.00617284 - txt002 - SPHERE CENTER 0.233117 -0.216111 0.623653 RAD 0.00617284 - txt002 - SPHERE CENTER 0.221332 -0.209227 0.603077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.172673 -0.154295 0.591563 RAD 0.0185185 - txt002 - SPHERE CENTER 0.180792 -0.15554 0.568278 RAD 0.00617284 - txt002 - SPHERE CENTER 0.19323 -0.166926 0.586315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.171251 -0.17557 0.579113 RAD 0.00617284 - txt002 - SPHERE CENTER 0.160236 -0.142909 0.573526 RAD 0.00617284 - txt002 - SPHERE CENTER 0.150694 -0.162939 0.584361 RAD 0.00617284 - txt002 - SPHERE CENTER 0.152117 -0.141663 0.596811 RAD 0.00617284 - txt002 - SPHERE CENTER 0.182215 -0.134265 0.580727 RAD 0.00617284 - txt002 - SPHERE CENTER 0.174096 -0.133019 0.604012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.194652 -0.145651 0.598764 RAD 0.00617284 - txt002 - SPHERE CENTER 0.143787 -0.129201 0.689081 RAD 0.0185185 - txt002 - SPHERE CENTER 0.14887 -0.105335 0.692853 RAD 0.00617284 - txt002 - SPHERE CENTER 0.167242 -0.121723 0.690969 RAD 0.00617284 - txt002 - SPHERE CENTER 0.153943 -0.115741 0.671044 RAD 0.00617284 - txt002 - SPHERE CENTER 0.125414 -0.112813 0.690965 RAD 0.00617284 - txt002 - SPHERE CENTER 0.130487 -0.123219 0.669156 RAD 0.00617284 - txt002 - SPHERE CENTER 0.120331 -0.136679 0.687193 RAD 0.00617284 - txt002 - SPHERE CENTER 0.138714 -0.118795 0.71089 RAD 0.00617284 - txt002 - SPHERE CENTER 0.13363 -0.142661 0.707118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.157086 -0.135183 0.709006 RAD 0.00617284 - txt002 - SPHERE CENTER 0.108529 -0.153407 0.6286 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0995811 -0.130858 0.624003 RAD 0.00617284 - txt002 - SPHERE CENTER 0.113639 -0.134736 0.643928 RAD 0.00617284 - txt002 - SPHERE CENTER 0.123725 -0.135326 0.621398 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0944715 -0.149528 0.608675 RAD 0.00617284 - txt002 - SPHERE CENTER 0.118615 -0.153997 0.60607 RAD 0.00617284 - txt002 - SPHERE CENTER 0.10342 -0.172078 0.613272 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0843858 -0.148938 0.631205 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0933338 -0.171487 0.635801 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0984435 -0.152816 0.65113 RAD 0.00617284 - txt002 - SPHERE CENTER 0.102131 -0.190359 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0897843 -0.179968 0.711167 RAD 0.00617284 - txt002 - SPHERE CENTER 0.114103 -0.183804 0.713055 RAD 0.00617284 - txt002 - SPHERE CENTER 0.105492 -0.166467 0.697727 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0778128 -0.186523 0.690591 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0935207 -0.173022 0.677151 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0901597 -0.196914 0.671903 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0864233 -0.20386 0.705919 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0987702 -0.214251 0.687231 RAD 0.00617284 - txt002 - SPHERE CENTER 0.110742 -0.207696 0.707807 RAD 0.00617284 - txt002 - SPHERE CENTER 0.201532 -0.167041 0.715923 RAD 0.0185185 - txt002 - SPHERE CENTER 0.219088 -0.151829 0.724292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.221861 -0.163068 0.702483 RAD 0.00617284 - txt002 - SPHERE CENTER 0.205084 -0.14514 0.705088 RAD 0.00617284 - txt002 - SPHERE CENTER 0.19876 -0.155801 0.737733 RAD 0.00617284 - txt002 - SPHERE CENTER 0.184756 -0.149113 0.718528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.181204 -0.171014 0.729364 RAD 0.00617284 - txt002 - SPHERE CENTER 0.215537 -0.173729 0.735128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.197981 -0.188942 0.726759 RAD 0.00617284 - txt002 - SPHERE CENTER 0.218309 -0.184969 0.713318 RAD 0.00617284 - txt002 - SPHERE CENTER 0.159877 -0.228199 0.719322 RAD 0.0185185 - txt002 - SPHERE CENTER 0.167942 -0.229756 0.742607 RAD 0.00617284 - txt002 - SPHERE CENTER 0.183484 -0.223214 0.72457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.16569 -0.207683 0.731771 RAD 0.00617284 - txt002 - SPHERE CENTER 0.144336 -0.234741 0.737359 RAD 0.00617284 - txt002 - SPHERE CENTER 0.142084 -0.212668 0.726523 RAD 0.00617284 - txt002 - SPHERE CENTER 0.13627 -0.233184 0.714074 RAD 0.00617284 - txt002 - SPHERE CENTER 0.162129 -0.250271 0.730157 RAD 0.00617284 - txt002 - SPHERE CENTER 0.154064 -0.248714 0.706872 RAD 0.00617284 - txt002 - SPHERE CENTER 0.177671 -0.243729 0.71212 RAD 0.00617284 - txt002 - SPHERE CENTER 0.224021 -0.229087 0.682285 RAD 0.0185185 - txt002 - SPHERE CENTER 0.248268 -0.22829 0.686881 RAD 0.00617284 - txt002 - SPHERE CENTER 0.2391 -0.216949 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER 0.234532 -0.207937 0.689486 RAD 0.00617284 - txt002 - SPHERE CENTER 0.233189 -0.240428 0.702209 RAD 0.00617284 - txt002 - SPHERE CENTER 0.219453 -0.220075 0.704814 RAD 0.00617284 - txt002 - SPHERE CENTER 0.208942 -0.241225 0.697613 RAD 0.00617284 - txt002 - SPHERE CENTER 0.237756 -0.249439 0.67968 RAD 0.00617284 - txt002 - SPHERE CENTER 0.213509 -0.250236 0.675083 RAD 0.00617284 - txt002 - SPHERE CENTER 0.228589 -0.238098 0.659755 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0058509 -0.451136 0.729516 RAD 0.0555556 - txt002 - SPHERE CENTER 0.0051487 -0.447081 0.803476 RAD 0.0185185 - txt002 - SPHERE CENTER 0.01504 -0.435909 0.823149 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0289993 -0.440694 0.803352 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0115452 -0.423265 0.802231 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00881065 -0.442297 0.823273 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0123054 -0.429652 0.802355 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0187019 -0.453468 0.8036 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00864346 -0.459725 0.824394 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0012478 -0.470897 0.804721 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0226028 -0.46451 0.804597 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0688765 -0.439178 0.766553 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0903221 -0.426942 0.766429 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0806307 -0.435083 0.745229 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0699989 -0.416328 0.757266 RAD 0.00617284 - txt002 - SPHERE CENTER 0.078568 -0.431037 0.787754 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0582447 -0.420423 0.77859 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0571224 -0.443274 0.787878 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0891998 -0.449792 0.775717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0677542 -0.462029 0.775841 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0795084 -0.457933 0.754517 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0172804 -0.386138 0.763155 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0293677 -0.364644 0.76191 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0401449 -0.385352 0.753867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0213457 -0.375512 0.741241 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0065032 -0.36543 0.771198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00151881 -0.376298 0.750529 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00558411 -0.386924 0.772443 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0253024 -0.37527 0.783824 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0132151 -0.396764 0.785069 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0360796 -0.395978 0.775781 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0578769 -0.459039 0.766439 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0707378 -0.451803 0.786236 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0461991 -0.454158 0.787639 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0561039 -0.435761 0.774481 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0824157 -0.456685 0.765035 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0677817 -0.440643 0.753281 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0695548 -0.46392 0.745238 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0725109 -0.475081 0.778193 RAD 0.00617284 - txt002 - SPHERE CENTER -0.05965 -0.482316 0.758396 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0479721 -0.477435 0.779597 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0457452 -0.398096 0.726118 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0495643 -0.373728 0.724997 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0306825 -0.382672 0.738155 RAD 0.00617284 - txt002 - SPHERE CENTER -0.030137 -0.383722 0.713492 RAD 0.00617284 - txt002 - SPHERE CENTER -0.064627 -0.389151 0.71296 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0451997 -0.399146 0.701455 RAD 0.00617284 - txt002 - SPHERE CENTER -0.060808 -0.41352 0.714081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0651725 -0.388102 0.737623 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0613535 -0.41247 0.738744 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0462908 -0.397047 0.750781 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0571747 -0.463094 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER -0.081612 -0.459563 0.692603 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0696122 -0.463589 0.713804 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0665888 -0.442243 0.701767 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0691745 -0.459069 0.671279 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0541513 -0.441749 0.680442 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0447373 -0.4626 0.671155 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0721979 -0.480415 0.683315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0477607 -0.483946 0.683192 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0601982 -0.48444 0.704516 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00628079 -0.512079 0.769837 RAD 0.0185185 - txt002 - SPHERE CENTER -0.000557006 -0.523883 0.790755 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0165974 -0.51057 0.779001 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00208214 -0.49924 0.790506 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0234352 -0.525392 0.781591 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0249603 -0.500749 0.781342 RAD 0.00617284 - txt002 - SPHERE CENTER -0.029159 -0.513588 0.760673 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00475566 -0.536722 0.770086 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0104794 -0.524918 0.749168 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0123987 -0.523409 0.758332 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00557859 -0.516134 0.695877 RAD 0.0185185 - txt002 - SPHERE CENTER -0.00154892 -0.540463 0.697123 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0156462 -0.524673 0.705165 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00538221 -0.52751 0.717791 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0227737 -0.531924 0.687835 RAD 0.00617284 - txt002 - SPHERE CENTER -0.026607 -0.518971 0.708504 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0268034 -0.507596 0.68659 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00174531 -0.529087 0.675209 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00577498 -0.504759 0.673964 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0154498 -0.513298 0.683251 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0574471 -0.504176 0.732914 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0817008 -0.508666 0.734036 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0732807 -0.489545 0.720878 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0722467 -0.488971 0.745541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0658672 -0.523298 0.746073 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0564131 -0.503602 0.757577 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0416134 -0.518808 0.744951 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0669012 -0.523872 0.72141 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0426474 -0.519382 0.720288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.058481 -0.504751 0.708251 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0483751 -0.248762 0.655442 RAD 0.0555556 - txt002 - SPHERE CENTER -0.0599222 -0.183785 0.689081 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0522053 -0.160406 0.690965 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0358698 -0.178533 0.687193 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0513956 -0.171954 0.669156 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0762577 -0.165658 0.692853 RAD 0.00617284 - txt002 - SPHERE CENTER -0.075448 -0.177206 0.671044 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0839747 -0.189036 0.690969 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0607319 -0.172236 0.71089 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0684488 -0.195615 0.709006 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0443964 -0.190363 0.707118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00673113 -0.215921 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0258737 -0.20044 0.690591 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0203763 -0.215612 0.671903 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00551963 -0.196602 0.677151 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0122285 -0.200749 0.711167 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00812553 -0.196911 0.697727 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00691403 -0.21623 0.713055 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0270852 -0.21976 0.705919 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00794264 -0.235241 0.707807 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0215878 -0.234932 0.687231 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0172857 -0.187119 0.6286 RAD 0.0185185 - txt002 - SPHERE CENTER -0.00705049 -0.176731 0.608675 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00352517 -0.200733 0.613272 RAD 0.00617284 - txt002 - SPHERE CENTER -0.025725 -0.192673 0.60607 RAD 0.00617284 - txt002 - SPHERE CENTER -0.020811 -0.163117 0.624003 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0394855 -0.179058 0.621398 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0310463 -0.173504 0.643928 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00138875 -0.171177 0.631205 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00884647 -0.181564 0.65113 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00491406 -0.195179 0.635801 RAD 0.00617284 - txt002 - SPHERE CENTER -0.115028 -0.216626 0.652044 RAD 0.0185185 - txt002 - SPHERE CENTER -0.127519 -0.195663 0.655816 RAD 0.00617284 - txt002 - SPHERE CENTER -0.108803 -0.201738 0.670732 RAD 0.00617284 - txt002 - SPHERE CENTER -0.104303 -0.194866 0.647447 RAD 0.00617284 - txt002 - SPHERE CENTER -0.133744 -0.210551 0.637128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.110528 -0.209754 0.628759 RAD 0.00617284 - txt002 - SPHERE CENTER -0.121254 -0.231514 0.633356 RAD 0.00617284 - txt002 - SPHERE CENTER -0.138245 -0.217423 0.660413 RAD 0.00617284 - txt002 - SPHERE CENTER -0.125754 -0.238386 0.656641 RAD 0.00617284 - txt002 - SPHERE CENTER -0.119529 -0.223497 0.675329 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0723919 -0.21996 0.591563 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0673141 -0.20388 0.573526 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0609052 -0.198742 0.596811 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0490355 -0.216456 0.584361 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0788008 -0.225098 0.568278 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0605222 -0.237674 0.579113 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0838786 -0.241177 0.586315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0906706 -0.207384 0.580727 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0957484 -0.223463 0.598764 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0842617 -0.202246 0.604012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.103481 -0.281603 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER -0.126206 -0.291073 0.620293 RAD 0.00617284 - txt002 - SPHERE CENTER -0.110246 -0.293457 0.638981 RAD 0.00617284 - txt002 - SPHERE CENTER -0.119897 -0.271345 0.633733 RAD 0.00617284 - txt002 - SPHERE CENTER -0.119442 -0.279219 0.599717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.113132 -0.25949 0.613157 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0967168 -0.269749 0.597829 RAD 0.00617284 - txt002 - SPHERE CENTER -0.10979 -0.301332 0.604965 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0870656 -0.291862 0.603077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0938302 -0.303716 0.623653 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0910116 -0.245428 0.715923 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0942304 -0.234308 0.737733 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0714204 -0.238704 0.729364 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0854464 -0.221514 0.718528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.113822 -0.241032 0.724292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.105038 -0.228237 0.705088 RAD 0.00617284 - txt002 - SPHERE CENTER -0.110603 -0.252152 0.702483 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0997955 -0.258223 0.735128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0965768 -0.269343 0.713318 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0769856 -0.262619 0.726759 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0794645 -0.310405 0.682285 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0817333 -0.324811 0.702209 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0603366 -0.313378 0.697613 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0800146 -0.300317 0.704814 RAD 0.00617284 - txt002 - SPHERE CENTER -0.100861 -0.321838 0.686881 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0991425 -0.297345 0.689486 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0985923 -0.307433 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0811832 -0.334899 0.67968 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0789143 -0.320493 0.659755 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0597864 -0.323466 0.675083 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0243582 -0.277564 0.719322 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0076281 -0.275459 0.737359 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00142185 -0.270078 0.714074 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0167139 -0.255218 0.726523 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0305645 -0.282946 0.742607 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0396503 -0.262704 0.731771 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0472946 -0.285051 0.72457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0152725 -0.297806 0.730157 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0320026 -0.299911 0.71212 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00906621 -0.292425 0.706872 RAD 0.00617284 - txt002 - SPHERE CENTER -0.115031 -0.4293 0.544331 RAD 0.0555556 - txt002 - SPHERE CENTER -0.178985 -0.424299 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.190929 -0.412497 0.599471 RAD 0.00617284 - txt002 - SPHERE CENTER -0.16674 -0.417001 0.601529 RAD 0.00617284 - txt002 - SPHERE CENTER -0.174844 -0.400273 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER -0.203175 -0.419795 0.57931 RAD 0.00617284 - txt002 - SPHERE CENTER -0.18709 -0.407571 0.565115 RAD 0.00617284 - txt002 - SPHERE CENTER -0.191231 -0.431597 0.561208 RAD 0.00617284 - txt002 - SPHERE CENTER -0.195071 -0.436523 0.595564 RAD 0.00617284 - txt002 - SPHERE CENTER -0.183127 -0.448325 0.577461 RAD 0.00617284 - txt002 - SPHERE CENTER -0.170881 -0.441027 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER -0.115031 -0.4293 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER -0.10495 -0.41922 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0911807 -0.42291 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.10864 -0.40545 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.128801 -0.425611 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER -0.13249 -0.411841 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.138881 -0.435691 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.111341 -0.44307 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER -0.121421 -0.45315 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0975713 -0.44676 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.131634 -0.367336 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.12515 -0.343834 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER -0.107784 -0.360946 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.122476 -0.353814 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.149 -0.350225 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER -0.146326 -0.360204 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.155484 -0.373727 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.134308 -0.357357 0.603794 RAD 0.00617284 - txt002 - SPHERE CENTER -0.140792 -0.380859 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.116942 -0.374468 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.178985 -0.424299 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.200165 -0.411775 0.505236 RAD 0.00617284 - txt002 - SPHERE CENTER -0.189948 -0.415187 0.527454 RAD 0.00617284 - txt002 - SPHERE CENTER -0.179342 -0.399922 0.511201 RAD 0.00617284 - txt002 - SPHERE CENTER -0.189202 -0.420888 0.485076 RAD 0.00617284 - txt002 - SPHERE CENTER -0.168379 -0.409035 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER -0.168023 -0.433412 0.487134 RAD 0.00617284 - txt002 - SPHERE CENTER -0.199808 -0.436152 0.501329 RAD 0.00617284 - txt002 - SPHERE CENTER -0.178629 -0.448677 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.189591 -0.439564 0.523547 RAD 0.00617284 - txt002 - SPHERE CENTER -0.131634 -0.367336 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.123305 -0.350719 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER -0.107784 -0.360946 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.116942 -0.374468 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.147155 -0.357109 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER -0.140792 -0.380859 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.155484 -0.373727 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.137998 -0.343587 0.509559 RAD 0.00617284 - txt002 - SPHERE CENTER -0.146326 -0.360204 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.122476 -0.353814 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.115031 -0.4293 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER -0.125111 -0.41922 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER -0.138881 -0.42291 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.121421 -0.40545 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.101261 -0.425611 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0975713 -0.411841 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0911807 -0.435691 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.11872 -0.44307 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER -0.10864 -0.45315 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.13249 -0.44676 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.162382 -0.486264 0.544331 RAD 0.0185185 - txt002 - SPHERE CENTER -0.174264 -0.502603 0.558526 RAD 0.00617284 - txt002 - SPHERE CENTER -0.15142 -0.495376 0.564491 RAD 0.00617284 - txt002 - SPHERE CENTER -0.170327 -0.479659 0.566757 RAD 0.00617284 - txt002 - SPHERE CENTER -0.185226 -0.49349 0.538366 RAD 0.00617284 - txt002 - SPHERE CENTER -0.18129 -0.470546 0.546597 RAD 0.00617284 - txt002 - SPHERE CENTER -0.173345 -0.477151 0.524171 RAD 0.00617284 - txt002 - SPHERE CENTER -0.166319 -0.509207 0.536101 RAD 0.00617284 - txt002 - SPHERE CENTER -0.154437 -0.492868 0.521905 RAD 0.00617284 - txt002 - SPHERE CENTER -0.143475 -0.501981 0.542066 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0984274 -0.491265 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0810612 -0.508376 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0745774 -0.484874 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0837352 -0.498397 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.104911 -0.514767 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.107585 -0.504787 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.122277 -0.497655 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0957534 -0.501244 0.484868 RAD 0.00617284 - txt002 - SPHERE CENTER -0.11312 -0.484132 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0892696 -0.477742 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0984274 -0.491265 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.082906 -0.501491 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0745774 -0.484874 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0892696 -0.477742 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.106756 -0.507882 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER -0.11312 -0.484132 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.122277 -0.497655 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0920638 -0.515014 0.579103 RAD 0.00617284 - txt002 - SPHERE CENTER -0.107585 -0.504787 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0837352 -0.498397 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.153845 -0.574159 0.618405 RAD 0.0555556 - txt002 - SPHERE CENTER 0.202534 -0.612768 0.658726 RAD 0.0185185 - txt002 - SPHERE CENTER 0.225282 -0.612732 0.668328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.22113 -0.60221 0.64638 RAD 0.00617284 - txt002 - SPHERE CENTER 0.212428 -0.591695 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER 0.206686 -0.62329 0.680674 RAD 0.00617284 - txt002 - SPHERE CENTER 0.193832 -0.602253 0.679302 RAD 0.00617284 - txt002 - SPHERE CENTER 0.183939 -0.623325 0.671072 RAD 0.00617284 - txt002 - SPHERE CENTER 0.215388 -0.633805 0.660098 RAD 0.00617284 - txt002 - SPHERE CENTER 0.192641 -0.63384 0.650495 RAD 0.00617284 - txt002 - SPHERE CENTER 0.211236 -0.623283 0.63815 RAD 0.00617284 - txt002 - SPHERE CENTER 0.225396 -0.554987 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.243024 -0.542885 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.225396 -0.554987 0.593714 RAD 0.00617284 - txt002 - SPHERE CENTER 0.219861 -0.534333 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.243024 -0.542885 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.219861 -0.534333 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.225396 -0.554987 0.643096 RAD 0.00617284 - txt002 - SPHERE CENTER 0.248559 -0.563539 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.23093 -0.575642 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.23093 -0.575642 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.184086 -0.543919 0.678886 RAD 0.0185185 - txt002 - SPHERE CENTER 0.200547 -0.527458 0.687117 RAD 0.00617284 - txt002 - SPHERE CENTER 0.205161 -0.540303 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.187702 -0.522843 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.179472 -0.531074 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.166627 -0.526459 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER 0.163011 -0.547535 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER 0.196931 -0.548533 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.18047 -0.564994 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER 0.201546 -0.561378 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER 0.130984 -0.631939 0.658726 RAD 0.0185185 - txt002 - SPHERE CENTER 0.132649 -0.643128 0.680674 RAD 0.00617284 - txt002 - SPHERE CENTER 0.152367 -0.631785 0.671072 RAD 0.00617284 - txt002 - SPHERE CENTER 0.133263 -0.618482 0.679302 RAD 0.00617284 - txt002 - SPHERE CENTER 0.111266 -0.643283 0.668328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.11188 -0.618637 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER 0.109601 -0.632094 0.64638 RAD 0.00617284 - txt002 - SPHERE CENTER 0.130371 -0.656585 0.660098 RAD 0.00617284 - txt002 - SPHERE CENTER 0.128706 -0.645397 0.63815 RAD 0.00617284 - txt002 - SPHERE CENTER 0.150088 -0.645242 0.650495 RAD 0.00617284 - txt002 - SPHERE CENTER 0.112536 -0.56309 0.678886 RAD 0.0185185 - txt002 - SPHERE CENTER 0.11011 -0.549659 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.132596 -0.555684 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER 0.118927 -0.53924 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER 0.09005 -0.557065 0.687117 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0988668 -0.546646 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0924762 -0.570497 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.103719 -0.573509 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.106145 -0.58694 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER 0.126205 -0.579534 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0822954 -0.593331 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0609772 -0.591664 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0822954 -0.593331 0.643096 RAD 0.00617284 - txt002 - SPHERE CENTER 0.076761 -0.572676 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0609772 -0.591664 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.076761 -0.572676 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0822954 -0.593331 0.593714 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0665116 -0.612319 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0878298 -0.613986 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0878298 -0.613986 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.172294 -0.643008 0.598245 RAD 0.0185185 - txt002 - SPHERE CENTER 0.189742 -0.660425 0.599616 RAD 0.00617284 - txt002 - SPHERE CENTER 0.196144 -0.636618 0.598245 RAD 0.00617284 - txt002 - SPHERE CENTER 0.185725 -0.645434 0.618821 RAD 0.00617284 - txt002 - SPHERE CENTER 0.165892 -0.666816 0.599616 RAD 0.00617284 - txt002 - SPHERE CENTER 0.161875 -0.651825 0.618821 RAD 0.00617284 - txt002 - SPHERE CENTER 0.148444 -0.649399 0.598245 RAD 0.00617284 - txt002 - SPHERE CENTER 0.17631 -0.657999 0.57904 RAD 0.00617284 - txt002 - SPHERE CENTER 0.158862 -0.640582 0.577669 RAD 0.00617284 - txt002 - SPHERE CENTER 0.182712 -0.634191 0.577669 RAD 0.00617284 - txt002 - SPHERE CENTER 0.123605 -0.6044 0.557924 RAD 0.0185185 - txt002 - SPHERE CENTER 0.107144 -0.620861 0.549693 RAD 0.00617284 - txt002 - SPHERE CENTER 0.119989 -0.625475 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER 0.102529 -0.608016 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER 0.11076 -0.599785 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER 0.106145 -0.58694 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER 0.127221 -0.583324 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER 0.128219 -0.617245 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER 0.14468 -0.600784 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER 0.141064 -0.621859 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER 0.195155 -0.585228 0.557924 RAD 0.0185185 - txt002 - SPHERE CENTER 0.203972 -0.574809 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER 0.181486 -0.568784 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER 0.201546 -0.561378 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER 0.217641 -0.591253 0.549693 RAD 0.00617284 - txt002 - SPHERE CENTER 0.215215 -0.577822 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER 0.208824 -0.601672 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER 0.197581 -0.598659 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER 0.188764 -0.609078 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER 0.175095 -0.592634 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0329639 -0.552323 0.43322 RAD 0.0555556 - txt002 - SPHERE CENTER 0.0248832 -0.625877 0.436618 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0316054 -0.646362 0.448652 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0478 -0.627981 0.445566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0287309 -0.625173 0.460998 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00868865 -0.644258 0.439705 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00581415 -0.623069 0.45205 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00196644 -0.623773 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0277577 -0.647066 0.424272 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0210355 -0.62658 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0439523 -0.628685 0.421186 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0822954 -0.593331 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER 0.105299 -0.593994 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER 0.100664 -0.582384 0.457911 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0926585 -0.572783 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0869303 -0.604941 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0742898 -0.58373 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0639267 -0.604278 0.482603 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0949359 -0.614541 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0719323 -0.613879 0.46131 RAD 0.00617284 - txt002 - SPHERE CENTER 0.090301 -0.602932 0.448964 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0138144 -0.584567 0.497099 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0177119 -0.584898 0.521479 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0364224 -0.580268 0.506047 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0185345 -0.56353 0.509133 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00489609 -0.589197 0.512531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00407348 -0.567829 0.500186 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00879364 -0.588867 0.488152 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0129918 -0.605935 0.509445 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00909422 -0.605605 0.485065 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0317022 -0.601305 0.494013 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0244483 -0.584869 0.399581 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0473753 -0.5935 0.402668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0308315 -0.595617 0.420874 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0399691 -0.57344 0.415013 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0409921 -0.582752 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0335859 -0.562692 0.39372 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0180651 -0.574121 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0318545 -0.604929 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00892756 -0.596298 0.384149 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0153107 -0.607046 0.405442 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0355172 -0.54356 0.460062 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0495897 -0.530389 0.475494 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0261165 -0.53532 0.481355 RAD 0.00617284 - txt002 - SPHERE CENTER -0.031221 -0.519442 0.463149 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0589904 -0.538628 0.454201 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0406217 -0.527681 0.441856 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0449178 -0.551799 0.438769 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0538859 -0.554507 0.472408 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0398133 -0.567678 0.456976 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0304127 -0.559438 0.478269 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0163676 -0.511316 0.396183 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0212225 -0.48882 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00896145 -0.491256 0.408529 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00194055 -0.497372 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0286287 -0.50888 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00546563 -0.517432 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0237738 -0.531375 0.383837 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0395307 -0.502764 0.396183 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0346758 -0.525259 0.40513 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0272696 -0.505199 0.417476 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0440327 -0.593633 0.372739 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0604766 -0.607302 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0678827 -0.587242 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0604766 -0.607302 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0366265 -0.613693 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0366265 -0.613693 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0201827 -0.600023 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0440327 -0.593633 0.348047 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0275889 -0.579964 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0514389 -0.573573 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0521134 -0.520079 0.369341 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0542684 -0.523344 0.344961 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0591566 -0.541988 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0358996 -0.534291 0.357307 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0472252 -0.501435 0.353908 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0288565 -0.512382 0.366254 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0450702 -0.49817 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0704822 -0.509132 0.356995 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0683272 -0.505868 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0753703 -0.527777 0.372427 RAD 0.00617284 - txt002 - SPHERE CENTER 0.101445 -0.561087 0.406378 RAD 0.0185185 - txt002 - SPHERE CENTER 0.118381 -0.551884 0.390945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0944221 -0.550745 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.103361 -0.536664 0.403291 RAD 0.00617284 - txt002 - SPHERE CENTER 0.125404 -0.562225 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER 0.110383 -0.547006 0.424584 RAD 0.00617284 - txt002 - SPHERE CENTER 0.108468 -0.571428 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER 0.116465 -0.576307 0.394032 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0995293 -0.58551 0.409464 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0925065 -0.575168 0.388171 RAD 0.00617284 - txt002 - SPHERE CENTER 0.247614 -0.494808 0.43322 RAD 0.0555556 - txt002 - SPHERE CENTER 0.313607 -0.494287 0.399581 RAD 0.0185185 - txt002 - SPHERE CENTER 0.326876 -0.484182 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER 0.302705 -0.488171 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.310432 -0.470513 0.39372 RAD 0.00617284 - txt002 - SPHERE CENTER 0.337778 -0.490299 0.402668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.321334 -0.476629 0.415013 RAD 0.00617284 - txt002 - SPHERE CENTER 0.324509 -0.500404 0.420874 RAD 0.00617284 - txt002 - SPHERE CENTER 0.330051 -0.507957 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.316783 -0.518062 0.405442 RAD 0.00617284 - txt002 - SPHERE CENTER 0.305881 -0.511946 0.384149 RAD 0.00617284 - txt002 - SPHERE CENTER 0.269833 -0.434629 0.396183 RAD 0.0185185 - txt002 - SPHERE CENTER 0.279233 -0.426389 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER 0.286276 -0.448298 0.383837 RAD 0.00617284 - txt002 - SPHERE CENTER 0.263449 -0.445377 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER 0.262789 -0.41272 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.247006 -0.431707 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.253389 -0.420959 0.408529 RAD 0.00617284 - txt002 - SPHERE CENTER 0.285616 -0.415641 0.396183 RAD 0.00617284 - txt002 - SPHERE CENTER 0.276216 -0.42388 0.417476 RAD 0.00617284 - txt002 - SPHERE CENTER 0.29266 -0.43755 0.40513 RAD 0.00617284 - txt002 - SPHERE CENTER 0.302539 -0.452978 0.460062 RAD 0.0185185 - txt002 - SPHERE CENTER 0.320401 -0.436971 0.454201 RAD 0.00617284 - txt002 - SPHERE CENTER 0.3148 -0.455413 0.438769 RAD 0.00617284 - txt002 - SPHERE CENTER 0.29902 -0.436675 0.441856 RAD 0.00617284 - txt002 - SPHERE CENTER 0.30814 -0.434535 0.475494 RAD 0.00617284 - txt002 - SPHERE CENTER 0.286759 -0.434239 0.463149 RAD 0.00617284 - txt002 - SPHERE CENTER 0.290278 -0.450543 0.481355 RAD 0.00617284 - txt002 - SPHERE CENTER 0.32392 -0.453274 0.472408 RAD 0.00617284 - txt002 - SPHERE CENTER 0.306057 -0.469281 0.478269 RAD 0.00617284 - txt002 - SPHERE CENTER 0.318318 -0.471717 0.456976 RAD 0.00617284 - txt002 - SPHERE CENTER 0.291389 -0.554467 0.436618 RAD 0.0185185 - txt002 - SPHERE CENTER 0.314604 -0.562288 0.439705 RAD 0.00617284 - txt002 - SPHERE CENTER 0.310183 -0.541186 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER 0.306499 -0.542501 0.45205 RAD 0.00617284 - txt002 - SPHERE CENTER 0.29581 -0.575569 0.448652 RAD 0.00617284 - txt002 - SPHERE CENTER 0.287705 -0.555781 0.460998 RAD 0.00617284 - txt002 - SPHERE CENTER 0.272595 -0.567748 0.445566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.299494 -0.574255 0.424272 RAD 0.00617284 - txt002 - SPHERE CENTER 0.276279 -0.566433 0.421186 RAD 0.00617284 - txt002 - SPHERE CENTER 0.295073 -0.553152 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER 0.28032 -0.513157 0.497099 RAD 0.0185185 - txt002 - SPHERE CENTER 0.298839 -0.507811 0.512531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.302049 -0.505577 0.488152 RAD 0.00617284 - txt002 - SPHERE CENTER 0.287442 -0.489718 0.500186 RAD 0.00617284 - txt002 - SPHERE CENTER 0.27711 -0.515392 0.521479 RAD 0.00617284 - txt002 - SPHERE CENTER 0.265714 -0.497299 0.509133 RAD 0.00617284 - txt002 - SPHERE CENTER 0.258591 -0.520738 0.506047 RAD 0.00617284 - txt002 - SPHERE CENTER 0.291716 -0.531251 0.509445 RAD 0.00617284 - txt002 - SPHERE CENTER 0.273198 -0.536597 0.494013 RAD 0.00617284 - txt002 - SPHERE CENTER 0.294927 -0.529016 0.485065 RAD 0.00617284 - txt002 - SPHERE CENTER 0.225396 -0.554987 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER 0.227186 -0.567359 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.246777 -0.555283 0.482603 RAD 0.00617284 - txt002 - SPHERE CENTER 0.227528 -0.54267 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.205805 -0.567063 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER 0.206147 -0.542374 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER 0.204014 -0.554691 0.457911 RAD 0.00617284 - txt002 - SPHERE CENTER 0.225054 -0.579676 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.223263 -0.567305 0.448964 RAD 0.00617284 - txt002 - SPHERE CENTER 0.244644 -0.567601 0.46131 RAD 0.00617284 - txt002 - SPHERE CENTER 0.258683 -0.536117 0.372739 RAD 0.0185185 - txt002 - SPHERE CENTER 0.275127 -0.549787 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282533 -0.529727 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER 0.275127 -0.549787 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.251277 -0.556177 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.251277 -0.556177 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.234833 -0.542508 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER 0.258683 -0.536117 0.348047 RAD 0.00617284 - txt002 - SPHERE CENTER 0.242239 -0.522448 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.266089 -0.516058 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.19269 -0.536638 0.406378 RAD 0.0185185 - txt002 - SPHERE CENTER 0.17251 -0.549603 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER 0.191778 -0.549105 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER 0.177908 -0.528912 0.424584 RAD 0.00617284 - txt002 - SPHERE CENTER 0.173421 -0.537136 0.390945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.178819 -0.516445 0.403291 RAD 0.00617284 - txt002 - SPHERE CENTER 0.193601 -0.524171 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.187292 -0.557329 0.394032 RAD 0.00617284 - txt002 - SPHERE CENTER 0.207471 -0.544363 0.388171 RAD 0.00617284 - txt002 - SPHERE CENTER 0.20656 -0.556831 0.409464 RAD 0.00617284 - txt002 - SPHERE CENTER 0.214908 -0.476459 0.369341 RAD 0.0185185 - txt002 - SPHERE CENTER 0.209819 -0.457868 0.353908 RAD 0.00617284 - txt002 - SPHERE CENTER 0.210053 -0.453963 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.2312 -0.458164 0.366254 RAD 0.00617284 - txt002 - SPHERE CENTER 0.214674 -0.480363 0.344961 RAD 0.00617284 - txt002 - SPHERE CENTER 0.236055 -0.480659 0.357307 RAD 0.00617284 - txt002 - SPHERE CENTER 0.219763 -0.498954 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.193527 -0.476163 0.356995 RAD 0.00617284 - txt002 - SPHERE CENTER 0.198616 -0.494753 0.372427 RAD 0.00617284 - txt002 - SPHERE CENTER 0.193761 -0.472258 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER -0.172546 -0.643951 1.11022e-16 RAD 0.166667 - txt002 - SPHERE CENTER -0.157543 -0.835815 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.122136 -0.871646 0.165419 RAD 0.0185185 - txt002 - SPHERE CENTER -0.102403 -0.871334 0.180258 RAD 0.00617284 - txt002 - SPHERE CENTER -0.100577 -0.862937 0.157111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.113406 -0.850164 0.173902 RAD 0.00617284 - txt002 - SPHERE CENTER -0.123961 -0.880044 0.188567 RAD 0.00617284 - txt002 - SPHERE CENTER -0.134964 -0.858873 0.182211 RAD 0.00617284 - txt002 - SPHERE CENTER -0.143694 -0.880356 0.173728 RAD 0.00617284 - txt002 - SPHERE CENTER -0.111133 -0.892817 0.171776 RAD 0.00617284 - txt002 - SPHERE CENTER -0.130866 -0.893129 0.156937 RAD 0.00617284 - txt002 - SPHERE CENTER -0.109307 -0.884419 0.148628 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0854653 -0.82339 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0654286 -0.811594 0.114524 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0820122 -0.820516 0.0985541 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0876595 -0.80102 0.112614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0688817 -0.814468 0.138803 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0911125 -0.803895 0.136894 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0889183 -0.826265 0.147112 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0632344 -0.833964 0.124743 RAD 0.00617284 - txt002 - SPHERE CENTER -0.083271 -0.845761 0.133052 RAD 0.00617284 - txt002 - SPHERE CENTER -0.079818 -0.842886 0.108773 RAD 0.00617284 - txt002 - SPHERE CENTER -0.135649 -0.799077 0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER -0.120908 -0.781177 0.180075 RAD 0.00617284 - txt002 - SPHERE CENTER -0.113462 -0.795477 0.161374 RAD 0.00617284 - txt002 - SPHERE CENTER -0.13149 -0.778973 0.157875 RAD 0.00617284 - txt002 - SPHERE CENTER -0.143095 -0.784778 0.190293 RAD 0.00617284 - txt002 - SPHERE CENTER -0.153678 -0.782573 0.168094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.157836 -0.802678 0.181811 RAD 0.00617284 - txt002 - SPHERE CENTER -0.125067 -0.801282 0.193792 RAD 0.00617284 - txt002 - SPHERE CENTER -0.139808 -0.819182 0.18531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.11762 -0.815582 0.175091 RAD 0.00617284 - txt002 - SPHERE CENTER -0.194213 -0.884071 0.153697 RAD 0.0185185 - txt002 - SPHERE CENTER -0.197746 -0.891905 0.176845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.175383 -0.884286 0.169668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.193701 -0.867957 0.172398 RAD 0.00617284 - txt002 - SPHERE CENTER -0.216576 -0.89169 0.160875 RAD 0.00617284 - txt002 - SPHERE CENTER -0.212531 -0.867741 0.156428 RAD 0.00617284 - txt002 - SPHERE CENTER -0.213043 -0.883856 0.137727 RAD 0.00617284 - txt002 - SPHERE CENTER -0.198259 -0.908019 0.158144 RAD 0.00617284 - txt002 - SPHERE CENTER -0.194726 -0.900186 0.134996 RAD 0.00617284 - txt002 - SPHERE CENTER -0.175896 -0.900401 0.150967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.207727 -0.811502 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.212743 -0.794108 0.176661 RAD 0.00617284 - txt002 - SPHERE CENTER -0.189621 -0.802328 0.173931 RAD 0.00617284 - txt002 - SPHERE CENTER -0.199907 -0.788345 0.156372 RAD 0.00617284 - txt002 - SPHERE CENTER -0.230849 -0.803282 0.162601 RAD 0.00617284 - txt002 - SPHERE CENTER -0.218012 -0.797518 0.142311 RAD 0.00617284 - txt002 - SPHERE CENTER -0.225832 -0.820676 0.14581 RAD 0.00617284 - txt002 - SPHERE CENTER -0.220563 -0.817265 0.18016 RAD 0.00617284 - txt002 - SPHERE CENTER -0.215547 -0.83466 0.163369 RAD 0.00617284 - txt002 - SPHERE CENTER -0.197441 -0.825486 0.177429 RAD 0.00617284 - txt002 - SPHERE CENTER -0.229621 -0.84824 0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.25245 -0.843832 0.107698 RAD 0.00617284 - txt002 - SPHERE CENTER -0.233837 -0.846687 0.123668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.235043 -0.826426 0.109608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.248234 -0.845385 0.0834188 RAD 0.00617284 - txt002 - SPHERE CENTER -0.230827 -0.827978 0.0853287 RAD 0.00617284 - txt002 - SPHERE CENTER -0.225404 -0.849792 0.0751099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.247028 -0.865646 0.0974792 RAD 0.00617284 - txt002 - SPHERE CENTER -0.224198 -0.870053 0.0891702 RAD 0.00617284 - txt002 - SPHERE CENTER -0.228415 -0.868501 0.113449 RAD 0.00617284 - txt002 - SPHERE CENTER -0.14403 -0.908384 0.104938 RAD 0.0185185 - txt002 - SPHERE CENTER -0.128672 -0.926643 0.111295 RAD 0.00617284 - txt002 - SPHERE CENTER -0.1198 -0.904034 0.106848 RAD 0.00617284 - txt002 - SPHERE CENTER -0.133221 -0.90826 0.127138 RAD 0.00617284 - txt002 - SPHERE CENTER -0.152902 -0.930993 0.109385 RAD 0.00617284 - txt002 - SPHERE CENTER -0.157451 -0.912609 0.125228 RAD 0.00617284 - txt002 - SPHERE CENTER -0.16826 -0.912733 0.103028 RAD 0.00617284 - txt002 - SPHERE CENTER -0.139481 -0.926768 0.0890951 RAD 0.00617284 - txt002 - SPHERE CENTER -0.154838 -0.908508 0.0827387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.130608 -0.904159 0.0846485 RAD 0.00617284 - txt002 - SPHERE CENTER -0.179437 -0.872552 0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER -0.188167 -0.894035 0.0421477 RAD 0.00617284 - txt002 - SPHERE CENTER -0.172046 -0.89378 0.0608487 RAD 0.00617284 - txt002 - SPHERE CENTER -0.195141 -0.885777 0.0643473 RAD 0.00617284 - txt002 - SPHERE CENTER -0.195558 -0.872807 0.0319289 RAD 0.00617284 - txt002 - SPHERE CENTER -0.202532 -0.864549 0.0541285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.186828 -0.851325 0.0404111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.172463 -0.880811 0.0284303 RAD 0.00617284 - txt002 - SPHERE CENTER -0.163733 -0.859328 0.0369125 RAD 0.00617284 - txt002 - SPHERE CENTER -0.156342 -0.880556 0.0471312 RAD 0.00617284 - txt002 - SPHERE CENTER -0.107359 -0.860128 0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0905999 -0.853284 0.0455609 RAD 0.00617284 - txt002 - SPHERE CENTER -0.111382 -0.840233 0.0482916 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0940331 -0.839638 0.0658506 RAD 0.00617284 - txt002 - SPHERE CENTER -0.086577 -0.873178 0.0596212 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0900102 -0.859532 0.079911 RAD 0.00617284 - txt002 - SPHERE CENTER -0.103336 -0.880022 0.0764123 RAD 0.00617284 - txt002 - SPHERE CENTER -0.103926 -0.873773 0.0420622 RAD 0.00617284 - txt002 - SPHERE CENTER -0.120685 -0.880618 0.0588533 RAD 0.00617284 - txt002 - SPHERE CENTER -0.124708 -0.860723 0.044793 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0133465 -0.69376 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.0838533 -0.674309 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.103063 -0.66171 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0876683 -0.673446 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0800983 -0.653258 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0992478 -0.662574 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0762832 -0.654121 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0800382 -0.675172 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.106818 -0.682761 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0876083 -0.69536 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0914233 -0.694497 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0539145 -0.666287 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0547519 -0.662466 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0439578 -0.682791 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0332597 -0.660752 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0647085 -0.645962 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0432164 -0.644249 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0638711 -0.649783 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0754066 -0.668 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0745692 -0.671821 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0646126 -0.688325 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0325183 -0.62221 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0446211 -0.604582 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.053173 -0.627745 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0325183 -0.62221 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0239663 -0.599047 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0118635 -0.616676 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0118635 -0.616676 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0446211 -0.604582 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0325183 -0.62221 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.053173 -0.627745 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0432853 -0.701782 0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0608821 -0.693716 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0652402 -0.694884 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0496759 -0.677932 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0389272 -0.700615 0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.027721 -0.684831 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0213304 -0.708681 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0544915 -0.717566 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0368947 -0.725632 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0588496 -0.718734 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00804971 -0.649684 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.00328338 -0.628657 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0152909 -0.642244 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.000378614 -0.630031 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.026624 -0.636097 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.022962 -0.637471 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0313903 -0.657124 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0117117 -0.648309 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.016478 -0.669336 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00686255 -0.661896 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0272215 -0.721234 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0310802 -0.720593 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00820099 -0.718114 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0246945 -0.7 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0501007 -0.723713 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.043715 -0.70312 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.046242 -0.724354 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0336072 -0.741827 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0297485 -0.742467 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.010728 -0.739347 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0646815 -0.745859 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0887955 -0.750021 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0813312 -0.732161 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.078459 -0.729506 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0721458 -0.763719 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0618093 -0.743204 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0480318 -0.759557 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.075018 -0.766375 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.050904 -0.762212 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0675537 -0.748514 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0058253 -0.76531 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.00415829 -0.786629 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0148294 -0.770845 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0058253 -0.76531 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.024813 -0.781094 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.02648 -0.759776 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.02648 -0.759776 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00415829 -0.786629 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0058253 -0.76531 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0148294 -0.770845 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0347427 -0.737837 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0542122 -0.747099 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0550267 -0.7241 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0553974 -0.743371 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0339282 -0.760836 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0351134 -0.757108 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0144587 -0.751574 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0335575 -0.741565 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.014088 -0.732303 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0343719 -0.718566 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.172546 -0.643951 0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER -0.142305 -0.61371 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.125845 -0.597249 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER -0.12123 -0.610094 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.138689 -0.592635 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.14692 -0.600865 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.159765 -0.596251 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.163381 -0.617326 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.12946 -0.618324 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.145921 -0.634785 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.124846 -0.631169 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.100996 -0.624779 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0833673 -0.612676 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.100996 -0.624779 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.10653 -0.604124 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0833673 -0.612676 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.10653 -0.604124 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.100996 -0.624779 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0778329 -0.633331 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0954616 -0.645433 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0954616 -0.645433 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.153374 -0.5724 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.141271 -0.554772 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.13272 -0.577935 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.153374 -0.5724 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.161926 -0.549237 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.174029 -0.566866 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.174029 -0.566866 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.141271 -0.554772 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.153374 -0.5724 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.13272 -0.577935 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.213855 -0.632882 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.216282 -0.61945 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.193796 -0.625476 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.207465 -0.609032 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.236341 -0.626857 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER -0.227525 -0.616438 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.233915 -0.640288 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.222672 -0.6433 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.220246 -0.656732 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.200186 -0.649326 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.224924 -0.591572 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.2291 -0.567237 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.209804 -0.576452 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.209804 -0.576452 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.24422 -0.582357 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.224924 -0.591572 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.240045 -0.606693 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.24422 -0.582357 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.240045 -0.606693 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.224924 -0.591572 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.244096 -0.663122 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.265414 -0.661455 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.244096 -0.663122 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.249631 -0.642468 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.265414 -0.661455 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.249631 -0.642468 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.244096 -0.663122 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.25988 -0.68211 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.238562 -0.683777 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.238562 -0.683777 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.161477 -0.68526 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.148046 -0.687686 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.137627 -0.678869 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.154071 -0.6652 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.171896 -0.694077 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.177921 -0.671591 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.185327 -0.691651 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.155452 -0.707746 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER -0.168883 -0.70532 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.145033 -0.698929 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.191718 -0.715501 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.190051 -0.736819 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.171063 -0.721035 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.191718 -0.715501 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.210706 -0.731284 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.212373 -0.709966 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.212373 -0.709966 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.190051 -0.736819 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.191718 -0.715501 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.171063 -0.721035 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.120168 -0.696329 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.095832 -0.700504 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.105047 -0.681209 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.105047 -0.681209 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.110952 -0.715624 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.120168 -0.696329 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.135288 -0.711449 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.110952 -0.715624 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.135288 -0.711449 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.120168 -0.696329 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.343435 -0.786005 8.51251e-17 RAD 0.0555556 - txt002 - SPHERE CENTER -0.392454 -0.82165 0.0425863 RAD 0.0185185 - txt002 - SPHERE CENTER -0.400556 -0.824791 0.065698 RAD 0.00617284 - txt002 - SPHERE CENTER -0.376528 -0.821021 0.0614442 RAD 0.00617284 - txt002 - SPHERE CENTER -0.392663 -0.802599 0.058292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.416482 -0.82542 0.0468401 RAD 0.00617284 - txt002 - SPHERE CENTER -0.408589 -0.803228 0.0394341 RAD 0.00617284 - txt002 - SPHERE CENTER -0.40838 -0.822279 0.0237283 RAD 0.00617284 - txt002 - SPHERE CENTER -0.400347 -0.843843 0.0499923 RAD 0.00617284 - txt002 - SPHERE CENTER -0.392245 -0.840701 0.0268805 RAD 0.00617284 - txt002 - SPHERE CENTER -0.376319 -0.840073 0.0457385 RAD 0.00617284 - txt002 - SPHERE CENTER -0.323622 -0.80984 0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER -0.308073 -0.80634 0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER -0.300378 -0.802721 0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER -0.316395 -0.786996 0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER -0.331317 -0.813459 0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER -0.339639 -0.794116 0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER -0.346866 -0.81696 0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER -0.315299 -0.829184 0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER -0.330849 -0.832685 0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.307605 -0.825565 0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER -0.370774 -0.753118 0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER -0.367981 -0.734271 0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER -0.348136 -0.745269 0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER -0.362711 -0.731279 0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER -0.390619 -0.74212 0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.385349 -0.739128 0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER -0.393412 -0.760966 0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER -0.376044 -0.756109 0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER -0.378837 -0.774956 0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER -0.356199 -0.767107 0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER -0.412267 -0.797815 -0.0246914 RAD 0.0185185 - txt002 - SPHERE CENTER -0.436217 -0.793573 -0.0204376 RAD 0.00617284 - txt002 - SPHERE CENTER -0.420728 -0.796968 -0.00151032 RAD 0.00617284 - txt002 - SPHERE CENTER -0.419454 -0.776294 -0.0149506 RAD 0.00617284 - txt002 - SPHERE CENTER -0.427756 -0.79442 -0.0436186 RAD 0.00617284 - txt002 - SPHERE CENTER -0.410993 -0.777141 -0.0381316 RAD 0.00617284 - txt002 - SPHERE CENTER -0.403807 -0.798662 -0.0478724 RAD 0.00617284 - txt002 - SPHERE CENTER -0.42903 -0.815094 -0.0301783 RAD 0.00617284 - txt002 - SPHERE CENTER -0.405081 -0.819335 -0.0344321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.413542 -0.818489 -0.0112511 RAD 0.00617284 - txt002 - SPHERE CENTER -0.390587 -0.729282 -0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER -0.392427 -0.704862 -0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER -0.373948 -0.714218 0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.374248 -0.717401 -0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER -0.409067 -0.719927 -0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER -0.390887 -0.732465 -0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.407227 -0.744347 -0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.408767 -0.716744 0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER -0.406927 -0.741164 0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER -0.390287 -0.726099 0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER -0.363249 -0.76217 -0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER -0.356966 -0.747522 -0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER -0.352002 -0.740618 -0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER -0.339469 -0.759239 -0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER -0.368213 -0.769074 -0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER -0.350716 -0.780791 -0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER -0.374496 -0.783722 -0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER -0.380746 -0.750453 -0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER -0.387029 -0.765101 -0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.375782 -0.743549 -0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER -0.365116 -0.854538 -0.0178949 RAD 0.0185185 - txt002 - SPHERE CENTER -0.365674 -0.878086 -0.0104889 RAD 0.00617284 - txt002 - SPHERE CENTER -0.346241 -0.863875 -0.00500196 RAD 0.00617284 - txt002 - SPHERE CENTER -0.367962 -0.859887 0.00604126 RAD 0.00617284 - txt002 - SPHERE CENTER -0.384548 -0.868748 -0.0233819 RAD 0.00617284 - txt002 - SPHERE CENTER -0.386837 -0.85055 -0.00685171 RAD 0.00617284 - txt002 - SPHERE CENTER -0.38399 -0.8452 -0.0307879 RAD 0.00617284 - txt002 - SPHERE CENTER -0.362827 -0.872736 -0.0344251 RAD 0.00617284 - txt002 - SPHERE CENTER -0.362269 -0.849188 -0.0418311 RAD 0.00617284 - txt002 - SPHERE CENTER -0.343394 -0.858526 -0.0289382 RAD 0.00617284 - txt002 - SPHERE CENTER -0.316097 -0.818893 -0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER -0.297057 -0.819591 -0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER -0.304244 -0.79807 -0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER -0.293153 -0.814956 -0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER -0.30891 -0.840413 -0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.305006 -0.835779 -0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER -0.32795 -0.839716 -0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER -0.320001 -0.823527 -0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER -0.339041 -0.822829 -0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER -0.327188 -0.802007 -0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER -0.296284 -0.842728 0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER -0.272611 -0.848999 0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER -0.278432 -0.829121 -0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.281616 -0.828835 0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER -0.290462 -0.862606 0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER -0.299468 -0.842441 0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.314135 -0.856335 0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.287278 -0.862893 -0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER -0.310951 -0.856621 -0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER -0.293099 -0.843015 -0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER -0.358439 -0.594141 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.389119 -0.547576 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.386849 -0.525642 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.366733 -0.538964 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.379645 -0.528407 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.409235 -0.534255 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.402031 -0.537019 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.411505 -0.556189 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.396323 -0.544812 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.398593 -0.566746 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.376207 -0.558134 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.317871 -0.566667 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.299647 -0.551072 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.29885 -0.563547 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.315344 -0.545434 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.318667 -0.554192 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.334364 -0.548554 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.336891 -0.569787 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.302174 -0.572306 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER -0.320398 -0.587901 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.301377 -0.584781 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.339267 -0.522591 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.327164 -0.504962 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.318612 -0.528125 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.339267 -0.522591 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.347819 -0.499428 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.359921 -0.517056 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.359921 -0.517056 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.327164 -0.504962 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.339267 -0.522591 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.318612 -0.528125 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.429687 -0.57505 0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER -0.446515 -0.55776 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.428387 -0.562617 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.423296 -0.5512 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.447815 -0.570193 0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER -0.424596 -0.563633 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.430987 -0.587483 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.452905 -0.58161 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.436077 -0.5989 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.434777 -0.586467 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.379835 -0.550064 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.372012 -0.535334 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.359551 -0.536327 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.35918 -0.555599 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.392296 -0.549071 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.379464 -0.569335 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.400119 -0.563801 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.392667 -0.529799 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.400489 -0.54453 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.380205 -0.530793 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399007 -0.621614 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.420252 -0.632748 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.408963 -0.638118 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.419661 -0.61608 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.410295 -0.616244 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.409705 -0.599576 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.38905 -0.60511 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399597 -0.638282 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.378352 -0.627149 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.388308 -0.643653 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.408291 -0.619127 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.415912 -0.617918 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.39183 -0.616439 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.406911 -0.597788 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.432372 -0.620605 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.423371 -0.600475 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.424751 -0.621814 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.417292 -0.639257 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.409671 -0.640465 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.39321 -0.637778 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.37761 -0.665691 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.375943 -0.687009 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.356956 -0.671225 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.37761 -0.665691 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.396598 -0.681475 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.398265 -0.660156 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.398265 -0.660156 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.375943 -0.687009 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.37761 -0.665691 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.356956 -0.671225 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.337042 -0.638217 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.320629 -0.641183 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER -0.313702 -0.630777 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.328614 -0.618565 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.34397 -0.648623 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.351955 -0.626005 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.360383 -0.645657 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.329058 -0.660835 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.345471 -0.65787 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.32213 -0.65043 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.358439 -0.594141 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.409774 -0.542042 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.413579 -0.517869 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.395831 -0.525596 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.393219 -0.528508 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.427522 -0.534315 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.407161 -0.544953 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.423716 -0.558488 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.430134 -0.531404 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.426328 -0.555577 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.412386 -0.539131 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.379835 -0.550064 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.375068 -0.529037 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.356494 -0.542624 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.371406 -0.530412 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.398409 -0.536477 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.394747 -0.537852 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.403175 -0.557504 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.383497 -0.548689 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.388263 -0.569716 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.364922 -0.562276 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.339267 -0.522591 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.327164 -0.504962 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.318612 -0.528125 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.339267 -0.522591 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.347819 -0.499428 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.359921 -0.517056 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.359921 -0.517056 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.327164 -0.504962 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.339267 -0.522591 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.318612 -0.528125 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.388377 -0.586119 -0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.399584 -0.570335 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.403942 -0.569167 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.381987 -0.562269 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.384019 -0.587286 -0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.366422 -0.57922 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.372813 -0.60307 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.405974 -0.594185 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.394768 -0.609969 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.410332 -0.593017 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.317871 -0.566667 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.317033 -0.562847 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.327827 -0.583171 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.338525 -0.561133 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.307077 -0.546343 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.328569 -0.544629 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.307914 -0.550163 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.296378 -0.568381 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER -0.297216 -0.572202 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.307172 -0.588706 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.337042 -0.638217 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.317573 -0.64748 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER -0.316758 -0.624481 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.316388 -0.643752 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.337857 -0.661216 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.336672 -0.657489 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.357326 -0.651954 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.338228 -0.641945 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.357697 -0.632683 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.337413 -0.618946 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.428945 -0.613592 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.451897 -0.612625 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.432663 -0.614807 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.436515 -0.593593 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.448179 -0.61141 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.432797 -0.592379 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.425227 -0.612377 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.444328 -0.632624 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.421376 -0.633591 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.425094 -0.634806 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.37761 -0.665691 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.375943 -0.687009 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.356956 -0.671225 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.37761 -0.665691 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.396598 -0.681475 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.398265 -0.660156 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.398265 -0.660156 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.375943 -0.687009 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.37761 -0.665691 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.356956 -0.671225 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399007 -0.621614 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.402865 -0.620974 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.379986 -0.618494 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.39648 -0.600381 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.421886 -0.624094 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.4155 -0.603501 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.418027 -0.624734 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.405392 -0.642207 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.401533 -0.642848 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.382513 -0.639728 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.157543 -0.835815 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.119969 -0.899353 -0.117284 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0977075 -0.909872 -0.115431 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0997803 -0.886771 -0.1239 RAD 0.00617284 - txt002 - SPHERE CENTER -0.104052 -0.891613 -0.100068 RAD 0.00617284 - txt002 - SPHERE CENTER -0.117896 -0.922453 -0.108814 RAD 0.00617284 - txt002 - SPHERE CENTER -0.124241 -0.904194 -0.0934517 RAD 0.00617284 - txt002 - SPHERE CENTER -0.140158 -0.911935 -0.110668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.113625 -0.917612 -0.132647 RAD 0.00617284 - txt002 - SPHERE CENTER -0.135886 -0.907093 -0.1345 RAD 0.00617284 - txt002 - SPHERE CENTER -0.115698 -0.894512 -0.141116 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0844101 -0.836885 -0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0627848 -0.826973 -0.106005 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0805529 -0.830202 -0.122844 RAD 0.00617284 - txt002 - SPHERE CENTER -0.083104 -0.81296 -0.105354 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0666419 -0.833656 -0.0825505 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0869612 -0.819643 -0.0818993 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0882673 -0.843568 -0.0759343 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0640908 -0.850898 -0.10004 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0857161 -0.860809 -0.093424 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0818589 -0.854126 -0.116879 RAD 0.00617284 - txt002 - SPHERE CENTER -0.130205 -0.868703 -0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER -0.11253 -0.867758 -0.0334138 RAD 0.00617284 - txt002 - SPHERE CENTER -0.107566 -0.860854 -0.0565949 RAD 0.00617284 - txt002 - SPHERE CENTER -0.122142 -0.846864 -0.0423994 RAD 0.00617284 - txt002 - SPHERE CENTER -0.135168 -0.875606 -0.0274488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.14478 -0.854713 -0.0364345 RAD 0.00617284 - txt002 - SPHERE CENTER -0.152843 -0.876551 -0.0446649 RAD 0.00617284 - txt002 - SPHERE CENTER -0.120593 -0.889596 -0.0416443 RAD 0.00617284 - txt002 - SPHERE CENTER -0.138267 -0.890541 -0.0588603 RAD 0.00617284 - txt002 - SPHERE CENTER -0.115629 -0.882692 -0.0648253 RAD 0.00617284 - txt002 - SPHERE CENTER -0.193102 -0.898283 -0.129006 RAD 0.0185185 - txt002 - SPHERE CENTER -0.201143 -0.920038 -0.120537 RAD 0.00617284 - txt002 - SPHERE CENTER -0.17991 -0.910616 -0.112168 RAD 0.00617284 - txt002 - SPHERE CENTER -0.201384 -0.900209 -0.105825 RAD 0.00617284 - txt002 - SPHERE CENTER -0.214335 -0.907705 -0.137375 RAD 0.00617284 - txt002 - SPHERE CENTER -0.214576 -0.887876 -0.122663 RAD 0.00617284 - txt002 - SPHERE CENTER -0.206294 -0.88595 -0.145845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.192861 -0.918112 -0.143718 RAD 0.00617284 - txt002 - SPHERE CENTER -0.18482 -0.896357 -0.152187 RAD 0.00617284 - txt002 - SPHERE CENTER -0.171628 -0.90869 -0.135349 RAD 0.00617284 - txt002 - SPHERE CENTER -0.203337 -0.867633 -0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER -0.209658 -0.868948 -0.0385197 RAD 0.00617284 - txt002 - SPHERE CENTER -0.186008 -0.865773 -0.0448623 RAD 0.00617284 - txt002 - SPHERE CENTER -0.202239 -0.84746 -0.0481565 RAD 0.00617284 - txt002 - SPHERE CENTER -0.226988 -0.870808 -0.0560094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.219569 -0.84932 -0.0656463 RAD 0.00617284 - txt002 - SPHERE CENTER -0.220667 -0.869493 -0.0798417 RAD 0.00617284 - txt002 - SPHERE CENTER -0.210757 -0.889121 -0.0527151 RAD 0.00617284 - txt002 - SPHERE CENTER -0.204436 -0.887806 -0.0765474 RAD 0.00617284 - txt002 - SPHERE CENTER -0.187106 -0.885946 -0.0590577 RAD 0.00617284 - txt002 - SPHERE CENTER -0.230676 -0.834745 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.252002 -0.824206 -0.116217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.234336 -0.827952 -0.0993785 RAD 0.00617284 - txt002 - SPHERE CENTER -0.231282 -0.810793 -0.116868 RAD 0.00617284 - txt002 - SPHERE CENTER -0.248342 -0.830999 -0.139672 RAD 0.00617284 - txt002 - SPHERE CENTER -0.227621 -0.817586 -0.140323 RAD 0.00617284 - txt002 - SPHERE CENTER -0.227016 -0.841538 -0.146288 RAD 0.00617284 - txt002 - SPHERE CENTER -0.251396 -0.848158 -0.122182 RAD 0.00617284 - txt002 - SPHERE CENTER -0.23007 -0.858698 -0.128798 RAD 0.00617284 - txt002 - SPHERE CENTER -0.23373 -0.851905 -0.105343 RAD 0.00617284 - txt002 - SPHERE CENTER -0.147308 -0.866465 -0.177765 RAD 0.0185185 - txt002 - SPHERE CENTER -0.130609 -0.876203 -0.193128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.124356 -0.857385 -0.178416 RAD 0.00617284 - txt002 - SPHERE CENTER -0.128522 -0.879733 -0.16878 RAD 0.00617284 - txt002 - SPHERE CENTER -0.153561 -0.885283 -0.192477 RAD 0.00617284 - txt002 - SPHERE CENTER -0.151474 -0.888813 -0.168128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.170259 -0.875546 -0.177114 RAD 0.00617284 - txt002 - SPHERE CENTER -0.149395 -0.862935 -0.202114 RAD 0.00617284 - txt002 - SPHERE CENTER -0.166093 -0.853198 -0.186751 RAD 0.00617284 - txt002 - SPHERE CENTER -0.143141 -0.844117 -0.187402 RAD 0.00617284 - txt002 - SPHERE CENTER -0.184881 -0.802927 -0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER -0.180723 -0.785723 -0.188808 RAD 0.00617284 - txt002 - SPHERE CENTER -0.173028 -0.782104 -0.165627 RAD 0.00617284 - txt002 - SPHERE CENTER -0.161937 -0.798991 -0.179823 RAD 0.00617284 - txt002 - SPHERE CENTER -0.192576 -0.806546 -0.194773 RAD 0.00617284 - txt002 - SPHERE CENTER -0.17379 -0.819813 -0.185788 RAD 0.00617284 - txt002 - SPHERE CENTER -0.196734 -0.82375 -0.177557 RAD 0.00617284 - txt002 - SPHERE CENTER -0.203667 -0.78966 -0.180578 RAD 0.00617284 - txt002 - SPHERE CENTER -0.207825 -0.806864 -0.163362 RAD 0.00617284 - txt002 - SPHERE CENTER -0.195972 -0.786041 -0.157397 RAD 0.00617284 - txt002 - SPHERE CENTER -0.111748 -0.803997 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.108311 -0.798532 -0.183703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.119537 -0.819589 -0.17736 RAD 0.00617284 - txt002 - SPHERE CENTER -0.131037 -0.797989 -0.174066 RAD 0.00617284 - txt002 - SPHERE CENTER -0.100522 -0.78294 -0.166213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.123249 -0.782397 -0.156576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.10396 -0.788405 -0.142381 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0890219 -0.80454 -0.169507 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0924597 -0.810005 -0.145675 RAD 0.00617284 - txt002 - SPHERE CENTER -0.100248 -0.825597 -0.163165 RAD 0.00617284 - txt002 - SPHERE CENTER -0.172546 -0.643951 -0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER -0.202787 -0.61371 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.200937 -0.595399 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.194794 -0.591462 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.180539 -0.605717 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.208929 -0.617647 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.188531 -0.627965 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER -0.210779 -0.635958 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.223185 -0.603392 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER -0.225035 -0.621702 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.217042 -0.599454 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER -0.244096 -0.624779 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.260374 -0.607636 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.240901 -0.612854 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.237705 -0.600929 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.26357 -0.619561 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER -0.240901 -0.612854 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.247291 -0.636704 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.266765 -0.631486 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.250487 -0.648629 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.247291 -0.636704 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.191718 -0.5724 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.185011 -0.549732 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.167868 -0.56601 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.179793 -0.569205 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.208861 -0.556122 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.203643 -0.575596 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.215568 -0.578791 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.196936 -0.552927 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.203643 -0.575596 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.179793 -0.569205 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.131237 -0.632882 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.131575 -0.625593 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.15071 -0.6381 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER -0.146508 -0.614836 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.112102 -0.620375 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER -0.127034 -0.609618 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.111763 -0.627664 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER -0.116304 -0.643639 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.115965 -0.650927 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.135439 -0.656145 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.120168 -0.591572 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.105912 -0.577317 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER -0.111438 -0.600302 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.128897 -0.582843 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.114642 -0.568587 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.137627 -0.574113 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.128897 -0.582843 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0971825 -0.586046 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.111438 -0.600302 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.102708 -0.609032 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.100996 -0.663122 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0783272 -0.656415 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0978007 -0.651197 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0946054 -0.639272 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0815225 -0.66834 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0978007 -0.651197 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.104191 -0.675047 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0847178 -0.680265 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.107387 -0.686972 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.104191 -0.675047 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.183615 -0.68526 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.182351 -0.708085 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER -0.165569 -0.700531 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.188833 -0.704733 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER -0.200397 -0.692813 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.206879 -0.689462 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.201661 -0.669989 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.177134 -0.688611 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.178397 -0.665787 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER -0.160351 -0.681058 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.153374 -0.715501 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.136231 -0.731779 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.129524 -0.70911 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.141449 -0.712305 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.160081 -0.738169 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.165299 -0.718696 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.177224 -0.721891 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.148156 -0.734974 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER -0.165299 -0.718696 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.141449 -0.712305 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.224924 -0.696329 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.23918 -0.710584 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.216195 -0.705059 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.233654 -0.687599 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.24791 -0.701855 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.242384 -0.678869 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.233654 -0.687599 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.23045 -0.719314 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.216195 -0.705059 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.207465 -0.713788 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0133465 -0.69376 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.0631985 -0.668775 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0667914 -0.661946 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0511945 -0.680354 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0452771 -0.65711 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0787954 -0.650366 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0572811 -0.64553 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0752026 -0.657195 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0847128 -0.673611 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.08112 -0.680439 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.069116 -0.692019 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00804971 -0.649684 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.000226782 -0.634953 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0122343 -0.635947 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.012605 -0.655218 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0205108 -0.64869 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00767898 -0.668955 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0283337 -0.66342 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0208815 -0.629419 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0287044 -0.644149 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00842045 -0.630413 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0325183 -0.62221 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0446211 -0.604582 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.053173 -0.627745 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0325183 -0.62221 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0239663 -0.599047 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0118635 -0.616676 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0118635 -0.616676 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0446211 -0.604582 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0325183 -0.62221 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.053173 -0.627745 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0845947 -0.712851 -0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER 0.107813 -0.706291 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0896851 -0.701434 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0909853 -0.689001 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.102723 -0.717709 -0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0858949 -0.700418 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0795043 -0.724268 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.101422 -0.730141 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0782041 -0.736701 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0832945 -0.725284 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0539145 -0.666287 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0721382 -0.650692 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.072935 -0.663167 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0564414 -0.645053 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0531177 -0.653812 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0374209 -0.648173 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.034894 -0.669407 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0696112 -0.671925 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0513875 -0.68752 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.070408 -0.6844 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0347427 -0.737837 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0511556 -0.740802 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0580833 -0.730397 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.043171 -0.718185 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.027815 -0.748242 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0198304 -0.725625 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0114021 -0.745277 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0427273 -0.760455 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0263144 -0.757489 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0496549 -0.750049 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0440268 -0.740325 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0650768 -0.746894 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0607735 -0.723153 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0653796 -0.739183 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.04833 -0.764065 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0486329 -0.756355 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.02728 -0.757496 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0437239 -0.748035 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0226739 -0.741466 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0394207 -0.724295 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0058253 -0.76531 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.00415829 -0.786629 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0148294 -0.770845 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0058253 -0.76531 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.024813 -0.781094 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.02648 -0.759776 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.02648 -0.759776 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00415829 -0.786629 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0058253 -0.76531 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0148294 -0.770845 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0272215 -0.721234 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0484665 -0.732368 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0371781 -0.737738 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0478762 -0.715699 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0385099 -0.715864 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0379196 -0.699195 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0172649 -0.70473 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0278118 -0.737902 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00656677 -0.726768 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0165234 -0.743272 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.471405 -0.471405 1.11022e-16 RAD 0.166667 - txt002 - SPHERE CENTER 0.690426 -0.508983 1.83812e-16 RAD 0.0555556 - txt002 - SPHERE CENTER 0.755941 -0.484794 -0.0246914 RAD 0.0185185 - txt002 - SPHERE CENTER 0.767658 -0.47411 -0.0436186 RAD 0.00617284 - txt002 - SPHERE CENTER 0.749038 -0.489758 -0.0478724 RAD 0.00617284 - txt002 - SPHERE CENTER 0.744501 -0.467528 -0.0381316 RAD 0.00617284 - txt002 - SPHERE CENTER 0.774562 -0.469146 -0.0204376 RAD 0.00617284 - txt002 - SPHERE CENTER 0.751405 -0.462564 -0.0149506 RAD 0.00617284 - txt002 - SPHERE CENTER 0.762845 -0.47983 -0.00151032 RAD 0.00617284 - txt002 - SPHERE CENTER 0.779098 -0.491377 -0.0301783 RAD 0.00617284 - txt002 - SPHERE CENTER 0.767382 -0.502061 -0.0112511 RAD 0.00617284 - txt002 - SPHERE CENTER 0.760478 -0.507025 -0.0344321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.695668 -0.478434 -0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER 0.703418 -0.481931 -0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER 0.716184 -0.491475 -0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER 0.694124 -0.500827 -0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER 0.682902 -0.46889 -0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER 0.673608 -0.487786 -0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER 0.675152 -0.465393 -0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER 0.704962 -0.459538 -0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER 0.697211 -0.456041 -0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER 0.717727 -0.469082 -0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.7029 -0.436283 -0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER 0.714226 -0.418941 -0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER 0.724842 -0.44101 -0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.704751 -0.43889 -0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.692283 -0.414215 -0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER 0.682808 -0.434163 -0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER 0.680957 -0.431557 0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.712374 -0.416335 0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER 0.701048 -0.433677 0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER 0.722991 -0.438403 0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER 0.7507 -0.515343 0.0425863 RAD 0.0185185 - txt002 - SPHERE CENTER 0.773394 -0.506594 0.0468401 RAD 0.00617284 - txt002 - SPHERE CENTER 0.764807 -0.507924 0.0237283 RAD 0.00617284 - txt002 - SPHERE CENTER 0.755462 -0.491321 0.0394341 RAD 0.00617284 - txt002 - SPHERE CENTER 0.759287 -0.514012 0.065698 RAD 0.00617284 - txt002 - SPHERE CENTER 0.741355 -0.49874 0.058292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.736593 -0.522762 0.0614442 RAD 0.00617284 - txt002 - SPHERE CENTER 0.768632 -0.530616 0.0499923 RAD 0.00617284 - txt002 - SPHERE CENTER 0.745938 -0.539365 0.0457385 RAD 0.00617284 - txt002 - SPHERE CENTER 0.760045 -0.531946 0.0268805 RAD 0.00617284 - txt002 - SPHERE CENTER 0.697658 -0.466832 0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER 0.709346 -0.447385 0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.721188 -0.46231 0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER 0.703286 -0.447429 0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER 0.685816 -0.451907 0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER 0.679757 -0.451951 0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER 0.674129 -0.471354 0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.703718 -0.466788 0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER 0.692031 -0.486235 0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER 0.71556 -0.481713 0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER 0.685185 -0.539531 0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER 0.693658 -0.538818 0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER 0.708875 -0.534075 0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER 0.691194 -0.517905 0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669969 -0.544274 0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER 0.667505 -0.523361 0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER 0.661495 -0.544988 0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER 0.687649 -0.560445 0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER 0.679176 -0.561158 0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER 0.702866 -0.555702 0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.743468 -0.557494 -0.0178949 RAD 0.0185185 - txt002 - SPHERE CENTER 0.767402 -0.560084 -0.0233819 RAD 0.00617284 - txt002 - SPHERE CENTER 0.755145 -0.53997 -0.0307879 RAD 0.00617284 - txt002 - SPHERE CENTER 0.760285 -0.543179 -0.00685171 RAD 0.00617284 - txt002 - SPHERE CENTER 0.755725 -0.577608 -0.0104889 RAD 0.00617284 - txt002 - SPHERE CENTER 0.748608 -0.560703 0.00604126 RAD 0.00617284 - txt002 - SPHERE CENTER 0.731791 -0.575017 -0.00500196 RAD 0.00617284 - txt002 - SPHERE CENTER 0.750585 -0.574398 -0.0344251 RAD 0.00617284 - txt002 - SPHERE CENTER 0.726651 -0.571808 -0.0289382 RAD 0.00617284 - txt002 - SPHERE CENTER 0.738328 -0.554284 -0.0418311 RAD 0.00617284 - txt002 - SPHERE CENTER 0.677953 -0.581682 0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER 0.682851 -0.601808 0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER 0.700216 -0.58454 0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.680568 -0.579842 0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.660588 -0.59895 0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER 0.658304 -0.576984 0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER 0.65569 -0.578824 -0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.680237 -0.603648 -0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER 0.675339 -0.583522 -0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER 0.697602 -0.58638 -0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER 0.683194 -0.551134 -0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER 0.687731 -0.573364 -0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.703871 -0.56324 -0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER 0.682033 -0.571303 -0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER 0.667055 -0.561258 -0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER 0.661356 -0.559196 -0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER 0.662518 -0.539027 -0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.688893 -0.553195 -0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER 0.684356 -0.530964 -0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER 0.705033 -0.543071 -0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER 0.607487 -0.335322 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.629404 -0.313405 -0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.626214 -0.316595 -0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.624401 -0.335868 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.606941 -0.318408 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.631217 -0.294133 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.611945 -0.295946 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.634407 -0.290942 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.648676 -0.311592 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.651867 -0.308402 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.646863 -0.330864 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.610996 -0.384191 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.623201 -0.403702 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.635431 -0.385946 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.62031 -0.401066 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.598766 -0.401947 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.595876 -0.399312 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.586561 -0.382437 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.613886 -0.386827 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER 0.601681 -0.367317 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.626116 -0.369071 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.558618 -0.331813 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.539107 -0.319608 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.541743 -0.322499 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.556863 -0.307378 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.555982 -0.328923 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER 0.573738 -0.316693 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.575492 -0.341128 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.540862 -0.344043 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.560372 -0.356248 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.543497 -0.346933 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.625895 -0.264535 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.637402 -0.248969 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.646193 -0.271807 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.625088 -0.268363 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.617105 -0.241698 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.604791 -0.261092 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.605598 -0.257264 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.638209 -0.245142 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.626702 -0.260708 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER 0.647 -0.267979 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.555109 -0.282943 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.550934 -0.258608 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.570229 -0.267823 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.570229 -0.267823 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.535813 -0.273728 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.555109 -0.282943 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.539989 -0.298064 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.535813 -0.273728 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.539989 -0.298064 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.555109 -0.282943 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.603979 -0.286452 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.613271 -0.265398 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.627912 -0.281225 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.610787 -0.26842 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.589337 -0.270625 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.586853 -0.273647 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.580045 -0.291679 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.606463 -0.283431 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.59717 -0.304484 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.621104 -0.299257 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.678274 -0.316914 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.69384 -0.305407 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.674446 -0.317721 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.671002 -0.296616 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.697667 -0.3046 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.67483 -0.295809 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.682101 -0.316107 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER 0.701111 -0.325704 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.685545 -0.337211 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.681717 -0.338018 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.656357 -0.33883 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.677411 -0.329538 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.674389 -0.332022 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.661584 -0.314897 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.659378 -0.336346 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.643552 -0.321705 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.638325 -0.345639 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.672184 -0.353472 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.65113 -0.362764 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669162 -0.355956 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.659866 -0.3877 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.684201 -0.391875 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.674986 -0.37258 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.674986 -0.37258 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669081 -0.406996 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.659866 -0.3877 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.644745 -0.40282 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669081 -0.406996 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.644745 -0.40282 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.659866 -0.3877 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.607487 -0.335322 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.659645 -0.283164 0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER 0.672915 -0.269894 0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER 0.666987 -0.293281 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.649528 -0.275822 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.665573 -0.259777 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.642185 -0.265705 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.652302 -0.273047 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.683032 -0.277236 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669762 -0.290507 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.677104 -0.300624 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.656357 -0.33883 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.663448 -0.328536 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.639482 -0.329516 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.654603 -0.314396 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.680322 -0.33785 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.671477 -0.32371 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.673232 -0.348145 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.665202 -0.35297 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.658111 -0.363265 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.641237 -0.353951 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.603979 -0.286452 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.614273 -0.279361 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.628413 -0.288206 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.613293 -0.303327 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.589839 -0.277607 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.588858 -0.301572 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.579544 -0.284698 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.604959 -0.262487 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.594664 -0.269578 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.619099 -0.271332 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.610775 -0.279656 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.621535 -0.258061 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.634468 -0.275921 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.616678 -0.264057 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.597842 -0.261795 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.592985 -0.267791 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.587082 -0.28339 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER 0.615632 -0.27366 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.604872 -0.295255 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.628565 -0.29152 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.555109 -0.282943 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.550934 -0.258608 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.570229 -0.267823 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.570229 -0.267823 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.535813 -0.273728 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.555109 -0.282943 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.539989 -0.298064 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.535813 -0.273728 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.539989 -0.298064 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.555109 -0.282943 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.558618 -0.331813 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.55307 -0.320611 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER 0.57665 -0.325005 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.563845 -0.30788 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.535038 -0.327419 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.545813 -0.314688 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.540585 -0.338621 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.547843 -0.344544 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.553391 -0.355747 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.571423 -0.348938 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.663153 -0.332034 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.684748 -0.321274 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.678752 -0.326131 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.666888 -0.308341 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669149 -0.327177 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.651289 -0.314244 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.647554 -0.337937 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.681014 -0.344967 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.659419 -0.355727 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER 0.675018 -0.349824 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.610996 -0.384191 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.622198 -0.389739 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER 0.63493 -0.378964 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.617804 -0.366159 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.598265 -0.394966 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.593871 -0.371386 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.587062 -0.389418 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.61539 -0.407771 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.604188 -0.402224 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.628121 -0.396997 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.659866 -0.3877 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.684201 -0.391875 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.674986 -0.37258 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.674986 -0.37258 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669081 -0.406996 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.659866 -0.3877 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.644745 -0.40282 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669081 -0.406996 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.644745 -0.40282 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.659866 -0.3877 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.554344 -0.645066 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.610229 -0.668521 0.153697 RAD 0.0185185 - txt002 - SPHERE CENTER 0.633406 -0.663938 0.160875 RAD 0.00617284 - txt002 - SPHERE CENTER 0.626429 -0.65892 0.137727 RAD 0.00617284 - txt002 - SPHERE CENTER 0.617928 -0.64522 0.156428 RAD 0.00617284 - txt002 - SPHERE CENTER 0.617206 -0.673539 0.176845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.601728 -0.654822 0.172398 RAD 0.00617284 - txt002 - SPHERE CENTER 0.59403 -0.678123 0.169668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.625707 -0.687239 0.158144 RAD 0.00617284 - txt002 - SPHERE CENTER 0.602531 -0.691822 0.150967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.61873 -0.682221 0.134996 RAD 0.00617284 - txt002 - SPHERE CENTER 0.622977 -0.619787 0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.63767 -0.608008 0.0834188 RAD 0.00617284 - txt002 - SPHERE CENTER 0.620102 -0.623239 0.0751099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.613891 -0.601637 0.0853287 RAD 0.00617284 - txt002 - SPHERE CENTER 0.640545 -0.604555 0.107698 RAD 0.00617284 - txt002 - SPHERE CENTER 0.616766 -0.598184 0.109608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.625852 -0.616334 0.123668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.646756 -0.626157 0.0974792 RAD 0.00617284 - txt002 - SPHERE CENTER 0.632063 -0.637936 0.113449 RAD 0.00617284 - txt002 - SPHERE CENTER 0.629188 -0.641389 0.0891702 RAD 0.00617284 - txt002 - SPHERE CENTER 0.585648 -0.598918 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.601562 -0.580238 0.162601 RAD 0.00617284 - txt002 - SPHERE CENTER 0.605914 -0.59781 0.14581 RAD 0.00617284 - txt002 - SPHERE CENTER 0.587563 -0.581665 0.142311 RAD 0.00617284 - txt002 - SPHERE CENTER 0.581295 -0.581346 0.176661 RAD 0.00617284 - txt002 - SPHERE CENTER 0.567297 -0.582773 0.156372 RAD 0.00617284 - txt002 - SPHERE CENTER 0.565381 -0.600026 0.173931 RAD 0.00617284 - txt002 - SPHERE CENTER 0.599646 -0.597491 0.18016 RAD 0.00617284 - txt002 - SPHERE CENTER 0.583732 -0.616171 0.177429 RAD 0.00617284 - txt002 - SPHERE CENTER 0.603999 -0.615063 0.163369 RAD 0.00617284 - txt002 - SPHERE CENTER 0.541596 -0.6938 0.165419 RAD 0.0185185 - txt002 - SPHERE CENTER 0.547376 -0.70016 0.188567 RAD 0.00617284 - txt002 - SPHERE CENTER 0.564621 -0.690564 0.173728 RAD 0.00617284 - txt002 - SPHERE CENTER 0.546319 -0.676324 0.182211 RAD 0.00617284 - txt002 - SPHERE CENTER 0.524351 -0.703396 0.180258 RAD 0.00617284 - txt002 - SPHERE CENTER 0.523294 -0.679561 0.173902 RAD 0.00617284 - txt002 - SPHERE CENTER 0.518571 -0.697037 0.157111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.542652 -0.717636 0.171776 RAD 0.00617284 - txt002 - SPHERE CENTER 0.536873 -0.711276 0.148628 RAD 0.00617284 - txt002 - SPHERE CENTER 0.559898 -0.70804 0.156937 RAD 0.00617284 - txt002 - SPHERE CENTER 0.517014 -0.624197 0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER 0.516313 -0.60809 0.190293 RAD 0.00617284 - txt002 - SPHERE CENTER 0.538029 -0.616221 0.181811 RAD 0.00617284 - txt002 - SPHERE CENTER 0.524375 -0.60089 0.168094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.495298 -0.616065 0.180075 RAD 0.00617284 - txt002 - SPHERE CENTER 0.50336 -0.608865 0.157875 RAD 0.00617284 - txt002 - SPHERE CENTER 0.495999 -0.632172 0.161374 RAD 0.00617284 - txt002 - SPHERE CENTER 0.508952 -0.631397 0.193792 RAD 0.00617284 - txt002 - SPHERE CENTER 0.509653 -0.647504 0.175091 RAD 0.00617284 - txt002 - SPHERE CENTER 0.530668 -0.639529 0.18531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.48571 -0.670344 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.466887 -0.67091 0.138803 RAD 0.00617284 - txt002 - SPHERE CENTER 0.490138 -0.671107 0.147112 RAD 0.00617284 - txt002 - SPHERE CENTER 0.480853 -0.650637 0.136894 RAD 0.00617284 - txt002 - SPHERE CENTER 0.46246 -0.670147 0.114524 RAD 0.00617284 - txt002 - SPHERE CENTER 0.476425 -0.649874 0.112614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.481283 -0.669581 0.0985541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.471745 -0.690617 0.124743 RAD 0.00617284 - txt002 - SPHERE CENTER 0.490567 -0.690052 0.108773 RAD 0.00617284 - txt002 - SPHERE CENTER 0.494995 -0.690815 0.133052 RAD 0.00617284 - txt002 - SPHERE CENTER 0.578925 -0.714669 0.104938 RAD 0.0185185 - txt002 - SPHERE CENTER 0.597914 -0.729812 0.109385 RAD 0.00617284 - txt002 - SPHERE CENTER 0.602084 -0.70632 0.103028 RAD 0.00617284 - txt002 - SPHERE CENTER 0.592661 -0.711617 0.125228 RAD 0.00617284 - txt002 - SPHERE CENTER 0.574755 -0.738161 0.111295 RAD 0.00617284 - txt002 - SPHERE CENTER 0.569503 -0.719965 0.127138 RAD 0.00617284 - txt002 - SPHERE CENTER 0.555767 -0.723017 0.106848 RAD 0.00617284 - txt002 - SPHERE CENTER 0.584178 -0.732864 0.0890951 RAD 0.00617284 - txt002 - SPHERE CENTER 0.565189 -0.71772 0.0846485 RAD 0.00617284 - txt002 - SPHERE CENTER 0.588348 -0.709372 0.0827387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.52304 -0.691213 0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER 0.511567 -0.712906 0.0596212 RAD 0.00617284 - txt002 - SPHERE CENTER 0.529503 -0.710453 0.0764123 RAD 0.00617284 - txt002 - SPHERE CENTER 0.507717 -0.699372 0.079911 RAD 0.00617284 - txt002 - SPHERE CENTER 0.505104 -0.693665 0.0455609 RAD 0.00617284 - txt002 - SPHERE CENTER 0.501254 -0.680131 0.0658506 RAD 0.00617284 - txt002 - SPHERE CENTER 0.516576 -0.671972 0.0482916 RAD 0.00617284 - txt002 - SPHERE CENTER 0.526889 -0.704747 0.0420622 RAD 0.00617284 - txt002 - SPHERE CENTER 0.538362 -0.683054 0.044793 RAD 0.00617284 - txt002 - SPHERE CENTER 0.544826 -0.702295 0.0588533 RAD 0.00617284 - txt002 - SPHERE CENTER 0.591673 -0.665934 0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER 0.605761 -0.658095 0.0319289 RAD 0.00617284 - txt002 - SPHERE CENTER 0.58746 -0.643855 0.0404111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.607672 -0.647455 0.0541285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.609975 -0.680174 0.0421477 RAD 0.00617284 - txt002 - SPHERE CENTER 0.611885 -0.669535 0.0643473 RAD 0.00617284 - txt002 - SPHERE CENTER 0.595887 -0.688013 0.0608487 RAD 0.00617284 - txt002 - SPHERE CENTER 0.589763 -0.676573 0.0284303 RAD 0.00617284 - txt002 - SPHERE CENTER 0.575674 -0.684413 0.0471312 RAD 0.00617284 - txt002 - SPHERE CENTER 0.571461 -0.662334 0.0369125 RAD 0.00617284 - txt002 - SPHERE CENTER 0.471405 -0.471405 0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER 0.501645 -0.441164 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.518106 -0.424703 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER 0.522721 -0.437548 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.505261 -0.420089 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.497031 -0.428319 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.484186 -0.423704 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.48057 -0.44478 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.51449 -0.445778 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.498029 -0.462239 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.519105 -0.458623 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.542955 -0.452233 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.560583 -0.44013 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.542955 -0.452233 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.53742 -0.431578 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.560583 -0.44013 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.53742 -0.431578 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.542955 -0.452233 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.566118 -0.460785 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.548489 -0.472887 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.548489 -0.472887 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.490576 -0.399854 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.502679 -0.382226 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.511231 -0.405389 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.490576 -0.399854 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.482024 -0.376691 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.469922 -0.39432 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.469922 -0.39432 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.502679 -0.382226 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.490576 -0.399854 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.511231 -0.405389 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.430095 -0.460336 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.427669 -0.446904 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.450155 -0.45293 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.436486 -0.436486 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.407609 -0.454311 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER 0.416426 -0.443892 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.410035 -0.467742 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.421278 -0.470754 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.423704 -0.484186 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.443764 -0.47678 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.419026 -0.419026 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.414851 -0.39469 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.434147 -0.403906 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.434147 -0.403906 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399731 -0.409811 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.419026 -0.419026 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.403906 -0.434147 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399731 -0.409811 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.403906 -0.434147 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.419026 -0.419026 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399854 -0.490576 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.378536 -0.488909 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399854 -0.490576 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.39432 -0.469922 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.378536 -0.488909 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.39432 -0.469922 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399854 -0.490576 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.384071 -0.509564 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.405389 -0.511231 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.405389 -0.511231 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.482473 -0.512714 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.495905 -0.51514 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.506323 -0.506323 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.48988 -0.492654 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.472055 -0.521531 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.46603 -0.499045 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.458623 -0.519105 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.488498 -0.5352 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER 0.475067 -0.532774 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.498917 -0.526383 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.452233 -0.542955 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.4539 -0.564273 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.472887 -0.548489 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.452233 -0.542955 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.433245 -0.558738 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.431578 -0.53742 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.431578 -0.53742 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.4539 -0.564273 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.452233 -0.542955 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.472887 -0.548489 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.523783 -0.523783 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.548119 -0.527958 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.538903 -0.508662 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.538903 -0.508662 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.532998 -0.543078 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.523783 -0.523783 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.508662 -0.538903 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.532998 -0.543078 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.508662 -0.538903 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.523783 -0.523783 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.335322 -0.607487 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.313405 -0.629404 0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.316595 -0.626214 0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.335868 -0.624401 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.318408 -0.606941 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.294133 -0.631217 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.295946 -0.611945 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.290942 -0.634407 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.311592 -0.648676 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.308402 -0.651867 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.330864 -0.646863 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.384191 -0.610996 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.405245 -0.601704 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.402224 -0.604188 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.389418 -0.587062 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.387213 -0.608512 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER 0.371386 -0.593871 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.366159 -0.617804 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.400018 -0.625637 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.378964 -0.63493 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.396997 -0.628121 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.331813 -0.558618 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.341105 -0.537564 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.355747 -0.553391 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.338621 -0.540585 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.317172 -0.542791 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.314688 -0.545813 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.30788 -0.563845 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.334297 -0.555596 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER 0.325005 -0.57665 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.348938 -0.571423 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.264535 -0.625895 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.245336 -0.623429 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.268271 -0.624736 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.260997 -0.604627 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.2416 -0.624589 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.257262 -0.605787 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.2608 -0.627055 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER 0.248874 -0.644697 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.268073 -0.647163 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.271809 -0.646004 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282943 -0.555109 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.278768 -0.530773 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.298064 -0.539989 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.298064 -0.539989 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.263648 -0.545894 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282943 -0.555109 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.267823 -0.570229 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.263648 -0.545894 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.267823 -0.570229 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282943 -0.555109 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.286452 -0.603979 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.266942 -0.591774 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.269578 -0.594664 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.284698 -0.579544 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.283817 -0.601088 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.301572 -0.588858 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.303327 -0.613293 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.268696 -0.616209 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.288206 -0.628413 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.271332 -0.619099 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.316914 -0.678274 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.31938 -0.697473 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.338182 -0.681812 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.318074 -0.674538 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.298112 -0.693935 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.296805 -0.671 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.295646 -0.674736 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.31822 -0.701209 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.315754 -0.682009 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER 0.337022 -0.685547 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.33883 -0.656357 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.351035 -0.675867 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.363265 -0.658111 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.348145 -0.673232 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.3266 -0.674113 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.32371 -0.671477 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.314396 -0.654603 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.341721 -0.658993 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.329516 -0.639482 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.353951 -0.641237 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.3877 -0.659866 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.412036 -0.664041 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.40282 -0.644745 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.40282 -0.644745 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.396915 -0.679161 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.3877 -0.659866 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37258 -0.674986 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.396915 -0.679161 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37258 -0.674986 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.3877 -0.659866 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.554344 -0.645066 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.616373 -0.681385 -0.129006 RAD 0.0185185 - txt002 - SPHERE CENTER 0.639472 -0.678928 -0.137375 RAD 0.00617284 - txt002 - SPHERE CENTER 0.621631 -0.664108 -0.145845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.629767 -0.661636 -0.122663 RAD 0.00617284 - txt002 - SPHERE CENTER 0.634214 -0.696205 -0.120537 RAD 0.00617284 - txt002 - SPHERE CENTER 0.624508 -0.678912 -0.105825 RAD 0.00617284 - txt002 - SPHERE CENTER 0.611115 -0.698662 -0.112168 RAD 0.00617284 - txt002 - SPHERE CENTER 0.626079 -0.698678 -0.143718 RAD 0.00617284 - txt002 - SPHERE CENTER 0.602979 -0.701135 -0.135349 RAD 0.00617284 - txt002 - SPHERE CENTER 0.608237 -0.683858 -0.152187 RAD 0.00617284 - txt002 - SPHERE CENTER 0.617144 -0.607573 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.63057 -0.595495 -0.139672 RAD 0.00617284 - txt002 - SPHERE CENTER 0.617371 -0.615286 -0.146288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.605919 -0.594239 -0.140323 RAD 0.00617284 - txt002 - SPHERE CENTER 0.630343 -0.587782 -0.116217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.605692 -0.586526 -0.116868 RAD 0.00617284 - txt002 - SPHERE CENTER 0.616917 -0.59986 -0.0993785 RAD 0.00617284 - txt002 - SPHERE CENTER 0.641795 -0.608828 -0.122182 RAD 0.00617284 - txt002 - SPHERE CENTER 0.628369 -0.620906 -0.105343 RAD 0.00617284 - txt002 - SPHERE CENTER 0.628595 -0.628619 -0.128798 RAD 0.00617284 - txt002 - SPHERE CENTER 0.609912 -0.649723 -0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER 0.631982 -0.640648 -0.0560094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.62585 -0.64267 -0.0798417 RAD 0.00617284 - txt002 - SPHERE CENTER 0.614812 -0.625749 -0.0656463 RAD 0.00617284 - txt002 - SPHERE CENTER 0.616044 -0.647702 -0.0385197 RAD 0.00617284 - txt002 - SPHERE CENTER 0.598874 -0.632802 -0.0481565 RAD 0.00617284 - txt002 - SPHERE CENTER 0.593974 -0.656777 -0.0448623 RAD 0.00617284 - txt002 - SPHERE CENTER 0.627081 -0.664623 -0.0527151 RAD 0.00617284 - txt002 - SPHERE CENTER 0.605012 -0.673698 -0.0590577 RAD 0.00617284 - txt002 - SPHERE CENTER 0.620949 -0.666645 -0.0765474 RAD 0.00617284 - txt002 - SPHERE CENTER 0.553573 -0.718878 -0.117284 RAD 0.0185185 - txt002 - SPHERE CENTER 0.563328 -0.73992 -0.108814 RAD 0.00617284 - txt002 - SPHERE CENTER 0.577348 -0.719679 -0.110668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.559693 -0.720935 -0.0934517 RAD 0.00617284 - txt002 - SPHERE CENTER 0.539553 -0.739118 -0.115431 RAD 0.00617284 - txt002 - SPHERE CENTER 0.535918 -0.720133 -0.100068 RAD 0.00617284 - txt002 - SPHERE CENTER 0.529798 -0.718076 -0.1239 RAD 0.00617284 - txt002 - SPHERE CENTER 0.557208 -0.737863 -0.132647 RAD 0.00617284 - txt002 - SPHERE CENTER 0.547453 -0.716821 -0.141116 RAD 0.00617284 - txt002 - SPHERE CENTER 0.571228 -0.717623 -0.1345 RAD 0.00617284 - txt002 - SPHERE CENTER 0.547112 -0.687216 -0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER 0.554862 -0.690713 -0.0274488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.570641 -0.682694 -0.0446649 RAD 0.00617284 - txt002 - SPHERE CENTER 0.552739 -0.667813 -0.0364345 RAD 0.00617284 - txt002 - SPHERE CENTER 0.531333 -0.695235 -0.0334138 RAD 0.00617284 - txt002 - SPHERE CENTER 0.52921 -0.672335 -0.0423994 RAD 0.00617284 - txt002 - SPHERE CENTER 0.523582 -0.691738 -0.0565949 RAD 0.00617284 - txt002 - SPHERE CENTER 0.549235 -0.710116 -0.0416443 RAD 0.00617284 - txt002 - SPHERE CENTER 0.541484 -0.706619 -0.0648253 RAD 0.00617284 - txt002 - SPHERE CENTER 0.565014 -0.702097 -0.0588603 RAD 0.00617284 - txt002 - SPHERE CENTER 0.491544 -0.682558 -0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.474542 -0.688647 -0.0825505 RAD 0.00617284 - txt002 - SPHERE CENTER 0.498226 -0.686417 -0.0759343 RAD 0.00617284 - txt002 - SPHERE CENTER 0.485132 -0.666351 -0.0818993 RAD 0.00617284 - txt002 - SPHERE CENTER 0.46786 -0.684788 -0.106005 RAD 0.00617284 - txt002 - SPHERE CENTER 0.47845 -0.662492 -0.105354 RAD 0.00617284 - txt002 - SPHERE CENTER 0.484862 -0.678699 -0.122844 RAD 0.00617284 - txt002 - SPHERE CENTER 0.480953 -0.704854 -0.10004 RAD 0.00617284 - txt002 - SPHERE CENTER 0.497955 -0.698765 -0.116879 RAD 0.00617284 - txt002 - SPHERE CENTER 0.504637 -0.702624 -0.093424 RAD 0.00617284 - txt002 - SPHERE CENTER 0.560805 -0.676727 -0.177765 RAD 0.0185185 - txt002 - SPHERE CENTER 0.57563 -0.689897 -0.192477 RAD 0.00617284 - txt002 - SPHERE CENTER 0.585222 -0.673115 -0.177114 RAD 0.00617284 - txt002 - SPHERE CENTER 0.575587 -0.693998 -0.168128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.551213 -0.693509 -0.193128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.55117 -0.69761 -0.16878 RAD 0.00617284 - txt002 - SPHERE CENTER 0.536388 -0.680339 -0.178416 RAD 0.00617284 - txt002 - SPHERE CENTER 0.560848 -0.672626 -0.202114 RAD 0.00617284 - txt002 - SPHERE CENTER 0.546023 -0.659456 -0.187402 RAD 0.00617284 - txt002 - SPHERE CENTER 0.57044 -0.655844 -0.186751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.498776 -0.640408 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.478525 -0.627785 -0.166213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.484234 -0.630799 -0.142381 RAD 0.00617284 - txt002 - SPHERE CENTER 0.497935 -0.615951 -0.156576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.493066 -0.637394 -0.183703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.512476 -0.62556 -0.174066 RAD 0.00617284 - txt002 - SPHERE CENTER 0.513317 -0.650016 -0.17736 RAD 0.00617284 - txt002 - SPHERE CENTER 0.479365 -0.652241 -0.169507 RAD 0.00617284 - txt002 - SPHERE CENTER 0.499616 -0.664864 -0.163165 RAD 0.00617284 - txt002 - SPHERE CENTER 0.485075 -0.655255 -0.145675 RAD 0.00617284 - txt002 - SPHERE CENTER 0.561576 -0.602915 -0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER 0.570049 -0.602201 -0.194773 RAD 0.00617284 - txt002 - SPHERE CENTER 0.582252 -0.615021 -0.177557 RAD 0.00617284 - txt002 - SPHERE CENTER 0.560414 -0.623084 -0.185788 RAD 0.00617284 - txt002 - SPHERE CENTER 0.549372 -0.590095 -0.188808 RAD 0.00617284 - txt002 - SPHERE CENTER 0.539737 -0.610978 -0.179823 RAD 0.00617284 - txt002 - SPHERE CENTER 0.540899 -0.590808 -0.165627 RAD 0.00617284 - txt002 - SPHERE CENTER 0.571211 -0.582032 -0.180578 RAD 0.00617284 - txt002 - SPHERE CENTER 0.562738 -0.582745 -0.157397 RAD 0.00617284 - txt002 - SPHERE CENTER 0.583414 -0.594852 -0.163362 RAD 0.00617284 - txt002 - SPHERE CENTER 0.335322 -0.607487 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.283164 -0.659645 -0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER 0.269894 -0.672915 -0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER 0.293281 -0.666987 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.275822 -0.649528 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.259777 -0.665573 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.265705 -0.642185 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.273047 -0.652302 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.277236 -0.683032 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.290507 -0.669762 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.300624 -0.677104 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.33883 -0.656357 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.350033 -0.661904 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.362764 -0.65113 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.345639 -0.638325 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.326099 -0.667131 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.321705 -0.643552 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.314897 -0.661584 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.343224 -0.679937 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.332022 -0.674389 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.355956 -0.669162 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.286452 -0.603979 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.280905 -0.592776 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.304484 -0.59717 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.291679 -0.580045 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.262872 -0.599585 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.273647 -0.586853 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.26842 -0.610787 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.275678 -0.61671 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.281225 -0.627912 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.299257 -0.621104 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.279656 -0.610775 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.256944 -0.602632 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.26347 -0.606749 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.273158 -0.587686 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.27313 -0.606658 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.289344 -0.591712 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.295841 -0.614801 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.263442 -0.62572 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.286153 -0.633864 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER 0.269968 -0.629838 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282943 -0.555109 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.278768 -0.530773 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.298064 -0.539989 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.298064 -0.539989 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.263648 -0.545894 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282943 -0.555109 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.267823 -0.570229 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.263648 -0.545894 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.267823 -0.570229 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282943 -0.555109 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.331813 -0.558618 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.342108 -0.551527 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356248 -0.560372 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.341128 -0.575492 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.317673 -0.549772 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.316693 -0.573738 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.307378 -0.556863 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.332793 -0.534652 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.322499 -0.541743 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.346933 -0.543497 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.332034 -0.663153 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.340177 -0.685865 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.355123 -0.669651 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.33606 -0.679339 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.317089 -0.679367 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.312971 -0.672841 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.308945 -0.656656 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER 0.336151 -0.669679 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.328008 -0.646968 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.351097 -0.653465 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.384191 -0.610996 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.391282 -0.600701 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER 0.367317 -0.601681 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.382437 -0.586561 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.408157 -0.610016 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399312 -0.595876 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.401066 -0.62031 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.393037 -0.625136 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.385946 -0.635431 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.369071 -0.626116 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.3877 -0.659866 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.412036 -0.664041 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.40282 -0.644745 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.40282 -0.644745 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.396915 -0.679161 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.3877 -0.659866 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37258 -0.674986 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.396915 -0.679161 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37258 -0.674986 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.3877 -0.659866 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.471405 -0.471405 -0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER 0.441164 -0.441164 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.443014 -0.422853 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.449156 -0.418916 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.463412 -0.433171 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.435021 -0.445101 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.455419 -0.455419 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER 0.433171 -0.463412 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.420766 -0.430846 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER 0.418916 -0.449156 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.426908 -0.426908 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399854 -0.452233 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.383576 -0.43509 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.40305 -0.440308 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.406245 -0.428383 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.380381 -0.447015 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER 0.40305 -0.440308 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.396659 -0.464158 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.377186 -0.45894 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.393464 -0.476083 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.396659 -0.464158 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.452233 -0.399854 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.45894 -0.377186 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.476083 -0.393464 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.464158 -0.396659 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.43509 -0.383576 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.440308 -0.40305 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.428383 -0.406245 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.447015 -0.380381 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.440308 -0.40305 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.464158 -0.396659 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.512714 -0.460336 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.512375 -0.453047 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.493241 -0.465554 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER 0.497443 -0.44229 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.531849 -0.447829 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER 0.516916 -0.437072 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.532187 -0.455118 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER 0.527647 -0.471093 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.527985 -0.478381 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.508512 -0.483599 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.523783 -0.419026 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.538038 -0.404771 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER 0.532513 -0.427756 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.515053 -0.410297 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.529309 -0.396041 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.506323 -0.401567 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.515053 -0.410297 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.546768 -0.4135 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.532513 -0.427756 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.541242 -0.436486 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.542955 -0.490576 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.565623 -0.483869 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.54615 -0.478651 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.549345 -0.466726 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.562428 -0.495794 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.54615 -0.478651 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.539759 -0.502501 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.559233 -0.507719 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.536564 -0.514426 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.539759 -0.502501 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.460336 -0.512714 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.461599 -0.535539 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER 0.478381 -0.527985 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.455118 -0.532187 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER 0.443553 -0.520267 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.437072 -0.516916 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.44229 -0.497443 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.466817 -0.516065 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.465554 -0.493241 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER 0.483599 -0.508512 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.490576 -0.542955 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.507719 -0.559233 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.514426 -0.536564 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.502501 -0.539759 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.483869 -0.565623 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.478651 -0.54615 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.466726 -0.549345 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.495794 -0.562428 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER 0.478651 -0.54615 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.502501 -0.539759 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.419026 -0.523783 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.404771 -0.538038 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.427756 -0.532513 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.410297 -0.515053 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.396041 -0.529309 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.401567 -0.506323 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.410297 -0.515053 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.4135 -0.546768 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.427756 -0.532513 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.436486 -0.541242 -0.222222 RAD 0.00617284 - txt002 - -END_SCENE diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/dat/balls3.dat b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/dat/balls3.dat deleted file mode 100644 index 2837425d4..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/dat/balls3.dat +++ /dev/null @@ -1,14804 +0,0 @@ -BEGIN_SCENE - OUTFILE /dev/null - RESOLUTION 1024 768 - VERBOSE 0 - -CAMERA - ZOOM 1.20711 -ASPECTRATIO 1.0 - ANTIALIASING 0 - RAYDEPTH 5 - CENTER 2.1 1.3 1.7 - VIEWDIR -0.700389 -0.433574 -0.566982 - UPDIR -0.482085 -0.298433 0.82373 - -END_CAMERA - -BACKGROUND 0.078 0.361 0.753 - -LIGHT CENTER 4 3 2 RAD 0.002 COLOR 0.5 0.5 0.5 - -LIGHT CENTER 1 -4 4 RAD 0.002 COLOR 0.5 0.5 0.5 - -LIGHT CENTER -3 1 5 RAD 0.002 COLOR 0.5 0.5 0.5 - -TEXDEF txt001 AMBIENT 0.2 DIFFUSE 0.8 SPECULAR 0 OPACITY 1 -PHONG PLASTIC 0 PHONG_SIZE 100000 - COLOR 1 0.75 0.33 - TEXFUNC 0 - -TRI - V0 12 12 -0.5 V1 -12 -12 -0.5 V2 12 -12 -0.5 - txt001 -TRI - V0 12 12 -0.5 V1 -12 12 -0.5 V2 -12 -12 -0.5 - txt001 -TEXDEF txt002 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 -PHONG PLASTIC 0.5 PHONG_SIZE 45.2776 - COLOR 1 0.9 0.7 - TEXFUNC 0 - - SPHERE CENTER 0 0 0 RAD 0.5 - txt002 - SPHERE CENTER 0.272166 0.272166 0.544331 RAD 0.166667 - txt002 - SPHERE CENTER 0.420314 0.420314 0.618405 RAD 0.0555556 - txt002 - SPHERE CENTER 0.470715 0.470715 0.598245 RAD 0.0185185 - txt002 - SPHERE CENTER 0.481689 0.481689 0.57904 RAD 0.00617284 - txt002 - SPHERE CENTER 0.475329 0.45787 0.577669 RAD 0.00617284 - txt002 - SPHERE CENTER 0.45787 0.475329 0.577669 RAD 0.00617284 - txt002 - SPHERE CENTER 0.477074 0.494534 0.599616 RAD 0.00617284 - txt002 - SPHERE CENTER 0.453255 0.488174 0.598245 RAD 0.00617284 - txt002 - SPHERE CENTER 0.4661 0.48356 0.618821 RAD 0.00617284 - txt002 - SPHERE CENTER 0.494534 0.477074 0.599616 RAD 0.00617284 - txt002 - SPHERE CENTER 0.48356 0.4661 0.618821 RAD 0.00617284 - txt002 - SPHERE CENTER 0.488174 0.453255 0.598245 RAD 0.00617284 - txt002 - SPHERE CENTER 0.461623 0.409245 0.557924 RAD 0.0185185 - txt002 - SPHERE CENTER 0.47044 0.419664 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER 0.447954 0.425689 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER 0.468014 0.433095 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER 0.484109 0.40322 0.549693 RAD 0.00617284 - txt002 - SPHERE CENTER 0.481683 0.416651 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER 0.475292 0.392801 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER 0.464049 0.395814 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER 0.455233 0.385395 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER 0.441563 0.401839 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER 0.409245 0.461623 0.557924 RAD 0.0185185 - txt002 - SPHERE CENTER 0.419664 0.47044 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER 0.433095 0.468014 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER 0.425689 0.447954 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER 0.395814 0.464049 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER 0.401839 0.441563 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER 0.385395 0.455233 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER 0.40322 0.484109 0.549693 RAD 0.00617284 - txt002 - SPHERE CENTER 0.392801 0.475292 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER 0.416651 0.481683 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER 0.429405 0.481784 0.658726 RAD 0.0185185 - txt002 - SPHERE CENTER 0.441197 0.503434 0.660098 RAD 0.00617284 - txt002 - SPHERE CENTER 0.452601 0.483752 0.650495 RAD 0.00617284 - txt002 - SPHERE CENTER 0.434161 0.494577 0.63815 RAD 0.00617284 - txt002 - SPHERE CENTER 0.418001 0.501466 0.668328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.410965 0.492609 0.64638 RAD 0.00617284 - txt002 - SPHERE CENTER 0.406209 0.479816 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER 0.436441 0.490641 0.680674 RAD 0.00617284 - txt002 - SPHERE CENTER 0.42465 0.46899 0.679302 RAD 0.00617284 - txt002 - SPHERE CENTER 0.447846 0.470958 0.671072 RAD 0.00617284 - txt002 - SPHERE CENTER 0.367935 0.472692 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.36376 0.497028 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.383056 0.487812 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.383056 0.487812 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.34864 0.481907 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.367935 0.472692 0.593714 RAD 0.00617284 - txt002 - SPHERE CENTER 0.352815 0.457572 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.34864 0.481907 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.352815 0.457572 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.367935 0.472692 0.643096 RAD 0.00617284 - txt002 - SPHERE CENTER 0.379004 0.431383 0.678886 RAD 0.0185185 - txt002 - SPHERE CENTER 0.376578 0.444814 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399064 0.438789 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER 0.385395 0.455233 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356518 0.437408 0.687117 RAD 0.00617284 - txt002 - SPHERE CENTER 0.365335 0.447826 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.358944 0.423976 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.370187 0.420964 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.372614 0.407532 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER 0.392673 0.414939 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER 0.481784 0.429405 0.658726 RAD 0.0185185 - txt002 - SPHERE CENTER 0.503434 0.441197 0.660098 RAD 0.00617284 - txt002 - SPHERE CENTER 0.494577 0.434161 0.63815 RAD 0.00617284 - txt002 - SPHERE CENTER 0.483752 0.452601 0.650495 RAD 0.00617284 - txt002 - SPHERE CENTER 0.490641 0.436441 0.680674 RAD 0.00617284 - txt002 - SPHERE CENTER 0.470958 0.447846 0.671072 RAD 0.00617284 - txt002 - SPHERE CENTER 0.46899 0.42465 0.679302 RAD 0.00617284 - txt002 - SPHERE CENTER 0.501466 0.418001 0.668328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.479816 0.406209 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER 0.492609 0.410965 0.64638 RAD 0.00617284 - txt002 - SPHERE CENTER 0.431383 0.379004 0.678886 RAD 0.0185185 - txt002 - SPHERE CENTER 0.444814 0.376578 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.455233 0.385395 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER 0.438789 0.399064 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER 0.420964 0.370187 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.414939 0.392673 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER 0.407532 0.372614 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER 0.437408 0.356518 0.687117 RAD 0.00617284 - txt002 - SPHERE CENTER 0.423976 0.358944 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.447826 0.365335 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.472692 0.367935 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.497028 0.36376 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.487812 0.383056 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.487812 0.383056 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.481907 0.34864 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.472692 0.367935 0.643096 RAD 0.00617284 - txt002 - SPHERE CENTER 0.457572 0.352815 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.481907 0.34864 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.457572 0.352815 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.472692 0.367935 0.593714 RAD 0.00617284 - txt002 - SPHERE CENTER 0.461844 0.304709 0.43322 RAD 0.0555556 - txt002 - SPHERE CENTER 0.492085 0.33495 0.372739 RAD 0.0185185 - txt002 - SPHERE CENTER 0.492085 0.33495 0.348047 RAD 0.00617284 - txt002 - SPHERE CENTER 0.488469 0.313874 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.471009 0.331334 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.495701 0.356025 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.474625 0.352409 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER 0.495701 0.356025 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.51316 0.338566 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.51316 0.338566 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.509544 0.31749 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER 0.424345 0.305171 0.369341 RAD 0.0185185 - txt002 - SPHERE CENTER 0.40568 0.315605 0.356995 RAD 0.00617284 - txt002 - SPHERE CENTER 0.403931 0.312107 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER 0.419383 0.329161 0.372427 RAD 0.00617284 - txt002 - SPHERE CENTER 0.426095 0.30867 0.344961 RAD 0.00617284 - txt002 - SPHERE CENTER 0.439797 0.322225 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.444759 0.298235 0.357307 RAD 0.00617284 - txt002 - SPHERE CENTER 0.410643 0.291616 0.353908 RAD 0.00617284 - txt002 - SPHERE CENTER 0.429307 0.281181 0.366254 RAD 0.00617284 - txt002 - SPHERE CENTER 0.408893 0.288117 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.435193 0.368397 0.406378 RAD 0.0185185 - txt002 - SPHERE CENTER 0.440864 0.389015 0.394032 RAD 0.00617284 - txt002 - SPHERE CENTER 0.457301 0.37895 0.409464 RAD 0.00617284 - txt002 - SPHERE CENTER 0.451857 0.367697 0.388171 RAD 0.00617284 - txt002 - SPHERE CENTER 0.418755 0.378463 0.390945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.429748 0.357145 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.413085 0.357845 0.403291 RAD 0.00617284 - txt002 - SPHERE CENTER 0.4242 0.389715 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER 0.418529 0.369098 0.424584 RAD 0.00617284 - txt002 - SPHERE CENTER 0.440637 0.37965 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER 0.529584 0.334488 0.436618 RAD 0.0185185 - txt002 - SPHERE CENTER 0.546497 0.347572 0.424272 RAD 0.00617284 - txt002 - SPHERE CENTER 0.532117 0.331508 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER 0.522481 0.352406 0.421186 RAD 0.00617284 - txt002 - SPHERE CENTER 0.543964 0.350552 0.448652 RAD 0.00617284 - txt002 - SPHERE CENTER 0.519948 0.355387 0.445566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.52705 0.337468 0.460998 RAD 0.00617284 - txt002 - SPHERE CENTER 0.5536 0.329654 0.439705 RAD 0.00617284 - txt002 - SPHERE CENTER 0.536686 0.31657 0.45205 RAD 0.00617284 - txt002 - SPHERE CENTER 0.53922 0.313589 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER 0.472692 0.367935 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER 0.48474 0.389488 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.495668 0.369235 0.46131 RAD 0.00617284 - txt002 - SPHERE CENTER 0.477004 0.379669 0.448964 RAD 0.00617284 - txt002 - SPHERE CENTER 0.461764 0.388188 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER 0.454027 0.37837 0.457911 RAD 0.00617284 - txt002 - SPHERE CENTER 0.449715 0.366636 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER 0.480429 0.377754 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.46838 0.356202 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.491357 0.357501 0.482603 RAD 0.00617284 - txt002 - SPHERE CENTER 0.499343 0.304247 0.497099 RAD 0.0185185 - txt002 - SPHERE CENTER 0.518259 0.314219 0.509445 RAD 0.00617284 - txt002 - SPHERE CENTER 0.519922 0.310678 0.485065 RAD 0.00617284 - txt002 - SPHERE CENTER 0.504895 0.328108 0.494013 RAD 0.00617284 - txt002 - SPHERE CENTER 0.49768 0.307788 0.521479 RAD 0.00617284 - txt002 - SPHERE CENTER 0.484316 0.321677 0.506047 RAD 0.00617284 - txt002 - SPHERE CENTER 0.478764 0.297816 0.509133 RAD 0.00617284 - txt002 - SPHERE CENTER 0.512708 0.290358 0.512531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.493791 0.280387 0.500186 RAD 0.00617284 - txt002 - SPHERE CENTER 0.51437 0.286818 0.488152 RAD 0.00617284 - txt002 - SPHERE CENTER 0.518736 0.271262 0.399581 RAD 0.0185185 - txt002 - SPHERE CENTER 0.539811 0.274878 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.520873 0.290418 0.384149 RAD 0.00617284 - txt002 - SPHERE CENTER 0.533373 0.290264 0.405442 RAD 0.00617284 - txt002 - SPHERE CENTER 0.537674 0.255722 0.402668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.531235 0.271108 0.420874 RAD 0.00617284 - txt002 - SPHERE CENTER 0.516598 0.252106 0.415013 RAD 0.00617284 - txt002 - SPHERE CENTER 0.525174 0.255876 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER 0.504099 0.25226 0.39372 RAD 0.00617284 - txt002 - SPHERE CENTER 0.506236 0.271416 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.488495 0.241021 0.460062 RAD 0.0185185 - txt002 - SPHERE CENTER 0.50716 0.230587 0.472408 RAD 0.00617284 - txt002 - SPHERE CENTER 0.51153 0.24936 0.456976 RAD 0.00617284 - txt002 - SPHERE CENTER 0.499694 0.253381 0.478269 RAD 0.00617284 - txt002 - SPHERE CENTER 0.484125 0.222248 0.475494 RAD 0.00617284 - txt002 - SPHERE CENTER 0.476659 0.245042 0.481355 RAD 0.00617284 - txt002 - SPHERE CENTER 0.46546 0.232683 0.463149 RAD 0.00617284 - txt002 - SPHERE CENTER 0.495961 0.218227 0.454201 RAD 0.00617284 - txt002 - SPHERE CENTER 0.477296 0.228661 0.441856 RAD 0.00617284 - txt002 - SPHERE CENTER 0.500331 0.237 0.438769 RAD 0.00617284 - txt002 - SPHERE CENTER 0.450996 0.241483 0.396183 RAD 0.0185185 - txt002 - SPHERE CENTER 0.455172 0.217147 0.396183 RAD 0.00617284 - txt002 - SPHERE CENTER 0.472226 0.232599 0.40513 RAD 0.00617284 - txt002 - SPHERE CENTER 0.45115 0.228983 0.417476 RAD 0.00617284 - txt002 - SPHERE CENTER 0.433942 0.226031 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.429921 0.237867 0.408529 RAD 0.00617284 - txt002 - SPHERE CENTER 0.429767 0.250367 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.455018 0.229647 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER 0.450842 0.253983 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER 0.472072 0.245099 0.383837 RAD 0.00617284 - txt002 - SPHERE CENTER 0.304709 0.461844 0.43322 RAD 0.0555556 - txt002 - SPHERE CENTER 0.33495 0.492085 0.372739 RAD 0.0185185 - txt002 - SPHERE CENTER 0.33495 0.492085 0.348047 RAD 0.00617284 - txt002 - SPHERE CENTER 0.331334 0.471009 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.313874 0.488469 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.338566 0.51316 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.31749 0.509544 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER 0.338566 0.51316 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356025 0.495701 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356025 0.495701 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.352409 0.474625 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER 0.368397 0.435193 0.406378 RAD 0.0185185 - txt002 - SPHERE CENTER 0.389015 0.440864 0.394032 RAD 0.00617284 - txt002 - SPHERE CENTER 0.367697 0.451857 0.388171 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37895 0.457301 0.409464 RAD 0.00617284 - txt002 - SPHERE CENTER 0.389715 0.4242 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37965 0.440637 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER 0.369098 0.418529 0.424584 RAD 0.00617284 - txt002 - SPHERE CENTER 0.378463 0.418755 0.390945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.357845 0.413085 0.403291 RAD 0.00617284 - txt002 - SPHERE CENTER 0.357145 0.429748 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.305171 0.424345 0.369341 RAD 0.0185185 - txt002 - SPHERE CENTER 0.315605 0.40568 0.356995 RAD 0.00617284 - txt002 - SPHERE CENTER 0.329161 0.419383 0.372427 RAD 0.00617284 - txt002 - SPHERE CENTER 0.312107 0.403931 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER 0.291616 0.410643 0.353908 RAD 0.00617284 - txt002 - SPHERE CENTER 0.288117 0.408893 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.281181 0.429307 0.366254 RAD 0.00617284 - txt002 - SPHERE CENTER 0.30867 0.426095 0.344961 RAD 0.00617284 - txt002 - SPHERE CENTER 0.298235 0.444759 0.357307 RAD 0.00617284 - txt002 - SPHERE CENTER 0.322225 0.439797 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.271262 0.518736 0.399581 RAD 0.0185185 - txt002 - SPHERE CENTER 0.274878 0.539811 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.290264 0.533373 0.405442 RAD 0.00617284 - txt002 - SPHERE CENTER 0.290418 0.520873 0.384149 RAD 0.00617284 - txt002 - SPHERE CENTER 0.255876 0.525174 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER 0.271416 0.506236 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.25226 0.504099 0.39372 RAD 0.00617284 - txt002 - SPHERE CENTER 0.255722 0.537674 0.402668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.252106 0.516598 0.415013 RAD 0.00617284 - txt002 - SPHERE CENTER 0.271108 0.531235 0.420874 RAD 0.00617284 - txt002 - SPHERE CENTER 0.241483 0.450996 0.396183 RAD 0.0185185 - txt002 - SPHERE CENTER 0.217147 0.455172 0.396183 RAD 0.00617284 - txt002 - SPHERE CENTER 0.228983 0.45115 0.417476 RAD 0.00617284 - txt002 - SPHERE CENTER 0.232599 0.472226 0.40513 RAD 0.00617284 - txt002 - SPHERE CENTER 0.229647 0.455018 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER 0.245099 0.472072 0.383837 RAD 0.00617284 - txt002 - SPHERE CENTER 0.253983 0.450842 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER 0.226031 0.433942 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.250367 0.429767 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.237867 0.429921 0.408529 RAD 0.00617284 - txt002 - SPHERE CENTER 0.241021 0.488495 0.460062 RAD 0.0185185 - txt002 - SPHERE CENTER 0.230587 0.50716 0.472408 RAD 0.00617284 - txt002 - SPHERE CENTER 0.253381 0.499694 0.478269 RAD 0.00617284 - txt002 - SPHERE CENTER 0.24936 0.51153 0.456976 RAD 0.00617284 - txt002 - SPHERE CENTER 0.218227 0.495961 0.454201 RAD 0.00617284 - txt002 - SPHERE CENTER 0.237 0.500331 0.438769 RAD 0.00617284 - txt002 - SPHERE CENTER 0.228661 0.477296 0.441856 RAD 0.00617284 - txt002 - SPHERE CENTER 0.222248 0.484125 0.475494 RAD 0.00617284 - txt002 - SPHERE CENTER 0.232683 0.46546 0.463149 RAD 0.00617284 - txt002 - SPHERE CENTER 0.245042 0.476659 0.481355 RAD 0.00617284 - txt002 - SPHERE CENTER 0.334488 0.529584 0.436618 RAD 0.0185185 - txt002 - SPHERE CENTER 0.347572 0.546497 0.424272 RAD 0.00617284 - txt002 - SPHERE CENTER 0.352406 0.522481 0.421186 RAD 0.00617284 - txt002 - SPHERE CENTER 0.331508 0.532117 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER 0.329654 0.5536 0.439705 RAD 0.00617284 - txt002 - SPHERE CENTER 0.313589 0.53922 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER 0.31657 0.536686 0.45205 RAD 0.00617284 - txt002 - SPHERE CENTER 0.350552 0.543964 0.448652 RAD 0.00617284 - txt002 - SPHERE CENTER 0.337468 0.52705 0.460998 RAD 0.00617284 - txt002 - SPHERE CENTER 0.355387 0.519948 0.445566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.304247 0.499343 0.497099 RAD 0.0185185 - txt002 - SPHERE CENTER 0.314219 0.518259 0.509445 RAD 0.00617284 - txt002 - SPHERE CENTER 0.328108 0.504895 0.494013 RAD 0.00617284 - txt002 - SPHERE CENTER 0.310678 0.519922 0.485065 RAD 0.00617284 - txt002 - SPHERE CENTER 0.290358 0.512708 0.512531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.286818 0.51437 0.488152 RAD 0.00617284 - txt002 - SPHERE CENTER 0.280387 0.493791 0.500186 RAD 0.00617284 - txt002 - SPHERE CENTER 0.307788 0.49768 0.521479 RAD 0.00617284 - txt002 - SPHERE CENTER 0.297816 0.478764 0.509133 RAD 0.00617284 - txt002 - SPHERE CENTER 0.321677 0.484316 0.506047 RAD 0.00617284 - txt002 - SPHERE CENTER 0.367935 0.472692 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER 0.389488 0.48474 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.379669 0.477004 0.448964 RAD 0.00617284 - txt002 - SPHERE CENTER 0.369235 0.495668 0.46131 RAD 0.00617284 - txt002 - SPHERE CENTER 0.377754 0.480429 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.357501 0.491357 0.482603 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356202 0.46838 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.388188 0.461764 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER 0.366636 0.449715 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37837 0.454027 0.457911 RAD 0.00617284 - txt002 - SPHERE CENTER 0.230635 0.38777 0.729516 RAD 0.0555556 - txt002 - SPHERE CENTER 0.2506 0.446614 0.769837 RAD 0.0185185 - txt002 - SPHERE CENTER 0.264242 0.467193 0.770086 RAD 0.00617284 - txt002 - SPHERE CENTER 0.272442 0.447086 0.758332 RAD 0.00617284 - txt002 - SPHERE CENTER 0.253384 0.459832 0.749168 RAD 0.00617284 - txt002 - SPHERE CENTER 0.2424 0.46672 0.781591 RAD 0.00617284 - txt002 - SPHERE CENTER 0.231541 0.459359 0.760673 RAD 0.00617284 - txt002 - SPHERE CENTER 0.228758 0.446141 0.781342 RAD 0.00617284 - txt002 - SPHERE CENTER 0.261459 0.453974 0.790755 RAD 0.00617284 - txt002 - SPHERE CENTER 0.247817 0.433396 0.790506 RAD 0.00617284 - txt002 - SPHERE CENTER 0.269659 0.433868 0.779001 RAD 0.00617284 - txt002 - SPHERE CENTER 0.301839 0.407906 0.732914 RAD 0.0185185 - txt002 - SPHERE CENTER 0.319874 0.420236 0.72141 RAD 0.00617284 - txt002 - SPHERE CENTER 0.303021 0.407886 0.708251 RAD 0.00617284 - txt002 - SPHERE CENTER 0.296625 0.428474 0.720288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.318692 0.420256 0.746073 RAD 0.00617284 - txt002 - SPHERE CENTER 0.295442 0.428494 0.744951 RAD 0.00617284 - txt002 - SPHERE CENTER 0.300656 0.407926 0.757577 RAD 0.00617284 - txt002 - SPHERE CENTER 0.325088 0.399668 0.734036 RAD 0.00617284 - txt002 - SPHERE CENTER 0.307053 0.387338 0.745541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.308235 0.387318 0.720878 RAD 0.00617284 - txt002 - SPHERE CENTER 0.253236 0.449775 0.695877 RAD 0.0185185 - txt002 - SPHERE CENTER 0.263032 0.459076 0.675209 RAD 0.00617284 - txt002 - SPHERE CENTER 0.270029 0.436804 0.683251 RAD 0.00617284 - txt002 - SPHERE CENTER 0.247378 0.440021 0.673964 RAD 0.00617284 - txt002 - SPHERE CENTER 0.246239 0.472047 0.687835 RAD 0.00617284 - txt002 - SPHERE CENTER 0.230585 0.452992 0.68659 RAD 0.00617284 - txt002 - SPHERE CENTER 0.236443 0.462746 0.708504 RAD 0.00617284 - txt002 - SPHERE CENTER 0.26889 0.468829 0.697123 RAD 0.00617284 - txt002 - SPHERE CENTER 0.259094 0.459528 0.717791 RAD 0.00617284 - txt002 - SPHERE CENTER 0.275887 0.446557 0.705165 RAD 0.00617284 - txt002 - SPHERE CENTER 0.179397 0.426478 0.766439 RAD 0.0185185 - txt002 - SPHERE CENTER 0.174744 0.447688 0.778193 RAD 0.00617284 - txt002 - SPHERE CENTER 0.197172 0.437457 0.779597 RAD 0.00617284 - txt002 - SPHERE CENTER 0.1895 0.447523 0.758396 RAD 0.00617284 - txt002 - SPHERE CENTER 0.156968 0.436708 0.765035 RAD 0.00617284 - txt002 - SPHERE CENTER 0.171724 0.436544 0.745238 RAD 0.00617284 - txt002 - SPHERE CENTER 0.161621 0.415499 0.753281 RAD 0.00617284 - txt002 - SPHERE CENTER 0.164641 0.426642 0.786236 RAD 0.00617284 - txt002 - SPHERE CENTER 0.169293 0.405432 0.774481 RAD 0.00617284 - txt002 - SPHERE CENTER 0.187069 0.416412 0.787639 RAD 0.00617284 - txt002 - SPHERE CENTER 0.182032 0.429639 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER 0.177682 0.45215 0.683315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.190087 0.449636 0.704516 RAD 0.00617284 - txt002 - SPHERE CENTER 0.200611 0.44299 0.683192 RAD 0.00617284 - txt002 - SPHERE CENTER 0.169628 0.432153 0.671279 RAD 0.00617284 - txt002 - SPHERE CENTER 0.192556 0.422992 0.671155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.173978 0.409641 0.680442 RAD 0.00617284 - txt002 - SPHERE CENTER 0.159104 0.438799 0.692603 RAD 0.00617284 - txt002 - SPHERE CENTER 0.163454 0.416288 0.701767 RAD 0.00617284 - txt002 - SPHERE CENTER 0.171508 0.436286 0.713804 RAD 0.00617284 - txt002 - SPHERE CENTER 0.159431 0.367634 0.726118 RAD 0.0185185 - txt002 - SPHERE CENTER 0.13761 0.368692 0.737623 RAD 0.00617284 - txt002 - SPHERE CENTER 0.158434 0.366998 0.750781 RAD 0.00617284 - txt002 - SPHERE CENTER 0.153102 0.387887 0.738744 RAD 0.00617284 - txt002 - SPHERE CENTER 0.138607 0.369329 0.71296 RAD 0.00617284 - txt002 - SPHERE CENTER 0.154099 0.388523 0.714081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.160429 0.36827 0.701455 RAD 0.00617284 - txt002 - SPHERE CENTER 0.14394 0.34844 0.724997 RAD 0.00617284 - txt002 - SPHERE CENTER 0.165761 0.347381 0.713492 RAD 0.00617284 - txt002 - SPHERE CENTER 0.164764 0.346745 0.738155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.227999 0.384609 0.803476 RAD 0.0185185 - txt002 - SPHERE CENTER 0.237348 0.393812 0.824394 RAD 0.00617284 - txt002 - SPHERE CENTER 0.251829 0.390976 0.804597 RAD 0.00617284 - txt002 - SPHERE CENTER 0.234368 0.408432 0.804721 RAD 0.00617284 - txt002 - SPHERE CENTER 0.213518 0.387445 0.823273 RAD 0.00617284 - txt002 - SPHERE CENTER 0.210538 0.402066 0.8036 RAD 0.00617284 - txt002 - SPHERE CENTER 0.204169 0.378242 0.802355 RAD 0.00617284 - txt002 - SPHERE CENTER 0.23098 0.369989 0.823149 RAD 0.00617284 - txt002 - SPHERE CENTER 0.221631 0.360786 0.802231 RAD 0.00617284 - txt002 - SPHERE CENTER 0.245461 0.367152 0.803352 RAD 0.00617284 - txt002 - SPHERE CENTER 0.208034 0.325765 0.763155 RAD 0.0185185 - txt002 - SPHERE CENTER 0.209548 0.312342 0.783824 RAD 0.00617284 - txt002 - SPHERE CENTER 0.229235 0.324887 0.775781 RAD 0.00617284 - txt002 - SPHERE CENTER 0.209827 0.337 0.785069 RAD 0.00617284 - txt002 - SPHERE CENTER 0.188347 0.31322 0.771198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.188626 0.337878 0.772443 RAD 0.00617284 - txt002 - SPHERE CENTER 0.186834 0.326643 0.750529 RAD 0.00617284 - txt002 - SPHERE CENTER 0.207755 0.301107 0.76191 RAD 0.00617284 - txt002 - SPHERE CENTER 0.206242 0.31453 0.741241 RAD 0.00617284 - txt002 - SPHERE CENTER 0.227442 0.313652 0.753867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.279238 0.345901 0.766553 RAD 0.0185185 - txt002 - SPHERE CENTER 0.302145 0.344931 0.775717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.297823 0.356827 0.754517 RAD 0.00617284 - txt002 - SPHERE CENTER 0.289691 0.366251 0.775841 RAD 0.00617284 - txt002 - SPHERE CENTER 0.28356 0.334005 0.787754 RAD 0.00617284 - txt002 - SPHERE CENTER 0.271106 0.355325 0.787878 RAD 0.00617284 - txt002 - SPHERE CENTER 0.260653 0.334975 0.77859 RAD 0.00617284 - txt002 - SPHERE CENTER 0.291692 0.324581 0.766429 RAD 0.00617284 - txt002 - SPHERE CENTER 0.268785 0.325551 0.757266 RAD 0.00617284 - txt002 - SPHERE CENTER 0.28737 0.336477 0.745229 RAD 0.00617284 - txt002 - SPHERE CENTER 0.115031 0.4293 0.544331 RAD 0.0555556 - txt002 - SPHERE CENTER 0.102505 0.502308 0.544331 RAD 0.0185185 - txt002 - SPHERE CENTER 0.110567 0.524146 0.536101 RAD 0.00617284 - txt002 - SPHERE CENTER 0.126738 0.506465 0.542066 RAD 0.00617284 - txt002 - SPHERE CENTER 0.112687 0.504055 0.521905 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0863343 0.519988 0.538366 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0884544 0.499897 0.524171 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0782715 0.49815 0.546597 RAD 0.00617284 - txt002 - SPHERE CENTER 0.100385 0.522399 0.558526 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0923218 0.500561 0.566757 RAD 0.00617284 - txt002 - SPHERE CENTER 0.116555 0.504718 0.564491 RAD 0.00617284 - txt002 - SPHERE CENTER 0.160392 0.474661 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.177777 0.492047 0.579103 RAD 0.00617284 - txt002 - SPHERE CENTER 0.176681 0.473492 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.159222 0.490951 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.161488 0.493217 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER 0.142932 0.492121 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.144102 0.475831 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.178947 0.475757 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER 0.161561 0.458371 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.177851 0.457202 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.160392 0.474661 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.167697 0.481967 0.484868 RAD 0.00617284 - txt002 - SPHERE CENTER 0.161561 0.458371 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.144102 0.475831 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.166528 0.498257 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.142932 0.492121 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.159222 0.490951 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.183987 0.480797 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.176681 0.473492 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.177851 0.457202 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0571437 0.456947 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0450372 0.477623 0.501329 RAD 0.00617284 - txt002 - SPHERE CENTER 0.055591 0.475469 0.523547 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0696413 0.47788 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0465898 0.4591 0.485076 RAD 0.00617284 - txt002 - SPHERE CENTER 0.071194 0.459357 0.487134 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0586963 0.438424 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0325396 0.45669 0.505236 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0446461 0.436013 0.511201 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0430934 0.454536 0.527454 RAD 0.00617284 - txt002 - SPHERE CENTER 0.115031 0.4293 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER 0.10495 0.439381 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0911807 0.435691 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.10864 0.45315 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.128801 0.43299 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER 0.13249 0.44676 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.138881 0.42291 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.111341 0.415531 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER 0.121421 0.40545 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0975713 0.411841 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0696698 0.383939 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.052284 0.366554 0.509559 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0708393 0.36765 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0533799 0.385109 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0511144 0.382844 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0522103 0.401399 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0685002 0.400229 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0685739 0.365384 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0859596 0.38277 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0871292 0.36648 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0571437 0.456947 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0493251 0.475575 0.595564 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0725262 0.467381 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER 0.06557 0.479825 0.577461 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0339426 0.465141 0.57931 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0501875 0.46939 0.561208 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0417612 0.446512 0.565115 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0408988 0.452697 0.599471 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0487174 0.434069 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0640999 0.444504 0.601529 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0696698 0.383939 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0623642 0.376634 0.603794 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0859596 0.38277 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0685002 0.400229 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0460743 0.377803 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0522103 0.401399 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0533799 0.385109 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0635337 0.360344 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0708393 0.36765 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0871292 0.36648 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.115031 0.4293 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.125111 0.439381 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.138881 0.435691 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.121421 0.45315 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.101261 0.43299 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0975713 0.44676 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0911807 0.42291 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.11872 0.415531 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.10864 0.40545 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.13249 0.411841 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.082487 0.239622 0.655442 RAD 0.0555556 - txt002 - SPHERE CENTER 0.0438957 0.258053 0.715923 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0426858 0.273525 0.735128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.064638 0.265928 0.726759 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0510334 0.281546 0.713318 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0219434 0.26565 0.724292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.030291 0.273671 0.702483 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0231533 0.250178 0.705088 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0355481 0.250032 0.737733 RAD 0.00617284 - txt002 - SPHERE CENTER 0.036758 0.23456 0.718528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0575003 0.242434 0.729364 RAD 0.00617284 - txt002 - SPHERE CENTER 0.117687 0.252557 0.719322 RAD 0.0185185 - txt002 - SPHERE CENTER 0.135677 0.265544 0.730157 RAD 0.00617284 - txt002 - SPHERE CENTER 0.138361 0.25778 0.706872 RAD 0.00617284 - txt002 - SPHERE CENTER 0.12224 0.275732 0.71212 RAD 0.00617284 - txt002 - SPHERE CENTER 0.115003 0.26032 0.742607 RAD 0.00617284 - txt002 - SPHERE CENTER 0.101567 0.270508 0.72457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.097014 0.247334 0.731771 RAD 0.00617284 - txt002 - SPHERE CENTER 0.131123 0.242369 0.737359 RAD 0.00617284 - txt002 - SPHERE CENTER 0.113134 0.229382 0.726523 RAD 0.00617284 - txt002 - SPHERE CENTER 0.133808 0.234605 0.714074 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0863845 0.308551 0.682285 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0971427 0.330622 0.67968 RAD 0.00617284 - txt002 - SPHERE CENTER 0.109956 0.310023 0.675083 RAD 0.00617284 - txt002 - SPHERE CENTER 0.091905 0.317013 0.659755 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0735708 0.329151 0.686881 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0683331 0.315541 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0628126 0.30708 0.689486 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0916222 0.322161 0.702209 RAD 0.00617284 - txt002 - SPHERE CENTER 0.080864 0.30009 0.704814 RAD 0.00617284 - txt002 - SPHERE CENTER 0.104436 0.301561 0.697613 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00869528 0.245118 0.652044 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0110117 0.257416 0.660413 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00823377 0.253319 0.675329 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0102865 0.269325 0.656641 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0105502 0.249215 0.637128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.010748 0.261124 0.633356 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00915679 0.236916 0.628759 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0126029 0.233209 0.655816 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00710408 0.22091 0.647447 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00664257 0.229111 0.670732 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0511841 0.295616 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0555846 0.315856 0.604965 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0705987 0.309941 0.623653 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0705297 0.296292 0.603077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.03617 0.301531 0.599717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0511152 0.281968 0.597829 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0317696 0.281291 0.613157 RAD 0.00617284 - txt002 - SPHERE CENTER 0.036239 0.31518 0.620293 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0318385 0.29494 0.633733 RAD 0.00617284 - txt002 - SPHERE CENTER 0.051253 0.309265 0.638981 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0472866 0.226687 0.591563 RAD 0.0185185 - txt002 - SPHERE CENTER 0.025169 0.224935 0.580727 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0281502 0.217281 0.604012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0288111 0.241399 0.598764 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0443054 0.234341 0.568278 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0479475 0.250805 0.586315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.066423 0.236092 0.579113 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0436445 0.210223 0.573526 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0657621 0.211974 0.584361 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0466257 0.202569 0.596811 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0399982 0.189123 0.689081 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0335228 0.179527 0.71089 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0567332 0.187058 0.707118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0385291 0.203632 0.709006 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0167878 0.181593 0.692853 RAD 0.00617284 - txt002 - SPHERE CENTER 0.021794 0.205698 0.690969 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0232631 0.191189 0.671044 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0349919 0.165018 0.690965 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0414672 0.174615 0.669156 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0582023 0.172549 0.687193 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0785895 0.170692 0.6286 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0867911 0.147549 0.631205 RAD 0.00617284 - txt002 - SPHERE CENTER 0.101845 0.166573 0.635801 RAD 0.00617284 - txt002 - SPHERE CENTER 0.083121 0.161663 0.65113 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0635354 0.151669 0.624003 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0598652 0.165782 0.643928 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0553337 0.174812 0.621398 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0822597 0.156579 0.608675 RAD 0.00617284 - txt002 - SPHERE CENTER 0.074058 0.179722 0.60607 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0973138 0.175603 0.613272 RAD 0.00617284 - txt002 - SPHERE CENTER 0.11379 0.183628 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER 0.133336 0.176775 0.705919 RAD 0.00617284 - txt002 - SPHERE CENTER 0.136161 0.192663 0.687231 RAD 0.00617284 - txt002 - SPHERE CENTER 0.124499 0.199753 0.707807 RAD 0.00617284 - txt002 - SPHERE CENTER 0.110965 0.167739 0.711167 RAD 0.00617284 - txt002 - SPHERE CENTER 0.102127 0.190718 0.713055 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0914184 0.174592 0.697727 RAD 0.00617284 - txt002 - SPHERE CENTER 0.122627 0.160649 0.690591 RAD 0.00617284 - txt002 - SPHERE CENTER 0.103081 0.167502 0.677151 RAD 0.00617284 - txt002 - SPHERE CENTER 0.125452 0.176537 0.671903 RAD 0.00617284 - txt002 - SPHERE CENTER 0.38777 0.230635 0.729516 RAD 0.0555556 - txt002 - SPHERE CENTER 0.446614 0.2506 0.769837 RAD 0.0185185 - txt002 - SPHERE CENTER 0.467193 0.264242 0.770086 RAD 0.00617284 - txt002 - SPHERE CENTER 0.459832 0.253384 0.749168 RAD 0.00617284 - txt002 - SPHERE CENTER 0.447086 0.272442 0.758332 RAD 0.00617284 - txt002 - SPHERE CENTER 0.453974 0.261459 0.790755 RAD 0.00617284 - txt002 - SPHERE CENTER 0.433868 0.269659 0.779001 RAD 0.00617284 - txt002 - SPHERE CENTER 0.433396 0.247817 0.790506 RAD 0.00617284 - txt002 - SPHERE CENTER 0.46672 0.2424 0.781591 RAD 0.00617284 - txt002 - SPHERE CENTER 0.446141 0.228758 0.781342 RAD 0.00617284 - txt002 - SPHERE CENTER 0.459359 0.231541 0.760673 RAD 0.00617284 - txt002 - SPHERE CENTER 0.449775 0.253236 0.695877 RAD 0.0185185 - txt002 - SPHERE CENTER 0.459076 0.263032 0.675209 RAD 0.00617284 - txt002 - SPHERE CENTER 0.440021 0.247378 0.673964 RAD 0.00617284 - txt002 - SPHERE CENTER 0.436804 0.270029 0.683251 RAD 0.00617284 - txt002 - SPHERE CENTER 0.468829 0.26889 0.697123 RAD 0.00617284 - txt002 - SPHERE CENTER 0.446557 0.275887 0.705165 RAD 0.00617284 - txt002 - SPHERE CENTER 0.459528 0.259094 0.717791 RAD 0.00617284 - txt002 - SPHERE CENTER 0.472047 0.246239 0.687835 RAD 0.00617284 - txt002 - SPHERE CENTER 0.462746 0.236443 0.708504 RAD 0.00617284 - txt002 - SPHERE CENTER 0.452992 0.230585 0.68659 RAD 0.00617284 - txt002 - SPHERE CENTER 0.407906 0.301839 0.732914 RAD 0.0185185 - txt002 - SPHERE CENTER 0.420236 0.319874 0.72141 RAD 0.00617284 - txt002 - SPHERE CENTER 0.428474 0.296625 0.720288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.407886 0.303021 0.708251 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399668 0.325088 0.734036 RAD 0.00617284 - txt002 - SPHERE CENTER 0.387318 0.308235 0.720878 RAD 0.00617284 - txt002 - SPHERE CENTER 0.387338 0.307053 0.745541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.420256 0.318692 0.746073 RAD 0.00617284 - txt002 - SPHERE CENTER 0.407926 0.300656 0.757577 RAD 0.00617284 - txt002 - SPHERE CENTER 0.428494 0.295442 0.744951 RAD 0.00617284 - txt002 - SPHERE CENTER 0.384609 0.227999 0.803476 RAD 0.0185185 - txt002 - SPHERE CENTER 0.393812 0.237348 0.824394 RAD 0.00617284 - txt002 - SPHERE CENTER 0.408432 0.234368 0.804721 RAD 0.00617284 - txt002 - SPHERE CENTER 0.390976 0.251829 0.804597 RAD 0.00617284 - txt002 - SPHERE CENTER 0.369989 0.23098 0.823149 RAD 0.00617284 - txt002 - SPHERE CENTER 0.367152 0.245461 0.803352 RAD 0.00617284 - txt002 - SPHERE CENTER 0.360786 0.221631 0.802231 RAD 0.00617284 - txt002 - SPHERE CENTER 0.387445 0.213518 0.823273 RAD 0.00617284 - txt002 - SPHERE CENTER 0.378242 0.204169 0.802355 RAD 0.00617284 - txt002 - SPHERE CENTER 0.402066 0.210538 0.8036 RAD 0.00617284 - txt002 - SPHERE CENTER 0.345901 0.279238 0.766553 RAD 0.0185185 - txt002 - SPHERE CENTER 0.344931 0.302145 0.775717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.366251 0.289691 0.775841 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356827 0.297823 0.754517 RAD 0.00617284 - txt002 - SPHERE CENTER 0.324581 0.291692 0.766429 RAD 0.00617284 - txt002 - SPHERE CENTER 0.336477 0.28737 0.745229 RAD 0.00617284 - txt002 - SPHERE CENTER 0.325551 0.268785 0.757266 RAD 0.00617284 - txt002 - SPHERE CENTER 0.334005 0.28356 0.787754 RAD 0.00617284 - txt002 - SPHERE CENTER 0.334975 0.260653 0.77859 RAD 0.00617284 - txt002 - SPHERE CENTER 0.355325 0.271106 0.787878 RAD 0.00617284 - txt002 - SPHERE CENTER 0.325765 0.208034 0.763155 RAD 0.0185185 - txt002 - SPHERE CENTER 0.312342 0.209548 0.783824 RAD 0.00617284 - txt002 - SPHERE CENTER 0.337 0.209827 0.785069 RAD 0.00617284 - txt002 - SPHERE CENTER 0.324887 0.229235 0.775781 RAD 0.00617284 - txt002 - SPHERE CENTER 0.301107 0.207755 0.76191 RAD 0.00617284 - txt002 - SPHERE CENTER 0.313652 0.227442 0.753867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.31453 0.206242 0.741241 RAD 0.00617284 - txt002 - SPHERE CENTER 0.31322 0.188347 0.771198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.326643 0.186834 0.750529 RAD 0.00617284 - txt002 - SPHERE CENTER 0.337878 0.188626 0.772443 RAD 0.00617284 - txt002 - SPHERE CENTER 0.426478 0.179397 0.766439 RAD 0.0185185 - txt002 - SPHERE CENTER 0.447688 0.174744 0.778193 RAD 0.00617284 - txt002 - SPHERE CENTER 0.447523 0.1895 0.758396 RAD 0.00617284 - txt002 - SPHERE CENTER 0.437457 0.197172 0.779597 RAD 0.00617284 - txt002 - SPHERE CENTER 0.426642 0.164641 0.786236 RAD 0.00617284 - txt002 - SPHERE CENTER 0.416412 0.187069 0.787639 RAD 0.00617284 - txt002 - SPHERE CENTER 0.405432 0.169293 0.774481 RAD 0.00617284 - txt002 - SPHERE CENTER 0.436708 0.156968 0.765035 RAD 0.00617284 - txt002 - SPHERE CENTER 0.415499 0.161621 0.753281 RAD 0.00617284 - txt002 - SPHERE CENTER 0.436544 0.171724 0.745238 RAD 0.00617284 - txt002 - SPHERE CENTER 0.367634 0.159431 0.726118 RAD 0.0185185 - txt002 - SPHERE CENTER 0.368692 0.13761 0.737623 RAD 0.00617284 - txt002 - SPHERE CENTER 0.387887 0.153102 0.738744 RAD 0.00617284 - txt002 - SPHERE CENTER 0.366998 0.158434 0.750781 RAD 0.00617284 - txt002 - SPHERE CENTER 0.34844 0.14394 0.724997 RAD 0.00617284 - txt002 - SPHERE CENTER 0.346745 0.164764 0.738155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.347381 0.165761 0.713492 RAD 0.00617284 - txt002 - SPHERE CENTER 0.369329 0.138607 0.71296 RAD 0.00617284 - txt002 - SPHERE CENTER 0.36827 0.160429 0.701455 RAD 0.00617284 - txt002 - SPHERE CENTER 0.388523 0.154099 0.714081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.429639 0.182032 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER 0.45215 0.177682 0.683315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.44299 0.200611 0.683192 RAD 0.00617284 - txt002 - SPHERE CENTER 0.449636 0.190087 0.704516 RAD 0.00617284 - txt002 - SPHERE CENTER 0.438799 0.159104 0.692603 RAD 0.00617284 - txt002 - SPHERE CENTER 0.436286 0.171508 0.713804 RAD 0.00617284 - txt002 - SPHERE CENTER 0.416288 0.163454 0.701767 RAD 0.00617284 - txt002 - SPHERE CENTER 0.432153 0.169628 0.671279 RAD 0.00617284 - txt002 - SPHERE CENTER 0.409641 0.173978 0.680442 RAD 0.00617284 - txt002 - SPHERE CENTER 0.422992 0.192556 0.671155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.239622 0.082487 0.655442 RAD 0.0555556 - txt002 - SPHERE CENTER 0.258053 0.0438957 0.715923 RAD 0.0185185 - txt002 - SPHERE CENTER 0.273525 0.0426858 0.735128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.281546 0.0510334 0.713318 RAD 0.00617284 - txt002 - SPHERE CENTER 0.265928 0.064638 0.726759 RAD 0.00617284 - txt002 - SPHERE CENTER 0.250032 0.0355481 0.737733 RAD 0.00617284 - txt002 - SPHERE CENTER 0.242434 0.0575003 0.729364 RAD 0.00617284 - txt002 - SPHERE CENTER 0.23456 0.036758 0.718528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.26565 0.0219434 0.724292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.250178 0.0231533 0.705088 RAD 0.00617284 - txt002 - SPHERE CENTER 0.273671 0.030291 0.702483 RAD 0.00617284 - txt002 - SPHERE CENTER 0.308551 0.0863845 0.682285 RAD 0.0185185 - txt002 - SPHERE CENTER 0.330622 0.0971427 0.67968 RAD 0.00617284 - txt002 - SPHERE CENTER 0.317013 0.091905 0.659755 RAD 0.00617284 - txt002 - SPHERE CENTER 0.310023 0.109956 0.675083 RAD 0.00617284 - txt002 - SPHERE CENTER 0.322161 0.0916222 0.702209 RAD 0.00617284 - txt002 - SPHERE CENTER 0.301561 0.104436 0.697613 RAD 0.00617284 - txt002 - SPHERE CENTER 0.30009 0.080864 0.704814 RAD 0.00617284 - txt002 - SPHERE CENTER 0.329151 0.0735708 0.686881 RAD 0.00617284 - txt002 - SPHERE CENTER 0.30708 0.0628126 0.689486 RAD 0.00617284 - txt002 - SPHERE CENTER 0.315541 0.0683331 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER 0.252557 0.117687 0.719322 RAD 0.0185185 - txt002 - SPHERE CENTER 0.265544 0.135677 0.730157 RAD 0.00617284 - txt002 - SPHERE CENTER 0.275732 0.12224 0.71212 RAD 0.00617284 - txt002 - SPHERE CENTER 0.25778 0.138361 0.706872 RAD 0.00617284 - txt002 - SPHERE CENTER 0.242369 0.131123 0.737359 RAD 0.00617284 - txt002 - SPHERE CENTER 0.234605 0.133808 0.714074 RAD 0.00617284 - txt002 - SPHERE CENTER 0.229382 0.113134 0.726523 RAD 0.00617284 - txt002 - SPHERE CENTER 0.26032 0.115003 0.742607 RAD 0.00617284 - txt002 - SPHERE CENTER 0.247334 0.097014 0.731771 RAD 0.00617284 - txt002 - SPHERE CENTER 0.270508 0.101567 0.72457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.189123 0.0399982 0.689081 RAD 0.0185185 - txt002 - SPHERE CENTER 0.179527 0.0335228 0.71089 RAD 0.00617284 - txt002 - SPHERE CENTER 0.203632 0.0385291 0.709006 RAD 0.00617284 - txt002 - SPHERE CENTER 0.187058 0.0567332 0.707118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.165018 0.0349919 0.690965 RAD 0.00617284 - txt002 - SPHERE CENTER 0.172549 0.0582023 0.687193 RAD 0.00617284 - txt002 - SPHERE CENTER 0.174615 0.0414672 0.669156 RAD 0.00617284 - txt002 - SPHERE CENTER 0.181593 0.0167878 0.692853 RAD 0.00617284 - txt002 - SPHERE CENTER 0.191189 0.0232631 0.671044 RAD 0.00617284 - txt002 - SPHERE CENTER 0.205698 0.021794 0.690969 RAD 0.00617284 - txt002 - SPHERE CENTER 0.183628 0.11379 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER 0.176775 0.133336 0.705919 RAD 0.00617284 - txt002 - SPHERE CENTER 0.199753 0.124499 0.707807 RAD 0.00617284 - txt002 - SPHERE CENTER 0.192663 0.136161 0.687231 RAD 0.00617284 - txt002 - SPHERE CENTER 0.160649 0.122627 0.690591 RAD 0.00617284 - txt002 - SPHERE CENTER 0.176537 0.125452 0.671903 RAD 0.00617284 - txt002 - SPHERE CENTER 0.167502 0.103081 0.677151 RAD 0.00617284 - txt002 - SPHERE CENTER 0.167739 0.110965 0.711167 RAD 0.00617284 - txt002 - SPHERE CENTER 0.174592 0.0914184 0.697727 RAD 0.00617284 - txt002 - SPHERE CENTER 0.190718 0.102127 0.713055 RAD 0.00617284 - txt002 - SPHERE CENTER 0.170692 0.0785895 0.6286 RAD 0.0185185 - txt002 - SPHERE CENTER 0.147549 0.0867911 0.631205 RAD 0.00617284 - txt002 - SPHERE CENTER 0.161663 0.083121 0.65113 RAD 0.00617284 - txt002 - SPHERE CENTER 0.166573 0.101845 0.635801 RAD 0.00617284 - txt002 - SPHERE CENTER 0.156579 0.0822597 0.608675 RAD 0.00617284 - txt002 - SPHERE CENTER 0.175603 0.0973138 0.613272 RAD 0.00617284 - txt002 - SPHERE CENTER 0.179722 0.074058 0.60607 RAD 0.00617284 - txt002 - SPHERE CENTER 0.151669 0.0635354 0.624003 RAD 0.00617284 - txt002 - SPHERE CENTER 0.174812 0.0553337 0.621398 RAD 0.00617284 - txt002 - SPHERE CENTER 0.165782 0.0598652 0.643928 RAD 0.00617284 - txt002 - SPHERE CENTER 0.245118 0.00869528 0.652044 RAD 0.0185185 - txt002 - SPHERE CENTER 0.257416 -0.0110117 0.660413 RAD 0.00617284 - txt002 - SPHERE CENTER 0.269325 0.0102865 0.656641 RAD 0.00617284 - txt002 - SPHERE CENTER 0.253319 0.00823377 0.675329 RAD 0.00617284 - txt002 - SPHERE CENTER 0.233209 -0.0126029 0.655816 RAD 0.00617284 - txt002 - SPHERE CENTER 0.229111 0.00664257 0.670732 RAD 0.00617284 - txt002 - SPHERE CENTER 0.22091 0.00710408 0.647447 RAD 0.00617284 - txt002 - SPHERE CENTER 0.249215 -0.0105502 0.637128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.236916 0.00915679 0.628759 RAD 0.00617284 - txt002 - SPHERE CENTER 0.261124 0.010748 0.633356 RAD 0.00617284 - txt002 - SPHERE CENTER 0.226687 0.0472866 0.591563 RAD 0.0185185 - txt002 - SPHERE CENTER 0.224935 0.025169 0.580727 RAD 0.00617284 - txt002 - SPHERE CENTER 0.241399 0.0288111 0.598764 RAD 0.00617284 - txt002 - SPHERE CENTER 0.217281 0.0281502 0.604012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.210223 0.0436445 0.573526 RAD 0.00617284 - txt002 - SPHERE CENTER 0.202569 0.0466257 0.596811 RAD 0.00617284 - txt002 - SPHERE CENTER 0.211974 0.0657621 0.584361 RAD 0.00617284 - txt002 - SPHERE CENTER 0.234341 0.0443054 0.568278 RAD 0.00617284 - txt002 - SPHERE CENTER 0.236092 0.066423 0.579113 RAD 0.00617284 - txt002 - SPHERE CENTER 0.250805 0.0479475 0.586315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.295616 0.0511841 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.315856 0.0555846 0.604965 RAD 0.00617284 - txt002 - SPHERE CENTER 0.296292 0.0705297 0.603077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.309941 0.0705987 0.623653 RAD 0.00617284 - txt002 - SPHERE CENTER 0.31518 0.036239 0.620293 RAD 0.00617284 - txt002 - SPHERE CENTER 0.309265 0.051253 0.638981 RAD 0.00617284 - txt002 - SPHERE CENTER 0.29494 0.0318385 0.633733 RAD 0.00617284 - txt002 - SPHERE CENTER 0.301531 0.03617 0.599717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.281291 0.0317696 0.613157 RAD 0.00617284 - txt002 - SPHERE CENTER 0.281968 0.0511152 0.597829 RAD 0.00617284 - txt002 - SPHERE CENTER 0.4293 0.115031 0.544331 RAD 0.0555556 - txt002 - SPHERE CENTER 0.502308 0.102505 0.544331 RAD 0.0185185 - txt002 - SPHERE CENTER 0.524146 0.110567 0.536101 RAD 0.00617284 - txt002 - SPHERE CENTER 0.504055 0.112687 0.521905 RAD 0.00617284 - txt002 - SPHERE CENTER 0.506465 0.126738 0.542066 RAD 0.00617284 - txt002 - SPHERE CENTER 0.522399 0.100385 0.558526 RAD 0.00617284 - txt002 - SPHERE CENTER 0.504718 0.116555 0.564491 RAD 0.00617284 - txt002 - SPHERE CENTER 0.500561 0.0923218 0.566757 RAD 0.00617284 - txt002 - SPHERE CENTER 0.519988 0.0863343 0.538366 RAD 0.00617284 - txt002 - SPHERE CENTER 0.49815 0.0782715 0.546597 RAD 0.00617284 - txt002 - SPHERE CENTER 0.499897 0.0884544 0.524171 RAD 0.00617284 - txt002 - SPHERE CENTER 0.474661 0.160392 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.481967 0.167697 0.484868 RAD 0.00617284 - txt002 - SPHERE CENTER 0.475831 0.144102 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.458371 0.161561 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.480797 0.183987 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.457202 0.177851 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.473492 0.176681 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.498257 0.166528 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.490951 0.159222 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.492121 0.142932 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.474661 0.160392 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.492047 0.177777 0.579103 RAD 0.00617284 - txt002 - SPHERE CENTER 0.490951 0.159222 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.473492 0.176681 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.475757 0.178947 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER 0.457202 0.177851 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.458371 0.161561 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.493217 0.161488 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER 0.475831 0.144102 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.492121 0.142932 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.456947 0.0571437 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.475575 0.0493251 0.595564 RAD 0.00617284 - txt002 - SPHERE CENTER 0.479825 0.06557 0.577461 RAD 0.00617284 - txt002 - SPHERE CENTER 0.467381 0.0725262 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER 0.452697 0.0408988 0.599471 RAD 0.00617284 - txt002 - SPHERE CENTER 0.444504 0.0640999 0.601529 RAD 0.00617284 - txt002 - SPHERE CENTER 0.434069 0.0487174 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER 0.465141 0.0339426 0.57931 RAD 0.00617284 - txt002 - SPHERE CENTER 0.446512 0.0417612 0.565115 RAD 0.00617284 - txt002 - SPHERE CENTER 0.46939 0.0501875 0.561208 RAD 0.00617284 - txt002 - SPHERE CENTER 0.4293 0.115031 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.439381 0.125111 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.45315 0.121421 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.435691 0.138881 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.415531 0.11872 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.411841 0.13249 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.40545 0.10864 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.43299 0.101261 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.42291 0.0911807 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.44676 0.0975713 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.383939 0.0696698 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.376634 0.0623642 0.603794 RAD 0.00617284 - txt002 - SPHERE CENTER 0.400229 0.0685002 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.38277 0.0859596 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.360344 0.0635337 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER 0.36648 0.0871292 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.36765 0.0708393 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.377803 0.0460743 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER 0.385109 0.0533799 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.401399 0.0522103 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.456947 0.0571437 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.477623 0.0450372 0.501329 RAD 0.00617284 - txt002 - SPHERE CENTER 0.47788 0.0696413 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.475469 0.055591 0.523547 RAD 0.00617284 - txt002 - SPHERE CENTER 0.45669 0.0325396 0.505236 RAD 0.00617284 - txt002 - SPHERE CENTER 0.454536 0.0430934 0.527454 RAD 0.00617284 - txt002 - SPHERE CENTER 0.436013 0.0446461 0.511201 RAD 0.00617284 - txt002 - SPHERE CENTER 0.4591 0.0465898 0.485076 RAD 0.00617284 - txt002 - SPHERE CENTER 0.438424 0.0586963 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER 0.459357 0.071194 0.487134 RAD 0.00617284 - txt002 - SPHERE CENTER 0.383939 0.0696698 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.366554 0.052284 0.509559 RAD 0.00617284 - txt002 - SPHERE CENTER 0.385109 0.0533799 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.36765 0.0708393 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.365384 0.0685739 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER 0.36648 0.0871292 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.38277 0.0859596 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.382844 0.0511144 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER 0.400229 0.0685002 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.401399 0.0522103 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.4293 0.115031 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER 0.41922 0.125111 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER 0.40545 0.121421 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.42291 0.138881 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.44307 0.11872 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER 0.44676 0.13249 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.45315 0.10864 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.425611 0.101261 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER 0.435691 0.0911807 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.411841 0.0975713 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.643951 0.172546 1.11022e-16 RAD 0.166667 - txt002 - SPHERE CENTER 0.802608 0.281471 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.824035 0.30566 -0.177765 RAD 0.0185185 - txt002 - SPHERE CENTER 0.822021 0.302088 -0.202114 RAD 0.00617284 - txt002 - SPHERE CENTER 0.821938 0.282758 -0.186751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.802598 0.298094 -0.187402 RAD 0.00617284 - txt002 - SPHERE CENTER 0.824119 0.32499 -0.193128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.804695 0.320997 -0.178416 RAD 0.00617284 - txt002 - SPHERE CENTER 0.826132 0.328563 -0.16878 RAD 0.00617284 - txt002 - SPHERE CENTER 0.843459 0.309654 -0.192477 RAD 0.00617284 - txt002 - SPHERE CENTER 0.845472 0.313227 -0.168128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.843375 0.290324 -0.177114 RAD 0.00617284 - txt002 - SPHERE CENTER 0.787796 0.241352 -0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER 0.785699 0.218449 -0.180578 RAD 0.00617284 - txt002 - SPHERE CENTER 0.802677 0.22345 -0.163362 RAD 0.00617284 - txt002 - SPHERE CENTER 0.778718 0.223304 -0.157397 RAD 0.00617284 - txt002 - SPHERE CENTER 0.770818 0.236351 -0.188808 RAD 0.00617284 - txt002 - SPHERE CENTER 0.763837 0.241205 -0.165627 RAD 0.00617284 - txt002 - SPHERE CENTER 0.772915 0.259253 -0.179823 RAD 0.00617284 - txt002 - SPHERE CENTER 0.794777 0.236497 -0.194773 RAD 0.00617284 - txt002 - SPHERE CENTER 0.796874 0.2594 -0.185788 RAD 0.00617284 - txt002 - SPHERE CENTER 0.811756 0.241498 -0.177557 RAD 0.00617284 - txt002 - SPHERE CENTER 0.752156 0.305221 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.741263 0.325175 -0.169507 RAD 0.00617284 - txt002 - SPHERE CENTER 0.747715 0.32493 -0.145675 RAD 0.00617284 - txt002 - SPHERE CENTER 0.765112 0.325981 -0.163165 RAD 0.00617284 - txt002 - SPHERE CENTER 0.745704 0.305466 -0.183703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.769553 0.306272 -0.17736 RAD 0.00617284 - txt002 - SPHERE CENTER 0.756597 0.285513 -0.174066 RAD 0.00617284 - txt002 - SPHERE CENTER 0.728307 0.304415 -0.166213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.7392 0.284462 -0.156576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.734759 0.304171 -0.142381 RAD 0.00617284 - txt002 - SPHERE CENTER 0.838847 0.34578 -0.117284 RAD 0.0185185 - txt002 - SPHERE CENTER 0.851488 0.360404 -0.132647 RAD 0.00617284 - txt002 - SPHERE CENTER 0.853509 0.335865 -0.1345 RAD 0.00617284 - txt002 - SPHERE CENTER 0.832518 0.347059 -0.141116 RAD 0.00617284 - txt002 - SPHERE CENTER 0.836826 0.370319 -0.115431 RAD 0.00617284 - txt002 - SPHERE CENTER 0.817857 0.356973 -0.1239 RAD 0.00617284 - txt002 - SPHERE CENTER 0.824185 0.355695 -0.100068 RAD 0.00617284 - txt002 - SPHERE CENTER 0.857816 0.359125 -0.108814 RAD 0.00617284 - txt002 - SPHERE CENTER 0.845176 0.344501 -0.0934517 RAD 0.00617284 - txt002 - SPHERE CENTER 0.859838 0.334587 -0.110668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.766968 0.345341 -0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.768944 0.369945 -0.10004 RAD 0.00617284 - txt002 - SPHERE CENTER 0.788341 0.356172 -0.093424 RAD 0.00617284 - txt002 - SPHERE CENTER 0.780624 0.356171 -0.116879 RAD 0.00617284 - txt002 - SPHERE CENTER 0.747572 0.359113 -0.106005 RAD 0.00617284 - txt002 - SPHERE CENTER 0.759252 0.34534 -0.122844 RAD 0.00617284 - txt002 - SPHERE CENTER 0.745596 0.33451 -0.105354 RAD 0.00617284 - txt002 - SPHERE CENTER 0.755289 0.359115 -0.0825505 RAD 0.00617284 - txt002 - SPHERE CENTER 0.753313 0.334511 -0.0818993 RAD 0.00617284 - txt002 - SPHERE CENTER 0.774685 0.345342 -0.0759343 RAD 0.00617284 - txt002 - SPHERE CENTER 0.817421 0.321591 -0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER 0.83071 0.340361 -0.0416443 RAD 0.00617284 - txt002 - SPHERE CENTER 0.840365 0.325527 -0.0588603 RAD 0.00617284 - txt002 - SPHERE CENTER 0.822249 0.341208 -0.0648253 RAD 0.00617284 - txt002 - SPHERE CENTER 0.807766 0.336425 -0.0334138 RAD 0.00617284 - txt002 - SPHERE CENTER 0.799305 0.337272 -0.0565949 RAD 0.00617284 - txt002 - SPHERE CENTER 0.794477 0.317654 -0.0423994 RAD 0.00617284 - txt002 - SPHERE CENTER 0.825882 0.320744 -0.0274488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.812593 0.301973 -0.0364345 RAD 0.00617284 - txt002 - SPHERE CENTER 0.835537 0.30591 -0.0446649 RAD 0.00617284 - txt002 - SPHERE CENTER 0.874487 0.28191 -0.129006 RAD 0.0185185 - txt002 - SPHERE CENTER 0.891539 0.292033 -0.143718 RAD 0.00617284 - txt002 - SPHERE CENTER 0.868678 0.28812 -0.152187 RAD 0.00617284 - txt002 - SPHERE CENTER 0.872763 0.305711 -0.135349 RAD 0.00617284 - txt002 - SPHERE CENTER 0.897348 0.285824 -0.120537 RAD 0.00617284 - txt002 - SPHERE CENTER 0.878572 0.299501 -0.112168 RAD 0.00617284 - txt002 - SPHERE CENTER 0.880296 0.275701 -0.105825 RAD 0.00617284 - txt002 - SPHERE CENTER 0.893263 0.268233 -0.137375 RAD 0.00617284 - txt002 - SPHERE CENTER 0.876212 0.25811 -0.122663 RAD 0.00617284 - txt002 - SPHERE CENTER 0.870402 0.264319 -0.145845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.853061 0.257721 -0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER 0.87538 0.26204 -0.0527151 RAD 0.00617284 - txt002 - SPHERE CENTER 0.87108 0.266856 -0.0765474 RAD 0.00617284 - txt002 - SPHERE CENTER 0.860805 0.280934 -0.0590577 RAD 0.00617284 - txt002 - SPHERE CENTER 0.857361 0.252905 -0.0385197 RAD 0.00617284 - txt002 - SPHERE CENTER 0.842785 0.271799 -0.0448623 RAD 0.00617284 - txt002 - SPHERE CENTER 0.835041 0.248586 -0.0481565 RAD 0.00617284 - txt002 - SPHERE CENTER 0.867636 0.238827 -0.0560094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.845317 0.234508 -0.0656463 RAD 0.00617284 - txt002 - SPHERE CENTER 0.863337 0.243643 -0.0798417 RAD 0.00617284 - txt002 - SPHERE CENTER 0.838248 0.217602 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.860225 0.206363 -0.122182 RAD 0.00617284 - txt002 - SPHERE CENTER 0.858689 0.230102 -0.128798 RAD 0.00617284 - txt002 - SPHERE CENTER 0.854636 0.223536 -0.105343 RAD 0.00617284 - txt002 - SPHERE CENTER 0.839784 0.193863 -0.116217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.834196 0.211035 -0.0993785 RAD 0.00617284 - txt002 - SPHERE CENTER 0.817808 0.205101 -0.116868 RAD 0.00617284 - txt002 - SPHERE CENTER 0.843837 0.200429 -0.139672 RAD 0.00617284 - txt002 - SPHERE CENTER 0.821861 0.211667 -0.140323 RAD 0.00617284 - txt002 - SPHERE CENTER 0.842301 0.224168 -0.146288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.643951 0.172546 -0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER 0.61371 0.202787 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.61556 0.221097 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.621702 0.225035 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.635958 0.210779 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.607567 0.198849 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.627965 0.188531 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER 0.605717 0.180539 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.593312 0.213105 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER 0.591462 0.194794 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.599454 0.217042 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER 0.5724 0.191718 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.556122 0.208861 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.575596 0.203643 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.578791 0.215568 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.552927 0.196936 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER 0.575596 0.203643 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.569205 0.179793 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.549732 0.185011 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.56601 0.167868 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.569205 0.179793 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.624779 0.244096 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.631486 0.266765 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.648629 0.250487 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.636704 0.247291 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.607636 0.260374 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.612854 0.240901 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.600929 0.237705 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.619561 0.26357 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.612854 0.240901 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.636704 0.247291 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.68526 0.183615 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.684921 0.190903 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.665787 0.178397 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669989 0.201661 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.704395 0.196121 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER 0.689462 0.206879 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.704733 0.188833 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER 0.700193 0.172858 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.700531 0.165569 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.681058 0.160351 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.696329 0.224924 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.710584 0.23918 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER 0.705059 0.216195 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.687599 0.233654 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.701855 0.24791 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.678869 0.242384 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.687599 0.233654 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.719314 0.23045 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.705059 0.216195 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.713788 0.207465 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.715501 0.153374 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.738169 0.160081 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.718696 0.165299 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.721891 0.177224 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.734974 0.148156 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.718696 0.165299 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.712305 0.141449 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.731779 0.136231 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.70911 0.129524 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.712305 0.141449 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.632882 0.131237 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.634145 0.108412 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER 0.650927 0.115965 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.627664 0.111763 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER 0.616099 0.123683 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.609618 0.127034 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.614836 0.146508 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.639363 0.127886 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.6381 0.15071 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER 0.656145 0.135439 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.663122 0.100996 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.680265 0.0847178 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.686972 0.107387 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.675047 0.104191 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.656415 0.0783272 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.651197 0.0978007 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.639272 0.0946054 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.66834 0.0815225 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER 0.651197 0.0978007 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.675047 0.104191 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.591572 0.120168 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.577317 0.105912 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.600302 0.111438 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.582843 0.128897 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.568587 0.114642 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.574113 0.137627 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.582843 0.128897 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.586046 0.0971825 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.600302 0.111438 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.609032 0.102708 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.594141 0.358439 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.619127 0.408291 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.625955 0.411883 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.630791 0.390369 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.607547 0.396287 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.61429 0.429805 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.595882 0.414208 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER 0.607462 0.426212 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.637535 0.423887 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.630706 0.420295 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.642371 0.402373 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.665691 0.37761 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.68332 0.389713 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.665691 0.37761 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.660156 0.398265 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.68332 0.389713 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.660156 0.398265 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.665691 0.37761 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.688854 0.369058 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.671225 0.356956 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.671225 0.356956 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.638217 0.337042 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.652948 0.344865 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.632683 0.357697 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.651954 0.357326 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.658482 0.324211 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.657489 0.336672 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.643752 0.316388 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.639211 0.324581 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER 0.624481 0.316758 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.618946 0.337413 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.547576 0.389119 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.541008 0.410169 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.548718 0.410472 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.564748 0.405866 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER 0.539866 0.388816 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.563607 0.384513 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.546435 0.367766 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.523836 0.393422 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.530405 0.372372 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.531546 0.393725 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.566667 0.317871 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.555534 0.296626 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.572202 0.297216 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.550163 0.307914 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.549999 0.31728 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.544629 0.328569 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.561133 0.338525 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.572037 0.306582 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER 0.583171 0.327827 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.588706 0.307172 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.522591 0.339267 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.501272 0.340934 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.522591 0.339267 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.517056 0.359921 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.501272 0.340934 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.517056 0.359921 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.522591 0.339267 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.506807 0.320279 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.528125 0.318612 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.528125 0.318612 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.57505 0.429687 -0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER 0.58161 0.452905 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.5989 0.436077 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.586467 0.434777 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.55776 0.446515 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.562617 0.428387 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.5512 0.423296 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.570193 0.447815 -0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER 0.563633 0.424596 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.587483 0.430987 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.550064 0.379835 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.547099 0.396248 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.569716 0.388263 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.557504 0.403175 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.527447 0.387819 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.537852 0.394747 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.530412 0.371406 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.539659 0.372907 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.542624 0.356494 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.562276 0.364922 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.621614 0.399007 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.637209 0.41723 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.642848 0.401533 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.624734 0.418027 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.615976 0.414703 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.603501 0.4155 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.600381 0.39648 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.634089 0.39821 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.618494 0.379986 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.639728 0.382513 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.802608 0.281471 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.858698 0.329459 0.104938 RAD 0.0185185 - txt002 - SPHERE CENTER 0.872345 0.34259 0.0890951 RAD 0.00617284 - txt002 - SPHERE CENTER 0.86421 0.32016 0.0827387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.848329 0.338969 0.0846485 RAD 0.00617284 - txt002 - SPHERE CENTER 0.866833 0.351888 0.111295 RAD 0.00617284 - txt002 - SPHERE CENTER 0.842817 0.348268 0.106848 RAD 0.00617284 - txt002 - SPHERE CENTER 0.853186 0.338757 0.127138 RAD 0.00617284 - txt002 - SPHERE CENTER 0.882715 0.333079 0.109385 RAD 0.00617284 - txt002 - SPHERE CENTER 0.869068 0.319948 0.125228 RAD 0.00617284 - txt002 - SPHERE CENTER 0.87458 0.310649 0.103028 RAD 0.00617284 - txt002 - SPHERE CENTER 0.845371 0.280879 0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER 0.849036 0.291048 0.0284303 RAD 0.00617284 - txt002 - SPHERE CENTER 0.826067 0.287867 0.0369125 RAD 0.00617284 - txt002 - SPHERE CENTER 0.840755 0.304882 0.0471312 RAD 0.00617284 - txt002 - SPHERE CENTER 0.868341 0.28406 0.0421477 RAD 0.00617284 - txt002 - SPHERE CENTER 0.86006 0.297894 0.0608487 RAD 0.00617284 - txt002 - SPHERE CENTER 0.864676 0.273891 0.0643473 RAD 0.00617284 - txt002 - SPHERE CENTER 0.853652 0.267046 0.0319289 RAD 0.00617284 - txt002 - SPHERE CENTER 0.849987 0.256877 0.0541285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.830683 0.263865 0.0404111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.798572 0.337088 0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER 0.808673 0.346884 0.0420622 RAD 0.00617284 - txt002 - SPHERE CENTER 0.82298 0.335792 0.0588533 RAD 0.00617284 - txt002 - SPHERE CENTER 0.807762 0.322361 0.044793 RAD 0.00617284 - txt002 - SPHERE CENTER 0.784265 0.34818 0.0455609 RAD 0.00617284 - txt002 - SPHERE CENTER 0.783355 0.323657 0.0482916 RAD 0.00617284 - txt002 - SPHERE CENTER 0.774164 0.338384 0.0658506 RAD 0.00617284 - txt002 - SPHERE CENTER 0.799483 0.361611 0.0596212 RAD 0.00617284 - txt002 - SPHERE CENTER 0.789382 0.351815 0.079911 RAD 0.00617284 - txt002 - SPHERE CENTER 0.81379 0.350519 0.0764123 RAD 0.00617284 - txt002 - SPHERE CENTER 0.815936 0.330051 0.165419 RAD 0.0185185 - txt002 - SPHERE CENTER 0.828769 0.350165 0.171776 RAD 0.00617284 - txt002 - SPHERE CENTER 0.838905 0.333232 0.156937 RAD 0.00617284 - txt002 - SPHERE CENTER 0.820583 0.347547 0.148628 RAD 0.00617284 - txt002 - SPHERE CENTER 0.805799 0.346984 0.180258 RAD 0.00617284 - txt002 - SPHERE CENTER 0.797614 0.344366 0.157111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.792966 0.32687 0.173902 RAD 0.00617284 - txt002 - SPHERE CENTER 0.824121 0.332668 0.188567 RAD 0.00617284 - txt002 - SPHERE CENTER 0.811288 0.312554 0.182211 RAD 0.00617284 - txt002 - SPHERE CENTER 0.834258 0.315735 0.173728 RAD 0.00617284 - txt002 - SPHERE CENTER 0.75581 0.33768 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.753851 0.362219 0.124743 RAD 0.00617284 - txt002 - SPHERE CENTER 0.774086 0.350765 0.133052 RAD 0.00617284 - txt002 - SPHERE CENTER 0.76987 0.352319 0.108773 RAD 0.00617284 - txt002 - SPHERE CENTER 0.735575 0.349134 0.114524 RAD 0.00617284 - txt002 - SPHERE CENTER 0.751594 0.339233 0.0985541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.737534 0.324595 0.112614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.739791 0.347581 0.138803 RAD 0.00617284 - txt002 - SPHERE CENTER 0.74175 0.323042 0.136894 RAD 0.00617284 - txt002 - SPHERE CENTER 0.760026 0.336127 0.147112 RAD 0.00617284 - txt002 - SPHERE CENTER 0.759846 0.282063 0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER 0.756464 0.29233 0.193792 RAD 0.00617284 - txt002 - SPHERE CENTER 0.779336 0.288514 0.18531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.765125 0.305929 0.175091 RAD 0.00617284 - txt002 - SPHERE CENTER 0.736973 0.285879 0.180075 RAD 0.00617284 - txt002 - SPHERE CENTER 0.745634 0.299478 0.161374 RAD 0.00617284 - txt002 - SPHERE CENTER 0.740355 0.275612 0.157875 RAD 0.00617284 - txt002 - SPHERE CENTER 0.751185 0.268464 0.190293 RAD 0.00617284 - txt002 - SPHERE CENTER 0.754567 0.258198 0.168094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.774058 0.264649 0.181811 RAD 0.00617284 - txt002 - SPHERE CENTER 0.862735 0.273842 0.153697 RAD 0.0185185 - txt002 - SPHERE CENTER 0.885497 0.282313 0.158144 RAD 0.00617284 - txt002 - SPHERE CENTER 0.876946 0.281455 0.134996 RAD 0.00617284 - txt002 - SPHERE CENTER 0.867718 0.29787 0.150967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.871286 0.274699 0.176845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.853506 0.290257 0.169668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.848523 0.266228 0.172398 RAD 0.00617284 - txt002 - SPHERE CENTER 0.880514 0.258284 0.160875 RAD 0.00617284 - txt002 - SPHERE CENTER 0.857752 0.249813 0.156428 RAD 0.00617284 - txt002 - SPHERE CENTER 0.871963 0.257427 0.137727 RAD 0.00617284 - txt002 - SPHERE CENTER 0.806645 0.225855 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.818054 0.21762 0.18016 RAD 0.00617284 - txt002 - SPHERE CENTER 0.83061 0.230661 0.163369 RAD 0.00617284 - txt002 - SPHERE CENTER 0.813612 0.241754 0.177429 RAD 0.00617284 - txt002 - SPHERE CENTER 0.794089 0.212813 0.176661 RAD 0.00617284 - txt002 - SPHERE CENTER 0.789647 0.236948 0.173931 RAD 0.00617284 - txt002 - SPHERE CENTER 0.78268 0.221048 0.156372 RAD 0.00617284 - txt002 - SPHERE CENTER 0.811087 0.20172 0.162601 RAD 0.00617284 - txt002 - SPHERE CENTER 0.799677 0.209955 0.142311 RAD 0.00617284 - txt002 - SPHERE CENTER 0.823642 0.214761 0.14581 RAD 0.00617284 - txt002 - SPHERE CENTER 0.849407 0.225263 0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.873186 0.21889 0.0974792 RAD 0.00617284 - txt002 - SPHERE CENTER 0.865588 0.240865 0.0891702 RAD 0.00617284 - txt002 - SPHERE CENTER 0.866351 0.236437 0.113449 RAD 0.00617284 - txt002 - SPHERE CENTER 0.857005 0.203288 0.107698 RAD 0.00617284 - txt002 - SPHERE CENTER 0.850171 0.220835 0.123668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.833227 0.20966 0.109608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.856242 0.207715 0.0834188 RAD 0.00617284 - txt002 - SPHERE CENTER 0.832464 0.214088 0.0853287 RAD 0.00617284 - txt002 - SPHERE CENTER 0.848644 0.22969 0.0751099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.594141 0.358439 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.613592 0.428945 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.626191 0.448155 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.634643 0.42519 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.614455 0.43276 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER 0.60514 0.45191 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.593404 0.436515 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.592541 0.4327 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.625328 0.44434 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.612729 0.42513 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.63378 0.421375 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.665691 0.37761 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.68332 0.389713 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.665691 0.37761 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.660156 0.398265 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.68332 0.389713 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.660156 0.398265 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.665691 0.37761 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.688854 0.369058 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.671225 0.356956 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.671225 0.356956 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.621614 0.399007 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.625435 0.399844 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.627149 0.378352 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.60511 0.38905 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.619901 0.420499 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.599576 0.409705 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.61608 0.419661 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.641939 0.409801 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.638118 0.408963 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.643653 0.388308 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.542042 0.409774 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.53788 0.433888 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.558395 0.423551 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.55574 0.426423 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.521526 0.42011 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.539387 0.412646 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER 0.525689 0.395996 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.524182 0.417238 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.528344 0.393124 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.544697 0.406901 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.550064 0.379835 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.540802 0.399304 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.54453 0.400489 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.563801 0.400119 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.546337 0.37865 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.569335 0.379464 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.555599 0.35918 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.527065 0.37902 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.536327 0.359551 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.530793 0.380205 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.522591 0.339267 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.501272 0.340934 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.522591 0.339267 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.517056 0.359921 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.501272 0.340934 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.517056 0.359921 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.522591 0.339267 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.506807 0.320279 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.528125 0.318612 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.528125 0.318612 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.586119 0.388377 0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.594185 0.405974 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.609969 0.394768 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.593017 0.410332 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.570335 0.399584 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.569167 0.403942 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.562269 0.381987 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.587286 0.384019 0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.57922 0.366422 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.60307 0.372813 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.566667 0.317871 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.567308 0.314012 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER 0.587901 0.320398 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.569787 0.336891 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.546074 0.311485 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.548554 0.334364 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.545434 0.315344 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.564188 0.294991 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.563547 0.29885 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.584781 0.301377 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.638217 0.337042 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.659244 0.341809 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.65787 0.345471 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.645657 0.360383 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.639592 0.33338 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER 0.626005 0.351955 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.618565 0.328614 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.651804 0.318468 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.630777 0.313702 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.65043 0.32213 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.643951 0.172546 0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER 0.674191 0.202787 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.690652 0.219248 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER 0.695267 0.206403 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.677807 0.223862 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669577 0.215632 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.656732 0.220246 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.653116 0.199171 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.687036 0.198172 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.670575 0.181711 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.691651 0.185327 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.715501 0.191718 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.733129 0.203821 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.715501 0.191718 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.709966 0.212373 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.733129 0.203821 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.709966 0.212373 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.715501 0.191718 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.738664 0.183166 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.721035 0.171063 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.721035 0.171063 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.663122 0.244096 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.675225 0.261725 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.683777 0.238562 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.663122 0.244096 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.65457 0.267259 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.642468 0.249631 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.642468 0.249631 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.675225 0.261725 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.663122 0.244096 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.683777 0.238562 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.602641 0.183615 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.600215 0.197046 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.622701 0.191021 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.609032 0.207465 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.580155 0.18964 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER 0.588972 0.200059 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.582581 0.176209 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.593824 0.173196 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.596251 0.159765 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.61631 0.167171 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.591572 0.224924 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.587397 0.24926 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.606693 0.240045 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.606693 0.240045 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.572277 0.23414 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.591572 0.224924 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.576452 0.209804 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.572277 0.23414 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.576452 0.209804 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.591572 0.224924 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.5724 0.153374 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.551082 0.155041 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.5724 0.153374 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.566866 0.174029 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.551082 0.155041 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.566866 0.174029 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.5724 0.153374 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.556617 0.134387 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.577935 0.13272 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.577935 0.13272 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.655019 0.131237 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.668451 0.12881 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.678869 0.137627 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.662426 0.151296 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.644601 0.12242 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.638576 0.144906 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.631169 0.124846 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.661044 0.108751 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER 0.647613 0.111177 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.671463 0.117567 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.624779 0.100996 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.626446 0.0796777 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.645433 0.0954616 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.624779 0.100996 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.605791 0.0852121 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.604124 0.10653 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.604124 0.10653 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.626446 0.0796777 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.624779 0.100996 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.645433 0.0954616 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.696329 0.120168 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.720665 0.115992 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.711449 0.135288 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.711449 0.135288 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.705544 0.100872 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.696329 0.120168 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.681209 0.105047 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.705544 0.100872 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.681209 0.105047 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.696329 0.120168 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.852418 0.0955788 1.89979e-16 RAD 0.0555556 - txt002 - SPHERE CENTER 0.922609 0.11107 -0.0178949 RAD 0.0185185 - txt002 - SPHERE CENTER 0.937225 0.122151 -0.0344251 RAD 0.00617284 - txt002 - SPHERE CENTER 0.916553 0.11086 -0.0418311 RAD 0.00617284 - txt002 - SPHERE CENTER 0.915202 0.131874 -0.0289382 RAD 0.00617284 - txt002 - SPHERE CENTER 0.943281 0.12236 -0.0104889 RAD 0.00617284 - txt002 - SPHERE CENTER 0.921258 0.132084 -0.00500196 RAD 0.00617284 - txt002 - SPHERE CENTER 0.928665 0.111279 0.00604126 RAD 0.00617284 - txt002 - SPHERE CENTER 0.944632 0.101346 -0.0233819 RAD 0.00617284 - txt002 - SPHERE CENTER 0.930016 0.0902645 -0.00685171 RAD 0.00617284 - txt002 - SPHERE CENTER 0.92396 0.090055 -0.0307879 RAD 0.00617284 - txt002 - SPHERE CENTER 0.867231 0.135698 -0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER 0.873196 0.134634 -0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER 0.882112 0.117797 -0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER 0.858152 0.11765 -0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER 0.858315 0.152536 -0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER 0.843271 0.135552 -0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.852349 0.1536 -0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER 0.882275 0.152682 -0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.876309 0.153747 -0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER 0.89119 0.135845 -0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER 0.877966 0.164775 0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER 0.890926 0.182656 -0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER 0.897331 0.159019 -0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER 0.876622 0.167676 -0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER 0.871561 0.188412 0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER 0.857256 0.173431 -0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.8586 0.17053 0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER 0.89227 0.179755 0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER 0.87931 0.161874 0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.898675 0.156118 0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.907797 0.0709499 0.0425863 RAD 0.0185185 - txt002 - SPHERE CENTER 0.930963 0.0752104 0.0499923 RAD 0.00617284 - txt002 - SPHERE CENTER 0.924191 0.0806562 0.0268805 RAD 0.00617284 - txt002 - SPHERE CENTER 0.915684 0.0941344 0.0457385 RAD 0.00617284 - txt002 - SPHERE CENTER 0.914568 0.0655041 0.065698 RAD 0.00617284 - txt002 - SPHERE CENTER 0.899289 0.0844281 0.0614442 RAD 0.00617284 - txt002 - SPHERE CENTER 0.891402 0.0612436 0.058292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.923076 0.0520258 0.0468401 RAD 0.00617284 - txt002 - SPHERE CENTER 0.89991 0.0477654 0.0394341 RAD 0.00617284 - txt002 - SPHERE CENTER 0.916304 0.0574717 0.0237283 RAD 0.00617284 - txt002 - SPHERE CENTER 0.863153 0.124655 0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER 0.875744 0.141535 0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER 0.88655 0.129819 0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.868763 0.146389 0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER 0.852347 0.136371 0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER 0.845366 0.141225 0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER 0.839756 0.119492 0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER 0.870135 0.119801 0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER 0.857544 0.102922 0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER 0.880941 0.108085 0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER 0.837606 0.0554592 0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER 0.842832 0.0523913 0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER 0.86055 0.0593957 0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER 0.842434 0.0750766 0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER 0.819888 0.0484547 0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER 0.81949 0.07114 0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.814662 0.0515226 0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER 0.838004 0.0327739 0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.832778 0.0358417 0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER 0.855722 0.0397783 0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER 0.897062 0.0418734 -0.0246914 RAD 0.0185185 - txt002 - SPHERE CENTER 0.920407 0.0359958 -0.0301783 RAD 0.00617284 - txt002 - SPHERE CENTER 0.912106 0.0588574 -0.0344321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.915603 0.0511067 -0.0112511 RAD 0.00617284 - txt002 - SPHERE CENTER 0.905363 0.0190117 -0.0204376 RAD 0.00617284 - txt002 - SPHERE CENTER 0.900559 0.0341227 -0.00151032 RAD 0.00617284 - txt002 - SPHERE CENTER 0.882018 0.0248894 -0.0149506 RAD 0.00617284 - txt002 - SPHERE CENTER 0.901866 0.0267625 -0.0436186 RAD 0.00617284 - txt002 - SPHERE CENTER 0.878521 0.0326401 -0.0381316 RAD 0.00617284 - txt002 - SPHERE CENTER 0.893565 0.0496241 -0.0478724 RAD 0.00617284 - txt002 - SPHERE CENTER 0.826871 0.0263827 -0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER 0.825102 0.00436945 0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER 0.84533 0.018173 0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER 0.823964 0.025051 0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER 0.806642 0.0125791 -0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER 0.805505 0.0332607 0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.808411 0.0345923 -0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER 0.828008 0.00570109 -0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER 0.829777 0.0277143 -0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.848237 0.0195047 -0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.841683 0.0665023 -0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER 0.840284 0.0454909 -0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER 0.856111 0.0473735 -0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.831823 0.0463379 -0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER 0.825856 0.0646197 -0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER 0.817395 0.0654667 -0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER 0.827255 0.0856311 -0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER 0.850144 0.0656554 -0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER 0.851543 0.0866667 -0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER 0.865971 0.0675379 -0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER 0.69376 -0.0133465 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.740325 -0.0440268 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.762259 -0.0417568 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.759495 -0.0345526 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.748937 -0.0216407 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER 0.743089 -0.051231 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.729767 -0.0311149 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.721155 -0.053501 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.753646 -0.0641429 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.731712 -0.0664129 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.750882 -0.0569387 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.76531 0.0058253 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.782939 0.0179281 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.76531 0.0058253 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.759776 0.02648 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.782939 0.0179281 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.759776 0.02648 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.76531 0.0058253 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.788473 -0.00272662 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.770845 -0.0148294 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.770845 -0.0148294 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.721234 0.0272215 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.736829 0.0454452 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.742467 0.0297485 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.724354 0.046242 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.715595 0.0429182 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.70312 0.043715 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.7 0.0246945 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.733709 0.0264247 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER 0.718114 0.00820099 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.739347 0.010728 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.668775 -0.0631985 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.669983 -0.0708196 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.690113 -0.0618185 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.671462 -0.0467378 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.648644 -0.0721997 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.650123 -0.0481178 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER 0.647436 -0.0645786 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.667296 -0.0872804 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.666087 -0.0796593 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.687426 -0.0782793 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.649684 0.00804971 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.646718 0.0244627 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669336 0.016478 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.657124 0.0313903 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.627066 0.0160343 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.637471 0.022962 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.630031 -0.000378614 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.639278 0.00112207 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER 0.642244 -0.0152909 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.661896 -0.00686255 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.62221 -0.0325183 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.600892 -0.0308513 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.62221 -0.0325183 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.616676 -0.0118635 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.600892 -0.0308513 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.616676 -0.0118635 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.62221 -0.0325183 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.606426 -0.051506 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.627745 -0.053173 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.627745 -0.053173 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.712851 -0.0845947 0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER 0.730141 -0.101422 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.736701 -0.0782041 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.725284 -0.0832945 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.706291 -0.107813 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.701434 -0.0896851 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.689001 -0.0909853 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.717709 -0.102723 0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER 0.700418 -0.0858949 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.724268 -0.0795043 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.666287 -0.0539145 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.655153 -0.0751594 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.671821 -0.0745692 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.649783 -0.0638711 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.649619 -0.0545047 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.644249 -0.0432164 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.660752 -0.0332597 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.671657 -0.0652028 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.682791 -0.0439578 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.688325 -0.0646126 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.737837 -0.0347427 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.752567 -0.0269197 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.732303 -0.014088 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.751574 -0.0144587 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.758102 -0.0475745 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.757108 -0.0351134 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.743371 -0.0553974 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.73883 -0.0472037 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.7241 -0.0550267 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.718566 -0.0343719 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.69376 -0.0133465 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.745859 -0.0646815 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.770032 -0.0684873 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.759394 -0.0481266 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.762305 -0.0507391 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.756497 -0.0850422 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.74877 -0.067294 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER 0.732325 -0.0812364 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.753586 -0.0824297 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.729413 -0.0786239 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.742948 -0.062069 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.76531 0.0058253 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.782939 0.0179281 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.76531 0.0058253 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.759776 0.02648 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.782939 0.0179281 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.759776 0.02648 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.76531 0.0058253 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.788473 -0.00272662 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.770845 -0.0148294 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.770845 -0.0148294 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.737837 -0.0347427 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.758864 -0.0299763 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.757489 -0.0263144 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.745277 -0.0114021 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.739212 -0.0384047 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.725625 -0.0198304 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.718185 -0.043171 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.751424 -0.0533169 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.730397 -0.0580833 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.750049 -0.0496549 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.674309 -0.0838533 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.675276 -0.106805 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.694308 -0.091423 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.673094 -0.0875713 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER 0.655278 -0.0992356 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.653095 -0.0800016 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.65431 -0.0762835 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.676491 -0.103087 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.675524 -0.0801352 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.695522 -0.0877049 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.666287 -0.0539145 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.666927 -0.0577732 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.68752 -0.0513875 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669407 -0.034894 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.645694 -0.0603001 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.648173 -0.0374209 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.645053 -0.0564414 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.663807 -0.0767937 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.663167 -0.072935 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.6844 -0.070408 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.62221 -0.0325183 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.600892 -0.0308513 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.62221 -0.0325183 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.616676 -0.0118635 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.600892 -0.0308513 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.616676 -0.0118635 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.62221 -0.0325183 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.606426 -0.051506 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.627745 -0.053173 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.627745 -0.053173 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.701782 -0.0432853 -0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.717566 -0.0544915 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.725632 -0.0368947 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.718734 -0.0588496 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.693716 -0.0608821 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.694884 -0.0652402 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.677932 -0.0496759 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.700615 -0.0389272 -0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.684831 -0.027721 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.708681 -0.0213304 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.649684 0.00804971 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.640422 0.0275193 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.644149 0.0287044 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.66342 0.0283337 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.645956 0.00686453 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER 0.668955 0.00767898 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.655218 -0.012605 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.626685 0.00723527 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.635947 -0.0122343 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.630413 0.00842045 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.721234 0.0272215 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.725055 0.0280589 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER 0.726768 0.00656677 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.70473 0.0172649 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.71952 0.0487136 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.699195 0.0379196 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.715699 0.0478762 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.741558 0.0380155 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.737738 0.0371781 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.743272 0.0165234 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.172546 0.643951 1.11022e-16 RAD 0.166667 - txt002 - SPHERE CENTER 0.281471 0.802608 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.30566 0.824035 -0.177765 RAD 0.0185185 - txt002 - SPHERE CENTER 0.302088 0.822021 -0.202114 RAD 0.00617284 - txt002 - SPHERE CENTER 0.298094 0.802598 -0.187402 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282758 0.821938 -0.186751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.309654 0.843459 -0.192477 RAD 0.00617284 - txt002 - SPHERE CENTER 0.290324 0.843375 -0.177114 RAD 0.00617284 - txt002 - SPHERE CENTER 0.313227 0.845472 -0.168128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.32499 0.824119 -0.193128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.328563 0.826132 -0.16878 RAD 0.00617284 - txt002 - SPHERE CENTER 0.320997 0.804695 -0.178416 RAD 0.00617284 - txt002 - SPHERE CENTER 0.305221 0.752156 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.325175 0.741263 -0.169507 RAD 0.00617284 - txt002 - SPHERE CENTER 0.325981 0.765112 -0.163165 RAD 0.00617284 - txt002 - SPHERE CENTER 0.32493 0.747715 -0.145675 RAD 0.00617284 - txt002 - SPHERE CENTER 0.304415 0.728307 -0.166213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.304171 0.734759 -0.142381 RAD 0.00617284 - txt002 - SPHERE CENTER 0.284462 0.7392 -0.156576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.305466 0.745704 -0.183703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.285513 0.756597 -0.174066 RAD 0.00617284 - txt002 - SPHERE CENTER 0.306272 0.769553 -0.17736 RAD 0.00617284 - txt002 - SPHERE CENTER 0.241352 0.787796 -0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER 0.218449 0.785699 -0.180578 RAD 0.00617284 - txt002 - SPHERE CENTER 0.223304 0.778718 -0.157397 RAD 0.00617284 - txt002 - SPHERE CENTER 0.22345 0.802677 -0.163362 RAD 0.00617284 - txt002 - SPHERE CENTER 0.236497 0.794777 -0.194773 RAD 0.00617284 - txt002 - SPHERE CENTER 0.241498 0.811756 -0.177557 RAD 0.00617284 - txt002 - SPHERE CENTER 0.2594 0.796874 -0.185788 RAD 0.00617284 - txt002 - SPHERE CENTER 0.236351 0.770818 -0.188808 RAD 0.00617284 - txt002 - SPHERE CENTER 0.259253 0.772915 -0.179823 RAD 0.00617284 - txt002 - SPHERE CENTER 0.241205 0.763837 -0.165627 RAD 0.00617284 - txt002 - SPHERE CENTER 0.28191 0.874487 -0.129006 RAD 0.0185185 - txt002 - SPHERE CENTER 0.292033 0.891539 -0.143718 RAD 0.00617284 - txt002 - SPHERE CENTER 0.305711 0.872763 -0.135349 RAD 0.00617284 - txt002 - SPHERE CENTER 0.28812 0.868678 -0.152187 RAD 0.00617284 - txt002 - SPHERE CENTER 0.268233 0.893263 -0.137375 RAD 0.00617284 - txt002 - SPHERE CENTER 0.264319 0.870402 -0.145845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.25811 0.876212 -0.122663 RAD 0.00617284 - txt002 - SPHERE CENTER 0.285824 0.897348 -0.120537 RAD 0.00617284 - txt002 - SPHERE CENTER 0.275701 0.880296 -0.105825 RAD 0.00617284 - txt002 - SPHERE CENTER 0.299501 0.878572 -0.112168 RAD 0.00617284 - txt002 - SPHERE CENTER 0.217602 0.838248 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.206363 0.860225 -0.122182 RAD 0.00617284 - txt002 - SPHERE CENTER 0.223536 0.854636 -0.105343 RAD 0.00617284 - txt002 - SPHERE CENTER 0.230102 0.858689 -0.128798 RAD 0.00617284 - txt002 - SPHERE CENTER 0.200429 0.843837 -0.139672 RAD 0.00617284 - txt002 - SPHERE CENTER 0.224168 0.842301 -0.146288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.211667 0.821861 -0.140323 RAD 0.00617284 - txt002 - SPHERE CENTER 0.193863 0.839784 -0.116217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.205101 0.817808 -0.116868 RAD 0.00617284 - txt002 - SPHERE CENTER 0.211035 0.834196 -0.0993785 RAD 0.00617284 - txt002 - SPHERE CENTER 0.257721 0.853061 -0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER 0.26204 0.87538 -0.0527151 RAD 0.00617284 - txt002 - SPHERE CENTER 0.280934 0.860805 -0.0590577 RAD 0.00617284 - txt002 - SPHERE CENTER 0.266856 0.87108 -0.0765474 RAD 0.00617284 - txt002 - SPHERE CENTER 0.238827 0.867636 -0.0560094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.243643 0.863337 -0.0798417 RAD 0.00617284 - txt002 - SPHERE CENTER 0.234508 0.845317 -0.0656463 RAD 0.00617284 - txt002 - SPHERE CENTER 0.252905 0.857361 -0.0385197 RAD 0.00617284 - txt002 - SPHERE CENTER 0.248586 0.835041 -0.0481565 RAD 0.00617284 - txt002 - SPHERE CENTER 0.271799 0.842785 -0.0448623 RAD 0.00617284 - txt002 - SPHERE CENTER 0.34578 0.838847 -0.117284 RAD 0.0185185 - txt002 - SPHERE CENTER 0.360404 0.851488 -0.132647 RAD 0.00617284 - txt002 - SPHERE CENTER 0.347059 0.832518 -0.141116 RAD 0.00617284 - txt002 - SPHERE CENTER 0.335865 0.853509 -0.1345 RAD 0.00617284 - txt002 - SPHERE CENTER 0.359125 0.857816 -0.108814 RAD 0.00617284 - txt002 - SPHERE CENTER 0.334587 0.859838 -0.110668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.344501 0.845176 -0.0934517 RAD 0.00617284 - txt002 - SPHERE CENTER 0.370319 0.836826 -0.115431 RAD 0.00617284 - txt002 - SPHERE CENTER 0.355695 0.824185 -0.100068 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356973 0.817857 -0.1239 RAD 0.00617284 - txt002 - SPHERE CENTER 0.321591 0.817421 -0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER 0.340361 0.83071 -0.0416443 RAD 0.00617284 - txt002 - SPHERE CENTER 0.341208 0.822249 -0.0648253 RAD 0.00617284 - txt002 - SPHERE CENTER 0.325527 0.840365 -0.0588603 RAD 0.00617284 - txt002 - SPHERE CENTER 0.320744 0.825882 -0.0274488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.30591 0.835537 -0.0446649 RAD 0.00617284 - txt002 - SPHERE CENTER 0.301973 0.812593 -0.0364345 RAD 0.00617284 - txt002 - SPHERE CENTER 0.336425 0.807766 -0.0334138 RAD 0.00617284 - txt002 - SPHERE CENTER 0.317654 0.794477 -0.0423994 RAD 0.00617284 - txt002 - SPHERE CENTER 0.337272 0.799305 -0.0565949 RAD 0.00617284 - txt002 - SPHERE CENTER 0.345341 0.766968 -0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.369945 0.768944 -0.10004 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356171 0.780624 -0.116879 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356172 0.788341 -0.093424 RAD 0.00617284 - txt002 - SPHERE CENTER 0.359115 0.755289 -0.0825505 RAD 0.00617284 - txt002 - SPHERE CENTER 0.345342 0.774685 -0.0759343 RAD 0.00617284 - txt002 - SPHERE CENTER 0.334511 0.753313 -0.0818993 RAD 0.00617284 - txt002 - SPHERE CENTER 0.359113 0.747572 -0.106005 RAD 0.00617284 - txt002 - SPHERE CENTER 0.33451 0.745596 -0.105354 RAD 0.00617284 - txt002 - SPHERE CENTER 0.34534 0.759252 -0.122844 RAD 0.00617284 - txt002 - SPHERE CENTER 0.358439 0.594141 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.408291 0.619127 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.411883 0.625955 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.396287 0.607547 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.390369 0.630791 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.423887 0.637535 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.402373 0.642371 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.420295 0.630706 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.429805 0.61429 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.426212 0.607462 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.414208 0.595882 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER 0.337042 0.638217 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.344865 0.652948 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.357326 0.651954 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.357697 0.632683 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.324581 0.639211 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER 0.337413 0.618946 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.316758 0.624481 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.324211 0.658482 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.316388 0.643752 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.336672 0.657489 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37761 0.665691 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.389713 0.68332 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.398265 0.660156 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37761 0.665691 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.369058 0.688854 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356956 0.671225 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356956 0.671225 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.389713 0.68332 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37761 0.665691 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.398265 0.660156 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.429687 0.57505 -0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER 0.452905 0.58161 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.434777 0.586467 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.436077 0.5989 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.447815 0.570193 -0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER 0.430987 0.587483 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.424596 0.563633 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.446515 0.55776 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.423296 0.5512 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.428387 0.562617 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399007 0.621614 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.41723 0.637209 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.418027 0.624734 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.401533 0.642848 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.39821 0.634089 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.382513 0.639728 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.379986 0.618494 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.414703 0.615976 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.39648 0.600381 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.4155 0.603501 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.379835 0.550064 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.396248 0.547099 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.403175 0.557504 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.388263 0.569716 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.372907 0.539659 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.364922 0.562276 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356494 0.542624 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.387819 0.527447 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.371406 0.530412 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.394747 0.537852 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.389119 0.547576 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.410169 0.541008 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.405866 0.564748 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER 0.410472 0.548718 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.393422 0.523836 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.393725 0.531546 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.372372 0.530405 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.388816 0.539866 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.367766 0.546435 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.384513 0.563607 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.339267 0.522591 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.340934 0.501272 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.359921 0.517056 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.339267 0.522591 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.320279 0.506807 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.318612 0.528125 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.318612 0.528125 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.340934 0.501272 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.339267 0.522591 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.359921 0.517056 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.317871 0.566667 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.296626 0.555534 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.307914 0.550163 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.297216 0.572202 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.306582 0.572037 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER 0.307172 0.588706 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.327827 0.583171 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.31728 0.549999 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.338525 0.561133 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.328569 0.544629 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.172546 0.643951 -0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER 0.142305 0.674191 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.144155 0.692502 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.150298 0.696439 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.164554 0.682184 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.136163 0.670254 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.156561 0.659936 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER 0.134313 0.651943 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.121907 0.684509 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER 0.120057 0.666199 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.12805 0.688447 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER 0.100996 0.663122 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0847178 0.680265 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.104191 0.675047 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.107387 0.686972 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0815225 0.66834 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER 0.104191 0.675047 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0978007 0.651197 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0783272 0.656415 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0946054 0.639272 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0978007 0.651197 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.153374 0.715501 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.160081 0.738169 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.177224 0.721891 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.165299 0.718696 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.136231 0.731779 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.141449 0.712305 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.129524 0.70911 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.148156 0.734974 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.141449 0.712305 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.165299 0.718696 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.213855 0.655019 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.213517 0.662308 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.194382 0.649801 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER 0.198584 0.673065 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.23299 0.667526 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER 0.218058 0.678283 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.233329 0.660237 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER 0.228788 0.644262 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.229127 0.636974 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.209653 0.631756 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.224924 0.696329 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.23918 0.710584 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER 0.233654 0.687599 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.216195 0.705059 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.23045 0.719314 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.207465 0.713788 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.216195 0.705059 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.24791 0.701855 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.233654 0.687599 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.242384 0.678869 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.244096 0.624779 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.266765 0.631486 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.247291 0.636704 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.250487 0.648629 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.26357 0.619561 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.247291 0.636704 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.240901 0.612854 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.260374 0.607636 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.237705 0.600929 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.240901 0.612854 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.161477 0.602641 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.162741 0.579817 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER 0.179523 0.58737 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.156259 0.583168 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER 0.144695 0.595088 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.138214 0.598439 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.143431 0.617912 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.167958 0.59929 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.166695 0.622115 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER 0.184741 0.606843 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.191718 0.5724 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.208861 0.556122 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.215568 0.578791 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.203643 0.575596 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.185011 0.549732 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.179793 0.569205 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.167868 0.56601 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.196936 0.552927 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER 0.179793 0.569205 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.203643 0.575596 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.120168 0.591572 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.105912 0.577317 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.128897 0.582843 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.111438 0.600302 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0971825 0.586046 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.102708 0.609032 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.111438 0.600302 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.114642 0.568587 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.128897 0.582843 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.137627 0.574113 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0955788 0.852418 9.1293e-17 RAD 0.0555556 - txt002 - SPHERE CENTER 0.11107 0.922609 -0.0178949 RAD 0.0185185 - txt002 - SPHERE CENTER 0.122151 0.937225 -0.0344251 RAD 0.00617284 - txt002 - SPHERE CENTER 0.131874 0.915202 -0.0289382 RAD 0.00617284 - txt002 - SPHERE CENTER 0.11086 0.916553 -0.0418311 RAD 0.00617284 - txt002 - SPHERE CENTER 0.101346 0.944632 -0.0233819 RAD 0.00617284 - txt002 - SPHERE CENTER 0.090055 0.92396 -0.0307879 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0902645 0.930016 -0.00685171 RAD 0.00617284 - txt002 - SPHERE CENTER 0.12236 0.943281 -0.0104889 RAD 0.00617284 - txt002 - SPHERE CENTER 0.111279 0.928665 0.00604126 RAD 0.00617284 - txt002 - SPHERE CENTER 0.132084 0.921258 -0.00500196 RAD 0.00617284 - txt002 - SPHERE CENTER 0.164775 0.877966 0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER 0.182656 0.890926 -0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER 0.167676 0.876622 -0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER 0.159019 0.897331 -0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER 0.179755 0.89227 0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER 0.156118 0.898675 0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.161874 0.87931 0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.188412 0.871561 0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER 0.17053 0.8586 0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER 0.173431 0.857256 -0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.135698 0.867231 -0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER 0.134634 0.873196 -0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER 0.11765 0.858152 -0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER 0.117797 0.882112 -0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER 0.152682 0.882275 -0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.135845 0.89119 -0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER 0.153747 0.876309 -0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER 0.152536 0.858315 -0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER 0.1536 0.852349 -0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER 0.135552 0.843271 -0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0418734 0.897062 -0.0246914 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0359958 0.920407 -0.0301783 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0511067 0.915603 -0.0112511 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0588574 0.912106 -0.0344321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0267625 0.901866 -0.0436186 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0496241 0.893565 -0.0478724 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0326401 0.878521 -0.0381316 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0190117 0.905363 -0.0204376 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0248894 0.882018 -0.0149506 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0341227 0.900559 -0.00151032 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0665023 0.841683 -0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0454909 0.840284 -0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0463379 0.831823 -0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0473735 0.856111 -0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0656554 0.850144 -0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0675379 0.865971 -0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0866667 0.851543 -0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0646197 0.825856 -0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0856311 0.827255 -0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0654667 0.817395 -0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0263827 0.826871 -0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER 0.00436945 0.825102 0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER 0.025051 0.823964 0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER 0.018173 0.84533 0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00570109 0.828008 -0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0195047 0.848237 -0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0277143 0.829777 -0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0125791 0.806642 -0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0345923 0.808411 -0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0332607 0.805505 0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0709499 0.907797 0.0425863 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0752104 0.930963 0.0499923 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0941344 0.915684 0.0457385 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0806562 0.924191 0.0268805 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0520258 0.923076 0.0468401 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0574717 0.916304 0.0237283 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0477654 0.89991 0.0394341 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0655041 0.914568 0.065698 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0612436 0.891402 0.058292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0844281 0.899289 0.0614442 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0554592 0.837606 0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0523913 0.842832 0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0750766 0.842434 0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0593957 0.86055 0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0327739 0.838004 0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0397783 0.855722 0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0358417 0.832778 0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0484547 0.819888 0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0515226 0.814662 0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER 0.07114 0.81949 0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.124655 0.863153 0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER 0.141535 0.875744 0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER 0.146389 0.868763 0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER 0.129819 0.88655 0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.119801 0.870135 0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER 0.108085 0.880941 0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER 0.102922 0.857544 0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER 0.136371 0.852347 0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER 0.119492 0.839756 0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER 0.141225 0.845366 0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0133465 0.69376 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.0646815 0.745859 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0684873 0.770032 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0507391 0.762305 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0481266 0.759394 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0824297 0.753586 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.062069 0.742948 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0786239 0.729413 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0850422 0.756497 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0812364 0.732325 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.067294 0.74877 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0347427 0.737837 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0299763 0.758864 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0114021 0.745277 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0263144 0.757489 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0533169 0.751424 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0496549 0.750049 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0580833 0.730397 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0384047 0.739212 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.043171 0.718185 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0198304 0.725625 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0058253 0.76531 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0179281 0.782939 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.02648 0.759776 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0058253 0.76531 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00272662 0.788473 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0148294 0.770845 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0148294 0.770845 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0179281 0.782939 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0058253 0.76531 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.02648 0.759776 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0432853 0.701782 -0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0544915 0.717566 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0588496 0.718734 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0368947 0.725632 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0389272 0.700615 -0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0213304 0.708681 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.027721 0.684831 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0608821 0.693716 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0496759 0.677932 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0652402 0.694884 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0272215 0.721234 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0280589 0.725055 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0172649 0.70473 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00656677 0.726768 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0380155 0.741558 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0165234 0.743272 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0371781 0.737738 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0487136 0.71952 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0478762 0.715699 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0379196 0.699195 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00804971 0.649684 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0275193 0.640422 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0283337 0.66342 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0287044 0.644149 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00723527 0.626685 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00842045 0.630413 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0122343 0.635947 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00686453 0.645956 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.012605 0.655218 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00767898 0.668955 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0838533 0.674309 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.106805 0.675276 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0875713 0.673094 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.091423 0.694308 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.103087 0.676491 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0877049 0.695522 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0801352 0.675524 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0992356 0.655278 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0762835 0.65431 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0800016 0.653095 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0325183 0.62221 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0308513 0.600892 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0118635 0.616676 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0325183 0.62221 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.051506 0.606426 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.053173 0.627745 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.053173 0.627745 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0308513 0.600892 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0325183 0.62221 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0118635 0.616676 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0539145 0.666287 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0577732 0.666927 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.034894 0.669407 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0513875 0.68752 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0767937 0.663807 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.070408 0.6844 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.072935 0.663167 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0603001 0.645694 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0564414 0.645053 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0374209 0.648173 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0133465 0.69376 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.0440268 0.740325 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0417568 0.762259 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0216407 0.748937 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0345526 0.759495 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0641429 0.753646 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0569387 0.750882 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0664129 0.731712 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.051231 0.743089 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.053501 0.721155 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0311149 0.729767 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0272215 0.721234 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0454452 0.736829 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.046242 0.724354 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0297485 0.742467 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0264247 0.733709 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER 0.010728 0.739347 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00820099 0.718114 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0429182 0.715595 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0246945 0.7 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.043715 0.70312 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0058253 0.76531 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0179281 0.782939 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.02648 0.759776 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0058253 0.76531 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00272662 0.788473 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0148294 0.770845 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0148294 0.770845 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0179281 0.782939 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0058253 0.76531 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.02648 0.759776 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0845947 0.712851 0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER -0.101422 0.730141 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0832945 0.725284 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0782041 0.736701 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.102723 0.717709 0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0795043 0.724268 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0858949 0.700418 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.107813 0.706291 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0909853 0.689001 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0896851 0.701434 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0347427 0.737837 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0269197 0.752567 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0144587 0.751574 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.014088 0.732303 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0472037 0.73883 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0343719 0.718566 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0550267 0.7241 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0475745 0.758102 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0553974 0.743371 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0351134 0.757108 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0539145 0.666287 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0751594 0.655153 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0638711 0.649783 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0745692 0.671821 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0652028 0.671657 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0646126 0.688325 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0439578 0.682791 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0545047 0.649619 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0332597 0.660752 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0432164 0.644249 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0631985 0.668775 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0708196 0.669983 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0467378 0.671462 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0618185 0.690113 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0872804 0.667296 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0782793 0.687426 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0796593 0.666087 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0721997 0.648644 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0645786 0.647436 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0481178 0.650123 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0325183 0.62221 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0308513 0.600892 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0118635 0.616676 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0325183 0.62221 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.051506 0.606426 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.053173 0.627745 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.053173 0.627745 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0308513 0.600892 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0325183 0.62221 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0118635 0.616676 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00804971 0.649684 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0244627 0.646718 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0313903 0.657124 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.016478 0.669336 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00112207 0.639278 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00686255 0.661896 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0152909 0.642244 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0160343 0.627066 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.000378614 0.630031 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.022962 0.637471 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.281471 0.802608 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.329459 0.858698 0.104938 RAD 0.0185185 - txt002 - SPHERE CENTER 0.34259 0.872345 0.0890951 RAD 0.00617284 - txt002 - SPHERE CENTER 0.338969 0.848329 0.0846485 RAD 0.00617284 - txt002 - SPHERE CENTER 0.32016 0.86421 0.0827387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.333079 0.882715 0.109385 RAD 0.00617284 - txt002 - SPHERE CENTER 0.310649 0.87458 0.103028 RAD 0.00617284 - txt002 - SPHERE CENTER 0.319948 0.869068 0.125228 RAD 0.00617284 - txt002 - SPHERE CENTER 0.351888 0.866833 0.111295 RAD 0.00617284 - txt002 - SPHERE CENTER 0.338757 0.853186 0.127138 RAD 0.00617284 - txt002 - SPHERE CENTER 0.348268 0.842817 0.106848 RAD 0.00617284 - txt002 - SPHERE CENTER 0.337088 0.798572 0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER 0.346884 0.808673 0.0420622 RAD 0.00617284 - txt002 - SPHERE CENTER 0.322361 0.807762 0.044793 RAD 0.00617284 - txt002 - SPHERE CENTER 0.335792 0.82298 0.0588533 RAD 0.00617284 - txt002 - SPHERE CENTER 0.361611 0.799483 0.0596212 RAD 0.00617284 - txt002 - SPHERE CENTER 0.350519 0.81379 0.0764123 RAD 0.00617284 - txt002 - SPHERE CENTER 0.351815 0.789382 0.079911 RAD 0.00617284 - txt002 - SPHERE CENTER 0.34818 0.784265 0.0455609 RAD 0.00617284 - txt002 - SPHERE CENTER 0.338384 0.774164 0.0658506 RAD 0.00617284 - txt002 - SPHERE CENTER 0.323657 0.783355 0.0482916 RAD 0.00617284 - txt002 - SPHERE CENTER 0.280879 0.845371 0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER 0.291048 0.849036 0.0284303 RAD 0.00617284 - txt002 - SPHERE CENTER 0.304882 0.840755 0.0471312 RAD 0.00617284 - txt002 - SPHERE CENTER 0.287867 0.826067 0.0369125 RAD 0.00617284 - txt002 - SPHERE CENTER 0.267046 0.853652 0.0319289 RAD 0.00617284 - txt002 - SPHERE CENTER 0.263865 0.830683 0.0404111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.256877 0.849987 0.0541285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.28406 0.868341 0.0421477 RAD 0.00617284 - txt002 - SPHERE CENTER 0.273891 0.864676 0.0643473 RAD 0.00617284 - txt002 - SPHERE CENTER 0.297894 0.86006 0.0608487 RAD 0.00617284 - txt002 - SPHERE CENTER 0.273842 0.862735 0.153697 RAD 0.0185185 - txt002 - SPHERE CENTER 0.282313 0.885497 0.158144 RAD 0.00617284 - txt002 - SPHERE CENTER 0.29787 0.867718 0.150967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.281455 0.876946 0.134996 RAD 0.00617284 - txt002 - SPHERE CENTER 0.258284 0.880514 0.160875 RAD 0.00617284 - txt002 - SPHERE CENTER 0.257427 0.871963 0.137727 RAD 0.00617284 - txt002 - SPHERE CENTER 0.249813 0.857752 0.156428 RAD 0.00617284 - txt002 - SPHERE CENTER 0.274699 0.871286 0.176845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.266228 0.848523 0.172398 RAD 0.00617284 - txt002 - SPHERE CENTER 0.290257 0.853506 0.169668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.225263 0.849407 0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.21889 0.873186 0.0974792 RAD 0.00617284 - txt002 - SPHERE CENTER 0.236437 0.866351 0.113449 RAD 0.00617284 - txt002 - SPHERE CENTER 0.240865 0.865588 0.0891702 RAD 0.00617284 - txt002 - SPHERE CENTER 0.207715 0.856242 0.0834188 RAD 0.00617284 - txt002 - SPHERE CENTER 0.22969 0.848644 0.0751099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.214088 0.832464 0.0853287 RAD 0.00617284 - txt002 - SPHERE CENTER 0.203288 0.857005 0.107698 RAD 0.00617284 - txt002 - SPHERE CENTER 0.20966 0.833227 0.109608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.220835 0.850171 0.123668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.225855 0.806645 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.21762 0.818054 0.18016 RAD 0.00617284 - txt002 - SPHERE CENTER 0.241754 0.813612 0.177429 RAD 0.00617284 - txt002 - SPHERE CENTER 0.230661 0.83061 0.163369 RAD 0.00617284 - txt002 - SPHERE CENTER 0.20172 0.811087 0.162601 RAD 0.00617284 - txt002 - SPHERE CENTER 0.214761 0.823642 0.14581 RAD 0.00617284 - txt002 - SPHERE CENTER 0.209955 0.799677 0.142311 RAD 0.00617284 - txt002 - SPHERE CENTER 0.212813 0.794089 0.176661 RAD 0.00617284 - txt002 - SPHERE CENTER 0.221048 0.78268 0.156372 RAD 0.00617284 - txt002 - SPHERE CENTER 0.236948 0.789647 0.173931 RAD 0.00617284 - txt002 - SPHERE CENTER 0.330051 0.815936 0.165419 RAD 0.0185185 - txt002 - SPHERE CENTER 0.350165 0.828769 0.171776 RAD 0.00617284 - txt002 - SPHERE CENTER 0.347547 0.820583 0.148628 RAD 0.00617284 - txt002 - SPHERE CENTER 0.333232 0.838905 0.156937 RAD 0.00617284 - txt002 - SPHERE CENTER 0.332668 0.824121 0.188567 RAD 0.00617284 - txt002 - SPHERE CENTER 0.315735 0.834258 0.173728 RAD 0.00617284 - txt002 - SPHERE CENTER 0.312554 0.811288 0.182211 RAD 0.00617284 - txt002 - SPHERE CENTER 0.346984 0.805799 0.180258 RAD 0.00617284 - txt002 - SPHERE CENTER 0.32687 0.792966 0.173902 RAD 0.00617284 - txt002 - SPHERE CENTER 0.344366 0.797614 0.157111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282063 0.759846 0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER 0.29233 0.756464 0.193792 RAD 0.00617284 - txt002 - SPHERE CENTER 0.305929 0.765125 0.175091 RAD 0.00617284 - txt002 - SPHERE CENTER 0.288514 0.779336 0.18531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.268464 0.751185 0.190293 RAD 0.00617284 - txt002 - SPHERE CENTER 0.264649 0.774058 0.181811 RAD 0.00617284 - txt002 - SPHERE CENTER 0.258198 0.754567 0.168094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.285879 0.736973 0.180075 RAD 0.00617284 - txt002 - SPHERE CENTER 0.275612 0.740355 0.157875 RAD 0.00617284 - txt002 - SPHERE CENTER 0.299478 0.745634 0.161374 RAD 0.00617284 - txt002 - SPHERE CENTER 0.33768 0.75581 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.362219 0.753851 0.124743 RAD 0.00617284 - txt002 - SPHERE CENTER 0.352319 0.76987 0.108773 RAD 0.00617284 - txt002 - SPHERE CENTER 0.350765 0.774086 0.133052 RAD 0.00617284 - txt002 - SPHERE CENTER 0.347581 0.739791 0.138803 RAD 0.00617284 - txt002 - SPHERE CENTER 0.336127 0.760026 0.147112 RAD 0.00617284 - txt002 - SPHERE CENTER 0.323042 0.74175 0.136894 RAD 0.00617284 - txt002 - SPHERE CENTER 0.349134 0.735575 0.114524 RAD 0.00617284 - txt002 - SPHERE CENTER 0.324595 0.737534 0.112614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.339233 0.751594 0.0985541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.172546 0.643951 0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER 0.202787 0.674191 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.219248 0.690652 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER 0.223862 0.677807 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.206403 0.695267 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.198172 0.687036 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.185327 0.691651 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.181711 0.670575 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.215632 0.669577 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.199171 0.653116 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.220246 0.656732 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.244096 0.663122 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.261725 0.675225 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.244096 0.663122 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.238562 0.683777 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.261725 0.675225 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.238562 0.683777 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.244096 0.663122 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.267259 0.65457 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.249631 0.642468 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.249631 0.642468 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.191718 0.715501 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.203821 0.733129 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.212373 0.709966 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.191718 0.715501 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.183166 0.738664 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.171063 0.721035 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.171063 0.721035 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.203821 0.733129 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.191718 0.715501 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.212373 0.709966 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.131237 0.655019 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.12881 0.668451 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.151296 0.662426 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.137627 0.678869 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.108751 0.661044 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER 0.117567 0.671463 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.111177 0.647613 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.12242 0.644601 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.124846 0.631169 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.144906 0.638576 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.120168 0.696329 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.115992 0.720665 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.135288 0.711449 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.135288 0.711449 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.100872 0.705544 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.120168 0.696329 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.105047 0.681209 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.100872 0.705544 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.105047 0.681209 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.120168 0.696329 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.100996 0.624779 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0796777 0.626446 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.100996 0.624779 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0954616 0.645433 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0796777 0.626446 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0954616 0.645433 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.100996 0.624779 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0852121 0.605791 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.10653 0.604124 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.10653 0.604124 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.183615 0.602641 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.197046 0.600215 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.207465 0.609032 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.191021 0.622701 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.173196 0.593824 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.167171 0.61631 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.159765 0.596251 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.18964 0.580155 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER 0.176209 0.582581 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.200059 0.588972 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.153374 0.5724 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.155041 0.551082 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.174029 0.566866 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.153374 0.5724 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.134387 0.556617 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.13272 0.577935 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.13272 0.577935 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.155041 0.551082 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.153374 0.5724 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.174029 0.566866 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.224924 0.591572 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.24926 0.587397 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.240045 0.606693 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.240045 0.606693 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.23414 0.572277 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.224924 0.591572 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.209804 0.576452 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.23414 0.572277 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.209804 0.576452 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.224924 0.591572 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.358439 0.594141 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.428945 0.613592 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.448155 0.626191 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.43276 0.614455 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER 0.42519 0.634643 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.44434 0.625328 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.421375 0.63378 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.42513 0.612729 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.45191 0.60514 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.4327 0.592541 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.436515 0.593404 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399007 0.621614 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.399844 0.625435 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.38905 0.60511 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.378352 0.627149 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.409801 0.641939 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.388308 0.643653 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.408963 0.638118 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.420499 0.619901 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.419661 0.61608 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.409705 0.599576 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37761 0.665691 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.389713 0.68332 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.398265 0.660156 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37761 0.665691 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.369058 0.688854 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356956 0.671225 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356956 0.671225 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.389713 0.68332 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37761 0.665691 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.398265 0.660156 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.388377 0.586119 0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.405974 0.594185 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.410332 0.593017 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.394768 0.609969 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.384019 0.587286 0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.372813 0.60307 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.366422 0.57922 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399584 0.570335 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.381987 0.562269 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.403942 0.569167 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.337042 0.638217 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.341809 0.659244 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.360383 0.645657 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.345471 0.65787 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.318468 0.651804 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.32213 0.65043 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.313702 0.630777 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.33338 0.639592 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER 0.328614 0.618565 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.351955 0.626005 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.317871 0.566667 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.314012 0.567308 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER 0.336891 0.569787 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.320398 0.587901 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.294991 0.564188 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.301377 0.584781 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.29885 0.563547 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.311485 0.546074 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.315344 0.545434 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.334364 0.548554 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.409774 0.542042 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.433888 0.53788 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.426423 0.55574 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.423551 0.558395 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.417238 0.524182 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.406901 0.544697 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.393124 0.528344 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.42011 0.521526 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.395996 0.525689 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.412646 0.539387 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER 0.339267 0.522591 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.340934 0.501272 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.359921 0.517056 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.339267 0.522591 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.320279 0.506807 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.318612 0.528125 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.318612 0.528125 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.340934 0.501272 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.339267 0.522591 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.359921 0.517056 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.379835 0.550064 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.399304 0.540802 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.400119 0.563801 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.400489 0.54453 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37902 0.527065 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.380205 0.530793 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.359551 0.536327 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37865 0.546337 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.35918 0.555599 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.379464 0.569335 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.371785 0.0996195 0.544331 RAD 0.166667 - txt002 - SPHERE CENTER -0.393621 0.220501 0.729516 RAD 0.0555556 - txt002 - SPHERE CENTER -0.368601 0.279642 0.766439 RAD 0.0185185 - txt002 - SPHERE CENTER -0.354293 0.299716 0.765035 RAD 0.00617284 - txt002 - SPHERE CENTER -0.347717 0.279022 0.753281 RAD 0.00617284 - txt002 - SPHERE CENTER -0.366989 0.292196 0.745238 RAD 0.00617284 - txt002 - SPHERE CENTER -0.375177 0.300337 0.778193 RAD 0.00617284 - txt002 - SPHERE CENTER -0.387873 0.292817 0.758396 RAD 0.00617284 - txt002 - SPHERE CENTER -0.389485 0.280263 0.779597 RAD 0.00617284 - txt002 - SPHERE CENTER -0.355904 0.287162 0.786236 RAD 0.00617284 - txt002 - SPHERE CENTER -0.370213 0.267088 0.787639 RAD 0.00617284 - txt002 - SPHERE CENTER -0.349329 0.266468 0.774481 RAD 0.00617284 - txt002 - SPHERE CENTER -0.321889 0.238665 0.726118 RAD 0.0185185 - txt002 - SPHERE CENTER -0.304702 0.250544 0.71296 RAD 0.00617284 - txt002 - SPHERE CENTER -0.32307 0.238717 0.701455 RAD 0.00617284 - txt002 - SPHERE CENTER -0.327715 0.259421 0.714081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.30352 0.250492 0.737623 RAD 0.00617284 - txt002 - SPHERE CENTER -0.326533 0.259369 0.738744 RAD 0.00617284 - txt002 - SPHERE CENTER -0.320707 0.238612 0.750781 RAD 0.00617284 - txt002 - SPHERE CENTER -0.298875 0.229788 0.724997 RAD 0.00617284 - txt002 - SPHERE CENTER -0.316063 0.217908 0.738155 RAD 0.00617284 - txt002 - SPHERE CENTER -0.317244 0.21796 0.713492 RAD 0.00617284 - txt002 - SPHERE CENTER -0.372464 0.281062 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER -0.362978 0.289441 0.671279 RAD 0.00617284 - txt002 - SPHERE CENTER -0.35549 0.267771 0.680442 RAD 0.00617284 - txt002 - SPHERE CENTER -0.378255 0.270044 0.671155 RAD 0.00617284 - txt002 - SPHERE CENTER -0.379952 0.302733 0.683315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.395229 0.283335 0.683192 RAD 0.00617284 - txt002 - SPHERE CENTER -0.389438 0.294353 0.704516 RAD 0.00617284 - txt002 - SPHERE CENTER -0.357187 0.30046 0.692603 RAD 0.00617284 - txt002 - SPHERE CENTER -0.366673 0.29208 0.713804 RAD 0.00617284 - txt002 - SPHERE CENTER -0.349699 0.278789 0.701767 RAD 0.00617284 - txt002 - SPHERE CENTER -0.440333 0.261479 0.769837 RAD 0.0185185 - txt002 - SPHERE CENTER -0.443285 0.282991 0.781591 RAD 0.00617284 - txt002 - SPHERE CENTER -0.421181 0.271991 0.781342 RAD 0.00617284 - txt002 - SPHERE CENTER -0.4302 0.282046 0.760673 RAD 0.00617284 - txt002 - SPHERE CENTER -0.462437 0.27248 0.770086 RAD 0.00617284 - txt002 - SPHERE CENTER -0.449353 0.271534 0.749168 RAD 0.00617284 - txt002 - SPHERE CENTER -0.459485 0.250967 0.758332 RAD 0.00617284 - txt002 - SPHERE CENTER -0.453417 0.262424 0.790755 RAD 0.00617284 - txt002 - SPHERE CENTER -0.450466 0.240911 0.779001 RAD 0.00617284 - txt002 - SPHERE CENTER -0.431313 0.251423 0.790506 RAD 0.00617284 - txt002 - SPHERE CENTER -0.444196 0.262898 0.695877 RAD 0.0185185 - txt002 - SPHERE CENTER -0.449273 0.285685 0.687835 RAD 0.00617284 - txt002 - SPHERE CENTER -0.436139 0.282528 0.708504 RAD 0.00617284 - txt002 - SPHERE CENTER -0.426189 0.27701 0.68659 RAD 0.00617284 - txt002 - SPHERE CENTER -0.45733 0.266055 0.675209 RAD 0.00617284 - txt002 - SPHERE CENTER -0.434246 0.257381 0.673964 RAD 0.00617284 - txt002 - SPHERE CENTER -0.452254 0.243269 0.683251 RAD 0.00617284 - txt002 - SPHERE CENTER -0.46728 0.271573 0.697123 RAD 0.00617284 - txt002 - SPHERE CENTER -0.462204 0.248787 0.705165 RAD 0.00617284 - txt002 - SPHERE CENTER -0.454146 0.268416 0.717791 RAD 0.00617284 - txt002 - SPHERE CENTER -0.465353 0.202338 0.732914 RAD 0.0185185 - txt002 - SPHERE CENTER -0.486123 0.204606 0.746073 RAD 0.00617284 - txt002 - SPHERE CENTER -0.464339 0.202946 0.757577 RAD 0.00617284 - txt002 - SPHERE CENTER -0.470107 0.223366 0.744951 RAD 0.00617284 - txt002 - SPHERE CENTER -0.487137 0.203998 0.72141 RAD 0.00617284 - txt002 - SPHERE CENTER -0.471122 0.222757 0.720288 RAD 0.00617284 - txt002 - SPHERE CENTER -0.466367 0.201729 0.708251 RAD 0.00617284 - txt002 - SPHERE CENTER -0.481368 0.183578 0.734036 RAD 0.00617284 - txt002 - SPHERE CENTER -0.460599 0.18131 0.720878 RAD 0.00617284 - txt002 - SPHERE CENTER -0.459584 0.181918 0.745541 RAD 0.00617284 - txt002 - SPHERE CENTER -0.389758 0.219082 0.803476 RAD 0.0185185 - txt002 - SPHERE CENTER -0.378635 0.228779 0.823273 RAD 0.00617284 - txt002 - SPHERE CENTER -0.365937 0.225483 0.802355 RAD 0.00617284 - txt002 - SPHERE CENTER -0.383364 0.24293 0.8036 RAD 0.00617284 - txt002 - SPHERE CENTER -0.402455 0.222377 0.824394 RAD 0.00617284 - txt002 - SPHERE CENTER -0.407185 0.236529 0.804721 RAD 0.00617284 - txt002 - SPHERE CENTER -0.413578 0.21268 0.804597 RAD 0.00617284 - txt002 - SPHERE CENTER -0.385029 0.20493 0.823149 RAD 0.00617284 - txt002 - SPHERE CENTER -0.396152 0.195233 0.803352 RAD 0.00617284 - txt002 - SPHERE CENTER -0.372331 0.201634 0.802231 RAD 0.00617284 - txt002 - SPHERE CENTER -0.414778 0.15994 0.766553 RAD 0.0185185 - txt002 - SPHERE CENTER -0.412573 0.147477 0.787754 RAD 0.00617284 - txt002 - SPHERE CENTER -0.39322 0.15977 0.77859 RAD 0.00617284 - txt002 - SPHERE CENTER -0.412448 0.172167 0.787878 RAD 0.00617284 - txt002 - SPHERE CENTER -0.434131 0.147647 0.775717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.434006 0.172338 0.775841 RAD 0.00617284 - txt002 - SPHERE CENTER -0.436336 0.16011 0.754517 RAD 0.00617284 - txt002 - SPHERE CENTER -0.414903 0.13525 0.766429 RAD 0.00617284 - txt002 - SPHERE CENTER -0.417108 0.147713 0.745229 RAD 0.00617284 - txt002 - SPHERE CENTER -0.39555 0.147543 0.757266 RAD 0.00617284 - txt002 - SPHERE CENTER -0.343046 0.178104 0.763155 RAD 0.0185185 - txt002 - SPHERE CENTER -0.319723 0.177083 0.771198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.325124 0.189464 0.750529 RAD 0.00617284 - txt002 - SPHERE CENTER -0.332294 0.198298 0.772443 RAD 0.00617284 - txt002 - SPHERE CENTER -0.337645 0.165722 0.783824 RAD 0.00617284 - txt002 - SPHERE CENTER -0.350216 0.186938 0.785069 RAD 0.00617284 - txt002 - SPHERE CENTER -0.360967 0.166743 0.775781 RAD 0.00617284 - txt002 - SPHERE CENTER -0.330475 0.156889 0.76191 RAD 0.00617284 - txt002 - SPHERE CENTER -0.353797 0.157909 0.753867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.335876 0.16927 0.741241 RAD 0.00617284 - txt002 - SPHERE CENTER -0.191247 0.166275 0.655442 RAD 0.0555556 - txt002 - SPHERE CENTER -0.130089 0.20793 0.652044 RAD 0.0185185 - txt002 - SPHERE CENTER -0.115471 0.221102 0.637128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.126388 0.200597 0.628759 RAD 0.00617284 - txt002 - SPHERE CENTER -0.13987 0.220766 0.633356 RAD 0.00617284 - txt002 - SPHERE CENTER -0.119172 0.228435 0.660413 RAD 0.00617284 - txt002 - SPHERE CENTER -0.143571 0.228099 0.656641 RAD 0.00617284 - txt002 - SPHERE CENTER -0.13379 0.215264 0.675329 RAD 0.00617284 - txt002 - SPHERE CENTER -0.10569 0.208266 0.655816 RAD 0.00617284 - txt002 - SPHERE CENTER -0.120308 0.195095 0.670732 RAD 0.00617284 - txt002 - SPHERE CENTER -0.116607 0.187762 0.647447 RAD 0.00617284 - txt002 - SPHERE CENTER -0.154295 0.172673 0.591563 RAD 0.0185185 - txt002 - SPHERE CENTER -0.15554 0.180792 0.568278 RAD 0.00617284 - txt002 - SPHERE CENTER -0.17557 0.171251 0.579113 RAD 0.00617284 - txt002 - SPHERE CENTER -0.166926 0.19323 0.586315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.134265 0.182215 0.580727 RAD 0.00617284 - txt002 - SPHERE CENTER -0.145651 0.194652 0.598764 RAD 0.00617284 - txt002 - SPHERE CENTER -0.133019 0.174096 0.604012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.142909 0.160236 0.573526 RAD 0.00617284 - txt002 - SPHERE CENTER -0.141663 0.152117 0.596811 RAD 0.00617284 - txt002 - SPHERE CENTER -0.162939 0.150694 0.584361 RAD 0.00617284 - txt002 - SPHERE CENTER -0.192135 0.230419 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER -0.18209 0.243049 0.599717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.168159 0.227721 0.613157 RAD 0.00617284 - txt002 - SPHERE CENTER -0.185251 0.218634 0.597829 RAD 0.00617284 - txt002 - SPHERE CENTER -0.206066 0.245747 0.604965 RAD 0.00617284 - txt002 - SPHERE CENTER -0.209227 0.221332 0.603077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.216111 0.233117 0.623653 RAD 0.00617284 - txt002 - SPHERE CENTER -0.188974 0.254834 0.620293 RAD 0.00617284 - txt002 - SPHERE CENTER -0.199019 0.242204 0.638981 RAD 0.00617284 - txt002 - SPHERE CENTER -0.175043 0.239506 0.633733 RAD 0.00617284 - txt002 - SPHERE CENTER -0.167041 0.201532 0.715923 RAD 0.0185185 - txt002 - SPHERE CENTER -0.151829 0.219088 0.724292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.14514 0.205084 0.705088 RAD 0.00617284 - txt002 - SPHERE CENTER -0.163068 0.221861 0.702483 RAD 0.00617284 - txt002 - SPHERE CENTER -0.173729 0.215537 0.735128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.184969 0.218309 0.713318 RAD 0.00617284 - txt002 - SPHERE CENTER -0.188942 0.197981 0.726759 RAD 0.00617284 - txt002 - SPHERE CENTER -0.155801 0.19876 0.737733 RAD 0.00617284 - txt002 - SPHERE CENTER -0.171014 0.181204 0.729364 RAD 0.00617284 - txt002 - SPHERE CENTER -0.149113 0.184756 0.718528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.229087 0.224021 0.682285 RAD 0.0185185 - txt002 - SPHERE CENTER -0.22829 0.248268 0.686881 RAD 0.00617284 - txt002 - SPHERE CENTER -0.207937 0.234532 0.689486 RAD 0.00617284 - txt002 - SPHERE CENTER -0.216949 0.2391 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER -0.249439 0.237756 0.67968 RAD 0.00617284 - txt002 - SPHERE CENTER -0.238098 0.228589 0.659755 RAD 0.00617284 - txt002 - SPHERE CENTER -0.250236 0.213509 0.675083 RAD 0.00617284 - txt002 - SPHERE CENTER -0.240428 0.233189 0.702209 RAD 0.00617284 - txt002 - SPHERE CENTER -0.241225 0.208942 0.697613 RAD 0.00617284 - txt002 - SPHERE CENTER -0.220075 0.219453 0.704814 RAD 0.00617284 - txt002 - SPHERE CENTER -0.228199 0.159877 0.719322 RAD 0.0185185 - txt002 - SPHERE CENTER -0.229756 0.167942 0.742607 RAD 0.00617284 - txt002 - SPHERE CENTER -0.207683 0.16569 0.731771 RAD 0.00617284 - txt002 - SPHERE CENTER -0.223214 0.183484 0.72457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.250271 0.162129 0.730157 RAD 0.00617284 - txt002 - SPHERE CENTER -0.243729 0.177671 0.71212 RAD 0.00617284 - txt002 - SPHERE CENTER -0.248714 0.154064 0.706872 RAD 0.00617284 - txt002 - SPHERE CENTER -0.234741 0.144336 0.737359 RAD 0.00617284 - txt002 - SPHERE CENTER -0.233184 0.13627 0.714074 RAD 0.00617284 - txt002 - SPHERE CENTER -0.212668 0.142084 0.726523 RAD 0.00617284 - txt002 - SPHERE CENTER -0.129201 0.143787 0.689081 RAD 0.0185185 - txt002 - SPHERE CENTER -0.105335 0.14887 0.692853 RAD 0.00617284 - txt002 - SPHERE CENTER -0.115741 0.153943 0.671044 RAD 0.00617284 - txt002 - SPHERE CENTER -0.121723 0.167242 0.690969 RAD 0.00617284 - txt002 - SPHERE CENTER -0.118795 0.138714 0.71089 RAD 0.00617284 - txt002 - SPHERE CENTER -0.135183 0.157086 0.709006 RAD 0.00617284 - txt002 - SPHERE CENTER -0.142661 0.13363 0.707118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.112813 0.125414 0.690965 RAD 0.00617284 - txt002 - SPHERE CENTER -0.136679 0.120331 0.687193 RAD 0.00617284 - txt002 - SPHERE CENTER -0.123219 0.130487 0.669156 RAD 0.00617284 - txt002 - SPHERE CENTER -0.190359 0.102131 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER -0.179968 0.0897843 0.711167 RAD 0.00617284 - txt002 - SPHERE CENTER -0.166467 0.105492 0.697727 RAD 0.00617284 - txt002 - SPHERE CENTER -0.183804 0.114103 0.713055 RAD 0.00617284 - txt002 - SPHERE CENTER -0.20386 0.0864233 0.705919 RAD 0.00617284 - txt002 - SPHERE CENTER -0.207696 0.110742 0.707807 RAD 0.00617284 - txt002 - SPHERE CENTER -0.214251 0.0987702 0.687231 RAD 0.00617284 - txt002 - SPHERE CENTER -0.186523 0.0778128 0.690591 RAD 0.00617284 - txt002 - SPHERE CENTER -0.196914 0.0901597 0.671903 RAD 0.00617284 - txt002 - SPHERE CENTER -0.173022 0.0935207 0.677151 RAD 0.00617284 - txt002 - SPHERE CENTER -0.153407 0.108529 0.6286 RAD 0.0185185 - txt002 - SPHERE CENTER -0.130858 0.0995811 0.624003 RAD 0.00617284 - txt002 - SPHERE CENTER -0.135326 0.123725 0.621398 RAD 0.00617284 - txt002 - SPHERE CENTER -0.134736 0.113639 0.643928 RAD 0.00617284 - txt002 - SPHERE CENTER -0.148938 0.0843858 0.631205 RAD 0.00617284 - txt002 - SPHERE CENTER -0.152816 0.0984435 0.65113 RAD 0.00617284 - txt002 - SPHERE CENTER -0.171487 0.0933338 0.635801 RAD 0.00617284 - txt002 - SPHERE CENTER -0.149528 0.0944715 0.608675 RAD 0.00617284 - txt002 - SPHERE CENTER -0.172078 0.10342 0.613272 RAD 0.00617284 - txt002 - SPHERE CENTER -0.153997 0.118615 0.60607 RAD 0.00617284 - txt002 - SPHERE CENTER -0.31427 0.31427 0.544331 RAD 0.0555556 - txt002 - SPHERE CENTER -0.277961 0.367156 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.269898 0.374298 0.485076 RAD 0.00617284 - txt002 - SPHERE CENTER -0.270045 0.350338 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER -0.291334 0.362218 0.487134 RAD 0.00617284 - txt002 - SPHERE CENTER -0.277815 0.391115 0.501329 RAD 0.00617284 - txt002 - SPHERE CENTER -0.299251 0.379036 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.285878 0.383973 0.523547 RAD 0.00617284 - txt002 - SPHERE CENTER -0.256525 0.379235 0.505236 RAD 0.00617284 - txt002 - SPHERE CENTER -0.264588 0.372093 0.527454 RAD 0.00617284 - txt002 - SPHERE CENTER -0.256671 0.355276 0.511201 RAD 0.00617284 - txt002 - SPHERE CENTER -0.252306 0.297666 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.235688 0.305995 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER -0.259438 0.312359 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.245915 0.321516 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.228556 0.291303 0.509559 RAD 0.00617284 - txt002 - SPHERE CENTER -0.238783 0.306824 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.245173 0.282974 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.242079 0.282145 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER -0.258696 0.273816 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.265828 0.288509 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.31427 0.31427 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER -0.32435 0.32435 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER -0.33812 0.32066 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.32066 0.33812 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.3005 0.317959 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER -0.29681 0.331729 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.29042 0.307879 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.317959 0.3005 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER -0.307879 0.29042 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.331729 0.29681 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.339925 0.383759 0.544331 RAD 0.0185185 - txt002 - SPHERE CENTER -0.334762 0.407156 0.538366 RAD 0.00617284 - txt002 - SPHERE CENTER -0.31686 0.392275 0.546597 RAD 0.00617284 - txt002 - SPHERE CENTER -0.326552 0.388696 0.524171 RAD 0.00617284 - txt002 - SPHERE CENTER -0.357827 0.39864 0.536101 RAD 0.00617284 - txt002 - SPHERE CENTER -0.349618 0.380181 0.521905 RAD 0.00617284 - txt002 - SPHERE CENTER -0.362991 0.375243 0.542066 RAD 0.00617284 - txt002 - SPHERE CENTER -0.348135 0.402218 0.558526 RAD 0.00617284 - txt002 - SPHERE CENTER -0.353299 0.378821 0.564491 RAD 0.00617284 - txt002 - SPHERE CENTER -0.330233 0.387337 0.566757 RAD 0.00617284 - txt002 - SPHERE CENTER -0.376234 0.330873 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.393346 0.348239 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.383366 0.345565 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.369843 0.354723 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.386213 0.333547 0.484868 RAD 0.00617284 - txt002 - SPHERE CENTER -0.362711 0.340031 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.369102 0.316181 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399736 0.324389 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.382624 0.307023 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.389757 0.321715 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.376234 0.330873 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.386461 0.346394 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER -0.362711 0.340031 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.369843 0.354723 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399983 0.337237 0.579103 RAD 0.00617284 - txt002 - SPHERE CENTER -0.383366 0.345565 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.389757 0.321715 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.392851 0.322544 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER -0.382624 0.307023 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.369102 0.316181 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.277961 0.367156 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.261966 0.385852 0.57931 RAD 0.00617284 - txt002 - SPHERE CENTER -0.259422 0.36581 0.565115 RAD 0.00617284 - txt002 - SPHERE CENTER -0.278159 0.38141 0.561208 RAD 0.00617284 - txt002 - SPHERE CENTER -0.280504 0.387198 0.595564 RAD 0.00617284 - txt002 - SPHERE CENTER -0.296698 0.382755 0.577461 RAD 0.00617284 - txt002 - SPHERE CENTER -0.2965 0.368501 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER -0.261768 0.371598 0.599471 RAD 0.00617284 - txt002 - SPHERE CENTER -0.277764 0.352901 0.601529 RAD 0.00617284 - txt002 - SPHERE CENTER -0.259225 0.351556 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER -0.31427 0.31427 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER -0.304189 0.32435 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER -0.29042 0.32066 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.307879 0.33812 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.328039 0.317959 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER -0.331729 0.331729 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.33812 0.307879 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.31058 0.3005 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER -0.32066 0.29042 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.29681 0.29681 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.252306 0.297666 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.228803 0.30415 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER -0.238783 0.306824 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.245915 0.321516 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.242326 0.294992 0.603794 RAD 0.00617284 - txt002 - SPHERE CENTER -0.259438 0.312359 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.265828 0.288509 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.235194 0.2803 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER -0.258696 0.273816 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.245173 0.282974 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.574159 0.153845 0.618405 RAD 0.0555556 - txt002 - SPHERE CENTER -0.612768 0.202534 0.658726 RAD 0.0185185 - txt002 - SPHERE CENTER -0.612732 0.225282 0.668328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.591695 0.212428 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER -0.60221 0.22113 0.64638 RAD 0.00617284 - txt002 - SPHERE CENTER -0.633805 0.215388 0.660098 RAD 0.00617284 - txt002 - SPHERE CENTER -0.623283 0.211236 0.63815 RAD 0.00617284 - txt002 - SPHERE CENTER -0.63384 0.192641 0.650495 RAD 0.00617284 - txt002 - SPHERE CENTER -0.62329 0.206686 0.680674 RAD 0.00617284 - txt002 - SPHERE CENTER -0.623325 0.183939 0.671072 RAD 0.00617284 - txt002 - SPHERE CENTER -0.602253 0.193832 0.679302 RAD 0.00617284 - txt002 - SPHERE CENTER -0.543919 0.184086 0.678886 RAD 0.0185185 - txt002 - SPHERE CENTER -0.527458 0.200547 0.687117 RAD 0.00617284 - txt002 - SPHERE CENTER -0.522843 0.187702 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER -0.540303 0.205161 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER -0.548533 0.196931 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER -0.561378 0.201546 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER -0.564994 0.18047 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER -0.531074 0.179472 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER -0.547535 0.163011 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER -0.526459 0.166627 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER -0.554987 0.225396 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER -0.542885 0.243024 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER -0.534333 0.219861 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER -0.554987 0.225396 0.593714 RAD 0.00617284 - txt002 - SPHERE CENTER -0.563539 0.248559 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.575642 0.23093 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER -0.575642 0.23093 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER -0.542885 0.243024 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER -0.554987 0.225396 0.643096 RAD 0.00617284 - txt002 - SPHERE CENTER -0.534333 0.219861 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER -0.643008 0.172294 0.598245 RAD 0.0185185 - txt002 - SPHERE CENTER -0.660425 0.189742 0.599616 RAD 0.00617284 - txt002 - SPHERE CENTER -0.645434 0.185725 0.618821 RAD 0.00617284 - txt002 - SPHERE CENTER -0.636618 0.196144 0.598245 RAD 0.00617284 - txt002 - SPHERE CENTER -0.657999 0.17631 0.57904 RAD 0.00617284 - txt002 - SPHERE CENTER -0.634191 0.182712 0.577669 RAD 0.00617284 - txt002 - SPHERE CENTER -0.640582 0.158862 0.577669 RAD 0.00617284 - txt002 - SPHERE CENTER -0.666816 0.165892 0.599616 RAD 0.00617284 - txt002 - SPHERE CENTER -0.649399 0.148444 0.598245 RAD 0.00617284 - txt002 - SPHERE CENTER -0.651825 0.161875 0.618821 RAD 0.00617284 - txt002 - SPHERE CENTER -0.585228 0.195155 0.557924 RAD 0.0185185 - txt002 - SPHERE CENTER -0.574809 0.203972 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER -0.561378 0.201546 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER -0.568784 0.181486 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER -0.598659 0.197581 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER -0.592634 0.175095 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER -0.609078 0.188764 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER -0.591253 0.217641 0.549693 RAD 0.00617284 - txt002 - SPHERE CENTER -0.601672 0.208824 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER -0.577822 0.215215 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER -0.6044 0.123605 0.557924 RAD 0.0185185 - txt002 - SPHERE CENTER -0.620861 0.107144 0.549693 RAD 0.00617284 - txt002 - SPHERE CENTER -0.608016 0.102529 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER -0.625475 0.119989 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER -0.617245 0.128219 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER -0.621859 0.141064 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER -0.600784 0.14468 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER -0.599785 0.11076 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER -0.583324 0.127221 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER -0.58694 0.106145 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER -0.631939 0.130984 0.658726 RAD 0.0185185 - txt002 - SPHERE CENTER -0.643128 0.132649 0.680674 RAD 0.00617284 - txt002 - SPHERE CENTER -0.618482 0.133263 0.679302 RAD 0.00617284 - txt002 - SPHERE CENTER -0.631785 0.152367 0.671072 RAD 0.00617284 - txt002 - SPHERE CENTER -0.656585 0.130371 0.660098 RAD 0.00617284 - txt002 - SPHERE CENTER -0.645242 0.150088 0.650495 RAD 0.00617284 - txt002 - SPHERE CENTER -0.645397 0.128706 0.63815 RAD 0.00617284 - txt002 - SPHERE CENTER -0.643283 0.111266 0.668328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.632094 0.109601 0.64638 RAD 0.00617284 - txt002 - SPHERE CENTER -0.618637 0.11188 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER -0.593331 0.0822954 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER -0.591664 0.0609772 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER -0.572676 0.076761 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER -0.593331 0.0822954 0.643096 RAD 0.00617284 - txt002 - SPHERE CENTER -0.612319 0.0665116 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.613986 0.0878298 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER -0.613986 0.0878298 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER -0.591664 0.0609772 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER -0.593331 0.0822954 0.593714 RAD 0.00617284 - txt002 - SPHERE CENTER -0.572676 0.076761 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER -0.56309 0.112536 0.678886 RAD 0.0185185 - txt002 - SPHERE CENTER -0.549659 0.11011 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER -0.53924 0.118927 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555684 0.132596 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER -0.573509 0.103719 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER -0.579534 0.126205 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER -0.58694 0.106145 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER -0.557065 0.09005 0.687117 RAD 0.00617284 - txt002 - SPHERE CENTER -0.570497 0.0924762 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER -0.546646 0.0988668 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER -0.494808 0.247614 0.43322 RAD 0.0555556 - txt002 - SPHERE CENTER -0.494287 0.313607 0.399581 RAD 0.0185185 - txt002 - SPHERE CENTER -0.484182 0.326876 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER -0.470513 0.310432 0.39372 RAD 0.00617284 - txt002 - SPHERE CENTER -0.488171 0.302705 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER -0.507957 0.330051 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.511946 0.305881 0.384149 RAD 0.00617284 - txt002 - SPHERE CENTER -0.518062 0.316783 0.405442 RAD 0.00617284 - txt002 - SPHERE CENTER -0.490299 0.337778 0.402668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.500404 0.324509 0.420874 RAD 0.00617284 - txt002 - SPHERE CENTER -0.476629 0.321334 0.415013 RAD 0.00617284 - txt002 - SPHERE CENTER -0.452978 0.302539 0.460062 RAD 0.0185185 - txt002 - SPHERE CENTER -0.436971 0.320401 0.454201 RAD 0.00617284 - txt002 - SPHERE CENTER -0.436675 0.29902 0.441856 RAD 0.00617284 - txt002 - SPHERE CENTER -0.455413 0.3148 0.438769 RAD 0.00617284 - txt002 - SPHERE CENTER -0.453274 0.32392 0.472408 RAD 0.00617284 - txt002 - SPHERE CENTER -0.471717 0.318318 0.456976 RAD 0.00617284 - txt002 - SPHERE CENTER -0.469281 0.306057 0.478269 RAD 0.00617284 - txt002 - SPHERE CENTER -0.434535 0.30814 0.475494 RAD 0.00617284 - txt002 - SPHERE CENTER -0.450543 0.290278 0.481355 RAD 0.00617284 - txt002 - SPHERE CENTER -0.434239 0.286759 0.463149 RAD 0.00617284 - txt002 - SPHERE CENTER -0.434629 0.269833 0.396183 RAD 0.0185185 - txt002 - SPHERE CENTER -0.426389 0.279233 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER -0.445377 0.263449 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER -0.448298 0.286276 0.383837 RAD 0.00617284 - txt002 - SPHERE CENTER -0.415641 0.285616 0.396183 RAD 0.00617284 - txt002 - SPHERE CENTER -0.43755 0.29266 0.40513 RAD 0.00617284 - txt002 - SPHERE CENTER -0.42388 0.276216 0.417476 RAD 0.00617284 - txt002 - SPHERE CENTER -0.41272 0.262789 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.420959 0.253389 0.408529 RAD 0.00617284 - txt002 - SPHERE CENTER -0.431707 0.247006 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.536117 0.258683 0.372739 RAD 0.0185185 - txt002 - SPHERE CENTER -0.549787 0.275127 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER -0.549787 0.275127 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER -0.529727 0.282533 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER -0.536117 0.258683 0.348047 RAD 0.00617284 - txt002 - SPHERE CENTER -0.516058 0.266089 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER -0.522448 0.242239 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER -0.556177 0.251277 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER -0.542508 0.234833 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER -0.556177 0.251277 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER -0.476459 0.214908 0.369341 RAD 0.0185185 - txt002 - SPHERE CENTER -0.457868 0.209819 0.353908 RAD 0.00617284 - txt002 - SPHERE CENTER -0.458164 0.2312 0.366254 RAD 0.00617284 - txt002 - SPHERE CENTER -0.453963 0.210053 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER -0.476163 0.193527 0.356995 RAD 0.00617284 - txt002 - SPHERE CENTER -0.472258 0.193761 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER -0.494753 0.198616 0.372427 RAD 0.00617284 - txt002 - SPHERE CENTER -0.480363 0.214674 0.344961 RAD 0.00617284 - txt002 - SPHERE CENTER -0.498954 0.219763 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER -0.480659 0.236055 0.357307 RAD 0.00617284 - txt002 - SPHERE CENTER -0.536638 0.19269 0.406378 RAD 0.0185185 - txt002 - SPHERE CENTER -0.549603 0.17251 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER -0.528912 0.177908 0.424584 RAD 0.00617284 - txt002 - SPHERE CENTER -0.549105 0.191778 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER -0.557329 0.187292 0.394032 RAD 0.00617284 - txt002 - SPHERE CENTER -0.556831 0.20656 0.409464 RAD 0.00617284 - txt002 - SPHERE CENTER -0.544363 0.207471 0.388171 RAD 0.00617284 - txt002 - SPHERE CENTER -0.537136 0.173421 0.390945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.524171 0.193601 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER -0.516445 0.178819 0.403291 RAD 0.00617284 - txt002 - SPHERE CENTER -0.554467 0.291389 0.436618 RAD 0.0185185 - txt002 - SPHERE CENTER -0.562288 0.314604 0.439705 RAD 0.00617284 - txt002 - SPHERE CENTER -0.542501 0.306499 0.45205 RAD 0.00617284 - txt002 - SPHERE CENTER -0.541186 0.310183 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER -0.574255 0.299494 0.424272 RAD 0.00617284 - txt002 - SPHERE CENTER -0.553152 0.295073 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER -0.566433 0.276279 0.421186 RAD 0.00617284 - txt002 - SPHERE CENTER -0.575569 0.29581 0.448652 RAD 0.00617284 - txt002 - SPHERE CENTER -0.567748 0.272595 0.445566 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555781 0.287705 0.460998 RAD 0.00617284 - txt002 - SPHERE CENTER -0.554987 0.225396 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER -0.567359 0.227186 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER -0.54267 0.227528 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555283 0.246777 0.482603 RAD 0.00617284 - txt002 - SPHERE CENTER -0.579676 0.225054 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.567601 0.244644 0.46131 RAD 0.00617284 - txt002 - SPHERE CENTER -0.567305 0.223263 0.448964 RAD 0.00617284 - txt002 - SPHERE CENTER -0.567063 0.205805 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER -0.554691 0.204014 0.457911 RAD 0.00617284 - txt002 - SPHERE CENTER -0.542374 0.206147 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER -0.513157 0.28032 0.497099 RAD 0.0185185 - txt002 - SPHERE CENTER -0.507811 0.298839 0.512531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.489718 0.287442 0.500186 RAD 0.00617284 - txt002 - SPHERE CENTER -0.505577 0.302049 0.488152 RAD 0.00617284 - txt002 - SPHERE CENTER -0.531251 0.291716 0.509445 RAD 0.00617284 - txt002 - SPHERE CENTER -0.529016 0.294927 0.485065 RAD 0.00617284 - txt002 - SPHERE CENTER -0.536597 0.273198 0.494013 RAD 0.00617284 - txt002 - SPHERE CENTER -0.515392 0.27711 0.521479 RAD 0.00617284 - txt002 - SPHERE CENTER -0.520738 0.258591 0.506047 RAD 0.00617284 - txt002 - SPHERE CENTER -0.497299 0.265714 0.509133 RAD 0.00617284 - txt002 - SPHERE CENTER -0.552323 0.0329639 0.43322 RAD 0.0555556 - txt002 - SPHERE CENTER -0.625877 0.0248832 0.436618 RAD 0.0185185 - txt002 - SPHERE CENTER -0.646362 0.0316054 0.448652 RAD 0.00617284 - txt002 - SPHERE CENTER -0.625173 0.0287309 0.460998 RAD 0.00617284 - txt002 - SPHERE CENTER -0.627981 0.0478 0.445566 RAD 0.00617284 - txt002 - SPHERE CENTER -0.647066 0.0277577 0.424272 RAD 0.00617284 - txt002 - SPHERE CENTER -0.628685 0.0439523 0.421186 RAD 0.00617284 - txt002 - SPHERE CENTER -0.62658 0.0210355 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER -0.644258 0.00868865 0.439705 RAD 0.00617284 - txt002 - SPHERE CENTER -0.623773 0.00196644 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER -0.623069 0.00581415 0.45205 RAD 0.00617284 - txt002 - SPHERE CENTER -0.584567 0.0138144 0.497099 RAD 0.0185185 - txt002 - SPHERE CENTER -0.584898 0.0177119 0.521479 RAD 0.00617284 - txt002 - SPHERE CENTER -0.56353 0.0185345 0.509133 RAD 0.00617284 - txt002 - SPHERE CENTER -0.580268 0.0364224 0.506047 RAD 0.00617284 - txt002 - SPHERE CENTER -0.605935 0.0129918 0.509445 RAD 0.00617284 - txt002 - SPHERE CENTER -0.601305 0.0317022 0.494013 RAD 0.00617284 - txt002 - SPHERE CENTER -0.605605 0.00909422 0.485065 RAD 0.00617284 - txt002 - SPHERE CENTER -0.589197 -0.00489609 0.512531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.588867 -0.00879364 0.488152 RAD 0.00617284 - txt002 - SPHERE CENTER -0.567829 -0.00407348 0.500186 RAD 0.00617284 - txt002 - SPHERE CENTER -0.593331 0.0822954 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER -0.593994 0.105299 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER -0.572783 0.0926585 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER -0.582384 0.100664 0.457911 RAD 0.00617284 - txt002 - SPHERE CENTER -0.614541 0.0949359 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.602932 0.090301 0.448964 RAD 0.00617284 - txt002 - SPHERE CENTER -0.613879 0.0719323 0.46131 RAD 0.00617284 - txt002 - SPHERE CENTER -0.604941 0.0869303 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER -0.604278 0.0639267 0.482603 RAD 0.00617284 - txt002 - SPHERE CENTER -0.58373 0.0742898 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER -0.593633 0.0440327 0.372739 RAD 0.0185185 - txt002 - SPHERE CENTER -0.607302 0.0604766 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER -0.607302 0.0604766 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER -0.587242 0.0678827 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER -0.593633 0.0440327 0.348047 RAD 0.00617284 - txt002 - SPHERE CENTER -0.573573 0.0514389 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER -0.579964 0.0275889 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER -0.613693 0.0366265 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER -0.600023 0.0201827 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER -0.613693 0.0366265 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER -0.561087 0.101445 0.406378 RAD 0.0185185 - txt002 - SPHERE CENTER -0.551884 0.118381 0.390945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.536664 0.103361 0.403291 RAD 0.00617284 - txt002 - SPHERE CENTER -0.550745 0.0944221 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER -0.576307 0.116465 0.394032 RAD 0.00617284 - txt002 - SPHERE CENTER -0.575168 0.0925065 0.388171 RAD 0.00617284 - txt002 - SPHERE CENTER -0.58551 0.0995293 0.409464 RAD 0.00617284 - txt002 - SPHERE CENTER -0.562225 0.125404 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER -0.571428 0.108468 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER -0.547006 0.110383 0.424584 RAD 0.00617284 - txt002 - SPHERE CENTER -0.520079 0.0521134 0.369341 RAD 0.0185185 - txt002 - SPHERE CENTER -0.523344 0.0542684 0.344961 RAD 0.00617284 - txt002 - SPHERE CENTER -0.534291 0.0358996 0.357307 RAD 0.00617284 - txt002 - SPHERE CENTER -0.541988 0.0591566 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER -0.509132 0.0704822 0.356995 RAD 0.00617284 - txt002 - SPHERE CENTER -0.527777 0.0753703 0.372427 RAD 0.00617284 - txt002 - SPHERE CENTER -0.505868 0.0683272 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER -0.501435 0.0472252 0.353908 RAD 0.00617284 - txt002 - SPHERE CENTER -0.49817 0.0450702 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER -0.512382 0.0288565 0.366254 RAD 0.00617284 - txt002 - SPHERE CENTER -0.584869 -0.0244483 0.399581 RAD 0.0185185 - txt002 - SPHERE CENTER -0.5935 -0.0473753 0.402668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.57344 -0.0399691 0.415013 RAD 0.00617284 - txt002 - SPHERE CENTER -0.595617 -0.0308315 0.420874 RAD 0.00617284 - txt002 - SPHERE CENTER -0.604929 -0.0318545 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.607046 -0.0153107 0.405442 RAD 0.00617284 - txt002 - SPHERE CENTER -0.596298 -0.00892756 0.384149 RAD 0.00617284 - txt002 - SPHERE CENTER -0.582752 -0.0409921 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER -0.574121 -0.0180651 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER -0.562692 -0.0335859 0.39372 RAD 0.00617284 - txt002 - SPHERE CENTER -0.511316 -0.0163676 0.396183 RAD 0.0185185 - txt002 - SPHERE CENTER -0.48882 -0.0212225 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.497372 0.00194055 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.491256 -0.00896145 0.408529 RAD 0.00617284 - txt002 - SPHERE CENTER -0.502764 -0.0395307 0.396183 RAD 0.00617284 - txt002 - SPHERE CENTER -0.505199 -0.0272696 0.417476 RAD 0.00617284 - txt002 - SPHERE CENTER -0.525259 -0.0346758 0.40513 RAD 0.00617284 - txt002 - SPHERE CENTER -0.50888 -0.0286287 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER -0.531375 -0.0237738 0.383837 RAD 0.00617284 - txt002 - SPHERE CENTER -0.517432 -0.00546563 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER -0.54356 -0.0355172 0.460062 RAD 0.0185185 - txt002 - SPHERE CENTER -0.530389 -0.0495897 0.475494 RAD 0.00617284 - txt002 - SPHERE CENTER -0.519442 -0.031221 0.463149 RAD 0.00617284 - txt002 - SPHERE CENTER -0.53532 -0.0261165 0.481355 RAD 0.00617284 - txt002 - SPHERE CENTER -0.554507 -0.0538859 0.472408 RAD 0.00617284 - txt002 - SPHERE CENTER -0.559438 -0.0304127 0.478269 RAD 0.00617284 - txt002 - SPHERE CENTER -0.567678 -0.0398133 0.456976 RAD 0.00617284 - txt002 - SPHERE CENTER -0.538628 -0.0589904 0.454201 RAD 0.00617284 - txt002 - SPHERE CENTER -0.551799 -0.0449178 0.438769 RAD 0.00617284 - txt002 - SPHERE CENTER -0.527681 -0.0406217 0.441856 RAD 0.00617284 - txt002 - SPHERE CENTER -0.451136 0.0058509 0.729516 RAD 0.0555556 - txt002 - SPHERE CENTER -0.447081 0.0051487 0.803476 RAD 0.0185185 - txt002 - SPHERE CENTER -0.435909 0.01504 0.823149 RAD 0.00617284 - txt002 - SPHERE CENTER -0.423265 0.0115452 0.802231 RAD 0.00617284 - txt002 - SPHERE CENTER -0.440694 0.0289993 0.803352 RAD 0.00617284 - txt002 - SPHERE CENTER -0.459725 0.00864346 0.824394 RAD 0.00617284 - txt002 - SPHERE CENTER -0.46451 0.0226028 0.804597 RAD 0.00617284 - txt002 - SPHERE CENTER -0.470897 -0.0012478 0.804721 RAD 0.00617284 - txt002 - SPHERE CENTER -0.442297 -0.00881065 0.823273 RAD 0.00617284 - txt002 - SPHERE CENTER -0.453468 -0.0187019 0.8036 RAD 0.00617284 - txt002 - SPHERE CENTER -0.429652 -0.0123054 0.802355 RAD 0.00617284 - txt002 - SPHERE CENTER -0.386138 0.0172804 0.763155 RAD 0.0185185 - txt002 - SPHERE CENTER -0.364644 0.0293677 0.76191 RAD 0.00617284 - txt002 - SPHERE CENTER -0.375512 0.0213457 0.741241 RAD 0.00617284 - txt002 - SPHERE CENTER -0.385352 0.0401449 0.753867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.37527 0.0253024 0.783824 RAD 0.00617284 - txt002 - SPHERE CENTER -0.395978 0.0360796 0.775781 RAD 0.00617284 - txt002 - SPHERE CENTER -0.396764 0.0132151 0.785069 RAD 0.00617284 - txt002 - SPHERE CENTER -0.36543 0.0065032 0.771198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.386924 -0.00558411 0.772443 RAD 0.00617284 - txt002 - SPHERE CENTER -0.376298 -0.00151881 0.750529 RAD 0.00617284 - txt002 - SPHERE CENTER -0.439178 0.0688765 0.766553 RAD 0.0185185 - txt002 - SPHERE CENTER -0.426942 0.0903221 0.766429 RAD 0.00617284 - txt002 - SPHERE CENTER -0.416328 0.0699989 0.757266 RAD 0.00617284 - txt002 - SPHERE CENTER -0.435083 0.0806307 0.745229 RAD 0.00617284 - txt002 - SPHERE CENTER -0.449792 0.0891998 0.775717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.457933 0.0795084 0.754517 RAD 0.00617284 - txt002 - SPHERE CENTER -0.462029 0.0677542 0.775841 RAD 0.00617284 - txt002 - SPHERE CENTER -0.431037 0.078568 0.787754 RAD 0.00617284 - txt002 - SPHERE CENTER -0.443274 0.0571224 0.787878 RAD 0.00617284 - txt002 - SPHERE CENTER -0.420423 0.0582447 0.77859 RAD 0.00617284 - txt002 - SPHERE CENTER -0.512079 -0.00628079 0.769837 RAD 0.0185185 - txt002 - SPHERE CENTER -0.523883 -0.000557006 0.790755 RAD 0.00617284 - txt002 - SPHERE CENTER -0.49924 -0.00208214 0.790506 RAD 0.00617284 - txt002 - SPHERE CENTER -0.51057 0.0165974 0.779001 RAD 0.00617284 - txt002 - SPHERE CENTER -0.536722 -0.00475566 0.770086 RAD 0.00617284 - txt002 - SPHERE CENTER -0.523409 0.0123987 0.758332 RAD 0.00617284 - txt002 - SPHERE CENTER -0.524918 -0.0104794 0.749168 RAD 0.00617284 - txt002 - SPHERE CENTER -0.525392 -0.0234352 0.781591 RAD 0.00617284 - txt002 - SPHERE CENTER -0.513588 -0.029159 0.760673 RAD 0.00617284 - txt002 - SPHERE CENTER -0.500749 -0.0249603 0.781342 RAD 0.00617284 - txt002 - SPHERE CENTER -0.504176 0.0574471 0.732914 RAD 0.0185185 - txt002 - SPHERE CENTER -0.508666 0.0817008 0.734036 RAD 0.00617284 - txt002 - SPHERE CENTER -0.488971 0.0722467 0.745541 RAD 0.00617284 - txt002 - SPHERE CENTER -0.489545 0.0732807 0.720878 RAD 0.00617284 - txt002 - SPHERE CENTER -0.523872 0.0669012 0.72141 RAD 0.00617284 - txt002 - SPHERE CENTER -0.504751 0.058481 0.708251 RAD 0.00617284 - txt002 - SPHERE CENTER -0.519382 0.0426474 0.720288 RAD 0.00617284 - txt002 - SPHERE CENTER -0.523298 0.0658672 0.746073 RAD 0.00617284 - txt002 - SPHERE CENTER -0.518808 0.0416134 0.744951 RAD 0.00617284 - txt002 - SPHERE CENTER -0.503602 0.0564131 0.757577 RAD 0.00617284 - txt002 - SPHERE CENTER -0.516134 -0.00557859 0.695877 RAD 0.0185185 - txt002 - SPHERE CENTER -0.540463 -0.00154892 0.697123 RAD 0.00617284 - txt002 - SPHERE CENTER -0.52751 -0.00538221 0.717791 RAD 0.00617284 - txt002 - SPHERE CENTER -0.524673 0.0156462 0.705165 RAD 0.00617284 - txt002 - SPHERE CENTER -0.529087 -0.00174531 0.675209 RAD 0.00617284 - txt002 - SPHERE CENTER -0.513298 0.0154498 0.683251 RAD 0.00617284 - txt002 - SPHERE CENTER -0.504759 -0.00577498 0.673964 RAD 0.00617284 - txt002 - SPHERE CENTER -0.531924 -0.0227737 0.687835 RAD 0.00617284 - txt002 - SPHERE CENTER -0.507596 -0.0268034 0.68659 RAD 0.00617284 - txt002 - SPHERE CENTER -0.518971 -0.026607 0.708504 RAD 0.00617284 - txt002 - SPHERE CENTER -0.459039 -0.0578769 0.766439 RAD 0.0185185 - txt002 - SPHERE CENTER -0.451803 -0.0707378 0.786236 RAD 0.00617284 - txt002 - SPHERE CENTER -0.435761 -0.0561039 0.774481 RAD 0.00617284 - txt002 - SPHERE CENTER -0.454158 -0.0461991 0.787639 RAD 0.00617284 - txt002 - SPHERE CENTER -0.475081 -0.0725109 0.778193 RAD 0.00617284 - txt002 - SPHERE CENTER -0.477435 -0.0479721 0.779597 RAD 0.00617284 - txt002 - SPHERE CENTER -0.482316 -0.05965 0.758396 RAD 0.00617284 - txt002 - SPHERE CENTER -0.456685 -0.0824157 0.765035 RAD 0.00617284 - txt002 - SPHERE CENTER -0.46392 -0.0695548 0.745238 RAD 0.00617284 - txt002 - SPHERE CENTER -0.440643 -0.0677817 0.753281 RAD 0.00617284 - txt002 - SPHERE CENTER -0.463094 -0.0571747 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER -0.459563 -0.081612 0.692603 RAD 0.00617284 - txt002 - SPHERE CENTER -0.442243 -0.0665888 0.701767 RAD 0.00617284 - txt002 - SPHERE CENTER -0.463589 -0.0696122 0.713804 RAD 0.00617284 - txt002 - SPHERE CENTER -0.480415 -0.0721979 0.683315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.48444 -0.0601982 0.704516 RAD 0.00617284 - txt002 - SPHERE CENTER -0.483946 -0.0477607 0.683192 RAD 0.00617284 - txt002 - SPHERE CENTER -0.459069 -0.0691745 0.671279 RAD 0.00617284 - txt002 - SPHERE CENTER -0.4626 -0.0447373 0.671155 RAD 0.00617284 - txt002 - SPHERE CENTER -0.441749 -0.0541513 0.680442 RAD 0.00617284 - txt002 - SPHERE CENTER -0.398096 -0.0457452 0.726118 RAD 0.0185185 - txt002 - SPHERE CENTER -0.373728 -0.0495643 0.724997 RAD 0.00617284 - txt002 - SPHERE CENTER -0.383722 -0.030137 0.713492 RAD 0.00617284 - txt002 - SPHERE CENTER -0.382672 -0.0306825 0.738155 RAD 0.00617284 - txt002 - SPHERE CENTER -0.388102 -0.0651725 0.737623 RAD 0.00617284 - txt002 - SPHERE CENTER -0.397047 -0.0462908 0.750781 RAD 0.00617284 - txt002 - SPHERE CENTER -0.41247 -0.0613535 0.738744 RAD 0.00617284 - txt002 - SPHERE CENTER -0.389151 -0.064627 0.71296 RAD 0.00617284 - txt002 - SPHERE CENTER -0.41352 -0.060808 0.714081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399146 -0.0451997 0.701455 RAD 0.00617284 - txt002 - SPHERE CENTER -0.4293 -0.115031 0.544331 RAD 0.0555556 - txt002 - SPHERE CENTER -0.424299 -0.178985 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.412497 -0.190929 0.599471 RAD 0.00617284 - txt002 - SPHERE CENTER -0.400273 -0.174844 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER -0.417001 -0.16674 0.601529 RAD 0.00617284 - txt002 - SPHERE CENTER -0.436523 -0.195071 0.595564 RAD 0.00617284 - txt002 - SPHERE CENTER -0.441027 -0.170881 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER -0.448325 -0.183127 0.577461 RAD 0.00617284 - txt002 - SPHERE CENTER -0.419795 -0.203175 0.57931 RAD 0.00617284 - txt002 - SPHERE CENTER -0.431597 -0.191231 0.561208 RAD 0.00617284 - txt002 - SPHERE CENTER -0.407571 -0.18709 0.565115 RAD 0.00617284 - txt002 - SPHERE CENTER -0.367336 -0.131634 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.343834 -0.12515 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER -0.353814 -0.122476 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.360946 -0.107784 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.357357 -0.134308 0.603794 RAD 0.00617284 - txt002 - SPHERE CENTER -0.374468 -0.116942 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.380859 -0.140792 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.350225 -0.149 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER -0.373727 -0.155484 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.360204 -0.146326 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.4293 -0.115031 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER -0.41922 -0.10495 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER -0.40545 -0.10864 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.42291 -0.0911807 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.44307 -0.111341 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER -0.44676 -0.0975713 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.45315 -0.121421 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.425611 -0.128801 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER -0.435691 -0.138881 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.411841 -0.13249 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.486264 -0.162382 0.544331 RAD 0.0185185 - txt002 - SPHERE CENTER -0.502603 -0.174264 0.558526 RAD 0.00617284 - txt002 - SPHERE CENTER -0.479659 -0.170327 0.566757 RAD 0.00617284 - txt002 - SPHERE CENTER -0.495376 -0.15142 0.564491 RAD 0.00617284 - txt002 - SPHERE CENTER -0.509207 -0.166319 0.536101 RAD 0.00617284 - txt002 - SPHERE CENTER -0.501981 -0.143475 0.542066 RAD 0.00617284 - txt002 - SPHERE CENTER -0.492868 -0.154437 0.521905 RAD 0.00617284 - txt002 - SPHERE CENTER -0.49349 -0.185226 0.538366 RAD 0.00617284 - txt002 - SPHERE CENTER -0.477151 -0.173345 0.524171 RAD 0.00617284 - txt002 - SPHERE CENTER -0.470546 -0.18129 0.546597 RAD 0.00617284 - txt002 - SPHERE CENTER -0.491265 -0.0984274 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.501491 -0.082906 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER -0.477742 -0.0892696 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.484874 -0.0745774 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.515014 -0.0920638 0.579103 RAD 0.00617284 - txt002 - SPHERE CENTER -0.498397 -0.0837352 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.504787 -0.107585 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.507882 -0.106756 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER -0.497655 -0.122277 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.484132 -0.11312 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.491265 -0.0984274 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.508376 -0.0810612 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.498397 -0.0837352 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.484874 -0.0745774 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.501244 -0.0957534 0.484868 RAD 0.00617284 - txt002 - SPHERE CENTER -0.477742 -0.0892696 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.484132 -0.11312 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.514767 -0.104911 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.497655 -0.122277 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.504787 -0.107585 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.424299 -0.178985 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.411775 -0.200165 0.505236 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399922 -0.179342 0.511201 RAD 0.00617284 - txt002 - SPHERE CENTER -0.415187 -0.189948 0.527454 RAD 0.00617284 - txt002 - SPHERE CENTER -0.436152 -0.199808 0.501329 RAD 0.00617284 - txt002 - SPHERE CENTER -0.439564 -0.189591 0.523547 RAD 0.00617284 - txt002 - SPHERE CENTER -0.448677 -0.178629 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.420888 -0.189202 0.485076 RAD 0.00617284 - txt002 - SPHERE CENTER -0.433412 -0.168023 0.487134 RAD 0.00617284 - txt002 - SPHERE CENTER -0.409035 -0.168379 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER -0.4293 -0.115031 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER -0.439381 -0.10495 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER -0.45315 -0.10864 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.435691 -0.0911807 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.415531 -0.111341 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER -0.411841 -0.0975713 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.40545 -0.121421 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.43299 -0.128801 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER -0.42291 -0.138881 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.44676 -0.13249 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.367336 -0.131634 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.350719 -0.123305 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER -0.374468 -0.116942 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.360946 -0.107784 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.343587 -0.137998 0.509559 RAD 0.00617284 - txt002 - SPHERE CENTER -0.353814 -0.122476 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.360204 -0.146326 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.357109 -0.147155 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER -0.373727 -0.155484 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.380859 -0.140792 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.248762 -0.0483751 0.655442 RAD 0.0555556 - txt002 - SPHERE CENTER -0.183785 -0.0599222 0.689081 RAD 0.0185185 - txt002 - SPHERE CENTER -0.160406 -0.0522053 0.690965 RAD 0.00617284 - txt002 - SPHERE CENTER -0.171954 -0.0513956 0.669156 RAD 0.00617284 - txt002 - SPHERE CENTER -0.178533 -0.0358698 0.687193 RAD 0.00617284 - txt002 - SPHERE CENTER -0.172236 -0.0607319 0.71089 RAD 0.00617284 - txt002 - SPHERE CENTER -0.190363 -0.0443964 0.707118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.195615 -0.0684488 0.709006 RAD 0.00617284 - txt002 - SPHERE CENTER -0.165658 -0.0762577 0.692853 RAD 0.00617284 - txt002 - SPHERE CENTER -0.189036 -0.0839747 0.690969 RAD 0.00617284 - txt002 - SPHERE CENTER -0.177206 -0.075448 0.671044 RAD 0.00617284 - txt002 - SPHERE CENTER -0.187119 -0.0172857 0.6286 RAD 0.0185185 - txt002 - SPHERE CENTER -0.176731 -0.00705049 0.608675 RAD 0.00617284 - txt002 - SPHERE CENTER -0.192673 -0.025725 0.60607 RAD 0.00617284 - txt002 - SPHERE CENTER -0.200733 -0.00352517 0.613272 RAD 0.00617284 - txt002 - SPHERE CENTER -0.171177 0.00138875 0.631205 RAD 0.00617284 - txt002 - SPHERE CENTER -0.195179 0.00491406 0.635801 RAD 0.00617284 - txt002 - SPHERE CENTER -0.181564 -0.00884647 0.65113 RAD 0.00617284 - txt002 - SPHERE CENTER -0.163117 -0.020811 0.624003 RAD 0.00617284 - txt002 - SPHERE CENTER -0.173504 -0.0310463 0.643928 RAD 0.00617284 - txt002 - SPHERE CENTER -0.179058 -0.0394855 0.621398 RAD 0.00617284 - txt002 - SPHERE CENTER -0.215921 0.00673113 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER -0.20044 0.0258737 0.690591 RAD 0.00617284 - txt002 - SPHERE CENTER -0.196602 0.00551963 0.677151 RAD 0.00617284 - txt002 - SPHERE CENTER -0.215612 0.0203763 0.671903 RAD 0.00617284 - txt002 - SPHERE CENTER -0.21976 0.0270852 0.705919 RAD 0.00617284 - txt002 - SPHERE CENTER -0.234932 0.0215878 0.687231 RAD 0.00617284 - txt002 - SPHERE CENTER -0.235241 0.00794264 0.707807 RAD 0.00617284 - txt002 - SPHERE CENTER -0.200749 0.0122285 0.711167 RAD 0.00617284 - txt002 - SPHERE CENTER -0.21623 -0.00691403 0.713055 RAD 0.00617284 - txt002 - SPHERE CENTER -0.196911 -0.00812553 0.697727 RAD 0.00617284 - txt002 - SPHERE CENTER -0.245428 -0.0910116 0.715923 RAD 0.0185185 - txt002 - SPHERE CENTER -0.234308 -0.0942304 0.737733 RAD 0.00617284 - txt002 - SPHERE CENTER -0.221514 -0.0854464 0.718528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.238704 -0.0714204 0.729364 RAD 0.00617284 - txt002 - SPHERE CENTER -0.258223 -0.0997955 0.735128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.262619 -0.0769856 0.726759 RAD 0.00617284 - txt002 - SPHERE CENTER -0.269343 -0.0965768 0.713318 RAD 0.00617284 - txt002 - SPHERE CENTER -0.241032 -0.113822 0.724292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.252152 -0.110603 0.702483 RAD 0.00617284 - txt002 - SPHERE CENTER -0.228237 -0.105038 0.705088 RAD 0.00617284 - txt002 - SPHERE CENTER -0.277564 -0.0243582 0.719322 RAD 0.0185185 - txt002 - SPHERE CENTER -0.275459 -0.0076281 0.737359 RAD 0.00617284 - txt002 - SPHERE CENTER -0.255218 -0.0167139 0.726523 RAD 0.00617284 - txt002 - SPHERE CENTER -0.270078 -0.00142185 0.714074 RAD 0.00617284 - txt002 - SPHERE CENTER -0.297806 -0.0152725 0.730157 RAD 0.00617284 - txt002 - SPHERE CENTER -0.292425 -0.00906621 0.706872 RAD 0.00617284 - txt002 - SPHERE CENTER -0.299911 -0.0320026 0.71212 RAD 0.00617284 - txt002 - SPHERE CENTER -0.282946 -0.0305645 0.742607 RAD 0.00617284 - txt002 - SPHERE CENTER -0.285051 -0.0472946 0.72457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.262704 -0.0396503 0.731771 RAD 0.00617284 - txt002 - SPHERE CENTER -0.310405 -0.0794645 0.682285 RAD 0.0185185 - txt002 - SPHERE CENTER -0.324811 -0.0817333 0.702209 RAD 0.00617284 - txt002 - SPHERE CENTER -0.300317 -0.0800146 0.704814 RAD 0.00617284 - txt002 - SPHERE CENTER -0.313378 -0.0603366 0.697613 RAD 0.00617284 - txt002 - SPHERE CENTER -0.334899 -0.0811832 0.67968 RAD 0.00617284 - txt002 - SPHERE CENTER -0.323466 -0.0597864 0.675083 RAD 0.00617284 - txt002 - SPHERE CENTER -0.320493 -0.0789143 0.659755 RAD 0.00617284 - txt002 - SPHERE CENTER -0.321838 -0.100861 0.686881 RAD 0.00617284 - txt002 - SPHERE CENTER -0.307433 -0.0985923 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER -0.297345 -0.0991425 0.689486 RAD 0.00617284 - txt002 - SPHERE CENTER -0.216626 -0.115028 0.652044 RAD 0.0185185 - txt002 - SPHERE CENTER -0.195663 -0.127519 0.655816 RAD 0.00617284 - txt002 - SPHERE CENTER -0.194866 -0.104303 0.647447 RAD 0.00617284 - txt002 - SPHERE CENTER -0.201738 -0.108803 0.670732 RAD 0.00617284 - txt002 - SPHERE CENTER -0.217423 -0.138245 0.660413 RAD 0.00617284 - txt002 - SPHERE CENTER -0.223497 -0.119529 0.675329 RAD 0.00617284 - txt002 - SPHERE CENTER -0.238386 -0.125754 0.656641 RAD 0.00617284 - txt002 - SPHERE CENTER -0.210551 -0.133744 0.637128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.231514 -0.121254 0.633356 RAD 0.00617284 - txt002 - SPHERE CENTER -0.209754 -0.110528 0.628759 RAD 0.00617284 - txt002 - SPHERE CENTER -0.281603 -0.103481 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER -0.291073 -0.126206 0.620293 RAD 0.00617284 - txt002 - SPHERE CENTER -0.271345 -0.119897 0.633733 RAD 0.00617284 - txt002 - SPHERE CENTER -0.293457 -0.110246 0.638981 RAD 0.00617284 - txt002 - SPHERE CENTER -0.301332 -0.10979 0.604965 RAD 0.00617284 - txt002 - SPHERE CENTER -0.303716 -0.0938302 0.623653 RAD 0.00617284 - txt002 - SPHERE CENTER -0.291862 -0.0870656 0.603077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.279219 -0.119442 0.599717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.269749 -0.0967168 0.597829 RAD 0.00617284 - txt002 - SPHERE CENTER -0.25949 -0.113132 0.613157 RAD 0.00617284 - txt002 - SPHERE CENTER -0.21996 -0.0723919 0.591563 RAD 0.0185185 - txt002 - SPHERE CENTER -0.20388 -0.0673141 0.573526 RAD 0.00617284 - txt002 - SPHERE CENTER -0.216456 -0.0490355 0.584361 RAD 0.00617284 - txt002 - SPHERE CENTER -0.198742 -0.0609052 0.596811 RAD 0.00617284 - txt002 - SPHERE CENTER -0.207384 -0.0906706 0.580727 RAD 0.00617284 - txt002 - SPHERE CENTER -0.202246 -0.0842617 0.604012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.223463 -0.0957484 0.598764 RAD 0.00617284 - txt002 - SPHERE CENTER -0.225098 -0.0788008 0.568278 RAD 0.00617284 - txt002 - SPHERE CENTER -0.241177 -0.0838786 0.586315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.237674 -0.0605222 0.579113 RAD 0.00617284 - txt002 - SPHERE CENTER -0.471405 0.471405 1.11022e-16 RAD 0.166667 - txt002 - SPHERE CENTER -0.508983 0.690426 8.51251e-17 RAD 0.0555556 - txt002 - SPHERE CENTER -0.484794 0.755941 -0.0246914 RAD 0.0185185 - txt002 - SPHERE CENTER -0.47411 0.767658 -0.0436186 RAD 0.00617284 - txt002 - SPHERE CENTER -0.467528 0.744501 -0.0381316 RAD 0.00617284 - txt002 - SPHERE CENTER -0.489758 0.749038 -0.0478724 RAD 0.00617284 - txt002 - SPHERE CENTER -0.491377 0.779098 -0.0301783 RAD 0.00617284 - txt002 - SPHERE CENTER -0.507025 0.760478 -0.0344321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.502061 0.767382 -0.0112511 RAD 0.00617284 - txt002 - SPHERE CENTER -0.469146 0.774562 -0.0204376 RAD 0.00617284 - txt002 - SPHERE CENTER -0.47983 0.762845 -0.00151032 RAD 0.00617284 - txt002 - SPHERE CENTER -0.462564 0.751405 -0.0149506 RAD 0.00617284 - txt002 - SPHERE CENTER -0.436283 0.7029 -0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER -0.418941 0.714226 -0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER -0.43889 0.704751 -0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.44101 0.724842 -0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.416335 0.712374 0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER -0.438403 0.722991 0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER -0.433677 0.701048 0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER -0.414215 0.692283 -0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER -0.431557 0.680957 0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.434163 0.682808 -0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER -0.478434 0.695668 -0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER -0.481931 0.703418 -0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER -0.500827 0.694124 -0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER -0.491475 0.716184 -0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER -0.459538 0.704962 -0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER -0.469082 0.717727 -0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.456041 0.697211 -0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER -0.46889 0.682902 -0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER -0.465393 0.675152 -0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER -0.487786 0.673608 -0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER -0.557494 0.743468 -0.0178949 RAD 0.0185185 - txt002 - SPHERE CENTER -0.560084 0.767402 -0.0233819 RAD 0.00617284 - txt002 - SPHERE CENTER -0.543179 0.760285 -0.00685171 RAD 0.00617284 - txt002 - SPHERE CENTER -0.53997 0.755145 -0.0307879 RAD 0.00617284 - txt002 - SPHERE CENTER -0.574398 0.750585 -0.0344251 RAD 0.00617284 - txt002 - SPHERE CENTER -0.554284 0.738328 -0.0418311 RAD 0.00617284 - txt002 - SPHERE CENTER -0.571808 0.726651 -0.0289382 RAD 0.00617284 - txt002 - SPHERE CENTER -0.577608 0.755725 -0.0104889 RAD 0.00617284 - txt002 - SPHERE CENTER -0.575017 0.731791 -0.00500196 RAD 0.00617284 - txt002 - SPHERE CENTER -0.560703 0.748608 0.00604126 RAD 0.00617284 - txt002 - SPHERE CENTER -0.551134 0.683194 -0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER -0.573364 0.687731 -0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.571303 0.682033 -0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER -0.56324 0.703871 -0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER -0.553195 0.688893 -0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER -0.543071 0.705033 -0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER -0.530964 0.684356 -0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER -0.561258 0.667055 -0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER -0.539027 0.662518 -0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER -0.559196 0.661356 -0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER -0.581682 0.677953 0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER -0.601808 0.682851 0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER -0.579842 0.680568 0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.58454 0.700216 0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.603648 0.680237 -0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER -0.58638 0.697602 -0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER -0.583522 0.675339 -0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER -0.59895 0.660588 0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER -0.578824 0.65569 -0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.576984 0.658304 0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER -0.515343 0.7507 0.0425863 RAD 0.0185185 - txt002 - SPHERE CENTER -0.506594 0.773394 0.0468401 RAD 0.00617284 - txt002 - SPHERE CENTER -0.491321 0.755462 0.0394341 RAD 0.00617284 - txt002 - SPHERE CENTER -0.507924 0.764807 0.0237283 RAD 0.00617284 - txt002 - SPHERE CENTER -0.530616 0.768632 0.0499923 RAD 0.00617284 - txt002 - SPHERE CENTER -0.531946 0.760045 0.0268805 RAD 0.00617284 - txt002 - SPHERE CENTER -0.539365 0.745938 0.0457385 RAD 0.00617284 - txt002 - SPHERE CENTER -0.514012 0.759287 0.065698 RAD 0.00617284 - txt002 - SPHERE CENTER -0.522762 0.736593 0.0614442 RAD 0.00617284 - txt002 - SPHERE CENTER -0.49874 0.741355 0.058292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.539531 0.685185 0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER -0.538818 0.693658 0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER -0.517905 0.691194 0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER -0.534075 0.708875 0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER -0.560445 0.687649 0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555702 0.702866 0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.561158 0.679176 0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER -0.544274 0.669969 0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER -0.544988 0.661495 0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER -0.523361 0.667505 0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER -0.466832 0.697658 0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER -0.447385 0.709346 0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.447429 0.703286 0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER -0.46231 0.721188 0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER -0.466788 0.703718 0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER -0.481713 0.71556 0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER -0.486235 0.692031 0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER -0.451907 0.685816 0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER -0.471354 0.674129 0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER -0.451951 0.679757 0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER -0.335322 0.607487 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.283164 0.659645 0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER -0.269894 0.672915 0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER -0.275822 0.649528 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.293281 0.666987 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.277236 0.683032 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.300624 0.677104 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.290507 0.669762 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.259777 0.665573 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.273047 0.652302 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.265705 0.642185 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.286452 0.603979 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.279361 0.614273 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.303327 0.613293 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.288206 0.628413 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.262487 0.604959 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.271332 0.619099 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.269578 0.594664 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.277607 0.589839 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.284698 0.579544 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.301572 0.588858 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.33883 0.656357 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.328536 0.663448 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.314396 0.654603 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.329516 0.639482 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.35297 0.665202 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.353951 0.641237 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.363265 0.658111 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.33785 0.680322 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.348145 0.673232 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.32371 0.671477 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.332034 0.663153 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.321274 0.684748 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.308341 0.666888 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.326131 0.678752 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.344967 0.681014 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.349824 0.675018 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.355727 0.659419 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.327177 0.669149 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.337937 0.647554 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.314244 0.651289 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.3877 0.659866 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.391875 0.684201 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.37258 0.674986 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.37258 0.674986 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.406996 0.669081 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.3877 0.659866 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.40282 0.644745 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.406996 0.669081 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.40282 0.644745 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.3877 0.659866 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.384191 0.610996 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.389739 0.622198 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.366159 0.617804 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.378964 0.63493 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.407771 0.61539 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.396997 0.628121 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.402224 0.604188 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.394966 0.598265 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER -0.389418 0.587062 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.371386 0.593871 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.279656 0.610775 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.258061 0.621535 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.264057 0.616678 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.275921 0.634468 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.27366 0.615632 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.29152 0.628565 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.295255 0.604872 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.261795 0.597842 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.28339 0.587082 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.267791 0.592985 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.331813 0.558618 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.320611 0.55307 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.30788 0.563845 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.325005 0.57665 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.344544 0.547843 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER -0.348938 0.571423 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.355747 0.553391 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.327419 0.535038 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.338621 0.540585 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.314688 0.545813 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.282943 0.555109 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.258608 0.550934 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.267823 0.570229 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.267823 0.570229 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.273728 0.535813 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.282943 0.555109 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.298064 0.539989 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.273728 0.535813 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.298064 0.539989 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.282943 0.555109 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.335322 0.607487 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.313405 0.629404 -0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.316595 0.626214 -0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.318408 0.606941 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.335868 0.624401 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.311592 0.648676 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.330864 0.646863 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.308402 0.651867 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.294133 0.631217 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.290942 0.634407 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.295946 0.611945 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.331813 0.558618 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.319608 0.539107 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.307378 0.556863 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.322499 0.541743 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.344043 0.540862 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER -0.346933 0.543497 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.356248 0.560372 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.328923 0.555982 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.341128 0.575492 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.316693 0.573738 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.384191 0.610996 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.403702 0.623201 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.401066 0.62031 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.385946 0.635431 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.386827 0.613886 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.369071 0.626116 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.367317 0.601681 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.401947 0.598766 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER -0.382437 0.586561 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399312 0.595876 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.316914 0.678274 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.305407 0.69384 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.296616 0.671002 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.317721 0.674446 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.325704 0.701111 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.338018 0.681717 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.337211 0.685545 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.3046 0.697667 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.316107 0.682101 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.295809 0.67483 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.3877 0.659866 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.391875 0.684201 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.37258 0.674986 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.37258 0.674986 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.406996 0.669081 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.3877 0.659866 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.40282 0.644745 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.406996 0.669081 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.40282 0.644745 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.3877 0.659866 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.33883 0.656357 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.329538 0.677411 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.314897 0.661584 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.332022 0.674389 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.353472 0.672184 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.355956 0.669162 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.362764 0.65113 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.336346 0.659378 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.345639 0.638325 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.321705 0.643552 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.264535 0.625895 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.248969 0.637402 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.268363 0.625088 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.271807 0.646193 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.245142 0.638209 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.267979 0.647 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.260708 0.626702 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.241698 0.617105 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.257264 0.605598 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.261092 0.604791 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.286452 0.603979 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.265398 0.613271 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.26842 0.610787 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.281225 0.627912 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.283431 0.606463 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.299257 0.621104 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.304484 0.59717 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.270625 0.589337 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.291679 0.580045 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.273647 0.586853 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.282943 0.555109 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.258608 0.550934 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.267823 0.570229 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.267823 0.570229 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.273728 0.535813 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.282943 0.555109 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.298064 0.539989 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.273728 0.535813 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.298064 0.539989 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.282943 0.555109 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.645066 0.554344 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.681385 0.616373 -0.129006 RAD 0.0185185 - txt002 - SPHERE CENTER -0.678928 0.639472 -0.137375 RAD 0.00617284 - txt002 - SPHERE CENTER -0.661636 0.629767 -0.122663 RAD 0.00617284 - txt002 - SPHERE CENTER -0.664108 0.621631 -0.145845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.698678 0.626079 -0.143718 RAD 0.00617284 - txt002 - SPHERE CENTER -0.683858 0.608237 -0.152187 RAD 0.00617284 - txt002 - SPHERE CENTER -0.701135 0.602979 -0.135349 RAD 0.00617284 - txt002 - SPHERE CENTER -0.696205 0.634214 -0.120537 RAD 0.00617284 - txt002 - SPHERE CENTER -0.698662 0.611115 -0.112168 RAD 0.00617284 - txt002 - SPHERE CENTER -0.678912 0.624508 -0.105825 RAD 0.00617284 - txt002 - SPHERE CENTER -0.649723 0.609912 -0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER -0.640648 0.631982 -0.0560094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.625749 0.614812 -0.0656463 RAD 0.00617284 - txt002 - SPHERE CENTER -0.64267 0.62585 -0.0798417 RAD 0.00617284 - txt002 - SPHERE CENTER -0.664623 0.627081 -0.0527151 RAD 0.00617284 - txt002 - SPHERE CENTER -0.666645 0.620949 -0.0765474 RAD 0.00617284 - txt002 - SPHERE CENTER -0.673698 0.605012 -0.0590577 RAD 0.00617284 - txt002 - SPHERE CENTER -0.647702 0.616044 -0.0385197 RAD 0.00617284 - txt002 - SPHERE CENTER -0.656777 0.593974 -0.0448623 RAD 0.00617284 - txt002 - SPHERE CENTER -0.632802 0.598874 -0.0481565 RAD 0.00617284 - txt002 - SPHERE CENTER -0.607573 0.617144 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.595495 0.63057 -0.139672 RAD 0.00617284 - txt002 - SPHERE CENTER -0.594239 0.605919 -0.140323 RAD 0.00617284 - txt002 - SPHERE CENTER -0.615286 0.617371 -0.146288 RAD 0.00617284 - txt002 - SPHERE CENTER -0.608828 0.641795 -0.122182 RAD 0.00617284 - txt002 - SPHERE CENTER -0.628619 0.628595 -0.128798 RAD 0.00617284 - txt002 - SPHERE CENTER -0.620906 0.628369 -0.105343 RAD 0.00617284 - txt002 - SPHERE CENTER -0.587782 0.630343 -0.116217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.59986 0.616917 -0.0993785 RAD 0.00617284 - txt002 - SPHERE CENTER -0.586526 0.605692 -0.116868 RAD 0.00617284 - txt002 - SPHERE CENTER -0.676727 0.560805 -0.177765 RAD 0.0185185 - txt002 - SPHERE CENTER -0.689897 0.57563 -0.192477 RAD 0.00617284 - txt002 - SPHERE CENTER -0.693998 0.575587 -0.168128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.673115 0.585222 -0.177114 RAD 0.00617284 - txt002 - SPHERE CENTER -0.672626 0.560848 -0.202114 RAD 0.00617284 - txt002 - SPHERE CENTER -0.655844 0.57044 -0.186751 RAD 0.00617284 - txt002 - SPHERE CENTER -0.659456 0.546023 -0.187402 RAD 0.00617284 - txt002 - SPHERE CENTER -0.693509 0.551213 -0.193128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.680339 0.536388 -0.178416 RAD 0.00617284 - txt002 - SPHERE CENTER -0.69761 0.55117 -0.16878 RAD 0.00617284 - txt002 - SPHERE CENTER -0.602915 0.561576 -0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER -0.602201 0.570049 -0.194773 RAD 0.00617284 - txt002 - SPHERE CENTER -0.623084 0.560414 -0.185788 RAD 0.00617284 - txt002 - SPHERE CENTER -0.615021 0.582252 -0.177557 RAD 0.00617284 - txt002 - SPHERE CENTER -0.582032 0.571211 -0.180578 RAD 0.00617284 - txt002 - SPHERE CENTER -0.594852 0.583414 -0.163362 RAD 0.00617284 - txt002 - SPHERE CENTER -0.582745 0.562738 -0.157397 RAD 0.00617284 - txt002 - SPHERE CENTER -0.590095 0.549372 -0.188808 RAD 0.00617284 - txt002 - SPHERE CENTER -0.590808 0.540899 -0.165627 RAD 0.00617284 - txt002 - SPHERE CENTER -0.610978 0.539737 -0.179823 RAD 0.00617284 - txt002 - SPHERE CENTER -0.640408 0.498776 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.627785 0.478525 -0.166213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.615951 0.497935 -0.156576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.630799 0.484234 -0.142381 RAD 0.00617284 - txt002 - SPHERE CENTER -0.652241 0.479365 -0.169507 RAD 0.00617284 - txt002 - SPHERE CENTER -0.655255 0.485075 -0.145675 RAD 0.00617284 - txt002 - SPHERE CENTER -0.664864 0.499616 -0.163165 RAD 0.00617284 - txt002 - SPHERE CENTER -0.637394 0.493066 -0.183703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.650016 0.513317 -0.17736 RAD 0.00617284 - txt002 - SPHERE CENTER -0.62556 0.512476 -0.174066 RAD 0.00617284 - txt002 - SPHERE CENTER -0.718878 0.553573 -0.117284 RAD 0.0185185 - txt002 - SPHERE CENTER -0.73992 0.563328 -0.108814 RAD 0.00617284 - txt002 - SPHERE CENTER -0.720935 0.559693 -0.0934517 RAD 0.00617284 - txt002 - SPHERE CENTER -0.719679 0.577348 -0.110668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.737863 0.557208 -0.132647 RAD 0.00617284 - txt002 - SPHERE CENTER -0.717623 0.571228 -0.1345 RAD 0.00617284 - txt002 - SPHERE CENTER -0.716821 0.547453 -0.141116 RAD 0.00617284 - txt002 - SPHERE CENTER -0.739118 0.539553 -0.115431 RAD 0.00617284 - txt002 - SPHERE CENTER -0.718076 0.529798 -0.1239 RAD 0.00617284 - txt002 - SPHERE CENTER -0.720133 0.535918 -0.100068 RAD 0.00617284 - txt002 - SPHERE CENTER -0.682558 0.491544 -0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.688647 0.474542 -0.0825505 RAD 0.00617284 - txt002 - SPHERE CENTER -0.666351 0.485132 -0.0818993 RAD 0.00617284 - txt002 - SPHERE CENTER -0.686417 0.498226 -0.0759343 RAD 0.00617284 - txt002 - SPHERE CENTER -0.704854 0.480953 -0.10004 RAD 0.00617284 - txt002 - SPHERE CENTER -0.702624 0.504637 -0.093424 RAD 0.00617284 - txt002 - SPHERE CENTER -0.698765 0.497955 -0.116879 RAD 0.00617284 - txt002 - SPHERE CENTER -0.684788 0.46786 -0.106005 RAD 0.00617284 - txt002 - SPHERE CENTER -0.678699 0.484862 -0.122844 RAD 0.00617284 - txt002 - SPHERE CENTER -0.662492 0.47845 -0.105354 RAD 0.00617284 - txt002 - SPHERE CENTER -0.687216 0.547112 -0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER -0.690713 0.554862 -0.0274488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.667813 0.552739 -0.0364345 RAD 0.00617284 - txt002 - SPHERE CENTER -0.682694 0.570641 -0.0446649 RAD 0.00617284 - txt002 - SPHERE CENTER -0.710116 0.549235 -0.0416443 RAD 0.00617284 - txt002 - SPHERE CENTER -0.702097 0.565014 -0.0588603 RAD 0.00617284 - txt002 - SPHERE CENTER -0.706619 0.541484 -0.0648253 RAD 0.00617284 - txt002 - SPHERE CENTER -0.695235 0.531333 -0.0334138 RAD 0.00617284 - txt002 - SPHERE CENTER -0.691738 0.523582 -0.0565949 RAD 0.00617284 - txt002 - SPHERE CENTER -0.672335 0.52921 -0.0423994 RAD 0.00617284 - txt002 - SPHERE CENTER -0.471405 0.471405 -0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER -0.501645 0.501645 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.499795 0.519956 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.493653 0.523893 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.479397 0.509638 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.507788 0.497708 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.48739 0.48739 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER -0.509638 0.479397 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.522043 0.511963 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER -0.523893 0.493653 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.515901 0.515901 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER -0.542955 0.490576 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.559233 0.507719 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.539759 0.502501 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.536564 0.514426 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.562428 0.495794 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER -0.539759 0.502501 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.54615 0.478651 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.565623 0.483869 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.549345 0.466726 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.54615 0.478651 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.490576 0.542955 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.483869 0.565623 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.466726 0.549345 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.478651 0.54615 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.507719 0.559233 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.502501 0.539759 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.514426 0.536564 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.495794 0.562428 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.502501 0.539759 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.478651 0.54615 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.430095 0.482473 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.430434 0.489762 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.449569 0.477255 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER -0.445366 0.500519 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.41096 0.49498 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER -0.425893 0.505737 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.410622 0.487691 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER -0.415162 0.471716 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.414824 0.464428 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.434297 0.45921 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.419026 0.523783 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.404771 0.538038 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER -0.410297 0.515053 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.427756 0.532513 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.4135 0.546768 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.436486 0.541242 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.427756 0.532513 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.396041 0.529309 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.410297 0.515053 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.401567 0.506323 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399854 0.452233 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.377186 0.45894 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.396659 0.464158 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.393464 0.476083 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.380381 0.447015 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.396659 0.464158 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.40305 0.440308 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.383576 0.43509 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.406245 0.428383 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.40305 0.440308 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.482473 0.430095 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.48121 0.407271 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER -0.464428 0.414824 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.487691 0.410622 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER -0.499256 0.422542 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.505737 0.425893 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.500519 0.445366 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.475992 0.426744 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.477255 0.449569 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER -0.45921 0.434297 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.452233 0.399854 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.43509 0.383576 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.428383 0.406245 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.440308 0.40305 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.45894 0.377186 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.464158 0.396659 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.476083 0.393464 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.447015 0.380381 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER -0.464158 0.396659 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.440308 0.40305 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.523783 0.419026 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.538038 0.404771 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.515053 0.410297 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.532513 0.427756 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.546768 0.4135 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.541242 0.436486 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.532513 0.427756 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.529309 0.396041 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.515053 0.410297 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.506323 0.401567 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.607487 0.335322 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.659645 0.283164 -0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER -0.672915 0.269894 -0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER -0.649528 0.275822 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.666987 0.293281 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.683032 0.277236 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.677104 0.300624 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.669762 0.290507 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.665573 0.259777 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.652302 0.273047 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.642185 0.265705 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.603979 0.286452 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.592776 0.280905 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.580045 0.291679 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.59717 0.304484 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.61671 0.275678 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.621104 0.299257 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.627912 0.281225 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.599585 0.262872 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.610787 0.26842 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.586853 0.273647 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.656357 0.33883 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.661904 0.350033 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.638325 0.345639 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.65113 0.362764 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.679937 0.343224 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.669162 0.355956 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.674389 0.332022 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.667131 0.326099 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.661584 0.314897 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.643552 0.321705 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.663153 0.332034 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.685865 0.340177 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.679339 0.33606 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.669651 0.355123 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.669679 0.336151 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.653465 0.351097 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.646968 0.328008 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.679367 0.317089 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.656656 0.308945 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.672841 0.312971 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.659866 0.3877 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.664041 0.412036 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.644745 0.40282 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.644745 0.40282 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.679161 0.396915 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.659866 0.3877 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.674986 0.37258 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.679161 0.396915 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.674986 0.37258 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.659866 0.3877 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.610996 0.384191 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.600701 0.391282 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.586561 0.382437 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.601681 0.367317 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.625136 0.393037 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER -0.626116 0.369071 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.635431 0.385946 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.610016 0.408157 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.62031 0.401066 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.595876 0.399312 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.610775 0.279656 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.602632 0.256944 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.587686 0.273158 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.606749 0.26347 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.62572 0.263442 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.629838 0.269968 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.633864 0.286153 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.606658 0.27313 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.614801 0.295841 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.591712 0.289344 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.558618 0.331813 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.551527 0.342108 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.575492 0.341128 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.560372 0.356248 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.534652 0.332793 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.543497 0.346933 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.541743 0.322499 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.549772 0.317673 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER -0.556863 0.307378 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.573738 0.316693 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555109 0.282943 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.530773 0.278768 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.539989 0.298064 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.539989 0.298064 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.545894 0.263648 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555109 0.282943 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.570229 0.267823 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.545894 0.263648 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.570229 0.267823 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555109 0.282943 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.645066 0.554344 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.668521 0.610229 0.153697 RAD 0.0185185 - txt002 - SPHERE CENTER -0.663938 0.633406 0.160875 RAD 0.00617284 - txt002 - SPHERE CENTER -0.64522 0.617928 0.156428 RAD 0.00617284 - txt002 - SPHERE CENTER -0.65892 0.626429 0.137727 RAD 0.00617284 - txt002 - SPHERE CENTER -0.687239 0.625707 0.158144 RAD 0.00617284 - txt002 - SPHERE CENTER -0.682221 0.61873 0.134996 RAD 0.00617284 - txt002 - SPHERE CENTER -0.691822 0.602531 0.150967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.673539 0.617206 0.176845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.678123 0.59403 0.169668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.654822 0.601728 0.172398 RAD 0.00617284 - txt002 - SPHERE CENTER -0.598918 0.585648 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.580238 0.601562 0.162601 RAD 0.00617284 - txt002 - SPHERE CENTER -0.581665 0.587563 0.142311 RAD 0.00617284 - txt002 - SPHERE CENTER -0.59781 0.605914 0.14581 RAD 0.00617284 - txt002 - SPHERE CENTER -0.597491 0.599646 0.18016 RAD 0.00617284 - txt002 - SPHERE CENTER -0.615063 0.603999 0.163369 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616171 0.583732 0.177429 RAD 0.00617284 - txt002 - SPHERE CENTER -0.581346 0.581295 0.176661 RAD 0.00617284 - txt002 - SPHERE CENTER -0.600026 0.565381 0.173931 RAD 0.00617284 - txt002 - SPHERE CENTER -0.582773 0.567297 0.156372 RAD 0.00617284 - txt002 - SPHERE CENTER -0.619787 0.622977 0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.608008 0.63767 0.0834188 RAD 0.00617284 - txt002 - SPHERE CENTER -0.601637 0.613891 0.0853287 RAD 0.00617284 - txt002 - SPHERE CENTER -0.623239 0.620102 0.0751099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.626157 0.646756 0.0974792 RAD 0.00617284 - txt002 - SPHERE CENTER -0.641389 0.629188 0.0891702 RAD 0.00617284 - txt002 - SPHERE CENTER -0.637936 0.632063 0.113449 RAD 0.00617284 - txt002 - SPHERE CENTER -0.604555 0.640545 0.107698 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616334 0.625852 0.123668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.598184 0.616766 0.109608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.714669 0.578925 0.104938 RAD 0.0185185 - txt002 - SPHERE CENTER -0.729812 0.597914 0.109385 RAD 0.00617284 - txt002 - SPHERE CENTER -0.711617 0.592661 0.125228 RAD 0.00617284 - txt002 - SPHERE CENTER -0.70632 0.602084 0.103028 RAD 0.00617284 - txt002 - SPHERE CENTER -0.732864 0.584178 0.0890951 RAD 0.00617284 - txt002 - SPHERE CENTER -0.709372 0.588348 0.0827387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.71772 0.565189 0.0846485 RAD 0.00617284 - txt002 - SPHERE CENTER -0.738161 0.574755 0.111295 RAD 0.00617284 - txt002 - SPHERE CENTER -0.723017 0.555767 0.106848 RAD 0.00617284 - txt002 - SPHERE CENTER -0.719965 0.569503 0.127138 RAD 0.00617284 - txt002 - SPHERE CENTER -0.665934 0.591673 0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER -0.658095 0.605761 0.0319289 RAD 0.00617284 - txt002 - SPHERE CENTER -0.647455 0.607672 0.0541285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.643855 0.58746 0.0404111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.676573 0.589763 0.0284303 RAD 0.00617284 - txt002 - SPHERE CENTER -0.662334 0.571461 0.0369125 RAD 0.00617284 - txt002 - SPHERE CENTER -0.684413 0.575674 0.0471312 RAD 0.00617284 - txt002 - SPHERE CENTER -0.680174 0.609975 0.0421477 RAD 0.00617284 - txt002 - SPHERE CENTER -0.688013 0.595887 0.0608487 RAD 0.00617284 - txt002 - SPHERE CENTER -0.669535 0.611885 0.0643473 RAD 0.00617284 - txt002 - SPHERE CENTER -0.691213 0.52304 0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER -0.712906 0.511567 0.0596212 RAD 0.00617284 - txt002 - SPHERE CENTER -0.699372 0.507717 0.079911 RAD 0.00617284 - txt002 - SPHERE CENTER -0.710453 0.529503 0.0764123 RAD 0.00617284 - txt002 - SPHERE CENTER -0.704747 0.526889 0.0420622 RAD 0.00617284 - txt002 - SPHERE CENTER -0.702295 0.544826 0.0588533 RAD 0.00617284 - txt002 - SPHERE CENTER -0.683054 0.538362 0.044793 RAD 0.00617284 - txt002 - SPHERE CENTER -0.693665 0.505104 0.0455609 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671972 0.516576 0.0482916 RAD 0.00617284 - txt002 - SPHERE CENTER -0.680131 0.501254 0.0658506 RAD 0.00617284 - txt002 - SPHERE CENTER -0.6938 0.541596 0.165419 RAD 0.0185185 - txt002 - SPHERE CENTER -0.70016 0.547376 0.188567 RAD 0.00617284 - txt002 - SPHERE CENTER -0.676324 0.546319 0.182211 RAD 0.00617284 - txt002 - SPHERE CENTER -0.690564 0.564621 0.173728 RAD 0.00617284 - txt002 - SPHERE CENTER -0.717636 0.542652 0.171776 RAD 0.00617284 - txt002 - SPHERE CENTER -0.70804 0.559898 0.156937 RAD 0.00617284 - txt002 - SPHERE CENTER -0.711276 0.536873 0.148628 RAD 0.00617284 - txt002 - SPHERE CENTER -0.703396 0.524351 0.180258 RAD 0.00617284 - txt002 - SPHERE CENTER -0.697037 0.518571 0.157111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.679561 0.523294 0.173902 RAD 0.00617284 - txt002 - SPHERE CENTER -0.670344 0.48571 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.67091 0.466887 0.138803 RAD 0.00617284 - txt002 - SPHERE CENTER -0.650637 0.480853 0.136894 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671107 0.490138 0.147112 RAD 0.00617284 - txt002 - SPHERE CENTER -0.690617 0.471745 0.124743 RAD 0.00617284 - txt002 - SPHERE CENTER -0.690815 0.494995 0.133052 RAD 0.00617284 - txt002 - SPHERE CENTER -0.690052 0.490567 0.108773 RAD 0.00617284 - txt002 - SPHERE CENTER -0.670147 0.46246 0.114524 RAD 0.00617284 - txt002 - SPHERE CENTER -0.669581 0.481283 0.0985541 RAD 0.00617284 - txt002 - SPHERE CENTER -0.649874 0.476425 0.112614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.624197 0.517014 0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER -0.60809 0.516313 0.190293 RAD 0.00617284 - txt002 - SPHERE CENTER -0.60089 0.524375 0.168094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616221 0.538029 0.181811 RAD 0.00617284 - txt002 - SPHERE CENTER -0.631397 0.508952 0.193792 RAD 0.00617284 - txt002 - SPHERE CENTER -0.639529 0.530668 0.18531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.647504 0.509653 0.175091 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616065 0.495298 0.180075 RAD 0.00617284 - txt002 - SPHERE CENTER -0.632172 0.495999 0.161374 RAD 0.00617284 - txt002 - SPHERE CENTER -0.608865 0.50336 0.157875 RAD 0.00617284 - txt002 - SPHERE CENTER -0.607487 0.335322 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.629404 0.313405 0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.626214 0.316595 0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.606941 0.318408 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.624401 0.335868 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.648676 0.311592 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.646863 0.330864 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.651867 0.308402 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.631217 0.294133 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.634407 0.290942 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.611945 0.295946 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.558618 0.331813 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.537564 0.341105 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.540585 0.338621 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.553391 0.355747 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555596 0.334297 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.571423 0.348938 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.57665 0.325005 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.542791 0.317172 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER -0.563845 0.30788 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.545813 0.314688 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.610996 0.384191 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.601704 0.405245 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.587062 0.389418 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.604188 0.402224 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.625637 0.400018 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER -0.628121 0.396997 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.63493 0.378964 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.608512 0.387213 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.617804 0.366159 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.593871 0.371386 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.678274 0.316914 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.697473 0.31938 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.674538 0.318074 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.681812 0.338182 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.701209 0.31822 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.685547 0.337022 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.682009 0.315754 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.693935 0.298112 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.674736 0.295646 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671 0.296805 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.659866 0.3877 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.664041 0.412036 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.644745 0.40282 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.644745 0.40282 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.679161 0.396915 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.659866 0.3877 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.674986 0.37258 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.679161 0.396915 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.674986 0.37258 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.659866 0.3877 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.656357 0.33883 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.675867 0.351035 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.673232 0.348145 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.658111 0.363265 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.658993 0.341721 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.641237 0.353951 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.639482 0.329516 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.674113 0.3266 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.654603 0.314396 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671477 0.32371 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.625895 0.264535 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.623429 0.245336 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.604627 0.260997 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.624736 0.268271 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.644697 0.248874 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.646004 0.271809 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.647163 0.268073 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.624589 0.2416 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.627055 0.2608 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.605787 0.257262 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.603979 0.286452 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.591774 0.266942 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.579544 0.284698 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.594664 0.269578 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616209 0.268696 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.619099 0.271332 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.628413 0.288206 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.601088 0.283817 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.613293 0.303327 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.588858 0.301572 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555109 0.282943 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.530773 0.278768 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.539989 0.298064 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.539989 0.298064 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.545894 0.263648 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555109 0.282943 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.570229 0.267823 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.545894 0.263648 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.570229 0.267823 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555109 0.282943 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.471405 0.471405 0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER -0.441164 0.501645 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.424703 0.518106 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER -0.420089 0.505261 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.437548 0.522721 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.445778 0.51449 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.458623 0.519105 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.462239 0.498029 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.428319 0.497031 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.44478 0.48057 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.423704 0.484186 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399854 0.490576 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.382226 0.502679 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399854 0.490576 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.405389 0.511231 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.382226 0.502679 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.405389 0.511231 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399854 0.490576 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.376691 0.482024 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.39432 0.469922 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.39432 0.469922 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.452233 0.542955 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.44013 0.560583 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.431578 0.53742 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.452233 0.542955 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.460785 0.566118 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.472887 0.548489 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.472887 0.548489 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.44013 0.560583 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.452233 0.542955 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.431578 0.53742 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.512714 0.482473 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.51514 0.495905 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.492654 0.48988 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.506323 0.506323 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.5352 0.488498 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER -0.526383 0.498917 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.532774 0.475067 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.521531 0.472055 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.519105 0.458623 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.499045 0.46603 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.523783 0.523783 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.527958 0.548119 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.508662 0.538903 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.508662 0.538903 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.543078 0.532998 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.523783 0.523783 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.538903 0.508662 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.543078 0.532998 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.538903 0.508662 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.523783 0.523783 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.542955 0.452233 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.564273 0.4539 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.542955 0.452233 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.548489 0.472887 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.564273 0.4539 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.548489 0.472887 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.542955 0.452233 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.558738 0.433245 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.53742 0.431578 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.53742 0.431578 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.460336 0.430095 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.446904 0.427669 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.436486 0.436486 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.45293 0.450155 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.470754 0.421278 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.47678 0.443764 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.484186 0.423704 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.454311 0.407609 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER -0.467742 0.410035 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.443892 0.416426 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.490576 0.399854 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.488909 0.378536 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.469922 0.39432 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.490576 0.399854 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.509564 0.384071 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.511231 0.405389 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.511231 0.405389 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.488909 0.378536 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.490576 0.399854 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.469922 0.39432 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.419026 0.419026 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.39469 0.414851 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.403906 0.434147 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.403906 0.434147 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.409811 0.399731 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.419026 0.419026 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.434147 0.403906 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.409811 0.399731 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.434147 0.403906 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.419026 0.419026 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.643951 -0.172546 1.11022e-16 RAD 0.166667 - txt002 - SPHERE CENTER -0.835815 -0.157543 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.871646 -0.122136 0.165419 RAD 0.0185185 - txt002 - SPHERE CENTER -0.871334 -0.102403 0.180258 RAD 0.00617284 - txt002 - SPHERE CENTER -0.850164 -0.113406 0.173902 RAD 0.00617284 - txt002 - SPHERE CENTER -0.862937 -0.100577 0.157111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.892817 -0.111133 0.171776 RAD 0.00617284 - txt002 - SPHERE CENTER -0.884419 -0.109307 0.148628 RAD 0.00617284 - txt002 - SPHERE CENTER -0.893129 -0.130866 0.156937 RAD 0.00617284 - txt002 - SPHERE CENTER -0.880044 -0.123961 0.188567 RAD 0.00617284 - txt002 - SPHERE CENTER -0.880356 -0.143694 0.173728 RAD 0.00617284 - txt002 - SPHERE CENTER -0.858873 -0.134964 0.182211 RAD 0.00617284 - txt002 - SPHERE CENTER -0.799077 -0.135649 0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER -0.781177 -0.120908 0.180075 RAD 0.00617284 - txt002 - SPHERE CENTER -0.778973 -0.13149 0.157875 RAD 0.00617284 - txt002 - SPHERE CENTER -0.795477 -0.113462 0.161374 RAD 0.00617284 - txt002 - SPHERE CENTER -0.801282 -0.125067 0.193792 RAD 0.00617284 - txt002 - SPHERE CENTER -0.815582 -0.11762 0.175091 RAD 0.00617284 - txt002 - SPHERE CENTER -0.819182 -0.139808 0.18531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.784778 -0.143095 0.190293 RAD 0.00617284 - txt002 - SPHERE CENTER -0.802678 -0.157836 0.181811 RAD 0.00617284 - txt002 - SPHERE CENTER -0.782573 -0.153678 0.168094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.82339 -0.0854653 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.811594 -0.0654286 0.114524 RAD 0.00617284 - txt002 - SPHERE CENTER -0.80102 -0.0876595 0.112614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.820516 -0.0820122 0.0985541 RAD 0.00617284 - txt002 - SPHERE CENTER -0.833964 -0.0632344 0.124743 RAD 0.00617284 - txt002 - SPHERE CENTER -0.842886 -0.079818 0.108773 RAD 0.00617284 - txt002 - SPHERE CENTER -0.845761 -0.083271 0.133052 RAD 0.00617284 - txt002 - SPHERE CENTER -0.814468 -0.0688817 0.138803 RAD 0.00617284 - txt002 - SPHERE CENTER -0.826265 -0.0889183 0.147112 RAD 0.00617284 - txt002 - SPHERE CENTER -0.803895 -0.0911125 0.136894 RAD 0.00617284 - txt002 - SPHERE CENTER -0.908384 -0.14403 0.104938 RAD 0.0185185 - txt002 - SPHERE CENTER -0.926643 -0.128672 0.111295 RAD 0.00617284 - txt002 - SPHERE CENTER -0.90826 -0.133221 0.127138 RAD 0.00617284 - txt002 - SPHERE CENTER -0.904034 -0.1198 0.106848 RAD 0.00617284 - txt002 - SPHERE CENTER -0.926768 -0.139481 0.0890951 RAD 0.00617284 - txt002 - SPHERE CENTER -0.904159 -0.130608 0.0846485 RAD 0.00617284 - txt002 - SPHERE CENTER -0.908508 -0.154838 0.0827387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.930993 -0.152902 0.109385 RAD 0.00617284 - txt002 - SPHERE CENTER -0.912733 -0.16826 0.103028 RAD 0.00617284 - txt002 - SPHERE CENTER -0.912609 -0.157451 0.125228 RAD 0.00617284 - txt002 - SPHERE CENTER -0.860128 -0.107359 0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER -0.853284 -0.0905999 0.0455609 RAD 0.00617284 - txt002 - SPHERE CENTER -0.839638 -0.0940331 0.0658506 RAD 0.00617284 - txt002 - SPHERE CENTER -0.840233 -0.111382 0.0482916 RAD 0.00617284 - txt002 - SPHERE CENTER -0.873773 -0.103926 0.0420622 RAD 0.00617284 - txt002 - SPHERE CENTER -0.860723 -0.124708 0.044793 RAD 0.00617284 - txt002 - SPHERE CENTER -0.880618 -0.120685 0.0588533 RAD 0.00617284 - txt002 - SPHERE CENTER -0.873178 -0.086577 0.0596212 RAD 0.00617284 - txt002 - SPHERE CENTER -0.880022 -0.103336 0.0764123 RAD 0.00617284 - txt002 - SPHERE CENTER -0.859532 -0.0900102 0.079911 RAD 0.00617284 - txt002 - SPHERE CENTER -0.872552 -0.179437 0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER -0.894035 -0.188167 0.0421477 RAD 0.00617284 - txt002 - SPHERE CENTER -0.885777 -0.195141 0.0643473 RAD 0.00617284 - txt002 - SPHERE CENTER -0.89378 -0.172046 0.0608487 RAD 0.00617284 - txt002 - SPHERE CENTER -0.880811 -0.172463 0.0284303 RAD 0.00617284 - txt002 - SPHERE CENTER -0.880556 -0.156342 0.0471312 RAD 0.00617284 - txt002 - SPHERE CENTER -0.859328 -0.163733 0.0369125 RAD 0.00617284 - txt002 - SPHERE CENTER -0.872807 -0.195558 0.0319289 RAD 0.00617284 - txt002 - SPHERE CENTER -0.851325 -0.186828 0.0404111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.864549 -0.202532 0.0541285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.884071 -0.194213 0.153697 RAD 0.0185185 - txt002 - SPHERE CENTER -0.891905 -0.197746 0.176845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.867957 -0.193701 0.172398 RAD 0.00617284 - txt002 - SPHERE CENTER -0.884286 -0.175383 0.169668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.908019 -0.198259 0.158144 RAD 0.00617284 - txt002 - SPHERE CENTER -0.900401 -0.175896 0.150967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.900186 -0.194726 0.134996 RAD 0.00617284 - txt002 - SPHERE CENTER -0.89169 -0.216576 0.160875 RAD 0.00617284 - txt002 - SPHERE CENTER -0.883856 -0.213043 0.137727 RAD 0.00617284 - txt002 - SPHERE CENTER -0.867741 -0.212531 0.156428 RAD 0.00617284 - txt002 - SPHERE CENTER -0.84824 -0.229621 0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.843832 -0.25245 0.107698 RAD 0.00617284 - txt002 - SPHERE CENTER -0.826426 -0.235043 0.109608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.846687 -0.233837 0.123668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.865646 -0.247028 0.0974792 RAD 0.00617284 - txt002 - SPHERE CENTER -0.868501 -0.228415 0.113449 RAD 0.00617284 - txt002 - SPHERE CENTER -0.870053 -0.224198 0.0891702 RAD 0.00617284 - txt002 - SPHERE CENTER -0.845385 -0.248234 0.0834188 RAD 0.00617284 - txt002 - SPHERE CENTER -0.849792 -0.225404 0.0751099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.827978 -0.230827 0.0853287 RAD 0.00617284 - txt002 - SPHERE CENTER -0.811502 -0.207727 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.794108 -0.212743 0.176661 RAD 0.00617284 - txt002 - SPHERE CENTER -0.788345 -0.199907 0.156372 RAD 0.00617284 - txt002 - SPHERE CENTER -0.802328 -0.189621 0.173931 RAD 0.00617284 - txt002 - SPHERE CENTER -0.817265 -0.220563 0.18016 RAD 0.00617284 - txt002 - SPHERE CENTER -0.825486 -0.197441 0.177429 RAD 0.00617284 - txt002 - SPHERE CENTER -0.83466 -0.215547 0.163369 RAD 0.00617284 - txt002 - SPHERE CENTER -0.803282 -0.230849 0.162601 RAD 0.00617284 - txt002 - SPHERE CENTER -0.820676 -0.225832 0.14581 RAD 0.00617284 - txt002 - SPHERE CENTER -0.797518 -0.218012 0.142311 RAD 0.00617284 - txt002 - SPHERE CENTER -0.643951 -0.172546 0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER -0.61371 -0.142305 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.597249 -0.125845 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER -0.592635 -0.138689 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.610094 -0.12123 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.618324 -0.12946 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.631169 -0.124846 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.634785 -0.145921 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.600865 -0.14692 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.617326 -0.163381 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.596251 -0.159765 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.5724 -0.153374 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.554772 -0.141271 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.5724 -0.153374 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.577935 -0.13272 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.554772 -0.141271 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.577935 -0.13272 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.5724 -0.153374 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.549237 -0.161926 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.566866 -0.174029 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.566866 -0.174029 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.624779 -0.100996 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.612676 -0.0833673 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.604124 -0.10653 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.624779 -0.100996 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.633331 -0.0778329 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.645433 -0.0954616 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.645433 -0.0954616 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.612676 -0.0833673 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.624779 -0.100996 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.604124 -0.10653 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.68526 -0.161477 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.687686 -0.148046 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.6652 -0.154071 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.678869 -0.137627 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.707746 -0.155452 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER -0.698929 -0.145033 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.70532 -0.168883 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.694077 -0.171896 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.691651 -0.185327 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671591 -0.177921 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.696329 -0.120168 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.700504 -0.095832 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.681209 -0.105047 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.681209 -0.105047 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.715624 -0.110952 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.696329 -0.120168 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.711449 -0.135288 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.715624 -0.110952 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.711449 -0.135288 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.696329 -0.120168 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.715501 -0.191718 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.736819 -0.190051 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.715501 -0.191718 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.721035 -0.171063 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.736819 -0.190051 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.721035 -0.171063 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.715501 -0.191718 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.731284 -0.210706 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.709966 -0.212373 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.709966 -0.212373 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.632882 -0.213855 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.61945 -0.216282 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.609032 -0.207465 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.625476 -0.193796 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.6433 -0.222672 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.649326 -0.200186 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.656732 -0.220246 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.626857 -0.236341 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER -0.640288 -0.233915 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616438 -0.227525 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.663122 -0.244096 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.661455 -0.265414 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.642468 -0.249631 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.663122 -0.244096 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.68211 -0.25988 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.683777 -0.238562 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.683777 -0.238562 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.661455 -0.265414 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.663122 -0.244096 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.642468 -0.249631 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.591572 -0.224924 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.567237 -0.2291 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.576452 -0.209804 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.576452 -0.209804 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.582357 -0.24422 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.591572 -0.224924 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.606693 -0.240045 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.582357 -0.24422 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.606693 -0.240045 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.591572 -0.224924 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.69376 0.0133465 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.674309 0.0838533 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.66171 0.103063 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.653258 0.0800983 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.673446 0.0876683 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.682761 0.106818 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.694497 0.0914233 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.69536 0.0876083 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.662574 0.0992478 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.675172 0.0800382 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.654121 0.0762832 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.62221 0.0325183 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.604582 0.0446211 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.62221 0.0325183 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.627745 0.053173 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.604582 0.0446211 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.627745 0.053173 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.62221 0.0325183 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.599047 0.0239663 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616676 0.0118635 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616676 0.0118635 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.666287 0.0539145 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.662466 0.0547519 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.660752 0.0332597 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.682791 0.0439578 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.668 0.0754066 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.688325 0.0646126 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671821 0.0745692 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.645962 0.0647085 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.649783 0.0638711 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.644249 0.0432164 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.745859 0.0646815 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.750021 0.0887955 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.729506 0.078459 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.732161 0.0813312 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.766375 0.075018 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.748514 0.0675537 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.762212 0.050904 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.763719 0.0721458 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.759557 0.0480318 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.743204 0.0618093 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.737837 0.0347427 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.747099 0.0542122 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.743371 0.0553974 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.7241 0.0550267 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.741565 0.0335575 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.718566 0.0343719 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.732303 0.014088 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.760836 0.0339282 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.751574 0.0144587 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.757108 0.0351134 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.76531 -0.0058253 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.786629 -0.00415829 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.76531 -0.0058253 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.770845 0.0148294 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.786629 -0.00415829 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.770845 0.0148294 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.76531 -0.0058253 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.781094 -0.024813 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.759776 -0.02648 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.759776 -0.02648 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.701782 0.0432853 0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.693716 0.0608821 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.677932 0.0496759 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.694884 0.0652402 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.717566 0.0544915 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.718734 0.0588496 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.725632 0.0368947 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.700615 0.0389272 0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.708681 0.0213304 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.684831 0.027721 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.721234 -0.0272215 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.720593 -0.0310802 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.7 -0.0246945 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.718114 -0.00820099 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.741827 -0.0336072 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER -0.739347 -0.010728 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.742467 -0.0297485 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.723713 -0.0501007 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.724354 -0.046242 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.70312 -0.043715 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.649684 -0.00804971 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.628657 -0.00328338 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER -0.630031 0.000378614 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.642244 0.0152909 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.648309 -0.0117117 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.661896 0.00686255 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.669336 -0.016478 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.636097 -0.026624 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.657124 -0.0313903 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.637471 -0.022962 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.835815 -0.157543 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.899353 -0.119969 -0.117284 RAD 0.0185185 - txt002 - SPHERE CENTER -0.909872 -0.0977075 -0.115431 RAD 0.00617284 - txt002 - SPHERE CENTER -0.891613 -0.104052 -0.100068 RAD 0.00617284 - txt002 - SPHERE CENTER -0.886771 -0.0997803 -0.1239 RAD 0.00617284 - txt002 - SPHERE CENTER -0.917612 -0.113625 -0.132647 RAD 0.00617284 - txt002 - SPHERE CENTER -0.894512 -0.115698 -0.141116 RAD 0.00617284 - txt002 - SPHERE CENTER -0.907093 -0.135886 -0.1345 RAD 0.00617284 - txt002 - SPHERE CENTER -0.922453 -0.117896 -0.108814 RAD 0.00617284 - txt002 - SPHERE CENTER -0.911935 -0.140158 -0.110668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.904194 -0.124241 -0.0934517 RAD 0.00617284 - txt002 - SPHERE CENTER -0.868703 -0.130205 -0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER -0.867758 -0.11253 -0.0334138 RAD 0.00617284 - txt002 - SPHERE CENTER -0.846864 -0.122142 -0.0423994 RAD 0.00617284 - txt002 - SPHERE CENTER -0.860854 -0.107566 -0.0565949 RAD 0.00617284 - txt002 - SPHERE CENTER -0.889596 -0.120593 -0.0416443 RAD 0.00617284 - txt002 - SPHERE CENTER -0.882692 -0.115629 -0.0648253 RAD 0.00617284 - txt002 - SPHERE CENTER -0.890541 -0.138267 -0.0588603 RAD 0.00617284 - txt002 - SPHERE CENTER -0.875606 -0.135168 -0.0274488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.876551 -0.152843 -0.0446649 RAD 0.00617284 - txt002 - SPHERE CENTER -0.854713 -0.14478 -0.0364345 RAD 0.00617284 - txt002 - SPHERE CENTER -0.836885 -0.0844101 -0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.826973 -0.0627848 -0.106005 RAD 0.00617284 - txt002 - SPHERE CENTER -0.81296 -0.083104 -0.105354 RAD 0.00617284 - txt002 - SPHERE CENTER -0.830202 -0.0805529 -0.122844 RAD 0.00617284 - txt002 - SPHERE CENTER -0.850898 -0.0640908 -0.10004 RAD 0.00617284 - txt002 - SPHERE CENTER -0.854126 -0.0818589 -0.116879 RAD 0.00617284 - txt002 - SPHERE CENTER -0.860809 -0.0857161 -0.093424 RAD 0.00617284 - txt002 - SPHERE CENTER -0.833656 -0.0666419 -0.0825505 RAD 0.00617284 - txt002 - SPHERE CENTER -0.843568 -0.0882673 -0.0759343 RAD 0.00617284 - txt002 - SPHERE CENTER -0.819643 -0.0869612 -0.0818993 RAD 0.00617284 - txt002 - SPHERE CENTER -0.866465 -0.147308 -0.177765 RAD 0.0185185 - txt002 - SPHERE CENTER -0.876203 -0.130609 -0.193128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.879733 -0.128522 -0.16878 RAD 0.00617284 - txt002 - SPHERE CENTER -0.857385 -0.124356 -0.178416 RAD 0.00617284 - txt002 - SPHERE CENTER -0.862935 -0.149395 -0.202114 RAD 0.00617284 - txt002 - SPHERE CENTER -0.844117 -0.143141 -0.187402 RAD 0.00617284 - txt002 - SPHERE CENTER -0.853198 -0.166093 -0.186751 RAD 0.00617284 - txt002 - SPHERE CENTER -0.885283 -0.153561 -0.192477 RAD 0.00617284 - txt002 - SPHERE CENTER -0.875546 -0.170259 -0.177114 RAD 0.00617284 - txt002 - SPHERE CENTER -0.888813 -0.151474 -0.168128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.803997 -0.111748 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.798532 -0.108311 -0.183703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.797989 -0.131037 -0.174066 RAD 0.00617284 - txt002 - SPHERE CENTER -0.819589 -0.119537 -0.17736 RAD 0.00617284 - txt002 - SPHERE CENTER -0.80454 -0.0890219 -0.169507 RAD 0.00617284 - txt002 - SPHERE CENTER -0.825597 -0.100248 -0.163165 RAD 0.00617284 - txt002 - SPHERE CENTER -0.810005 -0.0924597 -0.145675 RAD 0.00617284 - txt002 - SPHERE CENTER -0.78294 -0.100522 -0.166213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.788405 -0.10396 -0.142381 RAD 0.00617284 - txt002 - SPHERE CENTER -0.782397 -0.123249 -0.156576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.802927 -0.184881 -0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER -0.785723 -0.180723 -0.188808 RAD 0.00617284 - txt002 - SPHERE CENTER -0.798991 -0.161937 -0.179823 RAD 0.00617284 - txt002 - SPHERE CENTER -0.782104 -0.173028 -0.165627 RAD 0.00617284 - txt002 - SPHERE CENTER -0.78966 -0.203667 -0.180578 RAD 0.00617284 - txt002 - SPHERE CENTER -0.786041 -0.195972 -0.157397 RAD 0.00617284 - txt002 - SPHERE CENTER -0.806864 -0.207825 -0.163362 RAD 0.00617284 - txt002 - SPHERE CENTER -0.806546 -0.192576 -0.194773 RAD 0.00617284 - txt002 - SPHERE CENTER -0.82375 -0.196734 -0.177557 RAD 0.00617284 - txt002 - SPHERE CENTER -0.819813 -0.17379 -0.185788 RAD 0.00617284 - txt002 - SPHERE CENTER -0.898283 -0.193102 -0.129006 RAD 0.0185185 - txt002 - SPHERE CENTER -0.920038 -0.201143 -0.120537 RAD 0.00617284 - txt002 - SPHERE CENTER -0.900209 -0.201384 -0.105825 RAD 0.00617284 - txt002 - SPHERE CENTER -0.910616 -0.17991 -0.112168 RAD 0.00617284 - txt002 - SPHERE CENTER -0.918112 -0.192861 -0.143718 RAD 0.00617284 - txt002 - SPHERE CENTER -0.90869 -0.171628 -0.135349 RAD 0.00617284 - txt002 - SPHERE CENTER -0.896357 -0.18482 -0.152187 RAD 0.00617284 - txt002 - SPHERE CENTER -0.907705 -0.214335 -0.137375 RAD 0.00617284 - txt002 - SPHERE CENTER -0.88595 -0.206294 -0.145845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.887876 -0.214576 -0.122663 RAD 0.00617284 - txt002 - SPHERE CENTER -0.834745 -0.230676 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.824206 -0.252002 -0.116217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.810793 -0.231282 -0.116868 RAD 0.00617284 - txt002 - SPHERE CENTER -0.827952 -0.234336 -0.0993785 RAD 0.00617284 - txt002 - SPHERE CENTER -0.848158 -0.251396 -0.122182 RAD 0.00617284 - txt002 - SPHERE CENTER -0.851905 -0.23373 -0.105343 RAD 0.00617284 - txt002 - SPHERE CENTER -0.858698 -0.23007 -0.128798 RAD 0.00617284 - txt002 - SPHERE CENTER -0.830999 -0.248342 -0.139672 RAD 0.00617284 - txt002 - SPHERE CENTER -0.841538 -0.227016 -0.146288 RAD 0.00617284 - txt002 - SPHERE CENTER -0.817586 -0.227621 -0.140323 RAD 0.00617284 - txt002 - SPHERE CENTER -0.867633 -0.203337 -0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER -0.868948 -0.209658 -0.0385197 RAD 0.00617284 - txt002 - SPHERE CENTER -0.84746 -0.202239 -0.0481565 RAD 0.00617284 - txt002 - SPHERE CENTER -0.865773 -0.186008 -0.0448623 RAD 0.00617284 - txt002 - SPHERE CENTER -0.889121 -0.210757 -0.0527151 RAD 0.00617284 - txt002 - SPHERE CENTER -0.885946 -0.187106 -0.0590577 RAD 0.00617284 - txt002 - SPHERE CENTER -0.887806 -0.204436 -0.0765474 RAD 0.00617284 - txt002 - SPHERE CENTER -0.870808 -0.226988 -0.0560094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.869493 -0.220667 -0.0798417 RAD 0.00617284 - txt002 - SPHERE CENTER -0.84932 -0.219569 -0.0656463 RAD 0.00617284 - txt002 - SPHERE CENTER -0.69376 0.0133465 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.668775 0.0631985 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.661946 0.0667914 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.65711 0.0452771 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.680354 0.0511945 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.673611 0.0847128 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.692019 0.069116 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.680439 0.08112 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.650366 0.0787954 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.657195 0.0752026 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.64553 0.0572811 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.62221 0.0325183 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.604582 0.0446211 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.62221 0.0325183 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.627745 0.053173 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.604582 0.0446211 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.627745 0.053173 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.62221 0.0325183 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.599047 0.0239663 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616676 0.0118635 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616676 0.0118635 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.649684 -0.00804971 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.634953 -0.000226782 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER -0.655218 0.012605 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.635947 0.0122343 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.629419 -0.0208815 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.630413 -0.00842045 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.644149 -0.0287044 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.64869 -0.0205108 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.66342 -0.0283337 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.668955 -0.00767898 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.740325 0.0440268 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.746894 0.0650768 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.739183 0.0653796 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.723153 0.0607735 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.748035 0.0437239 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.724295 0.0394207 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.741466 0.0226739 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.764065 0.04833 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.757496 0.02728 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.756355 0.0486329 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.721234 -0.0272215 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.732368 -0.0484665 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.715699 -0.0478762 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.737738 -0.0371781 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.737902 -0.0278118 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER -0.743272 -0.0165234 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.726768 -0.00656677 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.715864 -0.0385099 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.70473 -0.0172649 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.699195 -0.0379196 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.76531 -0.0058253 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.786629 -0.00415829 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.76531 -0.0058253 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.770845 0.0148294 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.786629 -0.00415829 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.770845 0.0148294 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.76531 -0.0058253 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.781094 -0.024813 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.759776 -0.02648 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.759776 -0.02648 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.712851 0.0845947 -0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER -0.706291 0.107813 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.689001 0.0909853 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.701434 0.0896851 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.730141 0.101422 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.725284 0.0832945 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.736701 0.0782041 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.717709 0.102723 -0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER -0.724268 0.0795043 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.700418 0.0858949 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.737837 0.0347427 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.740802 0.0511556 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.718185 0.043171 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.730397 0.0580833 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.760455 0.0427273 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.750049 0.0496549 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.757489 0.0263144 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.748242 0.027815 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.745277 0.0114021 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.725625 0.0198304 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.666287 0.0539145 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.650692 0.0721382 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.645053 0.0564414 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.663167 0.072935 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671925 0.0696112 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.6844 0.070408 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.68752 0.0513875 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.653812 0.0531177 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.669407 0.034894 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.648173 0.0374209 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.643951 -0.172546 -0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER -0.674191 -0.142305 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.672341 -0.123995 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.666199 -0.120057 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.651943 -0.134313 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.680334 -0.146243 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.659936 -0.156561 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER -0.682184 -0.164554 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.69459 -0.131987 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER -0.696439 -0.150298 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.688447 -0.12805 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER -0.715501 -0.153374 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.731779 -0.136231 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.712305 -0.141449 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.70911 -0.129524 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.734974 -0.148156 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER -0.712305 -0.141449 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.718696 -0.165299 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.738169 -0.160081 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.721891 -0.177224 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.718696 -0.165299 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.663122 -0.100996 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.656415 -0.0783272 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.639272 -0.0946054 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.651197 -0.0978007 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.680265 -0.0847178 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.675047 -0.104191 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.686972 -0.107387 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.66834 -0.0815225 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.675047 -0.104191 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.651197 -0.0978007 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.602641 -0.161477 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.60298 -0.154189 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.622115 -0.166695 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER -0.617912 -0.143431 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.583506 -0.148971 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER -0.598439 -0.138214 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.583168 -0.156259 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER -0.587708 -0.172234 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.58737 -0.179523 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.606843 -0.184741 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.591572 -0.120168 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.577317 -0.105912 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER -0.582843 -0.128897 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.600302 -0.111438 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.586046 -0.0971825 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.609032 -0.102708 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.600302 -0.111438 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.568587 -0.114642 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.582843 -0.128897 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.574113 -0.137627 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.5724 -0.191718 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.549732 -0.185011 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.569205 -0.179793 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.56601 -0.167868 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.552927 -0.196936 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.569205 -0.179793 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.575596 -0.203643 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.556122 -0.208861 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.578791 -0.215568 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.575596 -0.203643 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.655019 -0.213855 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.653756 -0.23668 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER -0.636974 -0.229127 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.660237 -0.233329 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671802 -0.221409 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.678283 -0.218058 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.673065 -0.198584 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.648538 -0.217207 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.649801 -0.194382 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER -0.631756 -0.209653 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.624779 -0.244096 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.607636 -0.260374 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.600929 -0.237705 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.612854 -0.240901 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.631486 -0.266765 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.636704 -0.247291 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.648629 -0.250487 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.619561 -0.26357 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER -0.636704 -0.247291 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.612854 -0.240901 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.696329 -0.224924 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.710584 -0.23918 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.687599 -0.233654 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.705059 -0.216195 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.719314 -0.23045 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.713788 -0.207465 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.705059 -0.216195 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.701855 -0.24791 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.687599 -0.233654 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.678869 -0.242384 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.786005 -0.343435 8.51251e-17 RAD 0.0555556 - txt002 - SPHERE CENTER -0.82165 -0.392454 0.0425863 RAD 0.0185185 - txt002 - SPHERE CENTER -0.824791 -0.400556 0.065698 RAD 0.00617284 - txt002 - SPHERE CENTER -0.802599 -0.392663 0.058292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.821021 -0.376528 0.0614442 RAD 0.00617284 - txt002 - SPHERE CENTER -0.843843 -0.400347 0.0499923 RAD 0.00617284 - txt002 - SPHERE CENTER -0.840073 -0.376319 0.0457385 RAD 0.00617284 - txt002 - SPHERE CENTER -0.840701 -0.392245 0.0268805 RAD 0.00617284 - txt002 - SPHERE CENTER -0.82542 -0.416482 0.0468401 RAD 0.00617284 - txt002 - SPHERE CENTER -0.822279 -0.40838 0.0237283 RAD 0.00617284 - txt002 - SPHERE CENTER -0.803228 -0.408589 0.0394341 RAD 0.00617284 - txt002 - SPHERE CENTER -0.753118 -0.370774 0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER -0.734271 -0.367981 0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER -0.731279 -0.362711 0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER -0.745269 -0.348136 0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER -0.756109 -0.376044 0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER -0.767107 -0.356199 0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER -0.774956 -0.378837 0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER -0.74212 -0.390619 0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.760966 -0.393412 0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER -0.739128 -0.385349 0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER -0.80984 -0.323622 0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER -0.80634 -0.308073 0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER -0.786996 -0.316395 0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER -0.802721 -0.300378 0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER -0.829184 -0.315299 0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER -0.825565 -0.307605 0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER -0.832685 -0.330849 0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.813459 -0.331317 0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER -0.81696 -0.346866 0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER -0.794116 -0.339639 0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER -0.854538 -0.365116 -0.0178949 RAD 0.0185185 - txt002 - SPHERE CENTER -0.878086 -0.365674 -0.0104889 RAD 0.00617284 - txt002 - SPHERE CENTER -0.859887 -0.367962 0.00604126 RAD 0.00617284 - txt002 - SPHERE CENTER -0.863875 -0.346241 -0.00500196 RAD 0.00617284 - txt002 - SPHERE CENTER -0.872736 -0.362827 -0.0344251 RAD 0.00617284 - txt002 - SPHERE CENTER -0.858526 -0.343394 -0.0289382 RAD 0.00617284 - txt002 - SPHERE CENTER -0.849188 -0.362269 -0.0418311 RAD 0.00617284 - txt002 - SPHERE CENTER -0.868748 -0.384548 -0.0233819 RAD 0.00617284 - txt002 - SPHERE CENTER -0.8452 -0.38399 -0.0307879 RAD 0.00617284 - txt002 - SPHERE CENTER -0.85055 -0.386837 -0.00685171 RAD 0.00617284 - txt002 - SPHERE CENTER -0.842728 -0.296284 0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER -0.848999 -0.272611 0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER -0.828835 -0.281616 0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER -0.829121 -0.278432 -0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.862893 -0.287278 -0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER -0.843015 -0.293099 -0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER -0.856621 -0.310951 -0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER -0.862606 -0.290462 0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER -0.856335 -0.314135 0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.842441 -0.299468 0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.818893 -0.316097 -0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER -0.819591 -0.297057 -0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER -0.814956 -0.293153 -0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER -0.79807 -0.304244 -0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER -0.823527 -0.320001 -0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER -0.802007 -0.327188 -0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER -0.822829 -0.339041 -0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER -0.840413 -0.30891 -0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.839716 -0.32795 -0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER -0.835779 -0.305006 -0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER -0.797815 -0.412267 -0.0246914 RAD 0.0185185 - txt002 - SPHERE CENTER -0.793573 -0.436217 -0.0204376 RAD 0.00617284 - txt002 - SPHERE CENTER -0.776294 -0.419454 -0.0149506 RAD 0.00617284 - txt002 - SPHERE CENTER -0.796968 -0.420728 -0.00151032 RAD 0.00617284 - txt002 - SPHERE CENTER -0.815094 -0.42903 -0.0301783 RAD 0.00617284 - txt002 - SPHERE CENTER -0.818489 -0.413542 -0.0112511 RAD 0.00617284 - txt002 - SPHERE CENTER -0.819335 -0.405081 -0.0344321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.79442 -0.427756 -0.0436186 RAD 0.00617284 - txt002 - SPHERE CENTER -0.798662 -0.403807 -0.0478724 RAD 0.00617284 - txt002 - SPHERE CENTER -0.777141 -0.410993 -0.0381316 RAD 0.00617284 - txt002 - SPHERE CENTER -0.76217 -0.363249 -0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER -0.747522 -0.356966 -0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER -0.759239 -0.339469 -0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER -0.740618 -0.352002 -0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER -0.750453 -0.380746 -0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER -0.743549 -0.375782 -0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER -0.765101 -0.387029 -0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.769074 -0.368213 -0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER -0.783722 -0.374496 -0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER -0.780791 -0.350716 -0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER -0.729282 -0.390587 -0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER -0.704862 -0.392427 -0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER -0.717401 -0.374248 -0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER -0.714218 -0.373948 0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.716744 -0.408767 0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER -0.726099 -0.390287 0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER -0.741164 -0.406927 0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER -0.719927 -0.409067 -0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER -0.744347 -0.407227 -0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.732465 -0.390887 -0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.594141 -0.358439 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.542042 -0.409774 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.517869 -0.413579 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.528508 -0.393219 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.525596 -0.395831 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.531404 -0.430134 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.539131 -0.412386 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555577 -0.426328 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.534315 -0.427522 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.558488 -0.423716 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.544953 -0.407161 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.522591 -0.339267 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.504962 -0.327164 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.522591 -0.339267 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.528125 -0.318612 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.504962 -0.327164 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.528125 -0.318612 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.522591 -0.339267 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.499428 -0.347819 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.517056 -0.359921 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.517056 -0.359921 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.550064 -0.379835 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.529037 -0.375068 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.530412 -0.371406 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.542624 -0.356494 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.548689 -0.383497 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.562276 -0.364922 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.569716 -0.388263 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.536477 -0.398409 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.557504 -0.403175 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.537852 -0.394747 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.613592 -0.428945 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.612625 -0.451897 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.593593 -0.436515 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.614807 -0.432663 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.632624 -0.444328 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.634806 -0.425094 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.633591 -0.421376 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.61141 -0.448179 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.612377 -0.425227 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.592379 -0.432797 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.621614 -0.399007 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.620974 -0.402865 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.600381 -0.39648 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.618494 -0.379986 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.642207 -0.405392 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.639728 -0.382513 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.642848 -0.401533 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.624094 -0.421886 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.624734 -0.418027 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.603501 -0.4155 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.665691 -0.37761 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.687009 -0.375943 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.665691 -0.37761 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671225 -0.356956 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.687009 -0.375943 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671225 -0.356956 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.665691 -0.37761 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.681475 -0.396598 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.660156 -0.398265 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.660156 -0.398265 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.586119 -0.388377 -0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.570335 -0.399584 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.562269 -0.381987 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.569167 -0.403942 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.594185 -0.405974 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.593017 -0.410332 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.609969 -0.394768 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.587286 -0.384019 -0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.60307 -0.372813 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.57922 -0.366422 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.638217 -0.337042 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.64748 -0.317573 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER -0.643752 -0.316388 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.624481 -0.316758 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.641945 -0.338228 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.618946 -0.337413 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.632683 -0.357697 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.661216 -0.337857 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.651954 -0.357326 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.657489 -0.336672 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.566667 -0.317871 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.562847 -0.317033 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.561133 -0.338525 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.583171 -0.327827 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.568381 -0.296378 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER -0.588706 -0.307172 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.572202 -0.297216 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.546343 -0.307077 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.550163 -0.307914 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.544629 -0.328569 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.594141 -0.358439 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.547576 -0.389119 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.525642 -0.386849 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.528407 -0.379645 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.538964 -0.366733 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.544812 -0.396323 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.558134 -0.376207 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.566746 -0.398593 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.534255 -0.409235 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.556189 -0.411505 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.537019 -0.402031 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.522591 -0.339267 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.504962 -0.327164 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.522591 -0.339267 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.528125 -0.318612 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.504962 -0.327164 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.528125 -0.318612 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.522591 -0.339267 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.499428 -0.347819 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.517056 -0.359921 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.517056 -0.359921 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.566667 -0.317871 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.551072 -0.299647 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.545434 -0.315344 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.563547 -0.29885 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.572306 -0.302174 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER -0.584781 -0.301377 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.587901 -0.320398 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.554192 -0.318667 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.569787 -0.336891 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.548554 -0.334364 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.619127 -0.408291 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.617918 -0.415912 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.597788 -0.406911 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616439 -0.39183 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.639257 -0.417292 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.637778 -0.39321 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.640465 -0.409671 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.620605 -0.432372 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.621814 -0.424751 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.600475 -0.423371 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.638217 -0.337042 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.641183 -0.320629 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER -0.618565 -0.328614 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.630777 -0.313702 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.660835 -0.329058 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.65043 -0.32213 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.65787 -0.345471 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.648623 -0.34397 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.645657 -0.360383 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.626005 -0.351955 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.665691 -0.37761 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.687009 -0.375943 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.665691 -0.37761 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671225 -0.356956 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.687009 -0.375943 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.671225 -0.356956 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.665691 -0.37761 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.681475 -0.396598 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.660156 -0.398265 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.660156 -0.398265 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.57505 -0.429687 0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER -0.55776 -0.446515 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.5512 -0.423296 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.562617 -0.428387 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.58161 -0.452905 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.586467 -0.434777 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.5989 -0.436077 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.570193 -0.447815 0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER -0.587483 -0.430987 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.563633 -0.424596 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.621614 -0.399007 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.632748 -0.420252 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.61608 -0.419661 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.638118 -0.408963 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.638282 -0.399597 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.643653 -0.388308 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.627149 -0.378352 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.616244 -0.410295 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.60511 -0.38905 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.599576 -0.409705 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.550064 -0.379835 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.535334 -0.372012 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.555599 -0.35918 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.536327 -0.359551 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.529799 -0.392667 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.530793 -0.380205 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.54453 -0.400489 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.549071 -0.392296 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.563801 -0.400119 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.569335 -0.379464 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0996195 -0.371785 0.544331 RAD 0.166667 - txt002 - SPHERE CENTER 0.220501 -0.393621 0.729516 RAD 0.0555556 - txt002 - SPHERE CENTER 0.279642 -0.368601 0.766439 RAD 0.0185185 - txt002 - SPHERE CENTER 0.299716 -0.354293 0.765035 RAD 0.00617284 - txt002 - SPHERE CENTER 0.292196 -0.366989 0.745238 RAD 0.00617284 - txt002 - SPHERE CENTER 0.279022 -0.347717 0.753281 RAD 0.00617284 - txt002 - SPHERE CENTER 0.287162 -0.355904 0.786236 RAD 0.00617284 - txt002 - SPHERE CENTER 0.266468 -0.349329 0.774481 RAD 0.00617284 - txt002 - SPHERE CENTER 0.267088 -0.370213 0.787639 RAD 0.00617284 - txt002 - SPHERE CENTER 0.300337 -0.375177 0.778193 RAD 0.00617284 - txt002 - SPHERE CENTER 0.280263 -0.389485 0.779597 RAD 0.00617284 - txt002 - SPHERE CENTER 0.292817 -0.387873 0.758396 RAD 0.00617284 - txt002 - SPHERE CENTER 0.281062 -0.372464 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER 0.289441 -0.362978 0.671279 RAD 0.00617284 - txt002 - SPHERE CENTER 0.270044 -0.378255 0.671155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.267771 -0.35549 0.680442 RAD 0.00617284 - txt002 - SPHERE CENTER 0.30046 -0.357187 0.692603 RAD 0.00617284 - txt002 - SPHERE CENTER 0.278789 -0.349699 0.701767 RAD 0.00617284 - txt002 - SPHERE CENTER 0.29208 -0.366673 0.713804 RAD 0.00617284 - txt002 - SPHERE CENTER 0.302733 -0.379952 0.683315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.294353 -0.389438 0.704516 RAD 0.00617284 - txt002 - SPHERE CENTER 0.283335 -0.395229 0.683192 RAD 0.00617284 - txt002 - SPHERE CENTER 0.238665 -0.321889 0.726118 RAD 0.0185185 - txt002 - SPHERE CENTER 0.250544 -0.304702 0.71296 RAD 0.00617284 - txt002 - SPHERE CENTER 0.259421 -0.327715 0.714081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.238717 -0.32307 0.701455 RAD 0.00617284 - txt002 - SPHERE CENTER 0.229788 -0.298875 0.724997 RAD 0.00617284 - txt002 - SPHERE CENTER 0.21796 -0.317244 0.713492 RAD 0.00617284 - txt002 - SPHERE CENTER 0.217908 -0.316063 0.738155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.250492 -0.30352 0.737623 RAD 0.00617284 - txt002 - SPHERE CENTER 0.238612 -0.320707 0.750781 RAD 0.00617284 - txt002 - SPHERE CENTER 0.259369 -0.326533 0.738744 RAD 0.00617284 - txt002 - SPHERE CENTER 0.219082 -0.389758 0.803476 RAD 0.0185185 - txt002 - SPHERE CENTER 0.228779 -0.378635 0.823273 RAD 0.00617284 - txt002 - SPHERE CENTER 0.24293 -0.383364 0.8036 RAD 0.00617284 - txt002 - SPHERE CENTER 0.225483 -0.365937 0.802355 RAD 0.00617284 - txt002 - SPHERE CENTER 0.20493 -0.385029 0.823149 RAD 0.00617284 - txt002 - SPHERE CENTER 0.201634 -0.372331 0.802231 RAD 0.00617284 - txt002 - SPHERE CENTER 0.195233 -0.396152 0.803352 RAD 0.00617284 - txt002 - SPHERE CENTER 0.222377 -0.402455 0.824394 RAD 0.00617284 - txt002 - SPHERE CENTER 0.21268 -0.413578 0.804597 RAD 0.00617284 - txt002 - SPHERE CENTER 0.236529 -0.407185 0.804721 RAD 0.00617284 - txt002 - SPHERE CENTER 0.178104 -0.343046 0.763155 RAD 0.0185185 - txt002 - SPHERE CENTER 0.177083 -0.319723 0.771198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.198298 -0.332294 0.772443 RAD 0.00617284 - txt002 - SPHERE CENTER 0.189464 -0.325124 0.750529 RAD 0.00617284 - txt002 - SPHERE CENTER 0.156889 -0.330475 0.76191 RAD 0.00617284 - txt002 - SPHERE CENTER 0.16927 -0.335876 0.741241 RAD 0.00617284 - txt002 - SPHERE CENTER 0.157909 -0.353797 0.753867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.165722 -0.337645 0.783824 RAD 0.00617284 - txt002 - SPHERE CENTER 0.166743 -0.360967 0.775781 RAD 0.00617284 - txt002 - SPHERE CENTER 0.186938 -0.350216 0.785069 RAD 0.00617284 - txt002 - SPHERE CENTER 0.15994 -0.414778 0.766553 RAD 0.0185185 - txt002 - SPHERE CENTER 0.147477 -0.412573 0.787754 RAD 0.00617284 - txt002 - SPHERE CENTER 0.172167 -0.412448 0.787878 RAD 0.00617284 - txt002 - SPHERE CENTER 0.15977 -0.39322 0.77859 RAD 0.00617284 - txt002 - SPHERE CENTER 0.13525 -0.414903 0.766429 RAD 0.00617284 - txt002 - SPHERE CENTER 0.147543 -0.39555 0.757266 RAD 0.00617284 - txt002 - SPHERE CENTER 0.147713 -0.417108 0.745229 RAD 0.00617284 - txt002 - SPHERE CENTER 0.147647 -0.434131 0.775717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.16011 -0.436336 0.754517 RAD 0.00617284 - txt002 - SPHERE CENTER 0.172338 -0.434006 0.775841 RAD 0.00617284 - txt002 - SPHERE CENTER 0.261479 -0.440333 0.769837 RAD 0.0185185 - txt002 - SPHERE CENTER 0.282991 -0.443285 0.781591 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282046 -0.4302 0.760673 RAD 0.00617284 - txt002 - SPHERE CENTER 0.271991 -0.421181 0.781342 RAD 0.00617284 - txt002 - SPHERE CENTER 0.262424 -0.453417 0.790755 RAD 0.00617284 - txt002 - SPHERE CENTER 0.251423 -0.431313 0.790506 RAD 0.00617284 - txt002 - SPHERE CENTER 0.240911 -0.450466 0.779001 RAD 0.00617284 - txt002 - SPHERE CENTER 0.27248 -0.462437 0.770086 RAD 0.00617284 - txt002 - SPHERE CENTER 0.250967 -0.459485 0.758332 RAD 0.00617284 - txt002 - SPHERE CENTER 0.271534 -0.449353 0.749168 RAD 0.00617284 - txt002 - SPHERE CENTER 0.202338 -0.465353 0.732914 RAD 0.0185185 - txt002 - SPHERE CENTER 0.204606 -0.486123 0.746073 RAD 0.00617284 - txt002 - SPHERE CENTER 0.223366 -0.470107 0.744951 RAD 0.00617284 - txt002 - SPHERE CENTER 0.202946 -0.464339 0.757577 RAD 0.00617284 - txt002 - SPHERE CENTER 0.183578 -0.481368 0.734036 RAD 0.00617284 - txt002 - SPHERE CENTER 0.181918 -0.459584 0.745541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.18131 -0.460599 0.720878 RAD 0.00617284 - txt002 - SPHERE CENTER 0.203998 -0.487137 0.72141 RAD 0.00617284 - txt002 - SPHERE CENTER 0.201729 -0.466367 0.708251 RAD 0.00617284 - txt002 - SPHERE CENTER 0.222757 -0.471122 0.720288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.262898 -0.444196 0.695877 RAD 0.0185185 - txt002 - SPHERE CENTER 0.285685 -0.449273 0.687835 RAD 0.00617284 - txt002 - SPHERE CENTER 0.27701 -0.426189 0.68659 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282528 -0.436139 0.708504 RAD 0.00617284 - txt002 - SPHERE CENTER 0.271573 -0.46728 0.697123 RAD 0.00617284 - txt002 - SPHERE CENTER 0.268416 -0.454146 0.717791 RAD 0.00617284 - txt002 - SPHERE CENTER 0.248787 -0.462204 0.705165 RAD 0.00617284 - txt002 - SPHERE CENTER 0.266055 -0.45733 0.675209 RAD 0.00617284 - txt002 - SPHERE CENTER 0.243269 -0.452254 0.683251 RAD 0.00617284 - txt002 - SPHERE CENTER 0.257381 -0.434246 0.673964 RAD 0.00617284 - txt002 - SPHERE CENTER 0.31427 -0.31427 0.544331 RAD 0.0555556 - txt002 - SPHERE CENTER 0.367156 -0.277961 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.374298 -0.269898 0.485076 RAD 0.00617284 - txt002 - SPHERE CENTER 0.362218 -0.291334 0.487134 RAD 0.00617284 - txt002 - SPHERE CENTER 0.350338 -0.270045 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER 0.379235 -0.256525 0.505236 RAD 0.00617284 - txt002 - SPHERE CENTER 0.355276 -0.256671 0.511201 RAD 0.00617284 - txt002 - SPHERE CENTER 0.372093 -0.264588 0.527454 RAD 0.00617284 - txt002 - SPHERE CENTER 0.391115 -0.277815 0.501329 RAD 0.00617284 - txt002 - SPHERE CENTER 0.383973 -0.285878 0.523547 RAD 0.00617284 - txt002 - SPHERE CENTER 0.379036 -0.299251 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.31427 -0.31427 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER 0.304189 -0.304189 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER 0.29042 -0.307879 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.307879 -0.29042 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.328039 -0.31058 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER 0.331729 -0.29681 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.33812 -0.32066 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.31058 -0.328039 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER 0.32066 -0.33812 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.29681 -0.331729 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.297666 -0.252306 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.305995 -0.235688 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER 0.321516 -0.245915 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.312359 -0.259438 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282145 -0.242079 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER 0.288509 -0.265828 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.273816 -0.258696 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.291303 -0.228556 0.509559 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282974 -0.245173 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.306824 -0.238783 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.367156 -0.277961 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.385852 -0.261966 0.57931 RAD 0.00617284 - txt002 - SPHERE CENTER 0.38141 -0.278159 0.561208 RAD 0.00617284 - txt002 - SPHERE CENTER 0.36581 -0.259422 0.565115 RAD 0.00617284 - txt002 - SPHERE CENTER 0.371598 -0.261768 0.599471 RAD 0.00617284 - txt002 - SPHERE CENTER 0.351556 -0.259225 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER 0.352901 -0.277764 0.601529 RAD 0.00617284 - txt002 - SPHERE CENTER 0.387198 -0.280504 0.595564 RAD 0.00617284 - txt002 - SPHERE CENTER 0.368501 -0.2965 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER 0.382755 -0.296698 0.577461 RAD 0.00617284 - txt002 - SPHERE CENTER 0.297666 -0.252306 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.30415 -0.228803 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER 0.321516 -0.245915 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.306824 -0.238783 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.2803 -0.235194 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282974 -0.245173 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.273816 -0.258696 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.294992 -0.242326 0.603794 RAD 0.00617284 - txt002 - SPHERE CENTER 0.288509 -0.265828 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.312359 -0.259438 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.31427 -0.31427 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.32435 -0.304189 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.33812 -0.307879 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.32066 -0.29042 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.3005 -0.31058 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.29681 -0.29681 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.29042 -0.32066 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.317959 -0.328039 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.307879 -0.33812 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.331729 -0.331729 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.383759 -0.339925 0.544331 RAD 0.0185185 - txt002 - SPHERE CENTER 0.407156 -0.334762 0.538366 RAD 0.00617284 - txt002 - SPHERE CENTER 0.388696 -0.326552 0.524171 RAD 0.00617284 - txt002 - SPHERE CENTER 0.392275 -0.31686 0.546597 RAD 0.00617284 - txt002 - SPHERE CENTER 0.402218 -0.348135 0.558526 RAD 0.00617284 - txt002 - SPHERE CENTER 0.387337 -0.330233 0.566757 RAD 0.00617284 - txt002 - SPHERE CENTER 0.378821 -0.353299 0.564491 RAD 0.00617284 - txt002 - SPHERE CENTER 0.39864 -0.357827 0.536101 RAD 0.00617284 - txt002 - SPHERE CENTER 0.375243 -0.362991 0.542066 RAD 0.00617284 - txt002 - SPHERE CENTER 0.380181 -0.349618 0.521905 RAD 0.00617284 - txt002 - SPHERE CENTER 0.330873 -0.376234 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER 0.346394 -0.386461 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER 0.354723 -0.369843 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.340031 -0.362711 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.322544 -0.392851 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER 0.316181 -0.369102 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER 0.307023 -0.382624 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER 0.337237 -0.399983 0.579103 RAD 0.00617284 - txt002 - SPHERE CENTER 0.321715 -0.389757 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.345565 -0.383366 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.330873 -0.376234 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER 0.348239 -0.393346 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.354723 -0.369843 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.345565 -0.383366 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.324389 -0.399736 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.321715 -0.389757 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER 0.307023 -0.382624 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER 0.333547 -0.386213 0.484868 RAD 0.00617284 - txt002 - SPHERE CENTER 0.316181 -0.369102 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.340031 -0.362711 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER 0.166275 -0.191247 0.655442 RAD 0.0555556 - txt002 - SPHERE CENTER 0.20793 -0.130089 0.652044 RAD 0.0185185 - txt002 - SPHERE CENTER 0.221102 -0.115471 0.637128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.220766 -0.13987 0.633356 RAD 0.00617284 - txt002 - SPHERE CENTER 0.200597 -0.126388 0.628759 RAD 0.00617284 - txt002 - SPHERE CENTER 0.208266 -0.10569 0.655816 RAD 0.00617284 - txt002 - SPHERE CENTER 0.187762 -0.116607 0.647447 RAD 0.00617284 - txt002 - SPHERE CENTER 0.195095 -0.120308 0.670732 RAD 0.00617284 - txt002 - SPHERE CENTER 0.228435 -0.119172 0.660413 RAD 0.00617284 - txt002 - SPHERE CENTER 0.215264 -0.13379 0.675329 RAD 0.00617284 - txt002 - SPHERE CENTER 0.228099 -0.143571 0.656641 RAD 0.00617284 - txt002 - SPHERE CENTER 0.230419 -0.192135 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.243049 -0.18209 0.599717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.218634 -0.185251 0.597829 RAD 0.00617284 - txt002 - SPHERE CENTER 0.227721 -0.168159 0.613157 RAD 0.00617284 - txt002 - SPHERE CENTER 0.254834 -0.188974 0.620293 RAD 0.00617284 - txt002 - SPHERE CENTER 0.239506 -0.175043 0.633733 RAD 0.00617284 - txt002 - SPHERE CENTER 0.242204 -0.199019 0.638981 RAD 0.00617284 - txt002 - SPHERE CENTER 0.245747 -0.206066 0.604965 RAD 0.00617284 - txt002 - SPHERE CENTER 0.233117 -0.216111 0.623653 RAD 0.00617284 - txt002 - SPHERE CENTER 0.221332 -0.209227 0.603077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.172673 -0.154295 0.591563 RAD 0.0185185 - txt002 - SPHERE CENTER 0.180792 -0.15554 0.568278 RAD 0.00617284 - txt002 - SPHERE CENTER 0.19323 -0.166926 0.586315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.171251 -0.17557 0.579113 RAD 0.00617284 - txt002 - SPHERE CENTER 0.160236 -0.142909 0.573526 RAD 0.00617284 - txt002 - SPHERE CENTER 0.150694 -0.162939 0.584361 RAD 0.00617284 - txt002 - SPHERE CENTER 0.152117 -0.141663 0.596811 RAD 0.00617284 - txt002 - SPHERE CENTER 0.182215 -0.134265 0.580727 RAD 0.00617284 - txt002 - SPHERE CENTER 0.174096 -0.133019 0.604012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.194652 -0.145651 0.598764 RAD 0.00617284 - txt002 - SPHERE CENTER 0.143787 -0.129201 0.689081 RAD 0.0185185 - txt002 - SPHERE CENTER 0.14887 -0.105335 0.692853 RAD 0.00617284 - txt002 - SPHERE CENTER 0.167242 -0.121723 0.690969 RAD 0.00617284 - txt002 - SPHERE CENTER 0.153943 -0.115741 0.671044 RAD 0.00617284 - txt002 - SPHERE CENTER 0.125414 -0.112813 0.690965 RAD 0.00617284 - txt002 - SPHERE CENTER 0.130487 -0.123219 0.669156 RAD 0.00617284 - txt002 - SPHERE CENTER 0.120331 -0.136679 0.687193 RAD 0.00617284 - txt002 - SPHERE CENTER 0.138714 -0.118795 0.71089 RAD 0.00617284 - txt002 - SPHERE CENTER 0.13363 -0.142661 0.707118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.157086 -0.135183 0.709006 RAD 0.00617284 - txt002 - SPHERE CENTER 0.108529 -0.153407 0.6286 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0995811 -0.130858 0.624003 RAD 0.00617284 - txt002 - SPHERE CENTER 0.113639 -0.134736 0.643928 RAD 0.00617284 - txt002 - SPHERE CENTER 0.123725 -0.135326 0.621398 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0944715 -0.149528 0.608675 RAD 0.00617284 - txt002 - SPHERE CENTER 0.118615 -0.153997 0.60607 RAD 0.00617284 - txt002 - SPHERE CENTER 0.10342 -0.172078 0.613272 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0843858 -0.148938 0.631205 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0933338 -0.171487 0.635801 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0984435 -0.152816 0.65113 RAD 0.00617284 - txt002 - SPHERE CENTER 0.102131 -0.190359 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0897843 -0.179968 0.711167 RAD 0.00617284 - txt002 - SPHERE CENTER 0.114103 -0.183804 0.713055 RAD 0.00617284 - txt002 - SPHERE CENTER 0.105492 -0.166467 0.697727 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0778128 -0.186523 0.690591 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0935207 -0.173022 0.677151 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0901597 -0.196914 0.671903 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0864233 -0.20386 0.705919 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0987702 -0.214251 0.687231 RAD 0.00617284 - txt002 - SPHERE CENTER 0.110742 -0.207696 0.707807 RAD 0.00617284 - txt002 - SPHERE CENTER 0.201532 -0.167041 0.715923 RAD 0.0185185 - txt002 - SPHERE CENTER 0.219088 -0.151829 0.724292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.221861 -0.163068 0.702483 RAD 0.00617284 - txt002 - SPHERE CENTER 0.205084 -0.14514 0.705088 RAD 0.00617284 - txt002 - SPHERE CENTER 0.19876 -0.155801 0.737733 RAD 0.00617284 - txt002 - SPHERE CENTER 0.184756 -0.149113 0.718528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.181204 -0.171014 0.729364 RAD 0.00617284 - txt002 - SPHERE CENTER 0.215537 -0.173729 0.735128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.197981 -0.188942 0.726759 RAD 0.00617284 - txt002 - SPHERE CENTER 0.218309 -0.184969 0.713318 RAD 0.00617284 - txt002 - SPHERE CENTER 0.159877 -0.228199 0.719322 RAD 0.0185185 - txt002 - SPHERE CENTER 0.167942 -0.229756 0.742607 RAD 0.00617284 - txt002 - SPHERE CENTER 0.183484 -0.223214 0.72457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.16569 -0.207683 0.731771 RAD 0.00617284 - txt002 - SPHERE CENTER 0.144336 -0.234741 0.737359 RAD 0.00617284 - txt002 - SPHERE CENTER 0.142084 -0.212668 0.726523 RAD 0.00617284 - txt002 - SPHERE CENTER 0.13627 -0.233184 0.714074 RAD 0.00617284 - txt002 - SPHERE CENTER 0.162129 -0.250271 0.730157 RAD 0.00617284 - txt002 - SPHERE CENTER 0.154064 -0.248714 0.706872 RAD 0.00617284 - txt002 - SPHERE CENTER 0.177671 -0.243729 0.71212 RAD 0.00617284 - txt002 - SPHERE CENTER 0.224021 -0.229087 0.682285 RAD 0.0185185 - txt002 - SPHERE CENTER 0.248268 -0.22829 0.686881 RAD 0.00617284 - txt002 - SPHERE CENTER 0.2391 -0.216949 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER 0.234532 -0.207937 0.689486 RAD 0.00617284 - txt002 - SPHERE CENTER 0.233189 -0.240428 0.702209 RAD 0.00617284 - txt002 - SPHERE CENTER 0.219453 -0.220075 0.704814 RAD 0.00617284 - txt002 - SPHERE CENTER 0.208942 -0.241225 0.697613 RAD 0.00617284 - txt002 - SPHERE CENTER 0.237756 -0.249439 0.67968 RAD 0.00617284 - txt002 - SPHERE CENTER 0.213509 -0.250236 0.675083 RAD 0.00617284 - txt002 - SPHERE CENTER 0.228589 -0.238098 0.659755 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0058509 -0.451136 0.729516 RAD 0.0555556 - txt002 - SPHERE CENTER 0.0051487 -0.447081 0.803476 RAD 0.0185185 - txt002 - SPHERE CENTER 0.01504 -0.435909 0.823149 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0289993 -0.440694 0.803352 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0115452 -0.423265 0.802231 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00881065 -0.442297 0.823273 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0123054 -0.429652 0.802355 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0187019 -0.453468 0.8036 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00864346 -0.459725 0.824394 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0012478 -0.470897 0.804721 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0226028 -0.46451 0.804597 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0688765 -0.439178 0.766553 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0903221 -0.426942 0.766429 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0806307 -0.435083 0.745229 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0699989 -0.416328 0.757266 RAD 0.00617284 - txt002 - SPHERE CENTER 0.078568 -0.431037 0.787754 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0582447 -0.420423 0.77859 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0571224 -0.443274 0.787878 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0891998 -0.449792 0.775717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0677542 -0.462029 0.775841 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0795084 -0.457933 0.754517 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0172804 -0.386138 0.763155 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0293677 -0.364644 0.76191 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0401449 -0.385352 0.753867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0213457 -0.375512 0.741241 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0065032 -0.36543 0.771198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00151881 -0.376298 0.750529 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00558411 -0.386924 0.772443 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0253024 -0.37527 0.783824 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0132151 -0.396764 0.785069 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0360796 -0.395978 0.775781 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0578769 -0.459039 0.766439 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0707378 -0.451803 0.786236 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0461991 -0.454158 0.787639 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0561039 -0.435761 0.774481 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0824157 -0.456685 0.765035 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0677817 -0.440643 0.753281 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0695548 -0.46392 0.745238 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0725109 -0.475081 0.778193 RAD 0.00617284 - txt002 - SPHERE CENTER -0.05965 -0.482316 0.758396 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0479721 -0.477435 0.779597 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0457452 -0.398096 0.726118 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0495643 -0.373728 0.724997 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0306825 -0.382672 0.738155 RAD 0.00617284 - txt002 - SPHERE CENTER -0.030137 -0.383722 0.713492 RAD 0.00617284 - txt002 - SPHERE CENTER -0.064627 -0.389151 0.71296 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0451997 -0.399146 0.701455 RAD 0.00617284 - txt002 - SPHERE CENTER -0.060808 -0.41352 0.714081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0651725 -0.388102 0.737623 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0613535 -0.41247 0.738744 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0462908 -0.397047 0.750781 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0571747 -0.463094 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER -0.081612 -0.459563 0.692603 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0696122 -0.463589 0.713804 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0665888 -0.442243 0.701767 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0691745 -0.459069 0.671279 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0541513 -0.441749 0.680442 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0447373 -0.4626 0.671155 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0721979 -0.480415 0.683315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0477607 -0.483946 0.683192 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0601982 -0.48444 0.704516 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00628079 -0.512079 0.769837 RAD 0.0185185 - txt002 - SPHERE CENTER -0.000557006 -0.523883 0.790755 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0165974 -0.51057 0.779001 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00208214 -0.49924 0.790506 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0234352 -0.525392 0.781591 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0249603 -0.500749 0.781342 RAD 0.00617284 - txt002 - SPHERE CENTER -0.029159 -0.513588 0.760673 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00475566 -0.536722 0.770086 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0104794 -0.524918 0.749168 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0123987 -0.523409 0.758332 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00557859 -0.516134 0.695877 RAD 0.0185185 - txt002 - SPHERE CENTER -0.00154892 -0.540463 0.697123 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0156462 -0.524673 0.705165 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00538221 -0.52751 0.717791 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0227737 -0.531924 0.687835 RAD 0.00617284 - txt002 - SPHERE CENTER -0.026607 -0.518971 0.708504 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0268034 -0.507596 0.68659 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00174531 -0.529087 0.675209 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00577498 -0.504759 0.673964 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0154498 -0.513298 0.683251 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0574471 -0.504176 0.732914 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0817008 -0.508666 0.734036 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0732807 -0.489545 0.720878 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0722467 -0.488971 0.745541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0658672 -0.523298 0.746073 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0564131 -0.503602 0.757577 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0416134 -0.518808 0.744951 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0669012 -0.523872 0.72141 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0426474 -0.519382 0.720288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.058481 -0.504751 0.708251 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0483751 -0.248762 0.655442 RAD 0.0555556 - txt002 - SPHERE CENTER -0.0599222 -0.183785 0.689081 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0522053 -0.160406 0.690965 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0358698 -0.178533 0.687193 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0513956 -0.171954 0.669156 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0762577 -0.165658 0.692853 RAD 0.00617284 - txt002 - SPHERE CENTER -0.075448 -0.177206 0.671044 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0839747 -0.189036 0.690969 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0607319 -0.172236 0.71089 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0684488 -0.195615 0.709006 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0443964 -0.190363 0.707118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00673113 -0.215921 0.692479 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0258737 -0.20044 0.690591 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0203763 -0.215612 0.671903 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00551963 -0.196602 0.677151 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0122285 -0.200749 0.711167 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00812553 -0.196911 0.697727 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00691403 -0.21623 0.713055 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0270852 -0.21976 0.705919 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00794264 -0.235241 0.707807 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0215878 -0.234932 0.687231 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0172857 -0.187119 0.6286 RAD 0.0185185 - txt002 - SPHERE CENTER -0.00705049 -0.176731 0.608675 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00352517 -0.200733 0.613272 RAD 0.00617284 - txt002 - SPHERE CENTER -0.025725 -0.192673 0.60607 RAD 0.00617284 - txt002 - SPHERE CENTER -0.020811 -0.163117 0.624003 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0394855 -0.179058 0.621398 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0310463 -0.173504 0.643928 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00138875 -0.171177 0.631205 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00884647 -0.181564 0.65113 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00491406 -0.195179 0.635801 RAD 0.00617284 - txt002 - SPHERE CENTER -0.115028 -0.216626 0.652044 RAD 0.0185185 - txt002 - SPHERE CENTER -0.127519 -0.195663 0.655816 RAD 0.00617284 - txt002 - SPHERE CENTER -0.108803 -0.201738 0.670732 RAD 0.00617284 - txt002 - SPHERE CENTER -0.104303 -0.194866 0.647447 RAD 0.00617284 - txt002 - SPHERE CENTER -0.133744 -0.210551 0.637128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.110528 -0.209754 0.628759 RAD 0.00617284 - txt002 - SPHERE CENTER -0.121254 -0.231514 0.633356 RAD 0.00617284 - txt002 - SPHERE CENTER -0.138245 -0.217423 0.660413 RAD 0.00617284 - txt002 - SPHERE CENTER -0.125754 -0.238386 0.656641 RAD 0.00617284 - txt002 - SPHERE CENTER -0.119529 -0.223497 0.675329 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0723919 -0.21996 0.591563 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0673141 -0.20388 0.573526 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0609052 -0.198742 0.596811 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0490355 -0.216456 0.584361 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0788008 -0.225098 0.568278 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0605222 -0.237674 0.579113 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0838786 -0.241177 0.586315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0906706 -0.207384 0.580727 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0957484 -0.223463 0.598764 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0842617 -0.202246 0.604012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.103481 -0.281603 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER -0.126206 -0.291073 0.620293 RAD 0.00617284 - txt002 - SPHERE CENTER -0.110246 -0.293457 0.638981 RAD 0.00617284 - txt002 - SPHERE CENTER -0.119897 -0.271345 0.633733 RAD 0.00617284 - txt002 - SPHERE CENTER -0.119442 -0.279219 0.599717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.113132 -0.25949 0.613157 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0967168 -0.269749 0.597829 RAD 0.00617284 - txt002 - SPHERE CENTER -0.10979 -0.301332 0.604965 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0870656 -0.291862 0.603077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0938302 -0.303716 0.623653 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0910116 -0.245428 0.715923 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0942304 -0.234308 0.737733 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0714204 -0.238704 0.729364 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0854464 -0.221514 0.718528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.113822 -0.241032 0.724292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.105038 -0.228237 0.705088 RAD 0.00617284 - txt002 - SPHERE CENTER -0.110603 -0.252152 0.702483 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0997955 -0.258223 0.735128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0965768 -0.269343 0.713318 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0769856 -0.262619 0.726759 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0794645 -0.310405 0.682285 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0817333 -0.324811 0.702209 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0603366 -0.313378 0.697613 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0800146 -0.300317 0.704814 RAD 0.00617284 - txt002 - SPHERE CENTER -0.100861 -0.321838 0.686881 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0991425 -0.297345 0.689486 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0985923 -0.307433 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0811832 -0.334899 0.67968 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0789143 -0.320493 0.659755 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0597864 -0.323466 0.675083 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0243582 -0.277564 0.719322 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0076281 -0.275459 0.737359 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00142185 -0.270078 0.714074 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0167139 -0.255218 0.726523 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0305645 -0.282946 0.742607 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0396503 -0.262704 0.731771 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0472946 -0.285051 0.72457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0152725 -0.297806 0.730157 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0320026 -0.299911 0.71212 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00906621 -0.292425 0.706872 RAD 0.00617284 - txt002 - SPHERE CENTER -0.115031 -0.4293 0.544331 RAD 0.0555556 - txt002 - SPHERE CENTER -0.178985 -0.424299 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.190929 -0.412497 0.599471 RAD 0.00617284 - txt002 - SPHERE CENTER -0.16674 -0.417001 0.601529 RAD 0.00617284 - txt002 - SPHERE CENTER -0.174844 -0.400273 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER -0.203175 -0.419795 0.57931 RAD 0.00617284 - txt002 - SPHERE CENTER -0.18709 -0.407571 0.565115 RAD 0.00617284 - txt002 - SPHERE CENTER -0.191231 -0.431597 0.561208 RAD 0.00617284 - txt002 - SPHERE CENTER -0.195071 -0.436523 0.595564 RAD 0.00617284 - txt002 - SPHERE CENTER -0.183127 -0.448325 0.577461 RAD 0.00617284 - txt002 - SPHERE CENTER -0.170881 -0.441027 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER -0.115031 -0.4293 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER -0.10495 -0.41922 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0911807 -0.42291 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.10864 -0.40545 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.128801 -0.425611 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER -0.13249 -0.411841 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.138881 -0.435691 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.111341 -0.44307 0.638566 RAD 0.00617284 - txt002 - SPHERE CENTER -0.121421 -0.45315 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0975713 -0.44676 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER -0.131634 -0.367336 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.12515 -0.343834 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER -0.107784 -0.360946 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.122476 -0.353814 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.149 -0.350225 0.585275 RAD 0.00617284 - txt002 - SPHERE CENTER -0.146326 -0.360204 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.155484 -0.373727 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.134308 -0.357357 0.603794 RAD 0.00617284 - txt002 - SPHERE CENTER -0.140792 -0.380859 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.116942 -0.374468 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.178985 -0.424299 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.200165 -0.411775 0.505236 RAD 0.00617284 - txt002 - SPHERE CENTER -0.189948 -0.415187 0.527454 RAD 0.00617284 - txt002 - SPHERE CENTER -0.179342 -0.399922 0.511201 RAD 0.00617284 - txt002 - SPHERE CENTER -0.189202 -0.420888 0.485076 RAD 0.00617284 - txt002 - SPHERE CENTER -0.168379 -0.409035 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER -0.168023 -0.433412 0.487134 RAD 0.00617284 - txt002 - SPHERE CENTER -0.199808 -0.436152 0.501329 RAD 0.00617284 - txt002 - SPHERE CENTER -0.178629 -0.448677 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.189591 -0.439564 0.523547 RAD 0.00617284 - txt002 - SPHERE CENTER -0.131634 -0.367336 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.123305 -0.350719 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER -0.107784 -0.360946 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.116942 -0.374468 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.147155 -0.357109 0.491041 RAD 0.00617284 - txt002 - SPHERE CENTER -0.140792 -0.380859 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.155484 -0.373727 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.137998 -0.343587 0.509559 RAD 0.00617284 - txt002 - SPHERE CENTER -0.146326 -0.360204 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.122476 -0.353814 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.115031 -0.4293 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER -0.125111 -0.41922 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER -0.138881 -0.42291 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.121421 -0.40545 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.101261 -0.425611 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0975713 -0.411841 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0911807 -0.435691 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.11872 -0.44307 0.450097 RAD 0.00617284 - txt002 - SPHERE CENTER -0.10864 -0.45315 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.13249 -0.44676 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER -0.162382 -0.486264 0.544331 RAD 0.0185185 - txt002 - SPHERE CENTER -0.174264 -0.502603 0.558526 RAD 0.00617284 - txt002 - SPHERE CENTER -0.15142 -0.495376 0.564491 RAD 0.00617284 - txt002 - SPHERE CENTER -0.170327 -0.479659 0.566757 RAD 0.00617284 - txt002 - SPHERE CENTER -0.185226 -0.49349 0.538366 RAD 0.00617284 - txt002 - SPHERE CENTER -0.18129 -0.470546 0.546597 RAD 0.00617284 - txt002 - SPHERE CENTER -0.173345 -0.477151 0.524171 RAD 0.00617284 - txt002 - SPHERE CENTER -0.166319 -0.509207 0.536101 RAD 0.00617284 - txt002 - SPHERE CENTER -0.154437 -0.492868 0.521905 RAD 0.00617284 - txt002 - SPHERE CENTER -0.143475 -0.501981 0.542066 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0984274 -0.491265 0.507294 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0810612 -0.508376 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0745774 -0.484874 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0837352 -0.498397 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.104911 -0.514767 0.503387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.107585 -0.504787 0.525813 RAD 0.00617284 - txt002 - SPHERE CENTER -0.122277 -0.497655 0.507294 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0957534 -0.501244 0.484868 RAD 0.00617284 - txt002 - SPHERE CENTER -0.11312 -0.484132 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0892696 -0.477742 0.488775 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0984274 -0.491265 0.581368 RAD 0.0185185 - txt002 - SPHERE CENTER -0.082906 -0.501491 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0745774 -0.484874 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0892696 -0.477742 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.106756 -0.507882 0.597621 RAD 0.00617284 - txt002 - SPHERE CENTER -0.11312 -0.484132 0.599887 RAD 0.00617284 - txt002 - SPHERE CENTER -0.122277 -0.497655 0.581368 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0920638 -0.515014 0.579103 RAD 0.00617284 - txt002 - SPHERE CENTER -0.107585 -0.504787 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0837352 -0.498397 0.56285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.153845 -0.574159 0.618405 RAD 0.0555556 - txt002 - SPHERE CENTER 0.202534 -0.612768 0.658726 RAD 0.0185185 - txt002 - SPHERE CENTER 0.225282 -0.612732 0.668328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.22113 -0.60221 0.64638 RAD 0.00617284 - txt002 - SPHERE CENTER 0.212428 -0.591695 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER 0.206686 -0.62329 0.680674 RAD 0.00617284 - txt002 - SPHERE CENTER 0.193832 -0.602253 0.679302 RAD 0.00617284 - txt002 - SPHERE CENTER 0.183939 -0.623325 0.671072 RAD 0.00617284 - txt002 - SPHERE CENTER 0.215388 -0.633805 0.660098 RAD 0.00617284 - txt002 - SPHERE CENTER 0.192641 -0.63384 0.650495 RAD 0.00617284 - txt002 - SPHERE CENTER 0.211236 -0.623283 0.63815 RAD 0.00617284 - txt002 - SPHERE CENTER 0.225396 -0.554987 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.243024 -0.542885 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.225396 -0.554987 0.593714 RAD 0.00617284 - txt002 - SPHERE CENTER 0.219861 -0.534333 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.243024 -0.542885 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.219861 -0.534333 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.225396 -0.554987 0.643096 RAD 0.00617284 - txt002 - SPHERE CENTER 0.248559 -0.563539 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.23093 -0.575642 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.23093 -0.575642 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.184086 -0.543919 0.678886 RAD 0.0185185 - txt002 - SPHERE CENTER 0.200547 -0.527458 0.687117 RAD 0.00617284 - txt002 - SPHERE CENTER 0.205161 -0.540303 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.187702 -0.522843 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.179472 -0.531074 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.166627 -0.526459 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER 0.163011 -0.547535 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER 0.196931 -0.548533 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.18047 -0.564994 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER 0.201546 -0.561378 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER 0.130984 -0.631939 0.658726 RAD 0.0185185 - txt002 - SPHERE CENTER 0.132649 -0.643128 0.680674 RAD 0.00617284 - txt002 - SPHERE CENTER 0.152367 -0.631785 0.671072 RAD 0.00617284 - txt002 - SPHERE CENTER 0.133263 -0.618482 0.679302 RAD 0.00617284 - txt002 - SPHERE CENTER 0.111266 -0.643283 0.668328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.11188 -0.618637 0.666956 RAD 0.00617284 - txt002 - SPHERE CENTER 0.109601 -0.632094 0.64638 RAD 0.00617284 - txt002 - SPHERE CENTER 0.130371 -0.656585 0.660098 RAD 0.00617284 - txt002 - SPHERE CENTER 0.128706 -0.645397 0.63815 RAD 0.00617284 - txt002 - SPHERE CENTER 0.150088 -0.645242 0.650495 RAD 0.00617284 - txt002 - SPHERE CENTER 0.112536 -0.56309 0.678886 RAD 0.0185185 - txt002 - SPHERE CENTER 0.11011 -0.549659 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.132596 -0.555684 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER 0.118927 -0.53924 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER 0.09005 -0.557065 0.687117 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0988668 -0.546646 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0924762 -0.570497 0.666541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.103719 -0.573509 0.699462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.106145 -0.58694 0.678886 RAD 0.00617284 - txt002 - SPHERE CENTER 0.126205 -0.579534 0.691232 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0822954 -0.593331 0.618405 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0609772 -0.591664 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0822954 -0.593331 0.643096 RAD 0.00617284 - txt002 - SPHERE CENTER 0.076761 -0.572676 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0609772 -0.591664 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.076761 -0.572676 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0822954 -0.593331 0.593714 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0665116 -0.612319 0.618405 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0878298 -0.613986 0.606059 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0878298 -0.613986 0.630751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.172294 -0.643008 0.598245 RAD 0.0185185 - txt002 - SPHERE CENTER 0.189742 -0.660425 0.599616 RAD 0.00617284 - txt002 - SPHERE CENTER 0.196144 -0.636618 0.598245 RAD 0.00617284 - txt002 - SPHERE CENTER 0.185725 -0.645434 0.618821 RAD 0.00617284 - txt002 - SPHERE CENTER 0.165892 -0.666816 0.599616 RAD 0.00617284 - txt002 - SPHERE CENTER 0.161875 -0.651825 0.618821 RAD 0.00617284 - txt002 - SPHERE CENTER 0.148444 -0.649399 0.598245 RAD 0.00617284 - txt002 - SPHERE CENTER 0.17631 -0.657999 0.57904 RAD 0.00617284 - txt002 - SPHERE CENTER 0.158862 -0.640582 0.577669 RAD 0.00617284 - txt002 - SPHERE CENTER 0.182712 -0.634191 0.577669 RAD 0.00617284 - txt002 - SPHERE CENTER 0.123605 -0.6044 0.557924 RAD 0.0185185 - txt002 - SPHERE CENTER 0.107144 -0.620861 0.549693 RAD 0.00617284 - txt002 - SPHERE CENTER 0.119989 -0.625475 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER 0.102529 -0.608016 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER 0.11076 -0.599785 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER 0.106145 -0.58694 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER 0.127221 -0.583324 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER 0.128219 -0.617245 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER 0.14468 -0.600784 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER 0.141064 -0.621859 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER 0.195155 -0.585228 0.557924 RAD 0.0185185 - txt002 - SPHERE CENTER 0.203972 -0.574809 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER 0.181486 -0.568784 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER 0.201546 -0.561378 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER 0.217641 -0.591253 0.549693 RAD 0.00617284 - txt002 - SPHERE CENTER 0.215215 -0.577822 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER 0.208824 -0.601672 0.57027 RAD 0.00617284 - txt002 - SPHERE CENTER 0.197581 -0.598659 0.537348 RAD 0.00617284 - txt002 - SPHERE CENTER 0.188764 -0.609078 0.557924 RAD 0.00617284 - txt002 - SPHERE CENTER 0.175095 -0.592634 0.545578 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0329639 -0.552323 0.43322 RAD 0.0555556 - txt002 - SPHERE CENTER 0.0248832 -0.625877 0.436618 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0316054 -0.646362 0.448652 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0478 -0.627981 0.445566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0287309 -0.625173 0.460998 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00868865 -0.644258 0.439705 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00581415 -0.623069 0.45205 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00196644 -0.623773 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0277577 -0.647066 0.424272 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0210355 -0.62658 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0439523 -0.628685 0.421186 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0822954 -0.593331 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER 0.105299 -0.593994 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER 0.100664 -0.582384 0.457911 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0926585 -0.572783 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0869303 -0.604941 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0742898 -0.58373 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0639267 -0.604278 0.482603 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0949359 -0.614541 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0719323 -0.613879 0.46131 RAD 0.00617284 - txt002 - SPHERE CENTER 0.090301 -0.602932 0.448964 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0138144 -0.584567 0.497099 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0177119 -0.584898 0.521479 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0364224 -0.580268 0.506047 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0185345 -0.56353 0.509133 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00489609 -0.589197 0.512531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00407348 -0.567829 0.500186 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00879364 -0.588867 0.488152 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0129918 -0.605935 0.509445 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00909422 -0.605605 0.485065 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0317022 -0.601305 0.494013 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0244483 -0.584869 0.399581 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0473753 -0.5935 0.402668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0308315 -0.595617 0.420874 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0399691 -0.57344 0.415013 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0409921 -0.582752 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0335859 -0.562692 0.39372 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0180651 -0.574121 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0318545 -0.604929 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00892756 -0.596298 0.384149 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0153107 -0.607046 0.405442 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0355172 -0.54356 0.460062 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0495897 -0.530389 0.475494 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0261165 -0.53532 0.481355 RAD 0.00617284 - txt002 - SPHERE CENTER -0.031221 -0.519442 0.463149 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0589904 -0.538628 0.454201 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0406217 -0.527681 0.441856 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0449178 -0.551799 0.438769 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0538859 -0.554507 0.472408 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0398133 -0.567678 0.456976 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0304127 -0.559438 0.478269 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0163676 -0.511316 0.396183 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0212225 -0.48882 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00896145 -0.491256 0.408529 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00194055 -0.497372 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0286287 -0.50888 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00546563 -0.517432 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0237738 -0.531375 0.383837 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0395307 -0.502764 0.396183 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0346758 -0.525259 0.40513 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0272696 -0.505199 0.417476 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0440327 -0.593633 0.372739 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0604766 -0.607302 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0678827 -0.587242 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0604766 -0.607302 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0366265 -0.613693 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0366265 -0.613693 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0201827 -0.600023 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0440327 -0.593633 0.348047 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0275889 -0.579964 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0514389 -0.573573 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0521134 -0.520079 0.369341 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0542684 -0.523344 0.344961 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0591566 -0.541988 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0358996 -0.534291 0.357307 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0472252 -0.501435 0.353908 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0288565 -0.512382 0.366254 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0450702 -0.49817 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0704822 -0.509132 0.356995 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0683272 -0.505868 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0753703 -0.527777 0.372427 RAD 0.00617284 - txt002 - SPHERE CENTER 0.101445 -0.561087 0.406378 RAD 0.0185185 - txt002 - SPHERE CENTER 0.118381 -0.551884 0.390945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0944221 -0.550745 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.103361 -0.536664 0.403291 RAD 0.00617284 - txt002 - SPHERE CENTER 0.125404 -0.562225 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER 0.110383 -0.547006 0.424584 RAD 0.00617284 - txt002 - SPHERE CENTER 0.108468 -0.571428 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER 0.116465 -0.576307 0.394032 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0995293 -0.58551 0.409464 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0925065 -0.575168 0.388171 RAD 0.00617284 - txt002 - SPHERE CENTER 0.247614 -0.494808 0.43322 RAD 0.0555556 - txt002 - SPHERE CENTER 0.313607 -0.494287 0.399581 RAD 0.0185185 - txt002 - SPHERE CENTER 0.326876 -0.484182 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER 0.302705 -0.488171 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.310432 -0.470513 0.39372 RAD 0.00617284 - txt002 - SPHERE CENTER 0.337778 -0.490299 0.402668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.321334 -0.476629 0.415013 RAD 0.00617284 - txt002 - SPHERE CENTER 0.324509 -0.500404 0.420874 RAD 0.00617284 - txt002 - SPHERE CENTER 0.330051 -0.507957 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.316783 -0.518062 0.405442 RAD 0.00617284 - txt002 - SPHERE CENTER 0.305881 -0.511946 0.384149 RAD 0.00617284 - txt002 - SPHERE CENTER 0.269833 -0.434629 0.396183 RAD 0.0185185 - txt002 - SPHERE CENTER 0.279233 -0.426389 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER 0.286276 -0.448298 0.383837 RAD 0.00617284 - txt002 - SPHERE CENTER 0.263449 -0.445377 0.37489 RAD 0.00617284 - txt002 - SPHERE CENTER 0.262789 -0.41272 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.247006 -0.431707 0.387235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.253389 -0.420959 0.408529 RAD 0.00617284 - txt002 - SPHERE CENTER 0.285616 -0.415641 0.396183 RAD 0.00617284 - txt002 - SPHERE CENTER 0.276216 -0.42388 0.417476 RAD 0.00617284 - txt002 - SPHERE CENTER 0.29266 -0.43755 0.40513 RAD 0.00617284 - txt002 - SPHERE CENTER 0.302539 -0.452978 0.460062 RAD 0.0185185 - txt002 - SPHERE CENTER 0.320401 -0.436971 0.454201 RAD 0.00617284 - txt002 - SPHERE CENTER 0.3148 -0.455413 0.438769 RAD 0.00617284 - txt002 - SPHERE CENTER 0.29902 -0.436675 0.441856 RAD 0.00617284 - txt002 - SPHERE CENTER 0.30814 -0.434535 0.475494 RAD 0.00617284 - txt002 - SPHERE CENTER 0.286759 -0.434239 0.463149 RAD 0.00617284 - txt002 - SPHERE CENTER 0.290278 -0.450543 0.481355 RAD 0.00617284 - txt002 - SPHERE CENTER 0.32392 -0.453274 0.472408 RAD 0.00617284 - txt002 - SPHERE CENTER 0.306057 -0.469281 0.478269 RAD 0.00617284 - txt002 - SPHERE CENTER 0.318318 -0.471717 0.456976 RAD 0.00617284 - txt002 - SPHERE CENTER 0.291389 -0.554467 0.436618 RAD 0.0185185 - txt002 - SPHERE CENTER 0.314604 -0.562288 0.439705 RAD 0.00617284 - txt002 - SPHERE CENTER 0.310183 -0.541186 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER 0.306499 -0.542501 0.45205 RAD 0.00617284 - txt002 - SPHERE CENTER 0.29581 -0.575569 0.448652 RAD 0.00617284 - txt002 - SPHERE CENTER 0.287705 -0.555781 0.460998 RAD 0.00617284 - txt002 - SPHERE CENTER 0.272595 -0.567748 0.445566 RAD 0.00617284 - txt002 - SPHERE CENTER 0.299494 -0.574255 0.424272 RAD 0.00617284 - txt002 - SPHERE CENTER 0.276279 -0.566433 0.421186 RAD 0.00617284 - txt002 - SPHERE CENTER 0.295073 -0.553152 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER 0.28032 -0.513157 0.497099 RAD 0.0185185 - txt002 - SPHERE CENTER 0.298839 -0.507811 0.512531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.302049 -0.505577 0.488152 RAD 0.00617284 - txt002 - SPHERE CENTER 0.287442 -0.489718 0.500186 RAD 0.00617284 - txt002 - SPHERE CENTER 0.27711 -0.515392 0.521479 RAD 0.00617284 - txt002 - SPHERE CENTER 0.265714 -0.497299 0.509133 RAD 0.00617284 - txt002 - SPHERE CENTER 0.258591 -0.520738 0.506047 RAD 0.00617284 - txt002 - SPHERE CENTER 0.291716 -0.531251 0.509445 RAD 0.00617284 - txt002 - SPHERE CENTER 0.273198 -0.536597 0.494013 RAD 0.00617284 - txt002 - SPHERE CENTER 0.294927 -0.529016 0.485065 RAD 0.00617284 - txt002 - SPHERE CENTER 0.225396 -0.554987 0.470257 RAD 0.0185185 - txt002 - SPHERE CENTER 0.227186 -0.567359 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.246777 -0.555283 0.482603 RAD 0.00617284 - txt002 - SPHERE CENTER 0.227528 -0.54267 0.49155 RAD 0.00617284 - txt002 - SPHERE CENTER 0.205805 -0.567063 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER 0.206147 -0.542374 0.479204 RAD 0.00617284 - txt002 - SPHERE CENTER 0.204014 -0.554691 0.457911 RAD 0.00617284 - txt002 - SPHERE CENTER 0.225054 -0.579676 0.470257 RAD 0.00617284 - txt002 - SPHERE CENTER 0.223263 -0.567305 0.448964 RAD 0.00617284 - txt002 - SPHERE CENTER 0.244644 -0.567601 0.46131 RAD 0.00617284 - txt002 - SPHERE CENTER 0.258683 -0.536117 0.372739 RAD 0.0185185 - txt002 - SPHERE CENTER 0.275127 -0.549787 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282533 -0.529727 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER 0.275127 -0.549787 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.251277 -0.556177 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.251277 -0.556177 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.234833 -0.542508 0.372739 RAD 0.00617284 - txt002 - SPHERE CENTER 0.258683 -0.536117 0.348047 RAD 0.00617284 - txt002 - SPHERE CENTER 0.242239 -0.522448 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.266089 -0.516058 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.19269 -0.536638 0.406378 RAD 0.0185185 - txt002 - SPHERE CENTER 0.17251 -0.549603 0.412239 RAD 0.00617284 - txt002 - SPHERE CENTER 0.191778 -0.549105 0.427671 RAD 0.00617284 - txt002 - SPHERE CENTER 0.177908 -0.528912 0.424584 RAD 0.00617284 - txt002 - SPHERE CENTER 0.173421 -0.537136 0.390945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.178819 -0.516445 0.403291 RAD 0.00617284 - txt002 - SPHERE CENTER 0.193601 -0.524171 0.385084 RAD 0.00617284 - txt002 - SPHERE CENTER 0.187292 -0.557329 0.394032 RAD 0.00617284 - txt002 - SPHERE CENTER 0.207471 -0.544363 0.388171 RAD 0.00617284 - txt002 - SPHERE CENTER 0.20656 -0.556831 0.409464 RAD 0.00617284 - txt002 - SPHERE CENTER 0.214908 -0.476459 0.369341 RAD 0.0185185 - txt002 - SPHERE CENTER 0.209819 -0.457868 0.353908 RAD 0.00617284 - txt002 - SPHERE CENTER 0.210053 -0.453963 0.378288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.2312 -0.458164 0.366254 RAD 0.00617284 - txt002 - SPHERE CENTER 0.214674 -0.480363 0.344961 RAD 0.00617284 - txt002 - SPHERE CENTER 0.236055 -0.480659 0.357307 RAD 0.00617284 - txt002 - SPHERE CENTER 0.219763 -0.498954 0.360393 RAD 0.00617284 - txt002 - SPHERE CENTER 0.193527 -0.476163 0.356995 RAD 0.00617284 - txt002 - SPHERE CENTER 0.198616 -0.494753 0.372427 RAD 0.00617284 - txt002 - SPHERE CENTER 0.193761 -0.472258 0.381374 RAD 0.00617284 - txt002 - SPHERE CENTER -0.172546 -0.643951 1.11022e-16 RAD 0.166667 - txt002 - SPHERE CENTER -0.157543 -0.835815 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.122136 -0.871646 0.165419 RAD 0.0185185 - txt002 - SPHERE CENTER -0.102403 -0.871334 0.180258 RAD 0.00617284 - txt002 - SPHERE CENTER -0.100577 -0.862937 0.157111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.113406 -0.850164 0.173902 RAD 0.00617284 - txt002 - SPHERE CENTER -0.123961 -0.880044 0.188567 RAD 0.00617284 - txt002 - SPHERE CENTER -0.134964 -0.858873 0.182211 RAD 0.00617284 - txt002 - SPHERE CENTER -0.143694 -0.880356 0.173728 RAD 0.00617284 - txt002 - SPHERE CENTER -0.111133 -0.892817 0.171776 RAD 0.00617284 - txt002 - SPHERE CENTER -0.130866 -0.893129 0.156937 RAD 0.00617284 - txt002 - SPHERE CENTER -0.109307 -0.884419 0.148628 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0854653 -0.82339 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0654286 -0.811594 0.114524 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0820122 -0.820516 0.0985541 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0876595 -0.80102 0.112614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0688817 -0.814468 0.138803 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0911125 -0.803895 0.136894 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0889183 -0.826265 0.147112 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0632344 -0.833964 0.124743 RAD 0.00617284 - txt002 - SPHERE CENTER -0.083271 -0.845761 0.133052 RAD 0.00617284 - txt002 - SPHERE CENTER -0.079818 -0.842886 0.108773 RAD 0.00617284 - txt002 - SPHERE CENTER -0.135649 -0.799077 0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER -0.120908 -0.781177 0.180075 RAD 0.00617284 - txt002 - SPHERE CENTER -0.113462 -0.795477 0.161374 RAD 0.00617284 - txt002 - SPHERE CENTER -0.13149 -0.778973 0.157875 RAD 0.00617284 - txt002 - SPHERE CENTER -0.143095 -0.784778 0.190293 RAD 0.00617284 - txt002 - SPHERE CENTER -0.153678 -0.782573 0.168094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.157836 -0.802678 0.181811 RAD 0.00617284 - txt002 - SPHERE CENTER -0.125067 -0.801282 0.193792 RAD 0.00617284 - txt002 - SPHERE CENTER -0.139808 -0.819182 0.18531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.11762 -0.815582 0.175091 RAD 0.00617284 - txt002 - SPHERE CENTER -0.194213 -0.884071 0.153697 RAD 0.0185185 - txt002 - SPHERE CENTER -0.197746 -0.891905 0.176845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.175383 -0.884286 0.169668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.193701 -0.867957 0.172398 RAD 0.00617284 - txt002 - SPHERE CENTER -0.216576 -0.89169 0.160875 RAD 0.00617284 - txt002 - SPHERE CENTER -0.212531 -0.867741 0.156428 RAD 0.00617284 - txt002 - SPHERE CENTER -0.213043 -0.883856 0.137727 RAD 0.00617284 - txt002 - SPHERE CENTER -0.198259 -0.908019 0.158144 RAD 0.00617284 - txt002 - SPHERE CENTER -0.194726 -0.900186 0.134996 RAD 0.00617284 - txt002 - SPHERE CENTER -0.175896 -0.900401 0.150967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.207727 -0.811502 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.212743 -0.794108 0.176661 RAD 0.00617284 - txt002 - SPHERE CENTER -0.189621 -0.802328 0.173931 RAD 0.00617284 - txt002 - SPHERE CENTER -0.199907 -0.788345 0.156372 RAD 0.00617284 - txt002 - SPHERE CENTER -0.230849 -0.803282 0.162601 RAD 0.00617284 - txt002 - SPHERE CENTER -0.218012 -0.797518 0.142311 RAD 0.00617284 - txt002 - SPHERE CENTER -0.225832 -0.820676 0.14581 RAD 0.00617284 - txt002 - SPHERE CENTER -0.220563 -0.817265 0.18016 RAD 0.00617284 - txt002 - SPHERE CENTER -0.215547 -0.83466 0.163369 RAD 0.00617284 - txt002 - SPHERE CENTER -0.197441 -0.825486 0.177429 RAD 0.00617284 - txt002 - SPHERE CENTER -0.229621 -0.84824 0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.25245 -0.843832 0.107698 RAD 0.00617284 - txt002 - SPHERE CENTER -0.233837 -0.846687 0.123668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.235043 -0.826426 0.109608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.248234 -0.845385 0.0834188 RAD 0.00617284 - txt002 - SPHERE CENTER -0.230827 -0.827978 0.0853287 RAD 0.00617284 - txt002 - SPHERE CENTER -0.225404 -0.849792 0.0751099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.247028 -0.865646 0.0974792 RAD 0.00617284 - txt002 - SPHERE CENTER -0.224198 -0.870053 0.0891702 RAD 0.00617284 - txt002 - SPHERE CENTER -0.228415 -0.868501 0.113449 RAD 0.00617284 - txt002 - SPHERE CENTER -0.14403 -0.908384 0.104938 RAD 0.0185185 - txt002 - SPHERE CENTER -0.128672 -0.926643 0.111295 RAD 0.00617284 - txt002 - SPHERE CENTER -0.1198 -0.904034 0.106848 RAD 0.00617284 - txt002 - SPHERE CENTER -0.133221 -0.90826 0.127138 RAD 0.00617284 - txt002 - SPHERE CENTER -0.152902 -0.930993 0.109385 RAD 0.00617284 - txt002 - SPHERE CENTER -0.157451 -0.912609 0.125228 RAD 0.00617284 - txt002 - SPHERE CENTER -0.16826 -0.912733 0.103028 RAD 0.00617284 - txt002 - SPHERE CENTER -0.139481 -0.926768 0.0890951 RAD 0.00617284 - txt002 - SPHERE CENTER -0.154838 -0.908508 0.0827387 RAD 0.00617284 - txt002 - SPHERE CENTER -0.130608 -0.904159 0.0846485 RAD 0.00617284 - txt002 - SPHERE CENTER -0.179437 -0.872552 0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER -0.188167 -0.894035 0.0421477 RAD 0.00617284 - txt002 - SPHERE CENTER -0.172046 -0.89378 0.0608487 RAD 0.00617284 - txt002 - SPHERE CENTER -0.195141 -0.885777 0.0643473 RAD 0.00617284 - txt002 - SPHERE CENTER -0.195558 -0.872807 0.0319289 RAD 0.00617284 - txt002 - SPHERE CENTER -0.202532 -0.864549 0.0541285 RAD 0.00617284 - txt002 - SPHERE CENTER -0.186828 -0.851325 0.0404111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.172463 -0.880811 0.0284303 RAD 0.00617284 - txt002 - SPHERE CENTER -0.163733 -0.859328 0.0369125 RAD 0.00617284 - txt002 - SPHERE CENTER -0.156342 -0.880556 0.0471312 RAD 0.00617284 - txt002 - SPHERE CENTER -0.107359 -0.860128 0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0905999 -0.853284 0.0455609 RAD 0.00617284 - txt002 - SPHERE CENTER -0.111382 -0.840233 0.0482916 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0940331 -0.839638 0.0658506 RAD 0.00617284 - txt002 - SPHERE CENTER -0.086577 -0.873178 0.0596212 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0900102 -0.859532 0.079911 RAD 0.00617284 - txt002 - SPHERE CENTER -0.103336 -0.880022 0.0764123 RAD 0.00617284 - txt002 - SPHERE CENTER -0.103926 -0.873773 0.0420622 RAD 0.00617284 - txt002 - SPHERE CENTER -0.120685 -0.880618 0.0588533 RAD 0.00617284 - txt002 - SPHERE CENTER -0.124708 -0.860723 0.044793 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0133465 -0.69376 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.0838533 -0.674309 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.103063 -0.66171 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0876683 -0.673446 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0800983 -0.653258 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0992478 -0.662574 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0762832 -0.654121 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0800382 -0.675172 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.106818 -0.682761 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0876083 -0.69536 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0914233 -0.694497 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0539145 -0.666287 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0547519 -0.662466 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0439578 -0.682791 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0332597 -0.660752 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0647085 -0.645962 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0432164 -0.644249 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0638711 -0.649783 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0754066 -0.668 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0745692 -0.671821 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0646126 -0.688325 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0325183 -0.62221 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0446211 -0.604582 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.053173 -0.627745 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0325183 -0.62221 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0239663 -0.599047 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0118635 -0.616676 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0118635 -0.616676 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0446211 -0.604582 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0325183 -0.62221 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.053173 -0.627745 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0432853 -0.701782 0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0608821 -0.693716 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0652402 -0.694884 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0496759 -0.677932 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0389272 -0.700615 0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.027721 -0.684831 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0213304 -0.708681 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0544915 -0.717566 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0368947 -0.725632 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0588496 -0.718734 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00804971 -0.649684 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.00328338 -0.628657 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0152909 -0.642244 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.000378614 -0.630031 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.026624 -0.636097 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.022962 -0.637471 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0313903 -0.657124 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0117117 -0.648309 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.016478 -0.669336 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.00686255 -0.661896 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0272215 -0.721234 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0310802 -0.720593 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00820099 -0.718114 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0246945 -0.7 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0501007 -0.723713 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.043715 -0.70312 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.046242 -0.724354 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0336072 -0.741827 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0297485 -0.742467 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.010728 -0.739347 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0646815 -0.745859 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0887955 -0.750021 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0813312 -0.732161 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.078459 -0.729506 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0721458 -0.763719 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0618093 -0.743204 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0480318 -0.759557 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.075018 -0.766375 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.050904 -0.762212 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0675537 -0.748514 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0058253 -0.76531 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.00415829 -0.786629 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0148294 -0.770845 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0058253 -0.76531 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.024813 -0.781094 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.02648 -0.759776 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.02648 -0.759776 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00415829 -0.786629 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0058253 -0.76531 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0148294 -0.770845 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0347427 -0.737837 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0542122 -0.747099 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0550267 -0.7241 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0553974 -0.743371 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0339282 -0.760836 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0351134 -0.757108 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0144587 -0.751574 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0335575 -0.741565 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.014088 -0.732303 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0343719 -0.718566 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.172546 -0.643951 0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER -0.142305 -0.61371 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.125845 -0.597249 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER -0.12123 -0.610094 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.138689 -0.592635 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.14692 -0.600865 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.159765 -0.596251 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.163381 -0.617326 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.12946 -0.618324 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.145921 -0.634785 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.124846 -0.631169 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.100996 -0.624779 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0833673 -0.612676 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.100996 -0.624779 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.10653 -0.604124 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0833673 -0.612676 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.10653 -0.604124 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.100996 -0.624779 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0778329 -0.633331 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0954616 -0.645433 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0954616 -0.645433 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.153374 -0.5724 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.141271 -0.554772 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.13272 -0.577935 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.153374 -0.5724 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.161926 -0.549237 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.174029 -0.566866 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.174029 -0.566866 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.141271 -0.554772 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.153374 -0.5724 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.13272 -0.577935 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.213855 -0.632882 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.216282 -0.61945 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.193796 -0.625476 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.207465 -0.609032 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.236341 -0.626857 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER -0.227525 -0.616438 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.233915 -0.640288 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.222672 -0.6433 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.220246 -0.656732 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.200186 -0.649326 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.224924 -0.591572 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.2291 -0.567237 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.209804 -0.576452 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.209804 -0.576452 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.24422 -0.582357 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.224924 -0.591572 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.240045 -0.606693 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.24422 -0.582357 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.240045 -0.606693 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.224924 -0.591572 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.244096 -0.663122 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.265414 -0.661455 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.244096 -0.663122 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.249631 -0.642468 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.265414 -0.661455 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.249631 -0.642468 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.244096 -0.663122 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.25988 -0.68211 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.238562 -0.683777 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.238562 -0.683777 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.161477 -0.68526 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.148046 -0.687686 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.137627 -0.678869 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.154071 -0.6652 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.171896 -0.694077 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER -0.177921 -0.671591 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER -0.185327 -0.691651 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.155452 -0.707746 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER -0.168883 -0.70532 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.145033 -0.698929 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.191718 -0.715501 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.190051 -0.736819 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.171063 -0.721035 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.191718 -0.715501 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.210706 -0.731284 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.212373 -0.709966 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.212373 -0.709966 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.190051 -0.736819 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.191718 -0.715501 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.171063 -0.721035 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.120168 -0.696329 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.095832 -0.700504 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.105047 -0.681209 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.105047 -0.681209 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.110952 -0.715624 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.120168 -0.696329 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER -0.135288 -0.711449 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER -0.110952 -0.715624 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.135288 -0.711449 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.120168 -0.696329 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER -0.343435 -0.786005 8.51251e-17 RAD 0.0555556 - txt002 - SPHERE CENTER -0.392454 -0.82165 0.0425863 RAD 0.0185185 - txt002 - SPHERE CENTER -0.400556 -0.824791 0.065698 RAD 0.00617284 - txt002 - SPHERE CENTER -0.376528 -0.821021 0.0614442 RAD 0.00617284 - txt002 - SPHERE CENTER -0.392663 -0.802599 0.058292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.416482 -0.82542 0.0468401 RAD 0.00617284 - txt002 - SPHERE CENTER -0.408589 -0.803228 0.0394341 RAD 0.00617284 - txt002 - SPHERE CENTER -0.40838 -0.822279 0.0237283 RAD 0.00617284 - txt002 - SPHERE CENTER -0.400347 -0.843843 0.0499923 RAD 0.00617284 - txt002 - SPHERE CENTER -0.392245 -0.840701 0.0268805 RAD 0.00617284 - txt002 - SPHERE CENTER -0.376319 -0.840073 0.0457385 RAD 0.00617284 - txt002 - SPHERE CENTER -0.323622 -0.80984 0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER -0.308073 -0.80634 0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER -0.300378 -0.802721 0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER -0.316395 -0.786996 0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER -0.331317 -0.813459 0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER -0.339639 -0.794116 0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER -0.346866 -0.81696 0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER -0.315299 -0.829184 0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER -0.330849 -0.832685 0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.307605 -0.825565 0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER -0.370774 -0.753118 0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER -0.367981 -0.734271 0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER -0.348136 -0.745269 0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER -0.362711 -0.731279 0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER -0.390619 -0.74212 0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.385349 -0.739128 0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER -0.393412 -0.760966 0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER -0.376044 -0.756109 0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER -0.378837 -0.774956 0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER -0.356199 -0.767107 0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER -0.412267 -0.797815 -0.0246914 RAD 0.0185185 - txt002 - SPHERE CENTER -0.436217 -0.793573 -0.0204376 RAD 0.00617284 - txt002 - SPHERE CENTER -0.420728 -0.796968 -0.00151032 RAD 0.00617284 - txt002 - SPHERE CENTER -0.419454 -0.776294 -0.0149506 RAD 0.00617284 - txt002 - SPHERE CENTER -0.427756 -0.79442 -0.0436186 RAD 0.00617284 - txt002 - SPHERE CENTER -0.410993 -0.777141 -0.0381316 RAD 0.00617284 - txt002 - SPHERE CENTER -0.403807 -0.798662 -0.0478724 RAD 0.00617284 - txt002 - SPHERE CENTER -0.42903 -0.815094 -0.0301783 RAD 0.00617284 - txt002 - SPHERE CENTER -0.405081 -0.819335 -0.0344321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.413542 -0.818489 -0.0112511 RAD 0.00617284 - txt002 - SPHERE CENTER -0.390587 -0.729282 -0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER -0.392427 -0.704862 -0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER -0.373948 -0.714218 0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.374248 -0.717401 -0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER -0.409067 -0.719927 -0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER -0.390887 -0.732465 -0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.407227 -0.744347 -0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.408767 -0.716744 0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER -0.406927 -0.741164 0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER -0.390287 -0.726099 0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER -0.363249 -0.76217 -0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER -0.356966 -0.747522 -0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER -0.352002 -0.740618 -0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER -0.339469 -0.759239 -0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER -0.368213 -0.769074 -0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER -0.350716 -0.780791 -0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER -0.374496 -0.783722 -0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER -0.380746 -0.750453 -0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER -0.387029 -0.765101 -0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.375782 -0.743549 -0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER -0.365116 -0.854538 -0.0178949 RAD 0.0185185 - txt002 - SPHERE CENTER -0.365674 -0.878086 -0.0104889 RAD 0.00617284 - txt002 - SPHERE CENTER -0.346241 -0.863875 -0.00500196 RAD 0.00617284 - txt002 - SPHERE CENTER -0.367962 -0.859887 0.00604126 RAD 0.00617284 - txt002 - SPHERE CENTER -0.384548 -0.868748 -0.0233819 RAD 0.00617284 - txt002 - SPHERE CENTER -0.386837 -0.85055 -0.00685171 RAD 0.00617284 - txt002 - SPHERE CENTER -0.38399 -0.8452 -0.0307879 RAD 0.00617284 - txt002 - SPHERE CENTER -0.362827 -0.872736 -0.0344251 RAD 0.00617284 - txt002 - SPHERE CENTER -0.362269 -0.849188 -0.0418311 RAD 0.00617284 - txt002 - SPHERE CENTER -0.343394 -0.858526 -0.0289382 RAD 0.00617284 - txt002 - SPHERE CENTER -0.316097 -0.818893 -0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER -0.297057 -0.819591 -0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER -0.304244 -0.79807 -0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER -0.293153 -0.814956 -0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER -0.30891 -0.840413 -0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.305006 -0.835779 -0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER -0.32795 -0.839716 -0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER -0.320001 -0.823527 -0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER -0.339041 -0.822829 -0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER -0.327188 -0.802007 -0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER -0.296284 -0.842728 0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER -0.272611 -0.848999 0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER -0.278432 -0.829121 -0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.281616 -0.828835 0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER -0.290462 -0.862606 0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER -0.299468 -0.842441 0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.314135 -0.856335 0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.287278 -0.862893 -0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER -0.310951 -0.856621 -0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER -0.293099 -0.843015 -0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER -0.358439 -0.594141 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.389119 -0.547576 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.386849 -0.525642 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.366733 -0.538964 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.379645 -0.528407 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.409235 -0.534255 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.402031 -0.537019 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.411505 -0.556189 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.396323 -0.544812 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.398593 -0.566746 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.376207 -0.558134 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.317871 -0.566667 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.299647 -0.551072 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.29885 -0.563547 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.315344 -0.545434 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.318667 -0.554192 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.334364 -0.548554 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.336891 -0.569787 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.302174 -0.572306 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER -0.320398 -0.587901 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.301377 -0.584781 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.339267 -0.522591 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.327164 -0.504962 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.318612 -0.528125 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.339267 -0.522591 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.347819 -0.499428 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.359921 -0.517056 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.359921 -0.517056 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.327164 -0.504962 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.339267 -0.522591 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.318612 -0.528125 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.429687 -0.57505 0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER -0.446515 -0.55776 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.428387 -0.562617 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.423296 -0.5512 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.447815 -0.570193 0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER -0.424596 -0.563633 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.430987 -0.587483 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER -0.452905 -0.58161 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER -0.436077 -0.5989 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER -0.434777 -0.586467 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER -0.379835 -0.550064 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.372012 -0.535334 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.359551 -0.536327 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.35918 -0.555599 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.392296 -0.549071 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.379464 -0.569335 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.400119 -0.563801 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.392667 -0.529799 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.400489 -0.54453 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.380205 -0.530793 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399007 -0.621614 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.420252 -0.632748 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER -0.408963 -0.638118 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.419661 -0.61608 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.410295 -0.616244 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER -0.409705 -0.599576 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.38905 -0.60511 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399597 -0.638282 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.378352 -0.627149 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.388308 -0.643653 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.408291 -0.619127 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.415912 -0.617918 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER -0.39183 -0.616439 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.406911 -0.597788 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER -0.432372 -0.620605 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER -0.423371 -0.600475 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER -0.424751 -0.621814 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.417292 -0.639257 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER -0.409671 -0.640465 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER -0.39321 -0.637778 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.37761 -0.665691 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.375943 -0.687009 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.356956 -0.671225 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.37761 -0.665691 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.396598 -0.681475 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.398265 -0.660156 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.398265 -0.660156 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.375943 -0.687009 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.37761 -0.665691 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.356956 -0.671225 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.337042 -0.638217 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.320629 -0.641183 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER -0.313702 -0.630777 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.328614 -0.618565 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.34397 -0.648623 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.351955 -0.626005 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.360383 -0.645657 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.329058 -0.660835 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.345471 -0.65787 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.32213 -0.65043 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.358439 -0.594141 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.409774 -0.542042 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.413579 -0.517869 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.395831 -0.525596 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.393219 -0.528508 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.427522 -0.534315 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.407161 -0.544953 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.423716 -0.558488 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.430134 -0.531404 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.426328 -0.555577 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.412386 -0.539131 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.379835 -0.550064 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.375068 -0.529037 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.356494 -0.542624 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.371406 -0.530412 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.398409 -0.536477 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.394747 -0.537852 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.403175 -0.557504 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.383497 -0.548689 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.388263 -0.569716 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.364922 -0.562276 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.339267 -0.522591 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.327164 -0.504962 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.318612 -0.528125 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.339267 -0.522591 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.347819 -0.499428 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.359921 -0.517056 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.359921 -0.517056 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.327164 -0.504962 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.339267 -0.522591 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.318612 -0.528125 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.388377 -0.586119 -0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.399584 -0.570335 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.403942 -0.569167 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.381987 -0.562269 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.384019 -0.587286 -0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER -0.366422 -0.57922 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.372813 -0.60307 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER -0.405974 -0.594185 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER -0.394768 -0.609969 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER -0.410332 -0.593017 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER -0.317871 -0.566667 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.317033 -0.562847 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.327827 -0.583171 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.338525 -0.561133 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.307077 -0.546343 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.328569 -0.544629 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.307914 -0.550163 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.296378 -0.568381 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER -0.297216 -0.572202 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.307172 -0.588706 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.337042 -0.638217 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.317573 -0.64748 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER -0.316758 -0.624481 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.316388 -0.643752 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.337857 -0.661216 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER -0.336672 -0.657489 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.357326 -0.651954 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER -0.338228 -0.641945 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER -0.357697 -0.632683 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.337413 -0.618946 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.428945 -0.613592 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.451897 -0.612625 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER -0.432663 -0.614807 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER -0.436515 -0.593593 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.448179 -0.61141 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER -0.432797 -0.592379 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER -0.425227 -0.612377 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.444328 -0.632624 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER -0.421376 -0.633591 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER -0.425094 -0.634806 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER -0.37761 -0.665691 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.375943 -0.687009 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.356956 -0.671225 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.37761 -0.665691 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.396598 -0.681475 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.398265 -0.660156 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.398265 -0.660156 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.375943 -0.687009 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.37761 -0.665691 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER -0.356956 -0.671225 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.399007 -0.621614 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER -0.402865 -0.620974 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER -0.379986 -0.618494 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.39648 -0.600381 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.421886 -0.624094 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER -0.4155 -0.603501 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER -0.418027 -0.624734 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER -0.405392 -0.642207 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.401533 -0.642848 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.382513 -0.639728 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER -0.157543 -0.835815 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER -0.119969 -0.899353 -0.117284 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0977075 -0.909872 -0.115431 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0997803 -0.886771 -0.1239 RAD 0.00617284 - txt002 - SPHERE CENTER -0.104052 -0.891613 -0.100068 RAD 0.00617284 - txt002 - SPHERE CENTER -0.117896 -0.922453 -0.108814 RAD 0.00617284 - txt002 - SPHERE CENTER -0.124241 -0.904194 -0.0934517 RAD 0.00617284 - txt002 - SPHERE CENTER -0.140158 -0.911935 -0.110668 RAD 0.00617284 - txt002 - SPHERE CENTER -0.113625 -0.917612 -0.132647 RAD 0.00617284 - txt002 - SPHERE CENTER -0.135886 -0.907093 -0.1345 RAD 0.00617284 - txt002 - SPHERE CENTER -0.115698 -0.894512 -0.141116 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0844101 -0.836885 -0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0627848 -0.826973 -0.106005 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0805529 -0.830202 -0.122844 RAD 0.00617284 - txt002 - SPHERE CENTER -0.083104 -0.81296 -0.105354 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0666419 -0.833656 -0.0825505 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0869612 -0.819643 -0.0818993 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0882673 -0.843568 -0.0759343 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0640908 -0.850898 -0.10004 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0857161 -0.860809 -0.093424 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0818589 -0.854126 -0.116879 RAD 0.00617284 - txt002 - SPHERE CENTER -0.130205 -0.868703 -0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER -0.11253 -0.867758 -0.0334138 RAD 0.00617284 - txt002 - SPHERE CENTER -0.107566 -0.860854 -0.0565949 RAD 0.00617284 - txt002 - SPHERE CENTER -0.122142 -0.846864 -0.0423994 RAD 0.00617284 - txt002 - SPHERE CENTER -0.135168 -0.875606 -0.0274488 RAD 0.00617284 - txt002 - SPHERE CENTER -0.14478 -0.854713 -0.0364345 RAD 0.00617284 - txt002 - SPHERE CENTER -0.152843 -0.876551 -0.0446649 RAD 0.00617284 - txt002 - SPHERE CENTER -0.120593 -0.889596 -0.0416443 RAD 0.00617284 - txt002 - SPHERE CENTER -0.138267 -0.890541 -0.0588603 RAD 0.00617284 - txt002 - SPHERE CENTER -0.115629 -0.882692 -0.0648253 RAD 0.00617284 - txt002 - SPHERE CENTER -0.193102 -0.898283 -0.129006 RAD 0.0185185 - txt002 - SPHERE CENTER -0.201143 -0.920038 -0.120537 RAD 0.00617284 - txt002 - SPHERE CENTER -0.17991 -0.910616 -0.112168 RAD 0.00617284 - txt002 - SPHERE CENTER -0.201384 -0.900209 -0.105825 RAD 0.00617284 - txt002 - SPHERE CENTER -0.214335 -0.907705 -0.137375 RAD 0.00617284 - txt002 - SPHERE CENTER -0.214576 -0.887876 -0.122663 RAD 0.00617284 - txt002 - SPHERE CENTER -0.206294 -0.88595 -0.145845 RAD 0.00617284 - txt002 - SPHERE CENTER -0.192861 -0.918112 -0.143718 RAD 0.00617284 - txt002 - SPHERE CENTER -0.18482 -0.896357 -0.152187 RAD 0.00617284 - txt002 - SPHERE CENTER -0.171628 -0.90869 -0.135349 RAD 0.00617284 - txt002 - SPHERE CENTER -0.203337 -0.867633 -0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER -0.209658 -0.868948 -0.0385197 RAD 0.00617284 - txt002 - SPHERE CENTER -0.186008 -0.865773 -0.0448623 RAD 0.00617284 - txt002 - SPHERE CENTER -0.202239 -0.84746 -0.0481565 RAD 0.00617284 - txt002 - SPHERE CENTER -0.226988 -0.870808 -0.0560094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.219569 -0.84932 -0.0656463 RAD 0.00617284 - txt002 - SPHERE CENTER -0.220667 -0.869493 -0.0798417 RAD 0.00617284 - txt002 - SPHERE CENTER -0.210757 -0.889121 -0.0527151 RAD 0.00617284 - txt002 - SPHERE CENTER -0.204436 -0.887806 -0.0765474 RAD 0.00617284 - txt002 - SPHERE CENTER -0.187106 -0.885946 -0.0590577 RAD 0.00617284 - txt002 - SPHERE CENTER -0.230676 -0.834745 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER -0.252002 -0.824206 -0.116217 RAD 0.00617284 - txt002 - SPHERE CENTER -0.234336 -0.827952 -0.0993785 RAD 0.00617284 - txt002 - SPHERE CENTER -0.231282 -0.810793 -0.116868 RAD 0.00617284 - txt002 - SPHERE CENTER -0.248342 -0.830999 -0.139672 RAD 0.00617284 - txt002 - SPHERE CENTER -0.227621 -0.817586 -0.140323 RAD 0.00617284 - txt002 - SPHERE CENTER -0.227016 -0.841538 -0.146288 RAD 0.00617284 - txt002 - SPHERE CENTER -0.251396 -0.848158 -0.122182 RAD 0.00617284 - txt002 - SPHERE CENTER -0.23007 -0.858698 -0.128798 RAD 0.00617284 - txt002 - SPHERE CENTER -0.23373 -0.851905 -0.105343 RAD 0.00617284 - txt002 - SPHERE CENTER -0.147308 -0.866465 -0.177765 RAD 0.0185185 - txt002 - SPHERE CENTER -0.130609 -0.876203 -0.193128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.124356 -0.857385 -0.178416 RAD 0.00617284 - txt002 - SPHERE CENTER -0.128522 -0.879733 -0.16878 RAD 0.00617284 - txt002 - SPHERE CENTER -0.153561 -0.885283 -0.192477 RAD 0.00617284 - txt002 - SPHERE CENTER -0.151474 -0.888813 -0.168128 RAD 0.00617284 - txt002 - SPHERE CENTER -0.170259 -0.875546 -0.177114 RAD 0.00617284 - txt002 - SPHERE CENTER -0.149395 -0.862935 -0.202114 RAD 0.00617284 - txt002 - SPHERE CENTER -0.166093 -0.853198 -0.186751 RAD 0.00617284 - txt002 - SPHERE CENTER -0.143141 -0.844117 -0.187402 RAD 0.00617284 - txt002 - SPHERE CENTER -0.184881 -0.802927 -0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER -0.180723 -0.785723 -0.188808 RAD 0.00617284 - txt002 - SPHERE CENTER -0.173028 -0.782104 -0.165627 RAD 0.00617284 - txt002 - SPHERE CENTER -0.161937 -0.798991 -0.179823 RAD 0.00617284 - txt002 - SPHERE CENTER -0.192576 -0.806546 -0.194773 RAD 0.00617284 - txt002 - SPHERE CENTER -0.17379 -0.819813 -0.185788 RAD 0.00617284 - txt002 - SPHERE CENTER -0.196734 -0.82375 -0.177557 RAD 0.00617284 - txt002 - SPHERE CENTER -0.203667 -0.78966 -0.180578 RAD 0.00617284 - txt002 - SPHERE CENTER -0.207825 -0.806864 -0.163362 RAD 0.00617284 - txt002 - SPHERE CENTER -0.195972 -0.786041 -0.157397 RAD 0.00617284 - txt002 - SPHERE CENTER -0.111748 -0.803997 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER -0.108311 -0.798532 -0.183703 RAD 0.00617284 - txt002 - SPHERE CENTER -0.119537 -0.819589 -0.17736 RAD 0.00617284 - txt002 - SPHERE CENTER -0.131037 -0.797989 -0.174066 RAD 0.00617284 - txt002 - SPHERE CENTER -0.100522 -0.78294 -0.166213 RAD 0.00617284 - txt002 - SPHERE CENTER -0.123249 -0.782397 -0.156576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.10396 -0.788405 -0.142381 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0890219 -0.80454 -0.169507 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0924597 -0.810005 -0.145675 RAD 0.00617284 - txt002 - SPHERE CENTER -0.100248 -0.825597 -0.163165 RAD 0.00617284 - txt002 - SPHERE CENTER -0.172546 -0.643951 -0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER -0.202787 -0.61371 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.200937 -0.595399 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.194794 -0.591462 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.180539 -0.605717 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.208929 -0.617647 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.188531 -0.627965 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER -0.210779 -0.635958 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.223185 -0.603392 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER -0.225035 -0.621702 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.217042 -0.599454 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER -0.244096 -0.624779 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.260374 -0.607636 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.240901 -0.612854 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.237705 -0.600929 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.26357 -0.619561 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER -0.240901 -0.612854 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.247291 -0.636704 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.266765 -0.631486 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.250487 -0.648629 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.247291 -0.636704 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.191718 -0.5724 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.185011 -0.549732 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.167868 -0.56601 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.179793 -0.569205 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.208861 -0.556122 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.203643 -0.575596 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.215568 -0.578791 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.196936 -0.552927 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.203643 -0.575596 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.179793 -0.569205 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.131237 -0.632882 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.131575 -0.625593 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.15071 -0.6381 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER -0.146508 -0.614836 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.112102 -0.620375 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER -0.127034 -0.609618 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.111763 -0.627664 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER -0.116304 -0.643639 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.115965 -0.650927 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.135439 -0.656145 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.120168 -0.591572 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.105912 -0.577317 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER -0.111438 -0.600302 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.128897 -0.582843 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.114642 -0.568587 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.137627 -0.574113 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.128897 -0.582843 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0971825 -0.586046 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.111438 -0.600302 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.102708 -0.609032 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.100996 -0.663122 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0783272 -0.656415 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0978007 -0.651197 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0946054 -0.639272 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0815225 -0.66834 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0978007 -0.651197 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.104191 -0.675047 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0847178 -0.680265 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.107387 -0.686972 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.104191 -0.675047 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.183615 -0.68526 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER -0.182351 -0.708085 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER -0.165569 -0.700531 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.188833 -0.704733 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER -0.200397 -0.692813 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER -0.206879 -0.689462 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER -0.201661 -0.669989 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.177134 -0.688611 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER -0.178397 -0.665787 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER -0.160351 -0.681058 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER -0.153374 -0.715501 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.136231 -0.731779 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.129524 -0.70911 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.141449 -0.712305 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.160081 -0.738169 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER -0.165299 -0.718696 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.177224 -0.721891 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.148156 -0.734974 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER -0.165299 -0.718696 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.141449 -0.712305 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.224924 -0.696329 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER -0.23918 -0.710584 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER -0.216195 -0.705059 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.233654 -0.687599 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER -0.24791 -0.701855 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.242384 -0.678869 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER -0.233654 -0.687599 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.23045 -0.719314 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER -0.216195 -0.705059 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER -0.207465 -0.713788 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0133465 -0.69376 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.0631985 -0.668775 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0667914 -0.661946 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0511945 -0.680354 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0452771 -0.65711 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0787954 -0.650366 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0572811 -0.64553 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0752026 -0.657195 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0847128 -0.673611 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.08112 -0.680439 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.069116 -0.692019 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00804971 -0.649684 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.000226782 -0.634953 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0122343 -0.635947 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.012605 -0.655218 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0205108 -0.64869 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00767898 -0.668955 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0283337 -0.66342 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0208815 -0.629419 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0287044 -0.644149 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00842045 -0.630413 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0325183 -0.62221 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0446211 -0.604582 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.053173 -0.627745 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0325183 -0.62221 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0239663 -0.599047 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0118635 -0.616676 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0118635 -0.616676 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0446211 -0.604582 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0325183 -0.62221 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.053173 -0.627745 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0845947 -0.712851 -0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER 0.107813 -0.706291 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0896851 -0.701434 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0909853 -0.689001 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.102723 -0.717709 -0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0858949 -0.700418 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0795043 -0.724268 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.101422 -0.730141 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0782041 -0.736701 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0832945 -0.725284 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0539145 -0.666287 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0721382 -0.650692 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.072935 -0.663167 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0564414 -0.645053 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0531177 -0.653812 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0374209 -0.648173 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.034894 -0.669407 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0696112 -0.671925 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0513875 -0.68752 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.070408 -0.6844 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0347427 -0.737837 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0511556 -0.740802 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0580833 -0.730397 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.043171 -0.718185 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.027815 -0.748242 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0198304 -0.725625 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0114021 -0.745277 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0427273 -0.760455 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0263144 -0.757489 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0496549 -0.750049 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0440268 -0.740325 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.0650768 -0.746894 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0607735 -0.723153 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0653796 -0.739183 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.04833 -0.764065 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0486329 -0.756355 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.02728 -0.757496 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0437239 -0.748035 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0226739 -0.741466 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0394207 -0.724295 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0058253 -0.76531 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER -0.00415829 -0.786629 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0148294 -0.770845 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0058253 -0.76531 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER -0.024813 -0.781094 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER -0.02648 -0.759776 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER -0.02648 -0.759776 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00415829 -0.786629 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0058253 -0.76531 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.0148294 -0.770845 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0272215 -0.721234 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER -0.0484665 -0.732368 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0371781 -0.737738 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0478762 -0.715699 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0385099 -0.715864 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0379196 -0.699195 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0172649 -0.70473 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0278118 -0.737902 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER -0.00656677 -0.726768 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER -0.0165234 -0.743272 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.471405 -0.471405 1.11022e-16 RAD 0.166667 - txt002 - SPHERE CENTER 0.690426 -0.508983 1.83812e-16 RAD 0.0555556 - txt002 - SPHERE CENTER 0.755941 -0.484794 -0.0246914 RAD 0.0185185 - txt002 - SPHERE CENTER 0.767658 -0.47411 -0.0436186 RAD 0.00617284 - txt002 - SPHERE CENTER 0.749038 -0.489758 -0.0478724 RAD 0.00617284 - txt002 - SPHERE CENTER 0.744501 -0.467528 -0.0381316 RAD 0.00617284 - txt002 - SPHERE CENTER 0.774562 -0.469146 -0.0204376 RAD 0.00617284 - txt002 - SPHERE CENTER 0.751405 -0.462564 -0.0149506 RAD 0.00617284 - txt002 - SPHERE CENTER 0.762845 -0.47983 -0.00151032 RAD 0.00617284 - txt002 - SPHERE CENTER 0.779098 -0.491377 -0.0301783 RAD 0.00617284 - txt002 - SPHERE CENTER 0.767382 -0.502061 -0.0112511 RAD 0.00617284 - txt002 - SPHERE CENTER 0.760478 -0.507025 -0.0344321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.695668 -0.478434 -0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER 0.703418 -0.481931 -0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER 0.716184 -0.491475 -0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER 0.694124 -0.500827 -0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER 0.682902 -0.46889 -0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER 0.673608 -0.487786 -0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER 0.675152 -0.465393 -0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER 0.704962 -0.459538 -0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER 0.697211 -0.456041 -0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER 0.717727 -0.469082 -0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.7029 -0.436283 -0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER 0.714226 -0.418941 -0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER 0.724842 -0.44101 -0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.704751 -0.43889 -0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.692283 -0.414215 -0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER 0.682808 -0.434163 -0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER 0.680957 -0.431557 0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.712374 -0.416335 0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER 0.701048 -0.433677 0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER 0.722991 -0.438403 0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER 0.7507 -0.515343 0.0425863 RAD 0.0185185 - txt002 - SPHERE CENTER 0.773394 -0.506594 0.0468401 RAD 0.00617284 - txt002 - SPHERE CENTER 0.764807 -0.507924 0.0237283 RAD 0.00617284 - txt002 - SPHERE CENTER 0.755462 -0.491321 0.0394341 RAD 0.00617284 - txt002 - SPHERE CENTER 0.759287 -0.514012 0.065698 RAD 0.00617284 - txt002 - SPHERE CENTER 0.741355 -0.49874 0.058292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.736593 -0.522762 0.0614442 RAD 0.00617284 - txt002 - SPHERE CENTER 0.768632 -0.530616 0.0499923 RAD 0.00617284 - txt002 - SPHERE CENTER 0.745938 -0.539365 0.0457385 RAD 0.00617284 - txt002 - SPHERE CENTER 0.760045 -0.531946 0.0268805 RAD 0.00617284 - txt002 - SPHERE CENTER 0.697658 -0.466832 0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER 0.709346 -0.447385 0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.721188 -0.46231 0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER 0.703286 -0.447429 0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER 0.685816 -0.451907 0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER 0.679757 -0.451951 0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER 0.674129 -0.471354 0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.703718 -0.466788 0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER 0.692031 -0.486235 0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER 0.71556 -0.481713 0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER 0.685185 -0.539531 0.0672777 RAD 0.0185185 - txt002 - SPHERE CENTER 0.693658 -0.538818 0.0904587 RAD 0.00617284 - txt002 - SPHERE CENTER 0.708875 -0.534075 0.0716007 RAD 0.00617284 - txt002 - SPHERE CENTER 0.691194 -0.517905 0.0775657 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669969 -0.544274 0.0861356 RAD 0.00617284 - txt002 - SPHERE CENTER 0.667505 -0.523361 0.0732426 RAD 0.00617284 - txt002 - SPHERE CENTER 0.661495 -0.544988 0.0629546 RAD 0.00617284 - txt002 - SPHERE CENTER 0.687649 -0.560445 0.0801706 RAD 0.00617284 - txt002 - SPHERE CENTER 0.679176 -0.561158 0.0569896 RAD 0.00617284 - txt002 - SPHERE CENTER 0.702866 -0.555702 0.0613127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.743468 -0.557494 -0.0178949 RAD 0.0185185 - txt002 - SPHERE CENTER 0.767402 -0.560084 -0.0233819 RAD 0.00617284 - txt002 - SPHERE CENTER 0.755145 -0.53997 -0.0307879 RAD 0.00617284 - txt002 - SPHERE CENTER 0.760285 -0.543179 -0.00685171 RAD 0.00617284 - txt002 - SPHERE CENTER 0.755725 -0.577608 -0.0104889 RAD 0.00617284 - txt002 - SPHERE CENTER 0.748608 -0.560703 0.00604126 RAD 0.00617284 - txt002 - SPHERE CENTER 0.731791 -0.575017 -0.00500196 RAD 0.00617284 - txt002 - SPHERE CENTER 0.750585 -0.574398 -0.0344251 RAD 0.00617284 - txt002 - SPHERE CENTER 0.726651 -0.571808 -0.0289382 RAD 0.00617284 - txt002 - SPHERE CENTER 0.738328 -0.554284 -0.0418311 RAD 0.00617284 - txt002 - SPHERE CENTER 0.677953 -0.581682 0.00679642 RAD 0.0185185 - txt002 - SPHERE CENTER 0.682851 -0.601808 0.0202367 RAD 0.00617284 - txt002 - SPHERE CENTER 0.700216 -0.58454 0.0170845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.680568 -0.579842 0.0312799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.660588 -0.59895 0.00994863 RAD 0.00617284 - txt002 - SPHERE CENTER 0.658304 -0.576984 0.0209919 RAD 0.00617284 - txt002 - SPHERE CENTER 0.65569 -0.578824 -0.00349164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.680237 -0.603648 -0.0042468 RAD 0.00617284 - txt002 - SPHERE CENTER 0.675339 -0.583522 -0.0176871 RAD 0.00617284 - txt002 - SPHERE CENTER 0.697602 -0.58638 -0.00739901 RAD 0.00617284 - txt002 - SPHERE CENTER 0.683194 -0.551134 -0.0604812 RAD 0.0185185 - txt002 - SPHERE CENTER 0.687731 -0.573364 -0.070222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.703871 -0.56324 -0.0545162 RAD 0.00617284 - txt002 - SPHERE CENTER 0.682033 -0.571303 -0.0462858 RAD 0.00617284 - txt002 - SPHERE CENTER 0.667055 -0.561258 -0.076187 RAD 0.00617284 - txt002 - SPHERE CENTER 0.661356 -0.559196 -0.0522508 RAD 0.00617284 - txt002 - SPHERE CENTER 0.662518 -0.539027 -0.0664462 RAD 0.00617284 - txt002 - SPHERE CENTER 0.688893 -0.553195 -0.0844174 RAD 0.00617284 - txt002 - SPHERE CENTER 0.684356 -0.530964 -0.0746767 RAD 0.00617284 - txt002 - SPHERE CENTER 0.705033 -0.543071 -0.0687117 RAD 0.00617284 - txt002 - SPHERE CENTER 0.607487 -0.335322 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.629404 -0.313405 -0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.626214 -0.316595 -0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.624401 -0.335868 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.606941 -0.318408 -0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.631217 -0.294133 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.611945 -0.295946 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.634407 -0.290942 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.648676 -0.311592 -0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.651867 -0.308402 -0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.646863 -0.330864 -0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.610996 -0.384191 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.623201 -0.403702 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.635431 -0.385946 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.62031 -0.401066 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.598766 -0.401947 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.595876 -0.399312 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.586561 -0.382437 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.613886 -0.386827 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER 0.601681 -0.367317 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.626116 -0.369071 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.558618 -0.331813 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.539107 -0.319608 -0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.541743 -0.322499 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.556863 -0.307378 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.555982 -0.328923 -0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER 0.573738 -0.316693 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.575492 -0.341128 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.540862 -0.344043 -0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.560372 -0.356248 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.543497 -0.346933 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.625895 -0.264535 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.637402 -0.248969 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.646193 -0.271807 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.625088 -0.268363 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.617105 -0.241698 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.604791 -0.261092 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.605598 -0.257264 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.638209 -0.245142 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.626702 -0.260708 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER 0.647 -0.267979 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.555109 -0.282943 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.550934 -0.258608 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.570229 -0.267823 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.570229 -0.267823 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.535813 -0.273728 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.555109 -0.282943 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.539989 -0.298064 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.535813 -0.273728 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.539989 -0.298064 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.555109 -0.282943 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.603979 -0.286452 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.613271 -0.265398 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.627912 -0.281225 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.610787 -0.26842 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.589337 -0.270625 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.586853 -0.273647 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.580045 -0.291679 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.606463 -0.283431 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.59717 -0.304484 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.621104 -0.299257 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.678274 -0.316914 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.69384 -0.305407 -0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.674446 -0.317721 -0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.671002 -0.296616 -0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.697667 -0.3046 -0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.67483 -0.295809 -0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.682101 -0.316107 -0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER 0.701111 -0.325704 -0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.685545 -0.337211 -0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.681717 -0.338018 -0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.656357 -0.33883 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.677411 -0.329538 -0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.674389 -0.332022 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.661584 -0.314897 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.659378 -0.336346 -0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.643552 -0.321705 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.638325 -0.345639 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.672184 -0.353472 -0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.65113 -0.362764 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669162 -0.355956 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.659866 -0.3877 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.684201 -0.391875 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.674986 -0.37258 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.674986 -0.37258 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669081 -0.406996 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.659866 -0.3877 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.644745 -0.40282 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669081 -0.406996 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.644745 -0.40282 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.659866 -0.3877 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.607487 -0.335322 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.659645 -0.283164 0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER 0.672915 -0.269894 0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER 0.666987 -0.293281 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.649528 -0.275822 0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.665573 -0.259777 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.642185 -0.265705 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.652302 -0.273047 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.683032 -0.277236 0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669762 -0.290507 0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.677104 -0.300624 0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.656357 -0.33883 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.663448 -0.328536 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.639482 -0.329516 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.654603 -0.314396 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.680322 -0.33785 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.671477 -0.32371 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.673232 -0.348145 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.665202 -0.35297 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.658111 -0.363265 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.641237 -0.353951 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.603979 -0.286452 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.614273 -0.279361 0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.628413 -0.288206 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.613293 -0.303327 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.589839 -0.277607 0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.588858 -0.301572 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.579544 -0.284698 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.604959 -0.262487 0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.594664 -0.269578 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.619099 -0.271332 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.610775 -0.279656 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.621535 -0.258061 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.634468 -0.275921 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.616678 -0.264057 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.597842 -0.261795 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.592985 -0.267791 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.587082 -0.28339 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER 0.615632 -0.27366 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.604872 -0.295255 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.628565 -0.29152 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.555109 -0.282943 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.550934 -0.258608 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.570229 -0.267823 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.570229 -0.267823 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.535813 -0.273728 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.555109 -0.282943 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.539989 -0.298064 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.535813 -0.273728 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.539989 -0.298064 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.555109 -0.282943 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.558618 -0.331813 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.55307 -0.320611 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER 0.57665 -0.325005 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.563845 -0.30788 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.535038 -0.327419 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.545813 -0.314688 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.540585 -0.338621 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.547843 -0.344544 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.553391 -0.355747 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.571423 -0.348938 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.663153 -0.332034 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.684748 -0.321274 0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.678752 -0.326131 0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.666888 -0.308341 0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669149 -0.327177 0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.651289 -0.314244 0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.647554 -0.337937 0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.681014 -0.344967 0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.659419 -0.355727 0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER 0.675018 -0.349824 0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.610996 -0.384191 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.622198 -0.389739 0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER 0.63493 -0.378964 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.617804 -0.366159 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.598265 -0.394966 0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.593871 -0.371386 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.587062 -0.389418 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.61539 -0.407771 0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.604188 -0.402224 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.628121 -0.396997 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.659866 -0.3877 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.684201 -0.391875 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.674986 -0.37258 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.674986 -0.37258 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669081 -0.406996 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.659866 -0.3877 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.644745 -0.40282 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.669081 -0.406996 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.644745 -0.40282 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.659866 -0.3877 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.554344 -0.645066 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.610229 -0.668521 0.153697 RAD 0.0185185 - txt002 - SPHERE CENTER 0.633406 -0.663938 0.160875 RAD 0.00617284 - txt002 - SPHERE CENTER 0.626429 -0.65892 0.137727 RAD 0.00617284 - txt002 - SPHERE CENTER 0.617928 -0.64522 0.156428 RAD 0.00617284 - txt002 - SPHERE CENTER 0.617206 -0.673539 0.176845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.601728 -0.654822 0.172398 RAD 0.00617284 - txt002 - SPHERE CENTER 0.59403 -0.678123 0.169668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.625707 -0.687239 0.158144 RAD 0.00617284 - txt002 - SPHERE CENTER 0.602531 -0.691822 0.150967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.61873 -0.682221 0.134996 RAD 0.00617284 - txt002 - SPHERE CENTER 0.622977 -0.619787 0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.63767 -0.608008 0.0834188 RAD 0.00617284 - txt002 - SPHERE CENTER 0.620102 -0.623239 0.0751099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.613891 -0.601637 0.0853287 RAD 0.00617284 - txt002 - SPHERE CENTER 0.640545 -0.604555 0.107698 RAD 0.00617284 - txt002 - SPHERE CENTER 0.616766 -0.598184 0.109608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.625852 -0.616334 0.123668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.646756 -0.626157 0.0974792 RAD 0.00617284 - txt002 - SPHERE CENTER 0.632063 -0.637936 0.113449 RAD 0.00617284 - txt002 - SPHERE CENTER 0.629188 -0.641389 0.0891702 RAD 0.00617284 - txt002 - SPHERE CENTER 0.585648 -0.598918 0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.601562 -0.580238 0.162601 RAD 0.00617284 - txt002 - SPHERE CENTER 0.605914 -0.59781 0.14581 RAD 0.00617284 - txt002 - SPHERE CENTER 0.587563 -0.581665 0.142311 RAD 0.00617284 - txt002 - SPHERE CENTER 0.581295 -0.581346 0.176661 RAD 0.00617284 - txt002 - SPHERE CENTER 0.567297 -0.582773 0.156372 RAD 0.00617284 - txt002 - SPHERE CENTER 0.565381 -0.600026 0.173931 RAD 0.00617284 - txt002 - SPHERE CENTER 0.599646 -0.597491 0.18016 RAD 0.00617284 - txt002 - SPHERE CENTER 0.583732 -0.616171 0.177429 RAD 0.00617284 - txt002 - SPHERE CENTER 0.603999 -0.615063 0.163369 RAD 0.00617284 - txt002 - SPHERE CENTER 0.541596 -0.6938 0.165419 RAD 0.0185185 - txt002 - SPHERE CENTER 0.547376 -0.70016 0.188567 RAD 0.00617284 - txt002 - SPHERE CENTER 0.564621 -0.690564 0.173728 RAD 0.00617284 - txt002 - SPHERE CENTER 0.546319 -0.676324 0.182211 RAD 0.00617284 - txt002 - SPHERE CENTER 0.524351 -0.703396 0.180258 RAD 0.00617284 - txt002 - SPHERE CENTER 0.523294 -0.679561 0.173902 RAD 0.00617284 - txt002 - SPHERE CENTER 0.518571 -0.697037 0.157111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.542652 -0.717636 0.171776 RAD 0.00617284 - txt002 - SPHERE CENTER 0.536873 -0.711276 0.148628 RAD 0.00617284 - txt002 - SPHERE CENTER 0.559898 -0.70804 0.156937 RAD 0.00617284 - txt002 - SPHERE CENTER 0.517014 -0.624197 0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER 0.516313 -0.60809 0.190293 RAD 0.00617284 - txt002 - SPHERE CENTER 0.538029 -0.616221 0.181811 RAD 0.00617284 - txt002 - SPHERE CENTER 0.524375 -0.60089 0.168094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.495298 -0.616065 0.180075 RAD 0.00617284 - txt002 - SPHERE CENTER 0.50336 -0.608865 0.157875 RAD 0.00617284 - txt002 - SPHERE CENTER 0.495999 -0.632172 0.161374 RAD 0.00617284 - txt002 - SPHERE CENTER 0.508952 -0.631397 0.193792 RAD 0.00617284 - txt002 - SPHERE CENTER 0.509653 -0.647504 0.175091 RAD 0.00617284 - txt002 - SPHERE CENTER 0.530668 -0.639529 0.18531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.48571 -0.670344 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.466887 -0.67091 0.138803 RAD 0.00617284 - txt002 - SPHERE CENTER 0.490138 -0.671107 0.147112 RAD 0.00617284 - txt002 - SPHERE CENTER 0.480853 -0.650637 0.136894 RAD 0.00617284 - txt002 - SPHERE CENTER 0.46246 -0.670147 0.114524 RAD 0.00617284 - txt002 - SPHERE CENTER 0.476425 -0.649874 0.112614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.481283 -0.669581 0.0985541 RAD 0.00617284 - txt002 - SPHERE CENTER 0.471745 -0.690617 0.124743 RAD 0.00617284 - txt002 - SPHERE CENTER 0.490567 -0.690052 0.108773 RAD 0.00617284 - txt002 - SPHERE CENTER 0.494995 -0.690815 0.133052 RAD 0.00617284 - txt002 - SPHERE CENTER 0.578925 -0.714669 0.104938 RAD 0.0185185 - txt002 - SPHERE CENTER 0.597914 -0.729812 0.109385 RAD 0.00617284 - txt002 - SPHERE CENTER 0.602084 -0.70632 0.103028 RAD 0.00617284 - txt002 - SPHERE CENTER 0.592661 -0.711617 0.125228 RAD 0.00617284 - txt002 - SPHERE CENTER 0.574755 -0.738161 0.111295 RAD 0.00617284 - txt002 - SPHERE CENTER 0.569503 -0.719965 0.127138 RAD 0.00617284 - txt002 - SPHERE CENTER 0.555767 -0.723017 0.106848 RAD 0.00617284 - txt002 - SPHERE CENTER 0.584178 -0.732864 0.0890951 RAD 0.00617284 - txt002 - SPHERE CENTER 0.565189 -0.71772 0.0846485 RAD 0.00617284 - txt002 - SPHERE CENTER 0.588348 -0.709372 0.0827387 RAD 0.00617284 - txt002 - SPHERE CENTER 0.52304 -0.691213 0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER 0.511567 -0.712906 0.0596212 RAD 0.00617284 - txt002 - SPHERE CENTER 0.529503 -0.710453 0.0764123 RAD 0.00617284 - txt002 - SPHERE CENTER 0.507717 -0.699372 0.079911 RAD 0.00617284 - txt002 - SPHERE CENTER 0.505104 -0.693665 0.0455609 RAD 0.00617284 - txt002 - SPHERE CENTER 0.501254 -0.680131 0.0658506 RAD 0.00617284 - txt002 - SPHERE CENTER 0.516576 -0.671972 0.0482916 RAD 0.00617284 - txt002 - SPHERE CENTER 0.526889 -0.704747 0.0420622 RAD 0.00617284 - txt002 - SPHERE CENTER 0.538362 -0.683054 0.044793 RAD 0.00617284 - txt002 - SPHERE CENTER 0.544826 -0.702295 0.0588533 RAD 0.00617284 - txt002 - SPHERE CENTER 0.591673 -0.665934 0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER 0.605761 -0.658095 0.0319289 RAD 0.00617284 - txt002 - SPHERE CENTER 0.58746 -0.643855 0.0404111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.607672 -0.647455 0.0541285 RAD 0.00617284 - txt002 - SPHERE CENTER 0.609975 -0.680174 0.0421477 RAD 0.00617284 - txt002 - SPHERE CENTER 0.611885 -0.669535 0.0643473 RAD 0.00617284 - txt002 - SPHERE CENTER 0.595887 -0.688013 0.0608487 RAD 0.00617284 - txt002 - SPHERE CENTER 0.589763 -0.676573 0.0284303 RAD 0.00617284 - txt002 - SPHERE CENTER 0.575674 -0.684413 0.0471312 RAD 0.00617284 - txt002 - SPHERE CENTER 0.571461 -0.662334 0.0369125 RAD 0.00617284 - txt002 - SPHERE CENTER 0.471405 -0.471405 0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER 0.501645 -0.441164 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.518106 -0.424703 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER 0.522721 -0.437548 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.505261 -0.420089 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.497031 -0.428319 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.484186 -0.423704 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.48057 -0.44478 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.51449 -0.445778 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.498029 -0.462239 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.519105 -0.458623 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.542955 -0.452233 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.560583 -0.44013 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.542955 -0.452233 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.53742 -0.431578 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.560583 -0.44013 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.53742 -0.431578 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.542955 -0.452233 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.566118 -0.460785 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.548489 -0.472887 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.548489 -0.472887 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.490576 -0.399854 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.502679 -0.382226 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.511231 -0.405389 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.490576 -0.399854 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.482024 -0.376691 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.469922 -0.39432 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.469922 -0.39432 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.502679 -0.382226 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.490576 -0.399854 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.511231 -0.405389 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.430095 -0.460336 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.427669 -0.446904 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.450155 -0.45293 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.436486 -0.436486 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.407609 -0.454311 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER 0.416426 -0.443892 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.410035 -0.467742 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.421278 -0.470754 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.423704 -0.484186 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.443764 -0.47678 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.419026 -0.419026 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.414851 -0.39469 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.434147 -0.403906 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.434147 -0.403906 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399731 -0.409811 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.419026 -0.419026 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.403906 -0.434147 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399731 -0.409811 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.403906 -0.434147 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.419026 -0.419026 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399854 -0.490576 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.378536 -0.488909 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399854 -0.490576 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.39432 -0.469922 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.378536 -0.488909 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.39432 -0.469922 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399854 -0.490576 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.384071 -0.509564 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.405389 -0.511231 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.405389 -0.511231 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.482473 -0.512714 0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.495905 -0.51514 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.506323 -0.506323 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.48988 -0.492654 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.472055 -0.521531 0.30328 RAD 0.00617284 - txt002 - SPHERE CENTER 0.46603 -0.499045 0.295049 RAD 0.00617284 - txt002 - SPHERE CENTER 0.458623 -0.519105 0.282703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.488498 -0.5352 0.290934 RAD 0.00617284 - txt002 - SPHERE CENTER 0.475067 -0.532774 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.498917 -0.526383 0.270358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.452233 -0.542955 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.4539 -0.564273 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.472887 -0.548489 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.452233 -0.542955 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.433245 -0.558738 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.431578 -0.53742 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.431578 -0.53742 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.4539 -0.564273 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.452233 -0.542955 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.472887 -0.548489 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.523783 -0.523783 0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.548119 -0.527958 0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.538903 -0.508662 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.538903 -0.508662 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.532998 -0.543078 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.523783 -0.523783 0.246914 RAD 0.00617284 - txt002 - SPHERE CENTER 0.508662 -0.538903 0.234568 RAD 0.00617284 - txt002 - SPHERE CENTER 0.532998 -0.543078 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.508662 -0.538903 0.209877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.523783 -0.523783 0.197531 RAD 0.00617284 - txt002 - SPHERE CENTER 0.335322 -0.607487 0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.313405 -0.629404 0.178389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.316595 -0.626214 0.202664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.335868 -0.624401 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.318408 -0.606941 0.187336 RAD 0.00617284 - txt002 - SPHERE CENTER 0.294133 -0.631217 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.295946 -0.611945 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.290942 -0.634407 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.311592 -0.648676 0.193717 RAD 0.00617284 - txt002 - SPHERE CENTER 0.308402 -0.651867 0.169441 RAD 0.00617284 - txt002 - SPHERE CENTER 0.330864 -0.646863 0.178389 RAD 0.00617284 - txt002 - SPHERE CENTER 0.384191 -0.610996 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.405245 -0.601704 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.402224 -0.604188 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.389418 -0.587062 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.387213 -0.608512 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER 0.371386 -0.593871 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.366159 -0.617804 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.400018 -0.625637 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.378964 -0.63493 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.396997 -0.628121 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.331813 -0.558618 0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.341105 -0.537564 0.175614 RAD 0.00617284 - txt002 - SPHERE CENTER 0.355747 -0.553391 0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.338621 -0.540585 0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.317172 -0.542791 0.178701 RAD 0.00617284 - txt002 - SPHERE CENTER 0.314688 -0.545813 0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.30788 -0.563845 0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.334297 -0.555596 0.191046 RAD 0.00617284 - txt002 - SPHERE CENTER 0.325005 -0.57665 0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.348938 -0.571423 0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.264535 -0.625895 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.245336 -0.623429 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.268271 -0.624736 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.260997 -0.604627 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.2416 -0.624589 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.257262 -0.605787 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.2608 -0.627055 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER 0.248874 -0.644697 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.268073 -0.647163 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.271809 -0.646004 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282943 -0.555109 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.278768 -0.530773 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.298064 -0.539989 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.298064 -0.539989 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.263648 -0.545894 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282943 -0.555109 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.267823 -0.570229 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.263648 -0.545894 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.267823 -0.570229 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282943 -0.555109 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.286452 -0.603979 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.266942 -0.591774 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.269578 -0.594664 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.284698 -0.579544 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.283817 -0.601088 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.301572 -0.588858 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.303327 -0.613293 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.268696 -0.616209 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.288206 -0.628413 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.271332 -0.619099 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.316914 -0.678274 0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.31938 -0.697473 0.138161 RAD 0.00617284 - txt002 - SPHERE CENTER 0.338182 -0.681812 0.134867 RAD 0.00617284 - txt002 - SPHERE CENTER 0.318074 -0.674538 0.147213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.298112 -0.693935 0.126127 RAD 0.00617284 - txt002 - SPHERE CENTER 0.296805 -0.671 0.135179 RAD 0.00617284 - txt002 - SPHERE CENTER 0.295646 -0.674736 0.110799 RAD 0.00617284 - txt002 - SPHERE CENTER 0.31822 -0.701209 0.113782 RAD 0.00617284 - txt002 - SPHERE CENTER 0.315754 -0.682009 0.0984536 RAD 0.00617284 - txt002 - SPHERE CENTER 0.337022 -0.685547 0.110488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.33883 -0.656357 0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.351035 -0.675867 0.0466081 RAD 0.00617284 - txt002 - SPHERE CENTER 0.363265 -0.658111 0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.348145 -0.673232 0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.3266 -0.674113 0.0435217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.32371 -0.671477 0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.314396 -0.654603 0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.341721 -0.658993 0.031176 RAD 0.00617284 - txt002 - SPHERE CENTER 0.329516 -0.639482 0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.353951 -0.641237 0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.3877 -0.659866 0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.412036 -0.664041 0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.40282 -0.644745 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.40282 -0.644745 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.396915 -0.679161 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.3877 -0.659866 0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37258 -0.674986 0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.396915 -0.679161 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37258 -0.674986 0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.3877 -0.659866 0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.554344 -0.645066 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.616373 -0.681385 -0.129006 RAD 0.0185185 - txt002 - SPHERE CENTER 0.639472 -0.678928 -0.137375 RAD 0.00617284 - txt002 - SPHERE CENTER 0.621631 -0.664108 -0.145845 RAD 0.00617284 - txt002 - SPHERE CENTER 0.629767 -0.661636 -0.122663 RAD 0.00617284 - txt002 - SPHERE CENTER 0.634214 -0.696205 -0.120537 RAD 0.00617284 - txt002 - SPHERE CENTER 0.624508 -0.678912 -0.105825 RAD 0.00617284 - txt002 - SPHERE CENTER 0.611115 -0.698662 -0.112168 RAD 0.00617284 - txt002 - SPHERE CENTER 0.626079 -0.698678 -0.143718 RAD 0.00617284 - txt002 - SPHERE CENTER 0.602979 -0.701135 -0.135349 RAD 0.00617284 - txt002 - SPHERE CENTER 0.608237 -0.683858 -0.152187 RAD 0.00617284 - txt002 - SPHERE CENTER 0.617144 -0.607573 -0.122833 RAD 0.0185185 - txt002 - SPHERE CENTER 0.63057 -0.595495 -0.139672 RAD 0.00617284 - txt002 - SPHERE CENTER 0.617371 -0.615286 -0.146288 RAD 0.00617284 - txt002 - SPHERE CENTER 0.605919 -0.594239 -0.140323 RAD 0.00617284 - txt002 - SPHERE CENTER 0.630343 -0.587782 -0.116217 RAD 0.00617284 - txt002 - SPHERE CENTER 0.605692 -0.586526 -0.116868 RAD 0.00617284 - txt002 - SPHERE CENTER 0.616917 -0.59986 -0.0993785 RAD 0.00617284 - txt002 - SPHERE CENTER 0.641795 -0.608828 -0.122182 RAD 0.00617284 - txt002 - SPHERE CENTER 0.628369 -0.620906 -0.105343 RAD 0.00617284 - txt002 - SPHERE CENTER 0.628595 -0.628619 -0.128798 RAD 0.00617284 - txt002 - SPHERE CENTER 0.609912 -0.649723 -0.062352 RAD 0.0185185 - txt002 - SPHERE CENTER 0.631982 -0.640648 -0.0560094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.62585 -0.64267 -0.0798417 RAD 0.00617284 - txt002 - SPHERE CENTER 0.614812 -0.625749 -0.0656463 RAD 0.00617284 - txt002 - SPHERE CENTER 0.616044 -0.647702 -0.0385197 RAD 0.00617284 - txt002 - SPHERE CENTER 0.598874 -0.632802 -0.0481565 RAD 0.00617284 - txt002 - SPHERE CENTER 0.593974 -0.656777 -0.0448623 RAD 0.00617284 - txt002 - SPHERE CENTER 0.627081 -0.664623 -0.0527151 RAD 0.00617284 - txt002 - SPHERE CENTER 0.605012 -0.673698 -0.0590577 RAD 0.00617284 - txt002 - SPHERE CENTER 0.620949 -0.666645 -0.0765474 RAD 0.00617284 - txt002 - SPHERE CENTER 0.553573 -0.718878 -0.117284 RAD 0.0185185 - txt002 - SPHERE CENTER 0.563328 -0.73992 -0.108814 RAD 0.00617284 - txt002 - SPHERE CENTER 0.577348 -0.719679 -0.110668 RAD 0.00617284 - txt002 - SPHERE CENTER 0.559693 -0.720935 -0.0934517 RAD 0.00617284 - txt002 - SPHERE CENTER 0.539553 -0.739118 -0.115431 RAD 0.00617284 - txt002 - SPHERE CENTER 0.535918 -0.720133 -0.100068 RAD 0.00617284 - txt002 - SPHERE CENTER 0.529798 -0.718076 -0.1239 RAD 0.00617284 - txt002 - SPHERE CENTER 0.557208 -0.737863 -0.132647 RAD 0.00617284 - txt002 - SPHERE CENTER 0.547453 -0.716821 -0.141116 RAD 0.00617284 - txt002 - SPHERE CENTER 0.571228 -0.717623 -0.1345 RAD 0.00617284 - txt002 - SPHERE CENTER 0.547112 -0.687216 -0.0506299 RAD 0.0185185 - txt002 - SPHERE CENTER 0.554862 -0.690713 -0.0274488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.570641 -0.682694 -0.0446649 RAD 0.00617284 - txt002 - SPHERE CENTER 0.552739 -0.667813 -0.0364345 RAD 0.00617284 - txt002 - SPHERE CENTER 0.531333 -0.695235 -0.0334138 RAD 0.00617284 - txt002 - SPHERE CENTER 0.52921 -0.672335 -0.0423994 RAD 0.00617284 - txt002 - SPHERE CENTER 0.523582 -0.691738 -0.0565949 RAD 0.00617284 - txt002 - SPHERE CENTER 0.549235 -0.710116 -0.0416443 RAD 0.00617284 - txt002 - SPHERE CENTER 0.541484 -0.706619 -0.0648253 RAD 0.00617284 - txt002 - SPHERE CENTER 0.565014 -0.702097 -0.0588603 RAD 0.00617284 - txt002 - SPHERE CENTER 0.491544 -0.682558 -0.099389 RAD 0.0185185 - txt002 - SPHERE CENTER 0.474542 -0.688647 -0.0825505 RAD 0.00617284 - txt002 - SPHERE CENTER 0.498226 -0.686417 -0.0759343 RAD 0.00617284 - txt002 - SPHERE CENTER 0.485132 -0.666351 -0.0818993 RAD 0.00617284 - txt002 - SPHERE CENTER 0.46786 -0.684788 -0.106005 RAD 0.00617284 - txt002 - SPHERE CENTER 0.47845 -0.662492 -0.105354 RAD 0.00617284 - txt002 - SPHERE CENTER 0.484862 -0.678699 -0.122844 RAD 0.00617284 - txt002 - SPHERE CENTER 0.480953 -0.704854 -0.10004 RAD 0.00617284 - txt002 - SPHERE CENTER 0.497955 -0.698765 -0.116879 RAD 0.00617284 - txt002 - SPHERE CENTER 0.504637 -0.702624 -0.093424 RAD 0.00617284 - txt002 - SPHERE CENTER 0.560805 -0.676727 -0.177765 RAD 0.0185185 - txt002 - SPHERE CENTER 0.57563 -0.689897 -0.192477 RAD 0.00617284 - txt002 - SPHERE CENTER 0.585222 -0.673115 -0.177114 RAD 0.00617284 - txt002 - SPHERE CENTER 0.575587 -0.693998 -0.168128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.551213 -0.693509 -0.193128 RAD 0.00617284 - txt002 - SPHERE CENTER 0.55117 -0.69761 -0.16878 RAD 0.00617284 - txt002 - SPHERE CENTER 0.536388 -0.680339 -0.178416 RAD 0.00617284 - txt002 - SPHERE CENTER 0.560848 -0.672626 -0.202114 RAD 0.00617284 - txt002 - SPHERE CENTER 0.546023 -0.659456 -0.187402 RAD 0.00617284 - txt002 - SPHERE CENTER 0.57044 -0.655844 -0.186751 RAD 0.00617284 - txt002 - SPHERE CENTER 0.498776 -0.640408 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.478525 -0.627785 -0.166213 RAD 0.00617284 - txt002 - SPHERE CENTER 0.484234 -0.630799 -0.142381 RAD 0.00617284 - txt002 - SPHERE CENTER 0.497935 -0.615951 -0.156576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.493066 -0.637394 -0.183703 RAD 0.00617284 - txt002 - SPHERE CENTER 0.512476 -0.62556 -0.174066 RAD 0.00617284 - txt002 - SPHERE CENTER 0.513317 -0.650016 -0.17736 RAD 0.00617284 - txt002 - SPHERE CENTER 0.479365 -0.652241 -0.169507 RAD 0.00617284 - txt002 - SPHERE CENTER 0.499616 -0.664864 -0.163165 RAD 0.00617284 - txt002 - SPHERE CENTER 0.485075 -0.655255 -0.145675 RAD 0.00617284 - txt002 - SPHERE CENTER 0.561576 -0.602915 -0.171592 RAD 0.0185185 - txt002 - SPHERE CENTER 0.570049 -0.602201 -0.194773 RAD 0.00617284 - txt002 - SPHERE CENTER 0.582252 -0.615021 -0.177557 RAD 0.00617284 - txt002 - SPHERE CENTER 0.560414 -0.623084 -0.185788 RAD 0.00617284 - txt002 - SPHERE CENTER 0.549372 -0.590095 -0.188808 RAD 0.00617284 - txt002 - SPHERE CENTER 0.539737 -0.610978 -0.179823 RAD 0.00617284 - txt002 - SPHERE CENTER 0.540899 -0.590808 -0.165627 RAD 0.00617284 - txt002 - SPHERE CENTER 0.571211 -0.582032 -0.180578 RAD 0.00617284 - txt002 - SPHERE CENTER 0.562738 -0.582745 -0.157397 RAD 0.00617284 - txt002 - SPHERE CENTER 0.583414 -0.594852 -0.163362 RAD 0.00617284 - txt002 - SPHERE CENTER 0.335322 -0.607487 -0.111111 RAD 0.0555556 - txt002 - SPHERE CENTER 0.283164 -0.659645 -0.104315 RAD 0.0185185 - txt002 - SPHERE CENTER 0.269894 -0.672915 -0.0882695 RAD 0.00617284 - txt002 - SPHERE CENTER 0.293281 -0.666987 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.275822 -0.649528 -0.0830215 RAD 0.00617284 - txt002 - SPHERE CENTER 0.259777 -0.665573 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.265705 -0.642185 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.273047 -0.652302 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.277236 -0.683032 -0.109563 RAD 0.00617284 - txt002 - SPHERE CENTER 0.290507 -0.669762 -0.125608 RAD 0.00617284 - txt002 - SPHERE CENTER 0.300624 -0.677104 -0.104315 RAD 0.00617284 - txt002 - SPHERE CENTER 0.33883 -0.656357 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.350033 -0.661904 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.362764 -0.65113 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.345639 -0.638325 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.326099 -0.667131 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.321705 -0.643552 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.314897 -0.661584 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.343224 -0.679937 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.332022 -0.674389 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.355956 -0.669162 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.286452 -0.603979 -0.0555556 RAD 0.0185185 - txt002 - SPHERE CENTER 0.280905 -0.592776 -0.0342624 RAD 0.00617284 - txt002 - SPHERE CENTER 0.304484 -0.59717 -0.0401235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.291679 -0.580045 -0.0524691 RAD 0.00617284 - txt002 - SPHERE CENTER 0.262872 -0.599585 -0.0496945 RAD 0.00617284 - txt002 - SPHERE CENTER 0.273647 -0.586853 -0.0679012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.26842 -0.610787 -0.0709877 RAD 0.00617284 - txt002 - SPHERE CENTER 0.275678 -0.61671 -0.0373488 RAD 0.00617284 - txt002 - SPHERE CENTER 0.281225 -0.627912 -0.058642 RAD 0.00617284 - txt002 - SPHERE CENTER 0.299257 -0.621104 -0.0432099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.279656 -0.610775 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.256944 -0.602632 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.26347 -0.606749 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.273158 -0.587686 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.27313 -0.606658 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.289344 -0.591712 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.295841 -0.614801 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.263442 -0.62572 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.286153 -0.633864 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER 0.269968 -0.629838 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282943 -0.555109 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.278768 -0.530773 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.298064 -0.539989 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.298064 -0.539989 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.263648 -0.545894 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282943 -0.555109 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.267823 -0.570229 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.263648 -0.545894 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.267823 -0.570229 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.282943 -0.555109 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.331813 -0.558618 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.342108 -0.551527 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER 0.356248 -0.560372 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.341128 -0.575492 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.317673 -0.549772 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.316693 -0.573738 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.307378 -0.556863 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.332793 -0.534652 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.322499 -0.541743 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.346933 -0.543497 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.332034 -0.663153 -0.15987 RAD 0.0185185 - txt002 - SPHERE CENTER 0.340177 -0.685865 -0.165118 RAD 0.00617284 - txt002 - SPHERE CENTER 0.355123 -0.669651 -0.154009 RAD 0.00617284 - txt002 - SPHERE CENTER 0.33606 -0.679339 -0.141664 RAD 0.00617284 - txt002 - SPHERE CENTER 0.317089 -0.679367 -0.170979 RAD 0.00617284 - txt002 - SPHERE CENTER 0.312971 -0.672841 -0.147525 RAD 0.00617284 - txt002 - SPHERE CENTER 0.308945 -0.656656 -0.165731 RAD 0.00617284 - txt002 - SPHERE CENTER 0.336151 -0.669679 -0.183325 RAD 0.00617284 - txt002 - SPHERE CENTER 0.328008 -0.646968 -0.178077 RAD 0.00617284 - txt002 - SPHERE CENTER 0.351097 -0.653465 -0.172216 RAD 0.00617284 - txt002 - SPHERE CENTER 0.384191 -0.610996 -0.166667 RAD 0.0185185 - txt002 - SPHERE CENTER 0.391282 -0.600701 -0.18796 RAD 0.00617284 - txt002 - SPHERE CENTER 0.367317 -0.601681 -0.182099 RAD 0.00617284 - txt002 - SPHERE CENTER 0.382437 -0.586561 -0.169753 RAD 0.00617284 - txt002 - SPHERE CENTER 0.408157 -0.610016 -0.172528 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399312 -0.595876 -0.154321 RAD 0.00617284 - txt002 - SPHERE CENTER 0.401066 -0.62031 -0.151235 RAD 0.00617284 - txt002 - SPHERE CENTER 0.393037 -0.625136 -0.184873 RAD 0.00617284 - txt002 - SPHERE CENTER 0.385946 -0.635431 -0.16358 RAD 0.00617284 - txt002 - SPHERE CENTER 0.369071 -0.626116 -0.179012 RAD 0.00617284 - txt002 - SPHERE CENTER 0.3877 -0.659866 -0.111111 RAD 0.0185185 - txt002 - SPHERE CENTER 0.412036 -0.664041 -0.111111 RAD 0.00617284 - txt002 - SPHERE CENTER 0.40282 -0.644745 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.40282 -0.644745 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.396915 -0.679161 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.3877 -0.659866 -0.0864198 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37258 -0.674986 -0.0987654 RAD 0.00617284 - txt002 - SPHERE CENTER 0.396915 -0.679161 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.37258 -0.674986 -0.123457 RAD 0.00617284 - txt002 - SPHERE CENTER 0.3877 -0.659866 -0.135802 RAD 0.00617284 - txt002 - SPHERE CENTER 0.471405 -0.471405 -0.222222 RAD 0.0555556 - txt002 - SPHERE CENTER 0.441164 -0.441164 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.443014 -0.422853 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.449156 -0.418916 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.463412 -0.433171 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.435021 -0.445101 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.455419 -0.455419 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER 0.433171 -0.463412 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.420766 -0.430846 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER 0.418916 -0.449156 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.426908 -0.426908 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER 0.399854 -0.452233 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.383576 -0.43509 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.40305 -0.440308 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.406245 -0.428383 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.380381 -0.447015 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER 0.40305 -0.440308 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.396659 -0.464158 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.377186 -0.45894 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.393464 -0.476083 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.396659 -0.464158 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.452233 -0.399854 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.45894 -0.377186 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.476083 -0.393464 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.464158 -0.396659 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.43509 -0.383576 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.440308 -0.40305 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.428383 -0.406245 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.447015 -0.380381 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.440308 -0.40305 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.464158 -0.396659 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.512714 -0.460336 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.512375 -0.453047 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.493241 -0.465554 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER 0.497443 -0.44229 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.531849 -0.447829 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER 0.516916 -0.437072 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.532187 -0.455118 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER 0.527647 -0.471093 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.527985 -0.478381 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.508512 -0.483599 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.523783 -0.419026 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.538038 -0.404771 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER 0.532513 -0.427756 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.515053 -0.410297 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.529309 -0.396041 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.506323 -0.401567 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.515053 -0.410297 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.546768 -0.4135 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.532513 -0.427756 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.541242 -0.436486 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.542955 -0.490576 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.565623 -0.483869 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.54615 -0.478651 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.549345 -0.466726 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.562428 -0.495794 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.54615 -0.478651 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.539759 -0.502501 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.559233 -0.507719 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.536564 -0.514426 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.539759 -0.502501 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.460336 -0.512714 -0.282703 RAD 0.0185185 - txt002 - SPHERE CENTER 0.461599 -0.535539 -0.292037 RAD 0.00617284 - txt002 - SPHERE CENTER 0.478381 -0.527985 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.455118 -0.532187 -0.268448 RAD 0.00617284 - txt002 - SPHERE CENTER 0.443553 -0.520267 -0.299164 RAD 0.00617284 - txt002 - SPHERE CENTER 0.437072 -0.516916 -0.275576 RAD 0.00617284 - txt002 - SPHERE CENTER 0.44229 -0.497443 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.466817 -0.516065 -0.306292 RAD 0.00617284 - txt002 - SPHERE CENTER 0.465554 -0.493241 -0.296959 RAD 0.00617284 - txt002 - SPHERE CENTER 0.483599 -0.508512 -0.289831 RAD 0.00617284 - txt002 - SPHERE CENTER 0.490576 -0.542955 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.507719 -0.559233 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.514426 -0.536564 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.502501 -0.539759 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.483869 -0.565623 -0.215094 RAD 0.00617284 - txt002 - SPHERE CENTER 0.478651 -0.54615 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.466726 -0.549345 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.495794 -0.562428 -0.236478 RAD 0.00617284 - txt002 - SPHERE CENTER 0.478651 -0.54615 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.502501 -0.539759 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.419026 -0.523783 -0.222222 RAD 0.0185185 - txt002 - SPHERE CENTER 0.404771 -0.538038 -0.207967 RAD 0.00617284 - txt002 - SPHERE CENTER 0.427756 -0.532513 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.410297 -0.515053 -0.200839 RAD 0.00617284 - txt002 - SPHERE CENTER 0.396041 -0.529309 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.401567 -0.506323 -0.222222 RAD 0.00617284 - txt002 - SPHERE CENTER 0.410297 -0.515053 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.4135 -0.546768 -0.22935 RAD 0.00617284 - txt002 - SPHERE CENTER 0.427756 -0.532513 -0.243606 RAD 0.00617284 - txt002 - SPHERE CENTER 0.436486 -0.541242 -0.222222 RAD 0.00617284 - txt002 - -END_SCENE diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/dat/lattice.dat b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/dat/lattice.dat deleted file mode 100644 index fc40ed883..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/dat/lattice.dat +++ /dev/null @@ -1,18012 +0,0 @@ -BEGIN_SCENE - OUTFILE /dev/null - RESOLUTION 512 512 - VERBOSE 0 - -CAMERA - ZOOM 1.0 - ASPECTRATIO 1.0 - ANTIALIASING 0 - RAYDEPTH 8 - CENTER 0.5625 1 0.9375 - VIEWDIR 0 -0.707107 -0.707107 - UPDIR 0.272166 0.680414 -0.680414 - -END_CAMERA - -LIGHT CENTER 2 0.5 0.5 RAD 0.002 COLOR 0.5 0.5 0.5 - -LIGHT CENTER -1 0.5 0.5 RAD 0.002 COLOR 0.5 0.5 0.5 - -LIGHT CENTER 0.5 2 0.5 RAD 0.002 COLOR 0.5 0.5 0.5 - -LIGHT CENTER 0.5 -1 0.5 RAD 0.002 COLOR 0.5 0.5 0.5 - -LIGHT CENTER 0.5 0.5 2 RAD 0.002 COLOR 0.5 0.5 0.5 - -LIGHT CENTER 0.5 0.5 -1 RAD 0.002 COLOR 0.5 0.5 0.5 - -TEXDEF txt001 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0 0 RAD 0.03125 - txt001 -TEXDEF txt002 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0 0 APEX 0.109531 0 0 RAD 0.0078125 - txt002 -TEXDEF txt003 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.0154687 0 APEX 0 0.109531 0 RAD 0.0078125 - txt003 -TEXDEF txt004 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0 0.0154687 APEX 0 0 0.109531 RAD 0.0078125 - txt004 -TEXDEF txt005 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0 0.125 RAD 0.03125 - txt005 -TEXDEF txt006 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0 0.125 APEX 0.109531 0 0.125 RAD 0.0078125 - txt006 -TEXDEF txt007 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.0154687 0.125 APEX 0 0.109531 0.125 RAD 0.0078125 - txt007 -TEXDEF txt008 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0 0.140469 APEX 0 0 0.234531 RAD 0.0078125 - txt008 -TEXDEF txt009 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0 0.25 RAD 0.03125 - txt009 -TEXDEF txt010 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0 0.25 APEX 0.109531 0 0.25 RAD 0.0078125 - txt010 -TEXDEF txt011 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.0154687 0.25 APEX 0 0.109531 0.25 RAD 0.0078125 - txt011 -TEXDEF txt012 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0 0.265469 APEX 0 0 0.359531 RAD 0.0078125 - txt012 -TEXDEF txt013 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0 0.375 RAD 0.03125 - txt013 -TEXDEF txt014 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0 0.375 APEX 0.109531 0 0.375 RAD 0.0078125 - txt014 -TEXDEF txt015 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.0154687 0.375 APEX 0 0.109531 0.375 RAD 0.0078125 - txt015 -TEXDEF txt016 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0 0.390469 APEX 0 0 0.484531 RAD 0.0078125 - txt016 -TEXDEF txt017 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0 0.5 RAD 0.03125 - txt017 -TEXDEF txt018 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0 0.5 APEX 0.109531 0 0.5 RAD 0.0078125 - txt018 -TEXDEF txt019 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.0154687 0.5 APEX 0 0.109531 0.5 RAD 0.0078125 - txt019 -TEXDEF txt020 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0 0.515469 APEX 0 0 0.609531 RAD 0.0078125 - txt020 -TEXDEF txt021 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0 0.625 RAD 0.03125 - txt021 -TEXDEF txt022 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0 0.625 APEX 0.109531 0 0.625 RAD 0.0078125 - txt022 -TEXDEF txt023 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.0154687 0.625 APEX 0 0.109531 0.625 RAD 0.0078125 - txt023 -TEXDEF txt024 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0 0.640469 APEX 0 0 0.734531 RAD 0.0078125 - txt024 -TEXDEF txt025 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0 0.75 RAD 0.03125 - txt025 -TEXDEF txt026 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0 0.75 APEX 0.109531 0 0.75 RAD 0.0078125 - txt026 -TEXDEF txt027 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.0154687 0.75 APEX 0 0.109531 0.75 RAD 0.0078125 - txt027 -TEXDEF txt028 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0 0.765469 APEX 0 0 0.859531 RAD 0.0078125 - txt028 -TEXDEF txt029 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0 0.875 RAD 0.03125 - txt029 -TEXDEF txt030 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0 0.875 APEX 0.109531 0 0.875 RAD 0.0078125 - txt030 -TEXDEF txt031 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.0154687 0.875 APEX 0 0.109531 0.875 RAD 0.0078125 - txt031 -TEXDEF txt032 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0 0.890469 APEX 0 0 0.984531 RAD 0.0078125 - txt032 -TEXDEF txt033 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0 1 RAD 0.03125 - txt033 -TEXDEF txt034 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0 1 APEX 0.109531 0 1 RAD 0.0078125 - txt034 -TEXDEF txt035 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.0154687 1 APEX 0 0.109531 1 RAD 0.0078125 - txt035 -TEXDEF txt036 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.125 0 RAD 0.03125 - txt036 -TEXDEF txt037 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.125 0 APEX 0.109531 0.125 0 RAD 0.0078125 - txt037 -TEXDEF txt038 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.140469 0 APEX 0 0.234531 0 RAD 0.0078125 - txt038 -TEXDEF txt039 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.125 0.0154687 APEX 0 0.125 0.109531 RAD 0.0078125 - txt039 -TEXDEF txt040 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.125 0.125 RAD 0.03125 - txt040 -TEXDEF txt041 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.125 0.125 APEX 0.109531 0.125 0.125 RAD 0.0078125 - txt041 -TEXDEF txt042 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.140469 0.125 APEX 0 0.234531 0.125 RAD 0.0078125 - txt042 -TEXDEF txt043 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.125 0.140469 APEX 0 0.125 0.234531 RAD 0.0078125 - txt043 -TEXDEF txt044 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.125 0.25 RAD 0.03125 - txt044 -TEXDEF txt045 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.125 0.25 APEX 0.109531 0.125 0.25 RAD 0.0078125 - txt045 -TEXDEF txt046 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.140469 0.25 APEX 0 0.234531 0.25 RAD 0.0078125 - txt046 -TEXDEF txt047 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.125 0.265469 APEX 0 0.125 0.359531 RAD 0.0078125 - txt047 -TEXDEF txt048 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.125 0.375 RAD 0.03125 - txt048 -TEXDEF txt049 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.125 0.375 APEX 0.109531 0.125 0.375 RAD 0.0078125 - txt049 -TEXDEF txt050 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.140469 0.375 APEX 0 0.234531 0.375 RAD 0.0078125 - txt050 -TEXDEF txt051 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.125 0.390469 APEX 0 0.125 0.484531 RAD 0.0078125 - txt051 -TEXDEF txt052 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.125 0.5 RAD 0.03125 - txt052 -TEXDEF txt053 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.125 0.5 APEX 0.109531 0.125 0.5 RAD 0.0078125 - txt053 -TEXDEF txt054 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.140469 0.5 APEX 0 0.234531 0.5 RAD 0.0078125 - txt054 -TEXDEF txt055 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.125 0.515469 APEX 0 0.125 0.609531 RAD 0.0078125 - txt055 -TEXDEF txt056 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.125 0.625 RAD 0.03125 - txt056 -TEXDEF txt057 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.125 0.625 APEX 0.109531 0.125 0.625 RAD 0.0078125 - txt057 -TEXDEF txt058 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.140469 0.625 APEX 0 0.234531 0.625 RAD 0.0078125 - txt058 -TEXDEF txt059 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.125 0.640469 APEX 0 0.125 0.734531 RAD 0.0078125 - txt059 -TEXDEF txt060 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.125 0.75 RAD 0.03125 - txt060 -TEXDEF txt061 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.125 0.75 APEX 0.109531 0.125 0.75 RAD 0.0078125 - txt061 -TEXDEF txt062 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.140469 0.75 APEX 0 0.234531 0.75 RAD 0.0078125 - txt062 -TEXDEF txt063 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.125 0.765469 APEX 0 0.125 0.859531 RAD 0.0078125 - txt063 -TEXDEF txt064 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.125 0.875 RAD 0.03125 - txt064 -TEXDEF txt065 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.125 0.875 APEX 0.109531 0.125 0.875 RAD 0.0078125 - txt065 -TEXDEF txt066 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.140469 0.875 APEX 0 0.234531 0.875 RAD 0.0078125 - txt066 -TEXDEF txt067 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.125 0.890469 APEX 0 0.125 0.984531 RAD 0.0078125 - txt067 -TEXDEF txt068 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.125 1 RAD 0.03125 - txt068 -TEXDEF txt069 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.125 1 APEX 0.109531 0.125 1 RAD 0.0078125 - txt069 -TEXDEF txt070 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.140469 1 APEX 0 0.234531 1 RAD 0.0078125 - txt070 -TEXDEF txt071 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.25 0 RAD 0.03125 - txt071 -TEXDEF txt072 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.25 0 APEX 0.109531 0.25 0 RAD 0.0078125 - txt072 -TEXDEF txt073 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.265469 0 APEX 0 0.359531 0 RAD 0.0078125 - txt073 -TEXDEF txt074 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.25 0.0154687 APEX 0 0.25 0.109531 RAD 0.0078125 - txt074 -TEXDEF txt075 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.25 0.125 RAD 0.03125 - txt075 -TEXDEF txt076 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.25 0.125 APEX 0.109531 0.25 0.125 RAD 0.0078125 - txt076 -TEXDEF txt077 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.265469 0.125 APEX 0 0.359531 0.125 RAD 0.0078125 - txt077 -TEXDEF txt078 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.25 0.140469 APEX 0 0.25 0.234531 RAD 0.0078125 - txt078 -TEXDEF txt079 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.25 0.25 RAD 0.03125 - txt079 -TEXDEF txt080 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.25 0.25 APEX 0.109531 0.25 0.25 RAD 0.0078125 - txt080 -TEXDEF txt081 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.265469 0.25 APEX 0 0.359531 0.25 RAD 0.0078125 - txt081 -TEXDEF txt082 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.25 0.265469 APEX 0 0.25 0.359531 RAD 0.0078125 - txt082 -TEXDEF txt083 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.25 0.375 RAD 0.03125 - txt083 -TEXDEF txt084 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.25 0.375 APEX 0.109531 0.25 0.375 RAD 0.0078125 - txt084 -TEXDEF txt085 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.265469 0.375 APEX 0 0.359531 0.375 RAD 0.0078125 - txt085 -TEXDEF txt086 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.25 0.390469 APEX 0 0.25 0.484531 RAD 0.0078125 - txt086 -TEXDEF txt087 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.25 0.5 RAD 0.03125 - txt087 -TEXDEF txt088 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.25 0.5 APEX 0.109531 0.25 0.5 RAD 0.0078125 - txt088 -TEXDEF txt089 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.265469 0.5 APEX 0 0.359531 0.5 RAD 0.0078125 - txt089 -TEXDEF txt090 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.25 0.515469 APEX 0 0.25 0.609531 RAD 0.0078125 - txt090 -TEXDEF txt091 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.25 0.625 RAD 0.03125 - txt091 -TEXDEF txt092 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.25 0.625 APEX 0.109531 0.25 0.625 RAD 0.0078125 - txt092 -TEXDEF txt093 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.265469 0.625 APEX 0 0.359531 0.625 RAD 0.0078125 - txt093 -TEXDEF txt094 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.25 0.640469 APEX 0 0.25 0.734531 RAD 0.0078125 - txt094 -TEXDEF txt095 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.25 0.75 RAD 0.03125 - txt095 -TEXDEF txt096 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.25 0.75 APEX 0.109531 0.25 0.75 RAD 0.0078125 - txt096 -TEXDEF txt097 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.265469 0.75 APEX 0 0.359531 0.75 RAD 0.0078125 - txt097 -TEXDEF txt098 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.25 0.765469 APEX 0 0.25 0.859531 RAD 0.0078125 - txt098 -TEXDEF txt099 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.25 0.875 RAD 0.03125 - txt099 -TEXDEF txt100 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.25 0.875 APEX 0.109531 0.25 0.875 RAD 0.0078125 - txt100 -TEXDEF txt101 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.265469 0.875 APEX 0 0.359531 0.875 RAD 0.0078125 - txt101 -TEXDEF txt102 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.25 0.890469 APEX 0 0.25 0.984531 RAD 0.0078125 - txt102 -TEXDEF txt103 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.25 1 RAD 0.03125 - txt103 -TEXDEF txt104 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.25 1 APEX 0.109531 0.25 1 RAD 0.0078125 - txt104 -TEXDEF txt105 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.265469 1 APEX 0 0.359531 1 RAD 0.0078125 - txt105 -TEXDEF txt106 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.375 0 RAD 0.03125 - txt106 -TEXDEF txt107 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.375 0 APEX 0.109531 0.375 0 RAD 0.0078125 - txt107 -TEXDEF txt108 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.390469 0 APEX 0 0.484531 0 RAD 0.0078125 - txt108 -TEXDEF txt109 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.375 0.0154687 APEX 0 0.375 0.109531 RAD 0.0078125 - txt109 -TEXDEF txt110 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.375 0.125 RAD 0.03125 - txt110 -TEXDEF txt111 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.375 0.125 APEX 0.109531 0.375 0.125 RAD 0.0078125 - txt111 -TEXDEF txt112 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.390469 0.125 APEX 0 0.484531 0.125 RAD 0.0078125 - txt112 -TEXDEF txt113 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.375 0.140469 APEX 0 0.375 0.234531 RAD 0.0078125 - txt113 -TEXDEF txt114 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.375 0.25 RAD 0.03125 - txt114 -TEXDEF txt115 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.375 0.25 APEX 0.109531 0.375 0.25 RAD 0.0078125 - txt115 -TEXDEF txt116 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.390469 0.25 APEX 0 0.484531 0.25 RAD 0.0078125 - txt116 -TEXDEF txt117 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.375 0.265469 APEX 0 0.375 0.359531 RAD 0.0078125 - txt117 -TEXDEF txt118 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.375 0.375 RAD 0.03125 - txt118 -TEXDEF txt119 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.375 0.375 APEX 0.109531 0.375 0.375 RAD 0.0078125 - txt119 -TEXDEF txt120 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.390469 0.375 APEX 0 0.484531 0.375 RAD 0.0078125 - txt120 -TEXDEF txt121 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.375 0.390469 APEX 0 0.375 0.484531 RAD 0.0078125 - txt121 -TEXDEF txt122 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.375 0.5 RAD 0.03125 - txt122 -TEXDEF txt123 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.375 0.5 APEX 0.109531 0.375 0.5 RAD 0.0078125 - txt123 -TEXDEF txt124 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.390469 0.5 APEX 0 0.484531 0.5 RAD 0.0078125 - txt124 -TEXDEF txt125 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.375 0.515469 APEX 0 0.375 0.609531 RAD 0.0078125 - txt125 -TEXDEF txt126 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.375 0.625 RAD 0.03125 - txt126 -TEXDEF txt127 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.375 0.625 APEX 0.109531 0.375 0.625 RAD 0.0078125 - txt127 -TEXDEF txt128 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.390469 0.625 APEX 0 0.484531 0.625 RAD 0.0078125 - txt128 -TEXDEF txt129 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.375 0.640469 APEX 0 0.375 0.734531 RAD 0.0078125 - txt129 -TEXDEF txt130 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.375 0.75 RAD 0.03125 - txt130 -TEXDEF txt131 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.375 0.75 APEX 0.109531 0.375 0.75 RAD 0.0078125 - txt131 -TEXDEF txt132 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.390469 0.75 APEX 0 0.484531 0.75 RAD 0.0078125 - txt132 -TEXDEF txt133 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.375 0.765469 APEX 0 0.375 0.859531 RAD 0.0078125 - txt133 -TEXDEF txt134 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.375 0.875 RAD 0.03125 - txt134 -TEXDEF txt135 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.375 0.875 APEX 0.109531 0.375 0.875 RAD 0.0078125 - txt135 -TEXDEF txt136 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.390469 0.875 APEX 0 0.484531 0.875 RAD 0.0078125 - txt136 -TEXDEF txt137 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.375 0.890469 APEX 0 0.375 0.984531 RAD 0.0078125 - txt137 -TEXDEF txt138 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.375 1 RAD 0.03125 - txt138 -TEXDEF txt139 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.375 1 APEX 0.109531 0.375 1 RAD 0.0078125 - txt139 -TEXDEF txt140 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.390469 1 APEX 0 0.484531 1 RAD 0.0078125 - txt140 -TEXDEF txt141 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.5 0 RAD 0.03125 - txt141 -TEXDEF txt142 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.5 0 APEX 0.109531 0.5 0 RAD 0.0078125 - txt142 -TEXDEF txt143 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.515469 0 APEX 0 0.609531 0 RAD 0.0078125 - txt143 -TEXDEF txt144 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.5 0.0154687 APEX 0 0.5 0.109531 RAD 0.0078125 - txt144 -TEXDEF txt145 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.5 0.125 RAD 0.03125 - txt145 -TEXDEF txt146 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.5 0.125 APEX 0.109531 0.5 0.125 RAD 0.0078125 - txt146 -TEXDEF txt147 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.515469 0.125 APEX 0 0.609531 0.125 RAD 0.0078125 - txt147 -TEXDEF txt148 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.5 0.140469 APEX 0 0.5 0.234531 RAD 0.0078125 - txt148 -TEXDEF txt149 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.5 0.25 RAD 0.03125 - txt149 -TEXDEF txt150 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.5 0.25 APEX 0.109531 0.5 0.25 RAD 0.0078125 - txt150 -TEXDEF txt151 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.515469 0.25 APEX 0 0.609531 0.25 RAD 0.0078125 - txt151 -TEXDEF txt152 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.5 0.265469 APEX 0 0.5 0.359531 RAD 0.0078125 - txt152 -TEXDEF txt153 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.5 0.375 RAD 0.03125 - txt153 -TEXDEF txt154 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.5 0.375 APEX 0.109531 0.5 0.375 RAD 0.0078125 - txt154 -TEXDEF txt155 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.515469 0.375 APEX 0 0.609531 0.375 RAD 0.0078125 - txt155 -TEXDEF txt156 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.5 0.390469 APEX 0 0.5 0.484531 RAD 0.0078125 - txt156 -TEXDEF txt157 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.5 0.5 RAD 0.03125 - txt157 -TEXDEF txt158 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.5 0.5 APEX 0.109531 0.5 0.5 RAD 0.0078125 - txt158 -TEXDEF txt159 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.515469 0.5 APEX 0 0.609531 0.5 RAD 0.0078125 - txt159 -TEXDEF txt160 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.5 0.515469 APEX 0 0.5 0.609531 RAD 0.0078125 - txt160 -TEXDEF txt161 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.5 0.625 RAD 0.03125 - txt161 -TEXDEF txt162 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.5 0.625 APEX 0.109531 0.5 0.625 RAD 0.0078125 - txt162 -TEXDEF txt163 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.515469 0.625 APEX 0 0.609531 0.625 RAD 0.0078125 - txt163 -TEXDEF txt164 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.5 0.640469 APEX 0 0.5 0.734531 RAD 0.0078125 - txt164 -TEXDEF txt165 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.5 0.75 RAD 0.03125 - txt165 -TEXDEF txt166 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.5 0.75 APEX 0.109531 0.5 0.75 RAD 0.0078125 - txt166 -TEXDEF txt167 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.515469 0.75 APEX 0 0.609531 0.75 RAD 0.0078125 - txt167 -TEXDEF txt168 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.5 0.765469 APEX 0 0.5 0.859531 RAD 0.0078125 - txt168 -TEXDEF txt169 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.5 0.875 RAD 0.03125 - txt169 -TEXDEF txt170 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.5 0.875 APEX 0.109531 0.5 0.875 RAD 0.0078125 - txt170 -TEXDEF txt171 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.515469 0.875 APEX 0 0.609531 0.875 RAD 0.0078125 - txt171 -TEXDEF txt172 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.5 0.890469 APEX 0 0.5 0.984531 RAD 0.0078125 - txt172 -TEXDEF txt173 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.5 1 RAD 0.03125 - txt173 -TEXDEF txt174 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.5 1 APEX 0.109531 0.5 1 RAD 0.0078125 - txt174 -TEXDEF txt175 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.515469 1 APEX 0 0.609531 1 RAD 0.0078125 - txt175 -TEXDEF txt176 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.625 0 RAD 0.03125 - txt176 -TEXDEF txt177 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.625 0 APEX 0.109531 0.625 0 RAD 0.0078125 - txt177 -TEXDEF txt178 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.640469 0 APEX 0 0.734531 0 RAD 0.0078125 - txt178 -TEXDEF txt179 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.625 0.0154687 APEX 0 0.625 0.109531 RAD 0.0078125 - txt179 -TEXDEF txt180 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.625 0.125 RAD 0.03125 - txt180 -TEXDEF txt181 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.625 0.125 APEX 0.109531 0.625 0.125 RAD 0.0078125 - txt181 -TEXDEF txt182 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.640469 0.125 APEX 0 0.734531 0.125 RAD 0.0078125 - txt182 -TEXDEF txt183 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.625 0.140469 APEX 0 0.625 0.234531 RAD 0.0078125 - txt183 -TEXDEF txt184 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.625 0.25 RAD 0.03125 - txt184 -TEXDEF txt185 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.625 0.25 APEX 0.109531 0.625 0.25 RAD 0.0078125 - txt185 -TEXDEF txt186 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.640469 0.25 APEX 0 0.734531 0.25 RAD 0.0078125 - txt186 -TEXDEF txt187 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.625 0.265469 APEX 0 0.625 0.359531 RAD 0.0078125 - txt187 -TEXDEF txt188 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.625 0.375 RAD 0.03125 - txt188 -TEXDEF txt189 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.625 0.375 APEX 0.109531 0.625 0.375 RAD 0.0078125 - txt189 -TEXDEF txt190 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.640469 0.375 APEX 0 0.734531 0.375 RAD 0.0078125 - txt190 -TEXDEF txt191 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.625 0.390469 APEX 0 0.625 0.484531 RAD 0.0078125 - txt191 -TEXDEF txt192 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.625 0.5 RAD 0.03125 - txt192 -TEXDEF txt193 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.625 0.5 APEX 0.109531 0.625 0.5 RAD 0.0078125 - txt193 -TEXDEF txt194 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.640469 0.5 APEX 0 0.734531 0.5 RAD 0.0078125 - txt194 -TEXDEF txt195 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.625 0.515469 APEX 0 0.625 0.609531 RAD 0.0078125 - txt195 -TEXDEF txt196 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.625 0.625 RAD 0.03125 - txt196 -TEXDEF txt197 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.625 0.625 APEX 0.109531 0.625 0.625 RAD 0.0078125 - txt197 -TEXDEF txt198 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.640469 0.625 APEX 0 0.734531 0.625 RAD 0.0078125 - txt198 -TEXDEF txt199 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.625 0.640469 APEX 0 0.625 0.734531 RAD 0.0078125 - txt199 -TEXDEF txt200 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.625 0.75 RAD 0.03125 - txt200 -TEXDEF txt201 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.625 0.75 APEX 0.109531 0.625 0.75 RAD 0.0078125 - txt201 -TEXDEF txt202 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.640469 0.75 APEX 0 0.734531 0.75 RAD 0.0078125 - txt202 -TEXDEF txt203 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.625 0.765469 APEX 0 0.625 0.859531 RAD 0.0078125 - txt203 -TEXDEF txt204 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.625 0.875 RAD 0.03125 - txt204 -TEXDEF txt205 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.625 0.875 APEX 0.109531 0.625 0.875 RAD 0.0078125 - txt205 -TEXDEF txt206 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.640469 0.875 APEX 0 0.734531 0.875 RAD 0.0078125 - txt206 -TEXDEF txt207 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.625 0.890469 APEX 0 0.625 0.984531 RAD 0.0078125 - txt207 -TEXDEF txt208 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.625 1 RAD 0.03125 - txt208 -TEXDEF txt209 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.625 1 APEX 0.109531 0.625 1 RAD 0.0078125 - txt209 -TEXDEF txt210 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.640469 1 APEX 0 0.734531 1 RAD 0.0078125 - txt210 -TEXDEF txt211 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.75 0 RAD 0.03125 - txt211 -TEXDEF txt212 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.75 0 APEX 0.109531 0.75 0 RAD 0.0078125 - txt212 -TEXDEF txt213 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.765469 0 APEX 0 0.859531 0 RAD 0.0078125 - txt213 -TEXDEF txt214 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.75 0.0154687 APEX 0 0.75 0.109531 RAD 0.0078125 - txt214 -TEXDEF txt215 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.75 0.125 RAD 0.03125 - txt215 -TEXDEF txt216 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.75 0.125 APEX 0.109531 0.75 0.125 RAD 0.0078125 - txt216 -TEXDEF txt217 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.765469 0.125 APEX 0 0.859531 0.125 RAD 0.0078125 - txt217 -TEXDEF txt218 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.75 0.140469 APEX 0 0.75 0.234531 RAD 0.0078125 - txt218 -TEXDEF txt219 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.75 0.25 RAD 0.03125 - txt219 -TEXDEF txt220 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.75 0.25 APEX 0.109531 0.75 0.25 RAD 0.0078125 - txt220 -TEXDEF txt221 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.765469 0.25 APEX 0 0.859531 0.25 RAD 0.0078125 - txt221 -TEXDEF txt222 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.75 0.265469 APEX 0 0.75 0.359531 RAD 0.0078125 - txt222 -TEXDEF txt223 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.75 0.375 RAD 0.03125 - txt223 -TEXDEF txt224 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.75 0.375 APEX 0.109531 0.75 0.375 RAD 0.0078125 - txt224 -TEXDEF txt225 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.765469 0.375 APEX 0 0.859531 0.375 RAD 0.0078125 - txt225 -TEXDEF txt226 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.75 0.390469 APEX 0 0.75 0.484531 RAD 0.0078125 - txt226 -TEXDEF txt227 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.75 0.5 RAD 0.03125 - txt227 -TEXDEF txt228 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.75 0.5 APEX 0.109531 0.75 0.5 RAD 0.0078125 - txt228 -TEXDEF txt229 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.765469 0.5 APEX 0 0.859531 0.5 RAD 0.0078125 - txt229 -TEXDEF txt230 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.75 0.515469 APEX 0 0.75 0.609531 RAD 0.0078125 - txt230 -TEXDEF txt231 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.75 0.625 RAD 0.03125 - txt231 -TEXDEF txt232 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.75 0.625 APEX 0.109531 0.75 0.625 RAD 0.0078125 - txt232 -TEXDEF txt233 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.765469 0.625 APEX 0 0.859531 0.625 RAD 0.0078125 - txt233 -TEXDEF txt234 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.75 0.640469 APEX 0 0.75 0.734531 RAD 0.0078125 - txt234 -TEXDEF txt235 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.75 0.75 RAD 0.03125 - txt235 -TEXDEF txt236 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.75 0.75 APEX 0.109531 0.75 0.75 RAD 0.0078125 - txt236 -TEXDEF txt237 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.765469 0.75 APEX 0 0.859531 0.75 RAD 0.0078125 - txt237 -TEXDEF txt238 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.75 0.765469 APEX 0 0.75 0.859531 RAD 0.0078125 - txt238 -TEXDEF txt239 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.75 0.875 RAD 0.03125 - txt239 -TEXDEF txt240 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.75 0.875 APEX 0.109531 0.75 0.875 RAD 0.0078125 - txt240 -TEXDEF txt241 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.765469 0.875 APEX 0 0.859531 0.875 RAD 0.0078125 - txt241 -TEXDEF txt242 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.75 0.890469 APEX 0 0.75 0.984531 RAD 0.0078125 - txt242 -TEXDEF txt243 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.75 1 RAD 0.03125 - txt243 -TEXDEF txt244 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.75 1 APEX 0.109531 0.75 1 RAD 0.0078125 - txt244 -TEXDEF txt245 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.765469 1 APEX 0 0.859531 1 RAD 0.0078125 - txt245 -TEXDEF txt246 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.875 0 RAD 0.03125 - txt246 -TEXDEF txt247 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.875 0 APEX 0.109531 0.875 0 RAD 0.0078125 - txt247 -TEXDEF txt248 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.890469 0 APEX 0 0.984531 0 RAD 0.0078125 - txt248 -TEXDEF txt249 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.875 0.0154687 APEX 0 0.875 0.109531 RAD 0.0078125 - txt249 -TEXDEF txt250 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.875 0.125 RAD 0.03125 - txt250 -TEXDEF txt251 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.875 0.125 APEX 0.109531 0.875 0.125 RAD 0.0078125 - txt251 -TEXDEF txt252 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.890469 0.125 APEX 0 0.984531 0.125 RAD 0.0078125 - txt252 -TEXDEF txt253 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.875 0.140469 APEX 0 0.875 0.234531 RAD 0.0078125 - txt253 -TEXDEF txt254 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.875 0.25 RAD 0.03125 - txt254 -TEXDEF txt255 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.875 0.25 APEX 0.109531 0.875 0.25 RAD 0.0078125 - txt255 -TEXDEF txt256 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.890469 0.25 APEX 0 0.984531 0.25 RAD 0.0078125 - txt256 -TEXDEF txt257 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.875 0.265469 APEX 0 0.875 0.359531 RAD 0.0078125 - txt257 -TEXDEF txt258 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.875 0.375 RAD 0.03125 - txt258 -TEXDEF txt259 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.875 0.375 APEX 0.109531 0.875 0.375 RAD 0.0078125 - txt259 -TEXDEF txt260 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.890469 0.375 APEX 0 0.984531 0.375 RAD 0.0078125 - txt260 -TEXDEF txt261 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.875 0.390469 APEX 0 0.875 0.484531 RAD 0.0078125 - txt261 -TEXDEF txt262 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.875 0.5 RAD 0.03125 - txt262 -TEXDEF txt263 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.875 0.5 APEX 0.109531 0.875 0.5 RAD 0.0078125 - txt263 -TEXDEF txt264 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.890469 0.5 APEX 0 0.984531 0.5 RAD 0.0078125 - txt264 -TEXDEF txt265 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.875 0.515469 APEX 0 0.875 0.609531 RAD 0.0078125 - txt265 -TEXDEF txt266 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.875 0.625 RAD 0.03125 - txt266 -TEXDEF txt267 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.875 0.625 APEX 0.109531 0.875 0.625 RAD 0.0078125 - txt267 -TEXDEF txt268 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.890469 0.625 APEX 0 0.984531 0.625 RAD 0.0078125 - txt268 -TEXDEF txt269 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.875 0.640469 APEX 0 0.875 0.734531 RAD 0.0078125 - txt269 -TEXDEF txt270 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.875 0.75 RAD 0.03125 - txt270 -TEXDEF txt271 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.875 0.75 APEX 0.109531 0.875 0.75 RAD 0.0078125 - txt271 -TEXDEF txt272 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.890469 0.75 APEX 0 0.984531 0.75 RAD 0.0078125 - txt272 -TEXDEF txt273 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.875 0.765469 APEX 0 0.875 0.859531 RAD 0.0078125 - txt273 -TEXDEF txt274 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.875 0.875 RAD 0.03125 - txt274 -TEXDEF txt275 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.875 0.875 APEX 0.109531 0.875 0.875 RAD 0.0078125 - txt275 -TEXDEF txt276 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.890469 0.875 APEX 0 0.984531 0.875 RAD 0.0078125 - txt276 -TEXDEF txt277 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.875 0.890469 APEX 0 0.875 0.984531 RAD 0.0078125 - txt277 -TEXDEF txt278 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 0.875 1 RAD 0.03125 - txt278 -TEXDEF txt279 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 0.875 1 APEX 0.109531 0.875 1 RAD 0.0078125 - txt279 -TEXDEF txt280 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0 0.890469 1 APEX 0 0.984531 1 RAD 0.0078125 - txt280 -TEXDEF txt281 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 1 0 RAD 0.03125 - txt281 -TEXDEF txt282 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 1 0 APEX 0.109531 1 0 RAD 0.0078125 - txt282 -TEXDEF txt283 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 1 0.0154687 APEX 0 1 0.109531 RAD 0.0078125 - txt283 -TEXDEF txt284 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 1 0.125 RAD 0.03125 - txt284 -TEXDEF txt285 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 1 0.125 APEX 0.109531 1 0.125 RAD 0.0078125 - txt285 -TEXDEF txt286 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 1 0.140469 APEX 0 1 0.234531 RAD 0.0078125 - txt286 -TEXDEF txt287 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 1 0.25 RAD 0.03125 - txt287 -TEXDEF txt288 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 1 0.25 APEX 0.109531 1 0.25 RAD 0.0078125 - txt288 -TEXDEF txt289 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 1 0.265469 APEX 0 1 0.359531 RAD 0.0078125 - txt289 -TEXDEF txt290 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 1 0.375 RAD 0.03125 - txt290 -TEXDEF txt291 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 1 0.375 APEX 0.109531 1 0.375 RAD 0.0078125 - txt291 -TEXDEF txt292 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 1 0.390469 APEX 0 1 0.484531 RAD 0.0078125 - txt292 -TEXDEF txt293 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 1 0.5 RAD 0.03125 - txt293 -TEXDEF txt294 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 1 0.5 APEX 0.109531 1 0.5 RAD 0.0078125 - txt294 -TEXDEF txt295 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 1 0.515469 APEX 0 1 0.609531 RAD 0.0078125 - txt295 -TEXDEF txt296 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 1 0.625 RAD 0.03125 - txt296 -TEXDEF txt297 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 1 0.625 APEX 0.109531 1 0.625 RAD 0.0078125 - txt297 -TEXDEF txt298 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 1 0.640469 APEX 0 1 0.734531 RAD 0.0078125 - txt298 -TEXDEF txt299 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 1 0.75 RAD 0.03125 - txt299 -TEXDEF txt300 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 1 0.75 APEX 0.109531 1 0.75 RAD 0.0078125 - txt300 -TEXDEF txt301 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 1 0.765469 APEX 0 1 0.859531 RAD 0.0078125 - txt301 -TEXDEF txt302 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 1 0.875 RAD 0.03125 - txt302 -TEXDEF txt303 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 1 0.875 APEX 0.109531 1 0.875 RAD 0.0078125 - txt303 -TEXDEF txt304 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0 1 0.890469 APEX 0 1 0.984531 RAD 0.0078125 - txt304 -TEXDEF txt305 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0 1 1 RAD 0.03125 - txt305 -TEXDEF txt306 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.0154687 1 1 APEX 0.109531 1 1 RAD 0.0078125 - txt306 -TEXDEF txt307 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0 0 RAD 0.03125 - txt307 -TEXDEF txt308 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0 0 APEX 0.234531 0 0 RAD 0.0078125 - txt308 -TEXDEF txt309 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.0154687 0 APEX 0.125 0.109531 0 RAD 0.0078125 - txt309 -TEXDEF txt310 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0 0.0154687 APEX 0.125 0 0.109531 RAD 0.0078125 - txt310 -TEXDEF txt311 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0 0.125 RAD 0.03125 - txt311 -TEXDEF txt312 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0 0.125 APEX 0.234531 0 0.125 RAD 0.0078125 - txt312 -TEXDEF txt313 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.0154687 0.125 APEX 0.125 0.109531 0.125 RAD 0.0078125 - txt313 -TEXDEF txt314 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0 0.140469 APEX 0.125 0 0.234531 RAD 0.0078125 - txt314 -TEXDEF txt315 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0 0.25 RAD 0.03125 - txt315 -TEXDEF txt316 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0 0.25 APEX 0.234531 0 0.25 RAD 0.0078125 - txt316 -TEXDEF txt317 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.0154687 0.25 APEX 0.125 0.109531 0.25 RAD 0.0078125 - txt317 -TEXDEF txt318 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0 0.265469 APEX 0.125 0 0.359531 RAD 0.0078125 - txt318 -TEXDEF txt319 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0 0.375 RAD 0.03125 - txt319 -TEXDEF txt320 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0 0.375 APEX 0.234531 0 0.375 RAD 0.0078125 - txt320 -TEXDEF txt321 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.0154687 0.375 APEX 0.125 0.109531 0.375 RAD 0.0078125 - txt321 -TEXDEF txt322 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0 0.390469 APEX 0.125 0 0.484531 RAD 0.0078125 - txt322 -TEXDEF txt323 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0 0.5 RAD 0.03125 - txt323 -TEXDEF txt324 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0 0.5 APEX 0.234531 0 0.5 RAD 0.0078125 - txt324 -TEXDEF txt325 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.0154687 0.5 APEX 0.125 0.109531 0.5 RAD 0.0078125 - txt325 -TEXDEF txt326 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0 0.515469 APEX 0.125 0 0.609531 RAD 0.0078125 - txt326 -TEXDEF txt327 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0 0.625 RAD 0.03125 - txt327 -TEXDEF txt328 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0 0.625 APEX 0.234531 0 0.625 RAD 0.0078125 - txt328 -TEXDEF txt329 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.0154687 0.625 APEX 0.125 0.109531 0.625 RAD 0.0078125 - txt329 -TEXDEF txt330 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0 0.640469 APEX 0.125 0 0.734531 RAD 0.0078125 - txt330 -TEXDEF txt331 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0 0.75 RAD 0.03125 - txt331 -TEXDEF txt332 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0 0.75 APEX 0.234531 0 0.75 RAD 0.0078125 - txt332 -TEXDEF txt333 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.0154687 0.75 APEX 0.125 0.109531 0.75 RAD 0.0078125 - txt333 -TEXDEF txt334 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0 0.765469 APEX 0.125 0 0.859531 RAD 0.0078125 - txt334 -TEXDEF txt335 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0 0.875 RAD 0.03125 - txt335 -TEXDEF txt336 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0 0.875 APEX 0.234531 0 0.875 RAD 0.0078125 - txt336 -TEXDEF txt337 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.0154687 0.875 APEX 0.125 0.109531 0.875 RAD 0.0078125 - txt337 -TEXDEF txt338 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0 0.890469 APEX 0.125 0 0.984531 RAD 0.0078125 - txt338 -TEXDEF txt339 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0 1 RAD 0.03125 - txt339 -TEXDEF txt340 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0 1 APEX 0.234531 0 1 RAD 0.0078125 - txt340 -TEXDEF txt341 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.0154687 1 APEX 0.125 0.109531 1 RAD 0.0078125 - txt341 -TEXDEF txt342 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.125 0 RAD 0.03125 - txt342 -TEXDEF txt343 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.125 0 APEX 0.234531 0.125 0 RAD 0.0078125 - txt343 -TEXDEF txt344 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.140469 0 APEX 0.125 0.234531 0 RAD 0.0078125 - txt344 -TEXDEF txt345 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.125 0.0154687 APEX 0.125 0.125 0.109531 RAD 0.0078125 - txt345 -TEXDEF txt346 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.125 0.125 RAD 0.03125 - txt346 -TEXDEF txt347 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.125 0.125 APEX 0.234531 0.125 0.125 RAD 0.0078125 - txt347 -TEXDEF txt348 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.140469 0.125 APEX 0.125 0.234531 0.125 RAD 0.0078125 - txt348 -TEXDEF txt349 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.125 0.140469 APEX 0.125 0.125 0.234531 RAD 0.0078125 - txt349 -TEXDEF txt350 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.125 0.25 RAD 0.03125 - txt350 -TEXDEF txt351 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.125 0.25 APEX 0.234531 0.125 0.25 RAD 0.0078125 - txt351 -TEXDEF txt352 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.140469 0.25 APEX 0.125 0.234531 0.25 RAD 0.0078125 - txt352 -TEXDEF txt353 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.125 0.265469 APEX 0.125 0.125 0.359531 RAD 0.0078125 - txt353 -TEXDEF txt354 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.125 0.375 RAD 0.03125 - txt354 -TEXDEF txt355 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.125 0.375 APEX 0.234531 0.125 0.375 RAD 0.0078125 - txt355 -TEXDEF txt356 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.140469 0.375 APEX 0.125 0.234531 0.375 RAD 0.0078125 - txt356 -TEXDEF txt357 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.125 0.390469 APEX 0.125 0.125 0.484531 RAD 0.0078125 - txt357 -TEXDEF txt358 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.125 0.5 RAD 0.03125 - txt358 -TEXDEF txt359 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.125 0.5 APEX 0.234531 0.125 0.5 RAD 0.0078125 - txt359 -TEXDEF txt360 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.140469 0.5 APEX 0.125 0.234531 0.5 RAD 0.0078125 - txt360 -TEXDEF txt361 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.125 0.515469 APEX 0.125 0.125 0.609531 RAD 0.0078125 - txt361 -TEXDEF txt362 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.125 0.625 RAD 0.03125 - txt362 -TEXDEF txt363 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.125 0.625 APEX 0.234531 0.125 0.625 RAD 0.0078125 - txt363 -TEXDEF txt364 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.140469 0.625 APEX 0.125 0.234531 0.625 RAD 0.0078125 - txt364 -TEXDEF txt365 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.125 0.640469 APEX 0.125 0.125 0.734531 RAD 0.0078125 - txt365 -TEXDEF txt366 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.125 0.75 RAD 0.03125 - txt366 -TEXDEF txt367 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.125 0.75 APEX 0.234531 0.125 0.75 RAD 0.0078125 - txt367 -TEXDEF txt368 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.140469 0.75 APEX 0.125 0.234531 0.75 RAD 0.0078125 - txt368 -TEXDEF txt369 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.125 0.765469 APEX 0.125 0.125 0.859531 RAD 0.0078125 - txt369 -TEXDEF txt370 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.125 0.875 RAD 0.03125 - txt370 -TEXDEF txt371 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.125 0.875 APEX 0.234531 0.125 0.875 RAD 0.0078125 - txt371 -TEXDEF txt372 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.140469 0.875 APEX 0.125 0.234531 0.875 RAD 0.0078125 - txt372 -TEXDEF txt373 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.125 0.890469 APEX 0.125 0.125 0.984531 RAD 0.0078125 - txt373 -TEXDEF txt374 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.125 1 RAD 0.03125 - txt374 -TEXDEF txt375 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.125 1 APEX 0.234531 0.125 1 RAD 0.0078125 - txt375 -TEXDEF txt376 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.140469 1 APEX 0.125 0.234531 1 RAD 0.0078125 - txt376 -TEXDEF txt377 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.25 0 RAD 0.03125 - txt377 -TEXDEF txt378 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.25 0 APEX 0.234531 0.25 0 RAD 0.0078125 - txt378 -TEXDEF txt379 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.265469 0 APEX 0.125 0.359531 0 RAD 0.0078125 - txt379 -TEXDEF txt380 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.25 0.0154687 APEX 0.125 0.25 0.109531 RAD 0.0078125 - txt380 -TEXDEF txt381 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.25 0.125 RAD 0.03125 - txt381 -TEXDEF txt382 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.25 0.125 APEX 0.234531 0.25 0.125 RAD 0.0078125 - txt382 -TEXDEF txt383 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.265469 0.125 APEX 0.125 0.359531 0.125 RAD 0.0078125 - txt383 -TEXDEF txt384 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.25 0.140469 APEX 0.125 0.25 0.234531 RAD 0.0078125 - txt384 -TEXDEF txt385 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.25 0.25 RAD 0.03125 - txt385 -TEXDEF txt386 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.25 0.25 APEX 0.234531 0.25 0.25 RAD 0.0078125 - txt386 -TEXDEF txt387 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.265469 0.25 APEX 0.125 0.359531 0.25 RAD 0.0078125 - txt387 -TEXDEF txt388 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.25 0.265469 APEX 0.125 0.25 0.359531 RAD 0.0078125 - txt388 -TEXDEF txt389 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.25 0.375 RAD 0.03125 - txt389 -TEXDEF txt390 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.25 0.375 APEX 0.234531 0.25 0.375 RAD 0.0078125 - txt390 -TEXDEF txt391 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.265469 0.375 APEX 0.125 0.359531 0.375 RAD 0.0078125 - txt391 -TEXDEF txt392 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.25 0.390469 APEX 0.125 0.25 0.484531 RAD 0.0078125 - txt392 -TEXDEF txt393 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.25 0.5 RAD 0.03125 - txt393 -TEXDEF txt394 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.25 0.5 APEX 0.234531 0.25 0.5 RAD 0.0078125 - txt394 -TEXDEF txt395 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.265469 0.5 APEX 0.125 0.359531 0.5 RAD 0.0078125 - txt395 -TEXDEF txt396 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.25 0.515469 APEX 0.125 0.25 0.609531 RAD 0.0078125 - txt396 -TEXDEF txt397 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.25 0.625 RAD 0.03125 - txt397 -TEXDEF txt398 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.25 0.625 APEX 0.234531 0.25 0.625 RAD 0.0078125 - txt398 -TEXDEF txt399 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.265469 0.625 APEX 0.125 0.359531 0.625 RAD 0.0078125 - txt399 -TEXDEF txt400 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.25 0.640469 APEX 0.125 0.25 0.734531 RAD 0.0078125 - txt400 -TEXDEF txt401 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.25 0.75 RAD 0.03125 - txt401 -TEXDEF txt402 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.25 0.75 APEX 0.234531 0.25 0.75 RAD 0.0078125 - txt402 -TEXDEF txt403 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.265469 0.75 APEX 0.125 0.359531 0.75 RAD 0.0078125 - txt403 -TEXDEF txt404 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.25 0.765469 APEX 0.125 0.25 0.859531 RAD 0.0078125 - txt404 -TEXDEF txt405 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.25 0.875 RAD 0.03125 - txt405 -TEXDEF txt406 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.25 0.875 APEX 0.234531 0.25 0.875 RAD 0.0078125 - txt406 -TEXDEF txt407 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.265469 0.875 APEX 0.125 0.359531 0.875 RAD 0.0078125 - txt407 -TEXDEF txt408 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.25 0.890469 APEX 0.125 0.25 0.984531 RAD 0.0078125 - txt408 -TEXDEF txt409 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.25 1 RAD 0.03125 - txt409 -TEXDEF txt410 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.25 1 APEX 0.234531 0.25 1 RAD 0.0078125 - txt410 -TEXDEF txt411 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.265469 1 APEX 0.125 0.359531 1 RAD 0.0078125 - txt411 -TEXDEF txt412 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.375 0 RAD 0.03125 - txt412 -TEXDEF txt413 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.375 0 APEX 0.234531 0.375 0 RAD 0.0078125 - txt413 -TEXDEF txt414 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.390469 0 APEX 0.125 0.484531 0 RAD 0.0078125 - txt414 -TEXDEF txt415 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.375 0.0154687 APEX 0.125 0.375 0.109531 RAD 0.0078125 - txt415 -TEXDEF txt416 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.375 0.125 RAD 0.03125 - txt416 -TEXDEF txt417 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.375 0.125 APEX 0.234531 0.375 0.125 RAD 0.0078125 - txt417 -TEXDEF txt418 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.390469 0.125 APEX 0.125 0.484531 0.125 RAD 0.0078125 - txt418 -TEXDEF txt419 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.375 0.140469 APEX 0.125 0.375 0.234531 RAD 0.0078125 - txt419 -TEXDEF txt420 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.375 0.25 RAD 0.03125 - txt420 -TEXDEF txt421 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.375 0.25 APEX 0.234531 0.375 0.25 RAD 0.0078125 - txt421 -TEXDEF txt422 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.390469 0.25 APEX 0.125 0.484531 0.25 RAD 0.0078125 - txt422 -TEXDEF txt423 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.375 0.265469 APEX 0.125 0.375 0.359531 RAD 0.0078125 - txt423 -TEXDEF txt424 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.375 0.375 RAD 0.03125 - txt424 -TEXDEF txt425 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.375 0.375 APEX 0.234531 0.375 0.375 RAD 0.0078125 - txt425 -TEXDEF txt426 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.390469 0.375 APEX 0.125 0.484531 0.375 RAD 0.0078125 - txt426 -TEXDEF txt427 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.375 0.390469 APEX 0.125 0.375 0.484531 RAD 0.0078125 - txt427 -TEXDEF txt428 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.375 0.5 RAD 0.03125 - txt428 -TEXDEF txt429 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.375 0.5 APEX 0.234531 0.375 0.5 RAD 0.0078125 - txt429 -TEXDEF txt430 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.390469 0.5 APEX 0.125 0.484531 0.5 RAD 0.0078125 - txt430 -TEXDEF txt431 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.375 0.515469 APEX 0.125 0.375 0.609531 RAD 0.0078125 - txt431 -TEXDEF txt432 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.375 0.625 RAD 0.03125 - txt432 -TEXDEF txt433 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.375 0.625 APEX 0.234531 0.375 0.625 RAD 0.0078125 - txt433 -TEXDEF txt434 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.390469 0.625 APEX 0.125 0.484531 0.625 RAD 0.0078125 - txt434 -TEXDEF txt435 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.375 0.640469 APEX 0.125 0.375 0.734531 RAD 0.0078125 - txt435 -TEXDEF txt436 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.375 0.75 RAD 0.03125 - txt436 -TEXDEF txt437 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.375 0.75 APEX 0.234531 0.375 0.75 RAD 0.0078125 - txt437 -TEXDEF txt438 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.390469 0.75 APEX 0.125 0.484531 0.75 RAD 0.0078125 - txt438 -TEXDEF txt439 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.375 0.765469 APEX 0.125 0.375 0.859531 RAD 0.0078125 - txt439 -TEXDEF txt440 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.375 0.875 RAD 0.03125 - txt440 -TEXDEF txt441 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.375 0.875 APEX 0.234531 0.375 0.875 RAD 0.0078125 - txt441 -TEXDEF txt442 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.390469 0.875 APEX 0.125 0.484531 0.875 RAD 0.0078125 - txt442 -TEXDEF txt443 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.375 0.890469 APEX 0.125 0.375 0.984531 RAD 0.0078125 - txt443 -TEXDEF txt444 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.375 1 RAD 0.03125 - txt444 -TEXDEF txt445 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.375 1 APEX 0.234531 0.375 1 RAD 0.0078125 - txt445 -TEXDEF txt446 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.390469 1 APEX 0.125 0.484531 1 RAD 0.0078125 - txt446 -TEXDEF txt447 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.5 0 RAD 0.03125 - txt447 -TEXDEF txt448 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.5 0 APEX 0.234531 0.5 0 RAD 0.0078125 - txt448 -TEXDEF txt449 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.515469 0 APEX 0.125 0.609531 0 RAD 0.0078125 - txt449 -TEXDEF txt450 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.5 0.0154687 APEX 0.125 0.5 0.109531 RAD 0.0078125 - txt450 -TEXDEF txt451 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.5 0.125 RAD 0.03125 - txt451 -TEXDEF txt452 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.5 0.125 APEX 0.234531 0.5 0.125 RAD 0.0078125 - txt452 -TEXDEF txt453 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.515469 0.125 APEX 0.125 0.609531 0.125 RAD 0.0078125 - txt453 -TEXDEF txt454 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.5 0.140469 APEX 0.125 0.5 0.234531 RAD 0.0078125 - txt454 -TEXDEF txt455 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.5 0.25 RAD 0.03125 - txt455 -TEXDEF txt456 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.5 0.25 APEX 0.234531 0.5 0.25 RAD 0.0078125 - txt456 -TEXDEF txt457 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.515469 0.25 APEX 0.125 0.609531 0.25 RAD 0.0078125 - txt457 -TEXDEF txt458 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.5 0.265469 APEX 0.125 0.5 0.359531 RAD 0.0078125 - txt458 -TEXDEF txt459 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.5 0.375 RAD 0.03125 - txt459 -TEXDEF txt460 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.5 0.375 APEX 0.234531 0.5 0.375 RAD 0.0078125 - txt460 -TEXDEF txt461 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.515469 0.375 APEX 0.125 0.609531 0.375 RAD 0.0078125 - txt461 -TEXDEF txt462 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.5 0.390469 APEX 0.125 0.5 0.484531 RAD 0.0078125 - txt462 -TEXDEF txt463 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.5 0.5 RAD 0.03125 - txt463 -TEXDEF txt464 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.5 0.5 APEX 0.234531 0.5 0.5 RAD 0.0078125 - txt464 -TEXDEF txt465 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.515469 0.5 APEX 0.125 0.609531 0.5 RAD 0.0078125 - txt465 -TEXDEF txt466 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.5 0.515469 APEX 0.125 0.5 0.609531 RAD 0.0078125 - txt466 -TEXDEF txt467 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.5 0.625 RAD 0.03125 - txt467 -TEXDEF txt468 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.5 0.625 APEX 0.234531 0.5 0.625 RAD 0.0078125 - txt468 -TEXDEF txt469 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.515469 0.625 APEX 0.125 0.609531 0.625 RAD 0.0078125 - txt469 -TEXDEF txt470 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.5 0.640469 APEX 0.125 0.5 0.734531 RAD 0.0078125 - txt470 -TEXDEF txt471 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.5 0.75 RAD 0.03125 - txt471 -TEXDEF txt472 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.5 0.75 APEX 0.234531 0.5 0.75 RAD 0.0078125 - txt472 -TEXDEF txt473 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.515469 0.75 APEX 0.125 0.609531 0.75 RAD 0.0078125 - txt473 -TEXDEF txt474 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.5 0.765469 APEX 0.125 0.5 0.859531 RAD 0.0078125 - txt474 -TEXDEF txt475 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.5 0.875 RAD 0.03125 - txt475 -TEXDEF txt476 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.5 0.875 APEX 0.234531 0.5 0.875 RAD 0.0078125 - txt476 -TEXDEF txt477 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.515469 0.875 APEX 0.125 0.609531 0.875 RAD 0.0078125 - txt477 -TEXDEF txt478 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.5 0.890469 APEX 0.125 0.5 0.984531 RAD 0.0078125 - txt478 -TEXDEF txt479 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.5 1 RAD 0.03125 - txt479 -TEXDEF txt480 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.5 1 APEX 0.234531 0.5 1 RAD 0.0078125 - txt480 -TEXDEF txt481 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.515469 1 APEX 0.125 0.609531 1 RAD 0.0078125 - txt481 -TEXDEF txt482 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.625 0 RAD 0.03125 - txt482 -TEXDEF txt483 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.625 0 APEX 0.234531 0.625 0 RAD 0.0078125 - txt483 -TEXDEF txt484 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.640469 0 APEX 0.125 0.734531 0 RAD 0.0078125 - txt484 -TEXDEF txt485 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.625 0.0154687 APEX 0.125 0.625 0.109531 RAD 0.0078125 - txt485 -TEXDEF txt486 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.625 0.125 RAD 0.03125 - txt486 -TEXDEF txt487 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.625 0.125 APEX 0.234531 0.625 0.125 RAD 0.0078125 - txt487 -TEXDEF txt488 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.640469 0.125 APEX 0.125 0.734531 0.125 RAD 0.0078125 - txt488 -TEXDEF txt489 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.625 0.140469 APEX 0.125 0.625 0.234531 RAD 0.0078125 - txt489 -TEXDEF txt490 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.625 0.25 RAD 0.03125 - txt490 -TEXDEF txt491 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.625 0.25 APEX 0.234531 0.625 0.25 RAD 0.0078125 - txt491 -TEXDEF txt492 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.640469 0.25 APEX 0.125 0.734531 0.25 RAD 0.0078125 - txt492 -TEXDEF txt493 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.625 0.265469 APEX 0.125 0.625 0.359531 RAD 0.0078125 - txt493 -TEXDEF txt494 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.625 0.375 RAD 0.03125 - txt494 -TEXDEF txt495 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.625 0.375 APEX 0.234531 0.625 0.375 RAD 0.0078125 - txt495 -TEXDEF txt496 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.640469 0.375 APEX 0.125 0.734531 0.375 RAD 0.0078125 - txt496 -TEXDEF txt497 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.625 0.390469 APEX 0.125 0.625 0.484531 RAD 0.0078125 - txt497 -TEXDEF txt498 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.625 0.5 RAD 0.03125 - txt498 -TEXDEF txt499 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.625 0.5 APEX 0.234531 0.625 0.5 RAD 0.0078125 - txt499 -TEXDEF txt500 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.640469 0.5 APEX 0.125 0.734531 0.5 RAD 0.0078125 - txt500 -TEXDEF txt501 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.625 0.515469 APEX 0.125 0.625 0.609531 RAD 0.0078125 - txt501 -TEXDEF txt502 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.625 0.625 RAD 0.03125 - txt502 -TEXDEF txt503 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.625 0.625 APEX 0.234531 0.625 0.625 RAD 0.0078125 - txt503 -TEXDEF txt504 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.640469 0.625 APEX 0.125 0.734531 0.625 RAD 0.0078125 - txt504 -TEXDEF txt505 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.625 0.640469 APEX 0.125 0.625 0.734531 RAD 0.0078125 - txt505 -TEXDEF txt506 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.625 0.75 RAD 0.03125 - txt506 -TEXDEF txt507 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.625 0.75 APEX 0.234531 0.625 0.75 RAD 0.0078125 - txt507 -TEXDEF txt508 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.640469 0.75 APEX 0.125 0.734531 0.75 RAD 0.0078125 - txt508 -TEXDEF txt509 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.625 0.765469 APEX 0.125 0.625 0.859531 RAD 0.0078125 - txt509 -TEXDEF txt510 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.625 0.875 RAD 0.03125 - txt510 -TEXDEF txt511 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.625 0.875 APEX 0.234531 0.625 0.875 RAD 0.0078125 - txt511 -TEXDEF txt512 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.640469 0.875 APEX 0.125 0.734531 0.875 RAD 0.0078125 - txt512 -TEXDEF txt513 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.625 0.890469 APEX 0.125 0.625 0.984531 RAD 0.0078125 - txt513 -TEXDEF txt514 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.625 1 RAD 0.03125 - txt514 -TEXDEF txt515 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.625 1 APEX 0.234531 0.625 1 RAD 0.0078125 - txt515 -TEXDEF txt516 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.640469 1 APEX 0.125 0.734531 1 RAD 0.0078125 - txt516 -TEXDEF txt517 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.75 0 RAD 0.03125 - txt517 -TEXDEF txt518 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.75 0 APEX 0.234531 0.75 0 RAD 0.0078125 - txt518 -TEXDEF txt519 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.765469 0 APEX 0.125 0.859531 0 RAD 0.0078125 - txt519 -TEXDEF txt520 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.75 0.0154687 APEX 0.125 0.75 0.109531 RAD 0.0078125 - txt520 -TEXDEF txt521 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.75 0.125 RAD 0.03125 - txt521 -TEXDEF txt522 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.75 0.125 APEX 0.234531 0.75 0.125 RAD 0.0078125 - txt522 -TEXDEF txt523 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.765469 0.125 APEX 0.125 0.859531 0.125 RAD 0.0078125 - txt523 -TEXDEF txt524 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.75 0.140469 APEX 0.125 0.75 0.234531 RAD 0.0078125 - txt524 -TEXDEF txt525 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.75 0.25 RAD 0.03125 - txt525 -TEXDEF txt526 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.75 0.25 APEX 0.234531 0.75 0.25 RAD 0.0078125 - txt526 -TEXDEF txt527 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.765469 0.25 APEX 0.125 0.859531 0.25 RAD 0.0078125 - txt527 -TEXDEF txt528 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.75 0.265469 APEX 0.125 0.75 0.359531 RAD 0.0078125 - txt528 -TEXDEF txt529 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.75 0.375 RAD 0.03125 - txt529 -TEXDEF txt530 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.75 0.375 APEX 0.234531 0.75 0.375 RAD 0.0078125 - txt530 -TEXDEF txt531 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.765469 0.375 APEX 0.125 0.859531 0.375 RAD 0.0078125 - txt531 -TEXDEF txt532 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.75 0.390469 APEX 0.125 0.75 0.484531 RAD 0.0078125 - txt532 -TEXDEF txt533 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.75 0.5 RAD 0.03125 - txt533 -TEXDEF txt534 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.75 0.5 APEX 0.234531 0.75 0.5 RAD 0.0078125 - txt534 -TEXDEF txt535 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.765469 0.5 APEX 0.125 0.859531 0.5 RAD 0.0078125 - txt535 -TEXDEF txt536 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.75 0.515469 APEX 0.125 0.75 0.609531 RAD 0.0078125 - txt536 -TEXDEF txt537 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.75 0.625 RAD 0.03125 - txt537 -TEXDEF txt538 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.75 0.625 APEX 0.234531 0.75 0.625 RAD 0.0078125 - txt538 -TEXDEF txt539 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.765469 0.625 APEX 0.125 0.859531 0.625 RAD 0.0078125 - txt539 -TEXDEF txt540 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.75 0.640469 APEX 0.125 0.75 0.734531 RAD 0.0078125 - txt540 -TEXDEF txt541 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.75 0.75 RAD 0.03125 - txt541 -TEXDEF txt542 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.75 0.75 APEX 0.234531 0.75 0.75 RAD 0.0078125 - txt542 -TEXDEF txt543 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.765469 0.75 APEX 0.125 0.859531 0.75 RAD 0.0078125 - txt543 -TEXDEF txt544 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.75 0.765469 APEX 0.125 0.75 0.859531 RAD 0.0078125 - txt544 -TEXDEF txt545 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.75 0.875 RAD 0.03125 - txt545 -TEXDEF txt546 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.75 0.875 APEX 0.234531 0.75 0.875 RAD 0.0078125 - txt546 -TEXDEF txt547 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.765469 0.875 APEX 0.125 0.859531 0.875 RAD 0.0078125 - txt547 -TEXDEF txt548 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.75 0.890469 APEX 0.125 0.75 0.984531 RAD 0.0078125 - txt548 -TEXDEF txt549 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.75 1 RAD 0.03125 - txt549 -TEXDEF txt550 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.75 1 APEX 0.234531 0.75 1 RAD 0.0078125 - txt550 -TEXDEF txt551 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.765469 1 APEX 0.125 0.859531 1 RAD 0.0078125 - txt551 -TEXDEF txt552 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.875 0 RAD 0.03125 - txt552 -TEXDEF txt553 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.875 0 APEX 0.234531 0.875 0 RAD 0.0078125 - txt553 -TEXDEF txt554 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.890469 0 APEX 0.125 0.984531 0 RAD 0.0078125 - txt554 -TEXDEF txt555 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.875 0.0154687 APEX 0.125 0.875 0.109531 RAD 0.0078125 - txt555 -TEXDEF txt556 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.875 0.125 RAD 0.03125 - txt556 -TEXDEF txt557 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.875 0.125 APEX 0.234531 0.875 0.125 RAD 0.0078125 - txt557 -TEXDEF txt558 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.890469 0.125 APEX 0.125 0.984531 0.125 RAD 0.0078125 - txt558 -TEXDEF txt559 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.875 0.140469 APEX 0.125 0.875 0.234531 RAD 0.0078125 - txt559 -TEXDEF txt560 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.875 0.25 RAD 0.03125 - txt560 -TEXDEF txt561 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.875 0.25 APEX 0.234531 0.875 0.25 RAD 0.0078125 - txt561 -TEXDEF txt562 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.890469 0.25 APEX 0.125 0.984531 0.25 RAD 0.0078125 - txt562 -TEXDEF txt563 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.875 0.265469 APEX 0.125 0.875 0.359531 RAD 0.0078125 - txt563 -TEXDEF txt564 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.875 0.375 RAD 0.03125 - txt564 -TEXDEF txt565 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.875 0.375 APEX 0.234531 0.875 0.375 RAD 0.0078125 - txt565 -TEXDEF txt566 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.890469 0.375 APEX 0.125 0.984531 0.375 RAD 0.0078125 - txt566 -TEXDEF txt567 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.875 0.390469 APEX 0.125 0.875 0.484531 RAD 0.0078125 - txt567 -TEXDEF txt568 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.875 0.5 RAD 0.03125 - txt568 -TEXDEF txt569 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.875 0.5 APEX 0.234531 0.875 0.5 RAD 0.0078125 - txt569 -TEXDEF txt570 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.890469 0.5 APEX 0.125 0.984531 0.5 RAD 0.0078125 - txt570 -TEXDEF txt571 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.875 0.515469 APEX 0.125 0.875 0.609531 RAD 0.0078125 - txt571 -TEXDEF txt572 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.875 0.625 RAD 0.03125 - txt572 -TEXDEF txt573 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.875 0.625 APEX 0.234531 0.875 0.625 RAD 0.0078125 - txt573 -TEXDEF txt574 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.890469 0.625 APEX 0.125 0.984531 0.625 RAD 0.0078125 - txt574 -TEXDEF txt575 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.875 0.640469 APEX 0.125 0.875 0.734531 RAD 0.0078125 - txt575 -TEXDEF txt576 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.875 0.75 RAD 0.03125 - txt576 -TEXDEF txt577 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.875 0.75 APEX 0.234531 0.875 0.75 RAD 0.0078125 - txt577 -TEXDEF txt578 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.890469 0.75 APEX 0.125 0.984531 0.75 RAD 0.0078125 - txt578 -TEXDEF txt579 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.875 0.765469 APEX 0.125 0.875 0.859531 RAD 0.0078125 - txt579 -TEXDEF txt580 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.875 0.875 RAD 0.03125 - txt580 -TEXDEF txt581 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.875 0.875 APEX 0.234531 0.875 0.875 RAD 0.0078125 - txt581 -TEXDEF txt582 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.890469 0.875 APEX 0.125 0.984531 0.875 RAD 0.0078125 - txt582 -TEXDEF txt583 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.875 0.890469 APEX 0.125 0.875 0.984531 RAD 0.0078125 - txt583 -TEXDEF txt584 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 0.875 1 RAD 0.03125 - txt584 -TEXDEF txt585 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 0.875 1 APEX 0.234531 0.875 1 RAD 0.0078125 - txt585 -TEXDEF txt586 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 0.890469 1 APEX 0.125 0.984531 1 RAD 0.0078125 - txt586 -TEXDEF txt587 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 1 0 RAD 0.03125 - txt587 -TEXDEF txt588 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 1 0 APEX 0.234531 1 0 RAD 0.0078125 - txt588 -TEXDEF txt589 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 1 0.0154687 APEX 0.125 1 0.109531 RAD 0.0078125 - txt589 -TEXDEF txt590 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 1 0.125 RAD 0.03125 - txt590 -TEXDEF txt591 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 1 0.125 APEX 0.234531 1 0.125 RAD 0.0078125 - txt591 -TEXDEF txt592 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 1 0.140469 APEX 0.125 1 0.234531 RAD 0.0078125 - txt592 -TEXDEF txt593 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 1 0.25 RAD 0.03125 - txt593 -TEXDEF txt594 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 1 0.25 APEX 0.234531 1 0.25 RAD 0.0078125 - txt594 -TEXDEF txt595 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 1 0.265469 APEX 0.125 1 0.359531 RAD 0.0078125 - txt595 -TEXDEF txt596 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 1 0.375 RAD 0.03125 - txt596 -TEXDEF txt597 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 1 0.375 APEX 0.234531 1 0.375 RAD 0.0078125 - txt597 -TEXDEF txt598 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 1 0.390469 APEX 0.125 1 0.484531 RAD 0.0078125 - txt598 -TEXDEF txt599 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 1 0.5 RAD 0.03125 - txt599 -TEXDEF txt600 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 1 0.5 APEX 0.234531 1 0.5 RAD 0.0078125 - txt600 -TEXDEF txt601 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 1 0.515469 APEX 0.125 1 0.609531 RAD 0.0078125 - txt601 -TEXDEF txt602 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 1 0.625 RAD 0.03125 - txt602 -TEXDEF txt603 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 1 0.625 APEX 0.234531 1 0.625 RAD 0.0078125 - txt603 -TEXDEF txt604 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 1 0.640469 APEX 0.125 1 0.734531 RAD 0.0078125 - txt604 -TEXDEF txt605 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 1 0.75 RAD 0.03125 - txt605 -TEXDEF txt606 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 1 0.75 APEX 0.234531 1 0.75 RAD 0.0078125 - txt606 -TEXDEF txt607 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 1 0.765469 APEX 0.125 1 0.859531 RAD 0.0078125 - txt607 -TEXDEF txt608 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 1 0.875 RAD 0.03125 - txt608 -TEXDEF txt609 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 1 0.875 APEX 0.234531 1 0.875 RAD 0.0078125 - txt609 -TEXDEF txt610 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.125 1 0.890469 APEX 0.125 1 0.984531 RAD 0.0078125 - txt610 -TEXDEF txt611 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.125 1 1 RAD 0.03125 - txt611 -TEXDEF txt612 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.140469 1 1 APEX 0.234531 1 1 RAD 0.0078125 - txt612 -TEXDEF txt613 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0 0 RAD 0.03125 - txt613 -TEXDEF txt614 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0 0 APEX 0.359531 0 0 RAD 0.0078125 - txt614 -TEXDEF txt615 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.0154687 0 APEX 0.25 0.109531 0 RAD 0.0078125 - txt615 -TEXDEF txt616 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0 0.0154687 APEX 0.25 0 0.109531 RAD 0.0078125 - txt616 -TEXDEF txt617 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0 0.125 RAD 0.03125 - txt617 -TEXDEF txt618 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0 0.125 APEX 0.359531 0 0.125 RAD 0.0078125 - txt618 -TEXDEF txt619 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.0154687 0.125 APEX 0.25 0.109531 0.125 RAD 0.0078125 - txt619 -TEXDEF txt620 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0 0.140469 APEX 0.25 0 0.234531 RAD 0.0078125 - txt620 -TEXDEF txt621 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0 0.25 RAD 0.03125 - txt621 -TEXDEF txt622 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0 0.25 APEX 0.359531 0 0.25 RAD 0.0078125 - txt622 -TEXDEF txt623 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.0154687 0.25 APEX 0.25 0.109531 0.25 RAD 0.0078125 - txt623 -TEXDEF txt624 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0 0.265469 APEX 0.25 0 0.359531 RAD 0.0078125 - txt624 -TEXDEF txt625 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0 0.375 RAD 0.03125 - txt625 -TEXDEF txt626 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0 0.375 APEX 0.359531 0 0.375 RAD 0.0078125 - txt626 -TEXDEF txt627 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.0154687 0.375 APEX 0.25 0.109531 0.375 RAD 0.0078125 - txt627 -TEXDEF txt628 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0 0.390469 APEX 0.25 0 0.484531 RAD 0.0078125 - txt628 -TEXDEF txt629 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0 0.5 RAD 0.03125 - txt629 -TEXDEF txt630 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0 0.5 APEX 0.359531 0 0.5 RAD 0.0078125 - txt630 -TEXDEF txt631 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.0154687 0.5 APEX 0.25 0.109531 0.5 RAD 0.0078125 - txt631 -TEXDEF txt632 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0 0.515469 APEX 0.25 0 0.609531 RAD 0.0078125 - txt632 -TEXDEF txt633 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0 0.625 RAD 0.03125 - txt633 -TEXDEF txt634 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0 0.625 APEX 0.359531 0 0.625 RAD 0.0078125 - txt634 -TEXDEF txt635 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.0154687 0.625 APEX 0.25 0.109531 0.625 RAD 0.0078125 - txt635 -TEXDEF txt636 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0 0.640469 APEX 0.25 0 0.734531 RAD 0.0078125 - txt636 -TEXDEF txt637 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0 0.75 RAD 0.03125 - txt637 -TEXDEF txt638 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0 0.75 APEX 0.359531 0 0.75 RAD 0.0078125 - txt638 -TEXDEF txt639 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.0154687 0.75 APEX 0.25 0.109531 0.75 RAD 0.0078125 - txt639 -TEXDEF txt640 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0 0.765469 APEX 0.25 0 0.859531 RAD 0.0078125 - txt640 -TEXDEF txt641 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0 0.875 RAD 0.03125 - txt641 -TEXDEF txt642 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0 0.875 APEX 0.359531 0 0.875 RAD 0.0078125 - txt642 -TEXDEF txt643 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.0154687 0.875 APEX 0.25 0.109531 0.875 RAD 0.0078125 - txt643 -TEXDEF txt644 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0 0.890469 APEX 0.25 0 0.984531 RAD 0.0078125 - txt644 -TEXDEF txt645 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0 1 RAD 0.03125 - txt645 -TEXDEF txt646 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0 1 APEX 0.359531 0 1 RAD 0.0078125 - txt646 -TEXDEF txt647 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.0154687 1 APEX 0.25 0.109531 1 RAD 0.0078125 - txt647 -TEXDEF txt648 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.125 0 RAD 0.03125 - txt648 -TEXDEF txt649 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.125 0 APEX 0.359531 0.125 0 RAD 0.0078125 - txt649 -TEXDEF txt650 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.140469 0 APEX 0.25 0.234531 0 RAD 0.0078125 - txt650 -TEXDEF txt651 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.125 0.0154687 APEX 0.25 0.125 0.109531 RAD 0.0078125 - txt651 -TEXDEF txt652 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.125 0.125 RAD 0.03125 - txt652 -TEXDEF txt653 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.125 0.125 APEX 0.359531 0.125 0.125 RAD 0.0078125 - txt653 -TEXDEF txt654 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.140469 0.125 APEX 0.25 0.234531 0.125 RAD 0.0078125 - txt654 -TEXDEF txt655 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.125 0.140469 APEX 0.25 0.125 0.234531 RAD 0.0078125 - txt655 -TEXDEF txt656 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.125 0.25 RAD 0.03125 - txt656 -TEXDEF txt657 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.125 0.25 APEX 0.359531 0.125 0.25 RAD 0.0078125 - txt657 -TEXDEF txt658 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.140469 0.25 APEX 0.25 0.234531 0.25 RAD 0.0078125 - txt658 -TEXDEF txt659 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.125 0.265469 APEX 0.25 0.125 0.359531 RAD 0.0078125 - txt659 -TEXDEF txt660 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.125 0.375 RAD 0.03125 - txt660 -TEXDEF txt661 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.125 0.375 APEX 0.359531 0.125 0.375 RAD 0.0078125 - txt661 -TEXDEF txt662 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.140469 0.375 APEX 0.25 0.234531 0.375 RAD 0.0078125 - txt662 -TEXDEF txt663 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.125 0.390469 APEX 0.25 0.125 0.484531 RAD 0.0078125 - txt663 -TEXDEF txt664 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.125 0.5 RAD 0.03125 - txt664 -TEXDEF txt665 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.125 0.5 APEX 0.359531 0.125 0.5 RAD 0.0078125 - txt665 -TEXDEF txt666 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.140469 0.5 APEX 0.25 0.234531 0.5 RAD 0.0078125 - txt666 -TEXDEF txt667 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.125 0.515469 APEX 0.25 0.125 0.609531 RAD 0.0078125 - txt667 -TEXDEF txt668 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.125 0.625 RAD 0.03125 - txt668 -TEXDEF txt669 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.125 0.625 APEX 0.359531 0.125 0.625 RAD 0.0078125 - txt669 -TEXDEF txt670 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.140469 0.625 APEX 0.25 0.234531 0.625 RAD 0.0078125 - txt670 -TEXDEF txt671 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.125 0.640469 APEX 0.25 0.125 0.734531 RAD 0.0078125 - txt671 -TEXDEF txt672 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.125 0.75 RAD 0.03125 - txt672 -TEXDEF txt673 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.125 0.75 APEX 0.359531 0.125 0.75 RAD 0.0078125 - txt673 -TEXDEF txt674 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.140469 0.75 APEX 0.25 0.234531 0.75 RAD 0.0078125 - txt674 -TEXDEF txt675 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.125 0.765469 APEX 0.25 0.125 0.859531 RAD 0.0078125 - txt675 -TEXDEF txt676 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.125 0.875 RAD 0.03125 - txt676 -TEXDEF txt677 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.125 0.875 APEX 0.359531 0.125 0.875 RAD 0.0078125 - txt677 -TEXDEF txt678 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.140469 0.875 APEX 0.25 0.234531 0.875 RAD 0.0078125 - txt678 -TEXDEF txt679 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.125 0.890469 APEX 0.25 0.125 0.984531 RAD 0.0078125 - txt679 -TEXDEF txt680 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.125 1 RAD 0.03125 - txt680 -TEXDEF txt681 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.125 1 APEX 0.359531 0.125 1 RAD 0.0078125 - txt681 -TEXDEF txt682 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.140469 1 APEX 0.25 0.234531 1 RAD 0.0078125 - txt682 -TEXDEF txt683 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.25 0 RAD 0.03125 - txt683 -TEXDEF txt684 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.25 0 APEX 0.359531 0.25 0 RAD 0.0078125 - txt684 -TEXDEF txt685 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.265469 0 APEX 0.25 0.359531 0 RAD 0.0078125 - txt685 -TEXDEF txt686 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.25 0.0154687 APEX 0.25 0.25 0.109531 RAD 0.0078125 - txt686 -TEXDEF txt687 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.25 0.125 RAD 0.03125 - txt687 -TEXDEF txt688 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.25 0.125 APEX 0.359531 0.25 0.125 RAD 0.0078125 - txt688 -TEXDEF txt689 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.265469 0.125 APEX 0.25 0.359531 0.125 RAD 0.0078125 - txt689 -TEXDEF txt690 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.25 0.140469 APEX 0.25 0.25 0.234531 RAD 0.0078125 - txt690 -TEXDEF txt691 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.25 0.25 RAD 0.03125 - txt691 -TEXDEF txt692 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.25 0.25 APEX 0.359531 0.25 0.25 RAD 0.0078125 - txt692 -TEXDEF txt693 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.265469 0.25 APEX 0.25 0.359531 0.25 RAD 0.0078125 - txt693 -TEXDEF txt694 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.25 0.265469 APEX 0.25 0.25 0.359531 RAD 0.0078125 - txt694 -TEXDEF txt695 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.25 0.375 RAD 0.03125 - txt695 -TEXDEF txt696 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.25 0.375 APEX 0.359531 0.25 0.375 RAD 0.0078125 - txt696 -TEXDEF txt697 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.265469 0.375 APEX 0.25 0.359531 0.375 RAD 0.0078125 - txt697 -TEXDEF txt698 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.25 0.390469 APEX 0.25 0.25 0.484531 RAD 0.0078125 - txt698 -TEXDEF txt699 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.25 0.5 RAD 0.03125 - txt699 -TEXDEF txt700 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.25 0.5 APEX 0.359531 0.25 0.5 RAD 0.0078125 - txt700 -TEXDEF txt701 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.265469 0.5 APEX 0.25 0.359531 0.5 RAD 0.0078125 - txt701 -TEXDEF txt702 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.25 0.515469 APEX 0.25 0.25 0.609531 RAD 0.0078125 - txt702 -TEXDEF txt703 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.25 0.625 RAD 0.03125 - txt703 -TEXDEF txt704 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.25 0.625 APEX 0.359531 0.25 0.625 RAD 0.0078125 - txt704 -TEXDEF txt705 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.265469 0.625 APEX 0.25 0.359531 0.625 RAD 0.0078125 - txt705 -TEXDEF txt706 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.25 0.640469 APEX 0.25 0.25 0.734531 RAD 0.0078125 - txt706 -TEXDEF txt707 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.25 0.75 RAD 0.03125 - txt707 -TEXDEF txt708 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.25 0.75 APEX 0.359531 0.25 0.75 RAD 0.0078125 - txt708 -TEXDEF txt709 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.265469 0.75 APEX 0.25 0.359531 0.75 RAD 0.0078125 - txt709 -TEXDEF txt710 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.25 0.765469 APEX 0.25 0.25 0.859531 RAD 0.0078125 - txt710 -TEXDEF txt711 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.25 0.875 RAD 0.03125 - txt711 -TEXDEF txt712 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.25 0.875 APEX 0.359531 0.25 0.875 RAD 0.0078125 - txt712 -TEXDEF txt713 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.265469 0.875 APEX 0.25 0.359531 0.875 RAD 0.0078125 - txt713 -TEXDEF txt714 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.25 0.890469 APEX 0.25 0.25 0.984531 RAD 0.0078125 - txt714 -TEXDEF txt715 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.25 1 RAD 0.03125 - txt715 -TEXDEF txt716 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.25 1 APEX 0.359531 0.25 1 RAD 0.0078125 - txt716 -TEXDEF txt717 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.265469 1 APEX 0.25 0.359531 1 RAD 0.0078125 - txt717 -TEXDEF txt718 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.375 0 RAD 0.03125 - txt718 -TEXDEF txt719 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.375 0 APEX 0.359531 0.375 0 RAD 0.0078125 - txt719 -TEXDEF txt720 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.390469 0 APEX 0.25 0.484531 0 RAD 0.0078125 - txt720 -TEXDEF txt721 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.375 0.0154687 APEX 0.25 0.375 0.109531 RAD 0.0078125 - txt721 -TEXDEF txt722 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.375 0.125 RAD 0.03125 - txt722 -TEXDEF txt723 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.375 0.125 APEX 0.359531 0.375 0.125 RAD 0.0078125 - txt723 -TEXDEF txt724 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.390469 0.125 APEX 0.25 0.484531 0.125 RAD 0.0078125 - txt724 -TEXDEF txt725 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.375 0.140469 APEX 0.25 0.375 0.234531 RAD 0.0078125 - txt725 -TEXDEF txt726 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.375 0.25 RAD 0.03125 - txt726 -TEXDEF txt727 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.375 0.25 APEX 0.359531 0.375 0.25 RAD 0.0078125 - txt727 -TEXDEF txt728 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.390469 0.25 APEX 0.25 0.484531 0.25 RAD 0.0078125 - txt728 -TEXDEF txt729 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.375 0.265469 APEX 0.25 0.375 0.359531 RAD 0.0078125 - txt729 -TEXDEF txt730 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.375 0.375 RAD 0.03125 - txt730 -TEXDEF txt731 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.375 0.375 APEX 0.359531 0.375 0.375 RAD 0.0078125 - txt731 -TEXDEF txt732 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.390469 0.375 APEX 0.25 0.484531 0.375 RAD 0.0078125 - txt732 -TEXDEF txt733 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.375 0.390469 APEX 0.25 0.375 0.484531 RAD 0.0078125 - txt733 -TEXDEF txt734 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.375 0.5 RAD 0.03125 - txt734 -TEXDEF txt735 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.375 0.5 APEX 0.359531 0.375 0.5 RAD 0.0078125 - txt735 -TEXDEF txt736 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.390469 0.5 APEX 0.25 0.484531 0.5 RAD 0.0078125 - txt736 -TEXDEF txt737 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.375 0.515469 APEX 0.25 0.375 0.609531 RAD 0.0078125 - txt737 -TEXDEF txt738 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.375 0.625 RAD 0.03125 - txt738 -TEXDEF txt739 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.375 0.625 APEX 0.359531 0.375 0.625 RAD 0.0078125 - txt739 -TEXDEF txt740 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.390469 0.625 APEX 0.25 0.484531 0.625 RAD 0.0078125 - txt740 -TEXDEF txt741 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.375 0.640469 APEX 0.25 0.375 0.734531 RAD 0.0078125 - txt741 -TEXDEF txt742 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.375 0.75 RAD 0.03125 - txt742 -TEXDEF txt743 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.375 0.75 APEX 0.359531 0.375 0.75 RAD 0.0078125 - txt743 -TEXDEF txt744 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.390469 0.75 APEX 0.25 0.484531 0.75 RAD 0.0078125 - txt744 -TEXDEF txt745 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.375 0.765469 APEX 0.25 0.375 0.859531 RAD 0.0078125 - txt745 -TEXDEF txt746 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.375 0.875 RAD 0.03125 - txt746 -TEXDEF txt747 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.375 0.875 APEX 0.359531 0.375 0.875 RAD 0.0078125 - txt747 -TEXDEF txt748 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.390469 0.875 APEX 0.25 0.484531 0.875 RAD 0.0078125 - txt748 -TEXDEF txt749 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.375 0.890469 APEX 0.25 0.375 0.984531 RAD 0.0078125 - txt749 -TEXDEF txt750 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.375 1 RAD 0.03125 - txt750 -TEXDEF txt751 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.375 1 APEX 0.359531 0.375 1 RAD 0.0078125 - txt751 -TEXDEF txt752 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.390469 1 APEX 0.25 0.484531 1 RAD 0.0078125 - txt752 -TEXDEF txt753 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.5 0 RAD 0.03125 - txt753 -TEXDEF txt754 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.5 0 APEX 0.359531 0.5 0 RAD 0.0078125 - txt754 -TEXDEF txt755 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.515469 0 APEX 0.25 0.609531 0 RAD 0.0078125 - txt755 -TEXDEF txt756 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.5 0.0154687 APEX 0.25 0.5 0.109531 RAD 0.0078125 - txt756 -TEXDEF txt757 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.5 0.125 RAD 0.03125 - txt757 -TEXDEF txt758 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.5 0.125 APEX 0.359531 0.5 0.125 RAD 0.0078125 - txt758 -TEXDEF txt759 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.515469 0.125 APEX 0.25 0.609531 0.125 RAD 0.0078125 - txt759 -TEXDEF txt760 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.5 0.140469 APEX 0.25 0.5 0.234531 RAD 0.0078125 - txt760 -TEXDEF txt761 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.5 0.25 RAD 0.03125 - txt761 -TEXDEF txt762 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.5 0.25 APEX 0.359531 0.5 0.25 RAD 0.0078125 - txt762 -TEXDEF txt763 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.515469 0.25 APEX 0.25 0.609531 0.25 RAD 0.0078125 - txt763 -TEXDEF txt764 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.5 0.265469 APEX 0.25 0.5 0.359531 RAD 0.0078125 - txt764 -TEXDEF txt765 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.5 0.375 RAD 0.03125 - txt765 -TEXDEF txt766 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.5 0.375 APEX 0.359531 0.5 0.375 RAD 0.0078125 - txt766 -TEXDEF txt767 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.515469 0.375 APEX 0.25 0.609531 0.375 RAD 0.0078125 - txt767 -TEXDEF txt768 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.5 0.390469 APEX 0.25 0.5 0.484531 RAD 0.0078125 - txt768 -TEXDEF txt769 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.5 0.5 RAD 0.03125 - txt769 -TEXDEF txt770 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.5 0.5 APEX 0.359531 0.5 0.5 RAD 0.0078125 - txt770 -TEXDEF txt771 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.515469 0.5 APEX 0.25 0.609531 0.5 RAD 0.0078125 - txt771 -TEXDEF txt772 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.5 0.515469 APEX 0.25 0.5 0.609531 RAD 0.0078125 - txt772 -TEXDEF txt773 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.5 0.625 RAD 0.03125 - txt773 -TEXDEF txt774 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.5 0.625 APEX 0.359531 0.5 0.625 RAD 0.0078125 - txt774 -TEXDEF txt775 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.515469 0.625 APEX 0.25 0.609531 0.625 RAD 0.0078125 - txt775 -TEXDEF txt776 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.5 0.640469 APEX 0.25 0.5 0.734531 RAD 0.0078125 - txt776 -TEXDEF txt777 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.5 0.75 RAD 0.03125 - txt777 -TEXDEF txt778 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.5 0.75 APEX 0.359531 0.5 0.75 RAD 0.0078125 - txt778 -TEXDEF txt779 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.515469 0.75 APEX 0.25 0.609531 0.75 RAD 0.0078125 - txt779 -TEXDEF txt780 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.5 0.765469 APEX 0.25 0.5 0.859531 RAD 0.0078125 - txt780 -TEXDEF txt781 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.5 0.875 RAD 0.03125 - txt781 -TEXDEF txt782 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.5 0.875 APEX 0.359531 0.5 0.875 RAD 0.0078125 - txt782 -TEXDEF txt783 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.515469 0.875 APEX 0.25 0.609531 0.875 RAD 0.0078125 - txt783 -TEXDEF txt784 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.5 0.890469 APEX 0.25 0.5 0.984531 RAD 0.0078125 - txt784 -TEXDEF txt785 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.5 1 RAD 0.03125 - txt785 -TEXDEF txt786 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.5 1 APEX 0.359531 0.5 1 RAD 0.0078125 - txt786 -TEXDEF txt787 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.515469 1 APEX 0.25 0.609531 1 RAD 0.0078125 - txt787 -TEXDEF txt788 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.625 0 RAD 0.03125 - txt788 -TEXDEF txt789 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.625 0 APEX 0.359531 0.625 0 RAD 0.0078125 - txt789 -TEXDEF txt790 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.640469 0 APEX 0.25 0.734531 0 RAD 0.0078125 - txt790 -TEXDEF txt791 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.625 0.0154687 APEX 0.25 0.625 0.109531 RAD 0.0078125 - txt791 -TEXDEF txt792 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.625 0.125 RAD 0.03125 - txt792 -TEXDEF txt793 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.625 0.125 APEX 0.359531 0.625 0.125 RAD 0.0078125 - txt793 -TEXDEF txt794 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.640469 0.125 APEX 0.25 0.734531 0.125 RAD 0.0078125 - txt794 -TEXDEF txt795 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.625 0.140469 APEX 0.25 0.625 0.234531 RAD 0.0078125 - txt795 -TEXDEF txt796 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.625 0.25 RAD 0.03125 - txt796 -TEXDEF txt797 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.625 0.25 APEX 0.359531 0.625 0.25 RAD 0.0078125 - txt797 -TEXDEF txt798 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.640469 0.25 APEX 0.25 0.734531 0.25 RAD 0.0078125 - txt798 -TEXDEF txt799 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.625 0.265469 APEX 0.25 0.625 0.359531 RAD 0.0078125 - txt799 -TEXDEF txt800 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.625 0.375 RAD 0.03125 - txt800 -TEXDEF txt801 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.625 0.375 APEX 0.359531 0.625 0.375 RAD 0.0078125 - txt801 -TEXDEF txt802 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.640469 0.375 APEX 0.25 0.734531 0.375 RAD 0.0078125 - txt802 -TEXDEF txt803 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.625 0.390469 APEX 0.25 0.625 0.484531 RAD 0.0078125 - txt803 -TEXDEF txt804 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.625 0.5 RAD 0.03125 - txt804 -TEXDEF txt805 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.625 0.5 APEX 0.359531 0.625 0.5 RAD 0.0078125 - txt805 -TEXDEF txt806 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.640469 0.5 APEX 0.25 0.734531 0.5 RAD 0.0078125 - txt806 -TEXDEF txt807 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.625 0.515469 APEX 0.25 0.625 0.609531 RAD 0.0078125 - txt807 -TEXDEF txt808 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.625 0.625 RAD 0.03125 - txt808 -TEXDEF txt809 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.625 0.625 APEX 0.359531 0.625 0.625 RAD 0.0078125 - txt809 -TEXDEF txt810 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.640469 0.625 APEX 0.25 0.734531 0.625 RAD 0.0078125 - txt810 -TEXDEF txt811 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.625 0.640469 APEX 0.25 0.625 0.734531 RAD 0.0078125 - txt811 -TEXDEF txt812 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.625 0.75 RAD 0.03125 - txt812 -TEXDEF txt813 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.625 0.75 APEX 0.359531 0.625 0.75 RAD 0.0078125 - txt813 -TEXDEF txt814 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.640469 0.75 APEX 0.25 0.734531 0.75 RAD 0.0078125 - txt814 -TEXDEF txt815 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.625 0.765469 APEX 0.25 0.625 0.859531 RAD 0.0078125 - txt815 -TEXDEF txt816 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.625 0.875 RAD 0.03125 - txt816 -TEXDEF txt817 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.625 0.875 APEX 0.359531 0.625 0.875 RAD 0.0078125 - txt817 -TEXDEF txt818 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.640469 0.875 APEX 0.25 0.734531 0.875 RAD 0.0078125 - txt818 -TEXDEF txt819 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.625 0.890469 APEX 0.25 0.625 0.984531 RAD 0.0078125 - txt819 -TEXDEF txt820 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.625 1 RAD 0.03125 - txt820 -TEXDEF txt821 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.625 1 APEX 0.359531 0.625 1 RAD 0.0078125 - txt821 -TEXDEF txt822 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.640469 1 APEX 0.25 0.734531 1 RAD 0.0078125 - txt822 -TEXDEF txt823 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.75 0 RAD 0.03125 - txt823 -TEXDEF txt824 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.75 0 APEX 0.359531 0.75 0 RAD 0.0078125 - txt824 -TEXDEF txt825 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.765469 0 APEX 0.25 0.859531 0 RAD 0.0078125 - txt825 -TEXDEF txt826 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.75 0.0154687 APEX 0.25 0.75 0.109531 RAD 0.0078125 - txt826 -TEXDEF txt827 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.75 0.125 RAD 0.03125 - txt827 -TEXDEF txt828 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.75 0.125 APEX 0.359531 0.75 0.125 RAD 0.0078125 - txt828 -TEXDEF txt829 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.765469 0.125 APEX 0.25 0.859531 0.125 RAD 0.0078125 - txt829 -TEXDEF txt830 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.75 0.140469 APEX 0.25 0.75 0.234531 RAD 0.0078125 - txt830 -TEXDEF txt831 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.75 0.25 RAD 0.03125 - txt831 -TEXDEF txt832 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.75 0.25 APEX 0.359531 0.75 0.25 RAD 0.0078125 - txt832 -TEXDEF txt833 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.765469 0.25 APEX 0.25 0.859531 0.25 RAD 0.0078125 - txt833 -TEXDEF txt834 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.75 0.265469 APEX 0.25 0.75 0.359531 RAD 0.0078125 - txt834 -TEXDEF txt835 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.75 0.375 RAD 0.03125 - txt835 -TEXDEF txt836 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.75 0.375 APEX 0.359531 0.75 0.375 RAD 0.0078125 - txt836 -TEXDEF txt837 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.765469 0.375 APEX 0.25 0.859531 0.375 RAD 0.0078125 - txt837 -TEXDEF txt838 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.75 0.390469 APEX 0.25 0.75 0.484531 RAD 0.0078125 - txt838 -TEXDEF txt839 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.75 0.5 RAD 0.03125 - txt839 -TEXDEF txt840 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.75 0.5 APEX 0.359531 0.75 0.5 RAD 0.0078125 - txt840 -TEXDEF txt841 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.765469 0.5 APEX 0.25 0.859531 0.5 RAD 0.0078125 - txt841 -TEXDEF txt842 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.75 0.515469 APEX 0.25 0.75 0.609531 RAD 0.0078125 - txt842 -TEXDEF txt843 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.75 0.625 RAD 0.03125 - txt843 -TEXDEF txt844 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.75 0.625 APEX 0.359531 0.75 0.625 RAD 0.0078125 - txt844 -TEXDEF txt845 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.765469 0.625 APEX 0.25 0.859531 0.625 RAD 0.0078125 - txt845 -TEXDEF txt846 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.75 0.640469 APEX 0.25 0.75 0.734531 RAD 0.0078125 - txt846 -TEXDEF txt847 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.75 0.75 RAD 0.03125 - txt847 -TEXDEF txt848 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.75 0.75 APEX 0.359531 0.75 0.75 RAD 0.0078125 - txt848 -TEXDEF txt849 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.765469 0.75 APEX 0.25 0.859531 0.75 RAD 0.0078125 - txt849 -TEXDEF txt850 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.75 0.765469 APEX 0.25 0.75 0.859531 RAD 0.0078125 - txt850 -TEXDEF txt851 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.75 0.875 RAD 0.03125 - txt851 -TEXDEF txt852 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.75 0.875 APEX 0.359531 0.75 0.875 RAD 0.0078125 - txt852 -TEXDEF txt853 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.765469 0.875 APEX 0.25 0.859531 0.875 RAD 0.0078125 - txt853 -TEXDEF txt854 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.75 0.890469 APEX 0.25 0.75 0.984531 RAD 0.0078125 - txt854 -TEXDEF txt855 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.75 1 RAD 0.03125 - txt855 -TEXDEF txt856 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.75 1 APEX 0.359531 0.75 1 RAD 0.0078125 - txt856 -TEXDEF txt857 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.765469 1 APEX 0.25 0.859531 1 RAD 0.0078125 - txt857 -TEXDEF txt858 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.875 0 RAD 0.03125 - txt858 -TEXDEF txt859 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.875 0 APEX 0.359531 0.875 0 RAD 0.0078125 - txt859 -TEXDEF txt860 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.890469 0 APEX 0.25 0.984531 0 RAD 0.0078125 - txt860 -TEXDEF txt861 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.875 0.0154687 APEX 0.25 0.875 0.109531 RAD 0.0078125 - txt861 -TEXDEF txt862 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.875 0.125 RAD 0.03125 - txt862 -TEXDEF txt863 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.875 0.125 APEX 0.359531 0.875 0.125 RAD 0.0078125 - txt863 -TEXDEF txt864 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.890469 0.125 APEX 0.25 0.984531 0.125 RAD 0.0078125 - txt864 -TEXDEF txt865 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.875 0.140469 APEX 0.25 0.875 0.234531 RAD 0.0078125 - txt865 -TEXDEF txt866 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.875 0.25 RAD 0.03125 - txt866 -TEXDEF txt867 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.875 0.25 APEX 0.359531 0.875 0.25 RAD 0.0078125 - txt867 -TEXDEF txt868 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.890469 0.25 APEX 0.25 0.984531 0.25 RAD 0.0078125 - txt868 -TEXDEF txt869 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.875 0.265469 APEX 0.25 0.875 0.359531 RAD 0.0078125 - txt869 -TEXDEF txt870 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.875 0.375 RAD 0.03125 - txt870 -TEXDEF txt871 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.875 0.375 APEX 0.359531 0.875 0.375 RAD 0.0078125 - txt871 -TEXDEF txt872 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.890469 0.375 APEX 0.25 0.984531 0.375 RAD 0.0078125 - txt872 -TEXDEF txt873 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.875 0.390469 APEX 0.25 0.875 0.484531 RAD 0.0078125 - txt873 -TEXDEF txt874 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.875 0.5 RAD 0.03125 - txt874 -TEXDEF txt875 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.875 0.5 APEX 0.359531 0.875 0.5 RAD 0.0078125 - txt875 -TEXDEF txt876 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.890469 0.5 APEX 0.25 0.984531 0.5 RAD 0.0078125 - txt876 -TEXDEF txt877 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.875 0.515469 APEX 0.25 0.875 0.609531 RAD 0.0078125 - txt877 -TEXDEF txt878 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.875 0.625 RAD 0.03125 - txt878 -TEXDEF txt879 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.875 0.625 APEX 0.359531 0.875 0.625 RAD 0.0078125 - txt879 -TEXDEF txt880 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.890469 0.625 APEX 0.25 0.984531 0.625 RAD 0.0078125 - txt880 -TEXDEF txt881 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.875 0.640469 APEX 0.25 0.875 0.734531 RAD 0.0078125 - txt881 -TEXDEF txt882 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.875 0.75 RAD 0.03125 - txt882 -TEXDEF txt883 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.875 0.75 APEX 0.359531 0.875 0.75 RAD 0.0078125 - txt883 -TEXDEF txt884 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.890469 0.75 APEX 0.25 0.984531 0.75 RAD 0.0078125 - txt884 -TEXDEF txt885 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.875 0.765469 APEX 0.25 0.875 0.859531 RAD 0.0078125 - txt885 -TEXDEF txt886 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.875 0.875 RAD 0.03125 - txt886 -TEXDEF txt887 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.875 0.875 APEX 0.359531 0.875 0.875 RAD 0.0078125 - txt887 -TEXDEF txt888 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.890469 0.875 APEX 0.25 0.984531 0.875 RAD 0.0078125 - txt888 -TEXDEF txt889 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.875 0.890469 APEX 0.25 0.875 0.984531 RAD 0.0078125 - txt889 -TEXDEF txt890 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 0.875 1 RAD 0.03125 - txt890 -TEXDEF txt891 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 0.875 1 APEX 0.359531 0.875 1 RAD 0.0078125 - txt891 -TEXDEF txt892 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 0.890469 1 APEX 0.25 0.984531 1 RAD 0.0078125 - txt892 -TEXDEF txt893 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 1 0 RAD 0.03125 - txt893 -TEXDEF txt894 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 1 0 APEX 0.359531 1 0 RAD 0.0078125 - txt894 -TEXDEF txt895 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 1 0.0154687 APEX 0.25 1 0.109531 RAD 0.0078125 - txt895 -TEXDEF txt896 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 1 0.125 RAD 0.03125 - txt896 -TEXDEF txt897 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 1 0.125 APEX 0.359531 1 0.125 RAD 0.0078125 - txt897 -TEXDEF txt898 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 1 0.140469 APEX 0.25 1 0.234531 RAD 0.0078125 - txt898 -TEXDEF txt899 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 1 0.25 RAD 0.03125 - txt899 -TEXDEF txt900 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 1 0.25 APEX 0.359531 1 0.25 RAD 0.0078125 - txt900 -TEXDEF txt901 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 1 0.265469 APEX 0.25 1 0.359531 RAD 0.0078125 - txt901 -TEXDEF txt902 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 1 0.375 RAD 0.03125 - txt902 -TEXDEF txt903 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 1 0.375 APEX 0.359531 1 0.375 RAD 0.0078125 - txt903 -TEXDEF txt904 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 1 0.390469 APEX 0.25 1 0.484531 RAD 0.0078125 - txt904 -TEXDEF txt905 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 1 0.5 RAD 0.03125 - txt905 -TEXDEF txt906 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 1 0.5 APEX 0.359531 1 0.5 RAD 0.0078125 - txt906 -TEXDEF txt907 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 1 0.515469 APEX 0.25 1 0.609531 RAD 0.0078125 - txt907 -TEXDEF txt908 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 1 0.625 RAD 0.03125 - txt908 -TEXDEF txt909 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 1 0.625 APEX 0.359531 1 0.625 RAD 0.0078125 - txt909 -TEXDEF txt910 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 1 0.640469 APEX 0.25 1 0.734531 RAD 0.0078125 - txt910 -TEXDEF txt911 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 1 0.75 RAD 0.03125 - txt911 -TEXDEF txt912 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 1 0.75 APEX 0.359531 1 0.75 RAD 0.0078125 - txt912 -TEXDEF txt913 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 1 0.765469 APEX 0.25 1 0.859531 RAD 0.0078125 - txt913 -TEXDEF txt914 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 1 0.875 RAD 0.03125 - txt914 -TEXDEF txt915 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 1 0.875 APEX 0.359531 1 0.875 RAD 0.0078125 - txt915 -TEXDEF txt916 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.25 1 0.890469 APEX 0.25 1 0.984531 RAD 0.0078125 - txt916 -TEXDEF txt917 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.25 1 1 RAD 0.03125 - txt917 -TEXDEF txt918 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.265469 1 1 APEX 0.359531 1 1 RAD 0.0078125 - txt918 -TEXDEF txt919 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0 0 RAD 0.03125 - txt919 -TEXDEF txt920 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0 0 APEX 0.484531 0 0 RAD 0.0078125 - txt920 -TEXDEF txt921 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.0154687 0 APEX 0.375 0.109531 0 RAD 0.0078125 - txt921 -TEXDEF txt922 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0 0.0154687 APEX 0.375 0 0.109531 RAD 0.0078125 - txt922 -TEXDEF txt923 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0 0.125 RAD 0.03125 - txt923 -TEXDEF txt924 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0 0.125 APEX 0.484531 0 0.125 RAD 0.0078125 - txt924 -TEXDEF txt925 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.0154687 0.125 APEX 0.375 0.109531 0.125 RAD 0.0078125 - txt925 -TEXDEF txt926 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0 0.140469 APEX 0.375 0 0.234531 RAD 0.0078125 - txt926 -TEXDEF txt927 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0 0.25 RAD 0.03125 - txt927 -TEXDEF txt928 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0 0.25 APEX 0.484531 0 0.25 RAD 0.0078125 - txt928 -TEXDEF txt929 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.0154687 0.25 APEX 0.375 0.109531 0.25 RAD 0.0078125 - txt929 -TEXDEF txt930 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0 0.265469 APEX 0.375 0 0.359531 RAD 0.0078125 - txt930 -TEXDEF txt931 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0 0.375 RAD 0.03125 - txt931 -TEXDEF txt932 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0 0.375 APEX 0.484531 0 0.375 RAD 0.0078125 - txt932 -TEXDEF txt933 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.0154687 0.375 APEX 0.375 0.109531 0.375 RAD 0.0078125 - txt933 -TEXDEF txt934 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0 0.390469 APEX 0.375 0 0.484531 RAD 0.0078125 - txt934 -TEXDEF txt935 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0 0.5 RAD 0.03125 - txt935 -TEXDEF txt936 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0 0.5 APEX 0.484531 0 0.5 RAD 0.0078125 - txt936 -TEXDEF txt937 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.0154687 0.5 APEX 0.375 0.109531 0.5 RAD 0.0078125 - txt937 -TEXDEF txt938 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0 0.515469 APEX 0.375 0 0.609531 RAD 0.0078125 - txt938 -TEXDEF txt939 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0 0.625 RAD 0.03125 - txt939 -TEXDEF txt940 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0 0.625 APEX 0.484531 0 0.625 RAD 0.0078125 - txt940 -TEXDEF txt941 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.0154687 0.625 APEX 0.375 0.109531 0.625 RAD 0.0078125 - txt941 -TEXDEF txt942 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0 0.640469 APEX 0.375 0 0.734531 RAD 0.0078125 - txt942 -TEXDEF txt943 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0 0.75 RAD 0.03125 - txt943 -TEXDEF txt944 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0 0.75 APEX 0.484531 0 0.75 RAD 0.0078125 - txt944 -TEXDEF txt945 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.0154687 0.75 APEX 0.375 0.109531 0.75 RAD 0.0078125 - txt945 -TEXDEF txt946 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0 0.765469 APEX 0.375 0 0.859531 RAD 0.0078125 - txt946 -TEXDEF txt947 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0 0.875 RAD 0.03125 - txt947 -TEXDEF txt948 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0 0.875 APEX 0.484531 0 0.875 RAD 0.0078125 - txt948 -TEXDEF txt949 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.0154687 0.875 APEX 0.375 0.109531 0.875 RAD 0.0078125 - txt949 -TEXDEF txt950 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0 0.890469 APEX 0.375 0 0.984531 RAD 0.0078125 - txt950 -TEXDEF txt951 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0 1 RAD 0.03125 - txt951 -TEXDEF txt952 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0 1 APEX 0.484531 0 1 RAD 0.0078125 - txt952 -TEXDEF txt953 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.0154687 1 APEX 0.375 0.109531 1 RAD 0.0078125 - txt953 -TEXDEF txt954 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.125 0 RAD 0.03125 - txt954 -TEXDEF txt955 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.125 0 APEX 0.484531 0.125 0 RAD 0.0078125 - txt955 -TEXDEF txt956 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.140469 0 APEX 0.375 0.234531 0 RAD 0.0078125 - txt956 -TEXDEF txt957 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.125 0.0154687 APEX 0.375 0.125 0.109531 RAD 0.0078125 - txt957 -TEXDEF txt958 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.125 0.125 RAD 0.03125 - txt958 -TEXDEF txt959 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.125 0.125 APEX 0.484531 0.125 0.125 RAD 0.0078125 - txt959 -TEXDEF txt960 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.140469 0.125 APEX 0.375 0.234531 0.125 RAD 0.0078125 - txt960 -TEXDEF txt961 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.125 0.140469 APEX 0.375 0.125 0.234531 RAD 0.0078125 - txt961 -TEXDEF txt962 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.125 0.25 RAD 0.03125 - txt962 -TEXDEF txt963 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.125 0.25 APEX 0.484531 0.125 0.25 RAD 0.0078125 - txt963 -TEXDEF txt964 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.140469 0.25 APEX 0.375 0.234531 0.25 RAD 0.0078125 - txt964 -TEXDEF txt965 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.125 0.265469 APEX 0.375 0.125 0.359531 RAD 0.0078125 - txt965 -TEXDEF txt966 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.125 0.375 RAD 0.03125 - txt966 -TEXDEF txt967 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.125 0.375 APEX 0.484531 0.125 0.375 RAD 0.0078125 - txt967 -TEXDEF txt968 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.140469 0.375 APEX 0.375 0.234531 0.375 RAD 0.0078125 - txt968 -TEXDEF txt969 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.125 0.390469 APEX 0.375 0.125 0.484531 RAD 0.0078125 - txt969 -TEXDEF txt970 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.125 0.5 RAD 0.03125 - txt970 -TEXDEF txt971 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.125 0.5 APEX 0.484531 0.125 0.5 RAD 0.0078125 - txt971 -TEXDEF txt972 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.140469 0.5 APEX 0.375 0.234531 0.5 RAD 0.0078125 - txt972 -TEXDEF txt973 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.125 0.515469 APEX 0.375 0.125 0.609531 RAD 0.0078125 - txt973 -TEXDEF txt974 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.125 0.625 RAD 0.03125 - txt974 -TEXDEF txt975 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.125 0.625 APEX 0.484531 0.125 0.625 RAD 0.0078125 - txt975 -TEXDEF txt976 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.140469 0.625 APEX 0.375 0.234531 0.625 RAD 0.0078125 - txt976 -TEXDEF txt977 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.125 0.640469 APEX 0.375 0.125 0.734531 RAD 0.0078125 - txt977 -TEXDEF txt978 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.125 0.75 RAD 0.03125 - txt978 -TEXDEF txt979 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.125 0.75 APEX 0.484531 0.125 0.75 RAD 0.0078125 - txt979 -TEXDEF txt980 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.140469 0.75 APEX 0.375 0.234531 0.75 RAD 0.0078125 - txt980 -TEXDEF txt981 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.125 0.765469 APEX 0.375 0.125 0.859531 RAD 0.0078125 - txt981 -TEXDEF txt982 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.125 0.875 RAD 0.03125 - txt982 -TEXDEF txt983 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.125 0.875 APEX 0.484531 0.125 0.875 RAD 0.0078125 - txt983 -TEXDEF txt984 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.140469 0.875 APEX 0.375 0.234531 0.875 RAD 0.0078125 - txt984 -TEXDEF txt985 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.125 0.890469 APEX 0.375 0.125 0.984531 RAD 0.0078125 - txt985 -TEXDEF txt986 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.125 1 RAD 0.03125 - txt986 -TEXDEF txt987 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.125 1 APEX 0.484531 0.125 1 RAD 0.0078125 - txt987 -TEXDEF txt988 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.140469 1 APEX 0.375 0.234531 1 RAD 0.0078125 - txt988 -TEXDEF txt989 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.25 0 RAD 0.03125 - txt989 -TEXDEF txt990 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.25 0 APEX 0.484531 0.25 0 RAD 0.0078125 - txt990 -TEXDEF txt991 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.265469 0 APEX 0.375 0.359531 0 RAD 0.0078125 - txt991 -TEXDEF txt992 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.25 0.0154687 APEX 0.375 0.25 0.109531 RAD 0.0078125 - txt992 -TEXDEF txt993 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.25 0.125 RAD 0.03125 - txt993 -TEXDEF txt994 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.25 0.125 APEX 0.484531 0.25 0.125 RAD 0.0078125 - txt994 -TEXDEF txt995 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.265469 0.125 APEX 0.375 0.359531 0.125 RAD 0.0078125 - txt995 -TEXDEF txt996 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.25 0.140469 APEX 0.375 0.25 0.234531 RAD 0.0078125 - txt996 -TEXDEF txt997 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.25 0.25 RAD 0.03125 - txt997 -TEXDEF txt998 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.25 0.25 APEX 0.484531 0.25 0.25 RAD 0.0078125 - txt998 -TEXDEF txt999 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.265469 0.25 APEX 0.375 0.359531 0.25 RAD 0.0078125 - txt999 -TEXDEF txt100 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.25 0.265469 APEX 0.375 0.25 0.359531 RAD 0.0078125 - txt100 -TEXDEF txt100 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.25 0.375 RAD 0.03125 - txt100 -TEXDEF txt100 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.25 0.375 APEX 0.484531 0.25 0.375 RAD 0.0078125 - txt100 -TEXDEF txt100 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.265469 0.375 APEX 0.375 0.359531 0.375 RAD 0.0078125 - txt100 -TEXDEF txt100 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.25 0.390469 APEX 0.375 0.25 0.484531 RAD 0.0078125 - txt100 -TEXDEF txt100 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.25 0.5 RAD 0.03125 - txt100 -TEXDEF txt100 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.25 0.5 APEX 0.484531 0.25 0.5 RAD 0.0078125 - txt100 -TEXDEF txt100 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.265469 0.5 APEX 0.375 0.359531 0.5 RAD 0.0078125 - txt100 -TEXDEF txt100 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.25 0.515469 APEX 0.375 0.25 0.609531 RAD 0.0078125 - txt100 -TEXDEF txt100 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.25 0.625 RAD 0.03125 - txt100 -TEXDEF txt101 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.25 0.625 APEX 0.484531 0.25 0.625 RAD 0.0078125 - txt101 -TEXDEF txt101 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.265469 0.625 APEX 0.375 0.359531 0.625 RAD 0.0078125 - txt101 -TEXDEF txt101 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.25 0.640469 APEX 0.375 0.25 0.734531 RAD 0.0078125 - txt101 -TEXDEF txt101 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.25 0.75 RAD 0.03125 - txt101 -TEXDEF txt101 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.25 0.75 APEX 0.484531 0.25 0.75 RAD 0.0078125 - txt101 -TEXDEF txt101 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.265469 0.75 APEX 0.375 0.359531 0.75 RAD 0.0078125 - txt101 -TEXDEF txt101 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.25 0.765469 APEX 0.375 0.25 0.859531 RAD 0.0078125 - txt101 -TEXDEF txt101 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.25 0.875 RAD 0.03125 - txt101 -TEXDEF txt101 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.25 0.875 APEX 0.484531 0.25 0.875 RAD 0.0078125 - txt101 -TEXDEF txt101 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.265469 0.875 APEX 0.375 0.359531 0.875 RAD 0.0078125 - txt101 -TEXDEF txt102 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.25 0.890469 APEX 0.375 0.25 0.984531 RAD 0.0078125 - txt102 -TEXDEF txt102 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.25 1 RAD 0.03125 - txt102 -TEXDEF txt102 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.25 1 APEX 0.484531 0.25 1 RAD 0.0078125 - txt102 -TEXDEF txt102 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.265469 1 APEX 0.375 0.359531 1 RAD 0.0078125 - txt102 -TEXDEF txt102 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.375 0 RAD 0.03125 - txt102 -TEXDEF txt102 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.375 0 APEX 0.484531 0.375 0 RAD 0.0078125 - txt102 -TEXDEF txt102 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.390469 0 APEX 0.375 0.484531 0 RAD 0.0078125 - txt102 -TEXDEF txt102 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.375 0.0154687 APEX 0.375 0.375 0.109531 RAD 0.0078125 - txt102 -TEXDEF txt102 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.375 0.125 RAD 0.03125 - txt102 -TEXDEF txt102 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.375 0.125 APEX 0.484531 0.375 0.125 RAD 0.0078125 - txt102 -TEXDEF txt103 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.390469 0.125 APEX 0.375 0.484531 0.125 RAD 0.0078125 - txt103 -TEXDEF txt103 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.375 0.140469 APEX 0.375 0.375 0.234531 RAD 0.0078125 - txt103 -TEXDEF txt103 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.375 0.25 RAD 0.03125 - txt103 -TEXDEF txt103 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.375 0.25 APEX 0.484531 0.375 0.25 RAD 0.0078125 - txt103 -TEXDEF txt103 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.390469 0.25 APEX 0.375 0.484531 0.25 RAD 0.0078125 - txt103 -TEXDEF txt103 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.375 0.265469 APEX 0.375 0.375 0.359531 RAD 0.0078125 - txt103 -TEXDEF txt103 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.375 0.375 RAD 0.03125 - txt103 -TEXDEF txt103 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.375 0.375 APEX 0.484531 0.375 0.375 RAD 0.0078125 - txt103 -TEXDEF txt103 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.390469 0.375 APEX 0.375 0.484531 0.375 RAD 0.0078125 - txt103 -TEXDEF txt103 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.375 0.390469 APEX 0.375 0.375 0.484531 RAD 0.0078125 - txt103 -TEXDEF txt104 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.375 0.5 RAD 0.03125 - txt104 -TEXDEF txt104 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.375 0.5 APEX 0.484531 0.375 0.5 RAD 0.0078125 - txt104 -TEXDEF txt104 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.390469 0.5 APEX 0.375 0.484531 0.5 RAD 0.0078125 - txt104 -TEXDEF txt104 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.375 0.515469 APEX 0.375 0.375 0.609531 RAD 0.0078125 - txt104 -TEXDEF txt104 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.375 0.625 RAD 0.03125 - txt104 -TEXDEF txt104 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.375 0.625 APEX 0.484531 0.375 0.625 RAD 0.0078125 - txt104 -TEXDEF txt104 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.390469 0.625 APEX 0.375 0.484531 0.625 RAD 0.0078125 - txt104 -TEXDEF txt104 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.375 0.640469 APEX 0.375 0.375 0.734531 RAD 0.0078125 - txt104 -TEXDEF txt104 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.375 0.75 RAD 0.03125 - txt104 -TEXDEF txt104 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.375 0.75 APEX 0.484531 0.375 0.75 RAD 0.0078125 - txt104 -TEXDEF txt105 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.390469 0.75 APEX 0.375 0.484531 0.75 RAD 0.0078125 - txt105 -TEXDEF txt105 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.375 0.765469 APEX 0.375 0.375 0.859531 RAD 0.0078125 - txt105 -TEXDEF txt105 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.375 0.875 RAD 0.03125 - txt105 -TEXDEF txt105 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.375 0.875 APEX 0.484531 0.375 0.875 RAD 0.0078125 - txt105 -TEXDEF txt105 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.390469 0.875 APEX 0.375 0.484531 0.875 RAD 0.0078125 - txt105 -TEXDEF txt105 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.375 0.890469 APEX 0.375 0.375 0.984531 RAD 0.0078125 - txt105 -TEXDEF txt105 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.375 1 RAD 0.03125 - txt105 -TEXDEF txt105 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.375 1 APEX 0.484531 0.375 1 RAD 0.0078125 - txt105 -TEXDEF txt105 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.390469 1 APEX 0.375 0.484531 1 RAD 0.0078125 - txt105 -TEXDEF txt105 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.5 0 RAD 0.03125 - txt105 -TEXDEF txt106 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.5 0 APEX 0.484531 0.5 0 RAD 0.0078125 - txt106 -TEXDEF txt106 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.515469 0 APEX 0.375 0.609531 0 RAD 0.0078125 - txt106 -TEXDEF txt106 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.5 0.0154687 APEX 0.375 0.5 0.109531 RAD 0.0078125 - txt106 -TEXDEF txt106 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.5 0.125 RAD 0.03125 - txt106 -TEXDEF txt106 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.5 0.125 APEX 0.484531 0.5 0.125 RAD 0.0078125 - txt106 -TEXDEF txt106 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.515469 0.125 APEX 0.375 0.609531 0.125 RAD 0.0078125 - txt106 -TEXDEF txt106 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.5 0.140469 APEX 0.375 0.5 0.234531 RAD 0.0078125 - txt106 -TEXDEF txt106 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.5 0.25 RAD 0.03125 - txt106 -TEXDEF txt106 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.5 0.25 APEX 0.484531 0.5 0.25 RAD 0.0078125 - txt106 -TEXDEF txt106 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.515469 0.25 APEX 0.375 0.609531 0.25 RAD 0.0078125 - txt106 -TEXDEF txt107 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.5 0.265469 APEX 0.375 0.5 0.359531 RAD 0.0078125 - txt107 -TEXDEF txt107 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.5 0.375 RAD 0.03125 - txt107 -TEXDEF txt107 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.5 0.375 APEX 0.484531 0.5 0.375 RAD 0.0078125 - txt107 -TEXDEF txt107 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.515469 0.375 APEX 0.375 0.609531 0.375 RAD 0.0078125 - txt107 -TEXDEF txt107 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.5 0.390469 APEX 0.375 0.5 0.484531 RAD 0.0078125 - txt107 -TEXDEF txt107 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.5 0.5 RAD 0.03125 - txt107 -TEXDEF txt107 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.5 0.5 APEX 0.484531 0.5 0.5 RAD 0.0078125 - txt107 -TEXDEF txt107 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.515469 0.5 APEX 0.375 0.609531 0.5 RAD 0.0078125 - txt107 -TEXDEF txt107 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.5 0.515469 APEX 0.375 0.5 0.609531 RAD 0.0078125 - txt107 -TEXDEF txt107 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.5 0.625 RAD 0.03125 - txt107 -TEXDEF txt108 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.5 0.625 APEX 0.484531 0.5 0.625 RAD 0.0078125 - txt108 -TEXDEF txt108 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.515469 0.625 APEX 0.375 0.609531 0.625 RAD 0.0078125 - txt108 -TEXDEF txt108 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.5 0.640469 APEX 0.375 0.5 0.734531 RAD 0.0078125 - txt108 -TEXDEF txt108 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.5 0.75 RAD 0.03125 - txt108 -TEXDEF txt108 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.5 0.75 APEX 0.484531 0.5 0.75 RAD 0.0078125 - txt108 -TEXDEF txt108 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.515469 0.75 APEX 0.375 0.609531 0.75 RAD 0.0078125 - txt108 -TEXDEF txt108 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.5 0.765469 APEX 0.375 0.5 0.859531 RAD 0.0078125 - txt108 -TEXDEF txt108 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.5 0.875 RAD 0.03125 - txt108 -TEXDEF txt108 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.5 0.875 APEX 0.484531 0.5 0.875 RAD 0.0078125 - txt108 -TEXDEF txt108 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.515469 0.875 APEX 0.375 0.609531 0.875 RAD 0.0078125 - txt108 -TEXDEF txt109 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.5 0.890469 APEX 0.375 0.5 0.984531 RAD 0.0078125 - txt109 -TEXDEF txt109 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.5 1 RAD 0.03125 - txt109 -TEXDEF txt109 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.5 1 APEX 0.484531 0.5 1 RAD 0.0078125 - txt109 -TEXDEF txt109 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.515469 1 APEX 0.375 0.609531 1 RAD 0.0078125 - txt109 -TEXDEF txt109 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.625 0 RAD 0.03125 - txt109 -TEXDEF txt109 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.625 0 APEX 0.484531 0.625 0 RAD 0.0078125 - txt109 -TEXDEF txt109 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.640469 0 APEX 0.375 0.734531 0 RAD 0.0078125 - txt109 -TEXDEF txt109 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.625 0.0154687 APEX 0.375 0.625 0.109531 RAD 0.0078125 - txt109 -TEXDEF txt109 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.625 0.125 RAD 0.03125 - txt109 -TEXDEF txt109 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.625 0.125 APEX 0.484531 0.625 0.125 RAD 0.0078125 - txt109 -TEXDEF txt110 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.640469 0.125 APEX 0.375 0.734531 0.125 RAD 0.0078125 - txt110 -TEXDEF txt110 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.625 0.140469 APEX 0.375 0.625 0.234531 RAD 0.0078125 - txt110 -TEXDEF txt110 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.625 0.25 RAD 0.03125 - txt110 -TEXDEF txt110 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.625 0.25 APEX 0.484531 0.625 0.25 RAD 0.0078125 - txt110 -TEXDEF txt110 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.640469 0.25 APEX 0.375 0.734531 0.25 RAD 0.0078125 - txt110 -TEXDEF txt110 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.625 0.265469 APEX 0.375 0.625 0.359531 RAD 0.0078125 - txt110 -TEXDEF txt110 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.625 0.375 RAD 0.03125 - txt110 -TEXDEF txt110 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.625 0.375 APEX 0.484531 0.625 0.375 RAD 0.0078125 - txt110 -TEXDEF txt110 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.640469 0.375 APEX 0.375 0.734531 0.375 RAD 0.0078125 - txt110 -TEXDEF txt110 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.625 0.390469 APEX 0.375 0.625 0.484531 RAD 0.0078125 - txt110 -TEXDEF txt111 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.625 0.5 RAD 0.03125 - txt111 -TEXDEF txt111 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.625 0.5 APEX 0.484531 0.625 0.5 RAD 0.0078125 - txt111 -TEXDEF txt111 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.640469 0.5 APEX 0.375 0.734531 0.5 RAD 0.0078125 - txt111 -TEXDEF txt111 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.625 0.515469 APEX 0.375 0.625 0.609531 RAD 0.0078125 - txt111 -TEXDEF txt111 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.625 0.625 RAD 0.03125 - txt111 -TEXDEF txt111 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.625 0.625 APEX 0.484531 0.625 0.625 RAD 0.0078125 - txt111 -TEXDEF txt111 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.640469 0.625 APEX 0.375 0.734531 0.625 RAD 0.0078125 - txt111 -TEXDEF txt111 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.625 0.640469 APEX 0.375 0.625 0.734531 RAD 0.0078125 - txt111 -TEXDEF txt111 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.625 0.75 RAD 0.03125 - txt111 -TEXDEF txt111 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.625 0.75 APEX 0.484531 0.625 0.75 RAD 0.0078125 - txt111 -TEXDEF txt112 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.640469 0.75 APEX 0.375 0.734531 0.75 RAD 0.0078125 - txt112 -TEXDEF txt112 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.625 0.765469 APEX 0.375 0.625 0.859531 RAD 0.0078125 - txt112 -TEXDEF txt112 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.625 0.875 RAD 0.03125 - txt112 -TEXDEF txt112 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.625 0.875 APEX 0.484531 0.625 0.875 RAD 0.0078125 - txt112 -TEXDEF txt112 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.640469 0.875 APEX 0.375 0.734531 0.875 RAD 0.0078125 - txt112 -TEXDEF txt112 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.625 0.890469 APEX 0.375 0.625 0.984531 RAD 0.0078125 - txt112 -TEXDEF txt112 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.625 1 RAD 0.03125 - txt112 -TEXDEF txt112 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.625 1 APEX 0.484531 0.625 1 RAD 0.0078125 - txt112 -TEXDEF txt112 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.640469 1 APEX 0.375 0.734531 1 RAD 0.0078125 - txt112 -TEXDEF txt112 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.75 0 RAD 0.03125 - txt112 -TEXDEF txt113 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.75 0 APEX 0.484531 0.75 0 RAD 0.0078125 - txt113 -TEXDEF txt113 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.765469 0 APEX 0.375 0.859531 0 RAD 0.0078125 - txt113 -TEXDEF txt113 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.75 0.0154687 APEX 0.375 0.75 0.109531 RAD 0.0078125 - txt113 -TEXDEF txt113 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.75 0.125 RAD 0.03125 - txt113 -TEXDEF txt113 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.75 0.125 APEX 0.484531 0.75 0.125 RAD 0.0078125 - txt113 -TEXDEF txt113 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.765469 0.125 APEX 0.375 0.859531 0.125 RAD 0.0078125 - txt113 -TEXDEF txt113 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.75 0.140469 APEX 0.375 0.75 0.234531 RAD 0.0078125 - txt113 -TEXDEF txt113 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.75 0.25 RAD 0.03125 - txt113 -TEXDEF txt113 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.75 0.25 APEX 0.484531 0.75 0.25 RAD 0.0078125 - txt113 -TEXDEF txt113 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.765469 0.25 APEX 0.375 0.859531 0.25 RAD 0.0078125 - txt113 -TEXDEF txt114 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.75 0.265469 APEX 0.375 0.75 0.359531 RAD 0.0078125 - txt114 -TEXDEF txt114 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.75 0.375 RAD 0.03125 - txt114 -TEXDEF txt114 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.75 0.375 APEX 0.484531 0.75 0.375 RAD 0.0078125 - txt114 -TEXDEF txt114 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.765469 0.375 APEX 0.375 0.859531 0.375 RAD 0.0078125 - txt114 -TEXDEF txt114 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.75 0.390469 APEX 0.375 0.75 0.484531 RAD 0.0078125 - txt114 -TEXDEF txt114 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.75 0.5 RAD 0.03125 - txt114 -TEXDEF txt114 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.75 0.5 APEX 0.484531 0.75 0.5 RAD 0.0078125 - txt114 -TEXDEF txt114 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.765469 0.5 APEX 0.375 0.859531 0.5 RAD 0.0078125 - txt114 -TEXDEF txt114 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.75 0.515469 APEX 0.375 0.75 0.609531 RAD 0.0078125 - txt114 -TEXDEF txt114 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.75 0.625 RAD 0.03125 - txt114 -TEXDEF txt115 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.75 0.625 APEX 0.484531 0.75 0.625 RAD 0.0078125 - txt115 -TEXDEF txt115 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.765469 0.625 APEX 0.375 0.859531 0.625 RAD 0.0078125 - txt115 -TEXDEF txt115 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.75 0.640469 APEX 0.375 0.75 0.734531 RAD 0.0078125 - txt115 -TEXDEF txt115 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.75 0.75 RAD 0.03125 - txt115 -TEXDEF txt115 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.75 0.75 APEX 0.484531 0.75 0.75 RAD 0.0078125 - txt115 -TEXDEF txt115 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.765469 0.75 APEX 0.375 0.859531 0.75 RAD 0.0078125 - txt115 -TEXDEF txt115 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.75 0.765469 APEX 0.375 0.75 0.859531 RAD 0.0078125 - txt115 -TEXDEF txt115 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.75 0.875 RAD 0.03125 - txt115 -TEXDEF txt115 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.75 0.875 APEX 0.484531 0.75 0.875 RAD 0.0078125 - txt115 -TEXDEF txt115 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.765469 0.875 APEX 0.375 0.859531 0.875 RAD 0.0078125 - txt115 -TEXDEF txt116 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.75 0.890469 APEX 0.375 0.75 0.984531 RAD 0.0078125 - txt116 -TEXDEF txt116 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.75 1 RAD 0.03125 - txt116 -TEXDEF txt116 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.75 1 APEX 0.484531 0.75 1 RAD 0.0078125 - txt116 -TEXDEF txt116 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.765469 1 APEX 0.375 0.859531 1 RAD 0.0078125 - txt116 -TEXDEF txt116 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.875 0 RAD 0.03125 - txt116 -TEXDEF txt116 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.875 0 APEX 0.484531 0.875 0 RAD 0.0078125 - txt116 -TEXDEF txt116 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.890469 0 APEX 0.375 0.984531 0 RAD 0.0078125 - txt116 -TEXDEF txt116 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.875 0.0154687 APEX 0.375 0.875 0.109531 RAD 0.0078125 - txt116 -TEXDEF txt116 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.875 0.125 RAD 0.03125 - txt116 -TEXDEF txt116 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.875 0.125 APEX 0.484531 0.875 0.125 RAD 0.0078125 - txt116 -TEXDEF txt117 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.890469 0.125 APEX 0.375 0.984531 0.125 RAD 0.0078125 - txt117 -TEXDEF txt117 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.875 0.140469 APEX 0.375 0.875 0.234531 RAD 0.0078125 - txt117 -TEXDEF txt117 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.875 0.25 RAD 0.03125 - txt117 -TEXDEF txt117 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.875 0.25 APEX 0.484531 0.875 0.25 RAD 0.0078125 - txt117 -TEXDEF txt117 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.890469 0.25 APEX 0.375 0.984531 0.25 RAD 0.0078125 - txt117 -TEXDEF txt117 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.875 0.265469 APEX 0.375 0.875 0.359531 RAD 0.0078125 - txt117 -TEXDEF txt117 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.875 0.375 RAD 0.03125 - txt117 -TEXDEF txt117 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.875 0.375 APEX 0.484531 0.875 0.375 RAD 0.0078125 - txt117 -TEXDEF txt117 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.890469 0.375 APEX 0.375 0.984531 0.375 RAD 0.0078125 - txt117 -TEXDEF txt117 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.875 0.390469 APEX 0.375 0.875 0.484531 RAD 0.0078125 - txt117 -TEXDEF txt118 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.875 0.5 RAD 0.03125 - txt118 -TEXDEF txt118 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.875 0.5 APEX 0.484531 0.875 0.5 RAD 0.0078125 - txt118 -TEXDEF txt118 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.890469 0.5 APEX 0.375 0.984531 0.5 RAD 0.0078125 - txt118 -TEXDEF txt118 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.875 0.515469 APEX 0.375 0.875 0.609531 RAD 0.0078125 - txt118 -TEXDEF txt118 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.875 0.625 RAD 0.03125 - txt118 -TEXDEF txt118 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.875 0.625 APEX 0.484531 0.875 0.625 RAD 0.0078125 - txt118 -TEXDEF txt118 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.890469 0.625 APEX 0.375 0.984531 0.625 RAD 0.0078125 - txt118 -TEXDEF txt118 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.875 0.640469 APEX 0.375 0.875 0.734531 RAD 0.0078125 - txt118 -TEXDEF txt118 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.875 0.75 RAD 0.03125 - txt118 -TEXDEF txt118 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.875 0.75 APEX 0.484531 0.875 0.75 RAD 0.0078125 - txt118 -TEXDEF txt119 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.890469 0.75 APEX 0.375 0.984531 0.75 RAD 0.0078125 - txt119 -TEXDEF txt119 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.875 0.765469 APEX 0.375 0.875 0.859531 RAD 0.0078125 - txt119 -TEXDEF txt119 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.875 0.875 RAD 0.03125 - txt119 -TEXDEF txt119 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.875 0.875 APEX 0.484531 0.875 0.875 RAD 0.0078125 - txt119 -TEXDEF txt119 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.890469 0.875 APEX 0.375 0.984531 0.875 RAD 0.0078125 - txt119 -TEXDEF txt119 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.875 0.890469 APEX 0.375 0.875 0.984531 RAD 0.0078125 - txt119 -TEXDEF txt119 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 0.875 1 RAD 0.03125 - txt119 -TEXDEF txt119 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 0.875 1 APEX 0.484531 0.875 1 RAD 0.0078125 - txt119 -TEXDEF txt119 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 0.890469 1 APEX 0.375 0.984531 1 RAD 0.0078125 - txt119 -TEXDEF txt119 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 1 0 RAD 0.03125 - txt119 -TEXDEF txt120 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 1 0 APEX 0.484531 1 0 RAD 0.0078125 - txt120 -TEXDEF txt120 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 1 0.0154687 APEX 0.375 1 0.109531 RAD 0.0078125 - txt120 -TEXDEF txt120 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 1 0.125 RAD 0.03125 - txt120 -TEXDEF txt120 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 1 0.125 APEX 0.484531 1 0.125 RAD 0.0078125 - txt120 -TEXDEF txt120 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 1 0.140469 APEX 0.375 1 0.234531 RAD 0.0078125 - txt120 -TEXDEF txt120 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 1 0.25 RAD 0.03125 - txt120 -TEXDEF txt120 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 1 0.25 APEX 0.484531 1 0.25 RAD 0.0078125 - txt120 -TEXDEF txt120 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 1 0.265469 APEX 0.375 1 0.359531 RAD 0.0078125 - txt120 -TEXDEF txt120 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 1 0.375 RAD 0.03125 - txt120 -TEXDEF txt120 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 1 0.375 APEX 0.484531 1 0.375 RAD 0.0078125 - txt120 -TEXDEF txt121 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 1 0.390469 APEX 0.375 1 0.484531 RAD 0.0078125 - txt121 -TEXDEF txt121 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 1 0.5 RAD 0.03125 - txt121 -TEXDEF txt121 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 1 0.5 APEX 0.484531 1 0.5 RAD 0.0078125 - txt121 -TEXDEF txt121 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 1 0.515469 APEX 0.375 1 0.609531 RAD 0.0078125 - txt121 -TEXDEF txt121 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 1 0.625 RAD 0.03125 - txt121 -TEXDEF txt121 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 1 0.625 APEX 0.484531 1 0.625 RAD 0.0078125 - txt121 -TEXDEF txt121 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 1 0.640469 APEX 0.375 1 0.734531 RAD 0.0078125 - txt121 -TEXDEF txt121 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 1 0.75 RAD 0.03125 - txt121 -TEXDEF txt121 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 1 0.75 APEX 0.484531 1 0.75 RAD 0.0078125 - txt121 -TEXDEF txt121 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 1 0.765469 APEX 0.375 1 0.859531 RAD 0.0078125 - txt121 -TEXDEF txt122 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 1 0.875 RAD 0.03125 - txt122 -TEXDEF txt122 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 1 0.875 APEX 0.484531 1 0.875 RAD 0.0078125 - txt122 -TEXDEF txt122 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.375 1 0.890469 APEX 0.375 1 0.984531 RAD 0.0078125 - txt122 -TEXDEF txt122 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.375 1 1 RAD 0.03125 - txt122 -TEXDEF txt122 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.390469 1 1 APEX 0.484531 1 1 RAD 0.0078125 - txt122 -TEXDEF txt122 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0 0 RAD 0.03125 - txt122 -TEXDEF txt122 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0 0 APEX 0.609531 0 0 RAD 0.0078125 - txt122 -TEXDEF txt122 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.0154687 0 APEX 0.5 0.109531 0 RAD 0.0078125 - txt122 -TEXDEF txt122 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0 0.0154687 APEX 0.5 0 0.109531 RAD 0.0078125 - txt122 -TEXDEF txt122 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0 0.125 RAD 0.03125 - txt122 -TEXDEF txt123 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0 0.125 APEX 0.609531 0 0.125 RAD 0.0078125 - txt123 -TEXDEF txt123 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.0154687 0.125 APEX 0.5 0.109531 0.125 RAD 0.0078125 - txt123 -TEXDEF txt123 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0 0.140469 APEX 0.5 0 0.234531 RAD 0.0078125 - txt123 -TEXDEF txt123 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0 0.25 RAD 0.03125 - txt123 -TEXDEF txt123 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0 0.25 APEX 0.609531 0 0.25 RAD 0.0078125 - txt123 -TEXDEF txt123 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.0154687 0.25 APEX 0.5 0.109531 0.25 RAD 0.0078125 - txt123 -TEXDEF txt123 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0 0.265469 APEX 0.5 0 0.359531 RAD 0.0078125 - txt123 -TEXDEF txt123 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0 0.375 RAD 0.03125 - txt123 -TEXDEF txt123 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0 0.375 APEX 0.609531 0 0.375 RAD 0.0078125 - txt123 -TEXDEF txt123 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.0154687 0.375 APEX 0.5 0.109531 0.375 RAD 0.0078125 - txt123 -TEXDEF txt124 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0 0.390469 APEX 0.5 0 0.484531 RAD 0.0078125 - txt124 -TEXDEF txt124 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0 0.5 RAD 0.03125 - txt124 -TEXDEF txt124 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0 0.5 APEX 0.609531 0 0.5 RAD 0.0078125 - txt124 -TEXDEF txt124 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.0154687 0.5 APEX 0.5 0.109531 0.5 RAD 0.0078125 - txt124 -TEXDEF txt124 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0 0.515469 APEX 0.5 0 0.609531 RAD 0.0078125 - txt124 -TEXDEF txt124 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0 0.625 RAD 0.03125 - txt124 -TEXDEF txt124 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0 0.625 APEX 0.609531 0 0.625 RAD 0.0078125 - txt124 -TEXDEF txt124 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.0154687 0.625 APEX 0.5 0.109531 0.625 RAD 0.0078125 - txt124 -TEXDEF txt124 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0 0.640469 APEX 0.5 0 0.734531 RAD 0.0078125 - txt124 -TEXDEF txt124 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0 0.75 RAD 0.03125 - txt124 -TEXDEF txt125 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0 0.75 APEX 0.609531 0 0.75 RAD 0.0078125 - txt125 -TEXDEF txt125 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.0154687 0.75 APEX 0.5 0.109531 0.75 RAD 0.0078125 - txt125 -TEXDEF txt125 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0 0.765469 APEX 0.5 0 0.859531 RAD 0.0078125 - txt125 -TEXDEF txt125 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0 0.875 RAD 0.03125 - txt125 -TEXDEF txt125 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0 0.875 APEX 0.609531 0 0.875 RAD 0.0078125 - txt125 -TEXDEF txt125 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.0154687 0.875 APEX 0.5 0.109531 0.875 RAD 0.0078125 - txt125 -TEXDEF txt125 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0 0.890469 APEX 0.5 0 0.984531 RAD 0.0078125 - txt125 -TEXDEF txt125 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0 1 RAD 0.03125 - txt125 -TEXDEF txt125 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0 1 APEX 0.609531 0 1 RAD 0.0078125 - txt125 -TEXDEF txt125 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.0154687 1 APEX 0.5 0.109531 1 RAD 0.0078125 - txt125 -TEXDEF txt126 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.125 0 RAD 0.03125 - txt126 -TEXDEF txt126 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.125 0 APEX 0.609531 0.125 0 RAD 0.0078125 - txt126 -TEXDEF txt126 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.140469 0 APEX 0.5 0.234531 0 RAD 0.0078125 - txt126 -TEXDEF txt126 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.125 0.0154687 APEX 0.5 0.125 0.109531 RAD 0.0078125 - txt126 -TEXDEF txt126 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.125 0.125 RAD 0.03125 - txt126 -TEXDEF txt126 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.125 0.125 APEX 0.609531 0.125 0.125 RAD 0.0078125 - txt126 -TEXDEF txt126 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.140469 0.125 APEX 0.5 0.234531 0.125 RAD 0.0078125 - txt126 -TEXDEF txt126 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.125 0.140469 APEX 0.5 0.125 0.234531 RAD 0.0078125 - txt126 -TEXDEF txt126 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.125 0.25 RAD 0.03125 - txt126 -TEXDEF txt126 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.125 0.25 APEX 0.609531 0.125 0.25 RAD 0.0078125 - txt126 -TEXDEF txt127 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.140469 0.25 APEX 0.5 0.234531 0.25 RAD 0.0078125 - txt127 -TEXDEF txt127 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.125 0.265469 APEX 0.5 0.125 0.359531 RAD 0.0078125 - txt127 -TEXDEF txt127 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.125 0.375 RAD 0.03125 - txt127 -TEXDEF txt127 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.125 0.375 APEX 0.609531 0.125 0.375 RAD 0.0078125 - txt127 -TEXDEF txt127 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.140469 0.375 APEX 0.5 0.234531 0.375 RAD 0.0078125 - txt127 -TEXDEF txt127 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.125 0.390469 APEX 0.5 0.125 0.484531 RAD 0.0078125 - txt127 -TEXDEF txt127 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.125 0.5 RAD 0.03125 - txt127 -TEXDEF txt127 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.125 0.5 APEX 0.609531 0.125 0.5 RAD 0.0078125 - txt127 -TEXDEF txt127 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.140469 0.5 APEX 0.5 0.234531 0.5 RAD 0.0078125 - txt127 -TEXDEF txt127 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.125 0.515469 APEX 0.5 0.125 0.609531 RAD 0.0078125 - txt127 -TEXDEF txt128 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.125 0.625 RAD 0.03125 - txt128 -TEXDEF txt128 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.125 0.625 APEX 0.609531 0.125 0.625 RAD 0.0078125 - txt128 -TEXDEF txt128 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.140469 0.625 APEX 0.5 0.234531 0.625 RAD 0.0078125 - txt128 -TEXDEF txt128 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.125 0.640469 APEX 0.5 0.125 0.734531 RAD 0.0078125 - txt128 -TEXDEF txt128 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.125 0.75 RAD 0.03125 - txt128 -TEXDEF txt128 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.125 0.75 APEX 0.609531 0.125 0.75 RAD 0.0078125 - txt128 -TEXDEF txt128 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.140469 0.75 APEX 0.5 0.234531 0.75 RAD 0.0078125 - txt128 -TEXDEF txt128 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.125 0.765469 APEX 0.5 0.125 0.859531 RAD 0.0078125 - txt128 -TEXDEF txt128 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.125 0.875 RAD 0.03125 - txt128 -TEXDEF txt128 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.125 0.875 APEX 0.609531 0.125 0.875 RAD 0.0078125 - txt128 -TEXDEF txt129 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.140469 0.875 APEX 0.5 0.234531 0.875 RAD 0.0078125 - txt129 -TEXDEF txt129 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.125 0.890469 APEX 0.5 0.125 0.984531 RAD 0.0078125 - txt129 -TEXDEF txt129 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.125 1 RAD 0.03125 - txt129 -TEXDEF txt129 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.125 1 APEX 0.609531 0.125 1 RAD 0.0078125 - txt129 -TEXDEF txt129 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.140469 1 APEX 0.5 0.234531 1 RAD 0.0078125 - txt129 -TEXDEF txt129 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.25 0 RAD 0.03125 - txt129 -TEXDEF txt129 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.25 0 APEX 0.609531 0.25 0 RAD 0.0078125 - txt129 -TEXDEF txt129 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.265469 0 APEX 0.5 0.359531 0 RAD 0.0078125 - txt129 -TEXDEF txt129 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.25 0.0154687 APEX 0.5 0.25 0.109531 RAD 0.0078125 - txt129 -TEXDEF txt129 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.25 0.125 RAD 0.03125 - txt129 -TEXDEF txt130 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.25 0.125 APEX 0.609531 0.25 0.125 RAD 0.0078125 - txt130 -TEXDEF txt130 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.265469 0.125 APEX 0.5 0.359531 0.125 RAD 0.0078125 - txt130 -TEXDEF txt130 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.25 0.140469 APEX 0.5 0.25 0.234531 RAD 0.0078125 - txt130 -TEXDEF txt130 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.25 0.25 RAD 0.03125 - txt130 -TEXDEF txt130 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.25 0.25 APEX 0.609531 0.25 0.25 RAD 0.0078125 - txt130 -TEXDEF txt130 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.265469 0.25 APEX 0.5 0.359531 0.25 RAD 0.0078125 - txt130 -TEXDEF txt130 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.25 0.265469 APEX 0.5 0.25 0.359531 RAD 0.0078125 - txt130 -TEXDEF txt130 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.25 0.375 RAD 0.03125 - txt130 -TEXDEF txt130 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.25 0.375 APEX 0.609531 0.25 0.375 RAD 0.0078125 - txt130 -TEXDEF txt130 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.265469 0.375 APEX 0.5 0.359531 0.375 RAD 0.0078125 - txt130 -TEXDEF txt131 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.25 0.390469 APEX 0.5 0.25 0.484531 RAD 0.0078125 - txt131 -TEXDEF txt131 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.25 0.5 RAD 0.03125 - txt131 -TEXDEF txt131 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.25 0.5 APEX 0.609531 0.25 0.5 RAD 0.0078125 - txt131 -TEXDEF txt131 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.265469 0.5 APEX 0.5 0.359531 0.5 RAD 0.0078125 - txt131 -TEXDEF txt131 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.25 0.515469 APEX 0.5 0.25 0.609531 RAD 0.0078125 - txt131 -TEXDEF txt131 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.25 0.625 RAD 0.03125 - txt131 -TEXDEF txt131 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.25 0.625 APEX 0.609531 0.25 0.625 RAD 0.0078125 - txt131 -TEXDEF txt131 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.265469 0.625 APEX 0.5 0.359531 0.625 RAD 0.0078125 - txt131 -TEXDEF txt131 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.25 0.640469 APEX 0.5 0.25 0.734531 RAD 0.0078125 - txt131 -TEXDEF txt131 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.25 0.75 RAD 0.03125 - txt131 -TEXDEF txt132 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.25 0.75 APEX 0.609531 0.25 0.75 RAD 0.0078125 - txt132 -TEXDEF txt132 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.265469 0.75 APEX 0.5 0.359531 0.75 RAD 0.0078125 - txt132 -TEXDEF txt132 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.25 0.765469 APEX 0.5 0.25 0.859531 RAD 0.0078125 - txt132 -TEXDEF txt132 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.25 0.875 RAD 0.03125 - txt132 -TEXDEF txt132 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.25 0.875 APEX 0.609531 0.25 0.875 RAD 0.0078125 - txt132 -TEXDEF txt132 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.265469 0.875 APEX 0.5 0.359531 0.875 RAD 0.0078125 - txt132 -TEXDEF txt132 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.25 0.890469 APEX 0.5 0.25 0.984531 RAD 0.0078125 - txt132 -TEXDEF txt132 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.25 1 RAD 0.03125 - txt132 -TEXDEF txt132 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.25 1 APEX 0.609531 0.25 1 RAD 0.0078125 - txt132 -TEXDEF txt132 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.265469 1 APEX 0.5 0.359531 1 RAD 0.0078125 - txt132 -TEXDEF txt133 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.375 0 RAD 0.03125 - txt133 -TEXDEF txt133 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.375 0 APEX 0.609531 0.375 0 RAD 0.0078125 - txt133 -TEXDEF txt133 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.390469 0 APEX 0.5 0.484531 0 RAD 0.0078125 - txt133 -TEXDEF txt133 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.375 0.0154687 APEX 0.5 0.375 0.109531 RAD 0.0078125 - txt133 -TEXDEF txt133 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.375 0.125 RAD 0.03125 - txt133 -TEXDEF txt133 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.375 0.125 APEX 0.609531 0.375 0.125 RAD 0.0078125 - txt133 -TEXDEF txt133 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.390469 0.125 APEX 0.5 0.484531 0.125 RAD 0.0078125 - txt133 -TEXDEF txt133 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.375 0.140469 APEX 0.5 0.375 0.234531 RAD 0.0078125 - txt133 -TEXDEF txt133 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.375 0.25 RAD 0.03125 - txt133 -TEXDEF txt133 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.375 0.25 APEX 0.609531 0.375 0.25 RAD 0.0078125 - txt133 -TEXDEF txt134 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.390469 0.25 APEX 0.5 0.484531 0.25 RAD 0.0078125 - txt134 -TEXDEF txt134 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.375 0.265469 APEX 0.5 0.375 0.359531 RAD 0.0078125 - txt134 -TEXDEF txt134 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.375 0.375 RAD 0.03125 - txt134 -TEXDEF txt134 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.375 0.375 APEX 0.609531 0.375 0.375 RAD 0.0078125 - txt134 -TEXDEF txt134 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.390469 0.375 APEX 0.5 0.484531 0.375 RAD 0.0078125 - txt134 -TEXDEF txt134 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.375 0.390469 APEX 0.5 0.375 0.484531 RAD 0.0078125 - txt134 -TEXDEF txt134 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.375 0.5 RAD 0.03125 - txt134 -TEXDEF txt134 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.375 0.5 APEX 0.609531 0.375 0.5 RAD 0.0078125 - txt134 -TEXDEF txt134 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.390469 0.5 APEX 0.5 0.484531 0.5 RAD 0.0078125 - txt134 -TEXDEF txt134 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.375 0.515469 APEX 0.5 0.375 0.609531 RAD 0.0078125 - txt134 -TEXDEF txt135 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.375 0.625 RAD 0.03125 - txt135 -TEXDEF txt135 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.375 0.625 APEX 0.609531 0.375 0.625 RAD 0.0078125 - txt135 -TEXDEF txt135 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.390469 0.625 APEX 0.5 0.484531 0.625 RAD 0.0078125 - txt135 -TEXDEF txt135 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.375 0.640469 APEX 0.5 0.375 0.734531 RAD 0.0078125 - txt135 -TEXDEF txt135 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.375 0.75 RAD 0.03125 - txt135 -TEXDEF txt135 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.375 0.75 APEX 0.609531 0.375 0.75 RAD 0.0078125 - txt135 -TEXDEF txt135 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.390469 0.75 APEX 0.5 0.484531 0.75 RAD 0.0078125 - txt135 -TEXDEF txt135 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.375 0.765469 APEX 0.5 0.375 0.859531 RAD 0.0078125 - txt135 -TEXDEF txt135 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.375 0.875 RAD 0.03125 - txt135 -TEXDEF txt135 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.375 0.875 APEX 0.609531 0.375 0.875 RAD 0.0078125 - txt135 -TEXDEF txt136 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.390469 0.875 APEX 0.5 0.484531 0.875 RAD 0.0078125 - txt136 -TEXDEF txt136 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.375 0.890469 APEX 0.5 0.375 0.984531 RAD 0.0078125 - txt136 -TEXDEF txt136 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.375 1 RAD 0.03125 - txt136 -TEXDEF txt136 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.375 1 APEX 0.609531 0.375 1 RAD 0.0078125 - txt136 -TEXDEF txt136 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.390469 1 APEX 0.5 0.484531 1 RAD 0.0078125 - txt136 -TEXDEF txt136 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.5 0 RAD 0.03125 - txt136 -TEXDEF txt136 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.5 0 APEX 0.609531 0.5 0 RAD 0.0078125 - txt136 -TEXDEF txt136 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.515469 0 APEX 0.5 0.609531 0 RAD 0.0078125 - txt136 -TEXDEF txt136 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.5 0.0154687 APEX 0.5 0.5 0.109531 RAD 0.0078125 - txt136 -TEXDEF txt136 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.5 0.125 RAD 0.03125 - txt136 -TEXDEF txt137 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.5 0.125 APEX 0.609531 0.5 0.125 RAD 0.0078125 - txt137 -TEXDEF txt137 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.515469 0.125 APEX 0.5 0.609531 0.125 RAD 0.0078125 - txt137 -TEXDEF txt137 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.5 0.140469 APEX 0.5 0.5 0.234531 RAD 0.0078125 - txt137 -TEXDEF txt137 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.5 0.25 RAD 0.03125 - txt137 -TEXDEF txt137 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.5 0.25 APEX 0.609531 0.5 0.25 RAD 0.0078125 - txt137 -TEXDEF txt137 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.515469 0.25 APEX 0.5 0.609531 0.25 RAD 0.0078125 - txt137 -TEXDEF txt137 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.5 0.265469 APEX 0.5 0.5 0.359531 RAD 0.0078125 - txt137 -TEXDEF txt137 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.5 0.375 RAD 0.03125 - txt137 -TEXDEF txt137 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.5 0.375 APEX 0.609531 0.5 0.375 RAD 0.0078125 - txt137 -TEXDEF txt137 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.515469 0.375 APEX 0.5 0.609531 0.375 RAD 0.0078125 - txt137 -TEXDEF txt138 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.5 0.390469 APEX 0.5 0.5 0.484531 RAD 0.0078125 - txt138 -TEXDEF txt138 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.5 0.5 RAD 0.03125 - txt138 -TEXDEF txt138 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.5 0.5 APEX 0.609531 0.5 0.5 RAD 0.0078125 - txt138 -TEXDEF txt138 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.515469 0.5 APEX 0.5 0.609531 0.5 RAD 0.0078125 - txt138 -TEXDEF txt138 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.5 0.515469 APEX 0.5 0.5 0.609531 RAD 0.0078125 - txt138 -TEXDEF txt138 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.5 0.625 RAD 0.03125 - txt138 -TEXDEF txt138 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.5 0.625 APEX 0.609531 0.5 0.625 RAD 0.0078125 - txt138 -TEXDEF txt138 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.515469 0.625 APEX 0.5 0.609531 0.625 RAD 0.0078125 - txt138 -TEXDEF txt138 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.5 0.640469 APEX 0.5 0.5 0.734531 RAD 0.0078125 - txt138 -TEXDEF txt138 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.5 0.75 RAD 0.03125 - txt138 -TEXDEF txt139 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.5 0.75 APEX 0.609531 0.5 0.75 RAD 0.0078125 - txt139 -TEXDEF txt139 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.515469 0.75 APEX 0.5 0.609531 0.75 RAD 0.0078125 - txt139 -TEXDEF txt139 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.5 0.765469 APEX 0.5 0.5 0.859531 RAD 0.0078125 - txt139 -TEXDEF txt139 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.5 0.875 RAD 0.03125 - txt139 -TEXDEF txt139 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.5 0.875 APEX 0.609531 0.5 0.875 RAD 0.0078125 - txt139 -TEXDEF txt139 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.515469 0.875 APEX 0.5 0.609531 0.875 RAD 0.0078125 - txt139 -TEXDEF txt139 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.5 0.890469 APEX 0.5 0.5 0.984531 RAD 0.0078125 - txt139 -TEXDEF txt139 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.5 1 RAD 0.03125 - txt139 -TEXDEF txt139 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.5 1 APEX 0.609531 0.5 1 RAD 0.0078125 - txt139 -TEXDEF txt139 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.515469 1 APEX 0.5 0.609531 1 RAD 0.0078125 - txt139 -TEXDEF txt140 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.625 0 RAD 0.03125 - txt140 -TEXDEF txt140 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.625 0 APEX 0.609531 0.625 0 RAD 0.0078125 - txt140 -TEXDEF txt140 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.640469 0 APEX 0.5 0.734531 0 RAD 0.0078125 - txt140 -TEXDEF txt140 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.625 0.0154687 APEX 0.5 0.625 0.109531 RAD 0.0078125 - txt140 -TEXDEF txt140 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.625 0.125 RAD 0.03125 - txt140 -TEXDEF txt140 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.625 0.125 APEX 0.609531 0.625 0.125 RAD 0.0078125 - txt140 -TEXDEF txt140 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.640469 0.125 APEX 0.5 0.734531 0.125 RAD 0.0078125 - txt140 -TEXDEF txt140 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.625 0.140469 APEX 0.5 0.625 0.234531 RAD 0.0078125 - txt140 -TEXDEF txt140 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.625 0.25 RAD 0.03125 - txt140 -TEXDEF txt140 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.625 0.25 APEX 0.609531 0.625 0.25 RAD 0.0078125 - txt140 -TEXDEF txt141 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.640469 0.25 APEX 0.5 0.734531 0.25 RAD 0.0078125 - txt141 -TEXDEF txt141 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.625 0.265469 APEX 0.5 0.625 0.359531 RAD 0.0078125 - txt141 -TEXDEF txt141 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.625 0.375 RAD 0.03125 - txt141 -TEXDEF txt141 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.625 0.375 APEX 0.609531 0.625 0.375 RAD 0.0078125 - txt141 -TEXDEF txt141 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.640469 0.375 APEX 0.5 0.734531 0.375 RAD 0.0078125 - txt141 -TEXDEF txt141 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.625 0.390469 APEX 0.5 0.625 0.484531 RAD 0.0078125 - txt141 -TEXDEF txt141 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.625 0.5 RAD 0.03125 - txt141 -TEXDEF txt141 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.625 0.5 APEX 0.609531 0.625 0.5 RAD 0.0078125 - txt141 -TEXDEF txt141 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.640469 0.5 APEX 0.5 0.734531 0.5 RAD 0.0078125 - txt141 -TEXDEF txt141 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.625 0.515469 APEX 0.5 0.625 0.609531 RAD 0.0078125 - txt141 -TEXDEF txt142 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.625 0.625 RAD 0.03125 - txt142 -TEXDEF txt142 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.625 0.625 APEX 0.609531 0.625 0.625 RAD 0.0078125 - txt142 -TEXDEF txt142 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.640469 0.625 APEX 0.5 0.734531 0.625 RAD 0.0078125 - txt142 -TEXDEF txt142 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.625 0.640469 APEX 0.5 0.625 0.734531 RAD 0.0078125 - txt142 -TEXDEF txt142 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.625 0.75 RAD 0.03125 - txt142 -TEXDEF txt142 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.625 0.75 APEX 0.609531 0.625 0.75 RAD 0.0078125 - txt142 -TEXDEF txt142 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.640469 0.75 APEX 0.5 0.734531 0.75 RAD 0.0078125 - txt142 -TEXDEF txt142 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.625 0.765469 APEX 0.5 0.625 0.859531 RAD 0.0078125 - txt142 -TEXDEF txt142 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.625 0.875 RAD 0.03125 - txt142 -TEXDEF txt142 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.625 0.875 APEX 0.609531 0.625 0.875 RAD 0.0078125 - txt142 -TEXDEF txt143 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.640469 0.875 APEX 0.5 0.734531 0.875 RAD 0.0078125 - txt143 -TEXDEF txt143 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.625 0.890469 APEX 0.5 0.625 0.984531 RAD 0.0078125 - txt143 -TEXDEF txt143 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.625 1 RAD 0.03125 - txt143 -TEXDEF txt143 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.625 1 APEX 0.609531 0.625 1 RAD 0.0078125 - txt143 -TEXDEF txt143 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.640469 1 APEX 0.5 0.734531 1 RAD 0.0078125 - txt143 -TEXDEF txt143 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.75 0 RAD 0.03125 - txt143 -TEXDEF txt143 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.75 0 APEX 0.609531 0.75 0 RAD 0.0078125 - txt143 -TEXDEF txt143 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.765469 0 APEX 0.5 0.859531 0 RAD 0.0078125 - txt143 -TEXDEF txt143 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.75 0.0154687 APEX 0.5 0.75 0.109531 RAD 0.0078125 - txt143 -TEXDEF txt143 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.75 0.125 RAD 0.03125 - txt143 -TEXDEF txt144 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.75 0.125 APEX 0.609531 0.75 0.125 RAD 0.0078125 - txt144 -TEXDEF txt144 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.765469 0.125 APEX 0.5 0.859531 0.125 RAD 0.0078125 - txt144 -TEXDEF txt144 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.75 0.140469 APEX 0.5 0.75 0.234531 RAD 0.0078125 - txt144 -TEXDEF txt144 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.75 0.25 RAD 0.03125 - txt144 -TEXDEF txt144 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.75 0.25 APEX 0.609531 0.75 0.25 RAD 0.0078125 - txt144 -TEXDEF txt144 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.765469 0.25 APEX 0.5 0.859531 0.25 RAD 0.0078125 - txt144 -TEXDEF txt144 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.75 0.265469 APEX 0.5 0.75 0.359531 RAD 0.0078125 - txt144 -TEXDEF txt144 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.75 0.375 RAD 0.03125 - txt144 -TEXDEF txt144 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.75 0.375 APEX 0.609531 0.75 0.375 RAD 0.0078125 - txt144 -TEXDEF txt144 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.765469 0.375 APEX 0.5 0.859531 0.375 RAD 0.0078125 - txt144 -TEXDEF txt145 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.75 0.390469 APEX 0.5 0.75 0.484531 RAD 0.0078125 - txt145 -TEXDEF txt145 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.75 0.5 RAD 0.03125 - txt145 -TEXDEF txt145 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.75 0.5 APEX 0.609531 0.75 0.5 RAD 0.0078125 - txt145 -TEXDEF txt145 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.765469 0.5 APEX 0.5 0.859531 0.5 RAD 0.0078125 - txt145 -TEXDEF txt145 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.75 0.515469 APEX 0.5 0.75 0.609531 RAD 0.0078125 - txt145 -TEXDEF txt145 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.75 0.625 RAD 0.03125 - txt145 -TEXDEF txt145 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.75 0.625 APEX 0.609531 0.75 0.625 RAD 0.0078125 - txt145 -TEXDEF txt145 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.765469 0.625 APEX 0.5 0.859531 0.625 RAD 0.0078125 - txt145 -TEXDEF txt145 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.75 0.640469 APEX 0.5 0.75 0.734531 RAD 0.0078125 - txt145 -TEXDEF txt145 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.75 0.75 RAD 0.03125 - txt145 -TEXDEF txt146 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.75 0.75 APEX 0.609531 0.75 0.75 RAD 0.0078125 - txt146 -TEXDEF txt146 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.765469 0.75 APEX 0.5 0.859531 0.75 RAD 0.0078125 - txt146 -TEXDEF txt146 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.75 0.765469 APEX 0.5 0.75 0.859531 RAD 0.0078125 - txt146 -TEXDEF txt146 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.75 0.875 RAD 0.03125 - txt146 -TEXDEF txt146 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.75 0.875 APEX 0.609531 0.75 0.875 RAD 0.0078125 - txt146 -TEXDEF txt146 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.765469 0.875 APEX 0.5 0.859531 0.875 RAD 0.0078125 - txt146 -TEXDEF txt146 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.75 0.890469 APEX 0.5 0.75 0.984531 RAD 0.0078125 - txt146 -TEXDEF txt146 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.75 1 RAD 0.03125 - txt146 -TEXDEF txt146 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.75 1 APEX 0.609531 0.75 1 RAD 0.0078125 - txt146 -TEXDEF txt146 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.765469 1 APEX 0.5 0.859531 1 RAD 0.0078125 - txt146 -TEXDEF txt147 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.875 0 RAD 0.03125 - txt147 -TEXDEF txt147 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.875 0 APEX 0.609531 0.875 0 RAD 0.0078125 - txt147 -TEXDEF txt147 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.890469 0 APEX 0.5 0.984531 0 RAD 0.0078125 - txt147 -TEXDEF txt147 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.875 0.0154687 APEX 0.5 0.875 0.109531 RAD 0.0078125 - txt147 -TEXDEF txt147 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.875 0.125 RAD 0.03125 - txt147 -TEXDEF txt147 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.875 0.125 APEX 0.609531 0.875 0.125 RAD 0.0078125 - txt147 -TEXDEF txt147 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.890469 0.125 APEX 0.5 0.984531 0.125 RAD 0.0078125 - txt147 -TEXDEF txt147 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.875 0.140469 APEX 0.5 0.875 0.234531 RAD 0.0078125 - txt147 -TEXDEF txt147 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.875 0.25 RAD 0.03125 - txt147 -TEXDEF txt147 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.875 0.25 APEX 0.609531 0.875 0.25 RAD 0.0078125 - txt147 -TEXDEF txt148 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.890469 0.25 APEX 0.5 0.984531 0.25 RAD 0.0078125 - txt148 -TEXDEF txt148 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.875 0.265469 APEX 0.5 0.875 0.359531 RAD 0.0078125 - txt148 -TEXDEF txt148 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.875 0.375 RAD 0.03125 - txt148 -TEXDEF txt148 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.875 0.375 APEX 0.609531 0.875 0.375 RAD 0.0078125 - txt148 -TEXDEF txt148 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.890469 0.375 APEX 0.5 0.984531 0.375 RAD 0.0078125 - txt148 -TEXDEF txt148 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.875 0.390469 APEX 0.5 0.875 0.484531 RAD 0.0078125 - txt148 -TEXDEF txt148 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.875 0.5 RAD 0.03125 - txt148 -TEXDEF txt148 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.875 0.5 APEX 0.609531 0.875 0.5 RAD 0.0078125 - txt148 -TEXDEF txt148 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.890469 0.5 APEX 0.5 0.984531 0.5 RAD 0.0078125 - txt148 -TEXDEF txt148 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.875 0.515469 APEX 0.5 0.875 0.609531 RAD 0.0078125 - txt148 -TEXDEF txt149 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.875 0.625 RAD 0.03125 - txt149 -TEXDEF txt149 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.875 0.625 APEX 0.609531 0.875 0.625 RAD 0.0078125 - txt149 -TEXDEF txt149 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.890469 0.625 APEX 0.5 0.984531 0.625 RAD 0.0078125 - txt149 -TEXDEF txt149 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.875 0.640469 APEX 0.5 0.875 0.734531 RAD 0.0078125 - txt149 -TEXDEF txt149 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.875 0.75 RAD 0.03125 - txt149 -TEXDEF txt149 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.875 0.75 APEX 0.609531 0.875 0.75 RAD 0.0078125 - txt149 -TEXDEF txt149 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.890469 0.75 APEX 0.5 0.984531 0.75 RAD 0.0078125 - txt149 -TEXDEF txt149 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.875 0.765469 APEX 0.5 0.875 0.859531 RAD 0.0078125 - txt149 -TEXDEF txt149 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.875 0.875 RAD 0.03125 - txt149 -TEXDEF txt149 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.875 0.875 APEX 0.609531 0.875 0.875 RAD 0.0078125 - txt149 -TEXDEF txt150 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.890469 0.875 APEX 0.5 0.984531 0.875 RAD 0.0078125 - txt150 -TEXDEF txt150 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.875 0.890469 APEX 0.5 0.875 0.984531 RAD 0.0078125 - txt150 -TEXDEF txt150 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 0.875 1 RAD 0.03125 - txt150 -TEXDEF txt150 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 0.875 1 APEX 0.609531 0.875 1 RAD 0.0078125 - txt150 -TEXDEF txt150 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 0.890469 1 APEX 0.5 0.984531 1 RAD 0.0078125 - txt150 -TEXDEF txt150 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 1 0 RAD 0.03125 - txt150 -TEXDEF txt150 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 1 0 APEX 0.609531 1 0 RAD 0.0078125 - txt150 -TEXDEF txt150 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 1 0.0154687 APEX 0.5 1 0.109531 RAD 0.0078125 - txt150 -TEXDEF txt150 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 1 0.125 RAD 0.03125 - txt150 -TEXDEF txt150 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 1 0.125 APEX 0.609531 1 0.125 RAD 0.0078125 - txt150 -TEXDEF txt151 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 1 0.140469 APEX 0.5 1 0.234531 RAD 0.0078125 - txt151 -TEXDEF txt151 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 1 0.25 RAD 0.03125 - txt151 -TEXDEF txt151 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 1 0.25 APEX 0.609531 1 0.25 RAD 0.0078125 - txt151 -TEXDEF txt151 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 1 0.265469 APEX 0.5 1 0.359531 RAD 0.0078125 - txt151 -TEXDEF txt151 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 1 0.375 RAD 0.03125 - txt151 -TEXDEF txt151 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 1 0.375 APEX 0.609531 1 0.375 RAD 0.0078125 - txt151 -TEXDEF txt151 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 1 0.390469 APEX 0.5 1 0.484531 RAD 0.0078125 - txt151 -TEXDEF txt151 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 1 0.5 RAD 0.03125 - txt151 -TEXDEF txt151 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 1 0.5 APEX 0.609531 1 0.5 RAD 0.0078125 - txt151 -TEXDEF txt151 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 1 0.515469 APEX 0.5 1 0.609531 RAD 0.0078125 - txt151 -TEXDEF txt152 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 1 0.625 RAD 0.03125 - txt152 -TEXDEF txt152 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 1 0.625 APEX 0.609531 1 0.625 RAD 0.0078125 - txt152 -TEXDEF txt152 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 1 0.640469 APEX 0.5 1 0.734531 RAD 0.0078125 - txt152 -TEXDEF txt152 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 1 0.75 RAD 0.03125 - txt152 -TEXDEF txt152 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 1 0.75 APEX 0.609531 1 0.75 RAD 0.0078125 - txt152 -TEXDEF txt152 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 1 0.765469 APEX 0.5 1 0.859531 RAD 0.0078125 - txt152 -TEXDEF txt152 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 1 0.875 RAD 0.03125 - txt152 -TEXDEF txt152 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 1 0.875 APEX 0.609531 1 0.875 RAD 0.0078125 - txt152 -TEXDEF txt152 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.5 1 0.890469 APEX 0.5 1 0.984531 RAD 0.0078125 - txt152 -TEXDEF txt152 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.5 1 1 RAD 0.03125 - txt152 -TEXDEF txt153 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.515469 1 1 APEX 0.609531 1 1 RAD 0.0078125 - txt153 -TEXDEF txt153 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0 0 RAD 0.03125 - txt153 -TEXDEF txt153 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0 0 APEX 0.734531 0 0 RAD 0.0078125 - txt153 -TEXDEF txt153 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.0154687 0 APEX 0.625 0.109531 0 RAD 0.0078125 - txt153 -TEXDEF txt153 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0 0.0154687 APEX 0.625 0 0.109531 RAD 0.0078125 - txt153 -TEXDEF txt153 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0 0.125 RAD 0.03125 - txt153 -TEXDEF txt153 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0 0.125 APEX 0.734531 0 0.125 RAD 0.0078125 - txt153 -TEXDEF txt153 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.0154687 0.125 APEX 0.625 0.109531 0.125 RAD 0.0078125 - txt153 -TEXDEF txt153 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0 0.140469 APEX 0.625 0 0.234531 RAD 0.0078125 - txt153 -TEXDEF txt153 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0 0.25 RAD 0.03125 - txt153 -TEXDEF txt154 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0 0.25 APEX 0.734531 0 0.25 RAD 0.0078125 - txt154 -TEXDEF txt154 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.0154687 0.25 APEX 0.625 0.109531 0.25 RAD 0.0078125 - txt154 -TEXDEF txt154 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0 0.265469 APEX 0.625 0 0.359531 RAD 0.0078125 - txt154 -TEXDEF txt154 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0 0.375 RAD 0.03125 - txt154 -TEXDEF txt154 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0 0.375 APEX 0.734531 0 0.375 RAD 0.0078125 - txt154 -TEXDEF txt154 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.0154687 0.375 APEX 0.625 0.109531 0.375 RAD 0.0078125 - txt154 -TEXDEF txt154 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0 0.390469 APEX 0.625 0 0.484531 RAD 0.0078125 - txt154 -TEXDEF txt154 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0 0.5 RAD 0.03125 - txt154 -TEXDEF txt154 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0 0.5 APEX 0.734531 0 0.5 RAD 0.0078125 - txt154 -TEXDEF txt154 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.0154687 0.5 APEX 0.625 0.109531 0.5 RAD 0.0078125 - txt154 -TEXDEF txt155 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0 0.515469 APEX 0.625 0 0.609531 RAD 0.0078125 - txt155 -TEXDEF txt155 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0 0.625 RAD 0.03125 - txt155 -TEXDEF txt155 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0 0.625 APEX 0.734531 0 0.625 RAD 0.0078125 - txt155 -TEXDEF txt155 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.0154687 0.625 APEX 0.625 0.109531 0.625 RAD 0.0078125 - txt155 -TEXDEF txt155 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0 0.640469 APEX 0.625 0 0.734531 RAD 0.0078125 - txt155 -TEXDEF txt155 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0 0.75 RAD 0.03125 - txt155 -TEXDEF txt155 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0 0.75 APEX 0.734531 0 0.75 RAD 0.0078125 - txt155 -TEXDEF txt155 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.0154687 0.75 APEX 0.625 0.109531 0.75 RAD 0.0078125 - txt155 -TEXDEF txt155 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0 0.765469 APEX 0.625 0 0.859531 RAD 0.0078125 - txt155 -TEXDEF txt155 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0 0.875 RAD 0.03125 - txt155 -TEXDEF txt156 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0 0.875 APEX 0.734531 0 0.875 RAD 0.0078125 - txt156 -TEXDEF txt156 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.0154687 0.875 APEX 0.625 0.109531 0.875 RAD 0.0078125 - txt156 -TEXDEF txt156 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0 0.890469 APEX 0.625 0 0.984531 RAD 0.0078125 - txt156 -TEXDEF txt156 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0 1 RAD 0.03125 - txt156 -TEXDEF txt156 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0 1 APEX 0.734531 0 1 RAD 0.0078125 - txt156 -TEXDEF txt156 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.0154687 1 APEX 0.625 0.109531 1 RAD 0.0078125 - txt156 -TEXDEF txt156 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.125 0 RAD 0.03125 - txt156 -TEXDEF txt156 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.125 0 APEX 0.734531 0.125 0 RAD 0.0078125 - txt156 -TEXDEF txt156 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.140469 0 APEX 0.625 0.234531 0 RAD 0.0078125 - txt156 -TEXDEF txt156 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.125 0.0154687 APEX 0.625 0.125 0.109531 RAD 0.0078125 - txt156 -TEXDEF txt157 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.125 0.125 RAD 0.03125 - txt157 -TEXDEF txt157 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.125 0.125 APEX 0.734531 0.125 0.125 RAD 0.0078125 - txt157 -TEXDEF txt157 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.140469 0.125 APEX 0.625 0.234531 0.125 RAD 0.0078125 - txt157 -TEXDEF txt157 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.125 0.140469 APEX 0.625 0.125 0.234531 RAD 0.0078125 - txt157 -TEXDEF txt157 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.125 0.25 RAD 0.03125 - txt157 -TEXDEF txt157 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.125 0.25 APEX 0.734531 0.125 0.25 RAD 0.0078125 - txt157 -TEXDEF txt157 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.140469 0.25 APEX 0.625 0.234531 0.25 RAD 0.0078125 - txt157 -TEXDEF txt157 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.125 0.265469 APEX 0.625 0.125 0.359531 RAD 0.0078125 - txt157 -TEXDEF txt157 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.125 0.375 RAD 0.03125 - txt157 -TEXDEF txt157 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.125 0.375 APEX 0.734531 0.125 0.375 RAD 0.0078125 - txt157 -TEXDEF txt158 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.140469 0.375 APEX 0.625 0.234531 0.375 RAD 0.0078125 - txt158 -TEXDEF txt158 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.125 0.390469 APEX 0.625 0.125 0.484531 RAD 0.0078125 - txt158 -TEXDEF txt158 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.125 0.5 RAD 0.03125 - txt158 -TEXDEF txt158 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.125 0.5 APEX 0.734531 0.125 0.5 RAD 0.0078125 - txt158 -TEXDEF txt158 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.140469 0.5 APEX 0.625 0.234531 0.5 RAD 0.0078125 - txt158 -TEXDEF txt158 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.125 0.515469 APEX 0.625 0.125 0.609531 RAD 0.0078125 - txt158 -TEXDEF txt158 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.125 0.625 RAD 0.03125 - txt158 -TEXDEF txt158 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.125 0.625 APEX 0.734531 0.125 0.625 RAD 0.0078125 - txt158 -TEXDEF txt158 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.140469 0.625 APEX 0.625 0.234531 0.625 RAD 0.0078125 - txt158 -TEXDEF txt158 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.125 0.640469 APEX 0.625 0.125 0.734531 RAD 0.0078125 - txt158 -TEXDEF txt159 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.125 0.75 RAD 0.03125 - txt159 -TEXDEF txt159 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.125 0.75 APEX 0.734531 0.125 0.75 RAD 0.0078125 - txt159 -TEXDEF txt159 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.140469 0.75 APEX 0.625 0.234531 0.75 RAD 0.0078125 - txt159 -TEXDEF txt159 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.125 0.765469 APEX 0.625 0.125 0.859531 RAD 0.0078125 - txt159 -TEXDEF txt159 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.125 0.875 RAD 0.03125 - txt159 -TEXDEF txt159 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.125 0.875 APEX 0.734531 0.125 0.875 RAD 0.0078125 - txt159 -TEXDEF txt159 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.140469 0.875 APEX 0.625 0.234531 0.875 RAD 0.0078125 - txt159 -TEXDEF txt159 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.125 0.890469 APEX 0.625 0.125 0.984531 RAD 0.0078125 - txt159 -TEXDEF txt159 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.125 1 RAD 0.03125 - txt159 -TEXDEF txt159 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.125 1 APEX 0.734531 0.125 1 RAD 0.0078125 - txt159 -TEXDEF txt160 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.140469 1 APEX 0.625 0.234531 1 RAD 0.0078125 - txt160 -TEXDEF txt160 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.25 0 RAD 0.03125 - txt160 -TEXDEF txt160 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.25 0 APEX 0.734531 0.25 0 RAD 0.0078125 - txt160 -TEXDEF txt160 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.265469 0 APEX 0.625 0.359531 0 RAD 0.0078125 - txt160 -TEXDEF txt160 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.25 0.0154687 APEX 0.625 0.25 0.109531 RAD 0.0078125 - txt160 -TEXDEF txt160 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.25 0.125 RAD 0.03125 - txt160 -TEXDEF txt160 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.25 0.125 APEX 0.734531 0.25 0.125 RAD 0.0078125 - txt160 -TEXDEF txt160 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.265469 0.125 APEX 0.625 0.359531 0.125 RAD 0.0078125 - txt160 -TEXDEF txt160 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.25 0.140469 APEX 0.625 0.25 0.234531 RAD 0.0078125 - txt160 -TEXDEF txt160 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.25 0.25 RAD 0.03125 - txt160 -TEXDEF txt161 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.25 0.25 APEX 0.734531 0.25 0.25 RAD 0.0078125 - txt161 -TEXDEF txt161 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.265469 0.25 APEX 0.625 0.359531 0.25 RAD 0.0078125 - txt161 -TEXDEF txt161 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.25 0.265469 APEX 0.625 0.25 0.359531 RAD 0.0078125 - txt161 -TEXDEF txt161 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.25 0.375 RAD 0.03125 - txt161 -TEXDEF txt161 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.25 0.375 APEX 0.734531 0.25 0.375 RAD 0.0078125 - txt161 -TEXDEF txt161 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.265469 0.375 APEX 0.625 0.359531 0.375 RAD 0.0078125 - txt161 -TEXDEF txt161 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.25 0.390469 APEX 0.625 0.25 0.484531 RAD 0.0078125 - txt161 -TEXDEF txt161 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.25 0.5 RAD 0.03125 - txt161 -TEXDEF txt161 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.25 0.5 APEX 0.734531 0.25 0.5 RAD 0.0078125 - txt161 -TEXDEF txt161 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.265469 0.5 APEX 0.625 0.359531 0.5 RAD 0.0078125 - txt161 -TEXDEF txt162 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.25 0.515469 APEX 0.625 0.25 0.609531 RAD 0.0078125 - txt162 -TEXDEF txt162 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.25 0.625 RAD 0.03125 - txt162 -TEXDEF txt162 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.25 0.625 APEX 0.734531 0.25 0.625 RAD 0.0078125 - txt162 -TEXDEF txt162 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.265469 0.625 APEX 0.625 0.359531 0.625 RAD 0.0078125 - txt162 -TEXDEF txt162 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.25 0.640469 APEX 0.625 0.25 0.734531 RAD 0.0078125 - txt162 -TEXDEF txt162 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.25 0.75 RAD 0.03125 - txt162 -TEXDEF txt162 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.25 0.75 APEX 0.734531 0.25 0.75 RAD 0.0078125 - txt162 -TEXDEF txt162 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.265469 0.75 APEX 0.625 0.359531 0.75 RAD 0.0078125 - txt162 -TEXDEF txt162 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.25 0.765469 APEX 0.625 0.25 0.859531 RAD 0.0078125 - txt162 -TEXDEF txt162 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.25 0.875 RAD 0.03125 - txt162 -TEXDEF txt163 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.25 0.875 APEX 0.734531 0.25 0.875 RAD 0.0078125 - txt163 -TEXDEF txt163 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.265469 0.875 APEX 0.625 0.359531 0.875 RAD 0.0078125 - txt163 -TEXDEF txt163 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.25 0.890469 APEX 0.625 0.25 0.984531 RAD 0.0078125 - txt163 -TEXDEF txt163 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.25 1 RAD 0.03125 - txt163 -TEXDEF txt163 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.25 1 APEX 0.734531 0.25 1 RAD 0.0078125 - txt163 -TEXDEF txt163 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.265469 1 APEX 0.625 0.359531 1 RAD 0.0078125 - txt163 -TEXDEF txt163 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.375 0 RAD 0.03125 - txt163 -TEXDEF txt163 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.375 0 APEX 0.734531 0.375 0 RAD 0.0078125 - txt163 -TEXDEF txt163 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.390469 0 APEX 0.625 0.484531 0 RAD 0.0078125 - txt163 -TEXDEF txt163 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.375 0.0154687 APEX 0.625 0.375 0.109531 RAD 0.0078125 - txt163 -TEXDEF txt164 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.375 0.125 RAD 0.03125 - txt164 -TEXDEF txt164 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.375 0.125 APEX 0.734531 0.375 0.125 RAD 0.0078125 - txt164 -TEXDEF txt164 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.390469 0.125 APEX 0.625 0.484531 0.125 RAD 0.0078125 - txt164 -TEXDEF txt164 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.375 0.140469 APEX 0.625 0.375 0.234531 RAD 0.0078125 - txt164 -TEXDEF txt164 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.375 0.25 RAD 0.03125 - txt164 -TEXDEF txt164 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.375 0.25 APEX 0.734531 0.375 0.25 RAD 0.0078125 - txt164 -TEXDEF txt164 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.390469 0.25 APEX 0.625 0.484531 0.25 RAD 0.0078125 - txt164 -TEXDEF txt164 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.375 0.265469 APEX 0.625 0.375 0.359531 RAD 0.0078125 - txt164 -TEXDEF txt164 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.375 0.375 RAD 0.03125 - txt164 -TEXDEF txt164 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.375 0.375 APEX 0.734531 0.375 0.375 RAD 0.0078125 - txt164 -TEXDEF txt165 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.390469 0.375 APEX 0.625 0.484531 0.375 RAD 0.0078125 - txt165 -TEXDEF txt165 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.375 0.390469 APEX 0.625 0.375 0.484531 RAD 0.0078125 - txt165 -TEXDEF txt165 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.375 0.5 RAD 0.03125 - txt165 -TEXDEF txt165 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.375 0.5 APEX 0.734531 0.375 0.5 RAD 0.0078125 - txt165 -TEXDEF txt165 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.390469 0.5 APEX 0.625 0.484531 0.5 RAD 0.0078125 - txt165 -TEXDEF txt165 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.375 0.515469 APEX 0.625 0.375 0.609531 RAD 0.0078125 - txt165 -TEXDEF txt165 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.375 0.625 RAD 0.03125 - txt165 -TEXDEF txt165 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.375 0.625 APEX 0.734531 0.375 0.625 RAD 0.0078125 - txt165 -TEXDEF txt165 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.390469 0.625 APEX 0.625 0.484531 0.625 RAD 0.0078125 - txt165 -TEXDEF txt165 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.375 0.640469 APEX 0.625 0.375 0.734531 RAD 0.0078125 - txt165 -TEXDEF txt166 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.375 0.75 RAD 0.03125 - txt166 -TEXDEF txt166 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.375 0.75 APEX 0.734531 0.375 0.75 RAD 0.0078125 - txt166 -TEXDEF txt166 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.390469 0.75 APEX 0.625 0.484531 0.75 RAD 0.0078125 - txt166 -TEXDEF txt166 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.375 0.765469 APEX 0.625 0.375 0.859531 RAD 0.0078125 - txt166 -TEXDEF txt166 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.375 0.875 RAD 0.03125 - txt166 -TEXDEF txt166 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.375 0.875 APEX 0.734531 0.375 0.875 RAD 0.0078125 - txt166 -TEXDEF txt166 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.390469 0.875 APEX 0.625 0.484531 0.875 RAD 0.0078125 - txt166 -TEXDEF txt166 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.375 0.890469 APEX 0.625 0.375 0.984531 RAD 0.0078125 - txt166 -TEXDEF txt166 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.375 1 RAD 0.03125 - txt166 -TEXDEF txt166 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.375 1 APEX 0.734531 0.375 1 RAD 0.0078125 - txt166 -TEXDEF txt167 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.390469 1 APEX 0.625 0.484531 1 RAD 0.0078125 - txt167 -TEXDEF txt167 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.5 0 RAD 0.03125 - txt167 -TEXDEF txt167 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.5 0 APEX 0.734531 0.5 0 RAD 0.0078125 - txt167 -TEXDEF txt167 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.515469 0 APEX 0.625 0.609531 0 RAD 0.0078125 - txt167 -TEXDEF txt167 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.5 0.0154687 APEX 0.625 0.5 0.109531 RAD 0.0078125 - txt167 -TEXDEF txt167 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.5 0.125 RAD 0.03125 - txt167 -TEXDEF txt167 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.5 0.125 APEX 0.734531 0.5 0.125 RAD 0.0078125 - txt167 -TEXDEF txt167 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.515469 0.125 APEX 0.625 0.609531 0.125 RAD 0.0078125 - txt167 -TEXDEF txt167 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.5 0.140469 APEX 0.625 0.5 0.234531 RAD 0.0078125 - txt167 -TEXDEF txt167 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.5 0.25 RAD 0.03125 - txt167 -TEXDEF txt168 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.5 0.25 APEX 0.734531 0.5 0.25 RAD 0.0078125 - txt168 -TEXDEF txt168 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.515469 0.25 APEX 0.625 0.609531 0.25 RAD 0.0078125 - txt168 -TEXDEF txt168 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.5 0.265469 APEX 0.625 0.5 0.359531 RAD 0.0078125 - txt168 -TEXDEF txt168 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.5 0.375 RAD 0.03125 - txt168 -TEXDEF txt168 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.5 0.375 APEX 0.734531 0.5 0.375 RAD 0.0078125 - txt168 -TEXDEF txt168 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.515469 0.375 APEX 0.625 0.609531 0.375 RAD 0.0078125 - txt168 -TEXDEF txt168 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.5 0.390469 APEX 0.625 0.5 0.484531 RAD 0.0078125 - txt168 -TEXDEF txt168 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.5 0.5 RAD 0.03125 - txt168 -TEXDEF txt168 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.5 0.5 APEX 0.734531 0.5 0.5 RAD 0.0078125 - txt168 -TEXDEF txt168 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.515469 0.5 APEX 0.625 0.609531 0.5 RAD 0.0078125 - txt168 -TEXDEF txt169 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.5 0.515469 APEX 0.625 0.5 0.609531 RAD 0.0078125 - txt169 -TEXDEF txt169 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.5 0.625 RAD 0.03125 - txt169 -TEXDEF txt169 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.5 0.625 APEX 0.734531 0.5 0.625 RAD 0.0078125 - txt169 -TEXDEF txt169 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.515469 0.625 APEX 0.625 0.609531 0.625 RAD 0.0078125 - txt169 -TEXDEF txt169 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.5 0.640469 APEX 0.625 0.5 0.734531 RAD 0.0078125 - txt169 -TEXDEF txt169 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.5 0.75 RAD 0.03125 - txt169 -TEXDEF txt169 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.5 0.75 APEX 0.734531 0.5 0.75 RAD 0.0078125 - txt169 -TEXDEF txt169 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.515469 0.75 APEX 0.625 0.609531 0.75 RAD 0.0078125 - txt169 -TEXDEF txt169 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.5 0.765469 APEX 0.625 0.5 0.859531 RAD 0.0078125 - txt169 -TEXDEF txt169 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.5 0.875 RAD 0.03125 - txt169 -TEXDEF txt170 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.5 0.875 APEX 0.734531 0.5 0.875 RAD 0.0078125 - txt170 -TEXDEF txt170 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.515469 0.875 APEX 0.625 0.609531 0.875 RAD 0.0078125 - txt170 -TEXDEF txt170 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.5 0.890469 APEX 0.625 0.5 0.984531 RAD 0.0078125 - txt170 -TEXDEF txt170 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.5 1 RAD 0.03125 - txt170 -TEXDEF txt170 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.5 1 APEX 0.734531 0.5 1 RAD 0.0078125 - txt170 -TEXDEF txt170 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.515469 1 APEX 0.625 0.609531 1 RAD 0.0078125 - txt170 -TEXDEF txt170 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.625 0 RAD 0.03125 - txt170 -TEXDEF txt170 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.625 0 APEX 0.734531 0.625 0 RAD 0.0078125 - txt170 -TEXDEF txt170 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.640469 0 APEX 0.625 0.734531 0 RAD 0.0078125 - txt170 -TEXDEF txt170 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.625 0.0154687 APEX 0.625 0.625 0.109531 RAD 0.0078125 - txt170 -TEXDEF txt171 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.625 0.125 RAD 0.03125 - txt171 -TEXDEF txt171 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.625 0.125 APEX 0.734531 0.625 0.125 RAD 0.0078125 - txt171 -TEXDEF txt171 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.640469 0.125 APEX 0.625 0.734531 0.125 RAD 0.0078125 - txt171 -TEXDEF txt171 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.625 0.140469 APEX 0.625 0.625 0.234531 RAD 0.0078125 - txt171 -TEXDEF txt171 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.625 0.25 RAD 0.03125 - txt171 -TEXDEF txt171 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.625 0.25 APEX 0.734531 0.625 0.25 RAD 0.0078125 - txt171 -TEXDEF txt171 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.640469 0.25 APEX 0.625 0.734531 0.25 RAD 0.0078125 - txt171 -TEXDEF txt171 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.625 0.265469 APEX 0.625 0.625 0.359531 RAD 0.0078125 - txt171 -TEXDEF txt171 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.625 0.375 RAD 0.03125 - txt171 -TEXDEF txt171 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.625 0.375 APEX 0.734531 0.625 0.375 RAD 0.0078125 - txt171 -TEXDEF txt172 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.640469 0.375 APEX 0.625 0.734531 0.375 RAD 0.0078125 - txt172 -TEXDEF txt172 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.625 0.390469 APEX 0.625 0.625 0.484531 RAD 0.0078125 - txt172 -TEXDEF txt172 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.625 0.5 RAD 0.03125 - txt172 -TEXDEF txt172 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.625 0.5 APEX 0.734531 0.625 0.5 RAD 0.0078125 - txt172 -TEXDEF txt172 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.640469 0.5 APEX 0.625 0.734531 0.5 RAD 0.0078125 - txt172 -TEXDEF txt172 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.625 0.515469 APEX 0.625 0.625 0.609531 RAD 0.0078125 - txt172 -TEXDEF txt172 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.625 0.625 RAD 0.03125 - txt172 -TEXDEF txt172 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.625 0.625 APEX 0.734531 0.625 0.625 RAD 0.0078125 - txt172 -TEXDEF txt172 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.640469 0.625 APEX 0.625 0.734531 0.625 RAD 0.0078125 - txt172 -TEXDEF txt172 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.625 0.640469 APEX 0.625 0.625 0.734531 RAD 0.0078125 - txt172 -TEXDEF txt173 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.625 0.75 RAD 0.03125 - txt173 -TEXDEF txt173 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.625 0.75 APEX 0.734531 0.625 0.75 RAD 0.0078125 - txt173 -TEXDEF txt173 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.640469 0.75 APEX 0.625 0.734531 0.75 RAD 0.0078125 - txt173 -TEXDEF txt173 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.625 0.765469 APEX 0.625 0.625 0.859531 RAD 0.0078125 - txt173 -TEXDEF txt173 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.625 0.875 RAD 0.03125 - txt173 -TEXDEF txt173 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.625 0.875 APEX 0.734531 0.625 0.875 RAD 0.0078125 - txt173 -TEXDEF txt173 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.640469 0.875 APEX 0.625 0.734531 0.875 RAD 0.0078125 - txt173 -TEXDEF txt173 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.625 0.890469 APEX 0.625 0.625 0.984531 RAD 0.0078125 - txt173 -TEXDEF txt173 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.625 1 RAD 0.03125 - txt173 -TEXDEF txt173 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.625 1 APEX 0.734531 0.625 1 RAD 0.0078125 - txt173 -TEXDEF txt174 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.640469 1 APEX 0.625 0.734531 1 RAD 0.0078125 - txt174 -TEXDEF txt174 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.75 0 RAD 0.03125 - txt174 -TEXDEF txt174 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.75 0 APEX 0.734531 0.75 0 RAD 0.0078125 - txt174 -TEXDEF txt174 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.765469 0 APEX 0.625 0.859531 0 RAD 0.0078125 - txt174 -TEXDEF txt174 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.75 0.0154687 APEX 0.625 0.75 0.109531 RAD 0.0078125 - txt174 -TEXDEF txt174 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.75 0.125 RAD 0.03125 - txt174 -TEXDEF txt174 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.75 0.125 APEX 0.734531 0.75 0.125 RAD 0.0078125 - txt174 -TEXDEF txt174 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.765469 0.125 APEX 0.625 0.859531 0.125 RAD 0.0078125 - txt174 -TEXDEF txt174 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.75 0.140469 APEX 0.625 0.75 0.234531 RAD 0.0078125 - txt174 -TEXDEF txt174 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.75 0.25 RAD 0.03125 - txt174 -TEXDEF txt175 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.75 0.25 APEX 0.734531 0.75 0.25 RAD 0.0078125 - txt175 -TEXDEF txt175 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.765469 0.25 APEX 0.625 0.859531 0.25 RAD 0.0078125 - txt175 -TEXDEF txt175 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.75 0.265469 APEX 0.625 0.75 0.359531 RAD 0.0078125 - txt175 -TEXDEF txt175 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.75 0.375 RAD 0.03125 - txt175 -TEXDEF txt175 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.75 0.375 APEX 0.734531 0.75 0.375 RAD 0.0078125 - txt175 -TEXDEF txt175 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.765469 0.375 APEX 0.625 0.859531 0.375 RAD 0.0078125 - txt175 -TEXDEF txt175 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.75 0.390469 APEX 0.625 0.75 0.484531 RAD 0.0078125 - txt175 -TEXDEF txt175 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.75 0.5 RAD 0.03125 - txt175 -TEXDEF txt175 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.75 0.5 APEX 0.734531 0.75 0.5 RAD 0.0078125 - txt175 -TEXDEF txt175 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.765469 0.5 APEX 0.625 0.859531 0.5 RAD 0.0078125 - txt175 -TEXDEF txt176 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.75 0.515469 APEX 0.625 0.75 0.609531 RAD 0.0078125 - txt176 -TEXDEF txt176 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.75 0.625 RAD 0.03125 - txt176 -TEXDEF txt176 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.75 0.625 APEX 0.734531 0.75 0.625 RAD 0.0078125 - txt176 -TEXDEF txt176 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.765469 0.625 APEX 0.625 0.859531 0.625 RAD 0.0078125 - txt176 -TEXDEF txt176 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.75 0.640469 APEX 0.625 0.75 0.734531 RAD 0.0078125 - txt176 -TEXDEF txt176 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.75 0.75 RAD 0.03125 - txt176 -TEXDEF txt176 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.75 0.75 APEX 0.734531 0.75 0.75 RAD 0.0078125 - txt176 -TEXDEF txt176 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.765469 0.75 APEX 0.625 0.859531 0.75 RAD 0.0078125 - txt176 -TEXDEF txt176 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.75 0.765469 APEX 0.625 0.75 0.859531 RAD 0.0078125 - txt176 -TEXDEF txt176 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.75 0.875 RAD 0.03125 - txt176 -TEXDEF txt177 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.75 0.875 APEX 0.734531 0.75 0.875 RAD 0.0078125 - txt177 -TEXDEF txt177 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.765469 0.875 APEX 0.625 0.859531 0.875 RAD 0.0078125 - txt177 -TEXDEF txt177 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.75 0.890469 APEX 0.625 0.75 0.984531 RAD 0.0078125 - txt177 -TEXDEF txt177 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.75 1 RAD 0.03125 - txt177 -TEXDEF txt177 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.75 1 APEX 0.734531 0.75 1 RAD 0.0078125 - txt177 -TEXDEF txt177 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.765469 1 APEX 0.625 0.859531 1 RAD 0.0078125 - txt177 -TEXDEF txt177 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.875 0 RAD 0.03125 - txt177 -TEXDEF txt177 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.875 0 APEX 0.734531 0.875 0 RAD 0.0078125 - txt177 -TEXDEF txt177 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.890469 0 APEX 0.625 0.984531 0 RAD 0.0078125 - txt177 -TEXDEF txt177 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.875 0.0154687 APEX 0.625 0.875 0.109531 RAD 0.0078125 - txt177 -TEXDEF txt178 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.875 0.125 RAD 0.03125 - txt178 -TEXDEF txt178 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.875 0.125 APEX 0.734531 0.875 0.125 RAD 0.0078125 - txt178 -TEXDEF txt178 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.890469 0.125 APEX 0.625 0.984531 0.125 RAD 0.0078125 - txt178 -TEXDEF txt178 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.875 0.140469 APEX 0.625 0.875 0.234531 RAD 0.0078125 - txt178 -TEXDEF txt178 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.875 0.25 RAD 0.03125 - txt178 -TEXDEF txt178 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.875 0.25 APEX 0.734531 0.875 0.25 RAD 0.0078125 - txt178 -TEXDEF txt178 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.890469 0.25 APEX 0.625 0.984531 0.25 RAD 0.0078125 - txt178 -TEXDEF txt178 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.875 0.265469 APEX 0.625 0.875 0.359531 RAD 0.0078125 - txt178 -TEXDEF txt178 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.875 0.375 RAD 0.03125 - txt178 -TEXDEF txt178 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.875 0.375 APEX 0.734531 0.875 0.375 RAD 0.0078125 - txt178 -TEXDEF txt179 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.890469 0.375 APEX 0.625 0.984531 0.375 RAD 0.0078125 - txt179 -TEXDEF txt179 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.875 0.390469 APEX 0.625 0.875 0.484531 RAD 0.0078125 - txt179 -TEXDEF txt179 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.875 0.5 RAD 0.03125 - txt179 -TEXDEF txt179 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.875 0.5 APEX 0.734531 0.875 0.5 RAD 0.0078125 - txt179 -TEXDEF txt179 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.890469 0.5 APEX 0.625 0.984531 0.5 RAD 0.0078125 - txt179 -TEXDEF txt179 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.875 0.515469 APEX 0.625 0.875 0.609531 RAD 0.0078125 - txt179 -TEXDEF txt179 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.875 0.625 RAD 0.03125 - txt179 -TEXDEF txt179 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.875 0.625 APEX 0.734531 0.875 0.625 RAD 0.0078125 - txt179 -TEXDEF txt179 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.890469 0.625 APEX 0.625 0.984531 0.625 RAD 0.0078125 - txt179 -TEXDEF txt179 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.875 0.640469 APEX 0.625 0.875 0.734531 RAD 0.0078125 - txt179 -TEXDEF txt180 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.875 0.75 RAD 0.03125 - txt180 -TEXDEF txt180 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.875 0.75 APEX 0.734531 0.875 0.75 RAD 0.0078125 - txt180 -TEXDEF txt180 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.890469 0.75 APEX 0.625 0.984531 0.75 RAD 0.0078125 - txt180 -TEXDEF txt180 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.875 0.765469 APEX 0.625 0.875 0.859531 RAD 0.0078125 - txt180 -TEXDEF txt180 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.875 0.875 RAD 0.03125 - txt180 -TEXDEF txt180 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.875 0.875 APEX 0.734531 0.875 0.875 RAD 0.0078125 - txt180 -TEXDEF txt180 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.890469 0.875 APEX 0.625 0.984531 0.875 RAD 0.0078125 - txt180 -TEXDEF txt180 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.875 0.890469 APEX 0.625 0.875 0.984531 RAD 0.0078125 - txt180 -TEXDEF txt180 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 0.875 1 RAD 0.03125 - txt180 -TEXDEF txt180 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 0.875 1 APEX 0.734531 0.875 1 RAD 0.0078125 - txt180 -TEXDEF txt181 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 0.890469 1 APEX 0.625 0.984531 1 RAD 0.0078125 - txt181 -TEXDEF txt181 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 1 0 RAD 0.03125 - txt181 -TEXDEF txt181 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 1 0 APEX 0.734531 1 0 RAD 0.0078125 - txt181 -TEXDEF txt181 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 1 0.0154687 APEX 0.625 1 0.109531 RAD 0.0078125 - txt181 -TEXDEF txt181 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 1 0.125 RAD 0.03125 - txt181 -TEXDEF txt181 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 1 0.125 APEX 0.734531 1 0.125 RAD 0.0078125 - txt181 -TEXDEF txt181 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 1 0.140469 APEX 0.625 1 0.234531 RAD 0.0078125 - txt181 -TEXDEF txt181 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 1 0.25 RAD 0.03125 - txt181 -TEXDEF txt181 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 1 0.25 APEX 0.734531 1 0.25 RAD 0.0078125 - txt181 -TEXDEF txt181 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 1 0.265469 APEX 0.625 1 0.359531 RAD 0.0078125 - txt181 -TEXDEF txt182 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 1 0.375 RAD 0.03125 - txt182 -TEXDEF txt182 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 1 0.375 APEX 0.734531 1 0.375 RAD 0.0078125 - txt182 -TEXDEF txt182 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 1 0.390469 APEX 0.625 1 0.484531 RAD 0.0078125 - txt182 -TEXDEF txt182 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 1 0.5 RAD 0.03125 - txt182 -TEXDEF txt182 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 1 0.5 APEX 0.734531 1 0.5 RAD 0.0078125 - txt182 -TEXDEF txt182 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 1 0.515469 APEX 0.625 1 0.609531 RAD 0.0078125 - txt182 -TEXDEF txt182 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 1 0.625 RAD 0.03125 - txt182 -TEXDEF txt182 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 1 0.625 APEX 0.734531 1 0.625 RAD 0.0078125 - txt182 -TEXDEF txt182 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 1 0.640469 APEX 0.625 1 0.734531 RAD 0.0078125 - txt182 -TEXDEF txt182 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 1 0.75 RAD 0.03125 - txt182 -TEXDEF txt183 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 1 0.75 APEX 0.734531 1 0.75 RAD 0.0078125 - txt183 -TEXDEF txt183 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 1 0.765469 APEX 0.625 1 0.859531 RAD 0.0078125 - txt183 -TEXDEF txt183 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 1 0.875 RAD 0.03125 - txt183 -TEXDEF txt183 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 1 0.875 APEX 0.734531 1 0.875 RAD 0.0078125 - txt183 -TEXDEF txt183 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.625 1 0.890469 APEX 0.625 1 0.984531 RAD 0.0078125 - txt183 -TEXDEF txt183 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.625 1 1 RAD 0.03125 - txt183 -TEXDEF txt183 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.640469 1 1 APEX 0.734531 1 1 RAD 0.0078125 - txt183 -TEXDEF txt183 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0 0 RAD 0.03125 - txt183 -TEXDEF txt183 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0 0 APEX 0.859531 0 0 RAD 0.0078125 - txt183 -TEXDEF txt183 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.0154687 0 APEX 0.75 0.109531 0 RAD 0.0078125 - txt183 -TEXDEF txt184 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0 0.0154687 APEX 0.75 0 0.109531 RAD 0.0078125 - txt184 -TEXDEF txt184 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0 0.125 RAD 0.03125 - txt184 -TEXDEF txt184 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0 0.125 APEX 0.859531 0 0.125 RAD 0.0078125 - txt184 -TEXDEF txt184 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.0154687 0.125 APEX 0.75 0.109531 0.125 RAD 0.0078125 - txt184 -TEXDEF txt184 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0 0.140469 APEX 0.75 0 0.234531 RAD 0.0078125 - txt184 -TEXDEF txt184 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0 0.25 RAD 0.03125 - txt184 -TEXDEF txt184 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0 0.25 APEX 0.859531 0 0.25 RAD 0.0078125 - txt184 -TEXDEF txt184 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.0154687 0.25 APEX 0.75 0.109531 0.25 RAD 0.0078125 - txt184 -TEXDEF txt184 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0 0.265469 APEX 0.75 0 0.359531 RAD 0.0078125 - txt184 -TEXDEF txt184 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0 0.375 RAD 0.03125 - txt184 -TEXDEF txt185 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0 0.375 APEX 0.859531 0 0.375 RAD 0.0078125 - txt185 -TEXDEF txt185 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.0154687 0.375 APEX 0.75 0.109531 0.375 RAD 0.0078125 - txt185 -TEXDEF txt185 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0 0.390469 APEX 0.75 0 0.484531 RAD 0.0078125 - txt185 -TEXDEF txt185 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0 0.5 RAD 0.03125 - txt185 -TEXDEF txt185 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0 0.5 APEX 0.859531 0 0.5 RAD 0.0078125 - txt185 -TEXDEF txt185 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.0154687 0.5 APEX 0.75 0.109531 0.5 RAD 0.0078125 - txt185 -TEXDEF txt185 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0 0.515469 APEX 0.75 0 0.609531 RAD 0.0078125 - txt185 -TEXDEF txt185 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0 0.625 RAD 0.03125 - txt185 -TEXDEF txt185 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0 0.625 APEX 0.859531 0 0.625 RAD 0.0078125 - txt185 -TEXDEF txt185 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.0154687 0.625 APEX 0.75 0.109531 0.625 RAD 0.0078125 - txt185 -TEXDEF txt186 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0 0.640469 APEX 0.75 0 0.734531 RAD 0.0078125 - txt186 -TEXDEF txt186 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0 0.75 RAD 0.03125 - txt186 -TEXDEF txt186 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0 0.75 APEX 0.859531 0 0.75 RAD 0.0078125 - txt186 -TEXDEF txt186 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.0154687 0.75 APEX 0.75 0.109531 0.75 RAD 0.0078125 - txt186 -TEXDEF txt186 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0 0.765469 APEX 0.75 0 0.859531 RAD 0.0078125 - txt186 -TEXDEF txt186 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0 0.875 RAD 0.03125 - txt186 -TEXDEF txt186 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0 0.875 APEX 0.859531 0 0.875 RAD 0.0078125 - txt186 -TEXDEF txt186 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.0154687 0.875 APEX 0.75 0.109531 0.875 RAD 0.0078125 - txt186 -TEXDEF txt186 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0 0.890469 APEX 0.75 0 0.984531 RAD 0.0078125 - txt186 -TEXDEF txt186 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0 1 RAD 0.03125 - txt186 -TEXDEF txt187 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0 1 APEX 0.859531 0 1 RAD 0.0078125 - txt187 -TEXDEF txt187 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.0154687 1 APEX 0.75 0.109531 1 RAD 0.0078125 - txt187 -TEXDEF txt187 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.125 0 RAD 0.03125 - txt187 -TEXDEF txt187 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.125 0 APEX 0.859531 0.125 0 RAD 0.0078125 - txt187 -TEXDEF txt187 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.140469 0 APEX 0.75 0.234531 0 RAD 0.0078125 - txt187 -TEXDEF txt187 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.125 0.0154687 APEX 0.75 0.125 0.109531 RAD 0.0078125 - txt187 -TEXDEF txt187 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.125 0.125 RAD 0.03125 - txt187 -TEXDEF txt187 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.125 0.125 APEX 0.859531 0.125 0.125 RAD 0.0078125 - txt187 -TEXDEF txt187 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.140469 0.125 APEX 0.75 0.234531 0.125 RAD 0.0078125 - txt187 -TEXDEF txt187 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.125 0.140469 APEX 0.75 0.125 0.234531 RAD 0.0078125 - txt187 -TEXDEF txt188 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.125 0.25 RAD 0.03125 - txt188 -TEXDEF txt188 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.125 0.25 APEX 0.859531 0.125 0.25 RAD 0.0078125 - txt188 -TEXDEF txt188 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.140469 0.25 APEX 0.75 0.234531 0.25 RAD 0.0078125 - txt188 -TEXDEF txt188 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.125 0.265469 APEX 0.75 0.125 0.359531 RAD 0.0078125 - txt188 -TEXDEF txt188 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.125 0.375 RAD 0.03125 - txt188 -TEXDEF txt188 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.125 0.375 APEX 0.859531 0.125 0.375 RAD 0.0078125 - txt188 -TEXDEF txt188 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.140469 0.375 APEX 0.75 0.234531 0.375 RAD 0.0078125 - txt188 -TEXDEF txt188 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.125 0.390469 APEX 0.75 0.125 0.484531 RAD 0.0078125 - txt188 -TEXDEF txt188 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.125 0.5 RAD 0.03125 - txt188 -TEXDEF txt188 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.125 0.5 APEX 0.859531 0.125 0.5 RAD 0.0078125 - txt188 -TEXDEF txt189 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.140469 0.5 APEX 0.75 0.234531 0.5 RAD 0.0078125 - txt189 -TEXDEF txt189 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.125 0.515469 APEX 0.75 0.125 0.609531 RAD 0.0078125 - txt189 -TEXDEF txt189 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.125 0.625 RAD 0.03125 - txt189 -TEXDEF txt189 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.125 0.625 APEX 0.859531 0.125 0.625 RAD 0.0078125 - txt189 -TEXDEF txt189 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.140469 0.625 APEX 0.75 0.234531 0.625 RAD 0.0078125 - txt189 -TEXDEF txt189 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.125 0.640469 APEX 0.75 0.125 0.734531 RAD 0.0078125 - txt189 -TEXDEF txt189 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.125 0.75 RAD 0.03125 - txt189 -TEXDEF txt189 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.125 0.75 APEX 0.859531 0.125 0.75 RAD 0.0078125 - txt189 -TEXDEF txt189 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.140469 0.75 APEX 0.75 0.234531 0.75 RAD 0.0078125 - txt189 -TEXDEF txt189 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.125 0.765469 APEX 0.75 0.125 0.859531 RAD 0.0078125 - txt189 -TEXDEF txt190 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.125 0.875 RAD 0.03125 - txt190 -TEXDEF txt190 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.125 0.875 APEX 0.859531 0.125 0.875 RAD 0.0078125 - txt190 -TEXDEF txt190 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.140469 0.875 APEX 0.75 0.234531 0.875 RAD 0.0078125 - txt190 -TEXDEF txt190 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.125 0.890469 APEX 0.75 0.125 0.984531 RAD 0.0078125 - txt190 -TEXDEF txt190 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.125 1 RAD 0.03125 - txt190 -TEXDEF txt190 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.125 1 APEX 0.859531 0.125 1 RAD 0.0078125 - txt190 -TEXDEF txt190 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.140469 1 APEX 0.75 0.234531 1 RAD 0.0078125 - txt190 -TEXDEF txt190 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.25 0 RAD 0.03125 - txt190 -TEXDEF txt190 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.25 0 APEX 0.859531 0.25 0 RAD 0.0078125 - txt190 -TEXDEF txt190 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.265469 0 APEX 0.75 0.359531 0 RAD 0.0078125 - txt190 -TEXDEF txt191 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.25 0.0154687 APEX 0.75 0.25 0.109531 RAD 0.0078125 - txt191 -TEXDEF txt191 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.25 0.125 RAD 0.03125 - txt191 -TEXDEF txt191 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.25 0.125 APEX 0.859531 0.25 0.125 RAD 0.0078125 - txt191 -TEXDEF txt191 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.265469 0.125 APEX 0.75 0.359531 0.125 RAD 0.0078125 - txt191 -TEXDEF txt191 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.25 0.140469 APEX 0.75 0.25 0.234531 RAD 0.0078125 - txt191 -TEXDEF txt191 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.25 0.25 RAD 0.03125 - txt191 -TEXDEF txt191 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.25 0.25 APEX 0.859531 0.25 0.25 RAD 0.0078125 - txt191 -TEXDEF txt191 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.265469 0.25 APEX 0.75 0.359531 0.25 RAD 0.0078125 - txt191 -TEXDEF txt191 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.25 0.265469 APEX 0.75 0.25 0.359531 RAD 0.0078125 - txt191 -TEXDEF txt191 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.25 0.375 RAD 0.03125 - txt191 -TEXDEF txt192 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.25 0.375 APEX 0.859531 0.25 0.375 RAD 0.0078125 - txt192 -TEXDEF txt192 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.265469 0.375 APEX 0.75 0.359531 0.375 RAD 0.0078125 - txt192 -TEXDEF txt192 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.25 0.390469 APEX 0.75 0.25 0.484531 RAD 0.0078125 - txt192 -TEXDEF txt192 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.25 0.5 RAD 0.03125 - txt192 -TEXDEF txt192 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.25 0.5 APEX 0.859531 0.25 0.5 RAD 0.0078125 - txt192 -TEXDEF txt192 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.265469 0.5 APEX 0.75 0.359531 0.5 RAD 0.0078125 - txt192 -TEXDEF txt192 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.25 0.515469 APEX 0.75 0.25 0.609531 RAD 0.0078125 - txt192 -TEXDEF txt192 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.25 0.625 RAD 0.03125 - txt192 -TEXDEF txt192 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.25 0.625 APEX 0.859531 0.25 0.625 RAD 0.0078125 - txt192 -TEXDEF txt192 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.265469 0.625 APEX 0.75 0.359531 0.625 RAD 0.0078125 - txt192 -TEXDEF txt193 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.25 0.640469 APEX 0.75 0.25 0.734531 RAD 0.0078125 - txt193 -TEXDEF txt193 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.25 0.75 RAD 0.03125 - txt193 -TEXDEF txt193 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.25 0.75 APEX 0.859531 0.25 0.75 RAD 0.0078125 - txt193 -TEXDEF txt193 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.265469 0.75 APEX 0.75 0.359531 0.75 RAD 0.0078125 - txt193 -TEXDEF txt193 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.25 0.765469 APEX 0.75 0.25 0.859531 RAD 0.0078125 - txt193 -TEXDEF txt193 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.25 0.875 RAD 0.03125 - txt193 -TEXDEF txt193 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.25 0.875 APEX 0.859531 0.25 0.875 RAD 0.0078125 - txt193 -TEXDEF txt193 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.265469 0.875 APEX 0.75 0.359531 0.875 RAD 0.0078125 - txt193 -TEXDEF txt193 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.25 0.890469 APEX 0.75 0.25 0.984531 RAD 0.0078125 - txt193 -TEXDEF txt193 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.25 1 RAD 0.03125 - txt193 -TEXDEF txt194 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.25 1 APEX 0.859531 0.25 1 RAD 0.0078125 - txt194 -TEXDEF txt194 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.265469 1 APEX 0.75 0.359531 1 RAD 0.0078125 - txt194 -TEXDEF txt194 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.375 0 RAD 0.03125 - txt194 -TEXDEF txt194 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.375 0 APEX 0.859531 0.375 0 RAD 0.0078125 - txt194 -TEXDEF txt194 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.390469 0 APEX 0.75 0.484531 0 RAD 0.0078125 - txt194 -TEXDEF txt194 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.375 0.0154687 APEX 0.75 0.375 0.109531 RAD 0.0078125 - txt194 -TEXDEF txt194 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.375 0.125 RAD 0.03125 - txt194 -TEXDEF txt194 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.375 0.125 APEX 0.859531 0.375 0.125 RAD 0.0078125 - txt194 -TEXDEF txt194 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.390469 0.125 APEX 0.75 0.484531 0.125 RAD 0.0078125 - txt194 -TEXDEF txt194 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.375 0.140469 APEX 0.75 0.375 0.234531 RAD 0.0078125 - txt194 -TEXDEF txt195 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.375 0.25 RAD 0.03125 - txt195 -TEXDEF txt195 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.375 0.25 APEX 0.859531 0.375 0.25 RAD 0.0078125 - txt195 -TEXDEF txt195 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.390469 0.25 APEX 0.75 0.484531 0.25 RAD 0.0078125 - txt195 -TEXDEF txt195 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.375 0.265469 APEX 0.75 0.375 0.359531 RAD 0.0078125 - txt195 -TEXDEF txt195 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.375 0.375 RAD 0.03125 - txt195 -TEXDEF txt195 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.375 0.375 APEX 0.859531 0.375 0.375 RAD 0.0078125 - txt195 -TEXDEF txt195 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.390469 0.375 APEX 0.75 0.484531 0.375 RAD 0.0078125 - txt195 -TEXDEF txt195 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.375 0.390469 APEX 0.75 0.375 0.484531 RAD 0.0078125 - txt195 -TEXDEF txt195 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.375 0.5 RAD 0.03125 - txt195 -TEXDEF txt195 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.375 0.5 APEX 0.859531 0.375 0.5 RAD 0.0078125 - txt195 -TEXDEF txt196 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.390469 0.5 APEX 0.75 0.484531 0.5 RAD 0.0078125 - txt196 -TEXDEF txt196 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.375 0.515469 APEX 0.75 0.375 0.609531 RAD 0.0078125 - txt196 -TEXDEF txt196 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.375 0.625 RAD 0.03125 - txt196 -TEXDEF txt196 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.375 0.625 APEX 0.859531 0.375 0.625 RAD 0.0078125 - txt196 -TEXDEF txt196 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.390469 0.625 APEX 0.75 0.484531 0.625 RAD 0.0078125 - txt196 -TEXDEF txt196 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.375 0.640469 APEX 0.75 0.375 0.734531 RAD 0.0078125 - txt196 -TEXDEF txt196 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.375 0.75 RAD 0.03125 - txt196 -TEXDEF txt196 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.375 0.75 APEX 0.859531 0.375 0.75 RAD 0.0078125 - txt196 -TEXDEF txt196 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.390469 0.75 APEX 0.75 0.484531 0.75 RAD 0.0078125 - txt196 -TEXDEF txt196 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.375 0.765469 APEX 0.75 0.375 0.859531 RAD 0.0078125 - txt196 -TEXDEF txt197 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.375 0.875 RAD 0.03125 - txt197 -TEXDEF txt197 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.375 0.875 APEX 0.859531 0.375 0.875 RAD 0.0078125 - txt197 -TEXDEF txt197 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.390469 0.875 APEX 0.75 0.484531 0.875 RAD 0.0078125 - txt197 -TEXDEF txt197 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.375 0.890469 APEX 0.75 0.375 0.984531 RAD 0.0078125 - txt197 -TEXDEF txt197 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.375 1 RAD 0.03125 - txt197 -TEXDEF txt197 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.375 1 APEX 0.859531 0.375 1 RAD 0.0078125 - txt197 -TEXDEF txt197 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.390469 1 APEX 0.75 0.484531 1 RAD 0.0078125 - txt197 -TEXDEF txt197 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.5 0 RAD 0.03125 - txt197 -TEXDEF txt197 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.5 0 APEX 0.859531 0.5 0 RAD 0.0078125 - txt197 -TEXDEF txt197 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.515469 0 APEX 0.75 0.609531 0 RAD 0.0078125 - txt197 -TEXDEF txt198 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.5 0.0154687 APEX 0.75 0.5 0.109531 RAD 0.0078125 - txt198 -TEXDEF txt198 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.5 0.125 RAD 0.03125 - txt198 -TEXDEF txt198 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.5 0.125 APEX 0.859531 0.5 0.125 RAD 0.0078125 - txt198 -TEXDEF txt198 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.515469 0.125 APEX 0.75 0.609531 0.125 RAD 0.0078125 - txt198 -TEXDEF txt198 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.5 0.140469 APEX 0.75 0.5 0.234531 RAD 0.0078125 - txt198 -TEXDEF txt198 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.5 0.25 RAD 0.03125 - txt198 -TEXDEF txt198 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.5 0.25 APEX 0.859531 0.5 0.25 RAD 0.0078125 - txt198 -TEXDEF txt198 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.515469 0.25 APEX 0.75 0.609531 0.25 RAD 0.0078125 - txt198 -TEXDEF txt198 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.5 0.265469 APEX 0.75 0.5 0.359531 RAD 0.0078125 - txt198 -TEXDEF txt198 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.5 0.375 RAD 0.03125 - txt198 -TEXDEF txt199 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.5 0.375 APEX 0.859531 0.5 0.375 RAD 0.0078125 - txt199 -TEXDEF txt199 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.515469 0.375 APEX 0.75 0.609531 0.375 RAD 0.0078125 - txt199 -TEXDEF txt199 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.5 0.390469 APEX 0.75 0.5 0.484531 RAD 0.0078125 - txt199 -TEXDEF txt199 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.5 0.5 RAD 0.03125 - txt199 -TEXDEF txt199 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.5 0.5 APEX 0.859531 0.5 0.5 RAD 0.0078125 - txt199 -TEXDEF txt199 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.515469 0.5 APEX 0.75 0.609531 0.5 RAD 0.0078125 - txt199 -TEXDEF txt199 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.5 0.515469 APEX 0.75 0.5 0.609531 RAD 0.0078125 - txt199 -TEXDEF txt199 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.5 0.625 RAD 0.03125 - txt199 -TEXDEF txt199 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.5 0.625 APEX 0.859531 0.5 0.625 RAD 0.0078125 - txt199 -TEXDEF txt199 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.515469 0.625 APEX 0.75 0.609531 0.625 RAD 0.0078125 - txt199 -TEXDEF txt200 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.5 0.640469 APEX 0.75 0.5 0.734531 RAD 0.0078125 - txt200 -TEXDEF txt200 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.5 0.75 RAD 0.03125 - txt200 -TEXDEF txt200 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.5 0.75 APEX 0.859531 0.5 0.75 RAD 0.0078125 - txt200 -TEXDEF txt200 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.515469 0.75 APEX 0.75 0.609531 0.75 RAD 0.0078125 - txt200 -TEXDEF txt200 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.5 0.765469 APEX 0.75 0.5 0.859531 RAD 0.0078125 - txt200 -TEXDEF txt200 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.5 0.875 RAD 0.03125 - txt200 -TEXDEF txt200 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.5 0.875 APEX 0.859531 0.5 0.875 RAD 0.0078125 - txt200 -TEXDEF txt200 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.515469 0.875 APEX 0.75 0.609531 0.875 RAD 0.0078125 - txt200 -TEXDEF txt200 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.5 0.890469 APEX 0.75 0.5 0.984531 RAD 0.0078125 - txt200 -TEXDEF txt200 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.5 1 RAD 0.03125 - txt200 -TEXDEF txt201 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.5 1 APEX 0.859531 0.5 1 RAD 0.0078125 - txt201 -TEXDEF txt201 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.515469 1 APEX 0.75 0.609531 1 RAD 0.0078125 - txt201 -TEXDEF txt201 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.625 0 RAD 0.03125 - txt201 -TEXDEF txt201 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.625 0 APEX 0.859531 0.625 0 RAD 0.0078125 - txt201 -TEXDEF txt201 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.640469 0 APEX 0.75 0.734531 0 RAD 0.0078125 - txt201 -TEXDEF txt201 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.625 0.0154687 APEX 0.75 0.625 0.109531 RAD 0.0078125 - txt201 -TEXDEF txt201 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.625 0.125 RAD 0.03125 - txt201 -TEXDEF txt201 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.625 0.125 APEX 0.859531 0.625 0.125 RAD 0.0078125 - txt201 -TEXDEF txt201 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.640469 0.125 APEX 0.75 0.734531 0.125 RAD 0.0078125 - txt201 -TEXDEF txt201 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.625 0.140469 APEX 0.75 0.625 0.234531 RAD 0.0078125 - txt201 -TEXDEF txt202 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.625 0.25 RAD 0.03125 - txt202 -TEXDEF txt202 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.625 0.25 APEX 0.859531 0.625 0.25 RAD 0.0078125 - txt202 -TEXDEF txt202 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.640469 0.25 APEX 0.75 0.734531 0.25 RAD 0.0078125 - txt202 -TEXDEF txt202 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.625 0.265469 APEX 0.75 0.625 0.359531 RAD 0.0078125 - txt202 -TEXDEF txt202 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.625 0.375 RAD 0.03125 - txt202 -TEXDEF txt202 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.625 0.375 APEX 0.859531 0.625 0.375 RAD 0.0078125 - txt202 -TEXDEF txt202 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.640469 0.375 APEX 0.75 0.734531 0.375 RAD 0.0078125 - txt202 -TEXDEF txt202 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.625 0.390469 APEX 0.75 0.625 0.484531 RAD 0.0078125 - txt202 -TEXDEF txt202 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.625 0.5 RAD 0.03125 - txt202 -TEXDEF txt202 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.625 0.5 APEX 0.859531 0.625 0.5 RAD 0.0078125 - txt202 -TEXDEF txt203 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.640469 0.5 APEX 0.75 0.734531 0.5 RAD 0.0078125 - txt203 -TEXDEF txt203 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.625 0.515469 APEX 0.75 0.625 0.609531 RAD 0.0078125 - txt203 -TEXDEF txt203 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.625 0.625 RAD 0.03125 - txt203 -TEXDEF txt203 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.625 0.625 APEX 0.859531 0.625 0.625 RAD 0.0078125 - txt203 -TEXDEF txt203 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.640469 0.625 APEX 0.75 0.734531 0.625 RAD 0.0078125 - txt203 -TEXDEF txt203 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.625 0.640469 APEX 0.75 0.625 0.734531 RAD 0.0078125 - txt203 -TEXDEF txt203 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.625 0.75 RAD 0.03125 - txt203 -TEXDEF txt203 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.625 0.75 APEX 0.859531 0.625 0.75 RAD 0.0078125 - txt203 -TEXDEF txt203 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.640469 0.75 APEX 0.75 0.734531 0.75 RAD 0.0078125 - txt203 -TEXDEF txt203 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.625 0.765469 APEX 0.75 0.625 0.859531 RAD 0.0078125 - txt203 -TEXDEF txt204 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.625 0.875 RAD 0.03125 - txt204 -TEXDEF txt204 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.625 0.875 APEX 0.859531 0.625 0.875 RAD 0.0078125 - txt204 -TEXDEF txt204 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.640469 0.875 APEX 0.75 0.734531 0.875 RAD 0.0078125 - txt204 -TEXDEF txt204 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.625 0.890469 APEX 0.75 0.625 0.984531 RAD 0.0078125 - txt204 -TEXDEF txt204 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.625 1 RAD 0.03125 - txt204 -TEXDEF txt204 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.625 1 APEX 0.859531 0.625 1 RAD 0.0078125 - txt204 -TEXDEF txt204 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.640469 1 APEX 0.75 0.734531 1 RAD 0.0078125 - txt204 -TEXDEF txt204 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.75 0 RAD 0.03125 - txt204 -TEXDEF txt204 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.75 0 APEX 0.859531 0.75 0 RAD 0.0078125 - txt204 -TEXDEF txt204 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.765469 0 APEX 0.75 0.859531 0 RAD 0.0078125 - txt204 -TEXDEF txt205 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.75 0.0154687 APEX 0.75 0.75 0.109531 RAD 0.0078125 - txt205 -TEXDEF txt205 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.75 0.125 RAD 0.03125 - txt205 -TEXDEF txt205 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.75 0.125 APEX 0.859531 0.75 0.125 RAD 0.0078125 - txt205 -TEXDEF txt205 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.765469 0.125 APEX 0.75 0.859531 0.125 RAD 0.0078125 - txt205 -TEXDEF txt205 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.75 0.140469 APEX 0.75 0.75 0.234531 RAD 0.0078125 - txt205 -TEXDEF txt205 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.75 0.25 RAD 0.03125 - txt205 -TEXDEF txt205 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.75 0.25 APEX 0.859531 0.75 0.25 RAD 0.0078125 - txt205 -TEXDEF txt205 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.765469 0.25 APEX 0.75 0.859531 0.25 RAD 0.0078125 - txt205 -TEXDEF txt205 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.75 0.265469 APEX 0.75 0.75 0.359531 RAD 0.0078125 - txt205 -TEXDEF txt205 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.75 0.375 RAD 0.03125 - txt205 -TEXDEF txt206 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.75 0.375 APEX 0.859531 0.75 0.375 RAD 0.0078125 - txt206 -TEXDEF txt206 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.765469 0.375 APEX 0.75 0.859531 0.375 RAD 0.0078125 - txt206 -TEXDEF txt206 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.75 0.390469 APEX 0.75 0.75 0.484531 RAD 0.0078125 - txt206 -TEXDEF txt206 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.75 0.5 RAD 0.03125 - txt206 -TEXDEF txt206 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.75 0.5 APEX 0.859531 0.75 0.5 RAD 0.0078125 - txt206 -TEXDEF txt206 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.765469 0.5 APEX 0.75 0.859531 0.5 RAD 0.0078125 - txt206 -TEXDEF txt206 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.75 0.515469 APEX 0.75 0.75 0.609531 RAD 0.0078125 - txt206 -TEXDEF txt206 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.75 0.625 RAD 0.03125 - txt206 -TEXDEF txt206 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.75 0.625 APEX 0.859531 0.75 0.625 RAD 0.0078125 - txt206 -TEXDEF txt206 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.765469 0.625 APEX 0.75 0.859531 0.625 RAD 0.0078125 - txt206 -TEXDEF txt207 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.75 0.640469 APEX 0.75 0.75 0.734531 RAD 0.0078125 - txt207 -TEXDEF txt207 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.75 0.75 RAD 0.03125 - txt207 -TEXDEF txt207 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.75 0.75 APEX 0.859531 0.75 0.75 RAD 0.0078125 - txt207 -TEXDEF txt207 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.765469 0.75 APEX 0.75 0.859531 0.75 RAD 0.0078125 - txt207 -TEXDEF txt207 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.75 0.765469 APEX 0.75 0.75 0.859531 RAD 0.0078125 - txt207 -TEXDEF txt207 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.75 0.875 RAD 0.03125 - txt207 -TEXDEF txt207 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.75 0.875 APEX 0.859531 0.75 0.875 RAD 0.0078125 - txt207 -TEXDEF txt207 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.765469 0.875 APEX 0.75 0.859531 0.875 RAD 0.0078125 - txt207 -TEXDEF txt207 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.75 0.890469 APEX 0.75 0.75 0.984531 RAD 0.0078125 - txt207 -TEXDEF txt207 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.75 1 RAD 0.03125 - txt207 -TEXDEF txt208 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.75 1 APEX 0.859531 0.75 1 RAD 0.0078125 - txt208 -TEXDEF txt208 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.765469 1 APEX 0.75 0.859531 1 RAD 0.0078125 - txt208 -TEXDEF txt208 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.875 0 RAD 0.03125 - txt208 -TEXDEF txt208 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.875 0 APEX 0.859531 0.875 0 RAD 0.0078125 - txt208 -TEXDEF txt208 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.890469 0 APEX 0.75 0.984531 0 RAD 0.0078125 - txt208 -TEXDEF txt208 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.875 0.0154687 APEX 0.75 0.875 0.109531 RAD 0.0078125 - txt208 -TEXDEF txt208 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.875 0.125 RAD 0.03125 - txt208 -TEXDEF txt208 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.875 0.125 APEX 0.859531 0.875 0.125 RAD 0.0078125 - txt208 -TEXDEF txt208 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.890469 0.125 APEX 0.75 0.984531 0.125 RAD 0.0078125 - txt208 -TEXDEF txt208 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.875 0.140469 APEX 0.75 0.875 0.234531 RAD 0.0078125 - txt208 -TEXDEF txt209 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.875 0.25 RAD 0.03125 - txt209 -TEXDEF txt209 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.875 0.25 APEX 0.859531 0.875 0.25 RAD 0.0078125 - txt209 -TEXDEF txt209 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.890469 0.25 APEX 0.75 0.984531 0.25 RAD 0.0078125 - txt209 -TEXDEF txt209 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.875 0.265469 APEX 0.75 0.875 0.359531 RAD 0.0078125 - txt209 -TEXDEF txt209 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.875 0.375 RAD 0.03125 - txt209 -TEXDEF txt209 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.875 0.375 APEX 0.859531 0.875 0.375 RAD 0.0078125 - txt209 -TEXDEF txt209 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.890469 0.375 APEX 0.75 0.984531 0.375 RAD 0.0078125 - txt209 -TEXDEF txt209 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.875 0.390469 APEX 0.75 0.875 0.484531 RAD 0.0078125 - txt209 -TEXDEF txt209 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.875 0.5 RAD 0.03125 - txt209 -TEXDEF txt209 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.875 0.5 APEX 0.859531 0.875 0.5 RAD 0.0078125 - txt209 -TEXDEF txt210 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.890469 0.5 APEX 0.75 0.984531 0.5 RAD 0.0078125 - txt210 -TEXDEF txt210 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.875 0.515469 APEX 0.75 0.875 0.609531 RAD 0.0078125 - txt210 -TEXDEF txt210 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.875 0.625 RAD 0.03125 - txt210 -TEXDEF txt210 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.875 0.625 APEX 0.859531 0.875 0.625 RAD 0.0078125 - txt210 -TEXDEF txt210 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.890469 0.625 APEX 0.75 0.984531 0.625 RAD 0.0078125 - txt210 -TEXDEF txt210 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.875 0.640469 APEX 0.75 0.875 0.734531 RAD 0.0078125 - txt210 -TEXDEF txt210 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.875 0.75 RAD 0.03125 - txt210 -TEXDEF txt210 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.875 0.75 APEX 0.859531 0.875 0.75 RAD 0.0078125 - txt210 -TEXDEF txt210 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.890469 0.75 APEX 0.75 0.984531 0.75 RAD 0.0078125 - txt210 -TEXDEF txt210 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.875 0.765469 APEX 0.75 0.875 0.859531 RAD 0.0078125 - txt210 -TEXDEF txt211 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.875 0.875 RAD 0.03125 - txt211 -TEXDEF txt211 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.875 0.875 APEX 0.859531 0.875 0.875 RAD 0.0078125 - txt211 -TEXDEF txt211 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.890469 0.875 APEX 0.75 0.984531 0.875 RAD 0.0078125 - txt211 -TEXDEF txt211 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.875 0.890469 APEX 0.75 0.875 0.984531 RAD 0.0078125 - txt211 -TEXDEF txt211 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 0.875 1 RAD 0.03125 - txt211 -TEXDEF txt211 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 0.875 1 APEX 0.859531 0.875 1 RAD 0.0078125 - txt211 -TEXDEF txt211 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 0.890469 1 APEX 0.75 0.984531 1 RAD 0.0078125 - txt211 -TEXDEF txt211 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 1 0 RAD 0.03125 - txt211 -TEXDEF txt211 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 1 0 APEX 0.859531 1 0 RAD 0.0078125 - txt211 -TEXDEF txt211 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 1 0.0154687 APEX 0.75 1 0.109531 RAD 0.0078125 - txt211 -TEXDEF txt212 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 1 0.125 RAD 0.03125 - txt212 -TEXDEF txt212 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 1 0.125 APEX 0.859531 1 0.125 RAD 0.0078125 - txt212 -TEXDEF txt212 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 1 0.140469 APEX 0.75 1 0.234531 RAD 0.0078125 - txt212 -TEXDEF txt212 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 1 0.25 RAD 0.03125 - txt212 -TEXDEF txt212 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 1 0.25 APEX 0.859531 1 0.25 RAD 0.0078125 - txt212 -TEXDEF txt212 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 1 0.265469 APEX 0.75 1 0.359531 RAD 0.0078125 - txt212 -TEXDEF txt212 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 1 0.375 RAD 0.03125 - txt212 -TEXDEF txt212 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 1 0.375 APEX 0.859531 1 0.375 RAD 0.0078125 - txt212 -TEXDEF txt212 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 1 0.390469 APEX 0.75 1 0.484531 RAD 0.0078125 - txt212 -TEXDEF txt212 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 1 0.5 RAD 0.03125 - txt212 -TEXDEF txt213 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 1 0.5 APEX 0.859531 1 0.5 RAD 0.0078125 - txt213 -TEXDEF txt213 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 1 0.515469 APEX 0.75 1 0.609531 RAD 0.0078125 - txt213 -TEXDEF txt213 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 1 0.625 RAD 0.03125 - txt213 -TEXDEF txt213 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 1 0.625 APEX 0.859531 1 0.625 RAD 0.0078125 - txt213 -TEXDEF txt213 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 1 0.640469 APEX 0.75 1 0.734531 RAD 0.0078125 - txt213 -TEXDEF txt213 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 1 0.75 RAD 0.03125 - txt213 -TEXDEF txt213 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 1 0.75 APEX 0.859531 1 0.75 RAD 0.0078125 - txt213 -TEXDEF txt213 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 1 0.765469 APEX 0.75 1 0.859531 RAD 0.0078125 - txt213 -TEXDEF txt213 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 1 0.875 RAD 0.03125 - txt213 -TEXDEF txt213 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 1 0.875 APEX 0.859531 1 0.875 RAD 0.0078125 - txt213 -TEXDEF txt214 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.75 1 0.890469 APEX 0.75 1 0.984531 RAD 0.0078125 - txt214 -TEXDEF txt214 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.75 1 1 RAD 0.03125 - txt214 -TEXDEF txt214 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.765469 1 1 APEX 0.859531 1 1 RAD 0.0078125 - txt214 -TEXDEF txt214 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0 0 RAD 0.03125 - txt214 -TEXDEF txt214 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0 0 APEX 0.984531 0 0 RAD 0.0078125 - txt214 -TEXDEF txt214 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.0154687 0 APEX 0.875 0.109531 0 RAD 0.0078125 - txt214 -TEXDEF txt214 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0 0.0154687 APEX 0.875 0 0.109531 RAD 0.0078125 - txt214 -TEXDEF txt214 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0 0.125 RAD 0.03125 - txt214 -TEXDEF txt214 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0 0.125 APEX 0.984531 0 0.125 RAD 0.0078125 - txt214 -TEXDEF txt214 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.0154687 0.125 APEX 0.875 0.109531 0.125 RAD 0.0078125 - txt214 -TEXDEF txt215 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0 0.140469 APEX 0.875 0 0.234531 RAD 0.0078125 - txt215 -TEXDEF txt215 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0 0.25 RAD 0.03125 - txt215 -TEXDEF txt215 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0 0.25 APEX 0.984531 0 0.25 RAD 0.0078125 - txt215 -TEXDEF txt215 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.0154687 0.25 APEX 0.875 0.109531 0.25 RAD 0.0078125 - txt215 -TEXDEF txt215 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0 0.265469 APEX 0.875 0 0.359531 RAD 0.0078125 - txt215 -TEXDEF txt215 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0 0.375 RAD 0.03125 - txt215 -TEXDEF txt215 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0 0.375 APEX 0.984531 0 0.375 RAD 0.0078125 - txt215 -TEXDEF txt215 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.0154687 0.375 APEX 0.875 0.109531 0.375 RAD 0.0078125 - txt215 -TEXDEF txt215 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0 0.390469 APEX 0.875 0 0.484531 RAD 0.0078125 - txt215 -TEXDEF txt215 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0 0.5 RAD 0.03125 - txt215 -TEXDEF txt216 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0 0.5 APEX 0.984531 0 0.5 RAD 0.0078125 - txt216 -TEXDEF txt216 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.0154687 0.5 APEX 0.875 0.109531 0.5 RAD 0.0078125 - txt216 -TEXDEF txt216 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0 0.515469 APEX 0.875 0 0.609531 RAD 0.0078125 - txt216 -TEXDEF txt216 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0 0.625 RAD 0.03125 - txt216 -TEXDEF txt216 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0 0.625 APEX 0.984531 0 0.625 RAD 0.0078125 - txt216 -TEXDEF txt216 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.0154687 0.625 APEX 0.875 0.109531 0.625 RAD 0.0078125 - txt216 -TEXDEF txt216 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0 0.640469 APEX 0.875 0 0.734531 RAD 0.0078125 - txt216 -TEXDEF txt216 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0 0.75 RAD 0.03125 - txt216 -TEXDEF txt216 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0 0.75 APEX 0.984531 0 0.75 RAD 0.0078125 - txt216 -TEXDEF txt216 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.0154687 0.75 APEX 0.875 0.109531 0.75 RAD 0.0078125 - txt216 -TEXDEF txt217 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0 0.765469 APEX 0.875 0 0.859531 RAD 0.0078125 - txt217 -TEXDEF txt217 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0 0.875 RAD 0.03125 - txt217 -TEXDEF txt217 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0 0.875 APEX 0.984531 0 0.875 RAD 0.0078125 - txt217 -TEXDEF txt217 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.0154687 0.875 APEX 0.875 0.109531 0.875 RAD 0.0078125 - txt217 -TEXDEF txt217 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0 0.890469 APEX 0.875 0 0.984531 RAD 0.0078125 - txt217 -TEXDEF txt217 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0 1 RAD 0.03125 - txt217 -TEXDEF txt217 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0 1 APEX 0.984531 0 1 RAD 0.0078125 - txt217 -TEXDEF txt217 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.0154687 1 APEX 0.875 0.109531 1 RAD 0.0078125 - txt217 -TEXDEF txt217 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.125 0 RAD 0.03125 - txt217 -TEXDEF txt217 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.125 0 APEX 0.984531 0.125 0 RAD 0.0078125 - txt217 -TEXDEF txt218 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.140469 0 APEX 0.875 0.234531 0 RAD 0.0078125 - txt218 -TEXDEF txt218 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.125 0.0154687 APEX 0.875 0.125 0.109531 RAD 0.0078125 - txt218 -TEXDEF txt218 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.125 0.125 RAD 0.03125 - txt218 -TEXDEF txt218 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.125 0.125 APEX 0.984531 0.125 0.125 RAD 0.0078125 - txt218 -TEXDEF txt218 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.140469 0.125 APEX 0.875 0.234531 0.125 RAD 0.0078125 - txt218 -TEXDEF txt218 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.125 0.140469 APEX 0.875 0.125 0.234531 RAD 0.0078125 - txt218 -TEXDEF txt218 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.125 0.25 RAD 0.03125 - txt218 -TEXDEF txt218 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.125 0.25 APEX 0.984531 0.125 0.25 RAD 0.0078125 - txt218 -TEXDEF txt218 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.140469 0.25 APEX 0.875 0.234531 0.25 RAD 0.0078125 - txt218 -TEXDEF txt218 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.125 0.265469 APEX 0.875 0.125 0.359531 RAD 0.0078125 - txt218 -TEXDEF txt219 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.125 0.375 RAD 0.03125 - txt219 -TEXDEF txt219 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.125 0.375 APEX 0.984531 0.125 0.375 RAD 0.0078125 - txt219 -TEXDEF txt219 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.140469 0.375 APEX 0.875 0.234531 0.375 RAD 0.0078125 - txt219 -TEXDEF txt219 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.125 0.390469 APEX 0.875 0.125 0.484531 RAD 0.0078125 - txt219 -TEXDEF txt219 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.125 0.5 RAD 0.03125 - txt219 -TEXDEF txt219 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.125 0.5 APEX 0.984531 0.125 0.5 RAD 0.0078125 - txt219 -TEXDEF txt219 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.140469 0.5 APEX 0.875 0.234531 0.5 RAD 0.0078125 - txt219 -TEXDEF txt219 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.125 0.515469 APEX 0.875 0.125 0.609531 RAD 0.0078125 - txt219 -TEXDEF txt219 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.125 0.625 RAD 0.03125 - txt219 -TEXDEF txt219 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.125 0.625 APEX 0.984531 0.125 0.625 RAD 0.0078125 - txt219 -TEXDEF txt220 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.140469 0.625 APEX 0.875 0.234531 0.625 RAD 0.0078125 - txt220 -TEXDEF txt220 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.125 0.640469 APEX 0.875 0.125 0.734531 RAD 0.0078125 - txt220 -TEXDEF txt220 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.125 0.75 RAD 0.03125 - txt220 -TEXDEF txt220 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.125 0.75 APEX 0.984531 0.125 0.75 RAD 0.0078125 - txt220 -TEXDEF txt220 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.140469 0.75 APEX 0.875 0.234531 0.75 RAD 0.0078125 - txt220 -TEXDEF txt220 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.125 0.765469 APEX 0.875 0.125 0.859531 RAD 0.0078125 - txt220 -TEXDEF txt220 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.125 0.875 RAD 0.03125 - txt220 -TEXDEF txt220 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.125 0.875 APEX 0.984531 0.125 0.875 RAD 0.0078125 - txt220 -TEXDEF txt220 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.140469 0.875 APEX 0.875 0.234531 0.875 RAD 0.0078125 - txt220 -TEXDEF txt220 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.125 0.890469 APEX 0.875 0.125 0.984531 RAD 0.0078125 - txt220 -TEXDEF txt221 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.125 1 RAD 0.03125 - txt221 -TEXDEF txt221 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.125 1 APEX 0.984531 0.125 1 RAD 0.0078125 - txt221 -TEXDEF txt221 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.140469 1 APEX 0.875 0.234531 1 RAD 0.0078125 - txt221 -TEXDEF txt221 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.25 0 RAD 0.03125 - txt221 -TEXDEF txt221 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.25 0 APEX 0.984531 0.25 0 RAD 0.0078125 - txt221 -TEXDEF txt221 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.265469 0 APEX 0.875 0.359531 0 RAD 0.0078125 - txt221 -TEXDEF txt221 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.25 0.0154687 APEX 0.875 0.25 0.109531 RAD 0.0078125 - txt221 -TEXDEF txt221 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.25 0.125 RAD 0.03125 - txt221 -TEXDEF txt221 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.25 0.125 APEX 0.984531 0.25 0.125 RAD 0.0078125 - txt221 -TEXDEF txt221 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.265469 0.125 APEX 0.875 0.359531 0.125 RAD 0.0078125 - txt221 -TEXDEF txt222 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.25 0.140469 APEX 0.875 0.25 0.234531 RAD 0.0078125 - txt222 -TEXDEF txt222 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.25 0.25 RAD 0.03125 - txt222 -TEXDEF txt222 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.25 0.25 APEX 0.984531 0.25 0.25 RAD 0.0078125 - txt222 -TEXDEF txt222 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.265469 0.25 APEX 0.875 0.359531 0.25 RAD 0.0078125 - txt222 -TEXDEF txt222 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.25 0.265469 APEX 0.875 0.25 0.359531 RAD 0.0078125 - txt222 -TEXDEF txt222 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.25 0.375 RAD 0.03125 - txt222 -TEXDEF txt222 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.25 0.375 APEX 0.984531 0.25 0.375 RAD 0.0078125 - txt222 -TEXDEF txt222 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.265469 0.375 APEX 0.875 0.359531 0.375 RAD 0.0078125 - txt222 -TEXDEF txt222 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.25 0.390469 APEX 0.875 0.25 0.484531 RAD 0.0078125 - txt222 -TEXDEF txt222 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.25 0.5 RAD 0.03125 - txt222 -TEXDEF txt223 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.25 0.5 APEX 0.984531 0.25 0.5 RAD 0.0078125 - txt223 -TEXDEF txt223 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.265469 0.5 APEX 0.875 0.359531 0.5 RAD 0.0078125 - txt223 -TEXDEF txt223 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.25 0.515469 APEX 0.875 0.25 0.609531 RAD 0.0078125 - txt223 -TEXDEF txt223 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.25 0.625 RAD 0.03125 - txt223 -TEXDEF txt223 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.25 0.625 APEX 0.984531 0.25 0.625 RAD 0.0078125 - txt223 -TEXDEF txt223 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.265469 0.625 APEX 0.875 0.359531 0.625 RAD 0.0078125 - txt223 -TEXDEF txt223 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.25 0.640469 APEX 0.875 0.25 0.734531 RAD 0.0078125 - txt223 -TEXDEF txt223 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.25 0.75 RAD 0.03125 - txt223 -TEXDEF txt223 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.25 0.75 APEX 0.984531 0.25 0.75 RAD 0.0078125 - txt223 -TEXDEF txt223 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.265469 0.75 APEX 0.875 0.359531 0.75 RAD 0.0078125 - txt223 -TEXDEF txt224 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.25 0.765469 APEX 0.875 0.25 0.859531 RAD 0.0078125 - txt224 -TEXDEF txt224 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.25 0.875 RAD 0.03125 - txt224 -TEXDEF txt224 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.25 0.875 APEX 0.984531 0.25 0.875 RAD 0.0078125 - txt224 -TEXDEF txt224 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.265469 0.875 APEX 0.875 0.359531 0.875 RAD 0.0078125 - txt224 -TEXDEF txt224 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.25 0.890469 APEX 0.875 0.25 0.984531 RAD 0.0078125 - txt224 -TEXDEF txt224 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.25 1 RAD 0.03125 - txt224 -TEXDEF txt224 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.25 1 APEX 0.984531 0.25 1 RAD 0.0078125 - txt224 -TEXDEF txt224 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.265469 1 APEX 0.875 0.359531 1 RAD 0.0078125 - txt224 -TEXDEF txt224 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.375 0 RAD 0.03125 - txt224 -TEXDEF txt224 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.375 0 APEX 0.984531 0.375 0 RAD 0.0078125 - txt224 -TEXDEF txt225 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.390469 0 APEX 0.875 0.484531 0 RAD 0.0078125 - txt225 -TEXDEF txt225 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.375 0.0154687 APEX 0.875 0.375 0.109531 RAD 0.0078125 - txt225 -TEXDEF txt225 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.375 0.125 RAD 0.03125 - txt225 -TEXDEF txt225 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.375 0.125 APEX 0.984531 0.375 0.125 RAD 0.0078125 - txt225 -TEXDEF txt225 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.390469 0.125 APEX 0.875 0.484531 0.125 RAD 0.0078125 - txt225 -TEXDEF txt225 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.375 0.140469 APEX 0.875 0.375 0.234531 RAD 0.0078125 - txt225 -TEXDEF txt225 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.375 0.25 RAD 0.03125 - txt225 -TEXDEF txt225 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.375 0.25 APEX 0.984531 0.375 0.25 RAD 0.0078125 - txt225 -TEXDEF txt225 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.390469 0.25 APEX 0.875 0.484531 0.25 RAD 0.0078125 - txt225 -TEXDEF txt225 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.375 0.265469 APEX 0.875 0.375 0.359531 RAD 0.0078125 - txt225 -TEXDEF txt226 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.375 0.375 RAD 0.03125 - txt226 -TEXDEF txt226 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.375 0.375 APEX 0.984531 0.375 0.375 RAD 0.0078125 - txt226 -TEXDEF txt226 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.390469 0.375 APEX 0.875 0.484531 0.375 RAD 0.0078125 - txt226 -TEXDEF txt226 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.375 0.390469 APEX 0.875 0.375 0.484531 RAD 0.0078125 - txt226 -TEXDEF txt226 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.375 0.5 RAD 0.03125 - txt226 -TEXDEF txt226 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.375 0.5 APEX 0.984531 0.375 0.5 RAD 0.0078125 - txt226 -TEXDEF txt226 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.390469 0.5 APEX 0.875 0.484531 0.5 RAD 0.0078125 - txt226 -TEXDEF txt226 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.375 0.515469 APEX 0.875 0.375 0.609531 RAD 0.0078125 - txt226 -TEXDEF txt226 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.375 0.625 RAD 0.03125 - txt226 -TEXDEF txt226 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.375 0.625 APEX 0.984531 0.375 0.625 RAD 0.0078125 - txt226 -TEXDEF txt227 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.390469 0.625 APEX 0.875 0.484531 0.625 RAD 0.0078125 - txt227 -TEXDEF txt227 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.375 0.640469 APEX 0.875 0.375 0.734531 RAD 0.0078125 - txt227 -TEXDEF txt227 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.375 0.75 RAD 0.03125 - txt227 -TEXDEF txt227 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.375 0.75 APEX 0.984531 0.375 0.75 RAD 0.0078125 - txt227 -TEXDEF txt227 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.390469 0.75 APEX 0.875 0.484531 0.75 RAD 0.0078125 - txt227 -TEXDEF txt227 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.375 0.765469 APEX 0.875 0.375 0.859531 RAD 0.0078125 - txt227 -TEXDEF txt227 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.375 0.875 RAD 0.03125 - txt227 -TEXDEF txt227 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.375 0.875 APEX 0.984531 0.375 0.875 RAD 0.0078125 - txt227 -TEXDEF txt227 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.390469 0.875 APEX 0.875 0.484531 0.875 RAD 0.0078125 - txt227 -TEXDEF txt227 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.375 0.890469 APEX 0.875 0.375 0.984531 RAD 0.0078125 - txt227 -TEXDEF txt228 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.375 1 RAD 0.03125 - txt228 -TEXDEF txt228 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.375 1 APEX 0.984531 0.375 1 RAD 0.0078125 - txt228 -TEXDEF txt228 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.390469 1 APEX 0.875 0.484531 1 RAD 0.0078125 - txt228 -TEXDEF txt228 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.5 0 RAD 0.03125 - txt228 -TEXDEF txt228 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.5 0 APEX 0.984531 0.5 0 RAD 0.0078125 - txt228 -TEXDEF txt228 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.515469 0 APEX 0.875 0.609531 0 RAD 0.0078125 - txt228 -TEXDEF txt228 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.5 0.0154687 APEX 0.875 0.5 0.109531 RAD 0.0078125 - txt228 -TEXDEF txt228 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.5 0.125 RAD 0.03125 - txt228 -TEXDEF txt228 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.5 0.125 APEX 0.984531 0.5 0.125 RAD 0.0078125 - txt228 -TEXDEF txt228 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.515469 0.125 APEX 0.875 0.609531 0.125 RAD 0.0078125 - txt228 -TEXDEF txt229 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.5 0.140469 APEX 0.875 0.5 0.234531 RAD 0.0078125 - txt229 -TEXDEF txt229 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.5 0.25 RAD 0.03125 - txt229 -TEXDEF txt229 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.5 0.25 APEX 0.984531 0.5 0.25 RAD 0.0078125 - txt229 -TEXDEF txt229 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.515469 0.25 APEX 0.875 0.609531 0.25 RAD 0.0078125 - txt229 -TEXDEF txt229 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.5 0.265469 APEX 0.875 0.5 0.359531 RAD 0.0078125 - txt229 -TEXDEF txt229 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.5 0.375 RAD 0.03125 - txt229 -TEXDEF txt229 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.5 0.375 APEX 0.984531 0.5 0.375 RAD 0.0078125 - txt229 -TEXDEF txt229 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.515469 0.375 APEX 0.875 0.609531 0.375 RAD 0.0078125 - txt229 -TEXDEF txt229 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.5 0.390469 APEX 0.875 0.5 0.484531 RAD 0.0078125 - txt229 -TEXDEF txt229 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.5 0.5 RAD 0.03125 - txt229 -TEXDEF txt230 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.5 0.5 APEX 0.984531 0.5 0.5 RAD 0.0078125 - txt230 -TEXDEF txt230 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.515469 0.5 APEX 0.875 0.609531 0.5 RAD 0.0078125 - txt230 -TEXDEF txt230 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.5 0.515469 APEX 0.875 0.5 0.609531 RAD 0.0078125 - txt230 -TEXDEF txt230 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.5 0.625 RAD 0.03125 - txt230 -TEXDEF txt230 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.5 0.625 APEX 0.984531 0.5 0.625 RAD 0.0078125 - txt230 -TEXDEF txt230 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.515469 0.625 APEX 0.875 0.609531 0.625 RAD 0.0078125 - txt230 -TEXDEF txt230 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.5 0.640469 APEX 0.875 0.5 0.734531 RAD 0.0078125 - txt230 -TEXDEF txt230 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.5 0.75 RAD 0.03125 - txt230 -TEXDEF txt230 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.5 0.75 APEX 0.984531 0.5 0.75 RAD 0.0078125 - txt230 -TEXDEF txt230 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.515469 0.75 APEX 0.875 0.609531 0.75 RAD 0.0078125 - txt230 -TEXDEF txt231 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.5 0.765469 APEX 0.875 0.5 0.859531 RAD 0.0078125 - txt231 -TEXDEF txt231 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.5 0.875 RAD 0.03125 - txt231 -TEXDEF txt231 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.5 0.875 APEX 0.984531 0.5 0.875 RAD 0.0078125 - txt231 -TEXDEF txt231 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.515469 0.875 APEX 0.875 0.609531 0.875 RAD 0.0078125 - txt231 -TEXDEF txt231 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.5 0.890469 APEX 0.875 0.5 0.984531 RAD 0.0078125 - txt231 -TEXDEF txt231 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.5 1 RAD 0.03125 - txt231 -TEXDEF txt231 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.5 1 APEX 0.984531 0.5 1 RAD 0.0078125 - txt231 -TEXDEF txt231 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.515469 1 APEX 0.875 0.609531 1 RAD 0.0078125 - txt231 -TEXDEF txt231 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.625 0 RAD 0.03125 - txt231 -TEXDEF txt231 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.625 0 APEX 0.984531 0.625 0 RAD 0.0078125 - txt231 -TEXDEF txt232 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.640469 0 APEX 0.875 0.734531 0 RAD 0.0078125 - txt232 -TEXDEF txt232 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.625 0.0154687 APEX 0.875 0.625 0.109531 RAD 0.0078125 - txt232 -TEXDEF txt232 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.625 0.125 RAD 0.03125 - txt232 -TEXDEF txt232 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.625 0.125 APEX 0.984531 0.625 0.125 RAD 0.0078125 - txt232 -TEXDEF txt232 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.640469 0.125 APEX 0.875 0.734531 0.125 RAD 0.0078125 - txt232 -TEXDEF txt232 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.625 0.140469 APEX 0.875 0.625 0.234531 RAD 0.0078125 - txt232 -TEXDEF txt232 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.625 0.25 RAD 0.03125 - txt232 -TEXDEF txt232 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.625 0.25 APEX 0.984531 0.625 0.25 RAD 0.0078125 - txt232 -TEXDEF txt232 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.640469 0.25 APEX 0.875 0.734531 0.25 RAD 0.0078125 - txt232 -TEXDEF txt232 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.625 0.265469 APEX 0.875 0.625 0.359531 RAD 0.0078125 - txt232 -TEXDEF txt233 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.625 0.375 RAD 0.03125 - txt233 -TEXDEF txt233 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.625 0.375 APEX 0.984531 0.625 0.375 RAD 0.0078125 - txt233 -TEXDEF txt233 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.640469 0.375 APEX 0.875 0.734531 0.375 RAD 0.0078125 - txt233 -TEXDEF txt233 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.625 0.390469 APEX 0.875 0.625 0.484531 RAD 0.0078125 - txt233 -TEXDEF txt233 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.625 0.5 RAD 0.03125 - txt233 -TEXDEF txt233 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.625 0.5 APEX 0.984531 0.625 0.5 RAD 0.0078125 - txt233 -TEXDEF txt233 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.640469 0.5 APEX 0.875 0.734531 0.5 RAD 0.0078125 - txt233 -TEXDEF txt233 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.625 0.515469 APEX 0.875 0.625 0.609531 RAD 0.0078125 - txt233 -TEXDEF txt233 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.625 0.625 RAD 0.03125 - txt233 -TEXDEF txt233 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.625 0.625 APEX 0.984531 0.625 0.625 RAD 0.0078125 - txt233 -TEXDEF txt234 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.640469 0.625 APEX 0.875 0.734531 0.625 RAD 0.0078125 - txt234 -TEXDEF txt234 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.625 0.640469 APEX 0.875 0.625 0.734531 RAD 0.0078125 - txt234 -TEXDEF txt234 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.625 0.75 RAD 0.03125 - txt234 -TEXDEF txt234 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.625 0.75 APEX 0.984531 0.625 0.75 RAD 0.0078125 - txt234 -TEXDEF txt234 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.640469 0.75 APEX 0.875 0.734531 0.75 RAD 0.0078125 - txt234 -TEXDEF txt234 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.625 0.765469 APEX 0.875 0.625 0.859531 RAD 0.0078125 - txt234 -TEXDEF txt234 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.625 0.875 RAD 0.03125 - txt234 -TEXDEF txt234 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.625 0.875 APEX 0.984531 0.625 0.875 RAD 0.0078125 - txt234 -TEXDEF txt234 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.640469 0.875 APEX 0.875 0.734531 0.875 RAD 0.0078125 - txt234 -TEXDEF txt234 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.625 0.890469 APEX 0.875 0.625 0.984531 RAD 0.0078125 - txt234 -TEXDEF txt235 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.625 1 RAD 0.03125 - txt235 -TEXDEF txt235 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.625 1 APEX 0.984531 0.625 1 RAD 0.0078125 - txt235 -TEXDEF txt235 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.640469 1 APEX 0.875 0.734531 1 RAD 0.0078125 - txt235 -TEXDEF txt235 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.75 0 RAD 0.03125 - txt235 -TEXDEF txt235 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.75 0 APEX 0.984531 0.75 0 RAD 0.0078125 - txt235 -TEXDEF txt235 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.765469 0 APEX 0.875 0.859531 0 RAD 0.0078125 - txt235 -TEXDEF txt235 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.75 0.0154687 APEX 0.875 0.75 0.109531 RAD 0.0078125 - txt235 -TEXDEF txt235 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.75 0.125 RAD 0.03125 - txt235 -TEXDEF txt235 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.75 0.125 APEX 0.984531 0.75 0.125 RAD 0.0078125 - txt235 -TEXDEF txt235 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.765469 0.125 APEX 0.875 0.859531 0.125 RAD 0.0078125 - txt235 -TEXDEF txt236 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.75 0.140469 APEX 0.875 0.75 0.234531 RAD 0.0078125 - txt236 -TEXDEF txt236 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.75 0.25 RAD 0.03125 - txt236 -TEXDEF txt236 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.75 0.25 APEX 0.984531 0.75 0.25 RAD 0.0078125 - txt236 -TEXDEF txt236 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.765469 0.25 APEX 0.875 0.859531 0.25 RAD 0.0078125 - txt236 -TEXDEF txt236 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.75 0.265469 APEX 0.875 0.75 0.359531 RAD 0.0078125 - txt236 -TEXDEF txt236 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.75 0.375 RAD 0.03125 - txt236 -TEXDEF txt236 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.75 0.375 APEX 0.984531 0.75 0.375 RAD 0.0078125 - txt236 -TEXDEF txt236 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.765469 0.375 APEX 0.875 0.859531 0.375 RAD 0.0078125 - txt236 -TEXDEF txt236 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.75 0.390469 APEX 0.875 0.75 0.484531 RAD 0.0078125 - txt236 -TEXDEF txt236 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.75 0.5 RAD 0.03125 - txt236 -TEXDEF txt237 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.75 0.5 APEX 0.984531 0.75 0.5 RAD 0.0078125 - txt237 -TEXDEF txt237 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.765469 0.5 APEX 0.875 0.859531 0.5 RAD 0.0078125 - txt237 -TEXDEF txt237 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.75 0.515469 APEX 0.875 0.75 0.609531 RAD 0.0078125 - txt237 -TEXDEF txt237 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.75 0.625 RAD 0.03125 - txt237 -TEXDEF txt237 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.75 0.625 APEX 0.984531 0.75 0.625 RAD 0.0078125 - txt237 -TEXDEF txt237 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.765469 0.625 APEX 0.875 0.859531 0.625 RAD 0.0078125 - txt237 -TEXDEF txt237 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.75 0.640469 APEX 0.875 0.75 0.734531 RAD 0.0078125 - txt237 -TEXDEF txt237 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.75 0.75 RAD 0.03125 - txt237 -TEXDEF txt237 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.75 0.75 APEX 0.984531 0.75 0.75 RAD 0.0078125 - txt237 -TEXDEF txt237 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.765469 0.75 APEX 0.875 0.859531 0.75 RAD 0.0078125 - txt237 -TEXDEF txt238 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.75 0.765469 APEX 0.875 0.75 0.859531 RAD 0.0078125 - txt238 -TEXDEF txt238 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.75 0.875 RAD 0.03125 - txt238 -TEXDEF txt238 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.75 0.875 APEX 0.984531 0.75 0.875 RAD 0.0078125 - txt238 -TEXDEF txt238 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.765469 0.875 APEX 0.875 0.859531 0.875 RAD 0.0078125 - txt238 -TEXDEF txt238 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.75 0.890469 APEX 0.875 0.75 0.984531 RAD 0.0078125 - txt238 -TEXDEF txt238 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.75 1 RAD 0.03125 - txt238 -TEXDEF txt238 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.75 1 APEX 0.984531 0.75 1 RAD 0.0078125 - txt238 -TEXDEF txt238 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.765469 1 APEX 0.875 0.859531 1 RAD 0.0078125 - txt238 -TEXDEF txt238 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.875 0 RAD 0.03125 - txt238 -TEXDEF txt238 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.875 0 APEX 0.984531 0.875 0 RAD 0.0078125 - txt238 -TEXDEF txt239 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.890469 0 APEX 0.875 0.984531 0 RAD 0.0078125 - txt239 -TEXDEF txt239 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.875 0.0154687 APEX 0.875 0.875 0.109531 RAD 0.0078125 - txt239 -TEXDEF txt239 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.875 0.125 RAD 0.03125 - txt239 -TEXDEF txt239 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.875 0.125 APEX 0.984531 0.875 0.125 RAD 0.0078125 - txt239 -TEXDEF txt239 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.890469 0.125 APEX 0.875 0.984531 0.125 RAD 0.0078125 - txt239 -TEXDEF txt239 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.875 0.140469 APEX 0.875 0.875 0.234531 RAD 0.0078125 - txt239 -TEXDEF txt239 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.875 0.25 RAD 0.03125 - txt239 -TEXDEF txt239 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.875 0.25 APEX 0.984531 0.875 0.25 RAD 0.0078125 - txt239 -TEXDEF txt239 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.890469 0.25 APEX 0.875 0.984531 0.25 RAD 0.0078125 - txt239 -TEXDEF txt239 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.875 0.265469 APEX 0.875 0.875 0.359531 RAD 0.0078125 - txt239 -TEXDEF txt240 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.875 0.375 RAD 0.03125 - txt240 -TEXDEF txt240 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.875 0.375 APEX 0.984531 0.875 0.375 RAD 0.0078125 - txt240 -TEXDEF txt240 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.890469 0.375 APEX 0.875 0.984531 0.375 RAD 0.0078125 - txt240 -TEXDEF txt240 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.875 0.390469 APEX 0.875 0.875 0.484531 RAD 0.0078125 - txt240 -TEXDEF txt240 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.875 0.5 RAD 0.03125 - txt240 -TEXDEF txt240 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.875 0.5 APEX 0.984531 0.875 0.5 RAD 0.0078125 - txt240 -TEXDEF txt240 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.890469 0.5 APEX 0.875 0.984531 0.5 RAD 0.0078125 - txt240 -TEXDEF txt240 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.875 0.515469 APEX 0.875 0.875 0.609531 RAD 0.0078125 - txt240 -TEXDEF txt240 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.875 0.625 RAD 0.03125 - txt240 -TEXDEF txt240 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.875 0.625 APEX 0.984531 0.875 0.625 RAD 0.0078125 - txt240 -TEXDEF txt241 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.890469 0.625 APEX 0.875 0.984531 0.625 RAD 0.0078125 - txt241 -TEXDEF txt241 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.875 0.640469 APEX 0.875 0.875 0.734531 RAD 0.0078125 - txt241 -TEXDEF txt241 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.875 0.75 RAD 0.03125 - txt241 -TEXDEF txt241 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.875 0.75 APEX 0.984531 0.875 0.75 RAD 0.0078125 - txt241 -TEXDEF txt241 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.890469 0.75 APEX 0.875 0.984531 0.75 RAD 0.0078125 - txt241 -TEXDEF txt241 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.875 0.765469 APEX 0.875 0.875 0.859531 RAD 0.0078125 - txt241 -TEXDEF txt241 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.875 0.875 RAD 0.03125 - txt241 -TEXDEF txt241 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.875 0.875 APEX 0.984531 0.875 0.875 RAD 0.0078125 - txt241 -TEXDEF txt241 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.890469 0.875 APEX 0.875 0.984531 0.875 RAD 0.0078125 - txt241 -TEXDEF txt241 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.875 0.890469 APEX 0.875 0.875 0.984531 RAD 0.0078125 - txt241 -TEXDEF txt242 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 0.875 1 RAD 0.03125 - txt242 -TEXDEF txt242 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 0.875 1 APEX 0.984531 0.875 1 RAD 0.0078125 - txt242 -TEXDEF txt242 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 0.890469 1 APEX 0.875 0.984531 1 RAD 0.0078125 - txt242 -TEXDEF txt242 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 1 0 RAD 0.03125 - txt242 -TEXDEF txt242 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 1 0 APEX 0.984531 1 0 RAD 0.0078125 - txt242 -TEXDEF txt242 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 1 0.0154687 APEX 0.875 1 0.109531 RAD 0.0078125 - txt242 -TEXDEF txt242 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 1 0.125 RAD 0.03125 - txt242 -TEXDEF txt242 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 1 0.125 APEX 0.984531 1 0.125 RAD 0.0078125 - txt242 -TEXDEF txt242 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 1 0.140469 APEX 0.875 1 0.234531 RAD 0.0078125 - txt242 -TEXDEF txt242 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 1 0.25 RAD 0.03125 - txt242 -TEXDEF txt243 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 1 0.25 APEX 0.984531 1 0.25 RAD 0.0078125 - txt243 -TEXDEF txt243 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 1 0.265469 APEX 0.875 1 0.359531 RAD 0.0078125 - txt243 -TEXDEF txt243 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 1 0.375 RAD 0.03125 - txt243 -TEXDEF txt243 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 1 0.375 APEX 0.984531 1 0.375 RAD 0.0078125 - txt243 -TEXDEF txt243 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 1 0.390469 APEX 0.875 1 0.484531 RAD 0.0078125 - txt243 -TEXDEF txt243 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 1 0.5 RAD 0.03125 - txt243 -TEXDEF txt243 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 1 0.5 APEX 0.984531 1 0.5 RAD 0.0078125 - txt243 -TEXDEF txt243 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 1 0.515469 APEX 0.875 1 0.609531 RAD 0.0078125 - txt243 -TEXDEF txt243 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 1 0.625 RAD 0.03125 - txt243 -TEXDEF txt243 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 1 0.625 APEX 0.984531 1 0.625 RAD 0.0078125 - txt243 -TEXDEF txt244 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 1 0.640469 APEX 0.875 1 0.734531 RAD 0.0078125 - txt244 -TEXDEF txt244 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 1 0.75 RAD 0.03125 - txt244 -TEXDEF txt244 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 1 0.75 APEX 0.984531 1 0.75 RAD 0.0078125 - txt244 -TEXDEF txt244 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 1 0.765469 APEX 0.875 1 0.859531 RAD 0.0078125 - txt244 -TEXDEF txt244 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 1 0.875 RAD 0.03125 - txt244 -TEXDEF txt244 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 1 0.875 APEX 0.984531 1 0.875 RAD 0.0078125 - txt244 -TEXDEF txt244 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 0.875 1 0.890469 APEX 0.875 1 0.984531 RAD 0.0078125 - txt244 -TEXDEF txt244 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 0.875 1 1 RAD 0.03125 - txt244 -TEXDEF txt244 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.9 0.1 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 0.890469 1 1 APEX 0.984531 1 1 RAD 0.0078125 - txt244 -TEXDEF txt244 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0 0 RAD 0.03125 - txt244 -TEXDEF txt245 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.0154687 0 APEX 1 0.109531 0 RAD 0.0078125 - txt245 -TEXDEF txt245 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0 0.0154687 APEX 1 0 0.109531 RAD 0.0078125 - txt245 -TEXDEF txt245 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0 0.125 RAD 0.03125 - txt245 -TEXDEF txt245 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.0154687 0.125 APEX 1 0.109531 0.125 RAD 0.0078125 - txt245 -TEXDEF txt245 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0 0.140469 APEX 1 0 0.234531 RAD 0.0078125 - txt245 -TEXDEF txt245 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0 0.25 RAD 0.03125 - txt245 -TEXDEF txt245 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.0154687 0.25 APEX 1 0.109531 0.25 RAD 0.0078125 - txt245 -TEXDEF txt245 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0 0.265469 APEX 1 0 0.359531 RAD 0.0078125 - txt245 -TEXDEF txt245 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0 0.375 RAD 0.03125 - txt245 -TEXDEF txt245 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.0154687 0.375 APEX 1 0.109531 0.375 RAD 0.0078125 - txt245 -TEXDEF txt246 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0 0.390469 APEX 1 0 0.484531 RAD 0.0078125 - txt246 -TEXDEF txt246 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0 0.5 RAD 0.03125 - txt246 -TEXDEF txt246 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.0154687 0.5 APEX 1 0.109531 0.5 RAD 0.0078125 - txt246 -TEXDEF txt246 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0 0.515469 APEX 1 0 0.609531 RAD 0.0078125 - txt246 -TEXDEF txt246 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0 0.625 RAD 0.03125 - txt246 -TEXDEF txt246 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.0154687 0.625 APEX 1 0.109531 0.625 RAD 0.0078125 - txt246 -TEXDEF txt246 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0 0.640469 APEX 1 0 0.734531 RAD 0.0078125 - txt246 -TEXDEF txt246 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0 0.75 RAD 0.03125 - txt246 -TEXDEF txt246 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.0154687 0.75 APEX 1 0.109531 0.75 RAD 0.0078125 - txt246 -TEXDEF txt246 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0 0.765469 APEX 1 0 0.859531 RAD 0.0078125 - txt246 -TEXDEF txt247 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0 0.875 RAD 0.03125 - txt247 -TEXDEF txt247 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.0154687 0.875 APEX 1 0.109531 0.875 RAD 0.0078125 - txt247 -TEXDEF txt247 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0 0.890469 APEX 1 0 0.984531 RAD 0.0078125 - txt247 -TEXDEF txt247 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0 1 RAD 0.03125 - txt247 -TEXDEF txt247 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.0154687 1 APEX 1 0.109531 1 RAD 0.0078125 - txt247 -TEXDEF txt247 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.125 0 RAD 0.03125 - txt247 -TEXDEF txt247 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.140469 0 APEX 1 0.234531 0 RAD 0.0078125 - txt247 -TEXDEF txt247 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.125 0.0154687 APEX 1 0.125 0.109531 RAD 0.0078125 - txt247 -TEXDEF txt247 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.125 0.125 RAD 0.03125 - txt247 -TEXDEF txt247 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.140469 0.125 APEX 1 0.234531 0.125 RAD 0.0078125 - txt247 -TEXDEF txt248 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.125 0.140469 APEX 1 0.125 0.234531 RAD 0.0078125 - txt248 -TEXDEF txt248 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.125 0.25 RAD 0.03125 - txt248 -TEXDEF txt248 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.140469 0.25 APEX 1 0.234531 0.25 RAD 0.0078125 - txt248 -TEXDEF txt248 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.125 0.265469 APEX 1 0.125 0.359531 RAD 0.0078125 - txt248 -TEXDEF txt248 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.125 0.375 RAD 0.03125 - txt248 -TEXDEF txt248 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.140469 0.375 APEX 1 0.234531 0.375 RAD 0.0078125 - txt248 -TEXDEF txt248 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.125 0.390469 APEX 1 0.125 0.484531 RAD 0.0078125 - txt248 -TEXDEF txt248 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.125 0.5 RAD 0.03125 - txt248 -TEXDEF txt248 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.140469 0.5 APEX 1 0.234531 0.5 RAD 0.0078125 - txt248 -TEXDEF txt248 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.125 0.515469 APEX 1 0.125 0.609531 RAD 0.0078125 - txt248 -TEXDEF txt249 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.125 0.625 RAD 0.03125 - txt249 -TEXDEF txt249 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.140469 0.625 APEX 1 0.234531 0.625 RAD 0.0078125 - txt249 -TEXDEF txt249 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.125 0.640469 APEX 1 0.125 0.734531 RAD 0.0078125 - txt249 -TEXDEF txt249 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.125 0.75 RAD 0.03125 - txt249 -TEXDEF txt249 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.140469 0.75 APEX 1 0.234531 0.75 RAD 0.0078125 - txt249 -TEXDEF txt249 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.125 0.765469 APEX 1 0.125 0.859531 RAD 0.0078125 - txt249 -TEXDEF txt249 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.125 0.875 RAD 0.03125 - txt249 -TEXDEF txt249 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.140469 0.875 APEX 1 0.234531 0.875 RAD 0.0078125 - txt249 -TEXDEF txt249 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.125 0.890469 APEX 1 0.125 0.984531 RAD 0.0078125 - txt249 -TEXDEF txt249 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.125 1 RAD 0.03125 - txt249 -TEXDEF txt250 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.140469 1 APEX 1 0.234531 1 RAD 0.0078125 - txt250 -TEXDEF txt250 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.25 0 RAD 0.03125 - txt250 -TEXDEF txt250 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.265469 0 APEX 1 0.359531 0 RAD 0.0078125 - txt250 -TEXDEF txt250 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.25 0.0154687 APEX 1 0.25 0.109531 RAD 0.0078125 - txt250 -TEXDEF txt250 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.25 0.125 RAD 0.03125 - txt250 -TEXDEF txt250 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.265469 0.125 APEX 1 0.359531 0.125 RAD 0.0078125 - txt250 -TEXDEF txt250 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.25 0.140469 APEX 1 0.25 0.234531 RAD 0.0078125 - txt250 -TEXDEF txt250 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.25 0.25 RAD 0.03125 - txt250 -TEXDEF txt250 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.265469 0.25 APEX 1 0.359531 0.25 RAD 0.0078125 - txt250 -TEXDEF txt250 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.25 0.265469 APEX 1 0.25 0.359531 RAD 0.0078125 - txt250 -TEXDEF txt251 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.25 0.375 RAD 0.03125 - txt251 -TEXDEF txt251 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.265469 0.375 APEX 1 0.359531 0.375 RAD 0.0078125 - txt251 -TEXDEF txt251 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.25 0.390469 APEX 1 0.25 0.484531 RAD 0.0078125 - txt251 -TEXDEF txt251 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.25 0.5 RAD 0.03125 - txt251 -TEXDEF txt251 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.265469 0.5 APEX 1 0.359531 0.5 RAD 0.0078125 - txt251 -TEXDEF txt251 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.25 0.515469 APEX 1 0.25 0.609531 RAD 0.0078125 - txt251 -TEXDEF txt251 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.25 0.625 RAD 0.03125 - txt251 -TEXDEF txt251 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.265469 0.625 APEX 1 0.359531 0.625 RAD 0.0078125 - txt251 -TEXDEF txt251 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.25 0.640469 APEX 1 0.25 0.734531 RAD 0.0078125 - txt251 -TEXDEF txt251 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.25 0.75 RAD 0.03125 - txt251 -TEXDEF txt252 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.265469 0.75 APEX 1 0.359531 0.75 RAD 0.0078125 - txt252 -TEXDEF txt252 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.25 0.765469 APEX 1 0.25 0.859531 RAD 0.0078125 - txt252 -TEXDEF txt252 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.25 0.875 RAD 0.03125 - txt252 -TEXDEF txt252 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.265469 0.875 APEX 1 0.359531 0.875 RAD 0.0078125 - txt252 -TEXDEF txt252 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.25 0.890469 APEX 1 0.25 0.984531 RAD 0.0078125 - txt252 -TEXDEF txt252 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.25 1 RAD 0.03125 - txt252 -TEXDEF txt252 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.265469 1 APEX 1 0.359531 1 RAD 0.0078125 - txt252 -TEXDEF txt252 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.375 0 RAD 0.03125 - txt252 -TEXDEF txt252 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.390469 0 APEX 1 0.484531 0 RAD 0.0078125 - txt252 -TEXDEF txt252 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.375 0.0154687 APEX 1 0.375 0.109531 RAD 0.0078125 - txt252 -TEXDEF txt253 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.375 0.125 RAD 0.03125 - txt253 -TEXDEF txt253 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.390469 0.125 APEX 1 0.484531 0.125 RAD 0.0078125 - txt253 -TEXDEF txt253 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.375 0.140469 APEX 1 0.375 0.234531 RAD 0.0078125 - txt253 -TEXDEF txt253 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.375 0.25 RAD 0.03125 - txt253 -TEXDEF txt253 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.390469 0.25 APEX 1 0.484531 0.25 RAD 0.0078125 - txt253 -TEXDEF txt253 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.375 0.265469 APEX 1 0.375 0.359531 RAD 0.0078125 - txt253 -TEXDEF txt253 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.375 0.375 RAD 0.03125 - txt253 -TEXDEF txt253 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.390469 0.375 APEX 1 0.484531 0.375 RAD 0.0078125 - txt253 -TEXDEF txt253 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.375 0.390469 APEX 1 0.375 0.484531 RAD 0.0078125 - txt253 -TEXDEF txt253 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.375 0.5 RAD 0.03125 - txt253 -TEXDEF txt254 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.390469 0.5 APEX 1 0.484531 0.5 RAD 0.0078125 - txt254 -TEXDEF txt254 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.375 0.515469 APEX 1 0.375 0.609531 RAD 0.0078125 - txt254 -TEXDEF txt254 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.375 0.625 RAD 0.03125 - txt254 -TEXDEF txt254 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.390469 0.625 APEX 1 0.484531 0.625 RAD 0.0078125 - txt254 -TEXDEF txt254 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.375 0.640469 APEX 1 0.375 0.734531 RAD 0.0078125 - txt254 -TEXDEF txt254 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.375 0.75 RAD 0.03125 - txt254 -TEXDEF txt254 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.390469 0.75 APEX 1 0.484531 0.75 RAD 0.0078125 - txt254 -TEXDEF txt254 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.375 0.765469 APEX 1 0.375 0.859531 RAD 0.0078125 - txt254 -TEXDEF txt254 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.375 0.875 RAD 0.03125 - txt254 -TEXDEF txt254 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.390469 0.875 APEX 1 0.484531 0.875 RAD 0.0078125 - txt254 -TEXDEF txt255 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.375 0.890469 APEX 1 0.375 0.984531 RAD 0.0078125 - txt255 -TEXDEF txt255 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.375 1 RAD 0.03125 - txt255 -TEXDEF txt255 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.390469 1 APEX 1 0.484531 1 RAD 0.0078125 - txt255 -TEXDEF txt255 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.5 0 RAD 0.03125 - txt255 -TEXDEF txt255 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.515469 0 APEX 1 0.609531 0 RAD 0.0078125 - txt255 -TEXDEF txt255 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.5 0.0154687 APEX 1 0.5 0.109531 RAD 0.0078125 - txt255 -TEXDEF txt255 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.5 0.125 RAD 0.03125 - txt255 -TEXDEF txt255 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.515469 0.125 APEX 1 0.609531 0.125 RAD 0.0078125 - txt255 -TEXDEF txt255 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.5 0.140469 APEX 1 0.5 0.234531 RAD 0.0078125 - txt255 -TEXDEF txt255 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.5 0.25 RAD 0.03125 - txt255 -TEXDEF txt256 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.515469 0.25 APEX 1 0.609531 0.25 RAD 0.0078125 - txt256 -TEXDEF txt256 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.5 0.265469 APEX 1 0.5 0.359531 RAD 0.0078125 - txt256 -TEXDEF txt256 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.5 0.375 RAD 0.03125 - txt256 -TEXDEF txt256 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.515469 0.375 APEX 1 0.609531 0.375 RAD 0.0078125 - txt256 -TEXDEF txt256 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.5 0.390469 APEX 1 0.5 0.484531 RAD 0.0078125 - txt256 -TEXDEF txt256 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.5 0.5 RAD 0.03125 - txt256 -TEXDEF txt256 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.515469 0.5 APEX 1 0.609531 0.5 RAD 0.0078125 - txt256 -TEXDEF txt256 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.5 0.515469 APEX 1 0.5 0.609531 RAD 0.0078125 - txt256 -TEXDEF txt256 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.5 0.625 RAD 0.03125 - txt256 -TEXDEF txt256 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.515469 0.625 APEX 1 0.609531 0.625 RAD 0.0078125 - txt256 -TEXDEF txt257 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.5 0.640469 APEX 1 0.5 0.734531 RAD 0.0078125 - txt257 -TEXDEF txt257 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.5 0.75 RAD 0.03125 - txt257 -TEXDEF txt257 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.515469 0.75 APEX 1 0.609531 0.75 RAD 0.0078125 - txt257 -TEXDEF txt257 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.5 0.765469 APEX 1 0.5 0.859531 RAD 0.0078125 - txt257 -TEXDEF txt257 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.5 0.875 RAD 0.03125 - txt257 -TEXDEF txt257 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.515469 0.875 APEX 1 0.609531 0.875 RAD 0.0078125 - txt257 -TEXDEF txt257 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.5 0.890469 APEX 1 0.5 0.984531 RAD 0.0078125 - txt257 -TEXDEF txt257 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.5 1 RAD 0.03125 - txt257 -TEXDEF txt257 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.515469 1 APEX 1 0.609531 1 RAD 0.0078125 - txt257 -TEXDEF txt257 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.625 0 RAD 0.03125 - txt257 -TEXDEF txt258 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.640469 0 APEX 1 0.734531 0 RAD 0.0078125 - txt258 -TEXDEF txt258 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.625 0.0154687 APEX 1 0.625 0.109531 RAD 0.0078125 - txt258 -TEXDEF txt258 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.625 0.125 RAD 0.03125 - txt258 -TEXDEF txt258 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.640469 0.125 APEX 1 0.734531 0.125 RAD 0.0078125 - txt258 -TEXDEF txt258 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.625 0.140469 APEX 1 0.625 0.234531 RAD 0.0078125 - txt258 -TEXDEF txt258 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.625 0.25 RAD 0.03125 - txt258 -TEXDEF txt258 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.640469 0.25 APEX 1 0.734531 0.25 RAD 0.0078125 - txt258 -TEXDEF txt258 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.625 0.265469 APEX 1 0.625 0.359531 RAD 0.0078125 - txt258 -TEXDEF txt258 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.625 0.375 RAD 0.03125 - txt258 -TEXDEF txt258 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.640469 0.375 APEX 1 0.734531 0.375 RAD 0.0078125 - txt258 -TEXDEF txt259 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.625 0.390469 APEX 1 0.625 0.484531 RAD 0.0078125 - txt259 -TEXDEF txt259 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.625 0.5 RAD 0.03125 - txt259 -TEXDEF txt259 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.640469 0.5 APEX 1 0.734531 0.5 RAD 0.0078125 - txt259 -TEXDEF txt259 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.625 0.515469 APEX 1 0.625 0.609531 RAD 0.0078125 - txt259 -TEXDEF txt259 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.625 0.625 RAD 0.03125 - txt259 -TEXDEF txt259 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.640469 0.625 APEX 1 0.734531 0.625 RAD 0.0078125 - txt259 -TEXDEF txt259 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.625 0.640469 APEX 1 0.625 0.734531 RAD 0.0078125 - txt259 -TEXDEF txt259 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.625 0.75 RAD 0.03125 - txt259 -TEXDEF txt259 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.640469 0.75 APEX 1 0.734531 0.75 RAD 0.0078125 - txt259 -TEXDEF txt259 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.625 0.765469 APEX 1 0.625 0.859531 RAD 0.0078125 - txt259 -TEXDEF txt260 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.625 0.875 RAD 0.03125 - txt260 -TEXDEF txt260 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.640469 0.875 APEX 1 0.734531 0.875 RAD 0.0078125 - txt260 -TEXDEF txt260 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.625 0.890469 APEX 1 0.625 0.984531 RAD 0.0078125 - txt260 -TEXDEF txt260 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.625 1 RAD 0.03125 - txt260 -TEXDEF txt260 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.640469 1 APEX 1 0.734531 1 RAD 0.0078125 - txt260 -TEXDEF txt260 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.75 0 RAD 0.03125 - txt260 -TEXDEF txt260 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.765469 0 APEX 1 0.859531 0 RAD 0.0078125 - txt260 -TEXDEF txt260 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.75 0.0154687 APEX 1 0.75 0.109531 RAD 0.0078125 - txt260 -TEXDEF txt260 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.75 0.125 RAD 0.03125 - txt260 -TEXDEF txt260 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.765469 0.125 APEX 1 0.859531 0.125 RAD 0.0078125 - txt260 -TEXDEF txt261 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.75 0.140469 APEX 1 0.75 0.234531 RAD 0.0078125 - txt261 -TEXDEF txt261 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.75 0.25 RAD 0.03125 - txt261 -TEXDEF txt261 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.765469 0.25 APEX 1 0.859531 0.25 RAD 0.0078125 - txt261 -TEXDEF txt261 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.75 0.265469 APEX 1 0.75 0.359531 RAD 0.0078125 - txt261 -TEXDEF txt261 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.75 0.375 RAD 0.03125 - txt261 -TEXDEF txt261 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.765469 0.375 APEX 1 0.859531 0.375 RAD 0.0078125 - txt261 -TEXDEF txt261 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.75 0.390469 APEX 1 0.75 0.484531 RAD 0.0078125 - txt261 -TEXDEF txt261 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.75 0.5 RAD 0.03125 - txt261 -TEXDEF txt261 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.765469 0.5 APEX 1 0.859531 0.5 RAD 0.0078125 - txt261 -TEXDEF txt261 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.75 0.515469 APEX 1 0.75 0.609531 RAD 0.0078125 - txt261 -TEXDEF txt262 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.75 0.625 RAD 0.03125 - txt262 -TEXDEF txt262 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.765469 0.625 APEX 1 0.859531 0.625 RAD 0.0078125 - txt262 -TEXDEF txt262 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.75 0.640469 APEX 1 0.75 0.734531 RAD 0.0078125 - txt262 -TEXDEF txt262 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.75 0.75 RAD 0.03125 - txt262 -TEXDEF txt262 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.765469 0.75 APEX 1 0.859531 0.75 RAD 0.0078125 - txt262 -TEXDEF txt262 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.75 0.765469 APEX 1 0.75 0.859531 RAD 0.0078125 - txt262 -TEXDEF txt262 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.75 0.875 RAD 0.03125 - txt262 -TEXDEF txt262 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.765469 0.875 APEX 1 0.859531 0.875 RAD 0.0078125 - txt262 -TEXDEF txt262 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.75 0.890469 APEX 1 0.75 0.984531 RAD 0.0078125 - txt262 -TEXDEF txt262 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.75 1 RAD 0.03125 - txt262 -TEXDEF txt263 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.765469 1 APEX 1 0.859531 1 RAD 0.0078125 - txt263 -TEXDEF txt263 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.875 0 RAD 0.03125 - txt263 -TEXDEF txt263 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.890469 0 APEX 1 0.984531 0 RAD 0.0078125 - txt263 -TEXDEF txt263 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.875 0.0154687 APEX 1 0.875 0.109531 RAD 0.0078125 - txt263 -TEXDEF txt263 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.875 0.125 RAD 0.03125 - txt263 -TEXDEF txt263 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.890469 0.125 APEX 1 0.984531 0.125 RAD 0.0078125 - txt263 -TEXDEF txt263 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.875 0.140469 APEX 1 0.875 0.234531 RAD 0.0078125 - txt263 -TEXDEF txt263 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.875 0.25 RAD 0.03125 - txt263 -TEXDEF txt263 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.890469 0.25 APEX 1 0.984531 0.25 RAD 0.0078125 - txt263 -TEXDEF txt263 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.875 0.265469 APEX 1 0.875 0.359531 RAD 0.0078125 - txt263 -TEXDEF txt264 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.875 0.375 RAD 0.03125 - txt264 -TEXDEF txt264 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.890469 0.375 APEX 1 0.984531 0.375 RAD 0.0078125 - txt264 -TEXDEF txt264 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.875 0.390469 APEX 1 0.875 0.484531 RAD 0.0078125 - txt264 -TEXDEF txt264 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.875 0.5 RAD 0.03125 - txt264 -TEXDEF txt264 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.890469 0.5 APEX 1 0.984531 0.5 RAD 0.0078125 - txt264 -TEXDEF txt264 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.875 0.515469 APEX 1 0.875 0.609531 RAD 0.0078125 - txt264 -TEXDEF txt264 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.875 0.625 RAD 0.03125 - txt264 -TEXDEF txt264 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.890469 0.625 APEX 1 0.984531 0.625 RAD 0.0078125 - txt264 -TEXDEF txt264 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.875 0.640469 APEX 1 0.875 0.734531 RAD 0.0078125 - txt264 -TEXDEF txt264 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.875 0.75 RAD 0.03125 - txt264 -TEXDEF txt265 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.890469 0.75 APEX 1 0.984531 0.75 RAD 0.0078125 - txt265 -TEXDEF txt265 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.875 0.765469 APEX 1 0.875 0.859531 RAD 0.0078125 - txt265 -TEXDEF txt265 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.875 0.875 RAD 0.03125 - txt265 -TEXDEF txt265 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.890469 0.875 APEX 1 0.984531 0.875 RAD 0.0078125 - txt265 -TEXDEF txt265 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.875 0.890469 APEX 1 0.875 0.984531 RAD 0.0078125 - txt265 -TEXDEF txt265 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 0.875 1 RAD 0.03125 - txt265 -TEXDEF txt265 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.9 0.1 - TEXFUNC 0 - -FCYLINDER - BASE 1 0.890469 1 APEX 1 0.984531 1 RAD 0.0078125 - txt265 -TEXDEF txt265 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 1 0 RAD 0.03125 - txt265 -TEXDEF txt265 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 1 0.0154687 APEX 1 1 0.109531 RAD 0.0078125 - txt265 -TEXDEF txt265 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 1 0.125 RAD 0.03125 - txt265 -TEXDEF txt266 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 1 0.140469 APEX 1 1 0.234531 RAD 0.0078125 - txt266 -TEXDEF txt266 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 1 0.25 RAD 0.03125 - txt266 -TEXDEF txt266 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 1 0.265469 APEX 1 1 0.359531 RAD 0.0078125 - txt266 -TEXDEF txt266 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 1 0.375 RAD 0.03125 - txt266 -TEXDEF txt266 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 1 0.390469 APEX 1 1 0.484531 RAD 0.0078125 - txt266 -TEXDEF txt266 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 1 0.5 RAD 0.03125 - txt266 -TEXDEF txt266 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 1 0.515469 APEX 1 1 0.609531 RAD 0.0078125 - txt266 -TEXDEF txt266 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 1 0.625 RAD 0.03125 - txt266 -TEXDEF txt266 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 1 0.640469 APEX 1 1 0.734531 RAD 0.0078125 - txt266 -TEXDEF txt266 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 1 0.75 RAD 0.03125 - txt266 -TEXDEF txt267 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 1 0.765469 APEX 1 1 0.859531 RAD 0.0078125 - txt267 -TEXDEF txt267 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 1 0.875 RAD 0.03125 - txt267 -TEXDEF txt267 AMBIENT 0.1 DIFFUSE 0.99 SPECULAR 0 OPACITY 1 - COLOR 0.1 0.1 0.9 - TEXFUNC 0 - -FCYLINDER - BASE 1 1 0.890469 APEX 1 1 0.984531 RAD 0.0078125 - txt267 -TEXDEF txt267 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 - COLOR 0.9 0.9 0.9 - TEXFUNC 0 - - SPHERE CENTER 1 1 1 RAD 0.03125 - txt267 - -END_SCENE diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/dat/model2.dat b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/dat/model2.dat deleted file mode 100644 index c57ce49ce..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/dat/model2.dat +++ /dev/null @@ -1,104 +0,0 @@ -BEGIN_SCENE - OUTFILE /dev/null - RESOLUTION 512 512 - VERBOSE 0 - -CAMERA - ZOOM 1.0 - ASPECTRATIO 1.0 - ANTIALIASING 1 - RAYDEPTH 12 - CENTER 0.0 0.0 -5.0 - VIEWDIR 0.0 0.0 1.0 - UPDIR 0.0 1.0 0.0 -END_CAMERA - -LIGHT - CENTER -5.0 0.0 -4.0 - RAD 0.2 - COLOR 1.0 0.1 0.0 - -LIGHT - CENTER 4.0 5.0 -4.0 - RAD 0.2 - COLOR 0.0 0.1 1.0 - -LIGHT - CENTER 4.0 1.5 3.0 - RAD 0.2 - COLOR 0.5 0.5 0.5 - -TRI - V0 0.0 -4.0 12.0 - V1 4.0 -4.0 8.0 - V2 -4.0 -4.0 8.0 - TEXTURE - AMBIENT 0.1 DIFFUSE 0.2 SPECULAR 0.7 OPACITY 1.0 - COLOR 1.0 1.0 1.0 - TEXFUNC 0 - -SPHERE - CENTER 0.0 0.0 5.0 - RAD 1.3 - TEXTURE - AMBIENT 0.1 DIFFUSE 0.0 SPECULAR 0.9 OPACITY 1.0 - COLOR 1.0 1.0 1.0 - TEXFUNC 0 - -SPHERE - CENTER 1.0 0.0 4.3 - RAD 0.8 - TEXTURE - AMBIENT 0.1 DIFFUSE 0.9 SPECULAR 0.0 OPACITY 1.0 - COLOR 0.3 0.3 1.0 - TEXFUNC 3 - CENTER 1.0 0.0 4.3 - ROTATE 0. 0.0 0.0 - SCALE 1.0 1.0 1.0 - -SPHERE - CENTER 0.0 2.0 8.0 - RAD 1.0 - TEXTURE - AMBIENT 0.1 DIFFUSE 0.9 SPECULAR 0.0 OPACITY 1.0 - COLOR 1.0 0.0 1.0 - TEXFUNC 4 - CENTER 0.0 1.0 8.0 - ROTATE 0. 0.0 0.0 - SCALE 1.0 1.0 1.0 - -SPHERE - CENTER -1.0 -0.5 5.0 - RAD 1.0 - TEXTURE - AMBIENT 0.1 DIFFUSE 0.9 SPECULAR 0.0 OPACITY 1.0 - COLOR 1.0 1.0 0.5 - TEXFUNC 6 - CENTER -1.0 -0.5 5.0 - ROTATE 0. 0.0 0.0 - SCALE 1.0 1.0 1.0 - -PLANE - CENTER 0.0 -5.0 0.0 - NORMAL 0.0 1.0 0.0 - TEXTURE - AMBIENT 0.1 DIFFUSE 0.9 SPECULAR 0.0 OPACITY 1.0 - COLOR 1.0 1.0 1.0 - TEXFUNC 1 - CENTER 0.0 -5.0 0.0 - ROTATE 0. 0.0 0.0 - SCALE 1.0 1.0 1.0 - -PLANE - CENTER 0.0 0.0 15.0 - NORMAL 0.0 0.0 -1.0 - TEXTURE - AMBIENT 0.1 DIFFUSE 0.9 SPECULAR 0.0 OPACITY 1.0 - COLOR 1.0 1.0 1.0 - TEXFUNC 3 - CENTER 0.0 0.0 15.0 - ROTATE 0. 0.0 0.0 - SCALE 1.0 1.0 1.0 - -END_SCENE - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/dat/teapot.dat b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/dat/teapot.dat deleted file mode 100644 index 105afcddb..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/dat/teapot.dat +++ /dev/null @@ -1,9279 +0,0 @@ -BEGIN_SCENE - OUTFILE /dev/null - RESOLUTION 512 512 - VERBOSE 0 - -CAMERA - ZOOM 1.20711 -ASPECTRATIO 1.0 - ANTIALIASING 0 - RAYDEPTH 5 - CENTER 4.86 7.2 5.4 - VIEWDIR -0.475149 -0.703924 -0.527943 - UPDIR -0.29537 -0.437585 0.84928 - -END_CAMERA - -BACKGROUND 0.078 0.361 0.753 - -LIGHT CENTER -3.1 9.8 12.1 RAD 0.002 COLOR 0.5 0.5 0.5 - -LIGHT CENTER 11.3 5.1 8.8 RAD 0.002 COLOR 0.5 0.5 0.5 - -TEXDEF txt001 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 -PHONG METAL 0.5 PHONG_SIZE 4.81884 - COLOR 1 1 1 - TEXFUNC 0 - -TRI - V0 -4 -2.66667 0 V1 -2.66667 -2.66667 0 V2 -4 -1.33333 0 - txt001 -TRI - V0 -2.66667 -2.66667 0 V1 -2.66667 -1.33333 0 V2 -4 -1.33333 0 - txt001 -TRI - V0 -4 0 0 V1 -2.66667 0 0 V2 -4 1.33333 0 - txt001 -TRI - V0 -2.66667 0 0 V1 -2.66667 1.33333 0 V2 -4 1.33333 0 - txt001 -TRI - V0 -4 2.66667 0 V1 -2.66667 2.66667 0 V2 -4 4 0 - txt001 -TRI - V0 -2.66667 2.66667 0 V1 -2.66667 4 0 V2 -4 4 0 - txt001 -TRI - V0 -2.66667 -4 0 V1 -1.33333 -4 0 V2 -2.66667 -2.66667 0 - txt001 -TRI - V0 -1.33333 -4 0 V1 -1.33333 -2.66667 0 V2 -2.66667 -2.66667 0 - txt001 -TRI - V0 -2.66667 -1.33333 0 V1 -1.33333 -1.33333 0 V2 -2.66667 0 0 - txt001 -TRI - V0 -1.33333 -1.33333 0 V1 -1.33333 0 0 V2 -2.66667 0 0 - txt001 -TRI - V0 -2.66667 1.33333 0 V1 -1.33333 1.33333 0 V2 -2.66667 2.66667 0 - txt001 -TRI - V0 -1.33333 1.33333 0 V1 -1.33333 2.66667 0 V2 -2.66667 2.66667 0 - txt001 -TRI - V0 -1.33333 -2.66667 0 V1 0 -2.66667 0 V2 -1.33333 -1.33333 0 - txt001 -TRI - V0 0 -2.66667 0 V1 0 -1.33333 0 V2 -1.33333 -1.33333 0 - txt001 -TRI - V0 -1.33333 0 0 V1 0 0 0 V2 -1.33333 1.33333 0 - txt001 -TRI - V0 0 0 0 V1 0 1.33333 0 V2 -1.33333 1.33333 0 - txt001 -TRI - V0 -1.33333 2.66667 0 V1 0 2.66667 0 V2 -1.33333 4 0 - txt001 -TRI - V0 0 2.66667 0 V1 0 4 0 V2 -1.33333 4 0 - txt001 -TRI - V0 0 -4 0 V1 1.33333 -4 0 V2 0 -2.66667 0 - txt001 -TRI - V0 1.33333 -4 0 V1 1.33333 -2.66667 0 V2 0 -2.66667 0 - txt001 -TRI - V0 0 -1.33333 0 V1 1.33333 -1.33333 0 V2 0 0 0 - txt001 -TRI - V0 1.33333 -1.33333 0 V1 1.33333 0 0 V2 0 0 0 - txt001 -TRI - V0 0 1.33333 0 V1 1.33333 1.33333 0 V2 0 2.66667 0 - txt001 -TRI - V0 1.33333 1.33333 0 V1 1.33333 2.66667 0 V2 0 2.66667 0 - txt001 -TRI - V0 1.33333 -2.66667 0 V1 2.66667 -2.66667 0 V2 1.33333 -1.33333 0 - txt001 -TRI - V0 2.66667 -2.66667 0 V1 2.66667 -1.33333 0 V2 1.33333 -1.33333 0 - txt001 -TRI - V0 1.33333 0 0 V1 2.66667 0 0 V2 1.33333 1.33333 0 - txt001 -TRI - V0 2.66667 0 0 V1 2.66667 1.33333 0 V2 1.33333 1.33333 0 - txt001 -TRI - V0 1.33333 2.66667 0 V1 2.66667 2.66667 0 V2 1.33333 4 0 - txt001 -TRI - V0 2.66667 2.66667 0 V1 2.66667 4 0 V2 1.33333 4 0 - txt001 -TRI - V0 2.66667 -4 0 V1 4 -4 0 V2 2.66667 -2.66667 0 - txt001 -TRI - V0 4 -4 0 V1 4 -2.66667 0 V2 2.66667 -2.66667 0 - txt001 -TRI - V0 2.66667 -1.33333 0 V1 4 -1.33333 0 V2 2.66667 0 0 - txt001 -TRI - V0 4 -1.33333 0 V1 4 0 0 V2 2.66667 0 0 - txt001 -TRI - V0 2.66667 1.33333 0 V1 4 1.33333 0 V2 2.66667 2.66667 0 - txt001 -TRI - V0 4 1.33333 0 V1 4 2.66667 0 V2 2.66667 2.66667 0 - txt001 -TEXDEF txt002 AMBIENT 0 DIFFUSE 0.5 SPECULAR 0.5 OPACITY 1 -PHONG METAL 0.5 PHONG_SIZE 4.81884 - COLOR 0.5 0.5 0.5 - TEXFUNC 0 - -TRI - V0 -4 -4 0 V1 -2.66667 -4 0 V2 -4 -2.66667 0 - txt002 -TRI - V0 -2.66667 -4 0 V1 -2.66667 -2.66667 0 V2 -4 -2.66667 0 - txt002 -TRI - V0 -4 -1.33333 0 V1 -2.66667 -1.33333 0 V2 -4 0 0 - txt002 -TRI - V0 -2.66667 -1.33333 0 V1 -2.66667 0 0 V2 -4 0 0 - txt002 -TRI - V0 -4 1.33333 0 V1 -2.66667 1.33333 0 V2 -4 2.66667 0 - txt002 -TRI - V0 -2.66667 1.33333 0 V1 -2.66667 2.66667 0 V2 -4 2.66667 0 - txt002 -TRI - V0 -2.66667 -2.66667 0 V1 -1.33333 -2.66667 0 V2 -2.66667 -1.33333 0 - txt002 -TRI - V0 -1.33333 -2.66667 0 V1 -1.33333 -1.33333 0 V2 -2.66667 -1.33333 0 - txt002 -TRI - V0 -2.66667 0 0 V1 -1.33333 0 0 V2 -2.66667 1.33333 0 - txt002 -TRI - V0 -1.33333 0 0 V1 -1.33333 1.33333 0 V2 -2.66667 1.33333 0 - txt002 -TRI - V0 -2.66667 2.66667 0 V1 -1.33333 2.66667 0 V2 -2.66667 4 0 - txt002 -TRI - V0 -1.33333 2.66667 0 V1 -1.33333 4 0 V2 -2.66667 4 0 - txt002 -TRI - V0 -1.33333 -4 0 V1 0 -4 0 V2 -1.33333 -2.66667 0 - txt002 -TRI - V0 0 -4 0 V1 0 -2.66667 0 V2 -1.33333 -2.66667 0 - txt002 -TRI - V0 -1.33333 -1.33333 0 V1 0 -1.33333 0 V2 -1.33333 0 0 - txt002 -TRI - V0 0 -1.33333 0 V1 0 0 0 V2 -1.33333 0 0 - txt002 -TRI - V0 -1.33333 1.33333 0 V1 0 1.33333 0 V2 -1.33333 2.66667 0 - txt002 -TRI - V0 0 1.33333 0 V1 0 2.66667 0 V2 -1.33333 2.66667 0 - txt002 -TRI - V0 0 -2.66667 0 V1 1.33333 -2.66667 0 V2 0 -1.33333 0 - txt002 -TRI - V0 1.33333 -2.66667 0 V1 1.33333 -1.33333 0 V2 0 -1.33333 0 - txt002 -TRI - V0 0 0 0 V1 1.33333 0 0 V2 0 1.33333 0 - txt002 -TRI - V0 1.33333 0 0 V1 1.33333 1.33333 0 V2 0 1.33333 0 - txt002 -TRI - V0 0 2.66667 0 V1 1.33333 2.66667 0 V2 0 4 0 - txt002 -TRI - V0 1.33333 2.66667 0 V1 1.33333 4 0 V2 0 4 0 - txt002 -TRI - V0 1.33333 -4 0 V1 2.66667 -4 0 V2 1.33333 -2.66667 0 - txt002 -TRI - V0 2.66667 -4 0 V1 2.66667 -2.66667 0 V2 1.33333 -2.66667 0 - txt002 -TRI - V0 1.33333 -1.33333 0 V1 2.66667 -1.33333 0 V2 1.33333 0 0 - txt002 -TRI - V0 2.66667 -1.33333 0 V1 2.66667 0 0 V2 1.33333 0 0 - txt002 -TRI - V0 1.33333 1.33333 0 V1 2.66667 1.33333 0 V2 1.33333 2.66667 0 - txt002 -TRI - V0 2.66667 1.33333 0 V1 2.66667 2.66667 0 V2 1.33333 2.66667 0 - txt002 -TRI - V0 2.66667 -2.66667 0 V1 4 -2.66667 0 V2 2.66667 -1.33333 0 - txt002 -TRI - V0 4 -2.66667 0 V1 4 -1.33333 0 V2 2.66667 -1.33333 0 - txt002 -TRI - V0 2.66667 0 0 V1 4 0 0 V2 2.66667 1.33333 0 - txt002 -TRI - V0 4 0 0 V1 4 1.33333 0 V2 2.66667 1.33333 0 - txt002 -TRI - V0 2.66667 2.66667 0 V1 4 2.66667 0 V2 2.66667 4 0 - txt002 -TRI - V0 4 2.66667 0 V1 4 4 0 V2 2.66667 4 0 - txt002 -TEXDEF txt003 AMBIENT 0 DIFFUSE 0.75 SPECULAR 0.25 OPACITY 1 -PHONG PLASTIC 0.25 PHONG_SIZE 45.2776 - COLOR 1 0.5 0.1 - TEXFUNC 0 - -STRI - V0 1.4 0 2.4 V1 1.35074 -0.375926 2.4 V2 1.33276 -0.370922 2.45469 - N0 -0.902861 -0 -0.429934 N1 -0.871509 0.234929 -0.430442 N2 -0.953562 0.257047 -0.156989 - txt003 -STRI - V0 1.33276 -0.370922 2.45469 V1 1.38137 0 2.45469 V2 1.4 0 2.4 - N0 -0.953562 0.257047 -0.156989 N1 -0.987636 -0 -0.156768 N2 -0.902861 -0 -0.429934 - txt003 -STRI - V0 1.35074 -0.375926 2.4 V1 1.21126 -0.711407 2.4 V2 1.19514 -0.701938 2.45469 - N0 -0.871509 0.234929 -0.430442 N1 -0.780517 0.4527 -0.43111 N2 -0.854265 0.495474 -0.157281 - txt003 -STRI - V0 1.19514 -0.701938 2.45469 V1 1.33276 -0.370922 2.45469 V2 1.35074 -0.375926 2.4 - N0 -0.854265 0.495474 -0.157281 N1 -0.953562 0.257047 -0.156989 N2 -0.871509 0.234929 -0.430442 - txt003 -STRI - V0 1.21126 -0.711407 2.4 V1 0.994 -0.994 2.4 V2 0.98077 -0.98077 2.45469 - N0 -0.780517 0.4527 -0.43111 N1 -0.637936 0.637936 -0.431366 N2 -0.698293 0.698293 -0.157393 - txt003 -STRI - V0 0.98077 -0.98077 2.45469 V1 1.19514 -0.701938 2.45469 V2 1.21126 -0.711407 2.4 - N0 -0.698293 0.698293 -0.157393 N1 -0.854265 0.495474 -0.157281 N2 -0.780517 0.4527 -0.43111 - txt003 -STRI - V0 0.994 -0.994 2.4 V1 0.711407 -1.21126 2.4 V2 0.701938 -1.19514 2.45469 - N0 -0.637936 0.637936 -0.431366 N1 -0.4527 0.780517 -0.43111 N2 -0.495474 0.854265 -0.157281 - txt003 -STRI - V0 0.701938 -1.19514 2.45469 V1 0.98077 -0.98077 2.45469 V2 0.994 -0.994 2.4 - N0 -0.495474 0.854265 -0.157281 N1 -0.698293 0.698293 -0.157393 N2 -0.637936 0.637936 -0.431366 - txt003 -STRI - V0 0.711407 -1.21126 2.4 V1 0.375926 -1.35074 2.4 V2 0.370922 -1.33276 2.45469 - N0 -0.4527 0.780517 -0.43111 N1 -0.234929 0.871509 -0.430442 N2 -0.257047 0.953562 -0.156989 - txt003 -STRI - V0 0.370922 -1.33276 2.45469 V1 0.701938 -1.19514 2.45469 V2 0.711407 -1.21126 2.4 - N0 -0.257047 0.953562 -0.156989 N1 -0.495474 0.854265 -0.157281 N2 -0.4527 0.780517 -0.43111 - txt003 -STRI - V0 0.375926 -1.35074 2.4 V1 0 -1.4 2.4 V2 0 -1.38137 2.45469 - N0 -0.234929 0.871509 -0.430442 N1 7.30595e-17 0.902861 -0.429934 N2 -9.89971e-17 0.987636 -0.156768 - txt003 -STRI - V0 0 -1.38137 2.45469 V1 0.370922 -1.33276 2.45469 V2 0.375926 -1.35074 2.4 - N0 -9.89971e-17 0.987636 -0.156768 N1 -0.257047 0.953562 -0.156989 N2 -0.234929 0.871509 -0.430442 - txt003 -STRI - V0 1.38137 0 2.45469 V1 1.33276 -0.370922 2.45469 V2 1.33555 -0.371699 2.4875 - N0 -0.987636 -0 -0.156768 N1 -0.953562 0.257047 -0.156989 N2 -0.849414 0.228972 0.475466 - txt003 -STRI - V0 1.33555 -0.371699 2.4875 V1 1.38426 0 2.4875 V2 1.38137 0 2.45469 - N0 -0.849414 0.228972 0.475466 N1 -0.880022 0 0.474933 N2 -0.987636 -0 -0.156768 - txt003 -STRI - V0 1.33276 -0.370922 2.45469 V1 1.19514 -0.701938 2.45469 V2 1.19764 -0.703409 2.4875 - N0 -0.953562 0.257047 -0.156989 N1 -0.854265 0.495474 -0.157281 N2 -0.760669 0.441188 0.476167 - txt003 -STRI - V0 1.19764 -0.703409 2.4875 V1 1.33555 -0.371699 2.4875 V2 1.33276 -0.370922 2.45469 - N0 -0.760669 0.441188 0.476167 N1 -0.849414 0.228972 0.475466 N2 -0.953562 0.257047 -0.156989 - txt003 -STRI - V0 1.19514 -0.701938 2.45469 V1 0.98077 -0.98077 2.45469 V2 0.982824 -0.982824 2.4875 - N0 -0.854265 0.495474 -0.157281 N1 -0.698293 0.698293 -0.157393 N2 -0.621695 0.621695 0.476435 - txt003 -STRI - V0 0.982824 -0.982824 2.4875 V1 1.19764 -0.703409 2.4875 V2 1.19514 -0.701938 2.45469 - N0 -0.621695 0.621695 0.476435 N1 -0.760669 0.441188 0.476167 N2 -0.854265 0.495474 -0.157281 - txt003 -STRI - V0 0.98077 -0.98077 2.45469 V1 0.701938 -1.19514 2.45469 V2 0.703409 -1.19764 2.4875 - N0 -0.698293 0.698293 -0.157393 N1 -0.495474 0.854265 -0.157281 N2 -0.441188 0.760669 0.476167 - txt003 -STRI - V0 0.703409 -1.19764 2.4875 V1 0.982824 -0.982824 2.4875 V2 0.98077 -0.98077 2.45469 - N0 -0.441188 0.760669 0.476167 N1 -0.621695 0.621695 0.476435 N2 -0.698293 0.698293 -0.157393 - txt003 -STRI - V0 0.701938 -1.19514 2.45469 V1 0.370922 -1.33276 2.45469 V2 0.371699 -1.33555 2.4875 - N0 -0.495474 0.854265 -0.157281 N1 -0.257047 0.953562 -0.156989 N2 -0.228972 0.849414 0.475466 - txt003 -STRI - V0 0.371699 -1.33555 2.4875 V1 0.703409 -1.19764 2.4875 V2 0.701938 -1.19514 2.45469 - N0 -0.228972 0.849414 0.475466 N1 -0.441188 0.760669 0.476167 N2 -0.495474 0.854265 -0.157281 - txt003 -STRI - V0 0.370922 -1.33276 2.45469 V1 0 -1.38137 2.45469 V2 0 -1.38426 2.4875 - N0 -0.257047 0.953562 -0.156989 N1 -9.89971e-17 0.987636 -0.156768 N2 -6.08179e-16 0.880022 0.474933 - txt003 -STRI - V0 0 -1.38426 2.4875 V1 0.371699 -1.33555 2.4875 V2 0.370922 -1.33276 2.45469 - N0 -6.08179e-16 0.880022 0.474933 N1 -0.228972 0.849414 0.475466 N2 -0.257047 0.953562 -0.156989 - txt003 -STRI - V0 1.38426 0 2.4875 V1 1.33555 -0.371699 2.4875 V2 1.35376 -0.376765 2.49844 - N0 -0.880022 0 0.474933 N1 -0.849414 0.228972 0.475466 N2 2.13636e-15 -5.93089e-16 1 - txt003 -STRI - V0 1.35376 -0.376765 2.49844 V1 1.40312 0 2.49844 V2 1.38426 0 2.4875 - N0 2.13636e-15 -5.93089e-16 1 N1 2.22045e-15 0 1 N2 -0.880022 0 0.474933 - txt003 -STRI - V0 1.33555 -0.371699 2.4875 V1 1.19764 -0.703409 2.4875 V2 1.21396 -0.712995 2.49844 - N0 -0.849414 0.228972 0.475466 N1 -0.760669 0.441188 0.476167 N2 1.87966e-15 -1.16933e-15 1 - txt003 -STRI - V0 1.21396 -0.712995 2.49844 V1 1.35376 -0.376765 2.49844 V2 1.33555 -0.371699 2.4875 - N0 1.87966e-15 -1.16933e-15 1 N1 2.13636e-15 -5.93089e-16 1 N2 -0.849414 0.228972 0.475466 - txt003 -STRI - V0 1.19764 -0.703409 2.4875 V1 0.982824 -0.982824 2.4875 V2 0.996219 -0.996219 2.49844 - N0 -0.760669 0.441188 0.476167 N1 -0.621695 0.621695 0.476435 N2 1.4538e-15 -1.67359e-15 1 - txt003 -STRI - V0 0.996219 -0.996219 2.49844 V1 1.21396 -0.712995 2.49844 V2 1.19764 -0.703409 2.4875 - N0 1.4538e-15 -1.67359e-15 1 N1 1.87966e-15 -1.16933e-15 1 N2 -0.760669 0.441188 0.476167 - txt003 -STRI - V0 0.982824 -0.982824 2.4875 V1 0.703409 -1.19764 2.4875 V2 0.712995 -1.21396 2.49844 - N0 -0.621695 0.621695 0.476435 N1 -0.441188 0.760669 0.476167 N2 8.74229e-16 -2.05298e-15 1 - txt003 -STRI - V0 0.712995 -1.21396 2.49844 V1 0.996219 -0.996219 2.49844 V2 0.982824 -0.982824 2.4875 - N0 8.74229e-16 -2.05298e-15 1 N1 1.4538e-15 -1.67359e-15 1 N2 -0.621695 0.621695 0.476435 - txt003 -STRI - V0 0.703409 -1.19764 2.4875 V1 0.371699 -1.33555 2.4875 V2 0.376765 -1.35376 2.49844 - N0 -0.441188 0.760669 0.476167 N1 -0.228972 0.849414 0.475466 N2 1.77072e-16 -2.25214e-15 1 - txt003 -STRI - V0 0.376765 -1.35376 2.49844 V1 0.712995 -1.21396 2.49844 V2 0.703409 -1.19764 2.4875 - N0 1.77072e-16 -2.25214e-15 1 N1 8.74229e-16 -2.05298e-15 1 N2 -0.441188 0.760669 0.476167 - txt003 -STRI - V0 0.371699 -1.33555 2.4875 V1 0 -1.38426 2.4875 V2 0 -1.40312 2.49844 - N0 -0.228972 0.849414 0.475466 N1 -6.08179e-16 0.880022 0.474933 N2 -5.65179e-16 -2.22045e-15 1 - txt003 -STRI - V0 0 -1.40312 2.49844 V1 0.376765 -1.35376 2.49844 V2 0.371699 -1.33555 2.4875 - N0 -5.65179e-16 -2.22045e-15 1 N1 1.77072e-16 -2.25214e-15 1 N2 -0.228972 0.849414 0.475466 - txt003 -STRI - V0 1.40312 0 2.49844 V1 1.35376 -0.376765 2.49844 V2 1.38201 -0.384628 2.4875 - N0 2.22045e-15 0 1 N1 2.13636e-15 -5.93089e-16 1 N2 0.537012 -0.14476 0.831061 - txt003 -STRI - V0 1.38201 -0.384628 2.4875 V1 1.43241 0 2.4875 V2 1.40312 0 2.49844 - N0 0.537012 -0.14476 0.831061 N1 0.556738 0 0.830688 N2 2.22045e-15 0 1 - txt003 -STRI - V0 1.35376 -0.376765 2.49844 V1 1.21396 -0.712995 2.49844 V2 1.2393 -0.727875 2.4875 - N0 2.13636e-15 -5.93089e-16 1 N1 1.87966e-15 -1.16933e-15 1 N2 0.480481 -0.278679 0.83155 - txt003 -STRI - V0 1.2393 -0.727875 2.4875 V1 1.38201 -0.384628 2.4875 V2 1.35376 -0.376765 2.49844 - N0 0.480481 -0.278679 0.83155 N1 0.537012 -0.14476 0.831061 N2 2.13636e-15 -5.93089e-16 1 - txt003 -STRI - V0 1.21396 -0.712995 2.49844 V1 0.996219 -0.996219 2.49844 V2 1.01701 -1.01701 2.4875 - N0 1.87966e-15 -1.16933e-15 1 N1 1.4538e-15 -1.67359e-15 1 N2 0.392564 -0.392564 0.831737 - txt003 -STRI - V0 1.01701 -1.01701 2.4875 V1 1.2393 -0.727875 2.4875 V2 1.21396 -0.712995 2.49844 - N0 0.392564 -0.392564 0.831737 N1 0.480481 -0.278679 0.83155 N2 1.87966e-15 -1.16933e-15 1 - txt003 -STRI - V0 0.996219 -0.996219 2.49844 V1 0.712995 -1.21396 2.49844 V2 0.727875 -1.2393 2.4875 - N0 1.4538e-15 -1.67359e-15 1 N1 8.74229e-16 -2.05298e-15 1 N2 0.278679 -0.480481 0.83155 - txt003 -STRI - V0 0.727875 -1.2393 2.4875 V1 1.01701 -1.01701 2.4875 V2 0.996219 -0.996219 2.49844 - N0 0.278679 -0.480481 0.83155 N1 0.392564 -0.392564 0.831737 N2 1.4538e-15 -1.67359e-15 1 - txt003 -STRI - V0 0.712995 -1.21396 2.49844 V1 0.376765 -1.35376 2.49844 V2 0.384628 -1.38201 2.4875 - N0 8.74229e-16 -2.05298e-15 1 N1 1.77072e-16 -2.25214e-15 1 N2 0.14476 -0.537012 0.831061 - txt003 -STRI - V0 0.384628 -1.38201 2.4875 V1 0.727875 -1.2393 2.4875 V2 0.712995 -1.21396 2.49844 - N0 0.14476 -0.537012 0.831061 N1 0.278679 -0.480481 0.83155 N2 8.74229e-16 -2.05298e-15 1 - txt003 -STRI - V0 0.376765 -1.35376 2.49844 V1 0 -1.40312 2.49844 V2 0 -1.43241 2.4875 - N0 1.77072e-16 -2.25214e-15 1 N1 -5.65179e-16 -2.22045e-15 1 N2 -4.5989e-16 -0.556738 0.830688 - txt003 -STRI - V0 0 -1.43241 2.4875 V1 0.384628 -1.38201 2.4875 V2 0.376765 -1.35376 2.49844 - N0 -4.5989e-16 -0.556738 0.830688 N1 0.14476 -0.537012 0.831061 N2 1.77072e-16 -2.25214e-15 1 - txt003 -STRI - V0 1.43241 0 2.4875 V1 1.38201 -0.384628 2.4875 V2 1.41495 -0.393796 2.45469 - N0 0.556738 0 0.830688 N1 0.537012 -0.14476 0.831061 N2 0.755869 -0.203756 0.622211 - txt003 -STRI - V0 1.41495 -0.393796 2.45469 V1 1.46655 0 2.45469 V2 1.43241 0 2.4875 - N0 0.755869 -0.203756 0.622211 N1 0.783289 0 0.621658 N2 0.556738 0 0.830688 - txt003 -STRI - V0 1.38201 -0.384628 2.4875 V1 1.2393 -0.727875 2.4875 V2 1.26884 -0.745225 2.45469 - N0 0.537012 -0.14476 0.831061 N1 0.480481 -0.278679 0.83155 N2 0.67669 -0.39248 0.622937 - txt003 -STRI - V0 1.26884 -0.745225 2.45469 V1 1.41495 -0.393796 2.45469 V2 1.38201 -0.384628 2.4875 - N0 0.67669 -0.39248 0.622937 N1 0.755869 -0.203756 0.622211 N2 0.537012 -0.14476 0.831061 - txt003 -STRI - V0 1.2393 -0.727875 2.4875 V1 1.01701 -1.01701 2.4875 V2 1.04125 -1.04125 2.45469 - N0 0.480481 -0.278679 0.83155 N1 0.392564 -0.392564 0.831737 N2 0.552993 -0.552993 0.623215 - txt003 -STRI - V0 1.04125 -1.04125 2.45469 V1 1.26884 -0.745225 2.45469 V2 1.2393 -0.727875 2.4875 - N0 0.552993 -0.552993 0.623215 N1 0.67669 -0.39248 0.622937 N2 0.480481 -0.278679 0.83155 - txt003 -STRI - V0 1.01701 -1.01701 2.4875 V1 0.727875 -1.2393 2.4875 V2 0.745225 -1.26884 2.45469 - N0 0.392564 -0.392564 0.831737 N1 0.278679 -0.480481 0.83155 N2 0.39248 -0.67669 0.622937 - txt003 -STRI - V0 0.745225 -1.26884 2.45469 V1 1.04125 -1.04125 2.45469 V2 1.01701 -1.01701 2.4875 - N0 0.39248 -0.67669 0.622937 N1 0.552993 -0.552993 0.623215 N2 0.392564 -0.392564 0.831737 - txt003 -STRI - V0 0.727875 -1.2393 2.4875 V1 0.384628 -1.38201 2.4875 V2 0.393796 -1.41495 2.45469 - N0 0.278679 -0.480481 0.83155 N1 0.14476 -0.537012 0.831061 N2 0.203756 -0.755869 0.622211 - txt003 -STRI - V0 0.393796 -1.41495 2.45469 V1 0.745225 -1.26884 2.45469 V2 0.727875 -1.2393 2.4875 - N0 0.203756 -0.755869 0.622211 N1 0.39248 -0.67669 0.622937 N2 0.278679 -0.480481 0.83155 - txt003 -STRI - V0 0.384628 -1.38201 2.4875 V1 0 -1.43241 2.4875 V2 0 -1.46655 2.45469 - N0 0.14476 -0.537012 0.831061 N1 -4.5989e-16 -0.556738 0.830688 N2 -1.94969e-16 -0.783289 0.621658 - txt003 -STRI - V0 0 -1.46655 2.45469 V1 0.393796 -1.41495 2.45469 V2 0.384628 -1.38201 2.4875 - N0 -1.94969e-16 -0.783289 0.621658 N1 0.203756 -0.755869 0.622211 N2 0.14476 -0.537012 0.831061 - txt003 -STRI - V0 1.46655 0 2.45469 V1 1.41495 -0.393796 2.45469 V2 1.44722 -0.402778 2.4 - N0 0.783289 0 0.621658 N1 0.755869 -0.203756 0.622211 N2 0.871509 -0.234929 0.430442 - txt003 -STRI - V0 1.44722 -0.402778 2.4 V1 1.5 0 2.4 V2 1.46655 0 2.45469 - N0 0.871509 -0.234929 0.430442 N1 0.902861 0 0.429934 N2 0.783289 0 0.621658 - txt003 -STRI - V0 1.41495 -0.393796 2.45469 V1 1.26884 -0.745225 2.45469 V2 1.29778 -0.762222 2.4 - N0 0.755869 -0.203756 0.622211 N1 0.67669 -0.39248 0.622937 N2 0.780517 -0.4527 0.43111 - txt003 -STRI - V0 1.29778 -0.762222 2.4 V1 1.44722 -0.402778 2.4 V2 1.41495 -0.393796 2.45469 - N0 0.780517 -0.4527 0.43111 N1 0.871509 -0.234929 0.430442 N2 0.755869 -0.203756 0.622211 - txt003 -STRI - V0 1.26884 -0.745225 2.45469 V1 1.04125 -1.04125 2.45469 V2 1.065 -1.065 2.4 - N0 0.67669 -0.39248 0.622937 N1 0.552993 -0.552993 0.623215 N2 0.637936 -0.637936 0.431366 - txt003 -STRI - V0 1.065 -1.065 2.4 V1 1.29778 -0.762222 2.4 V2 1.26884 -0.745225 2.45469 - N0 0.637936 -0.637936 0.431366 N1 0.780517 -0.4527 0.43111 N2 0.67669 -0.39248 0.622937 - txt003 -STRI - V0 1.04125 -1.04125 2.45469 V1 0.745225 -1.26884 2.45469 V2 0.762222 -1.29778 2.4 - N0 0.552993 -0.552993 0.623215 N1 0.39248 -0.67669 0.622937 N2 0.4527 -0.780517 0.43111 - txt003 -STRI - V0 0.762222 -1.29778 2.4 V1 1.065 -1.065 2.4 V2 1.04125 -1.04125 2.45469 - N0 0.4527 -0.780517 0.43111 N1 0.637936 -0.637936 0.431366 N2 0.552993 -0.552993 0.623215 - txt003 -STRI - V0 0.745225 -1.26884 2.45469 V1 0.393796 -1.41495 2.45469 V2 0.402778 -1.44722 2.4 - N0 0.39248 -0.67669 0.622937 N1 0.203756 -0.755869 0.622211 N2 0.234929 -0.871509 0.430442 - txt003 -STRI - V0 0.402778 -1.44722 2.4 V1 0.762222 -1.29778 2.4 V2 0.745225 -1.26884 2.45469 - N0 0.234929 -0.871509 0.430442 N1 0.4527 -0.780517 0.43111 N2 0.39248 -0.67669 0.622937 - txt003 -STRI - V0 0.393796 -1.41495 2.45469 V1 0 -1.46655 2.45469 V2 0 -1.5 2.4 - N0 0.203756 -0.755869 0.622211 N1 -1.94969e-16 -0.783289 0.621658 N2 -6.81889e-17 -0.902861 0.429934 - txt003 -STRI - V0 0 -1.5 2.4 V1 0.402778 -1.44722 2.4 V2 0.393796 -1.41495 2.45469 - N0 -6.81889e-17 -0.902861 0.429934 N1 0.234929 -0.871509 0.430442 N2 0.203756 -0.755869 0.622211 - txt003 -STRI - V0 0 -1.4 2.4 V1 -0.375926 -1.35074 2.4 V2 -0.370922 -1.33276 2.45469 - N0 0 0.902861 -0.429934 N1 0.234929 0.871509 -0.430442 N2 0.257047 0.953562 -0.156989 - txt003 -STRI - V0 -0.370922 -1.33276 2.45469 V1 0 -1.38137 2.45469 V2 0 -1.4 2.4 - N0 0.257047 0.953562 -0.156989 N1 0 0.987636 -0.156768 N2 0 0.902861 -0.429934 - txt003 -STRI - V0 -0.375926 -1.35074 2.4 V1 -0.711407 -1.21126 2.4 V2 -0.701938 -1.19514 2.45469 - N0 0.234929 0.871509 -0.430442 N1 0.4527 0.780517 -0.43111 N2 0.495474 0.854265 -0.157281 - txt003 -STRI - V0 -0.701938 -1.19514 2.45469 V1 -0.370922 -1.33276 2.45469 V2 -0.375926 -1.35074 2.4 - N0 0.495474 0.854265 -0.157281 N1 0.257047 0.953562 -0.156989 N2 0.234929 0.871509 -0.430442 - txt003 -STRI - V0 -0.711407 -1.21126 2.4 V1 -0.994 -0.994 2.4 V2 -0.98077 -0.98077 2.45469 - N0 0.4527 0.780517 -0.43111 N1 0.637936 0.637936 -0.431366 N2 0.698293 0.698293 -0.157393 - txt003 -STRI - V0 -0.98077 -0.98077 2.45469 V1 -0.701938 -1.19514 2.45469 V2 -0.711407 -1.21126 2.4 - N0 0.698293 0.698293 -0.157393 N1 0.495474 0.854265 -0.157281 N2 0.4527 0.780517 -0.43111 - txt003 -STRI - V0 -0.994 -0.994 2.4 V1 -1.21126 -0.711407 2.4 V2 -1.19514 -0.701938 2.45469 - N0 0.637936 0.637936 -0.431366 N1 0.780517 0.4527 -0.43111 N2 0.854265 0.495474 -0.157281 - txt003 -STRI - V0 -1.19514 -0.701938 2.45469 V1 -0.98077 -0.98077 2.45469 V2 -0.994 -0.994 2.4 - N0 0.854265 0.495474 -0.157281 N1 0.698293 0.698293 -0.157393 N2 0.637936 0.637936 -0.431366 - txt003 -STRI - V0 -1.21126 -0.711407 2.4 V1 -1.35074 -0.375926 2.4 V2 -1.33276 -0.370922 2.45469 - N0 0.780517 0.4527 -0.43111 N1 0.871509 0.234929 -0.430442 N2 0.953562 0.257047 -0.156989 - txt003 -STRI - V0 -1.33276 -0.370922 2.45469 V1 -1.19514 -0.701938 2.45469 V2 -1.21126 -0.711407 2.4 - N0 0.953562 0.257047 -0.156989 N1 0.854265 0.495474 -0.157281 N2 0.780517 0.4527 -0.43111 - txt003 -STRI - V0 -1.35074 -0.375926 2.4 V1 -1.4 0 2.4 V2 -1.38137 0 2.45469 - N0 0.871509 0.234929 -0.430442 N1 0.902861 -7.30595e-17 -0.429934 N2 0.987636 9.89971e-17 -0.156768 - txt003 -STRI - V0 -1.38137 0 2.45469 V1 -1.33276 -0.370922 2.45469 V2 -1.35074 -0.375926 2.4 - N0 0.987636 9.89971e-17 -0.156768 N1 0.953562 0.257047 -0.156989 N2 0.871509 0.234929 -0.430442 - txt003 -STRI - V0 0 -1.38137 2.45469 V1 -0.370922 -1.33276 2.45469 V2 -0.371699 -1.33555 2.4875 - N0 0 0.987636 -0.156768 N1 0.257047 0.953562 -0.156989 N2 0.228972 0.849414 0.475466 - txt003 -STRI - V0 -0.371699 -1.33555 2.4875 V1 0 -1.38426 2.4875 V2 0 -1.38137 2.45469 - N0 0.228972 0.849414 0.475466 N1 0 0.880022 0.474933 N2 0 0.987636 -0.156768 - txt003 -STRI - V0 -0.370922 -1.33276 2.45469 V1 -0.701938 -1.19514 2.45469 V2 -0.703409 -1.19764 2.4875 - N0 0.257047 0.953562 -0.156989 N1 0.495474 0.854265 -0.157281 N2 0.441188 0.760669 0.476167 - txt003 -STRI - V0 -0.703409 -1.19764 2.4875 V1 -0.371699 -1.33555 2.4875 V2 -0.370922 -1.33276 2.45469 - N0 0.441188 0.760669 0.476167 N1 0.228972 0.849414 0.475466 N2 0.257047 0.953562 -0.156989 - txt003 -STRI - V0 -0.701938 -1.19514 2.45469 V1 -0.98077 -0.98077 2.45469 V2 -0.982824 -0.982824 2.4875 - N0 0.495474 0.854265 -0.157281 N1 0.698293 0.698293 -0.157393 N2 0.621695 0.621695 0.476435 - txt003 -STRI - V0 -0.982824 -0.982824 2.4875 V1 -0.703409 -1.19764 2.4875 V2 -0.701938 -1.19514 2.45469 - N0 0.621695 0.621695 0.476435 N1 0.441188 0.760669 0.476167 N2 0.495474 0.854265 -0.157281 - txt003 -STRI - V0 -0.98077 -0.98077 2.45469 V1 -1.19514 -0.701938 2.45469 V2 -1.19764 -0.703409 2.4875 - N0 0.698293 0.698293 -0.157393 N1 0.854265 0.495474 -0.157281 N2 0.760669 0.441188 0.476167 - txt003 -STRI - V0 -1.19764 -0.703409 2.4875 V1 -0.982824 -0.982824 2.4875 V2 -0.98077 -0.98077 2.45469 - N0 0.760669 0.441188 0.476167 N1 0.621695 0.621695 0.476435 N2 0.698293 0.698293 -0.157393 - txt003 -STRI - V0 -1.19514 -0.701938 2.45469 V1 -1.33276 -0.370922 2.45469 V2 -1.33555 -0.371699 2.4875 - N0 0.854265 0.495474 -0.157281 N1 0.953562 0.257047 -0.156989 N2 0.849414 0.228972 0.475466 - txt003 -STRI - V0 -1.33555 -0.371699 2.4875 V1 -1.19764 -0.703409 2.4875 V2 -1.19514 -0.701938 2.45469 - N0 0.849414 0.228972 0.475466 N1 0.760669 0.441188 0.476167 N2 0.854265 0.495474 -0.157281 - txt003 -STRI - V0 -1.33276 -0.370922 2.45469 V1 -1.38137 0 2.45469 V2 -1.38426 0 2.4875 - N0 0.953562 0.257047 -0.156989 N1 0.987636 9.89971e-17 -0.156768 N2 0.880022 6.08179e-16 0.474933 - txt003 -STRI - V0 -1.38426 0 2.4875 V1 -1.33555 -0.371699 2.4875 V2 -1.33276 -0.370922 2.45469 - N0 0.880022 6.08179e-16 0.474933 N1 0.849414 0.228972 0.475466 N2 0.953562 0.257047 -0.156989 - txt003 -STRI - V0 0 -1.38426 2.4875 V1 -0.371699 -1.33555 2.4875 V2 -0.376765 -1.35376 2.49844 - N0 0 0.880022 0.474933 N1 0.228972 0.849414 0.475466 N2 -5.93089e-16 -2.13636e-15 1 - txt003 -STRI - V0 -0.376765 -1.35376 2.49844 V1 0 -1.40312 2.49844 V2 0 -1.38426 2.4875 - N0 -5.93089e-16 -2.13636e-15 1 N1 0 -2.22045e-15 1 N2 0 0.880022 0.474933 - txt003 -STRI - V0 -0.371699 -1.33555 2.4875 V1 -0.703409 -1.19764 2.4875 V2 -0.712995 -1.21396 2.49844 - N0 0.228972 0.849414 0.475466 N1 0.441188 0.760669 0.476167 N2 -1.16933e-15 -1.87966e-15 1 - txt003 -STRI - V0 -0.712995 -1.21396 2.49844 V1 -0.376765 -1.35376 2.49844 V2 -0.371699 -1.33555 2.4875 - N0 -1.16933e-15 -1.87966e-15 1 N1 -5.93089e-16 -2.13636e-15 1 N2 0.228972 0.849414 0.475466 - txt003 -STRI - V0 -0.703409 -1.19764 2.4875 V1 -0.982824 -0.982824 2.4875 V2 -0.996219 -0.996219 2.49844 - N0 0.441188 0.760669 0.476167 N1 0.621695 0.621695 0.476435 N2 -1.67359e-15 -1.4538e-15 1 - txt003 -STRI - V0 -0.996219 -0.996219 2.49844 V1 -0.712995 -1.21396 2.49844 V2 -0.703409 -1.19764 2.4875 - N0 -1.67359e-15 -1.4538e-15 1 N1 -1.16933e-15 -1.87966e-15 1 N2 0.441188 0.760669 0.476167 - txt003 -STRI - V0 -0.982824 -0.982824 2.4875 V1 -1.19764 -0.703409 2.4875 V2 -1.21396 -0.712995 2.49844 - N0 0.621695 0.621695 0.476435 N1 0.760669 0.441188 0.476167 N2 -2.05298e-15 -8.74229e-16 1 - txt003 -STRI - V0 -1.21396 -0.712995 2.49844 V1 -0.996219 -0.996219 2.49844 V2 -0.982824 -0.982824 2.4875 - N0 -2.05298e-15 -8.74229e-16 1 N1 -1.67359e-15 -1.4538e-15 1 N2 0.621695 0.621695 0.476435 - txt003 -STRI - V0 -1.19764 -0.703409 2.4875 V1 -1.33555 -0.371699 2.4875 V2 -1.35376 -0.376765 2.49844 - N0 0.760669 0.441188 0.476167 N1 0.849414 0.228972 0.475466 N2 -2.25214e-15 -1.77072e-16 1 - txt003 -STRI - V0 -1.35376 -0.376765 2.49844 V1 -1.21396 -0.712995 2.49844 V2 -1.19764 -0.703409 2.4875 - N0 -2.25214e-15 -1.77072e-16 1 N1 -2.05298e-15 -8.74229e-16 1 N2 0.760669 0.441188 0.476167 - txt003 -STRI - V0 -1.33555 -0.371699 2.4875 V1 -1.38426 0 2.4875 V2 -1.40312 0 2.49844 - N0 0.849414 0.228972 0.475466 N1 0.880022 6.08179e-16 0.474933 N2 -2.22045e-15 5.65179e-16 1 - txt003 -STRI - V0 -1.40312 0 2.49844 V1 -1.35376 -0.376765 2.49844 V2 -1.33555 -0.371699 2.4875 - N0 -2.22045e-15 5.65179e-16 1 N1 -2.25214e-15 -1.77072e-16 1 N2 0.849414 0.228972 0.475466 - txt003 -STRI - V0 0 -1.40312 2.49844 V1 -0.376765 -1.35376 2.49844 V2 -0.384628 -1.38201 2.4875 - N0 0 -2.22045e-15 1 N1 -5.93089e-16 -2.13636e-15 1 N2 -0.14476 -0.537012 0.831061 - txt003 -STRI - V0 -0.384628 -1.38201 2.4875 V1 0 -1.43241 2.4875 V2 0 -1.40312 2.49844 - N0 -0.14476 -0.537012 0.831061 N1 0 -0.556738 0.830688 N2 0 -2.22045e-15 1 - txt003 -STRI - V0 -0.376765 -1.35376 2.49844 V1 -0.712995 -1.21396 2.49844 V2 -0.727875 -1.2393 2.4875 - N0 -5.93089e-16 -2.13636e-15 1 N1 -1.16933e-15 -1.87966e-15 1 N2 -0.278679 -0.480481 0.83155 - txt003 -STRI - V0 -0.727875 -1.2393 2.4875 V1 -0.384628 -1.38201 2.4875 V2 -0.376765 -1.35376 2.49844 - N0 -0.278679 -0.480481 0.83155 N1 -0.14476 -0.537012 0.831061 N2 -5.93089e-16 -2.13636e-15 1 - txt003 -STRI - V0 -0.712995 -1.21396 2.49844 V1 -0.996219 -0.996219 2.49844 V2 -1.01701 -1.01701 2.4875 - N0 -1.16933e-15 -1.87966e-15 1 N1 -1.67359e-15 -1.4538e-15 1 N2 -0.392564 -0.392564 0.831737 - txt003 -STRI - V0 -1.01701 -1.01701 2.4875 V1 -0.727875 -1.2393 2.4875 V2 -0.712995 -1.21396 2.49844 - N0 -0.392564 -0.392564 0.831737 N1 -0.278679 -0.480481 0.83155 N2 -1.16933e-15 -1.87966e-15 1 - txt003 -STRI - V0 -0.996219 -0.996219 2.49844 V1 -1.21396 -0.712995 2.49844 V2 -1.2393 -0.727875 2.4875 - N0 -1.67359e-15 -1.4538e-15 1 N1 -2.05298e-15 -8.74229e-16 1 N2 -0.480481 -0.278679 0.83155 - txt003 -STRI - V0 -1.2393 -0.727875 2.4875 V1 -1.01701 -1.01701 2.4875 V2 -0.996219 -0.996219 2.49844 - N0 -0.480481 -0.278679 0.83155 N1 -0.392564 -0.392564 0.831737 N2 -1.67359e-15 -1.4538e-15 1 - txt003 -STRI - V0 -1.21396 -0.712995 2.49844 V1 -1.35376 -0.376765 2.49844 V2 -1.38201 -0.384628 2.4875 - N0 -2.05298e-15 -8.74229e-16 1 N1 -2.25214e-15 -1.77072e-16 1 N2 -0.537012 -0.14476 0.831061 - txt003 -STRI - V0 -1.38201 -0.384628 2.4875 V1 -1.2393 -0.727875 2.4875 V2 -1.21396 -0.712995 2.49844 - N0 -0.537012 -0.14476 0.831061 N1 -0.480481 -0.278679 0.83155 N2 -2.05298e-15 -8.74229e-16 1 - txt003 -STRI - V0 -1.35376 -0.376765 2.49844 V1 -1.40312 0 2.49844 V2 -1.43241 0 2.4875 - N0 -2.25214e-15 -1.77072e-16 1 N1 -2.22045e-15 5.65179e-16 1 N2 -0.556738 4.5989e-16 0.830688 - txt003 -STRI - V0 -1.43241 0 2.4875 V1 -1.38201 -0.384628 2.4875 V2 -1.35376 -0.376765 2.49844 - N0 -0.556738 4.5989e-16 0.830688 N1 -0.537012 -0.14476 0.831061 N2 -2.25214e-15 -1.77072e-16 1 - txt003 -STRI - V0 0 -1.43241 2.4875 V1 -0.384628 -1.38201 2.4875 V2 -0.393796 -1.41495 2.45469 - N0 0 -0.556738 0.830688 N1 -0.14476 -0.537012 0.831061 N2 -0.203756 -0.755869 0.622211 - txt003 -STRI - V0 -0.393796 -1.41495 2.45469 V1 0 -1.46655 2.45469 V2 0 -1.43241 2.4875 - N0 -0.203756 -0.755869 0.622211 N1 0 -0.783289 0.621658 N2 0 -0.556738 0.830688 - txt003 -STRI - V0 -0.384628 -1.38201 2.4875 V1 -0.727875 -1.2393 2.4875 V2 -0.745225 -1.26884 2.45469 - N0 -0.14476 -0.537012 0.831061 N1 -0.278679 -0.480481 0.83155 N2 -0.39248 -0.67669 0.622937 - txt003 -STRI - V0 -0.745225 -1.26884 2.45469 V1 -0.393796 -1.41495 2.45469 V2 -0.384628 -1.38201 2.4875 - N0 -0.39248 -0.67669 0.622937 N1 -0.203756 -0.755869 0.622211 N2 -0.14476 -0.537012 0.831061 - txt003 -STRI - V0 -0.727875 -1.2393 2.4875 V1 -1.01701 -1.01701 2.4875 V2 -1.04125 -1.04125 2.45469 - N0 -0.278679 -0.480481 0.83155 N1 -0.392564 -0.392564 0.831737 N2 -0.552993 -0.552993 0.623215 - txt003 -STRI - V0 -1.04125 -1.04125 2.45469 V1 -0.745225 -1.26884 2.45469 V2 -0.727875 -1.2393 2.4875 - N0 -0.552993 -0.552993 0.623215 N1 -0.39248 -0.67669 0.622937 N2 -0.278679 -0.480481 0.83155 - txt003 -STRI - V0 -1.01701 -1.01701 2.4875 V1 -1.2393 -0.727875 2.4875 V2 -1.26884 -0.745225 2.45469 - N0 -0.392564 -0.392564 0.831737 N1 -0.480481 -0.278679 0.83155 N2 -0.67669 -0.39248 0.622937 - txt003 -STRI - V0 -1.26884 -0.745225 2.45469 V1 -1.04125 -1.04125 2.45469 V2 -1.01701 -1.01701 2.4875 - N0 -0.67669 -0.39248 0.622937 N1 -0.552993 -0.552993 0.623215 N2 -0.392564 -0.392564 0.831737 - txt003 -STRI - V0 -1.2393 -0.727875 2.4875 V1 -1.38201 -0.384628 2.4875 V2 -1.41495 -0.393796 2.45469 - N0 -0.480481 -0.278679 0.83155 N1 -0.537012 -0.14476 0.831061 N2 -0.755869 -0.203756 0.622211 - txt003 -STRI - V0 -1.41495 -0.393796 2.45469 V1 -1.26884 -0.745225 2.45469 V2 -1.2393 -0.727875 2.4875 - N0 -0.755869 -0.203756 0.622211 N1 -0.67669 -0.39248 0.622937 N2 -0.480481 -0.278679 0.83155 - txt003 -STRI - V0 -1.38201 -0.384628 2.4875 V1 -1.43241 0 2.4875 V2 -1.46655 0 2.45469 - N0 -0.537012 -0.14476 0.831061 N1 -0.556738 4.5989e-16 0.830688 N2 -0.783289 1.94969e-16 0.621658 - txt003 -STRI - V0 -1.46655 0 2.45469 V1 -1.41495 -0.393796 2.45469 V2 -1.38201 -0.384628 2.4875 - N0 -0.783289 1.94969e-16 0.621658 N1 -0.755869 -0.203756 0.622211 N2 -0.537012 -0.14476 0.831061 - txt003 -STRI - V0 0 -1.46655 2.45469 V1 -0.393796 -1.41495 2.45469 V2 -0.402778 -1.44722 2.4 - N0 0 -0.783289 0.621658 N1 -0.203756 -0.755869 0.622211 N2 -0.234929 -0.871509 0.430442 - txt003 -STRI - V0 -0.402778 -1.44722 2.4 V1 0 -1.5 2.4 V2 0 -1.46655 2.45469 - N0 -0.234929 -0.871509 0.430442 N1 0 -0.902861 0.429934 N2 0 -0.783289 0.621658 - txt003 -STRI - V0 -0.393796 -1.41495 2.45469 V1 -0.745225 -1.26884 2.45469 V2 -0.762222 -1.29778 2.4 - N0 -0.203756 -0.755869 0.622211 N1 -0.39248 -0.67669 0.622937 N2 -0.4527 -0.780517 0.43111 - txt003 -STRI - V0 -0.762222 -1.29778 2.4 V1 -0.402778 -1.44722 2.4 V2 -0.393796 -1.41495 2.45469 - N0 -0.4527 -0.780517 0.43111 N1 -0.234929 -0.871509 0.430442 N2 -0.203756 -0.755869 0.622211 - txt003 -STRI - V0 -0.745225 -1.26884 2.45469 V1 -1.04125 -1.04125 2.45469 V2 -1.065 -1.065 2.4 - N0 -0.39248 -0.67669 0.622937 N1 -0.552993 -0.552993 0.623215 N2 -0.637936 -0.637936 0.431366 - txt003 -STRI - V0 -1.065 -1.065 2.4 V1 -0.762222 -1.29778 2.4 V2 -0.745225 -1.26884 2.45469 - N0 -0.637936 -0.637936 0.431366 N1 -0.4527 -0.780517 0.43111 N2 -0.39248 -0.67669 0.622937 - txt003 -STRI - V0 -1.04125 -1.04125 2.45469 V1 -1.26884 -0.745225 2.45469 V2 -1.29778 -0.762222 2.4 - N0 -0.552993 -0.552993 0.623215 N1 -0.67669 -0.39248 0.622937 N2 -0.780517 -0.4527 0.43111 - txt003 -STRI - V0 -1.29778 -0.762222 2.4 V1 -1.065 -1.065 2.4 V2 -1.04125 -1.04125 2.45469 - N0 -0.780517 -0.4527 0.43111 N1 -0.637936 -0.637936 0.431366 N2 -0.552993 -0.552993 0.623215 - txt003 -STRI - V0 -1.26884 -0.745225 2.45469 V1 -1.41495 -0.393796 2.45469 V2 -1.44722 -0.402778 2.4 - N0 -0.67669 -0.39248 0.622937 N1 -0.755869 -0.203756 0.622211 N2 -0.871509 -0.234929 0.430442 - txt003 -STRI - V0 -1.44722 -0.402778 2.4 V1 -1.29778 -0.762222 2.4 V2 -1.26884 -0.745225 2.45469 - N0 -0.871509 -0.234929 0.430442 N1 -0.780517 -0.4527 0.43111 N2 -0.67669 -0.39248 0.622937 - txt003 -STRI - V0 -1.41495 -0.393796 2.45469 V1 -1.46655 0 2.45469 V2 -1.5 0 2.4 - N0 -0.755869 -0.203756 0.622211 N1 -0.783289 1.94969e-16 0.621658 N2 -0.902861 6.81889e-17 0.429934 - txt003 -STRI - V0 -1.5 0 2.4 V1 -1.44722 -0.402778 2.4 V2 -1.41495 -0.393796 2.45469 - N0 -0.902861 6.81889e-17 0.429934 N1 -0.871509 -0.234929 0.430442 N2 -0.755869 -0.203756 0.622211 - txt003 -STRI - V0 -1.4 0 2.4 V1 -1.35074 0.375926 2.4 V2 -1.33276 0.370922 2.45469 - N0 0.902861 0 -0.429934 N1 0.871509 -0.234929 -0.430442 N2 0.953562 -0.257047 -0.156989 - txt003 -STRI - V0 -1.33276 0.370922 2.45469 V1 -1.38137 0 2.45469 V2 -1.4 0 2.4 - N0 0.953562 -0.257047 -0.156989 N1 0.987636 0 -0.156768 N2 0.902861 0 -0.429934 - txt003 -STRI - V0 -1.35074 0.375926 2.4 V1 -1.21126 0.711407 2.4 V2 -1.19514 0.701938 2.45469 - N0 0.871509 -0.234929 -0.430442 N1 0.780517 -0.4527 -0.43111 N2 0.854265 -0.495474 -0.157281 - txt003 -STRI - V0 -1.19514 0.701938 2.45469 V1 -1.33276 0.370922 2.45469 V2 -1.35074 0.375926 2.4 - N0 0.854265 -0.495474 -0.157281 N1 0.953562 -0.257047 -0.156989 N2 0.871509 -0.234929 -0.430442 - txt003 -STRI - V0 -1.21126 0.711407 2.4 V1 -0.994 0.994 2.4 V2 -0.98077 0.98077 2.45469 - N0 0.780517 -0.4527 -0.43111 N1 0.637936 -0.637936 -0.431366 N2 0.698293 -0.698293 -0.157393 - txt003 -STRI - V0 -0.98077 0.98077 2.45469 V1 -1.19514 0.701938 2.45469 V2 -1.21126 0.711407 2.4 - N0 0.698293 -0.698293 -0.157393 N1 0.854265 -0.495474 -0.157281 N2 0.780517 -0.4527 -0.43111 - txt003 -STRI - V0 -0.994 0.994 2.4 V1 -0.711407 1.21126 2.4 V2 -0.701938 1.19514 2.45469 - N0 0.637936 -0.637936 -0.431366 N1 0.4527 -0.780517 -0.43111 N2 0.495474 -0.854265 -0.157281 - txt003 -STRI - V0 -0.701938 1.19514 2.45469 V1 -0.98077 0.98077 2.45469 V2 -0.994 0.994 2.4 - N0 0.495474 -0.854265 -0.157281 N1 0.698293 -0.698293 -0.157393 N2 0.637936 -0.637936 -0.431366 - txt003 -STRI - V0 -0.711407 1.21126 2.4 V1 -0.375926 1.35074 2.4 V2 -0.370922 1.33276 2.45469 - N0 0.4527 -0.780517 -0.43111 N1 0.234929 -0.871509 -0.430442 N2 0.257047 -0.953562 -0.156989 - txt003 -STRI - V0 -0.370922 1.33276 2.45469 V1 -0.701938 1.19514 2.45469 V2 -0.711407 1.21126 2.4 - N0 0.257047 -0.953562 -0.156989 N1 0.495474 -0.854265 -0.157281 N2 0.4527 -0.780517 -0.43111 - txt003 -STRI - V0 -0.375926 1.35074 2.4 V1 0 1.4 2.4 V2 0 1.38137 2.45469 - N0 0.234929 -0.871509 -0.430442 N1 -7.30595e-17 -0.902861 -0.429934 N2 9.89971e-17 -0.987636 -0.156768 - txt003 -STRI - V0 0 1.38137 2.45469 V1 -0.370922 1.33276 2.45469 V2 -0.375926 1.35074 2.4 - N0 9.89971e-17 -0.987636 -0.156768 N1 0.257047 -0.953562 -0.156989 N2 0.234929 -0.871509 -0.430442 - txt003 -STRI - V0 -1.38137 0 2.45469 V1 -1.33276 0.370922 2.45469 V2 -1.33555 0.371699 2.4875 - N0 0.987636 0 -0.156768 N1 0.953562 -0.257047 -0.156989 N2 0.849414 -0.228972 0.475466 - txt003 -STRI - V0 -1.33555 0.371699 2.4875 V1 -1.38426 0 2.4875 V2 -1.38137 0 2.45469 - N0 0.849414 -0.228972 0.475466 N1 0.880022 -0 0.474933 N2 0.987636 0 -0.156768 - txt003 -STRI - V0 -1.33276 0.370922 2.45469 V1 -1.19514 0.701938 2.45469 V2 -1.19764 0.703409 2.4875 - N0 0.953562 -0.257047 -0.156989 N1 0.854265 -0.495474 -0.157281 N2 0.760669 -0.441188 0.476167 - txt003 -STRI - V0 -1.19764 0.703409 2.4875 V1 -1.33555 0.371699 2.4875 V2 -1.33276 0.370922 2.45469 - N0 0.760669 -0.441188 0.476167 N1 0.849414 -0.228972 0.475466 N2 0.953562 -0.257047 -0.156989 - txt003 -STRI - V0 -1.19514 0.701938 2.45469 V1 -0.98077 0.98077 2.45469 V2 -0.982824 0.982824 2.4875 - N0 0.854265 -0.495474 -0.157281 N1 0.698293 -0.698293 -0.157393 N2 0.621695 -0.621695 0.476435 - txt003 -STRI - V0 -0.982824 0.982824 2.4875 V1 -1.19764 0.703409 2.4875 V2 -1.19514 0.701938 2.45469 - N0 0.621695 -0.621695 0.476435 N1 0.760669 -0.441188 0.476167 N2 0.854265 -0.495474 -0.157281 - txt003 -STRI - V0 -0.98077 0.98077 2.45469 V1 -0.701938 1.19514 2.45469 V2 -0.703409 1.19764 2.4875 - N0 0.698293 -0.698293 -0.157393 N1 0.495474 -0.854265 -0.157281 N2 0.441188 -0.760669 0.476167 - txt003 -STRI - V0 -0.703409 1.19764 2.4875 V1 -0.982824 0.982824 2.4875 V2 -0.98077 0.98077 2.45469 - N0 0.441188 -0.760669 0.476167 N1 0.621695 -0.621695 0.476435 N2 0.698293 -0.698293 -0.157393 - txt003 -STRI - V0 -0.701938 1.19514 2.45469 V1 -0.370922 1.33276 2.45469 V2 -0.371699 1.33555 2.4875 - N0 0.495474 -0.854265 -0.157281 N1 0.257047 -0.953562 -0.156989 N2 0.228972 -0.849414 0.475466 - txt003 -STRI - V0 -0.371699 1.33555 2.4875 V1 -0.703409 1.19764 2.4875 V2 -0.701938 1.19514 2.45469 - N0 0.228972 -0.849414 0.475466 N1 0.441188 -0.760669 0.476167 N2 0.495474 -0.854265 -0.157281 - txt003 -STRI - V0 -0.370922 1.33276 2.45469 V1 0 1.38137 2.45469 V2 0 1.38426 2.4875 - N0 0.257047 -0.953562 -0.156989 N1 9.89971e-17 -0.987636 -0.156768 N2 6.08179e-16 -0.880022 0.474933 - txt003 -STRI - V0 0 1.38426 2.4875 V1 -0.371699 1.33555 2.4875 V2 -0.370922 1.33276 2.45469 - N0 6.08179e-16 -0.880022 0.474933 N1 0.228972 -0.849414 0.475466 N2 0.257047 -0.953562 -0.156989 - txt003 -STRI - V0 -1.38426 0 2.4875 V1 -1.33555 0.371699 2.4875 V2 -1.35376 0.376765 2.49844 - N0 0.880022 -0 0.474933 N1 0.849414 -0.228972 0.475466 N2 -2.13636e-15 5.93089e-16 1 - txt003 -STRI - V0 -1.35376 0.376765 2.49844 V1 -1.40312 0 2.49844 V2 -1.38426 0 2.4875 - N0 -2.13636e-15 5.93089e-16 1 N1 -2.22045e-15 0 1 N2 0.880022 -0 0.474933 - txt003 -STRI - V0 -1.33555 0.371699 2.4875 V1 -1.19764 0.703409 2.4875 V2 -1.21396 0.712995 2.49844 - N0 0.849414 -0.228972 0.475466 N1 0.760669 -0.441188 0.476167 N2 -1.87966e-15 1.16933e-15 1 - txt003 -STRI - V0 -1.21396 0.712995 2.49844 V1 -1.35376 0.376765 2.49844 V2 -1.33555 0.371699 2.4875 - N0 -1.87966e-15 1.16933e-15 1 N1 -2.13636e-15 5.93089e-16 1 N2 0.849414 -0.228972 0.475466 - txt003 -STRI - V0 -1.19764 0.703409 2.4875 V1 -0.982824 0.982824 2.4875 V2 -0.996219 0.996219 2.49844 - N0 0.760669 -0.441188 0.476167 N1 0.621695 -0.621695 0.476435 N2 -1.4538e-15 1.67359e-15 1 - txt003 -STRI - V0 -0.996219 0.996219 2.49844 V1 -1.21396 0.712995 2.49844 V2 -1.19764 0.703409 2.4875 - N0 -1.4538e-15 1.67359e-15 1 N1 -1.87966e-15 1.16933e-15 1 N2 0.760669 -0.441188 0.476167 - txt003 -STRI - V0 -0.982824 0.982824 2.4875 V1 -0.703409 1.19764 2.4875 V2 -0.712995 1.21396 2.49844 - N0 0.621695 -0.621695 0.476435 N1 0.441188 -0.760669 0.476167 N2 -8.74229e-16 2.05298e-15 1 - txt003 -STRI - V0 -0.712995 1.21396 2.49844 V1 -0.996219 0.996219 2.49844 V2 -0.982824 0.982824 2.4875 - N0 -8.74229e-16 2.05298e-15 1 N1 -1.4538e-15 1.67359e-15 1 N2 0.621695 -0.621695 0.476435 - txt003 -STRI - V0 -0.703409 1.19764 2.4875 V1 -0.371699 1.33555 2.4875 V2 -0.376765 1.35376 2.49844 - N0 0.441188 -0.760669 0.476167 N1 0.228972 -0.849414 0.475466 N2 -1.77072e-16 2.25214e-15 1 - txt003 -STRI - V0 -0.376765 1.35376 2.49844 V1 -0.712995 1.21396 2.49844 V2 -0.703409 1.19764 2.4875 - N0 -1.77072e-16 2.25214e-15 1 N1 -8.74229e-16 2.05298e-15 1 N2 0.441188 -0.760669 0.476167 - txt003 -STRI - V0 -0.371699 1.33555 2.4875 V1 0 1.38426 2.4875 V2 0 1.40312 2.49844 - N0 0.228972 -0.849414 0.475466 N1 6.08179e-16 -0.880022 0.474933 N2 5.65179e-16 2.22045e-15 1 - txt003 -STRI - V0 0 1.40312 2.49844 V1 -0.376765 1.35376 2.49844 V2 -0.371699 1.33555 2.4875 - N0 5.65179e-16 2.22045e-15 1 N1 -1.77072e-16 2.25214e-15 1 N2 0.228972 -0.849414 0.475466 - txt003 -STRI - V0 -1.40312 0 2.49844 V1 -1.35376 0.376765 2.49844 V2 -1.38201 0.384628 2.4875 - N0 -2.22045e-15 0 1 N1 -2.13636e-15 5.93089e-16 1 N2 -0.537012 0.14476 0.831061 - txt003 -STRI - V0 -1.38201 0.384628 2.4875 V1 -1.43241 0 2.4875 V2 -1.40312 0 2.49844 - N0 -0.537012 0.14476 0.831061 N1 -0.556738 0 0.830688 N2 -2.22045e-15 0 1 - txt003 -STRI - V0 -1.35376 0.376765 2.49844 V1 -1.21396 0.712995 2.49844 V2 -1.2393 0.727875 2.4875 - N0 -2.13636e-15 5.93089e-16 1 N1 -1.87966e-15 1.16933e-15 1 N2 -0.480481 0.278679 0.83155 - txt003 -STRI - V0 -1.2393 0.727875 2.4875 V1 -1.38201 0.384628 2.4875 V2 -1.35376 0.376765 2.49844 - N0 -0.480481 0.278679 0.83155 N1 -0.537012 0.14476 0.831061 N2 -2.13636e-15 5.93089e-16 1 - txt003 -STRI - V0 -1.21396 0.712995 2.49844 V1 -0.996219 0.996219 2.49844 V2 -1.01701 1.01701 2.4875 - N0 -1.87966e-15 1.16933e-15 1 N1 -1.4538e-15 1.67359e-15 1 N2 -0.392564 0.392564 0.831737 - txt003 -STRI - V0 -1.01701 1.01701 2.4875 V1 -1.2393 0.727875 2.4875 V2 -1.21396 0.712995 2.49844 - N0 -0.392564 0.392564 0.831737 N1 -0.480481 0.278679 0.83155 N2 -1.87966e-15 1.16933e-15 1 - txt003 -STRI - V0 -0.996219 0.996219 2.49844 V1 -0.712995 1.21396 2.49844 V2 -0.727875 1.2393 2.4875 - N0 -1.4538e-15 1.67359e-15 1 N1 -8.74229e-16 2.05298e-15 1 N2 -0.278679 0.480481 0.83155 - txt003 -STRI - V0 -0.727875 1.2393 2.4875 V1 -1.01701 1.01701 2.4875 V2 -0.996219 0.996219 2.49844 - N0 -0.278679 0.480481 0.83155 N1 -0.392564 0.392564 0.831737 N2 -1.4538e-15 1.67359e-15 1 - txt003 -STRI - V0 -0.712995 1.21396 2.49844 V1 -0.376765 1.35376 2.49844 V2 -0.384628 1.38201 2.4875 - N0 -8.74229e-16 2.05298e-15 1 N1 -1.77072e-16 2.25214e-15 1 N2 -0.14476 0.537012 0.831061 - txt003 -STRI - V0 -0.384628 1.38201 2.4875 V1 -0.727875 1.2393 2.4875 V2 -0.712995 1.21396 2.49844 - N0 -0.14476 0.537012 0.831061 N1 -0.278679 0.480481 0.83155 N2 -8.74229e-16 2.05298e-15 1 - txt003 -STRI - V0 -0.376765 1.35376 2.49844 V1 0 1.40312 2.49844 V2 0 1.43241 2.4875 - N0 -1.77072e-16 2.25214e-15 1 N1 5.65179e-16 2.22045e-15 1 N2 4.5989e-16 0.556738 0.830688 - txt003 -STRI - V0 0 1.43241 2.4875 V1 -0.384628 1.38201 2.4875 V2 -0.376765 1.35376 2.49844 - N0 4.5989e-16 0.556738 0.830688 N1 -0.14476 0.537012 0.831061 N2 -1.77072e-16 2.25214e-15 1 - txt003 -STRI - V0 -1.43241 0 2.4875 V1 -1.38201 0.384628 2.4875 V2 -1.41495 0.393796 2.45469 - N0 -0.556738 0 0.830688 N1 -0.537012 0.14476 0.831061 N2 -0.755869 0.203756 0.622211 - txt003 -STRI - V0 -1.41495 0.393796 2.45469 V1 -1.46655 0 2.45469 V2 -1.43241 0 2.4875 - N0 -0.755869 0.203756 0.622211 N1 -0.783289 0 0.621658 N2 -0.556738 0 0.830688 - txt003 -STRI - V0 -1.38201 0.384628 2.4875 V1 -1.2393 0.727875 2.4875 V2 -1.26884 0.745225 2.45469 - N0 -0.537012 0.14476 0.831061 N1 -0.480481 0.278679 0.83155 N2 -0.67669 0.39248 0.622937 - txt003 -STRI - V0 -1.26884 0.745225 2.45469 V1 -1.41495 0.393796 2.45469 V2 -1.38201 0.384628 2.4875 - N0 -0.67669 0.39248 0.622937 N1 -0.755869 0.203756 0.622211 N2 -0.537012 0.14476 0.831061 - txt003 -STRI - V0 -1.2393 0.727875 2.4875 V1 -1.01701 1.01701 2.4875 V2 -1.04125 1.04125 2.45469 - N0 -0.480481 0.278679 0.83155 N1 -0.392564 0.392564 0.831737 N2 -0.552993 0.552993 0.623215 - txt003 -STRI - V0 -1.04125 1.04125 2.45469 V1 -1.26884 0.745225 2.45469 V2 -1.2393 0.727875 2.4875 - N0 -0.552993 0.552993 0.623215 N1 -0.67669 0.39248 0.622937 N2 -0.480481 0.278679 0.83155 - txt003 -STRI - V0 -1.01701 1.01701 2.4875 V1 -0.727875 1.2393 2.4875 V2 -0.745225 1.26884 2.45469 - N0 -0.392564 0.392564 0.831737 N1 -0.278679 0.480481 0.83155 N2 -0.39248 0.67669 0.622937 - txt003 -STRI - V0 -0.745225 1.26884 2.45469 V1 -1.04125 1.04125 2.45469 V2 -1.01701 1.01701 2.4875 - N0 -0.39248 0.67669 0.622937 N1 -0.552993 0.552993 0.623215 N2 -0.392564 0.392564 0.831737 - txt003 -STRI - V0 -0.727875 1.2393 2.4875 V1 -0.384628 1.38201 2.4875 V2 -0.393796 1.41495 2.45469 - N0 -0.278679 0.480481 0.83155 N1 -0.14476 0.537012 0.831061 N2 -0.203756 0.755869 0.622211 - txt003 -STRI - V0 -0.393796 1.41495 2.45469 V1 -0.745225 1.26884 2.45469 V2 -0.727875 1.2393 2.4875 - N0 -0.203756 0.755869 0.622211 N1 -0.39248 0.67669 0.622937 N2 -0.278679 0.480481 0.83155 - txt003 -STRI - V0 -0.384628 1.38201 2.4875 V1 0 1.43241 2.4875 V2 0 1.46655 2.45469 - N0 -0.14476 0.537012 0.831061 N1 4.5989e-16 0.556738 0.830688 N2 1.94969e-16 0.783289 0.621658 - txt003 -STRI - V0 0 1.46655 2.45469 V1 -0.393796 1.41495 2.45469 V2 -0.384628 1.38201 2.4875 - N0 1.94969e-16 0.783289 0.621658 N1 -0.203756 0.755869 0.622211 N2 -0.14476 0.537012 0.831061 - txt003 -STRI - V0 -1.46655 0 2.45469 V1 -1.41495 0.393796 2.45469 V2 -1.44722 0.402778 2.4 - N0 -0.783289 0 0.621658 N1 -0.755869 0.203756 0.622211 N2 -0.871509 0.234929 0.430442 - txt003 -STRI - V0 -1.44722 0.402778 2.4 V1 -1.5 0 2.4 V2 -1.46655 0 2.45469 - N0 -0.871509 0.234929 0.430442 N1 -0.902861 0 0.429934 N2 -0.783289 0 0.621658 - txt003 -STRI - V0 -1.41495 0.393796 2.45469 V1 -1.26884 0.745225 2.45469 V2 -1.29778 0.762222 2.4 - N0 -0.755869 0.203756 0.622211 N1 -0.67669 0.39248 0.622937 N2 -0.780517 0.4527 0.43111 - txt003 -STRI - V0 -1.29778 0.762222 2.4 V1 -1.44722 0.402778 2.4 V2 -1.41495 0.393796 2.45469 - N0 -0.780517 0.4527 0.43111 N1 -0.871509 0.234929 0.430442 N2 -0.755869 0.203756 0.622211 - txt003 -STRI - V0 -1.26884 0.745225 2.45469 V1 -1.04125 1.04125 2.45469 V2 -1.065 1.065 2.4 - N0 -0.67669 0.39248 0.622937 N1 -0.552993 0.552993 0.623215 N2 -0.637936 0.637936 0.431366 - txt003 -STRI - V0 -1.065 1.065 2.4 V1 -1.29778 0.762222 2.4 V2 -1.26884 0.745225 2.45469 - N0 -0.637936 0.637936 0.431366 N1 -0.780517 0.4527 0.43111 N2 -0.67669 0.39248 0.622937 - txt003 -STRI - V0 -1.04125 1.04125 2.45469 V1 -0.745225 1.26884 2.45469 V2 -0.762222 1.29778 2.4 - N0 -0.552993 0.552993 0.623215 N1 -0.39248 0.67669 0.622937 N2 -0.4527 0.780517 0.43111 - txt003 -STRI - V0 -0.762222 1.29778 2.4 V1 -1.065 1.065 2.4 V2 -1.04125 1.04125 2.45469 - N0 -0.4527 0.780517 0.43111 N1 -0.637936 0.637936 0.431366 N2 -0.552993 0.552993 0.623215 - txt003 -STRI - V0 -0.745225 1.26884 2.45469 V1 -0.393796 1.41495 2.45469 V2 -0.402778 1.44722 2.4 - N0 -0.39248 0.67669 0.622937 N1 -0.203756 0.755869 0.622211 N2 -0.234929 0.871509 0.430442 - txt003 -STRI - V0 -0.402778 1.44722 2.4 V1 -0.762222 1.29778 2.4 V2 -0.745225 1.26884 2.45469 - N0 -0.234929 0.871509 0.430442 N1 -0.4527 0.780517 0.43111 N2 -0.39248 0.67669 0.622937 - txt003 -STRI - V0 -0.393796 1.41495 2.45469 V1 0 1.46655 2.45469 V2 0 1.5 2.4 - N0 -0.203756 0.755869 0.622211 N1 1.94969e-16 0.783289 0.621658 N2 6.81889e-17 0.902861 0.429934 - txt003 -STRI - V0 0 1.5 2.4 V1 -0.402778 1.44722 2.4 V2 -0.393796 1.41495 2.45469 - N0 6.81889e-17 0.902861 0.429934 N1 -0.234929 0.871509 0.430442 N2 -0.203756 0.755869 0.622211 - txt003 -STRI - V0 0 1.4 2.4 V1 0.375926 1.35074 2.4 V2 0.370922 1.33276 2.45469 - N0 0 -0.902861 -0.429934 N1 -0.234929 -0.871509 -0.430442 N2 -0.257047 -0.953562 -0.156989 - txt003 -STRI - V0 0.370922 1.33276 2.45469 V1 0 1.38137 2.45469 V2 0 1.4 2.4 - N0 -0.257047 -0.953562 -0.156989 N1 0 -0.987636 -0.156768 N2 0 -0.902861 -0.429934 - txt003 -STRI - V0 0.375926 1.35074 2.4 V1 0.711407 1.21126 2.4 V2 0.701938 1.19514 2.45469 - N0 -0.234929 -0.871509 -0.430442 N1 -0.4527 -0.780517 -0.43111 N2 -0.495474 -0.854265 -0.157281 - txt003 -STRI - V0 0.701938 1.19514 2.45469 V1 0.370922 1.33276 2.45469 V2 0.375926 1.35074 2.4 - N0 -0.495474 -0.854265 -0.157281 N1 -0.257047 -0.953562 -0.156989 N2 -0.234929 -0.871509 -0.430442 - txt003 -STRI - V0 0.711407 1.21126 2.4 V1 0.994 0.994 2.4 V2 0.98077 0.98077 2.45469 - N0 -0.4527 -0.780517 -0.43111 N1 -0.637936 -0.637936 -0.431366 N2 -0.698293 -0.698293 -0.157393 - txt003 -STRI - V0 0.98077 0.98077 2.45469 V1 0.701938 1.19514 2.45469 V2 0.711407 1.21126 2.4 - N0 -0.698293 -0.698293 -0.157393 N1 -0.495474 -0.854265 -0.157281 N2 -0.4527 -0.780517 -0.43111 - txt003 -STRI - V0 0.994 0.994 2.4 V1 1.21126 0.711407 2.4 V2 1.19514 0.701938 2.45469 - N0 -0.637936 -0.637936 -0.431366 N1 -0.780517 -0.4527 -0.43111 N2 -0.854265 -0.495474 -0.157281 - txt003 -STRI - V0 1.19514 0.701938 2.45469 V1 0.98077 0.98077 2.45469 V2 0.994 0.994 2.4 - N0 -0.854265 -0.495474 -0.157281 N1 -0.698293 -0.698293 -0.157393 N2 -0.637936 -0.637936 -0.431366 - txt003 -STRI - V0 1.21126 0.711407 2.4 V1 1.35074 0.375926 2.4 V2 1.33276 0.370922 2.45469 - N0 -0.780517 -0.4527 -0.43111 N1 -0.871509 -0.234929 -0.430442 N2 -0.953562 -0.257047 -0.156989 - txt003 -STRI - V0 1.33276 0.370922 2.45469 V1 1.19514 0.701938 2.45469 V2 1.21126 0.711407 2.4 - N0 -0.953562 -0.257047 -0.156989 N1 -0.854265 -0.495474 -0.157281 N2 -0.780517 -0.4527 -0.43111 - txt003 -STRI - V0 1.35074 0.375926 2.4 V1 1.4 0 2.4 V2 1.38137 0 2.45469 - N0 -0.871509 -0.234929 -0.430442 N1 -0.902861 7.30595e-17 -0.429934 N2 -0.987636 -9.89971e-17 -0.156768 - txt003 -STRI - V0 1.38137 0 2.45469 V1 1.33276 0.370922 2.45469 V2 1.35074 0.375926 2.4 - N0 -0.987636 -9.89971e-17 -0.156768 N1 -0.953562 -0.257047 -0.156989 N2 -0.871509 -0.234929 -0.430442 - txt003 -STRI - V0 0 1.38137 2.45469 V1 0.370922 1.33276 2.45469 V2 0.371699 1.33555 2.4875 - N0 0 -0.987636 -0.156768 N1 -0.257047 -0.953562 -0.156989 N2 -0.228972 -0.849414 0.475466 - txt003 -STRI - V0 0.371699 1.33555 2.4875 V1 0 1.38426 2.4875 V2 0 1.38137 2.45469 - N0 -0.228972 -0.849414 0.475466 N1 0 -0.880022 0.474933 N2 0 -0.987636 -0.156768 - txt003 -STRI - V0 0.370922 1.33276 2.45469 V1 0.701938 1.19514 2.45469 V2 0.703409 1.19764 2.4875 - N0 -0.257047 -0.953562 -0.156989 N1 -0.495474 -0.854265 -0.157281 N2 -0.441188 -0.760669 0.476167 - txt003 -STRI - V0 0.703409 1.19764 2.4875 V1 0.371699 1.33555 2.4875 V2 0.370922 1.33276 2.45469 - N0 -0.441188 -0.760669 0.476167 N1 -0.228972 -0.849414 0.475466 N2 -0.257047 -0.953562 -0.156989 - txt003 -STRI - V0 0.701938 1.19514 2.45469 V1 0.98077 0.98077 2.45469 V2 0.982824 0.982824 2.4875 - N0 -0.495474 -0.854265 -0.157281 N1 -0.698293 -0.698293 -0.157393 N2 -0.621695 -0.621695 0.476435 - txt003 -STRI - V0 0.982824 0.982824 2.4875 V1 0.703409 1.19764 2.4875 V2 0.701938 1.19514 2.45469 - N0 -0.621695 -0.621695 0.476435 N1 -0.441188 -0.760669 0.476167 N2 -0.495474 -0.854265 -0.157281 - txt003 -STRI - V0 0.98077 0.98077 2.45469 V1 1.19514 0.701938 2.45469 V2 1.19764 0.703409 2.4875 - N0 -0.698293 -0.698293 -0.157393 N1 -0.854265 -0.495474 -0.157281 N2 -0.760669 -0.441188 0.476167 - txt003 -STRI - V0 1.19764 0.703409 2.4875 V1 0.982824 0.982824 2.4875 V2 0.98077 0.98077 2.45469 - N0 -0.760669 -0.441188 0.476167 N1 -0.621695 -0.621695 0.476435 N2 -0.698293 -0.698293 -0.157393 - txt003 -STRI - V0 1.19514 0.701938 2.45469 V1 1.33276 0.370922 2.45469 V2 1.33555 0.371699 2.4875 - N0 -0.854265 -0.495474 -0.157281 N1 -0.953562 -0.257047 -0.156989 N2 -0.849414 -0.228972 0.475466 - txt003 -STRI - V0 1.33555 0.371699 2.4875 V1 1.19764 0.703409 2.4875 V2 1.19514 0.701938 2.45469 - N0 -0.849414 -0.228972 0.475466 N1 -0.760669 -0.441188 0.476167 N2 -0.854265 -0.495474 -0.157281 - txt003 -STRI - V0 1.33276 0.370922 2.45469 V1 1.38137 0 2.45469 V2 1.38426 0 2.4875 - N0 -0.953562 -0.257047 -0.156989 N1 -0.987636 -9.89971e-17 -0.156768 N2 -0.880022 -6.08179e-16 0.474933 - txt003 -STRI - V0 1.38426 0 2.4875 V1 1.33555 0.371699 2.4875 V2 1.33276 0.370922 2.45469 - N0 -0.880022 -6.08179e-16 0.474933 N1 -0.849414 -0.228972 0.475466 N2 -0.953562 -0.257047 -0.156989 - txt003 -STRI - V0 0 1.38426 2.4875 V1 0.371699 1.33555 2.4875 V2 0.376765 1.35376 2.49844 - N0 0 -0.880022 0.474933 N1 -0.228972 -0.849414 0.475466 N2 5.93089e-16 2.13636e-15 1 - txt003 -STRI - V0 0.376765 1.35376 2.49844 V1 0 1.40312 2.49844 V2 0 1.38426 2.4875 - N0 5.93089e-16 2.13636e-15 1 N1 -0 2.22045e-15 1 N2 0 -0.880022 0.474933 - txt003 -STRI - V0 0.371699 1.33555 2.4875 V1 0.703409 1.19764 2.4875 V2 0.712995 1.21396 2.49844 - N0 -0.228972 -0.849414 0.475466 N1 -0.441188 -0.760669 0.476167 N2 1.16933e-15 1.87966e-15 1 - txt003 -STRI - V0 0.712995 1.21396 2.49844 V1 0.376765 1.35376 2.49844 V2 0.371699 1.33555 2.4875 - N0 1.16933e-15 1.87966e-15 1 N1 5.93089e-16 2.13636e-15 1 N2 -0.228972 -0.849414 0.475466 - txt003 -STRI - V0 0.703409 1.19764 2.4875 V1 0.982824 0.982824 2.4875 V2 0.996219 0.996219 2.49844 - N0 -0.441188 -0.760669 0.476167 N1 -0.621695 -0.621695 0.476435 N2 1.67359e-15 1.4538e-15 1 - txt003 -STRI - V0 0.996219 0.996219 2.49844 V1 0.712995 1.21396 2.49844 V2 0.703409 1.19764 2.4875 - N0 1.67359e-15 1.4538e-15 1 N1 1.16933e-15 1.87966e-15 1 N2 -0.441188 -0.760669 0.476167 - txt003 -STRI - V0 0.982824 0.982824 2.4875 V1 1.19764 0.703409 2.4875 V2 1.21396 0.712995 2.49844 - N0 -0.621695 -0.621695 0.476435 N1 -0.760669 -0.441188 0.476167 N2 2.05298e-15 8.74229e-16 1 - txt003 -STRI - V0 1.21396 0.712995 2.49844 V1 0.996219 0.996219 2.49844 V2 0.982824 0.982824 2.4875 - N0 2.05298e-15 8.74229e-16 1 N1 1.67359e-15 1.4538e-15 1 N2 -0.621695 -0.621695 0.476435 - txt003 -STRI - V0 1.19764 0.703409 2.4875 V1 1.33555 0.371699 2.4875 V2 1.35376 0.376765 2.49844 - N0 -0.760669 -0.441188 0.476167 N1 -0.849414 -0.228972 0.475466 N2 2.25214e-15 1.77072e-16 1 - txt003 -STRI - V0 1.35376 0.376765 2.49844 V1 1.21396 0.712995 2.49844 V2 1.19764 0.703409 2.4875 - N0 2.25214e-15 1.77072e-16 1 N1 2.05298e-15 8.74229e-16 1 N2 -0.760669 -0.441188 0.476167 - txt003 -STRI - V0 1.33555 0.371699 2.4875 V1 1.38426 0 2.4875 V2 1.40312 0 2.49844 - N0 -0.849414 -0.228972 0.475466 N1 -0.880022 -6.08179e-16 0.474933 N2 2.22045e-15 -5.65179e-16 1 - txt003 -STRI - V0 1.40312 0 2.49844 V1 1.35376 0.376765 2.49844 V2 1.33555 0.371699 2.4875 - N0 2.22045e-15 -5.65179e-16 1 N1 2.25214e-15 1.77072e-16 1 N2 -0.849414 -0.228972 0.475466 - txt003 -STRI - V0 0 1.40312 2.49844 V1 0.376765 1.35376 2.49844 V2 0.384628 1.38201 2.4875 - N0 -0 2.22045e-15 1 N1 5.93089e-16 2.13636e-15 1 N2 0.14476 0.537012 0.831061 - txt003 -STRI - V0 0.384628 1.38201 2.4875 V1 0 1.43241 2.4875 V2 0 1.40312 2.49844 - N0 0.14476 0.537012 0.831061 N1 -0 0.556738 0.830688 N2 -0 2.22045e-15 1 - txt003 -STRI - V0 0.376765 1.35376 2.49844 V1 0.712995 1.21396 2.49844 V2 0.727875 1.2393 2.4875 - N0 5.93089e-16 2.13636e-15 1 N1 1.16933e-15 1.87966e-15 1 N2 0.278679 0.480481 0.83155 - txt003 -STRI - V0 0.727875 1.2393 2.4875 V1 0.384628 1.38201 2.4875 V2 0.376765 1.35376 2.49844 - N0 0.278679 0.480481 0.83155 N1 0.14476 0.537012 0.831061 N2 5.93089e-16 2.13636e-15 1 - txt003 -STRI - V0 0.712995 1.21396 2.49844 V1 0.996219 0.996219 2.49844 V2 1.01701 1.01701 2.4875 - N0 1.16933e-15 1.87966e-15 1 N1 1.67359e-15 1.4538e-15 1 N2 0.392564 0.392564 0.831737 - txt003 -STRI - V0 1.01701 1.01701 2.4875 V1 0.727875 1.2393 2.4875 V2 0.712995 1.21396 2.49844 - N0 0.392564 0.392564 0.831737 N1 0.278679 0.480481 0.83155 N2 1.16933e-15 1.87966e-15 1 - txt003 -STRI - V0 0.996219 0.996219 2.49844 V1 1.21396 0.712995 2.49844 V2 1.2393 0.727875 2.4875 - N0 1.67359e-15 1.4538e-15 1 N1 2.05298e-15 8.74229e-16 1 N2 0.480481 0.278679 0.83155 - txt003 -STRI - V0 1.2393 0.727875 2.4875 V1 1.01701 1.01701 2.4875 V2 0.996219 0.996219 2.49844 - N0 0.480481 0.278679 0.83155 N1 0.392564 0.392564 0.831737 N2 1.67359e-15 1.4538e-15 1 - txt003 -STRI - V0 1.21396 0.712995 2.49844 V1 1.35376 0.376765 2.49844 V2 1.38201 0.384628 2.4875 - N0 2.05298e-15 8.74229e-16 1 N1 2.25214e-15 1.77072e-16 1 N2 0.537012 0.14476 0.831061 - txt003 -STRI - V0 1.38201 0.384628 2.4875 V1 1.2393 0.727875 2.4875 V2 1.21396 0.712995 2.49844 - N0 0.537012 0.14476 0.831061 N1 0.480481 0.278679 0.83155 N2 2.05298e-15 8.74229e-16 1 - txt003 -STRI - V0 1.35376 0.376765 2.49844 V1 1.40312 0 2.49844 V2 1.43241 0 2.4875 - N0 2.25214e-15 1.77072e-16 1 N1 2.22045e-15 -5.65179e-16 1 N2 0.556738 -4.5989e-16 0.830688 - txt003 -STRI - V0 1.43241 0 2.4875 V1 1.38201 0.384628 2.4875 V2 1.35376 0.376765 2.49844 - N0 0.556738 -4.5989e-16 0.830688 N1 0.537012 0.14476 0.831061 N2 2.25214e-15 1.77072e-16 1 - txt003 -STRI - V0 0 1.43241 2.4875 V1 0.384628 1.38201 2.4875 V2 0.393796 1.41495 2.45469 - N0 -0 0.556738 0.830688 N1 0.14476 0.537012 0.831061 N2 0.203756 0.755869 0.622211 - txt003 -STRI - V0 0.393796 1.41495 2.45469 V1 0 1.46655 2.45469 V2 0 1.43241 2.4875 - N0 0.203756 0.755869 0.622211 N1 -0 0.783289 0.621658 N2 -0 0.556738 0.830688 - txt003 -STRI - V0 0.384628 1.38201 2.4875 V1 0.727875 1.2393 2.4875 V2 0.745225 1.26884 2.45469 - N0 0.14476 0.537012 0.831061 N1 0.278679 0.480481 0.83155 N2 0.39248 0.67669 0.622937 - txt003 -STRI - V0 0.745225 1.26884 2.45469 V1 0.393796 1.41495 2.45469 V2 0.384628 1.38201 2.4875 - N0 0.39248 0.67669 0.622937 N1 0.203756 0.755869 0.622211 N2 0.14476 0.537012 0.831061 - txt003 -STRI - V0 0.727875 1.2393 2.4875 V1 1.01701 1.01701 2.4875 V2 1.04125 1.04125 2.45469 - N0 0.278679 0.480481 0.83155 N1 0.392564 0.392564 0.831737 N2 0.552993 0.552993 0.623215 - txt003 -STRI - V0 1.04125 1.04125 2.45469 V1 0.745225 1.26884 2.45469 V2 0.727875 1.2393 2.4875 - N0 0.552993 0.552993 0.623215 N1 0.39248 0.67669 0.622937 N2 0.278679 0.480481 0.83155 - txt003 -STRI - V0 1.01701 1.01701 2.4875 V1 1.2393 0.727875 2.4875 V2 1.26884 0.745225 2.45469 - N0 0.392564 0.392564 0.831737 N1 0.480481 0.278679 0.83155 N2 0.67669 0.39248 0.622937 - txt003 -STRI - V0 1.26884 0.745225 2.45469 V1 1.04125 1.04125 2.45469 V2 1.01701 1.01701 2.4875 - N0 0.67669 0.39248 0.622937 N1 0.552993 0.552993 0.623215 N2 0.392564 0.392564 0.831737 - txt003 -STRI - V0 1.2393 0.727875 2.4875 V1 1.38201 0.384628 2.4875 V2 1.41495 0.393796 2.45469 - N0 0.480481 0.278679 0.83155 N1 0.537012 0.14476 0.831061 N2 0.755869 0.203756 0.622211 - txt003 -STRI - V0 1.41495 0.393796 2.45469 V1 1.26884 0.745225 2.45469 V2 1.2393 0.727875 2.4875 - N0 0.755869 0.203756 0.622211 N1 0.67669 0.39248 0.622937 N2 0.480481 0.278679 0.83155 - txt003 -STRI - V0 1.38201 0.384628 2.4875 V1 1.43241 0 2.4875 V2 1.46655 0 2.45469 - N0 0.537012 0.14476 0.831061 N1 0.556738 -4.5989e-16 0.830688 N2 0.783289 -1.94969e-16 0.621658 - txt003 -STRI - V0 1.46655 0 2.45469 V1 1.41495 0.393796 2.45469 V2 1.38201 0.384628 2.4875 - N0 0.783289 -1.94969e-16 0.621658 N1 0.755869 0.203756 0.622211 N2 0.537012 0.14476 0.831061 - txt003 -STRI - V0 0 1.46655 2.45469 V1 0.393796 1.41495 2.45469 V2 0.402778 1.44722 2.4 - N0 -0 0.783289 0.621658 N1 0.203756 0.755869 0.622211 N2 0.234929 0.871509 0.430442 - txt003 -STRI - V0 0.402778 1.44722 2.4 V1 0 1.5 2.4 V2 0 1.46655 2.45469 - N0 0.234929 0.871509 0.430442 N1 -0 0.902861 0.429934 N2 -0 0.783289 0.621658 - txt003 -STRI - V0 0.393796 1.41495 2.45469 V1 0.745225 1.26884 2.45469 V2 0.762222 1.29778 2.4 - N0 0.203756 0.755869 0.622211 N1 0.39248 0.67669 0.622937 N2 0.4527 0.780517 0.43111 - txt003 -STRI - V0 0.762222 1.29778 2.4 V1 0.402778 1.44722 2.4 V2 0.393796 1.41495 2.45469 - N0 0.4527 0.780517 0.43111 N1 0.234929 0.871509 0.430442 N2 0.203756 0.755869 0.622211 - txt003 -STRI - V0 0.745225 1.26884 2.45469 V1 1.04125 1.04125 2.45469 V2 1.065 1.065 2.4 - N0 0.39248 0.67669 0.622937 N1 0.552993 0.552993 0.623215 N2 0.637936 0.637936 0.431366 - txt003 -STRI - V0 1.065 1.065 2.4 V1 0.762222 1.29778 2.4 V2 0.745225 1.26884 2.45469 - N0 0.637936 0.637936 0.431366 N1 0.4527 0.780517 0.43111 N2 0.39248 0.67669 0.622937 - txt003 -STRI - V0 1.04125 1.04125 2.45469 V1 1.26884 0.745225 2.45469 V2 1.29778 0.762222 2.4 - N0 0.552993 0.552993 0.623215 N1 0.67669 0.39248 0.622937 N2 0.780517 0.4527 0.43111 - txt003 -STRI - V0 1.29778 0.762222 2.4 V1 1.065 1.065 2.4 V2 1.04125 1.04125 2.45469 - N0 0.780517 0.4527 0.43111 N1 0.637936 0.637936 0.431366 N2 0.552993 0.552993 0.623215 - txt003 -STRI - V0 1.26884 0.745225 2.45469 V1 1.41495 0.393796 2.45469 V2 1.44722 0.402778 2.4 - N0 0.67669 0.39248 0.622937 N1 0.755869 0.203756 0.622211 N2 0.871509 0.234929 0.430442 - txt003 -STRI - V0 1.44722 0.402778 2.4 V1 1.29778 0.762222 2.4 V2 1.26884 0.745225 2.45469 - N0 0.871509 0.234929 0.430442 N1 0.780517 0.4527 0.43111 N2 0.67669 0.39248 0.622937 - txt003 -STRI - V0 1.41495 0.393796 2.45469 V1 1.46655 0 2.45469 V2 1.5 0 2.4 - N0 0.755869 0.203756 0.622211 N1 0.783289 -1.94969e-16 0.621658 N2 0.902861 -6.81889e-17 0.429934 - txt003 -STRI - V0 1.5 0 2.4 V1 1.44722 0.402778 2.4 V2 1.41495 0.393796 2.45469 - N0 0.902861 -6.81889e-17 0.429934 N1 0.871509 0.234929 0.430442 N2 0.755869 0.203756 0.622211 - txt003 -STRI - V0 1.5 0 2.4 V1 1.44722 -0.402778 2.4 V2 1.56671 -0.436032 2.13785 - N0 0.902861 0 0.429934 N1 0.871509 -0.234929 0.430442 N2 0.875348 -0.235963 0.422003 - txt003 -STRI - V0 1.56671 -0.436032 2.13785 V1 1.62384 0 2.13785 V2 1.5 0 2.4 - N0 0.875348 -0.235963 0.422003 N1 0.906828 0 0.4215 N2 0.902861 0 0.429934 - txt003 -STRI - V0 1.44722 -0.402778 2.4 V1 1.29778 -0.762222 2.4 V2 1.40492 -0.825153 2.13785 - N0 0.871509 -0.234929 0.430442 N1 0.780517 -0.4527 0.43111 N2 0.783966 -0.4547 0.422664 - txt003 -STRI - V0 1.40492 -0.825153 2.13785 V1 1.56671 -0.436032 2.13785 V2 1.44722 -0.402778 2.4 - N0 0.783966 -0.4547 0.422664 N1 0.875348 -0.235963 0.422003 N2 0.871509 -0.234929 0.430442 - txt003 -STRI - V0 1.29778 -0.762222 2.4 V1 1.065 -1.065 2.4 V2 1.15293 -1.15293 2.13785 - N0 0.780517 -0.4527 0.43111 N1 0.637936 -0.637936 0.431366 N2 0.640758 -0.640758 0.422917 - txt003 -STRI - V0 1.15293 -1.15293 2.13785 V1 1.40492 -0.825153 2.13785 V2 1.29778 -0.762222 2.4 - N0 0.640758 -0.640758 0.422917 N1 0.783966 -0.4547 0.422664 N2 0.780517 -0.4527 0.43111 - txt003 -STRI - V0 1.065 -1.065 2.4 V1 0.762222 -1.29778 2.4 V2 0.825153 -1.40492 2.13785 - N0 0.637936 -0.637936 0.431366 N1 0.4527 -0.780517 0.43111 N2 0.4547 -0.783966 0.422664 - txt003 -STRI - V0 0.825153 -1.40492 2.13785 V1 1.15293 -1.15293 2.13785 V2 1.065 -1.065 2.4 - N0 0.4547 -0.783966 0.422664 N1 0.640758 -0.640758 0.422917 N2 0.637936 -0.637936 0.431366 - txt003 -STRI - V0 0.762222 -1.29778 2.4 V1 0.402778 -1.44722 2.4 V2 0.436032 -1.56671 2.13785 - N0 0.4527 -0.780517 0.43111 N1 0.234929 -0.871509 0.430442 N2 0.235963 -0.875348 0.422003 - txt003 -STRI - V0 0.436032 -1.56671 2.13785 V1 0.825153 -1.40492 2.13785 V2 0.762222 -1.29778 2.4 - N0 0.235963 -0.875348 0.422003 N1 0.4547 -0.783966 0.422664 N2 0.4527 -0.780517 0.43111 - txt003 -STRI - V0 0.402778 -1.44722 2.4 V1 0 -1.5 2.4 V2 2.22045e-16 -1.62384 2.13785 - N0 0.234929 -0.871509 0.430442 N1 -2.27296e-16 -0.902861 0.429934 N2 -2.05843e-16 -0.906828 0.4215 - txt003 -STRI - V0 2.22045e-16 -1.62384 2.13785 V1 0.436032 -1.56671 2.13785 V2 0.402778 -1.44722 2.4 - N0 -2.05843e-16 -0.906828 0.4215 N1 0.235963 -0.875348 0.422003 N2 0.234929 -0.871509 0.430442 - txt003 -STRI - V0 1.62384 0 2.13785 V1 1.56671 -0.436032 2.13785 V2 1.67949 -0.467421 1.87778 - N0 0.906828 0 0.4215 N1 0.875348 -0.235963 0.422003 N2 0.886771 -0.239043 0.395595 - txt003 -STRI - V0 1.67949 -0.467421 1.87778 V1 1.74074 0 1.87778 V2 1.62384 0 2.13785 - N0 0.886771 -0.239043 0.395595 N1 0.918633 0 0.395111 N2 0.906828 0 0.4215 - txt003 -STRI - V0 1.56671 -0.436032 2.13785 V1 1.40492 -0.825153 2.13785 V2 1.50606 -0.884554 1.87778 - N0 0.875348 -0.235963 0.422003 N1 0.783966 -0.4547 0.422664 N2 0.794229 -0.460653 0.39623 - txt003 -STRI - V0 1.50606 -0.884554 1.87778 V1 1.67949 -0.467421 1.87778 V2 1.56671 -0.436032 2.13785 - N0 0.794229 -0.460653 0.39623 N1 0.886771 -0.239043 0.395595 N2 0.875348 -0.235963 0.422003 - txt003 -STRI - V0 1.40492 -0.825153 2.13785 V1 1.15293 -1.15293 2.13785 V2 1.23593 -1.23593 1.87778 - N0 0.783966 -0.4547 0.422664 N1 0.640758 -0.640758 0.422917 N2 0.649156 -0.649156 0.396474 - txt003 -STRI - V0 1.23593 -1.23593 1.87778 V1 1.50606 -0.884554 1.87778 V2 1.40492 -0.825153 2.13785 - N0 0.649156 -0.649156 0.396474 N1 0.794229 -0.460653 0.39623 N2 0.783966 -0.4547 0.422664 - txt003 -STRI - V0 1.15293 -1.15293 2.13785 V1 0.825153 -1.40492 2.13785 V2 0.884554 -1.50606 1.87778 - N0 0.640758 -0.640758 0.422917 N1 0.4547 -0.783966 0.422664 N2 0.460653 -0.794229 0.39623 - txt003 -STRI - V0 0.884554 -1.50606 1.87778 V1 1.23593 -1.23593 1.87778 V2 1.15293 -1.15293 2.13785 - N0 0.460653 -0.794229 0.39623 N1 0.649156 -0.649156 0.396474 N2 0.640758 -0.640758 0.422917 - txt003 -STRI - V0 0.825153 -1.40492 2.13785 V1 0.436032 -1.56671 2.13785 V2 0.467421 -1.67949 1.87778 - N0 0.4547 -0.783966 0.422664 N1 0.235963 -0.875348 0.422003 N2 0.239043 -0.886771 0.395595 - txt003 -STRI - V0 0.467421 -1.67949 1.87778 V1 0.884554 -1.50606 1.87778 V2 0.825153 -1.40492 2.13785 - N0 0.239043 -0.886771 0.395595 N1 0.460653 -0.794229 0.39623 N2 0.4547 -0.783966 0.422664 - txt003 -STRI - V0 0.436032 -1.56671 2.13785 V1 2.22045e-16 -1.62384 2.13785 V2 0 -1.74074 1.87778 - N0 0.235963 -0.875348 0.422003 N1 -2.05843e-16 -0.906828 0.4215 N2 -1.79998e-16 -0.918633 0.395111 - txt003 -STRI - V0 0 -1.74074 1.87778 V1 0.467421 -1.67949 1.87778 V2 0.436032 -1.56671 2.13785 - N0 -1.79998e-16 -0.918633 0.395111 N1 0.239043 -0.886771 0.395595 N2 0.235963 -0.875348 0.422003 - txt003 -STRI - V0 1.74074 0 1.87778 V1 1.67949 -0.467421 1.87778 V2 1.77888 -0.495081 1.62188 - N0 0.918633 0 0.395111 N1 0.886771 -0.239043 0.395595 N2 0.90527 -0.244029 0.347757 - txt003 -STRI - V0 1.77888 -0.495081 1.62188 V1 1.84375 0 1.62188 V2 1.74074 0 1.87778 - N0 0.90527 -0.244029 0.347757 N1 0.937749 0 0.347314 N2 0.918633 0 0.395111 - txt003 -STRI - V0 1.67949 -0.467421 1.87778 V1 1.50606 -0.884554 1.87778 V2 1.59519 -0.936898 1.62188 - N0 0.886771 -0.239043 0.395595 N1 0.794229 -0.460653 0.39623 N2 0.810853 -0.470295 0.34834 - txt003 -STRI - V0 1.59519 -0.936898 1.62188 V1 1.77888 -0.495081 1.62188 V2 1.67949 -0.467421 1.87778 - N0 0.810853 -0.470295 0.34834 N1 0.90527 -0.244029 0.347757 N2 0.886771 -0.239043 0.395595 - txt003 -STRI - V0 1.50606 -0.884554 1.87778 V1 1.23593 -1.23593 1.87778 V2 1.30906 -1.30906 1.62188 - N0 0.794229 -0.460653 0.39623 N1 0.649156 -0.649156 0.396474 N2 0.662761 -0.662761 0.348563 - txt003 -STRI - V0 1.30906 -1.30906 1.62188 V1 1.59519 -0.936898 1.62188 V2 1.50606 -0.884554 1.87778 - N0 0.662761 -0.662761 0.348563 N1 0.810853 -0.470295 0.34834 N2 0.794229 -0.460653 0.39623 - txt003 -STRI - V0 1.23593 -1.23593 1.87778 V1 0.884554 -1.50606 1.87778 V2 0.936898 -1.59519 1.62187 - N0 0.649156 -0.649156 0.396474 N1 0.460653 -0.794229 0.39623 N2 0.470295 -0.810853 0.34834 - txt003 -STRI - V0 0.936898 -1.59519 1.62187 V1 1.30906 -1.30906 1.62188 V2 1.23593 -1.23593 1.87778 - N0 0.470295 -0.810853 0.34834 N1 0.662761 -0.662761 0.348563 N2 0.649156 -0.649156 0.396474 - txt003 -STRI - V0 0.884554 -1.50606 1.87778 V1 0.467421 -1.67949 1.87778 V2 0.495081 -1.77888 1.62187 - N0 0.460653 -0.794229 0.39623 N1 0.239043 -0.886771 0.395595 N2 0.244029 -0.90527 0.347757 - txt003 -STRI - V0 0.495081 -1.77888 1.62187 V1 0.936898 -1.59519 1.62187 V2 0.884554 -1.50606 1.87778 - N0 0.244029 -0.90527 0.347757 N1 0.470295 -0.810853 0.34834 N2 0.460653 -0.794229 0.39623 - txt003 -STRI - V0 0.467421 -1.67949 1.87778 V1 0 -1.74074 1.87778 V2 0 -1.84375 1.62187 - N0 0.239043 -0.886771 0.395595 N1 -1.79998e-16 -0.918633 0.395111 N2 -1.49384e-16 -0.937749 0.347314 - txt003 -STRI - V0 0 -1.84375 1.62187 V1 0.495081 -1.77888 1.62187 V2 0.467421 -1.67949 1.87778 - N0 -1.49384e-16 -0.937749 0.347314 N1 0.244029 -0.90527 0.347757 N2 0.239043 -0.886771 0.395595 - txt003 -STRI - V0 1.84375 0 1.62188 V1 1.77888 -0.495081 1.62188 V2 1.85816 -0.517147 1.37222 - N0 0.937749 0 0.347314 N1 0.90527 -0.244029 0.347757 N2 0.929073 -0.250446 0.272213 - txt003 -STRI - V0 1.85816 -0.517147 1.37222 V1 1.92593 0 1.37222 V2 1.84375 0 1.62188 - N0 0.929073 -0.250446 0.272213 N1 0.96234 0 0.271848 N2 0.937749 0 0.347314 - txt003 -STRI - V0 1.77888 -0.495081 1.62188 V1 1.59519 -0.936898 1.62188 V2 1.66628 -0.978656 1.37222 - N0 0.90527 -0.244029 0.347757 N1 0.810853 -0.470295 0.34834 N2 0.832247 -0.482704 0.272693 - txt003 -STRI - V0 1.66628 -0.978656 1.37222 V1 1.85816 -0.517147 1.37222 V2 1.77888 -0.495081 1.62188 - N0 0.832247 -0.482704 0.272693 N1 0.929073 -0.250446 0.272213 N2 0.90527 -0.244029 0.347757 - txt003 -STRI - V0 1.59519 -0.936898 1.62188 V1 1.30906 -1.30906 1.62188 V2 1.36741 -1.36741 1.37222 - N0 0.810853 -0.470295 0.34834 N1 0.662761 -0.662761 0.348563 N2 0.680271 -0.680271 0.272877 - txt003 -STRI - V0 1.36741 -1.36741 1.37222 V1 1.66628 -0.978656 1.37222 V2 1.59519 -0.936898 1.62188 - N0 0.680271 -0.680271 0.272877 N1 0.832247 -0.482704 0.272693 N2 0.810853 -0.470295 0.34834 - txt003 -STRI - V0 1.30906 -1.30906 1.62188 V1 0.936898 -1.59519 1.62187 V2 0.978656 -1.66628 1.37222 - N0 0.662761 -0.662761 0.348563 N1 0.470295 -0.810853 0.34834 N2 0.482704 -0.832247 0.272693 - txt003 -STRI - V0 0.978656 -1.66628 1.37222 V1 1.36741 -1.36741 1.37222 V2 1.30906 -1.30906 1.62188 - N0 0.482704 -0.832247 0.272693 N1 0.680271 -0.680271 0.272877 N2 0.662761 -0.662761 0.348563 - txt003 -STRI - V0 0.936898 -1.59519 1.62187 V1 0.495081 -1.77888 1.62187 V2 0.517147 -1.85816 1.37222 - N0 0.470295 -0.810853 0.34834 N1 0.244029 -0.90527 0.347757 N2 0.250446 -0.929073 0.272213 - txt003 -STRI - V0 0.517147 -1.85816 1.37222 V1 0.978656 -1.66628 1.37222 V2 0.936898 -1.59519 1.62187 - N0 0.250446 -0.929073 0.272213 N1 0.482704 -0.832247 0.272693 N2 0.470295 -0.810853 0.34834 - txt003 -STRI - V0 0.495081 -1.77888 1.62187 V1 0 -1.84375 1.62187 V2 2.22045e-16 -1.92593 1.37222 - N0 0.244029 -0.90527 0.347757 N1 -1.49384e-16 -0.937749 0.347314 N2 -1.11936e-16 -0.96234 0.271848 - txt003 -STRI - V0 2.22045e-16 -1.92593 1.37222 V1 0.517147 -1.85816 1.37222 V2 0.495081 -1.77888 1.62187 - N0 -1.11936e-16 -0.96234 0.271848 N1 0.250446 -0.929073 0.272213 N2 0.244029 -0.90527 0.347757 - txt003 -STRI - V0 1.92593 0 1.37222 V1 1.85816 -0.517147 1.37222 V2 1.91065 -0.531754 1.1309 - N0 0.96234 0 0.271848 N1 0.929073 -0.250446 0.272213 N2 0.953145 -0.256935 0.159686 - txt003 -STRI - V0 1.91065 -0.531754 1.1309 V1 1.98032 0 1.1309 V2 1.92593 0 1.37222 - N0 0.953145 -0.256935 0.159686 N1 0.987204 0 0.15946 N2 0.96234 0 0.271848 - txt003 -STRI - V0 1.85816 -0.517147 1.37222 V1 1.66628 -0.978656 1.37222 V2 1.71335 -1.0063 1.1309 - N0 0.929073 -0.250446 0.272213 N1 0.832247 -0.482704 0.272693 N2 0.853889 -0.495256 0.159982 - txt003 -STRI - V0 1.71335 -1.0063 1.1309 V1 1.91065 -0.531754 1.1309 V2 1.85816 -0.517147 1.37222 - N0 0.853889 -0.495256 0.159982 N1 0.953145 -0.256935 0.159686 N2 0.929073 -0.250446 0.272213 - txt003 -STRI - V0 1.66628 -0.978656 1.37222 V1 1.36741 -1.36741 1.37222 V2 1.40603 -1.40603 1.1309 - N0 0.832247 -0.482704 0.272693 N1 0.680271 -0.680271 0.272877 N2 0.697986 -0.697986 0.160096 - txt003 -STRI - V0 1.40603 -1.40603 1.1309 V1 1.71335 -1.0063 1.1309 V2 1.66628 -0.978656 1.37222 - N0 0.697986 -0.697986 0.160096 N1 0.853889 -0.495256 0.159982 N2 0.832247 -0.482704 0.272693 - txt003 -STRI - V0 1.36741 -1.36741 1.37222 V1 0.978656 -1.66628 1.37222 V2 1.0063 -1.71335 1.1309 - N0 0.680271 -0.680271 0.272877 N1 0.482704 -0.832247 0.272693 N2 0.495256 -0.853889 0.159982 - txt003 -STRI - V0 1.0063 -1.71335 1.1309 V1 1.40603 -1.40603 1.1309 V2 1.36741 -1.36741 1.37222 - N0 0.495256 -0.853889 0.159982 N1 0.697986 -0.697986 0.160096 N2 0.680271 -0.680271 0.272877 - txt003 -STRI - V0 0.978656 -1.66628 1.37222 V1 0.517147 -1.85816 1.37222 V2 0.531754 -1.91065 1.1309 - N0 0.482704 -0.832247 0.272693 N1 0.250446 -0.929073 0.272213 N2 0.256935 -0.953145 0.159686 - txt003 -STRI - V0 0.531754 -1.91065 1.1309 V1 1.0063 -1.71335 1.1309 V2 0.978656 -1.66628 1.37222 - N0 0.256935 -0.953145 0.159686 N1 0.495256 -0.853889 0.159982 N2 0.482704 -0.832247 0.272693 - txt003 -STRI - V0 0.517147 -1.85816 1.37222 V1 2.22045e-16 -1.92593 1.37222 V2 -2.22045e-16 -1.98032 1.1309 - N0 0.250446 -0.929073 0.272213 N1 -1.11936e-16 -0.96234 0.271848 N2 -6.38555e-17 -0.987204 0.15946 - txt003 -STRI - V0 -2.22045e-16 -1.98032 1.1309 V1 0.531754 -1.91065 1.1309 V2 0.517147 -1.85816 1.37222 - N0 -6.38555e-17 -0.987204 0.15946 N1 0.256935 -0.953145 0.159686 N2 0.250446 -0.929073 0.272213 - txt003 -STRI - V0 1.98032 0 1.1309 V1 1.91065 -0.531754 1.1309 V2 1.92963 -0.537037 0.9 - N0 0.987204 0 0.15946 N1 0.953145 -0.256935 0.159686 N2 0.965535 -0.260275 5.17854e-17 - txt003 -STRI - V0 1.92963 -0.537037 0.9 V1 2 0 0.9 V2 1.98032 0 1.1309 - N0 0.965535 -0.260275 5.17854e-17 N1 1 0 0 N2 0.987204 0 0.15946 - txt003 -STRI - V0 1.91065 -0.531754 1.1309 V1 1.71335 -1.0063 1.1309 V2 1.73037 -1.0163 0.9 - N0 0.953145 -0.256935 0.159686 N1 0.853889 -0.495256 0.159982 N2 0.865031 -0.501718 1.36587e-16 - txt003 -STRI - V0 1.73037 -1.0163 0.9 V1 1.92963 -0.537037 0.9 V2 1.91065 -0.531754 1.1309 - N0 0.865031 -0.501718 1.36587e-16 N1 0.965535 -0.260275 5.17854e-17 N2 0.953145 -0.256935 0.159686 - txt003 -STRI - V0 1.71335 -1.0063 1.1309 V1 1.40603 -1.40603 1.1309 V2 1.42 -1.42 0.9 - N0 0.853889 -0.495256 0.159982 N1 0.697986 -0.697986 0.160096 N2 0.707107 -0.707107 1.74455e-16 - txt003 -STRI - V0 1.42 -1.42 0.9 V1 1.73037 -1.0163 0.9 V2 1.71335 -1.0063 1.1309 - N0 0.707107 -0.707107 1.74455e-16 N1 0.865031 -0.501718 1.36587e-16 N2 0.853889 -0.495256 0.159982 - txt003 -STRI - V0 1.40603 -1.40603 1.1309 V1 1.0063 -1.71335 1.1309 V2 1.0163 -1.73037 0.9 - N0 0.697986 -0.697986 0.160096 N1 0.495256 -0.853889 0.159982 N2 0.501718 -0.865031 1.36587e-16 - txt003 -STRI - V0 1.0163 -1.73037 0.9 V1 1.42 -1.42 0.9 V2 1.40603 -1.40603 1.1309 - N0 0.501718 -0.865031 1.36587e-16 N1 0.707107 -0.707107 1.74455e-16 N2 0.697986 -0.697986 0.160096 - txt003 -STRI - V0 1.0063 -1.71335 1.1309 V1 0.531754 -1.91065 1.1309 V2 0.537037 -1.92963 0.9 - N0 0.495256 -0.853889 0.159982 N1 0.256935 -0.953145 0.159686 N2 0.260275 -0.965535 5.17854e-17 - txt003 -STRI - V0 0.537037 -1.92963 0.9 V1 1.0163 -1.73037 0.9 V2 1.0063 -1.71335 1.1309 - N0 0.260275 -0.965535 5.17854e-17 N1 0.501718 -0.865031 1.36587e-16 N2 0.495256 -0.853889 0.159982 - txt003 -STRI - V0 0.531754 -1.91065 1.1309 V1 -2.22045e-16 -1.98032 1.1309 V2 0 -2 0.9 - N0 0.256935 -0.953145 0.159686 N1 -6.38555e-17 -0.987204 0.15946 N2 0 -1 -0 - txt003 -STRI - V0 0 -2 0.9 V1 0.537037 -1.92963 0.9 V2 0.531754 -1.91065 1.1309 - N0 0 -1 -0 N1 0.260275 -0.965535 5.17854e-17 N2 0.256935 -0.953145 0.159686 - txt003 -STRI - V0 0 -1.5 2.4 V1 -0.402778 -1.44722 2.4 V2 -0.436032 -1.56671 2.13785 - N0 0 -0.902861 0.429934 N1 -0.234929 -0.871509 0.430442 N2 -0.235963 -0.875348 0.422003 - txt003 -STRI - V0 -0.436032 -1.56671 2.13785 V1 0 -1.62384 2.13785 V2 0 -1.5 2.4 - N0 -0.235963 -0.875348 0.422003 N1 0 -0.906828 0.4215 N2 0 -0.902861 0.429934 - txt003 -STRI - V0 -0.402778 -1.44722 2.4 V1 -0.762222 -1.29778 2.4 V2 -0.825153 -1.40492 2.13785 - N0 -0.234929 -0.871509 0.430442 N1 -0.4527 -0.780517 0.43111 N2 -0.4547 -0.783966 0.422664 - txt003 -STRI - V0 -0.825153 -1.40492 2.13785 V1 -0.436032 -1.56671 2.13785 V2 -0.402778 -1.44722 2.4 - N0 -0.4547 -0.783966 0.422664 N1 -0.235963 -0.875348 0.422003 N2 -0.234929 -0.871509 0.430442 - txt003 -STRI - V0 -0.762222 -1.29778 2.4 V1 -1.065 -1.065 2.4 V2 -1.15293 -1.15293 2.13785 - N0 -0.4527 -0.780517 0.43111 N1 -0.637936 -0.637936 0.431366 N2 -0.640758 -0.640758 0.422917 - txt003 -STRI - V0 -1.15293 -1.15293 2.13785 V1 -0.825153 -1.40492 2.13785 V2 -0.762222 -1.29778 2.4 - N0 -0.640758 -0.640758 0.422917 N1 -0.4547 -0.783966 0.422664 N2 -0.4527 -0.780517 0.43111 - txt003 -STRI - V0 -1.065 -1.065 2.4 V1 -1.29778 -0.762222 2.4 V2 -1.40492 -0.825153 2.13785 - N0 -0.637936 -0.637936 0.431366 N1 -0.780517 -0.4527 0.43111 N2 -0.783966 -0.4547 0.422664 - txt003 -STRI - V0 -1.40492 -0.825153 2.13785 V1 -1.15293 -1.15293 2.13785 V2 -1.065 -1.065 2.4 - N0 -0.783966 -0.4547 0.422664 N1 -0.640758 -0.640758 0.422917 N2 -0.637936 -0.637936 0.431366 - txt003 -STRI - V0 -1.29778 -0.762222 2.4 V1 -1.44722 -0.402778 2.4 V2 -1.56671 -0.436032 2.13785 - N0 -0.780517 -0.4527 0.43111 N1 -0.871509 -0.234929 0.430442 N2 -0.875348 -0.235963 0.422003 - txt003 -STRI - V0 -1.56671 -0.436032 2.13785 V1 -1.40492 -0.825153 2.13785 V2 -1.29778 -0.762222 2.4 - N0 -0.875348 -0.235963 0.422003 N1 -0.783966 -0.4547 0.422664 N2 -0.780517 -0.4527 0.43111 - txt003 -STRI - V0 -1.44722 -0.402778 2.4 V1 -1.5 0 2.4 V2 -1.62384 -2.22045e-16 2.13785 - N0 -0.871509 -0.234929 0.430442 N1 -0.902861 2.27296e-16 0.429934 N2 -0.906828 2.05843e-16 0.4215 - txt003 -STRI - V0 -1.62384 -2.22045e-16 2.13785 V1 -1.56671 -0.436032 2.13785 V2 -1.44722 -0.402778 2.4 - N0 -0.906828 2.05843e-16 0.4215 N1 -0.875348 -0.235963 0.422003 N2 -0.871509 -0.234929 0.430442 - txt003 -STRI - V0 0 -1.62384 2.13785 V1 -0.436032 -1.56671 2.13785 V2 -0.467421 -1.67949 1.87778 - N0 0 -0.906828 0.4215 N1 -0.235963 -0.875348 0.422003 N2 -0.239043 -0.886771 0.395595 - txt003 -STRI - V0 -0.467421 -1.67949 1.87778 V1 0 -1.74074 1.87778 V2 0 -1.62384 2.13785 - N0 -0.239043 -0.886771 0.395595 N1 0 -0.918633 0.395111 N2 0 -0.906828 0.4215 - txt003 -STRI - V0 -0.436032 -1.56671 2.13785 V1 -0.825153 -1.40492 2.13785 V2 -0.884554 -1.50606 1.87778 - N0 -0.235963 -0.875348 0.422003 N1 -0.4547 -0.783966 0.422664 N2 -0.460653 -0.794229 0.39623 - txt003 -STRI - V0 -0.884554 -1.50606 1.87778 V1 -0.467421 -1.67949 1.87778 V2 -0.436032 -1.56671 2.13785 - N0 -0.460653 -0.794229 0.39623 N1 -0.239043 -0.886771 0.395595 N2 -0.235963 -0.875348 0.422003 - txt003 -STRI - V0 -0.825153 -1.40492 2.13785 V1 -1.15293 -1.15293 2.13785 V2 -1.23593 -1.23593 1.87778 - N0 -0.4547 -0.783966 0.422664 N1 -0.640758 -0.640758 0.422917 N2 -0.649156 -0.649156 0.396474 - txt003 -STRI - V0 -1.23593 -1.23593 1.87778 V1 -0.884554 -1.50606 1.87778 V2 -0.825153 -1.40492 2.13785 - N0 -0.649156 -0.649156 0.396474 N1 -0.460653 -0.794229 0.39623 N2 -0.4547 -0.783966 0.422664 - txt003 -STRI - V0 -1.15293 -1.15293 2.13785 V1 -1.40492 -0.825153 2.13785 V2 -1.50606 -0.884554 1.87778 - N0 -0.640758 -0.640758 0.422917 N1 -0.783966 -0.4547 0.422664 N2 -0.794229 -0.460653 0.39623 - txt003 -STRI - V0 -1.50606 -0.884554 1.87778 V1 -1.23593 -1.23593 1.87778 V2 -1.15293 -1.15293 2.13785 - N0 -0.794229 -0.460653 0.39623 N1 -0.649156 -0.649156 0.396474 N2 -0.640758 -0.640758 0.422917 - txt003 -STRI - V0 -1.40492 -0.825153 2.13785 V1 -1.56671 -0.436032 2.13785 V2 -1.67949 -0.467421 1.87778 - N0 -0.783966 -0.4547 0.422664 N1 -0.875348 -0.235963 0.422003 N2 -0.886771 -0.239043 0.395595 - txt003 -STRI - V0 -1.67949 -0.467421 1.87778 V1 -1.50606 -0.884554 1.87778 V2 -1.40492 -0.825153 2.13785 - N0 -0.886771 -0.239043 0.395595 N1 -0.794229 -0.460653 0.39623 N2 -0.783966 -0.4547 0.422664 - txt003 -STRI - V0 -1.56671 -0.436032 2.13785 V1 -1.62384 -2.22045e-16 2.13785 V2 -1.74074 0 1.87778 - N0 -0.875348 -0.235963 0.422003 N1 -0.906828 2.05843e-16 0.4215 N2 -0.918633 1.79998e-16 0.395111 - txt003 -STRI - V0 -1.74074 0 1.87778 V1 -1.67949 -0.467421 1.87778 V2 -1.56671 -0.436032 2.13785 - N0 -0.918633 1.79998e-16 0.395111 N1 -0.886771 -0.239043 0.395595 N2 -0.875348 -0.235963 0.422003 - txt003 -STRI - V0 0 -1.74074 1.87778 V1 -0.467421 -1.67949 1.87778 V2 -0.495081 -1.77888 1.62188 - N0 0 -0.918633 0.395111 N1 -0.239043 -0.886771 0.395595 N2 -0.244029 -0.90527 0.347757 - txt003 -STRI - V0 -0.495081 -1.77888 1.62188 V1 0 -1.84375 1.62188 V2 0 -1.74074 1.87778 - N0 -0.244029 -0.90527 0.347757 N1 0 -0.937749 0.347314 N2 0 -0.918633 0.395111 - txt003 -STRI - V0 -0.467421 -1.67949 1.87778 V1 -0.884554 -1.50606 1.87778 V2 -0.936898 -1.59519 1.62188 - N0 -0.239043 -0.886771 0.395595 N1 -0.460653 -0.794229 0.39623 N2 -0.470295 -0.810853 0.34834 - txt003 -STRI - V0 -0.936898 -1.59519 1.62188 V1 -0.495081 -1.77888 1.62188 V2 -0.467421 -1.67949 1.87778 - N0 -0.470295 -0.810853 0.34834 N1 -0.244029 -0.90527 0.347757 N2 -0.239043 -0.886771 0.395595 - txt003 -STRI - V0 -0.884554 -1.50606 1.87778 V1 -1.23593 -1.23593 1.87778 V2 -1.30906 -1.30906 1.62188 - N0 -0.460653 -0.794229 0.39623 N1 -0.649156 -0.649156 0.396474 N2 -0.662761 -0.662761 0.348563 - txt003 -STRI - V0 -1.30906 -1.30906 1.62188 V1 -0.936898 -1.59519 1.62188 V2 -0.884554 -1.50606 1.87778 - N0 -0.662761 -0.662761 0.348563 N1 -0.470295 -0.810853 0.34834 N2 -0.460653 -0.794229 0.39623 - txt003 -STRI - V0 -1.23593 -1.23593 1.87778 V1 -1.50606 -0.884554 1.87778 V2 -1.59519 -0.936898 1.62187 - N0 -0.649156 -0.649156 0.396474 N1 -0.794229 -0.460653 0.39623 N2 -0.810853 -0.470295 0.34834 - txt003 -STRI - V0 -1.59519 -0.936898 1.62187 V1 -1.30906 -1.30906 1.62188 V2 -1.23593 -1.23593 1.87778 - N0 -0.810853 -0.470295 0.34834 N1 -0.662761 -0.662761 0.348563 N2 -0.649156 -0.649156 0.396474 - txt003 -STRI - V0 -1.50606 -0.884554 1.87778 V1 -1.67949 -0.467421 1.87778 V2 -1.77888 -0.495081 1.62187 - N0 -0.794229 -0.460653 0.39623 N1 -0.886771 -0.239043 0.395595 N2 -0.90527 -0.244029 0.347757 - txt003 -STRI - V0 -1.77888 -0.495081 1.62187 V1 -1.59519 -0.936898 1.62187 V2 -1.50606 -0.884554 1.87778 - N0 -0.90527 -0.244029 0.347757 N1 -0.810853 -0.470295 0.34834 N2 -0.794229 -0.460653 0.39623 - txt003 -STRI - V0 -1.67949 -0.467421 1.87778 V1 -1.74074 0 1.87778 V2 -1.84375 0 1.62187 - N0 -0.886771 -0.239043 0.395595 N1 -0.918633 1.79998e-16 0.395111 N2 -0.937749 1.49384e-16 0.347314 - txt003 -STRI - V0 -1.84375 0 1.62187 V1 -1.77888 -0.495081 1.62187 V2 -1.67949 -0.467421 1.87778 - N0 -0.937749 1.49384e-16 0.347314 N1 -0.90527 -0.244029 0.347757 N2 -0.886771 -0.239043 0.395595 - txt003 -STRI - V0 0 -1.84375 1.62188 V1 -0.495081 -1.77888 1.62188 V2 -0.517147 -1.85816 1.37222 - N0 0 -0.937749 0.347314 N1 -0.244029 -0.90527 0.347757 N2 -0.250446 -0.929073 0.272213 - txt003 -STRI - V0 -0.517147 -1.85816 1.37222 V1 0 -1.92593 1.37222 V2 0 -1.84375 1.62188 - N0 -0.250446 -0.929073 0.272213 N1 0 -0.96234 0.271848 N2 0 -0.937749 0.347314 - txt003 -STRI - V0 -0.495081 -1.77888 1.62188 V1 -0.936898 -1.59519 1.62188 V2 -0.978656 -1.66628 1.37222 - N0 -0.244029 -0.90527 0.347757 N1 -0.470295 -0.810853 0.34834 N2 -0.482704 -0.832247 0.272693 - txt003 -STRI - V0 -0.978656 -1.66628 1.37222 V1 -0.517147 -1.85816 1.37222 V2 -0.495081 -1.77888 1.62188 - N0 -0.482704 -0.832247 0.272693 N1 -0.250446 -0.929073 0.272213 N2 -0.244029 -0.90527 0.347757 - txt003 -STRI - V0 -0.936898 -1.59519 1.62188 V1 -1.30906 -1.30906 1.62188 V2 -1.36741 -1.36741 1.37222 - N0 -0.470295 -0.810853 0.34834 N1 -0.662761 -0.662761 0.348563 N2 -0.680271 -0.680271 0.272877 - txt003 -STRI - V0 -1.36741 -1.36741 1.37222 V1 -0.978656 -1.66628 1.37222 V2 -0.936898 -1.59519 1.62188 - N0 -0.680271 -0.680271 0.272877 N1 -0.482704 -0.832247 0.272693 N2 -0.470295 -0.810853 0.34834 - txt003 -STRI - V0 -1.30906 -1.30906 1.62188 V1 -1.59519 -0.936898 1.62187 V2 -1.66628 -0.978656 1.37222 - N0 -0.662761 -0.662761 0.348563 N1 -0.810853 -0.470295 0.34834 N2 -0.832247 -0.482704 0.272693 - txt003 -STRI - V0 -1.66628 -0.978656 1.37222 V1 -1.36741 -1.36741 1.37222 V2 -1.30906 -1.30906 1.62188 - N0 -0.832247 -0.482704 0.272693 N1 -0.680271 -0.680271 0.272877 N2 -0.662761 -0.662761 0.348563 - txt003 -STRI - V0 -1.59519 -0.936898 1.62187 V1 -1.77888 -0.495081 1.62187 V2 -1.85816 -0.517147 1.37222 - N0 -0.810853 -0.470295 0.34834 N1 -0.90527 -0.244029 0.347757 N2 -0.929073 -0.250446 0.272213 - txt003 -STRI - V0 -1.85816 -0.517147 1.37222 V1 -1.66628 -0.978656 1.37222 V2 -1.59519 -0.936898 1.62187 - N0 -0.929073 -0.250446 0.272213 N1 -0.832247 -0.482704 0.272693 N2 -0.810853 -0.470295 0.34834 - txt003 -STRI - V0 -1.77888 -0.495081 1.62187 V1 -1.84375 0 1.62187 V2 -1.92593 -2.22045e-16 1.37222 - N0 -0.90527 -0.244029 0.347757 N1 -0.937749 1.49384e-16 0.347314 N2 -0.96234 1.11936e-16 0.271848 - txt003 -STRI - V0 -1.92593 -2.22045e-16 1.37222 V1 -1.85816 -0.517147 1.37222 V2 -1.77888 -0.495081 1.62187 - N0 -0.96234 1.11936e-16 0.271848 N1 -0.929073 -0.250446 0.272213 N2 -0.90527 -0.244029 0.347757 - txt003 -STRI - V0 0 -1.92593 1.37222 V1 -0.517147 -1.85816 1.37222 V2 -0.531754 -1.91065 1.1309 - N0 0 -0.96234 0.271848 N1 -0.250446 -0.929073 0.272213 N2 -0.256935 -0.953145 0.159686 - txt003 -STRI - V0 -0.531754 -1.91065 1.1309 V1 0 -1.98032 1.1309 V2 0 -1.92593 1.37222 - N0 -0.256935 -0.953145 0.159686 N1 0 -0.987204 0.15946 N2 0 -0.96234 0.271848 - txt003 -STRI - V0 -0.517147 -1.85816 1.37222 V1 -0.978656 -1.66628 1.37222 V2 -1.0063 -1.71335 1.1309 - N0 -0.250446 -0.929073 0.272213 N1 -0.482704 -0.832247 0.272693 N2 -0.495256 -0.853889 0.159982 - txt003 -STRI - V0 -1.0063 -1.71335 1.1309 V1 -0.531754 -1.91065 1.1309 V2 -0.517147 -1.85816 1.37222 - N0 -0.495256 -0.853889 0.159982 N1 -0.256935 -0.953145 0.159686 N2 -0.250446 -0.929073 0.272213 - txt003 -STRI - V0 -0.978656 -1.66628 1.37222 V1 -1.36741 -1.36741 1.37222 V2 -1.40603 -1.40603 1.1309 - N0 -0.482704 -0.832247 0.272693 N1 -0.680271 -0.680271 0.272877 N2 -0.697986 -0.697986 0.160096 - txt003 -STRI - V0 -1.40603 -1.40603 1.1309 V1 -1.0063 -1.71335 1.1309 V2 -0.978656 -1.66628 1.37222 - N0 -0.697986 -0.697986 0.160096 N1 -0.495256 -0.853889 0.159982 N2 -0.482704 -0.832247 0.272693 - txt003 -STRI - V0 -1.36741 -1.36741 1.37222 V1 -1.66628 -0.978656 1.37222 V2 -1.71335 -1.0063 1.1309 - N0 -0.680271 -0.680271 0.272877 N1 -0.832247 -0.482704 0.272693 N2 -0.853889 -0.495256 0.159982 - txt003 -STRI - V0 -1.71335 -1.0063 1.1309 V1 -1.40603 -1.40603 1.1309 V2 -1.36741 -1.36741 1.37222 - N0 -0.853889 -0.495256 0.159982 N1 -0.697986 -0.697986 0.160096 N2 -0.680271 -0.680271 0.272877 - txt003 -STRI - V0 -1.66628 -0.978656 1.37222 V1 -1.85816 -0.517147 1.37222 V2 -1.91065 -0.531754 1.1309 - N0 -0.832247 -0.482704 0.272693 N1 -0.929073 -0.250446 0.272213 N2 -0.953145 -0.256935 0.159686 - txt003 -STRI - V0 -1.91065 -0.531754 1.1309 V1 -1.71335 -1.0063 1.1309 V2 -1.66628 -0.978656 1.37222 - N0 -0.953145 -0.256935 0.159686 N1 -0.853889 -0.495256 0.159982 N2 -0.832247 -0.482704 0.272693 - txt003 -STRI - V0 -1.85816 -0.517147 1.37222 V1 -1.92593 -2.22045e-16 1.37222 V2 -1.98032 2.22045e-16 1.1309 - N0 -0.929073 -0.250446 0.272213 N1 -0.96234 1.11936e-16 0.271848 N2 -0.987204 6.38555e-17 0.15946 - txt003 -STRI - V0 -1.98032 2.22045e-16 1.1309 V1 -1.91065 -0.531754 1.1309 V2 -1.85816 -0.517147 1.37222 - N0 -0.987204 6.38555e-17 0.15946 N1 -0.953145 -0.256935 0.159686 N2 -0.929073 -0.250446 0.272213 - txt003 -STRI - V0 0 -1.98032 1.1309 V1 -0.531754 -1.91065 1.1309 V2 -0.537037 -1.92963 0.9 - N0 0 -0.987204 0.15946 N1 -0.256935 -0.953145 0.159686 N2 -0.260275 -0.965535 5.17854e-17 - txt003 -STRI - V0 -0.537037 -1.92963 0.9 V1 0 -2 0.9 V2 0 -1.98032 1.1309 - N0 -0.260275 -0.965535 5.17854e-17 N1 -0 -1 -0 N2 0 -0.987204 0.15946 - txt003 -STRI - V0 -0.531754 -1.91065 1.1309 V1 -1.0063 -1.71335 1.1309 V2 -1.0163 -1.73037 0.9 - N0 -0.256935 -0.953145 0.159686 N1 -0.495256 -0.853889 0.159982 N2 -0.501718 -0.865031 1.36587e-16 - txt003 -STRI - V0 -1.0163 -1.73037 0.9 V1 -0.537037 -1.92963 0.9 V2 -0.531754 -1.91065 1.1309 - N0 -0.501718 -0.865031 1.36587e-16 N1 -0.260275 -0.965535 5.17854e-17 N2 -0.256935 -0.953145 0.159686 - txt003 -STRI - V0 -1.0063 -1.71335 1.1309 V1 -1.40603 -1.40603 1.1309 V2 -1.42 -1.42 0.9 - N0 -0.495256 -0.853889 0.159982 N1 -0.697986 -0.697986 0.160096 N2 -0.707107 -0.707107 1.74455e-16 - txt003 -STRI - V0 -1.42 -1.42 0.9 V1 -1.0163 -1.73037 0.9 V2 -1.0063 -1.71335 1.1309 - N0 -0.707107 -0.707107 1.74455e-16 N1 -0.501718 -0.865031 1.36587e-16 N2 -0.495256 -0.853889 0.159982 - txt003 -STRI - V0 -1.40603 -1.40603 1.1309 V1 -1.71335 -1.0063 1.1309 V2 -1.73037 -1.0163 0.9 - N0 -0.697986 -0.697986 0.160096 N1 -0.853889 -0.495256 0.159982 N2 -0.865031 -0.501718 1.36587e-16 - txt003 -STRI - V0 -1.73037 -1.0163 0.9 V1 -1.42 -1.42 0.9 V2 -1.40603 -1.40603 1.1309 - N0 -0.865031 -0.501718 1.36587e-16 N1 -0.707107 -0.707107 1.74455e-16 N2 -0.697986 -0.697986 0.160096 - txt003 -STRI - V0 -1.71335 -1.0063 1.1309 V1 -1.91065 -0.531754 1.1309 V2 -1.92963 -0.537037 0.9 - N0 -0.853889 -0.495256 0.159982 N1 -0.953145 -0.256935 0.159686 N2 -0.965535 -0.260275 5.17854e-17 - txt003 -STRI - V0 -1.92963 -0.537037 0.9 V1 -1.73037 -1.0163 0.9 V2 -1.71335 -1.0063 1.1309 - N0 -0.965535 -0.260275 5.17854e-17 N1 -0.865031 -0.501718 1.36587e-16 N2 -0.853889 -0.495256 0.159982 - txt003 -STRI - V0 -1.91065 -0.531754 1.1309 V1 -1.98032 2.22045e-16 1.1309 V2 -2 0 0.9 - N0 -0.953145 -0.256935 0.159686 N1 -0.987204 6.38555e-17 0.15946 N2 -1 0 0 - txt003 -STRI - V0 -2 0 0.9 V1 -1.92963 -0.537037 0.9 V2 -1.91065 -0.531754 1.1309 - N0 -1 0 0 N1 -0.965535 -0.260275 5.17854e-17 N2 -0.953145 -0.256935 0.159686 - txt003 -STRI - V0 -1.5 0 2.4 V1 -1.44722 0.402778 2.4 V2 -1.56671 0.436032 2.13785 - N0 -0.902861 0 0.429934 N1 -0.871509 0.234929 0.430442 N2 -0.875348 0.235963 0.422003 - txt003 -STRI - V0 -1.56671 0.436032 2.13785 V1 -1.62384 0 2.13785 V2 -1.5 0 2.4 - N0 -0.875348 0.235963 0.422003 N1 -0.906828 0 0.4215 N2 -0.902861 0 0.429934 - txt003 -STRI - V0 -1.44722 0.402778 2.4 V1 -1.29778 0.762222 2.4 V2 -1.40492 0.825153 2.13785 - N0 -0.871509 0.234929 0.430442 N1 -0.780517 0.4527 0.43111 N2 -0.783966 0.4547 0.422664 - txt003 -STRI - V0 -1.40492 0.825153 2.13785 V1 -1.56671 0.436032 2.13785 V2 -1.44722 0.402778 2.4 - N0 -0.783966 0.4547 0.422664 N1 -0.875348 0.235963 0.422003 N2 -0.871509 0.234929 0.430442 - txt003 -STRI - V0 -1.29778 0.762222 2.4 V1 -1.065 1.065 2.4 V2 -1.15293 1.15293 2.13785 - N0 -0.780517 0.4527 0.43111 N1 -0.637936 0.637936 0.431366 N2 -0.640758 0.640758 0.422917 - txt003 -STRI - V0 -1.15293 1.15293 2.13785 V1 -1.40492 0.825153 2.13785 V2 -1.29778 0.762222 2.4 - N0 -0.640758 0.640758 0.422917 N1 -0.783966 0.4547 0.422664 N2 -0.780517 0.4527 0.43111 - txt003 -STRI - V0 -1.065 1.065 2.4 V1 -0.762222 1.29778 2.4 V2 -0.825153 1.40492 2.13785 - N0 -0.637936 0.637936 0.431366 N1 -0.4527 0.780517 0.43111 N2 -0.4547 0.783966 0.422664 - txt003 -STRI - V0 -0.825153 1.40492 2.13785 V1 -1.15293 1.15293 2.13785 V2 -1.065 1.065 2.4 - N0 -0.4547 0.783966 0.422664 N1 -0.640758 0.640758 0.422917 N2 -0.637936 0.637936 0.431366 - txt003 -STRI - V0 -0.762222 1.29778 2.4 V1 -0.402778 1.44722 2.4 V2 -0.436032 1.56671 2.13785 - N0 -0.4527 0.780517 0.43111 N1 -0.234929 0.871509 0.430442 N2 -0.235963 0.875348 0.422003 - txt003 -STRI - V0 -0.436032 1.56671 2.13785 V1 -0.825153 1.40492 2.13785 V2 -0.762222 1.29778 2.4 - N0 -0.235963 0.875348 0.422003 N1 -0.4547 0.783966 0.422664 N2 -0.4527 0.780517 0.43111 - txt003 -STRI - V0 -0.402778 1.44722 2.4 V1 0 1.5 2.4 V2 -2.22045e-16 1.62384 2.13785 - N0 -0.234929 0.871509 0.430442 N1 2.27296e-16 0.902861 0.429934 N2 2.05843e-16 0.906828 0.4215 - txt003 -STRI - V0 -2.22045e-16 1.62384 2.13785 V1 -0.436032 1.56671 2.13785 V2 -0.402778 1.44722 2.4 - N0 2.05843e-16 0.906828 0.4215 N1 -0.235963 0.875348 0.422003 N2 -0.234929 0.871509 0.430442 - txt003 -STRI - V0 -1.62384 0 2.13785 V1 -1.56671 0.436032 2.13785 V2 -1.67949 0.467421 1.87778 - N0 -0.906828 0 0.4215 N1 -0.875348 0.235963 0.422003 N2 -0.886771 0.239043 0.395595 - txt003 -STRI - V0 -1.67949 0.467421 1.87778 V1 -1.74074 0 1.87778 V2 -1.62384 0 2.13785 - N0 -0.886771 0.239043 0.395595 N1 -0.918633 0 0.395111 N2 -0.906828 0 0.4215 - txt003 -STRI - V0 -1.56671 0.436032 2.13785 V1 -1.40492 0.825153 2.13785 V2 -1.50606 0.884554 1.87778 - N0 -0.875348 0.235963 0.422003 N1 -0.783966 0.4547 0.422664 N2 -0.794229 0.460653 0.39623 - txt003 -STRI - V0 -1.50606 0.884554 1.87778 V1 -1.67949 0.467421 1.87778 V2 -1.56671 0.436032 2.13785 - N0 -0.794229 0.460653 0.39623 N1 -0.886771 0.239043 0.395595 N2 -0.875348 0.235963 0.422003 - txt003 -STRI - V0 -1.40492 0.825153 2.13785 V1 -1.15293 1.15293 2.13785 V2 -1.23593 1.23593 1.87778 - N0 -0.783966 0.4547 0.422664 N1 -0.640758 0.640758 0.422917 N2 -0.649156 0.649156 0.396474 - txt003 -STRI - V0 -1.23593 1.23593 1.87778 V1 -1.50606 0.884554 1.87778 V2 -1.40492 0.825153 2.13785 - N0 -0.649156 0.649156 0.396474 N1 -0.794229 0.460653 0.39623 N2 -0.783966 0.4547 0.422664 - txt003 -STRI - V0 -1.15293 1.15293 2.13785 V1 -0.825153 1.40492 2.13785 V2 -0.884554 1.50606 1.87778 - N0 -0.640758 0.640758 0.422917 N1 -0.4547 0.783966 0.422664 N2 -0.460653 0.794229 0.39623 - txt003 -STRI - V0 -0.884554 1.50606 1.87778 V1 -1.23593 1.23593 1.87778 V2 -1.15293 1.15293 2.13785 - N0 -0.460653 0.794229 0.39623 N1 -0.649156 0.649156 0.396474 N2 -0.640758 0.640758 0.422917 - txt003 -STRI - V0 -0.825153 1.40492 2.13785 V1 -0.436032 1.56671 2.13785 V2 -0.467421 1.67949 1.87778 - N0 -0.4547 0.783966 0.422664 N1 -0.235963 0.875348 0.422003 N2 -0.239043 0.886771 0.395595 - txt003 -STRI - V0 -0.467421 1.67949 1.87778 V1 -0.884554 1.50606 1.87778 V2 -0.825153 1.40492 2.13785 - N0 -0.239043 0.886771 0.395595 N1 -0.460653 0.794229 0.39623 N2 -0.4547 0.783966 0.422664 - txt003 -STRI - V0 -0.436032 1.56671 2.13785 V1 -2.22045e-16 1.62384 2.13785 V2 0 1.74074 1.87778 - N0 -0.235963 0.875348 0.422003 N1 2.05843e-16 0.906828 0.4215 N2 1.79998e-16 0.918633 0.395111 - txt003 -STRI - V0 0 1.74074 1.87778 V1 -0.467421 1.67949 1.87778 V2 -0.436032 1.56671 2.13785 - N0 1.79998e-16 0.918633 0.395111 N1 -0.239043 0.886771 0.395595 N2 -0.235963 0.875348 0.422003 - txt003 -STRI - V0 -1.74074 0 1.87778 V1 -1.67949 0.467421 1.87778 V2 -1.77888 0.495081 1.62188 - N0 -0.918633 0 0.395111 N1 -0.886771 0.239043 0.395595 N2 -0.90527 0.244029 0.347757 - txt003 -STRI - V0 -1.77888 0.495081 1.62188 V1 -1.84375 0 1.62188 V2 -1.74074 0 1.87778 - N0 -0.90527 0.244029 0.347757 N1 -0.937749 0 0.347314 N2 -0.918633 0 0.395111 - txt003 -STRI - V0 -1.67949 0.467421 1.87778 V1 -1.50606 0.884554 1.87778 V2 -1.59519 0.936898 1.62188 - N0 -0.886771 0.239043 0.395595 N1 -0.794229 0.460653 0.39623 N2 -0.810853 0.470295 0.34834 - txt003 -STRI - V0 -1.59519 0.936898 1.62188 V1 -1.77888 0.495081 1.62188 V2 -1.67949 0.467421 1.87778 - N0 -0.810853 0.470295 0.34834 N1 -0.90527 0.244029 0.347757 N2 -0.886771 0.239043 0.395595 - txt003 -STRI - V0 -1.50606 0.884554 1.87778 V1 -1.23593 1.23593 1.87778 V2 -1.30906 1.30906 1.62188 - N0 -0.794229 0.460653 0.39623 N1 -0.649156 0.649156 0.396474 N2 -0.662761 0.662761 0.348563 - txt003 -STRI - V0 -1.30906 1.30906 1.62188 V1 -1.59519 0.936898 1.62188 V2 -1.50606 0.884554 1.87778 - N0 -0.662761 0.662761 0.348563 N1 -0.810853 0.470295 0.34834 N2 -0.794229 0.460653 0.39623 - txt003 -STRI - V0 -1.23593 1.23593 1.87778 V1 -0.884554 1.50606 1.87778 V2 -0.936898 1.59519 1.62187 - N0 -0.649156 0.649156 0.396474 N1 -0.460653 0.794229 0.39623 N2 -0.470295 0.810853 0.34834 - txt003 -STRI - V0 -0.936898 1.59519 1.62187 V1 -1.30906 1.30906 1.62188 V2 -1.23593 1.23593 1.87778 - N0 -0.470295 0.810853 0.34834 N1 -0.662761 0.662761 0.348563 N2 -0.649156 0.649156 0.396474 - txt003 -STRI - V0 -0.884554 1.50606 1.87778 V1 -0.467421 1.67949 1.87778 V2 -0.495081 1.77888 1.62187 - N0 -0.460653 0.794229 0.39623 N1 -0.239043 0.886771 0.395595 N2 -0.244029 0.90527 0.347757 - txt003 -STRI - V0 -0.495081 1.77888 1.62187 V1 -0.936898 1.59519 1.62187 V2 -0.884554 1.50606 1.87778 - N0 -0.244029 0.90527 0.347757 N1 -0.470295 0.810853 0.34834 N2 -0.460653 0.794229 0.39623 - txt003 -STRI - V0 -0.467421 1.67949 1.87778 V1 0 1.74074 1.87778 V2 0 1.84375 1.62187 - N0 -0.239043 0.886771 0.395595 N1 1.79998e-16 0.918633 0.395111 N2 1.49384e-16 0.937749 0.347314 - txt003 -STRI - V0 0 1.84375 1.62187 V1 -0.495081 1.77888 1.62187 V2 -0.467421 1.67949 1.87778 - N0 1.49384e-16 0.937749 0.347314 N1 -0.244029 0.90527 0.347757 N2 -0.239043 0.886771 0.395595 - txt003 -STRI - V0 -1.84375 0 1.62188 V1 -1.77888 0.495081 1.62188 V2 -1.85816 0.517147 1.37222 - N0 -0.937749 0 0.347314 N1 -0.90527 0.244029 0.347757 N2 -0.929073 0.250446 0.272213 - txt003 -STRI - V0 -1.85816 0.517147 1.37222 V1 -1.92593 0 1.37222 V2 -1.84375 0 1.62188 - N0 -0.929073 0.250446 0.272213 N1 -0.96234 0 0.271848 N2 -0.937749 0 0.347314 - txt003 -STRI - V0 -1.77888 0.495081 1.62188 V1 -1.59519 0.936898 1.62188 V2 -1.66628 0.978656 1.37222 - N0 -0.90527 0.244029 0.347757 N1 -0.810853 0.470295 0.34834 N2 -0.832247 0.482704 0.272693 - txt003 -STRI - V0 -1.66628 0.978656 1.37222 V1 -1.85816 0.517147 1.37222 V2 -1.77888 0.495081 1.62188 - N0 -0.832247 0.482704 0.272693 N1 -0.929073 0.250446 0.272213 N2 -0.90527 0.244029 0.347757 - txt003 -STRI - V0 -1.59519 0.936898 1.62188 V1 -1.30906 1.30906 1.62188 V2 -1.36741 1.36741 1.37222 - N0 -0.810853 0.470295 0.34834 N1 -0.662761 0.662761 0.348563 N2 -0.680271 0.680271 0.272877 - txt003 -STRI - V0 -1.36741 1.36741 1.37222 V1 -1.66628 0.978656 1.37222 V2 -1.59519 0.936898 1.62188 - N0 -0.680271 0.680271 0.272877 N1 -0.832247 0.482704 0.272693 N2 -0.810853 0.470295 0.34834 - txt003 -STRI - V0 -1.30906 1.30906 1.62188 V1 -0.936898 1.59519 1.62187 V2 -0.978656 1.66628 1.37222 - N0 -0.662761 0.662761 0.348563 N1 -0.470295 0.810853 0.34834 N2 -0.482704 0.832247 0.272693 - txt003 -STRI - V0 -0.978656 1.66628 1.37222 V1 -1.36741 1.36741 1.37222 V2 -1.30906 1.30906 1.62188 - N0 -0.482704 0.832247 0.272693 N1 -0.680271 0.680271 0.272877 N2 -0.662761 0.662761 0.348563 - txt003 -STRI - V0 -0.936898 1.59519 1.62187 V1 -0.495081 1.77888 1.62187 V2 -0.517147 1.85816 1.37222 - N0 -0.470295 0.810853 0.34834 N1 -0.244029 0.90527 0.347757 N2 -0.250446 0.929073 0.272213 - txt003 -STRI - V0 -0.517147 1.85816 1.37222 V1 -0.978656 1.66628 1.37222 V2 -0.936898 1.59519 1.62187 - N0 -0.250446 0.929073 0.272213 N1 -0.482704 0.832247 0.272693 N2 -0.470295 0.810853 0.34834 - txt003 -STRI - V0 -0.495081 1.77888 1.62187 V1 0 1.84375 1.62187 V2 -2.22045e-16 1.92593 1.37222 - N0 -0.244029 0.90527 0.347757 N1 1.49384e-16 0.937749 0.347314 N2 1.11936e-16 0.96234 0.271848 - txt003 -STRI - V0 -2.22045e-16 1.92593 1.37222 V1 -0.517147 1.85816 1.37222 V2 -0.495081 1.77888 1.62187 - N0 1.11936e-16 0.96234 0.271848 N1 -0.250446 0.929073 0.272213 N2 -0.244029 0.90527 0.347757 - txt003 -STRI - V0 -1.92593 0 1.37222 V1 -1.85816 0.517147 1.37222 V2 -1.91065 0.531754 1.1309 - N0 -0.96234 0 0.271848 N1 -0.929073 0.250446 0.272213 N2 -0.953145 0.256935 0.159686 - txt003 -STRI - V0 -1.91065 0.531754 1.1309 V1 -1.98032 0 1.1309 V2 -1.92593 0 1.37222 - N0 -0.953145 0.256935 0.159686 N1 -0.987204 0 0.15946 N2 -0.96234 0 0.271848 - txt003 -STRI - V0 -1.85816 0.517147 1.37222 V1 -1.66628 0.978656 1.37222 V2 -1.71335 1.0063 1.1309 - N0 -0.929073 0.250446 0.272213 N1 -0.832247 0.482704 0.272693 N2 -0.853889 0.495256 0.159982 - txt003 -STRI - V0 -1.71335 1.0063 1.1309 V1 -1.91065 0.531754 1.1309 V2 -1.85816 0.517147 1.37222 - N0 -0.853889 0.495256 0.159982 N1 -0.953145 0.256935 0.159686 N2 -0.929073 0.250446 0.272213 - txt003 -STRI - V0 -1.66628 0.978656 1.37222 V1 -1.36741 1.36741 1.37222 V2 -1.40603 1.40603 1.1309 - N0 -0.832247 0.482704 0.272693 N1 -0.680271 0.680271 0.272877 N2 -0.697986 0.697986 0.160096 - txt003 -STRI - V0 -1.40603 1.40603 1.1309 V1 -1.71335 1.0063 1.1309 V2 -1.66628 0.978656 1.37222 - N0 -0.697986 0.697986 0.160096 N1 -0.853889 0.495256 0.159982 N2 -0.832247 0.482704 0.272693 - txt003 -STRI - V0 -1.36741 1.36741 1.37222 V1 -0.978656 1.66628 1.37222 V2 -1.0063 1.71335 1.1309 - N0 -0.680271 0.680271 0.272877 N1 -0.482704 0.832247 0.272693 N2 -0.495256 0.853889 0.159982 - txt003 -STRI - V0 -1.0063 1.71335 1.1309 V1 -1.40603 1.40603 1.1309 V2 -1.36741 1.36741 1.37222 - N0 -0.495256 0.853889 0.159982 N1 -0.697986 0.697986 0.160096 N2 -0.680271 0.680271 0.272877 - txt003 -STRI - V0 -0.978656 1.66628 1.37222 V1 -0.517147 1.85816 1.37222 V2 -0.531754 1.91065 1.1309 - N0 -0.482704 0.832247 0.272693 N1 -0.250446 0.929073 0.272213 N2 -0.256935 0.953145 0.159686 - txt003 -STRI - V0 -0.531754 1.91065 1.1309 V1 -1.0063 1.71335 1.1309 V2 -0.978656 1.66628 1.37222 - N0 -0.256935 0.953145 0.159686 N1 -0.495256 0.853889 0.159982 N2 -0.482704 0.832247 0.272693 - txt003 -STRI - V0 -0.517147 1.85816 1.37222 V1 -2.22045e-16 1.92593 1.37222 V2 2.22045e-16 1.98032 1.1309 - N0 -0.250446 0.929073 0.272213 N1 1.11936e-16 0.96234 0.271848 N2 6.38555e-17 0.987204 0.15946 - txt003 -STRI - V0 2.22045e-16 1.98032 1.1309 V1 -0.531754 1.91065 1.1309 V2 -0.517147 1.85816 1.37222 - N0 6.38555e-17 0.987204 0.15946 N1 -0.256935 0.953145 0.159686 N2 -0.250446 0.929073 0.272213 - txt003 -STRI - V0 -1.98032 0 1.1309 V1 -1.91065 0.531754 1.1309 V2 -1.92963 0.537037 0.9 - N0 -0.987204 0 0.15946 N1 -0.953145 0.256935 0.159686 N2 -0.965535 0.260275 5.17854e-17 - txt003 -STRI - V0 -1.92963 0.537037 0.9 V1 -2 0 0.9 V2 -1.98032 0 1.1309 - N0 -0.965535 0.260275 5.17854e-17 N1 -1 0 0 N2 -0.987204 0 0.15946 - txt003 -STRI - V0 -1.91065 0.531754 1.1309 V1 -1.71335 1.0063 1.1309 V2 -1.73037 1.0163 0.9 - N0 -0.953145 0.256935 0.159686 N1 -0.853889 0.495256 0.159982 N2 -0.865031 0.501718 1.36587e-16 - txt003 -STRI - V0 -1.73037 1.0163 0.9 V1 -1.92963 0.537037 0.9 V2 -1.91065 0.531754 1.1309 - N0 -0.865031 0.501718 1.36587e-16 N1 -0.965535 0.260275 5.17854e-17 N2 -0.953145 0.256935 0.159686 - txt003 -STRI - V0 -1.71335 1.0063 1.1309 V1 -1.40603 1.40603 1.1309 V2 -1.42 1.42 0.9 - N0 -0.853889 0.495256 0.159982 N1 -0.697986 0.697986 0.160096 N2 -0.707107 0.707107 1.74455e-16 - txt003 -STRI - V0 -1.42 1.42 0.9 V1 -1.73037 1.0163 0.9 V2 -1.71335 1.0063 1.1309 - N0 -0.707107 0.707107 1.74455e-16 N1 -0.865031 0.501718 1.36587e-16 N2 -0.853889 0.495256 0.159982 - txt003 -STRI - V0 -1.40603 1.40603 1.1309 V1 -1.0063 1.71335 1.1309 V2 -1.0163 1.73037 0.9 - N0 -0.697986 0.697986 0.160096 N1 -0.495256 0.853889 0.159982 N2 -0.501718 0.865031 1.36587e-16 - txt003 -STRI - V0 -1.0163 1.73037 0.9 V1 -1.42 1.42 0.9 V2 -1.40603 1.40603 1.1309 - N0 -0.501718 0.865031 1.36587e-16 N1 -0.707107 0.707107 1.74455e-16 N2 -0.697986 0.697986 0.160096 - txt003 -STRI - V0 -1.0063 1.71335 1.1309 V1 -0.531754 1.91065 1.1309 V2 -0.537037 1.92963 0.9 - N0 -0.495256 0.853889 0.159982 N1 -0.256935 0.953145 0.159686 N2 -0.260275 0.965535 5.17854e-17 - txt003 -STRI - V0 -0.537037 1.92963 0.9 V1 -1.0163 1.73037 0.9 V2 -1.0063 1.71335 1.1309 - N0 -0.260275 0.965535 5.17854e-17 N1 -0.501718 0.865031 1.36587e-16 N2 -0.495256 0.853889 0.159982 - txt003 -STRI - V0 -0.531754 1.91065 1.1309 V1 2.22045e-16 1.98032 1.1309 V2 0 2 0.9 - N0 -0.256935 0.953145 0.159686 N1 6.38555e-17 0.987204 0.15946 N2 0 1 0 - txt003 -STRI - V0 0 2 0.9 V1 -0.537037 1.92963 0.9 V2 -0.531754 1.91065 1.1309 - N0 0 1 0 N1 -0.260275 0.965535 5.17854e-17 N2 -0.256935 0.953145 0.159686 - txt003 -STRI - V0 0 1.5 2.4 V1 0.402778 1.44722 2.4 V2 0.436032 1.56671 2.13785 - N0 -0 0.902861 0.429934 N1 0.234929 0.871509 0.430442 N2 0.235963 0.875348 0.422003 - txt003 -STRI - V0 0.436032 1.56671 2.13785 V1 0 1.62384 2.13785 V2 0 1.5 2.4 - N0 0.235963 0.875348 0.422003 N1 -0 0.906828 0.4215 N2 -0 0.902861 0.429934 - txt003 -STRI - V0 0.402778 1.44722 2.4 V1 0.762222 1.29778 2.4 V2 0.825153 1.40492 2.13785 - N0 0.234929 0.871509 0.430442 N1 0.4527 0.780517 0.43111 N2 0.4547 0.783966 0.422664 - txt003 -STRI - V0 0.825153 1.40492 2.13785 V1 0.436032 1.56671 2.13785 V2 0.402778 1.44722 2.4 - N0 0.4547 0.783966 0.422664 N1 0.235963 0.875348 0.422003 N2 0.234929 0.871509 0.430442 - txt003 -STRI - V0 0.762222 1.29778 2.4 V1 1.065 1.065 2.4 V2 1.15293 1.15293 2.13785 - N0 0.4527 0.780517 0.43111 N1 0.637936 0.637936 0.431366 N2 0.640758 0.640758 0.422917 - txt003 -STRI - V0 1.15293 1.15293 2.13785 V1 0.825153 1.40492 2.13785 V2 0.762222 1.29778 2.4 - N0 0.640758 0.640758 0.422917 N1 0.4547 0.783966 0.422664 N2 0.4527 0.780517 0.43111 - txt003 -STRI - V0 1.065 1.065 2.4 V1 1.29778 0.762222 2.4 V2 1.40492 0.825153 2.13785 - N0 0.637936 0.637936 0.431366 N1 0.780517 0.4527 0.43111 N2 0.783966 0.4547 0.422664 - txt003 -STRI - V0 1.40492 0.825153 2.13785 V1 1.15293 1.15293 2.13785 V2 1.065 1.065 2.4 - N0 0.783966 0.4547 0.422664 N1 0.640758 0.640758 0.422917 N2 0.637936 0.637936 0.431366 - txt003 -STRI - V0 1.29778 0.762222 2.4 V1 1.44722 0.402778 2.4 V2 1.56671 0.436032 2.13785 - N0 0.780517 0.4527 0.43111 N1 0.871509 0.234929 0.430442 N2 0.875348 0.235963 0.422003 - txt003 -STRI - V0 1.56671 0.436032 2.13785 V1 1.40492 0.825153 2.13785 V2 1.29778 0.762222 2.4 - N0 0.875348 0.235963 0.422003 N1 0.783966 0.4547 0.422664 N2 0.780517 0.4527 0.43111 - txt003 -STRI - V0 1.44722 0.402778 2.4 V1 1.5 0 2.4 V2 1.62384 2.22045e-16 2.13785 - N0 0.871509 0.234929 0.430442 N1 0.902861 -2.27296e-16 0.429934 N2 0.906828 -2.05843e-16 0.4215 - txt003 -STRI - V0 1.62384 2.22045e-16 2.13785 V1 1.56671 0.436032 2.13785 V2 1.44722 0.402778 2.4 - N0 0.906828 -2.05843e-16 0.4215 N1 0.875348 0.235963 0.422003 N2 0.871509 0.234929 0.430442 - txt003 -STRI - V0 0 1.62384 2.13785 V1 0.436032 1.56671 2.13785 V2 0.467421 1.67949 1.87778 - N0 -0 0.906828 0.4215 N1 0.235963 0.875348 0.422003 N2 0.239043 0.886771 0.395595 - txt003 -STRI - V0 0.467421 1.67949 1.87778 V1 0 1.74074 1.87778 V2 0 1.62384 2.13785 - N0 0.239043 0.886771 0.395595 N1 -0 0.918633 0.395111 N2 -0 0.906828 0.4215 - txt003 -STRI - V0 0.436032 1.56671 2.13785 V1 0.825153 1.40492 2.13785 V2 0.884554 1.50606 1.87778 - N0 0.235963 0.875348 0.422003 N1 0.4547 0.783966 0.422664 N2 0.460653 0.794229 0.39623 - txt003 -STRI - V0 0.884554 1.50606 1.87778 V1 0.467421 1.67949 1.87778 V2 0.436032 1.56671 2.13785 - N0 0.460653 0.794229 0.39623 N1 0.239043 0.886771 0.395595 N2 0.235963 0.875348 0.422003 - txt003 -STRI - V0 0.825153 1.40492 2.13785 V1 1.15293 1.15293 2.13785 V2 1.23593 1.23593 1.87778 - N0 0.4547 0.783966 0.422664 N1 0.640758 0.640758 0.422917 N2 0.649156 0.649156 0.396474 - txt003 -STRI - V0 1.23593 1.23593 1.87778 V1 0.884554 1.50606 1.87778 V2 0.825153 1.40492 2.13785 - N0 0.649156 0.649156 0.396474 N1 0.460653 0.794229 0.39623 N2 0.4547 0.783966 0.422664 - txt003 -STRI - V0 1.15293 1.15293 2.13785 V1 1.40492 0.825153 2.13785 V2 1.50606 0.884554 1.87778 - N0 0.640758 0.640758 0.422917 N1 0.783966 0.4547 0.422664 N2 0.794229 0.460653 0.39623 - txt003 -STRI - V0 1.50606 0.884554 1.87778 V1 1.23593 1.23593 1.87778 V2 1.15293 1.15293 2.13785 - N0 0.794229 0.460653 0.39623 N1 0.649156 0.649156 0.396474 N2 0.640758 0.640758 0.422917 - txt003 -STRI - V0 1.40492 0.825153 2.13785 V1 1.56671 0.436032 2.13785 V2 1.67949 0.467421 1.87778 - N0 0.783966 0.4547 0.422664 N1 0.875348 0.235963 0.422003 N2 0.886771 0.239043 0.395595 - txt003 -STRI - V0 1.67949 0.467421 1.87778 V1 1.50606 0.884554 1.87778 V2 1.40492 0.825153 2.13785 - N0 0.886771 0.239043 0.395595 N1 0.794229 0.460653 0.39623 N2 0.783966 0.4547 0.422664 - txt003 -STRI - V0 1.56671 0.436032 2.13785 V1 1.62384 2.22045e-16 2.13785 V2 1.74074 0 1.87778 - N0 0.875348 0.235963 0.422003 N1 0.906828 -2.05843e-16 0.4215 N2 0.918633 -1.79998e-16 0.395111 - txt003 -STRI - V0 1.74074 0 1.87778 V1 1.67949 0.467421 1.87778 V2 1.56671 0.436032 2.13785 - N0 0.918633 -1.79998e-16 0.395111 N1 0.886771 0.239043 0.395595 N2 0.875348 0.235963 0.422003 - txt003 -STRI - V0 0 1.74074 1.87778 V1 0.467421 1.67949 1.87778 V2 0.495081 1.77888 1.62188 - N0 -0 0.918633 0.395111 N1 0.239043 0.886771 0.395595 N2 0.244029 0.90527 0.347757 - txt003 -STRI - V0 0.495081 1.77888 1.62188 V1 0 1.84375 1.62188 V2 0 1.74074 1.87778 - N0 0.244029 0.90527 0.347757 N1 -0 0.937749 0.347314 N2 -0 0.918633 0.395111 - txt003 -STRI - V0 0.467421 1.67949 1.87778 V1 0.884554 1.50606 1.87778 V2 0.936898 1.59519 1.62188 - N0 0.239043 0.886771 0.395595 N1 0.460653 0.794229 0.39623 N2 0.470295 0.810853 0.34834 - txt003 -STRI - V0 0.936898 1.59519 1.62188 V1 0.495081 1.77888 1.62188 V2 0.467421 1.67949 1.87778 - N0 0.470295 0.810853 0.34834 N1 0.244029 0.90527 0.347757 N2 0.239043 0.886771 0.395595 - txt003 -STRI - V0 0.884554 1.50606 1.87778 V1 1.23593 1.23593 1.87778 V2 1.30906 1.30906 1.62188 - N0 0.460653 0.794229 0.39623 N1 0.649156 0.649156 0.396474 N2 0.662761 0.662761 0.348563 - txt003 -STRI - V0 1.30906 1.30906 1.62188 V1 0.936898 1.59519 1.62188 V2 0.884554 1.50606 1.87778 - N0 0.662761 0.662761 0.348563 N1 0.470295 0.810853 0.34834 N2 0.460653 0.794229 0.39623 - txt003 -STRI - V0 1.23593 1.23593 1.87778 V1 1.50606 0.884554 1.87778 V2 1.59519 0.936898 1.62187 - N0 0.649156 0.649156 0.396474 N1 0.794229 0.460653 0.39623 N2 0.810853 0.470295 0.34834 - txt003 -STRI - V0 1.59519 0.936898 1.62187 V1 1.30906 1.30906 1.62188 V2 1.23593 1.23593 1.87778 - N0 0.810853 0.470295 0.34834 N1 0.662761 0.662761 0.348563 N2 0.649156 0.649156 0.396474 - txt003 -STRI - V0 1.50606 0.884554 1.87778 V1 1.67949 0.467421 1.87778 V2 1.77888 0.495081 1.62187 - N0 0.794229 0.460653 0.39623 N1 0.886771 0.239043 0.395595 N2 0.90527 0.244029 0.347757 - txt003 -STRI - V0 1.77888 0.495081 1.62187 V1 1.59519 0.936898 1.62187 V2 1.50606 0.884554 1.87778 - N0 0.90527 0.244029 0.347757 N1 0.810853 0.470295 0.34834 N2 0.794229 0.460653 0.39623 - txt003 -STRI - V0 1.67949 0.467421 1.87778 V1 1.74074 0 1.87778 V2 1.84375 0 1.62187 - N0 0.886771 0.239043 0.395595 N1 0.918633 -1.79998e-16 0.395111 N2 0.937749 -1.49384e-16 0.347314 - txt003 -STRI - V0 1.84375 0 1.62187 V1 1.77888 0.495081 1.62187 V2 1.67949 0.467421 1.87778 - N0 0.937749 -1.49384e-16 0.347314 N1 0.90527 0.244029 0.347757 N2 0.886771 0.239043 0.395595 - txt003 -STRI - V0 0 1.84375 1.62188 V1 0.495081 1.77888 1.62188 V2 0.517147 1.85816 1.37222 - N0 -0 0.937749 0.347314 N1 0.244029 0.90527 0.347757 N2 0.250446 0.929073 0.272213 - txt003 -STRI - V0 0.517147 1.85816 1.37222 V1 0 1.92593 1.37222 V2 0 1.84375 1.62188 - N0 0.250446 0.929073 0.272213 N1 -0 0.96234 0.271848 N2 -0 0.937749 0.347314 - txt003 -STRI - V0 0.495081 1.77888 1.62188 V1 0.936898 1.59519 1.62188 V2 0.978656 1.66628 1.37222 - N0 0.244029 0.90527 0.347757 N1 0.470295 0.810853 0.34834 N2 0.482704 0.832247 0.272693 - txt003 -STRI - V0 0.978656 1.66628 1.37222 V1 0.517147 1.85816 1.37222 V2 0.495081 1.77888 1.62188 - N0 0.482704 0.832247 0.272693 N1 0.250446 0.929073 0.272213 N2 0.244029 0.90527 0.347757 - txt003 -STRI - V0 0.936898 1.59519 1.62188 V1 1.30906 1.30906 1.62188 V2 1.36741 1.36741 1.37222 - N0 0.470295 0.810853 0.34834 N1 0.662761 0.662761 0.348563 N2 0.680271 0.680271 0.272877 - txt003 -STRI - V0 1.36741 1.36741 1.37222 V1 0.978656 1.66628 1.37222 V2 0.936898 1.59519 1.62188 - N0 0.680271 0.680271 0.272877 N1 0.482704 0.832247 0.272693 N2 0.470295 0.810853 0.34834 - txt003 -STRI - V0 1.30906 1.30906 1.62188 V1 1.59519 0.936898 1.62187 V2 1.66628 0.978656 1.37222 - N0 0.662761 0.662761 0.348563 N1 0.810853 0.470295 0.34834 N2 0.832247 0.482704 0.272693 - txt003 -STRI - V0 1.66628 0.978656 1.37222 V1 1.36741 1.36741 1.37222 V2 1.30906 1.30906 1.62188 - N0 0.832247 0.482704 0.272693 N1 0.680271 0.680271 0.272877 N2 0.662761 0.662761 0.348563 - txt003 -STRI - V0 1.59519 0.936898 1.62187 V1 1.77888 0.495081 1.62187 V2 1.85816 0.517147 1.37222 - N0 0.810853 0.470295 0.34834 N1 0.90527 0.244029 0.347757 N2 0.929073 0.250446 0.272213 - txt003 -STRI - V0 1.85816 0.517147 1.37222 V1 1.66628 0.978656 1.37222 V2 1.59519 0.936898 1.62187 - N0 0.929073 0.250446 0.272213 N1 0.832247 0.482704 0.272693 N2 0.810853 0.470295 0.34834 - txt003 -STRI - V0 1.77888 0.495081 1.62187 V1 1.84375 0 1.62187 V2 1.92593 2.22045e-16 1.37222 - N0 0.90527 0.244029 0.347757 N1 0.937749 -1.49384e-16 0.347314 N2 0.96234 -1.11936e-16 0.271848 - txt003 -STRI - V0 1.92593 2.22045e-16 1.37222 V1 1.85816 0.517147 1.37222 V2 1.77888 0.495081 1.62187 - N0 0.96234 -1.11936e-16 0.271848 N1 0.929073 0.250446 0.272213 N2 0.90527 0.244029 0.347757 - txt003 -STRI - V0 0 1.92593 1.37222 V1 0.517147 1.85816 1.37222 V2 0.531754 1.91065 1.1309 - N0 -0 0.96234 0.271848 N1 0.250446 0.929073 0.272213 N2 0.256935 0.953145 0.159686 - txt003 -STRI - V0 0.531754 1.91065 1.1309 V1 0 1.98032 1.1309 V2 0 1.92593 1.37222 - N0 0.256935 0.953145 0.159686 N1 -0 0.987204 0.15946 N2 -0 0.96234 0.271848 - txt003 -STRI - V0 0.517147 1.85816 1.37222 V1 0.978656 1.66628 1.37222 V2 1.0063 1.71335 1.1309 - N0 0.250446 0.929073 0.272213 N1 0.482704 0.832247 0.272693 N2 0.495256 0.853889 0.159982 - txt003 -STRI - V0 1.0063 1.71335 1.1309 V1 0.531754 1.91065 1.1309 V2 0.517147 1.85816 1.37222 - N0 0.495256 0.853889 0.159982 N1 0.256935 0.953145 0.159686 N2 0.250446 0.929073 0.272213 - txt003 -STRI - V0 0.978656 1.66628 1.37222 V1 1.36741 1.36741 1.37222 V2 1.40603 1.40603 1.1309 - N0 0.482704 0.832247 0.272693 N1 0.680271 0.680271 0.272877 N2 0.697986 0.697986 0.160096 - txt003 -STRI - V0 1.40603 1.40603 1.1309 V1 1.0063 1.71335 1.1309 V2 0.978656 1.66628 1.37222 - N0 0.697986 0.697986 0.160096 N1 0.495256 0.853889 0.159982 N2 0.482704 0.832247 0.272693 - txt003 -STRI - V0 1.36741 1.36741 1.37222 V1 1.66628 0.978656 1.37222 V2 1.71335 1.0063 1.1309 - N0 0.680271 0.680271 0.272877 N1 0.832247 0.482704 0.272693 N2 0.853889 0.495256 0.159982 - txt003 -STRI - V0 1.71335 1.0063 1.1309 V1 1.40603 1.40603 1.1309 V2 1.36741 1.36741 1.37222 - N0 0.853889 0.495256 0.159982 N1 0.697986 0.697986 0.160096 N2 0.680271 0.680271 0.272877 - txt003 -STRI - V0 1.66628 0.978656 1.37222 V1 1.85816 0.517147 1.37222 V2 1.91065 0.531754 1.1309 - N0 0.832247 0.482704 0.272693 N1 0.929073 0.250446 0.272213 N2 0.953145 0.256935 0.159686 - txt003 -STRI - V0 1.91065 0.531754 1.1309 V1 1.71335 1.0063 1.1309 V2 1.66628 0.978656 1.37222 - N0 0.953145 0.256935 0.159686 N1 0.853889 0.495256 0.159982 N2 0.832247 0.482704 0.272693 - txt003 -STRI - V0 1.85816 0.517147 1.37222 V1 1.92593 2.22045e-16 1.37222 V2 1.98032 -2.22045e-16 1.1309 - N0 0.929073 0.250446 0.272213 N1 0.96234 -1.11936e-16 0.271848 N2 0.987204 -6.38555e-17 0.15946 - txt003 -STRI - V0 1.98032 -2.22045e-16 1.1309 V1 1.91065 0.531754 1.1309 V2 1.85816 0.517147 1.37222 - N0 0.987204 -6.38555e-17 0.15946 N1 0.953145 0.256935 0.159686 N2 0.929073 0.250446 0.272213 - txt003 -STRI - V0 0 1.98032 1.1309 V1 0.531754 1.91065 1.1309 V2 0.537037 1.92963 0.9 - N0 -0 0.987204 0.15946 N1 0.256935 0.953145 0.159686 N2 0.260275 0.965535 5.17854e-17 - txt003 -STRI - V0 0.537037 1.92963 0.9 V1 0 2 0.9 V2 0 1.98032 1.1309 - N0 0.260275 0.965535 5.17854e-17 N1 -0 1 0 N2 -0 0.987204 0.15946 - txt003 -STRI - V0 0.531754 1.91065 1.1309 V1 1.0063 1.71335 1.1309 V2 1.0163 1.73037 0.9 - N0 0.256935 0.953145 0.159686 N1 0.495256 0.853889 0.159982 N2 0.501718 0.865031 1.36587e-16 - txt003 -STRI - V0 1.0163 1.73037 0.9 V1 0.537037 1.92963 0.9 V2 0.531754 1.91065 1.1309 - N0 0.501718 0.865031 1.36587e-16 N1 0.260275 0.965535 5.17854e-17 N2 0.256935 0.953145 0.159686 - txt003 -STRI - V0 1.0063 1.71335 1.1309 V1 1.40603 1.40603 1.1309 V2 1.42 1.42 0.9 - N0 0.495256 0.853889 0.159982 N1 0.697986 0.697986 0.160096 N2 0.707107 0.707107 1.74455e-16 - txt003 -STRI - V0 1.42 1.42 0.9 V1 1.0163 1.73037 0.9 V2 1.0063 1.71335 1.1309 - N0 0.707107 0.707107 1.74455e-16 N1 0.501718 0.865031 1.36587e-16 N2 0.495256 0.853889 0.159982 - txt003 -STRI - V0 1.40603 1.40603 1.1309 V1 1.71335 1.0063 1.1309 V2 1.73037 1.0163 0.9 - N0 0.697986 0.697986 0.160096 N1 0.853889 0.495256 0.159982 N2 0.865031 0.501718 1.36587e-16 - txt003 -STRI - V0 1.73037 1.0163 0.9 V1 1.42 1.42 0.9 V2 1.40603 1.40603 1.1309 - N0 0.865031 0.501718 1.36587e-16 N1 0.707107 0.707107 1.74455e-16 N2 0.697986 0.697986 0.160096 - txt003 -STRI - V0 1.71335 1.0063 1.1309 V1 1.91065 0.531754 1.1309 V2 1.92963 0.537037 0.9 - N0 0.853889 0.495256 0.159982 N1 0.953145 0.256935 0.159686 N2 0.965535 0.260275 5.17854e-17 - txt003 -STRI - V0 1.92963 0.537037 0.9 V1 1.73037 1.0163 0.9 V2 1.71335 1.0063 1.1309 - N0 0.965535 0.260275 5.17854e-17 N1 0.865031 0.501718 1.36587e-16 N2 0.853889 0.495256 0.159982 - txt003 -STRI - V0 1.91065 0.531754 1.1309 V1 1.98032 -2.22045e-16 1.1309 V2 2 0 0.9 - N0 0.953145 0.256935 0.159686 N1 0.987204 -6.38555e-17 0.15946 N2 1 0 0 - txt003 -STRI - V0 2 0 0.9 V1 1.92963 0.537037 0.9 V2 1.91065 0.531754 1.1309 - N0 1 0 0 N1 0.965535 0.260275 5.17854e-17 N2 0.953145 0.256935 0.159686 - txt003 -STRI - V0 2 0 0.9 V1 1.92963 -0.537037 0.9 V2 1.8939 -0.527092 0.693403 - N0 1 0 0 N1 0.965535 -0.260275 0 N2 0.905874 -0.244192 -0.346067 - txt003 -STRI - V0 1.8939 -0.527092 0.693403 V1 1.96296 0 0.693403 V2 2 0 0.9 - N0 0.905874 -0.244192 -0.346067 N1 0.938373 0 -0.345625 N2 1 0 0 - txt003 -STRI - V0 1.92963 -0.537037 0.9 V1 1.73037 -1.0163 0.9 V2 1.69833 -0.997476 0.693403 - N0 0.965535 -0.260275 0 N1 0.865031 -0.501718 0 N2 0.811395 -0.470609 -0.346647 - txt003 -STRI - V0 1.69833 -0.997476 0.693403 V1 1.8939 -0.527092 0.693403 V2 1.92963 -0.537037 0.9 - N0 0.811395 -0.470609 -0.346647 N1 0.905874 -0.244192 -0.346067 N2 0.965535 -0.260275 0 - txt003 -STRI - V0 1.73037 -1.0163 0.9 V1 1.42 -1.42 0.9 V2 1.3937 -1.3937 0.693403 - N0 0.865031 -0.501718 0 N1 0.707107 -0.707107 0 N2 0.663205 -0.663205 -0.34687 - txt003 -STRI - V0 1.3937 -1.3937 0.693403 V1 1.69833 -0.997476 0.693403 V2 1.73037 -1.0163 0.9 - N0 0.663205 -0.663205 -0.34687 N1 0.811395 -0.470609 -0.346647 N2 0.865031 -0.501718 0 - txt003 -STRI - V0 1.42 -1.42 0.9 V1 1.0163 -1.73037 0.9 V2 0.997476 -1.69833 0.693403 - N0 0.707107 -0.707107 0 N1 0.501718 -0.865031 0 N2 0.470609 -0.811395 -0.346647 - txt003 -STRI - V0 0.997476 -1.69833 0.693403 V1 1.3937 -1.3937 0.693403 V2 1.42 -1.42 0.9 - N0 0.470609 -0.811395 -0.346647 N1 0.663205 -0.663205 -0.34687 N2 0.707107 -0.707107 0 - txt003 -STRI - V0 1.0163 -1.73037 0.9 V1 0.537037 -1.92963 0.9 V2 0.527092 -1.8939 0.693403 - N0 0.501718 -0.865031 0 N1 0.260275 -0.965535 0 N2 0.244192 -0.905874 -0.346067 - txt003 -STRI - V0 0.527092 -1.8939 0.693403 V1 0.997476 -1.69833 0.693403 V2 1.0163 -1.73037 0.9 - N0 0.244192 -0.905874 -0.346067 N1 0.470609 -0.811395 -0.346647 N2 0.501718 -0.865031 0 - txt003 -STRI - V0 0.537037 -1.92963 0.9 V1 0 -2 0.9 V2 2.22045e-16 -1.96296 0.693403 - N0 0.260275 -0.965535 0 N1 -0 -1 -0 N2 -3.49072e-17 -0.938373 -0.345625 - txt003 -STRI - V0 2.22045e-16 -1.96296 0.693403 V1 0.527092 -1.8939 0.693403 V2 0.537037 -1.92963 0.9 - N0 -3.49072e-17 -0.938373 -0.345625 N1 0.244192 -0.905874 -0.346067 N2 0.260275 -0.965535 0 - txt003 -STRI - V0 1.96296 0 0.693403 V1 1.8939 -0.527092 0.693403 V2 1.80456 -0.502229 0.522222 - N0 0.938373 0 -0.345625 N1 0.905874 -0.244192 -0.346067 N2 0.782908 -0.211045 -0.585248 - txt003 -STRI - V0 1.80456 -0.502229 0.522222 V1 1.87037 0 0.522222 V2 1.96296 0 0.693403 - N0 0.782908 -0.211045 -0.585248 N1 0.811257 0 -0.58469 N2 0.938373 0 -0.345625 - txt003 -STRI - V0 1.8939 -0.527092 0.693403 V1 1.69833 -0.997476 0.693403 V2 1.61822 -0.950425 0.522222 - N0 0.905874 -0.244192 -0.346067 N1 0.811395 -0.470609 -0.346647 N2 0.700957 -0.406555 -0.58598 - txt003 -STRI - V0 1.61822 -0.950425 0.522222 V1 1.80456 -0.502229 0.522222 V2 1.8939 -0.527092 0.693403 - N0 0.700957 -0.406555 -0.58598 N1 0.782908 -0.211045 -0.585248 N2 0.905874 -0.244192 -0.346067 - txt003 -STRI - V0 1.69833 -0.997476 0.693403 V1 1.3937 -1.3937 0.693403 V2 1.32796 -1.32796 0.522222 - N0 0.811395 -0.470609 -0.346647 N1 0.663205 -0.663205 -0.34687 N2 0.572843 -0.572843 -0.586261 - txt003 -STRI - V0 1.32796 -1.32796 0.522222 V1 1.61822 -0.950425 0.522222 V2 1.69833 -0.997476 0.693403 - N0 0.572843 -0.572843 -0.586261 N1 0.700957 -0.406555 -0.58598 N2 0.811395 -0.470609 -0.346647 - txt003 -STRI - V0 1.3937 -1.3937 0.693403 V1 0.997476 -1.69833 0.693403 V2 0.950425 -1.61822 0.522222 - N0 0.663205 -0.663205 -0.34687 N1 0.470609 -0.811395 -0.346647 N2 0.406555 -0.700957 -0.58598 - txt003 -STRI - V0 0.950425 -1.61822 0.522222 V1 1.32796 -1.32796 0.522222 V2 1.3937 -1.3937 0.693403 - N0 0.406555 -0.700957 -0.58598 N1 0.572843 -0.572843 -0.586261 N2 0.663205 -0.663205 -0.34687 - txt003 -STRI - V0 0.997476 -1.69833 0.693403 V1 0.527092 -1.8939 0.693403 V2 0.502229 -1.80456 0.522222 - N0 0.470609 -0.811395 -0.346647 N1 0.244192 -0.905874 -0.346067 N2 0.211045 -0.782908 -0.585248 - txt003 -STRI - V0 0.502229 -1.80456 0.522222 V1 0.950425 -1.61822 0.522222 V2 0.997476 -1.69833 0.693403 - N0 0.211045 -0.782908 -0.585248 N1 0.406555 -0.700957 -0.58598 N2 0.470609 -0.811395 -0.346647 - txt003 -STRI - V0 0.527092 -1.8939 0.693403 V1 2.22045e-16 -1.96296 0.693403 V2 2.22045e-16 -1.87037 0.522222 - N0 0.244192 -0.905874 -0.346067 N1 -3.49072e-17 -0.938373 -0.345625 N2 -6.19755e-17 -0.811257 -0.58469 - txt003 -STRI - V0 2.22045e-16 -1.87037 0.522222 V1 0.502229 -1.80456 0.522222 V2 0.527092 -1.8939 0.693403 - N0 -6.19755e-17 -0.811257 -0.58469 N1 0.211045 -0.782908 -0.585248 N2 0.244192 -0.905874 -0.346067 - txt003 -STRI - V0 1.87037 0 0.522222 V1 1.80456 -0.502229 0.522222 V2 1.68843 -0.469907 0.384375 - N0 0.811257 0 -0.58469 N1 0.782908 -0.211045 -0.585248 N2 0.673539 -0.181563 -0.716506 - txt003 -STRI - V0 1.68843 -0.469907 0.384375 V1 1.75 0 0.384375 V2 1.87037 0 0.522222 - N0 0.673539 -0.181563 -0.716506 N1 0.6981 0 -0.716 N2 0.811257 0 -0.58469 - txt003 -STRI - V0 1.80456 -0.502229 0.522222 V1 1.61822 -0.950425 0.522222 V2 1.51407 -0.889259 0.384375 - N0 0.782908 -0.211045 -0.585248 N1 0.700957 -0.406555 -0.58598 N2 0.602839 -0.349647 -0.717169 - txt003 -STRI - V0 1.51407 -0.889259 0.384375 V1 1.68843 -0.469907 0.384375 V2 1.80456 -0.502229 0.522222 - N0 0.602839 -0.349647 -0.717169 N1 0.673539 -0.181563 -0.716506 N2 0.782908 -0.211045 -0.585248 - txt003 -STRI - V0 1.61822 -0.950425 0.522222 V1 1.32796 -1.32796 0.522222 V2 1.2425 -1.2425 0.384375 - N0 0.700957 -0.406555 -0.58598 N1 0.572843 -0.572843 -0.586261 N2 0.492597 -0.492597 -0.717423 - txt003 -STRI - V0 1.2425 -1.2425 0.384375 V1 1.51407 -0.889259 0.384375 V2 1.61822 -0.950425 0.522222 - N0 0.492597 -0.492597 -0.717423 N1 0.602839 -0.349647 -0.717169 N2 0.700957 -0.406555 -0.58598 - txt003 -STRI - V0 1.32796 -1.32796 0.522222 V1 0.950425 -1.61822 0.522222 V2 0.889259 -1.51407 0.384375 - N0 0.572843 -0.572843 -0.586261 N1 0.406555 -0.700957 -0.58598 N2 0.349647 -0.602839 -0.717169 - txt003 -STRI - V0 0.889259 -1.51407 0.384375 V1 1.2425 -1.2425 0.384375 V2 1.32796 -1.32796 0.522222 - N0 0.349647 -0.602839 -0.717169 N1 0.492597 -0.492597 -0.717423 N2 0.572843 -0.572843 -0.586261 - txt003 -STRI - V0 0.950425 -1.61822 0.522222 V1 0.502229 -1.80456 0.522222 V2 0.469907 -1.68843 0.384375 - N0 0.406555 -0.700957 -0.58598 N1 0.211045 -0.782908 -0.585248 N2 0.181563 -0.673539 -0.716506 - txt003 -STRI - V0 0.469907 -1.68843 0.384375 V1 0.889259 -1.51407 0.384375 V2 0.950425 -1.61822 0.522222 - N0 0.181563 -0.673539 -0.716506 N1 0.349647 -0.602839 -0.717169 N2 0.406555 -0.700957 -0.58598 - txt003 -STRI - V0 0.502229 -1.80456 0.522222 V1 2.22045e-16 -1.87037 0.522222 V2 2.22045e-16 -1.75 0.384375 - N0 0.211045 -0.782908 -0.585248 N1 -6.19755e-17 -0.811257 -0.58469 N2 -8.11143e-17 -0.6981 -0.716 - txt003 -STRI - V0 2.22045e-16 -1.75 0.384375 V1 0.469907 -1.68843 0.384375 V2 0.502229 -1.80456 0.522222 - N0 -8.11143e-17 -0.6981 -0.716 N1 0.181563 -0.673539 -0.716506 N2 0.211045 -0.782908 -0.585248 - txt003 -STRI - V0 1.75 0 0.384375 V1 1.68843 -0.469907 0.384375 V2 1.57229 -0.437586 0.277778 - N0 0.6981 0 -0.716 N1 0.673539 -0.181563 -0.716506 N2 0.61392 -0.165491 -0.771826 - txt003 -STRI - V0 1.57229 -0.437586 0.277778 V1 1.62963 0 0.277778 V2 1.75 0 0.384375 - N0 0.61392 -0.165491 -0.771826 N1 0.636383 0 -0.771373 N2 0.6981 0 -0.716 - txt003 -STRI - V0 1.68843 -0.469907 0.384375 V1 1.51407 -0.889259 0.384375 V2 1.40993 -0.828093 0.277778 - N0 0.673539 -0.181563 -0.716506 N1 0.602839 -0.349647 -0.717169 N2 0.549392 -0.318647 -0.77242 - txt003 -STRI - V0 1.40993 -0.828093 0.277778 V1 1.57229 -0.437586 0.277778 V2 1.68843 -0.469907 0.384375 - N0 0.549392 -0.318647 -0.77242 N1 0.61392 -0.165491 -0.771826 N2 0.673539 -0.181563 -0.716506 - txt003 -STRI - V0 1.51407 -0.889259 0.384375 V1 1.2425 -1.2425 0.384375 V2 1.15704 -1.15704 0.277778 - N0 0.602839 -0.349647 -0.717169 N1 0.492597 -0.492597 -0.717423 N2 0.448897 -0.448897 -0.772647 - txt003 -STRI - V0 1.15704 -1.15704 0.277778 V1 1.40993 -0.828093 0.277778 V2 1.51407 -0.889259 0.384375 - N0 0.448897 -0.448897 -0.772647 N1 0.549392 -0.318647 -0.77242 N2 0.602839 -0.349647 -0.717169 - txt003 -STRI - V0 1.2425 -1.2425 0.384375 V1 0.889259 -1.51407 0.384375 V2 0.828093 -1.40993 0.277778 - N0 0.492597 -0.492597 -0.717423 N1 0.349647 -0.602839 -0.717169 N2 0.318647 -0.549392 -0.77242 - txt003 -STRI - V0 0.828093 -1.40993 0.277778 V1 1.15704 -1.15704 0.277778 V2 1.2425 -1.2425 0.384375 - N0 0.318647 -0.549392 -0.77242 N1 0.448897 -0.448897 -0.772647 N2 0.492597 -0.492597 -0.717423 - txt003 -STRI - V0 0.889259 -1.51407 0.384375 V1 0.469907 -1.68843 0.384375 V2 0.437586 -1.57229 0.277778 - N0 0.349647 -0.602839 -0.717169 N1 0.181563 -0.673539 -0.716506 N2 0.165491 -0.61392 -0.771826 - txt003 -STRI - V0 0.437586 -1.57229 0.277778 V1 0.828093 -1.40993 0.277778 V2 0.889259 -1.51407 0.384375 - N0 0.165491 -0.61392 -0.771826 N1 0.318647 -0.549392 -0.77242 N2 0.349647 -0.602839 -0.717169 - txt003 -STRI - V0 0.469907 -1.68843 0.384375 V1 2.22045e-16 -1.75 0.384375 V2 0 -1.62963 0.277778 - N0 0.181563 -0.673539 -0.716506 N1 -8.11143e-17 -0.6981 -0.716 N2 -1.97068e-16 -0.636383 -0.771373 - txt003 -STRI - V0 0 -1.62963 0.277778 V1 0.437586 -1.57229 0.277778 V2 0.469907 -1.68843 0.384375 - N0 -1.97068e-16 -0.636383 -0.771373 N1 0.165491 -0.61392 -0.771826 N2 0.181563 -0.673539 -0.716506 - txt003 -STRI - V0 1.62963 0 0.277778 V1 1.57229 -0.437586 0.277778 V2 1.48296 -0.412723 0.200347 - N0 0.636383 0 -0.771373 N1 0.61392 -0.165491 -0.771826 N2 0.651276 -0.175561 -0.738253 - txt003 -STRI - V0 1.48296 -0.412723 0.200347 V1 1.53704 0 0.200347 V2 1.62963 0 0.277778 - N0 0.651276 -0.175561 -0.738253 N1 0.675056 0 -0.737766 N2 0.636383 0 -0.771373 - txt003 -STRI - V0 1.57229 -0.437586 0.277778 V1 1.40993 -0.828093 0.277778 V2 1.32982 -0.781043 0.200347 - N0 0.61392 -0.165491 -0.771826 N1 0.549392 -0.318647 -0.77242 N2 0.582878 -0.338069 -0.738893 - txt003 -STRI - V0 1.32982 -0.781043 0.200347 V1 1.48296 -0.412723 0.200347 V2 1.57229 -0.437586 0.277778 - N0 0.582878 -0.338069 -0.738893 N1 0.651276 -0.175561 -0.738253 N2 0.61392 -0.165491 -0.771826 - txt003 -STRI - V0 1.40993 -0.828093 0.277778 V1 1.15704 -1.15704 0.277778 V2 1.0913 -1.0913 0.200347 - N0 0.549392 -0.318647 -0.77242 N1 0.448897 -0.448897 -0.772647 N2 0.476275 -0.476275 -0.739137 - txt003 -STRI - V0 1.0913 -1.0913 0.200347 V1 1.32982 -0.781043 0.200347 V2 1.40993 -0.828093 0.277778 - N0 0.476275 -0.476275 -0.739137 N1 0.582878 -0.338069 -0.738893 N2 0.549392 -0.318647 -0.77242 - txt003 -STRI - V0 1.15704 -1.15704 0.277778 V1 0.828093 -1.40993 0.277778 V2 0.781043 -1.32982 0.200347 - N0 0.448897 -0.448897 -0.772647 N1 0.318647 -0.549392 -0.77242 N2 0.338069 -0.582878 -0.738893 - txt003 -STRI - V0 0.781043 -1.32982 0.200347 V1 1.0913 -1.0913 0.200347 V2 1.15704 -1.15704 0.277778 - N0 0.338069 -0.582878 -0.738893 N1 0.476275 -0.476275 -0.739137 N2 0.448897 -0.448897 -0.772647 - txt003 -STRI - V0 0.828093 -1.40993 0.277778 V1 0.437586 -1.57229 0.277778 V2 0.412723 -1.48296 0.200347 - N0 0.318647 -0.549392 -0.77242 N1 0.165491 -0.61392 -0.771826 N2 0.175561 -0.651276 -0.738253 - txt003 -STRI - V0 0.412723 -1.48296 0.200347 V1 0.781043 -1.32982 0.200347 V2 0.828093 -1.40993 0.277778 - N0 0.175561 -0.651276 -0.738253 N1 0.338069 -0.582878 -0.738893 N2 0.318647 -0.549392 -0.77242 - txt003 -STRI - V0 0.437586 -1.57229 0.277778 V1 0 -1.62963 0.277778 V2 0 -1.53704 0.200347 - N0 0.165491 -0.61392 -0.771826 N1 -1.97068e-16 -0.636383 -0.771373 N2 -9.51605e-17 -0.675056 -0.737766 - txt003 -STRI - V0 0 -1.53704 0.200347 V1 0.412723 -1.48296 0.200347 V2 0.437586 -1.57229 0.277778 - N0 -9.51605e-17 -0.675056 -0.737766 N1 0.175561 -0.651276 -0.738253 N2 0.165491 -0.61392 -0.771826 - txt003 -STRI - V0 1.53704 0 0.200347 V1 1.48296 -0.412723 0.200347 V2 1.44722 -0.402778 0.15 - N0 0.675056 0 -0.737766 N1 0.651276 -0.175561 -0.738253 N2 0.965535 -0.260275 0 - txt003 -STRI - V0 1.44722 -0.402778 0.15 V1 1.5 0 0.15 V2 1.53704 0 0.200347 - N0 0.965535 -0.260275 0 N1 1 0 0 N2 0.675056 0 -0.737766 - txt003 -STRI - V0 1.48296 -0.412723 0.200347 V1 1.32982 -0.781043 0.200347 V2 1.29778 -0.762222 0.15 - N0 0.651276 -0.175561 -0.738253 N1 0.582878 -0.338069 -0.738893 N2 0.865031 -0.501718 0 - txt003 -STRI - V0 1.29778 -0.762222 0.15 V1 1.44722 -0.402778 0.15 V2 1.48296 -0.412723 0.200347 - N0 0.865031 -0.501718 0 N1 0.965535 -0.260275 0 N2 0.651276 -0.175561 -0.738253 - txt003 -STRI - V0 1.32982 -0.781043 0.200347 V1 1.0913 -1.0913 0.200347 V2 1.065 -1.065 0.15 - N0 0.582878 -0.338069 -0.738893 N1 0.476275 -0.476275 -0.739137 N2 0.707107 -0.707107 0 - txt003 -STRI - V0 1.065 -1.065 0.15 V1 1.29778 -0.762222 0.15 V2 1.32982 -0.781043 0.200347 - N0 0.707107 -0.707107 0 N1 0.865031 -0.501718 0 N2 0.582878 -0.338069 -0.738893 - txt003 -STRI - V0 1.0913 -1.0913 0.200347 V1 0.781043 -1.32982 0.200347 V2 0.762222 -1.29778 0.15 - N0 0.476275 -0.476275 -0.739137 N1 0.338069 -0.582878 -0.738893 N2 0.501718 -0.865031 0 - txt003 -STRI - V0 0.762222 -1.29778 0.15 V1 1.065 -1.065 0.15 V2 1.0913 -1.0913 0.200347 - N0 0.501718 -0.865031 0 N1 0.707107 -0.707107 0 N2 0.476275 -0.476275 -0.739137 - txt003 -STRI - V0 0.781043 -1.32982 0.200347 V1 0.412723 -1.48296 0.200347 V2 0.402778 -1.44722 0.15 - N0 0.338069 -0.582878 -0.738893 N1 0.175561 -0.651276 -0.738253 N2 0.260275 -0.965535 0 - txt003 -STRI - V0 0.402778 -1.44722 0.15 V1 0.762222 -1.29778 0.15 V2 0.781043 -1.32982 0.200347 - N0 0.260275 -0.965535 0 N1 0.501718 -0.865031 0 N2 0.338069 -0.582878 -0.738893 - txt003 -STRI - V0 0.412723 -1.48296 0.200347 V1 0 -1.53704 0.200347 V2 0 -1.5 0.15 - N0 0.175561 -0.651276 -0.738253 N1 -9.51605e-17 -0.675056 -0.737766 N2 -0 -1 -0 - txt003 -STRI - V0 0 -1.5 0.15 V1 0.402778 -1.44722 0.15 V2 0.412723 -1.48296 0.200347 - N0 -0 -1 -0 N1 0.260275 -0.965535 0 N2 0.175561 -0.651276 -0.738253 - txt003 -STRI - V0 0 -2 0.9 V1 -0.537037 -1.92963 0.9 V2 -0.527092 -1.8939 0.693403 - N0 -0 -1 -0 N1 -0.260275 -0.965535 -0 N2 -0.244192 -0.905874 -0.346067 - txt003 -STRI - V0 -0.527092 -1.8939 0.693403 V1 0 -1.96296 0.693403 V2 0 -2 0.9 - N0 -0.244192 -0.905874 -0.346067 N1 -0 -0.938373 -0.345625 N2 -0 -1 -0 - txt003 -STRI - V0 -0.537037 -1.92963 0.9 V1 -1.0163 -1.73037 0.9 V2 -0.997476 -1.69833 0.693403 - N0 -0.260275 -0.965535 -0 N1 -0.501718 -0.865031 -0 N2 -0.470609 -0.811395 -0.346647 - txt003 -STRI - V0 -0.997476 -1.69833 0.693403 V1 -0.527092 -1.8939 0.693403 V2 -0.537037 -1.92963 0.9 - N0 -0.470609 -0.811395 -0.346647 N1 -0.244192 -0.905874 -0.346067 N2 -0.260275 -0.965535 -0 - txt003 -STRI - V0 -1.0163 -1.73037 0.9 V1 -1.42 -1.42 0.9 V2 -1.3937 -1.3937 0.693403 - N0 -0.501718 -0.865031 -0 N1 -0.707107 -0.707107 -0 N2 -0.663205 -0.663205 -0.34687 - txt003 -STRI - V0 -1.3937 -1.3937 0.693403 V1 -0.997476 -1.69833 0.693403 V2 -1.0163 -1.73037 0.9 - N0 -0.663205 -0.663205 -0.34687 N1 -0.470609 -0.811395 -0.346647 N2 -0.501718 -0.865031 -0 - txt003 -STRI - V0 -1.42 -1.42 0.9 V1 -1.73037 -1.0163 0.9 V2 -1.69833 -0.997476 0.693403 - N0 -0.707107 -0.707107 -0 N1 -0.865031 -0.501718 -0 N2 -0.811395 -0.470609 -0.346647 - txt003 -STRI - V0 -1.69833 -0.997476 0.693403 V1 -1.3937 -1.3937 0.693403 V2 -1.42 -1.42 0.9 - N0 -0.811395 -0.470609 -0.346647 N1 -0.663205 -0.663205 -0.34687 N2 -0.707107 -0.707107 -0 - txt003 -STRI - V0 -1.73037 -1.0163 0.9 V1 -1.92963 -0.537037 0.9 V2 -1.8939 -0.527092 0.693403 - N0 -0.865031 -0.501718 -0 N1 -0.965535 -0.260275 -0 N2 -0.905874 -0.244192 -0.346067 - txt003 -STRI - V0 -1.8939 -0.527092 0.693403 V1 -1.69833 -0.997476 0.693403 V2 -1.73037 -1.0163 0.9 - N0 -0.905874 -0.244192 -0.346067 N1 -0.811395 -0.470609 -0.346647 N2 -0.865031 -0.501718 -0 - txt003 -STRI - V0 -1.92963 -0.537037 0.9 V1 -2 0 0.9 V2 -1.96296 -2.22045e-16 0.693403 - N0 -0.965535 -0.260275 -0 N1 -1 0 0 N2 -0.938373 3.49072e-17 -0.345625 - txt003 -STRI - V0 -1.96296 -2.22045e-16 0.693403 V1 -1.8939 -0.527092 0.693403 V2 -1.92963 -0.537037 0.9 - N0 -0.938373 3.49072e-17 -0.345625 N1 -0.905874 -0.244192 -0.346067 N2 -0.965535 -0.260275 -0 - txt003 -STRI - V0 0 -1.96296 0.693403 V1 -0.527092 -1.8939 0.693403 V2 -0.502229 -1.80456 0.522222 - N0 -0 -0.938373 -0.345625 N1 -0.244192 -0.905874 -0.346067 N2 -0.211045 -0.782908 -0.585248 - txt003 -STRI - V0 -0.502229 -1.80456 0.522222 V1 0 -1.87037 0.522222 V2 0 -1.96296 0.693403 - N0 -0.211045 -0.782908 -0.585248 N1 -0 -0.811257 -0.58469 N2 -0 -0.938373 -0.345625 - txt003 -STRI - V0 -0.527092 -1.8939 0.693403 V1 -0.997476 -1.69833 0.693403 V2 -0.950425 -1.61822 0.522222 - N0 -0.244192 -0.905874 -0.346067 N1 -0.470609 -0.811395 -0.346647 N2 -0.406555 -0.700957 -0.58598 - txt003 -STRI - V0 -0.950425 -1.61822 0.522222 V1 -0.502229 -1.80456 0.522222 V2 -0.527092 -1.8939 0.693403 - N0 -0.406555 -0.700957 -0.58598 N1 -0.211045 -0.782908 -0.585248 N2 -0.244192 -0.905874 -0.346067 - txt003 -STRI - V0 -0.997476 -1.69833 0.693403 V1 -1.3937 -1.3937 0.693403 V2 -1.32796 -1.32796 0.522222 - N0 -0.470609 -0.811395 -0.346647 N1 -0.663205 -0.663205 -0.34687 N2 -0.572843 -0.572843 -0.586261 - txt003 -STRI - V0 -1.32796 -1.32796 0.522222 V1 -0.950425 -1.61822 0.522222 V2 -0.997476 -1.69833 0.693403 - N0 -0.572843 -0.572843 -0.586261 N1 -0.406555 -0.700957 -0.58598 N2 -0.470609 -0.811395 -0.346647 - txt003 -STRI - V0 -1.3937 -1.3937 0.693403 V1 -1.69833 -0.997476 0.693403 V2 -1.61822 -0.950425 0.522222 - N0 -0.663205 -0.663205 -0.34687 N1 -0.811395 -0.470609 -0.346647 N2 -0.700957 -0.406555 -0.58598 - txt003 -STRI - V0 -1.61822 -0.950425 0.522222 V1 -1.32796 -1.32796 0.522222 V2 -1.3937 -1.3937 0.693403 - N0 -0.700957 -0.406555 -0.58598 N1 -0.572843 -0.572843 -0.586261 N2 -0.663205 -0.663205 -0.34687 - txt003 -STRI - V0 -1.69833 -0.997476 0.693403 V1 -1.8939 -0.527092 0.693403 V2 -1.80456 -0.502229 0.522222 - N0 -0.811395 -0.470609 -0.346647 N1 -0.905874 -0.244192 -0.346067 N2 -0.782908 -0.211045 -0.585248 - txt003 -STRI - V0 -1.80456 -0.502229 0.522222 V1 -1.61822 -0.950425 0.522222 V2 -1.69833 -0.997476 0.693403 - N0 -0.782908 -0.211045 -0.585248 N1 -0.700957 -0.406555 -0.58598 N2 -0.811395 -0.470609 -0.346647 - txt003 -STRI - V0 -1.8939 -0.527092 0.693403 V1 -1.96296 -2.22045e-16 0.693403 V2 -1.87037 -2.22045e-16 0.522222 - N0 -0.905874 -0.244192 -0.346067 N1 -0.938373 3.49072e-17 -0.345625 N2 -0.811257 6.19755e-17 -0.58469 - txt003 -STRI - V0 -1.87037 -2.22045e-16 0.522222 V1 -1.80456 -0.502229 0.522222 V2 -1.8939 -0.527092 0.693403 - N0 -0.811257 6.19755e-17 -0.58469 N1 -0.782908 -0.211045 -0.585248 N2 -0.905874 -0.244192 -0.346067 - txt003 -STRI - V0 0 -1.87037 0.522222 V1 -0.502229 -1.80456 0.522222 V2 -0.469907 -1.68843 0.384375 - N0 -0 -0.811257 -0.58469 N1 -0.211045 -0.782908 -0.585248 N2 -0.181563 -0.673539 -0.716506 - txt003 -STRI - V0 -0.469907 -1.68843 0.384375 V1 0 -1.75 0.384375 V2 0 -1.87037 0.522222 - N0 -0.181563 -0.673539 -0.716506 N1 -0 -0.6981 -0.716 N2 -0 -0.811257 -0.58469 - txt003 -STRI - V0 -0.502229 -1.80456 0.522222 V1 -0.950425 -1.61822 0.522222 V2 -0.889259 -1.51407 0.384375 - N0 -0.211045 -0.782908 -0.585248 N1 -0.406555 -0.700957 -0.58598 N2 -0.349647 -0.602839 -0.717169 - txt003 -STRI - V0 -0.889259 -1.51407 0.384375 V1 -0.469907 -1.68843 0.384375 V2 -0.502229 -1.80456 0.522222 - N0 -0.349647 -0.602839 -0.717169 N1 -0.181563 -0.673539 -0.716506 N2 -0.211045 -0.782908 -0.585248 - txt003 -STRI - V0 -0.950425 -1.61822 0.522222 V1 -1.32796 -1.32796 0.522222 V2 -1.2425 -1.2425 0.384375 - N0 -0.406555 -0.700957 -0.58598 N1 -0.572843 -0.572843 -0.586261 N2 -0.492597 -0.492597 -0.717423 - txt003 -STRI - V0 -1.2425 -1.2425 0.384375 V1 -0.889259 -1.51407 0.384375 V2 -0.950425 -1.61822 0.522222 - N0 -0.492597 -0.492597 -0.717423 N1 -0.349647 -0.602839 -0.717169 N2 -0.406555 -0.700957 -0.58598 - txt003 -STRI - V0 -1.32796 -1.32796 0.522222 V1 -1.61822 -0.950425 0.522222 V2 -1.51407 -0.889259 0.384375 - N0 -0.572843 -0.572843 -0.586261 N1 -0.700957 -0.406555 -0.58598 N2 -0.602839 -0.349647 -0.717169 - txt003 -STRI - V0 -1.51407 -0.889259 0.384375 V1 -1.2425 -1.2425 0.384375 V2 -1.32796 -1.32796 0.522222 - N0 -0.602839 -0.349647 -0.717169 N1 -0.492597 -0.492597 -0.717423 N2 -0.572843 -0.572843 -0.586261 - txt003 -STRI - V0 -1.61822 -0.950425 0.522222 V1 -1.80456 -0.502229 0.522222 V2 -1.68843 -0.469907 0.384375 - N0 -0.700957 -0.406555 -0.58598 N1 -0.782908 -0.211045 -0.585248 N2 -0.673539 -0.181563 -0.716506 - txt003 -STRI - V0 -1.68843 -0.469907 0.384375 V1 -1.51407 -0.889259 0.384375 V2 -1.61822 -0.950425 0.522222 - N0 -0.673539 -0.181563 -0.716506 N1 -0.602839 -0.349647 -0.717169 N2 -0.700957 -0.406555 -0.58598 - txt003 -STRI - V0 -1.80456 -0.502229 0.522222 V1 -1.87037 -2.22045e-16 0.522222 V2 -1.75 -2.22045e-16 0.384375 - N0 -0.782908 -0.211045 -0.585248 N1 -0.811257 6.19755e-17 -0.58469 N2 -0.6981 8.11143e-17 -0.716 - txt003 -STRI - V0 -1.75 -2.22045e-16 0.384375 V1 -1.68843 -0.469907 0.384375 V2 -1.80456 -0.502229 0.522222 - N0 -0.6981 8.11143e-17 -0.716 N1 -0.673539 -0.181563 -0.716506 N2 -0.782908 -0.211045 -0.585248 - txt003 -STRI - V0 0 -1.75 0.384375 V1 -0.469907 -1.68843 0.384375 V2 -0.437586 -1.57229 0.277778 - N0 -0 -0.6981 -0.716 N1 -0.181563 -0.673539 -0.716506 N2 -0.165491 -0.61392 -0.771826 - txt003 -STRI - V0 -0.437586 -1.57229 0.277778 V1 0 -1.62963 0.277778 V2 0 -1.75 0.384375 - N0 -0.165491 -0.61392 -0.771826 N1 -0 -0.636383 -0.771373 N2 -0 -0.6981 -0.716 - txt003 -STRI - V0 -0.469907 -1.68843 0.384375 V1 -0.889259 -1.51407 0.384375 V2 -0.828093 -1.40993 0.277778 - N0 -0.181563 -0.673539 -0.716506 N1 -0.349647 -0.602839 -0.717169 N2 -0.318647 -0.549392 -0.77242 - txt003 -STRI - V0 -0.828093 -1.40993 0.277778 V1 -0.437586 -1.57229 0.277778 V2 -0.469907 -1.68843 0.384375 - N0 -0.318647 -0.549392 -0.77242 N1 -0.165491 -0.61392 -0.771826 N2 -0.181563 -0.673539 -0.716506 - txt003 -STRI - V0 -0.889259 -1.51407 0.384375 V1 -1.2425 -1.2425 0.384375 V2 -1.15704 -1.15704 0.277778 - N0 -0.349647 -0.602839 -0.717169 N1 -0.492597 -0.492597 -0.717423 N2 -0.448897 -0.448897 -0.772647 - txt003 -STRI - V0 -1.15704 -1.15704 0.277778 V1 -0.828093 -1.40993 0.277778 V2 -0.889259 -1.51407 0.384375 - N0 -0.448897 -0.448897 -0.772647 N1 -0.318647 -0.549392 -0.77242 N2 -0.349647 -0.602839 -0.717169 - txt003 -STRI - V0 -1.2425 -1.2425 0.384375 V1 -1.51407 -0.889259 0.384375 V2 -1.40993 -0.828093 0.277778 - N0 -0.492597 -0.492597 -0.717423 N1 -0.602839 -0.349647 -0.717169 N2 -0.549392 -0.318647 -0.77242 - txt003 -STRI - V0 -1.40993 -0.828093 0.277778 V1 -1.15704 -1.15704 0.277778 V2 -1.2425 -1.2425 0.384375 - N0 -0.549392 -0.318647 -0.77242 N1 -0.448897 -0.448897 -0.772647 N2 -0.492597 -0.492597 -0.717423 - txt003 -STRI - V0 -1.51407 -0.889259 0.384375 V1 -1.68843 -0.469907 0.384375 V2 -1.57229 -0.437586 0.277778 - N0 -0.602839 -0.349647 -0.717169 N1 -0.673539 -0.181563 -0.716506 N2 -0.61392 -0.165491 -0.771826 - txt003 -STRI - V0 -1.57229 -0.437586 0.277778 V1 -1.40993 -0.828093 0.277778 V2 -1.51407 -0.889259 0.384375 - N0 -0.61392 -0.165491 -0.771826 N1 -0.549392 -0.318647 -0.77242 N2 -0.602839 -0.349647 -0.717169 - txt003 -STRI - V0 -1.68843 -0.469907 0.384375 V1 -1.75 -2.22045e-16 0.384375 V2 -1.62963 0 0.277778 - N0 -0.673539 -0.181563 -0.716506 N1 -0.6981 8.11143e-17 -0.716 N2 -0.636383 1.97068e-16 -0.771373 - txt003 -STRI - V0 -1.62963 0 0.277778 V1 -1.57229 -0.437586 0.277778 V2 -1.68843 -0.469907 0.384375 - N0 -0.636383 1.97068e-16 -0.771373 N1 -0.61392 -0.165491 -0.771826 N2 -0.673539 -0.181563 -0.716506 - txt003 -STRI - V0 0 -1.62963 0.277778 V1 -0.437586 -1.57229 0.277778 V2 -0.412723 -1.48296 0.200347 - N0 -0 -0.636383 -0.771373 N1 -0.165491 -0.61392 -0.771826 N2 -0.175561 -0.651276 -0.738253 - txt003 -STRI - V0 -0.412723 -1.48296 0.200347 V1 0 -1.53704 0.200347 V2 0 -1.62963 0.277778 - N0 -0.175561 -0.651276 -0.738253 N1 -0 -0.675056 -0.737766 N2 -0 -0.636383 -0.771373 - txt003 -STRI - V0 -0.437586 -1.57229 0.277778 V1 -0.828093 -1.40993 0.277778 V2 -0.781043 -1.32982 0.200347 - N0 -0.165491 -0.61392 -0.771826 N1 -0.318647 -0.549392 -0.77242 N2 -0.338069 -0.582878 -0.738893 - txt003 -STRI - V0 -0.781043 -1.32982 0.200347 V1 -0.412723 -1.48296 0.200347 V2 -0.437586 -1.57229 0.277778 - N0 -0.338069 -0.582878 -0.738893 N1 -0.175561 -0.651276 -0.738253 N2 -0.165491 -0.61392 -0.771826 - txt003 -STRI - V0 -0.828093 -1.40993 0.277778 V1 -1.15704 -1.15704 0.277778 V2 -1.0913 -1.0913 0.200347 - N0 -0.318647 -0.549392 -0.77242 N1 -0.448897 -0.448897 -0.772647 N2 -0.476275 -0.476275 -0.739137 - txt003 -STRI - V0 -1.0913 -1.0913 0.200347 V1 -0.781043 -1.32982 0.200347 V2 -0.828093 -1.40993 0.277778 - N0 -0.476275 -0.476275 -0.739137 N1 -0.338069 -0.582878 -0.738893 N2 -0.318647 -0.549392 -0.77242 - txt003 -STRI - V0 -1.15704 -1.15704 0.277778 V1 -1.40993 -0.828093 0.277778 V2 -1.32982 -0.781043 0.200347 - N0 -0.448897 -0.448897 -0.772647 N1 -0.549392 -0.318647 -0.77242 N2 -0.582878 -0.338069 -0.738893 - txt003 -STRI - V0 -1.32982 -0.781043 0.200347 V1 -1.0913 -1.0913 0.200347 V2 -1.15704 -1.15704 0.277778 - N0 -0.582878 -0.338069 -0.738893 N1 -0.476275 -0.476275 -0.739137 N2 -0.448897 -0.448897 -0.772647 - txt003 -STRI - V0 -1.40993 -0.828093 0.277778 V1 -1.57229 -0.437586 0.277778 V2 -1.48296 -0.412723 0.200347 - N0 -0.549392 -0.318647 -0.77242 N1 -0.61392 -0.165491 -0.771826 N2 -0.651276 -0.175561 -0.738253 - txt003 -STRI - V0 -1.48296 -0.412723 0.200347 V1 -1.32982 -0.781043 0.200347 V2 -1.40993 -0.828093 0.277778 - N0 -0.651276 -0.175561 -0.738253 N1 -0.582878 -0.338069 -0.738893 N2 -0.549392 -0.318647 -0.77242 - txt003 -STRI - V0 -1.57229 -0.437586 0.277778 V1 -1.62963 0 0.277778 V2 -1.53704 0 0.200347 - N0 -0.61392 -0.165491 -0.771826 N1 -0.636383 1.97068e-16 -0.771373 N2 -0.675056 9.51605e-17 -0.737766 - txt003 -STRI - V0 -1.53704 0 0.200347 V1 -1.48296 -0.412723 0.200347 V2 -1.57229 -0.437586 0.277778 - N0 -0.675056 9.51605e-17 -0.737766 N1 -0.651276 -0.175561 -0.738253 N2 -0.61392 -0.165491 -0.771826 - txt003 -STRI - V0 0 -1.53704 0.200347 V1 -0.412723 -1.48296 0.200347 V2 -0.402778 -1.44722 0.15 - N0 -0 -0.675056 -0.737766 N1 -0.175561 -0.651276 -0.738253 N2 -0.260275 -0.965535 -0 - txt003 -STRI - V0 -0.402778 -1.44722 0.15 V1 0 -1.5 0.15 V2 0 -1.53704 0.200347 - N0 -0.260275 -0.965535 -0 N1 -0 -1 -0 N2 -0 -0.675056 -0.737766 - txt003 -STRI - V0 -0.412723 -1.48296 0.200347 V1 -0.781043 -1.32982 0.200347 V2 -0.762222 -1.29778 0.15 - N0 -0.175561 -0.651276 -0.738253 N1 -0.338069 -0.582878 -0.738893 N2 -0.501718 -0.865031 -0 - txt003 -STRI - V0 -0.762222 -1.29778 0.15 V1 -0.402778 -1.44722 0.15 V2 -0.412723 -1.48296 0.200347 - N0 -0.501718 -0.865031 -0 N1 -0.260275 -0.965535 -0 N2 -0.175561 -0.651276 -0.738253 - txt003 -STRI - V0 -0.781043 -1.32982 0.200347 V1 -1.0913 -1.0913 0.200347 V2 -1.065 -1.065 0.15 - N0 -0.338069 -0.582878 -0.738893 N1 -0.476275 -0.476275 -0.739137 N2 -0.707107 -0.707107 -0 - txt003 -STRI - V0 -1.065 -1.065 0.15 V1 -0.762222 -1.29778 0.15 V2 -0.781043 -1.32982 0.200347 - N0 -0.707107 -0.707107 -0 N1 -0.501718 -0.865031 -0 N2 -0.338069 -0.582878 -0.738893 - txt003 -STRI - V0 -1.0913 -1.0913 0.200347 V1 -1.32982 -0.781043 0.200347 V2 -1.29778 -0.762222 0.15 - N0 -0.476275 -0.476275 -0.739137 N1 -0.582878 -0.338069 -0.738893 N2 -0.865031 -0.501718 -0 - txt003 -STRI - V0 -1.29778 -0.762222 0.15 V1 -1.065 -1.065 0.15 V2 -1.0913 -1.0913 0.200347 - N0 -0.865031 -0.501718 -0 N1 -0.707107 -0.707107 -0 N2 -0.476275 -0.476275 -0.739137 - txt003 -STRI - V0 -1.32982 -0.781043 0.200347 V1 -1.48296 -0.412723 0.200347 V2 -1.44722 -0.402778 0.15 - N0 -0.582878 -0.338069 -0.738893 N1 -0.651276 -0.175561 -0.738253 N2 -0.965535 -0.260275 -0 - txt003 -STRI - V0 -1.44722 -0.402778 0.15 V1 -1.29778 -0.762222 0.15 V2 -1.32982 -0.781043 0.200347 - N0 -0.965535 -0.260275 -0 N1 -0.865031 -0.501718 -0 N2 -0.582878 -0.338069 -0.738893 - txt003 -STRI - V0 -1.48296 -0.412723 0.200347 V1 -1.53704 0 0.200347 V2 -1.5 0 0.15 - N0 -0.651276 -0.175561 -0.738253 N1 -0.675056 9.51605e-17 -0.737766 N2 -1 0 0 - txt003 -STRI - V0 -1.5 0 0.15 V1 -1.44722 -0.402778 0.15 V2 -1.48296 -0.412723 0.200347 - N0 -1 0 0 N1 -0.965535 -0.260275 -0 N2 -0.651276 -0.175561 -0.738253 - txt003 -STRI - V0 -2 0 0.9 V1 -1.92963 0.537037 0.9 V2 -1.8939 0.527092 0.693403 - N0 -1 0 0 N1 -0.965535 0.260275 0 N2 -0.905874 0.244192 -0.346067 - txt003 -STRI - V0 -1.8939 0.527092 0.693403 V1 -1.96296 0 0.693403 V2 -2 0 0.9 - N0 -0.905874 0.244192 -0.346067 N1 -0.938373 0 -0.345625 N2 -1 0 0 - txt003 -STRI - V0 -1.92963 0.537037 0.9 V1 -1.73037 1.0163 0.9 V2 -1.69833 0.997476 0.693403 - N0 -0.965535 0.260275 0 N1 -0.865031 0.501718 0 N2 -0.811395 0.470609 -0.346647 - txt003 -STRI - V0 -1.69833 0.997476 0.693403 V1 -1.8939 0.527092 0.693403 V2 -1.92963 0.537037 0.9 - N0 -0.811395 0.470609 -0.346647 N1 -0.905874 0.244192 -0.346067 N2 -0.965535 0.260275 0 - txt003 -STRI - V0 -1.73037 1.0163 0.9 V1 -1.42 1.42 0.9 V2 -1.3937 1.3937 0.693403 - N0 -0.865031 0.501718 0 N1 -0.707107 0.707107 0 N2 -0.663205 0.663205 -0.34687 - txt003 -STRI - V0 -1.3937 1.3937 0.693403 V1 -1.69833 0.997476 0.693403 V2 -1.73037 1.0163 0.9 - N0 -0.663205 0.663205 -0.34687 N1 -0.811395 0.470609 -0.346647 N2 -0.865031 0.501718 0 - txt003 -STRI - V0 -1.42 1.42 0.9 V1 -1.0163 1.73037 0.9 V2 -0.997476 1.69833 0.693403 - N0 -0.707107 0.707107 0 N1 -0.501718 0.865031 0 N2 -0.470609 0.811395 -0.346647 - txt003 -STRI - V0 -0.997476 1.69833 0.693403 V1 -1.3937 1.3937 0.693403 V2 -1.42 1.42 0.9 - N0 -0.470609 0.811395 -0.346647 N1 -0.663205 0.663205 -0.34687 N2 -0.707107 0.707107 0 - txt003 -STRI - V0 -1.0163 1.73037 0.9 V1 -0.537037 1.92963 0.9 V2 -0.527092 1.8939 0.693403 - N0 -0.501718 0.865031 0 N1 -0.260275 0.965535 0 N2 -0.244192 0.905874 -0.346067 - txt003 -STRI - V0 -0.527092 1.8939 0.693403 V1 -0.997476 1.69833 0.693403 V2 -1.0163 1.73037 0.9 - N0 -0.244192 0.905874 -0.346067 N1 -0.470609 0.811395 -0.346647 N2 -0.501718 0.865031 0 - txt003 -STRI - V0 -0.537037 1.92963 0.9 V1 0 2 0.9 V2 -2.22045e-16 1.96296 0.693403 - N0 -0.260275 0.965535 0 N1 -0 1 0 N2 3.49072e-17 0.938373 -0.345625 - txt003 -STRI - V0 -2.22045e-16 1.96296 0.693403 V1 -0.527092 1.8939 0.693403 V2 -0.537037 1.92963 0.9 - N0 3.49072e-17 0.938373 -0.345625 N1 -0.244192 0.905874 -0.346067 N2 -0.260275 0.965535 0 - txt003 -STRI - V0 -1.96296 0 0.693403 V1 -1.8939 0.527092 0.693403 V2 -1.80456 0.502229 0.522222 - N0 -0.938373 0 -0.345625 N1 -0.905874 0.244192 -0.346067 N2 -0.782908 0.211045 -0.585248 - txt003 -STRI - V0 -1.80456 0.502229 0.522222 V1 -1.87037 0 0.522222 V2 -1.96296 0 0.693403 - N0 -0.782908 0.211045 -0.585248 N1 -0.811257 0 -0.58469 N2 -0.938373 0 -0.345625 - txt003 -STRI - V0 -1.8939 0.527092 0.693403 V1 -1.69833 0.997476 0.693403 V2 -1.61822 0.950425 0.522222 - N0 -0.905874 0.244192 -0.346067 N1 -0.811395 0.470609 -0.346647 N2 -0.700957 0.406555 -0.58598 - txt003 -STRI - V0 -1.61822 0.950425 0.522222 V1 -1.80456 0.502229 0.522222 V2 -1.8939 0.527092 0.693403 - N0 -0.700957 0.406555 -0.58598 N1 -0.782908 0.211045 -0.585248 N2 -0.905874 0.244192 -0.346067 - txt003 -STRI - V0 -1.69833 0.997476 0.693403 V1 -1.3937 1.3937 0.693403 V2 -1.32796 1.32796 0.522222 - N0 -0.811395 0.470609 -0.346647 N1 -0.663205 0.663205 -0.34687 N2 -0.572843 0.572843 -0.586261 - txt003 -STRI - V0 -1.32796 1.32796 0.522222 V1 -1.61822 0.950425 0.522222 V2 -1.69833 0.997476 0.693403 - N0 -0.572843 0.572843 -0.586261 N1 -0.700957 0.406555 -0.58598 N2 -0.811395 0.470609 -0.346647 - txt003 -STRI - V0 -1.3937 1.3937 0.693403 V1 -0.997476 1.69833 0.693403 V2 -0.950425 1.61822 0.522222 - N0 -0.663205 0.663205 -0.34687 N1 -0.470609 0.811395 -0.346647 N2 -0.406555 0.700957 -0.58598 - txt003 -STRI - V0 -0.950425 1.61822 0.522222 V1 -1.32796 1.32796 0.522222 V2 -1.3937 1.3937 0.693403 - N0 -0.406555 0.700957 -0.58598 N1 -0.572843 0.572843 -0.586261 N2 -0.663205 0.663205 -0.34687 - txt003 -STRI - V0 -0.997476 1.69833 0.693403 V1 -0.527092 1.8939 0.693403 V2 -0.502229 1.80456 0.522222 - N0 -0.470609 0.811395 -0.346647 N1 -0.244192 0.905874 -0.346067 N2 -0.211045 0.782908 -0.585248 - txt003 -STRI - V0 -0.502229 1.80456 0.522222 V1 -0.950425 1.61822 0.522222 V2 -0.997476 1.69833 0.693403 - N0 -0.211045 0.782908 -0.585248 N1 -0.406555 0.700957 -0.58598 N2 -0.470609 0.811395 -0.346647 - txt003 -STRI - V0 -0.527092 1.8939 0.693403 V1 -2.22045e-16 1.96296 0.693403 V2 -2.22045e-16 1.87037 0.522222 - N0 -0.244192 0.905874 -0.346067 N1 3.49072e-17 0.938373 -0.345625 N2 6.19755e-17 0.811257 -0.58469 - txt003 -STRI - V0 -2.22045e-16 1.87037 0.522222 V1 -0.502229 1.80456 0.522222 V2 -0.527092 1.8939 0.693403 - N0 6.19755e-17 0.811257 -0.58469 N1 -0.211045 0.782908 -0.585248 N2 -0.244192 0.905874 -0.346067 - txt003 -STRI - V0 -1.87037 0 0.522222 V1 -1.80456 0.502229 0.522222 V2 -1.68843 0.469907 0.384375 - N0 -0.811257 0 -0.58469 N1 -0.782908 0.211045 -0.585248 N2 -0.673539 0.181563 -0.716506 - txt003 -STRI - V0 -1.68843 0.469907 0.384375 V1 -1.75 0 0.384375 V2 -1.87037 0 0.522222 - N0 -0.673539 0.181563 -0.716506 N1 -0.6981 0 -0.716 N2 -0.811257 0 -0.58469 - txt003 -STRI - V0 -1.80456 0.502229 0.522222 V1 -1.61822 0.950425 0.522222 V2 -1.51407 0.889259 0.384375 - N0 -0.782908 0.211045 -0.585248 N1 -0.700957 0.406555 -0.58598 N2 -0.602839 0.349647 -0.717169 - txt003 -STRI - V0 -1.51407 0.889259 0.384375 V1 -1.68843 0.469907 0.384375 V2 -1.80456 0.502229 0.522222 - N0 -0.602839 0.349647 -0.717169 N1 -0.673539 0.181563 -0.716506 N2 -0.782908 0.211045 -0.585248 - txt003 -STRI - V0 -1.61822 0.950425 0.522222 V1 -1.32796 1.32796 0.522222 V2 -1.2425 1.2425 0.384375 - N0 -0.700957 0.406555 -0.58598 N1 -0.572843 0.572843 -0.586261 N2 -0.492597 0.492597 -0.717423 - txt003 -STRI - V0 -1.2425 1.2425 0.384375 V1 -1.51407 0.889259 0.384375 V2 -1.61822 0.950425 0.522222 - N0 -0.492597 0.492597 -0.717423 N1 -0.602839 0.349647 -0.717169 N2 -0.700957 0.406555 -0.58598 - txt003 -STRI - V0 -1.32796 1.32796 0.522222 V1 -0.950425 1.61822 0.522222 V2 -0.889259 1.51407 0.384375 - N0 -0.572843 0.572843 -0.586261 N1 -0.406555 0.700957 -0.58598 N2 -0.349647 0.602839 -0.717169 - txt003 -STRI - V0 -0.889259 1.51407 0.384375 V1 -1.2425 1.2425 0.384375 V2 -1.32796 1.32796 0.522222 - N0 -0.349647 0.602839 -0.717169 N1 -0.492597 0.492597 -0.717423 N2 -0.572843 0.572843 -0.586261 - txt003 -STRI - V0 -0.950425 1.61822 0.522222 V1 -0.502229 1.80456 0.522222 V2 -0.469907 1.68843 0.384375 - N0 -0.406555 0.700957 -0.58598 N1 -0.211045 0.782908 -0.585248 N2 -0.181563 0.673539 -0.716506 - txt003 -STRI - V0 -0.469907 1.68843 0.384375 V1 -0.889259 1.51407 0.384375 V2 -0.950425 1.61822 0.522222 - N0 -0.181563 0.673539 -0.716506 N1 -0.349647 0.602839 -0.717169 N2 -0.406555 0.700957 -0.58598 - txt003 -STRI - V0 -0.502229 1.80456 0.522222 V1 -2.22045e-16 1.87037 0.522222 V2 -2.22045e-16 1.75 0.384375 - N0 -0.211045 0.782908 -0.585248 N1 6.19755e-17 0.811257 -0.58469 N2 8.11143e-17 0.6981 -0.716 - txt003 -STRI - V0 -2.22045e-16 1.75 0.384375 V1 -0.469907 1.68843 0.384375 V2 -0.502229 1.80456 0.522222 - N0 8.11143e-17 0.6981 -0.716 N1 -0.181563 0.673539 -0.716506 N2 -0.211045 0.782908 -0.585248 - txt003 -STRI - V0 -1.75 0 0.384375 V1 -1.68843 0.469907 0.384375 V2 -1.57229 0.437586 0.277778 - N0 -0.6981 0 -0.716 N1 -0.673539 0.181563 -0.716506 N2 -0.61392 0.165491 -0.771826 - txt003 -STRI - V0 -1.57229 0.437586 0.277778 V1 -1.62963 0 0.277778 V2 -1.75 0 0.384375 - N0 -0.61392 0.165491 -0.771826 N1 -0.636383 0 -0.771373 N2 -0.6981 0 -0.716 - txt003 -STRI - V0 -1.68843 0.469907 0.384375 V1 -1.51407 0.889259 0.384375 V2 -1.40993 0.828093 0.277778 - N0 -0.673539 0.181563 -0.716506 N1 -0.602839 0.349647 -0.717169 N2 -0.549392 0.318647 -0.77242 - txt003 -STRI - V0 -1.40993 0.828093 0.277778 V1 -1.57229 0.437586 0.277778 V2 -1.68843 0.469907 0.384375 - N0 -0.549392 0.318647 -0.77242 N1 -0.61392 0.165491 -0.771826 N2 -0.673539 0.181563 -0.716506 - txt003 -STRI - V0 -1.51407 0.889259 0.384375 V1 -1.2425 1.2425 0.384375 V2 -1.15704 1.15704 0.277778 - N0 -0.602839 0.349647 -0.717169 N1 -0.492597 0.492597 -0.717423 N2 -0.448897 0.448897 -0.772647 - txt003 -STRI - V0 -1.15704 1.15704 0.277778 V1 -1.40993 0.828093 0.277778 V2 -1.51407 0.889259 0.384375 - N0 -0.448897 0.448897 -0.772647 N1 -0.549392 0.318647 -0.77242 N2 -0.602839 0.349647 -0.717169 - txt003 -STRI - V0 -1.2425 1.2425 0.384375 V1 -0.889259 1.51407 0.384375 V2 -0.828093 1.40993 0.277778 - N0 -0.492597 0.492597 -0.717423 N1 -0.349647 0.602839 -0.717169 N2 -0.318647 0.549392 -0.77242 - txt003 -STRI - V0 -0.828093 1.40993 0.277778 V1 -1.15704 1.15704 0.277778 V2 -1.2425 1.2425 0.384375 - N0 -0.318647 0.549392 -0.77242 N1 -0.448897 0.448897 -0.772647 N2 -0.492597 0.492597 -0.717423 - txt003 -STRI - V0 -0.889259 1.51407 0.384375 V1 -0.469907 1.68843 0.384375 V2 -0.437586 1.57229 0.277778 - N0 -0.349647 0.602839 -0.717169 N1 -0.181563 0.673539 -0.716506 N2 -0.165491 0.61392 -0.771826 - txt003 -STRI - V0 -0.437586 1.57229 0.277778 V1 -0.828093 1.40993 0.277778 V2 -0.889259 1.51407 0.384375 - N0 -0.165491 0.61392 -0.771826 N1 -0.318647 0.549392 -0.77242 N2 -0.349647 0.602839 -0.717169 - txt003 -STRI - V0 -0.469907 1.68843 0.384375 V1 -2.22045e-16 1.75 0.384375 V2 0 1.62963 0.277778 - N0 -0.181563 0.673539 -0.716506 N1 8.11143e-17 0.6981 -0.716 N2 1.97068e-16 0.636383 -0.771373 - txt003 -STRI - V0 0 1.62963 0.277778 V1 -0.437586 1.57229 0.277778 V2 -0.469907 1.68843 0.384375 - N0 1.97068e-16 0.636383 -0.771373 N1 -0.165491 0.61392 -0.771826 N2 -0.181563 0.673539 -0.716506 - txt003 -STRI - V0 -1.62963 0 0.277778 V1 -1.57229 0.437586 0.277778 V2 -1.48296 0.412723 0.200347 - N0 -0.636383 0 -0.771373 N1 -0.61392 0.165491 -0.771826 N2 -0.651276 0.175561 -0.738253 - txt003 -STRI - V0 -1.48296 0.412723 0.200347 V1 -1.53704 0 0.200347 V2 -1.62963 0 0.277778 - N0 -0.651276 0.175561 -0.738253 N1 -0.675056 0 -0.737766 N2 -0.636383 0 -0.771373 - txt003 -STRI - V0 -1.57229 0.437586 0.277778 V1 -1.40993 0.828093 0.277778 V2 -1.32982 0.781043 0.200347 - N0 -0.61392 0.165491 -0.771826 N1 -0.549392 0.318647 -0.77242 N2 -0.582878 0.338069 -0.738893 - txt003 -STRI - V0 -1.32982 0.781043 0.200347 V1 -1.48296 0.412723 0.200347 V2 -1.57229 0.437586 0.277778 - N0 -0.582878 0.338069 -0.738893 N1 -0.651276 0.175561 -0.738253 N2 -0.61392 0.165491 -0.771826 - txt003 -STRI - V0 -1.40993 0.828093 0.277778 V1 -1.15704 1.15704 0.277778 V2 -1.0913 1.0913 0.200347 - N0 -0.549392 0.318647 -0.77242 N1 -0.448897 0.448897 -0.772647 N2 -0.476275 0.476275 -0.739137 - txt003 -STRI - V0 -1.0913 1.0913 0.200347 V1 -1.32982 0.781043 0.200347 V2 -1.40993 0.828093 0.277778 - N0 -0.476275 0.476275 -0.739137 N1 -0.582878 0.338069 -0.738893 N2 -0.549392 0.318647 -0.77242 - txt003 -STRI - V0 -1.15704 1.15704 0.277778 V1 -0.828093 1.40993 0.277778 V2 -0.781043 1.32982 0.200347 - N0 -0.448897 0.448897 -0.772647 N1 -0.318647 0.549392 -0.77242 N2 -0.338069 0.582878 -0.738893 - txt003 -STRI - V0 -0.781043 1.32982 0.200347 V1 -1.0913 1.0913 0.200347 V2 -1.15704 1.15704 0.277778 - N0 -0.338069 0.582878 -0.738893 N1 -0.476275 0.476275 -0.739137 N2 -0.448897 0.448897 -0.772647 - txt003 -STRI - V0 -0.828093 1.40993 0.277778 V1 -0.437586 1.57229 0.277778 V2 -0.412723 1.48296 0.200347 - N0 -0.318647 0.549392 -0.77242 N1 -0.165491 0.61392 -0.771826 N2 -0.175561 0.651276 -0.738253 - txt003 -STRI - V0 -0.412723 1.48296 0.200347 V1 -0.781043 1.32982 0.200347 V2 -0.828093 1.40993 0.277778 - N0 -0.175561 0.651276 -0.738253 N1 -0.338069 0.582878 -0.738893 N2 -0.318647 0.549392 -0.77242 - txt003 -STRI - V0 -0.437586 1.57229 0.277778 V1 0 1.62963 0.277778 V2 0 1.53704 0.200347 - N0 -0.165491 0.61392 -0.771826 N1 1.97068e-16 0.636383 -0.771373 N2 9.51605e-17 0.675056 -0.737766 - txt003 -STRI - V0 0 1.53704 0.200347 V1 -0.412723 1.48296 0.200347 V2 -0.437586 1.57229 0.277778 - N0 9.51605e-17 0.675056 -0.737766 N1 -0.175561 0.651276 -0.738253 N2 -0.165491 0.61392 -0.771826 - txt003 -STRI - V0 -1.53704 0 0.200347 V1 -1.48296 0.412723 0.200347 V2 -1.44722 0.402778 0.15 - N0 -0.675056 0 -0.737766 N1 -0.651276 0.175561 -0.738253 N2 -0.965535 0.260275 0 - txt003 -STRI - V0 -1.44722 0.402778 0.15 V1 -1.5 0 0.15 V2 -1.53704 0 0.200347 - N0 -0.965535 0.260275 0 N1 -1 0 0 N2 -0.675056 0 -0.737766 - txt003 -STRI - V0 -1.48296 0.412723 0.200347 V1 -1.32982 0.781043 0.200347 V2 -1.29778 0.762222 0.15 - N0 -0.651276 0.175561 -0.738253 N1 -0.582878 0.338069 -0.738893 N2 -0.865031 0.501718 0 - txt003 -STRI - V0 -1.29778 0.762222 0.15 V1 -1.44722 0.402778 0.15 V2 -1.48296 0.412723 0.200347 - N0 -0.865031 0.501718 0 N1 -0.965535 0.260275 0 N2 -0.651276 0.175561 -0.738253 - txt003 -STRI - V0 -1.32982 0.781043 0.200347 V1 -1.0913 1.0913 0.200347 V2 -1.065 1.065 0.15 - N0 -0.582878 0.338069 -0.738893 N1 -0.476275 0.476275 -0.739137 N2 -0.707107 0.707107 0 - txt003 -STRI - V0 -1.065 1.065 0.15 V1 -1.29778 0.762222 0.15 V2 -1.32982 0.781043 0.200347 - N0 -0.707107 0.707107 0 N1 -0.865031 0.501718 0 N2 -0.582878 0.338069 -0.738893 - txt003 -STRI - V0 -1.0913 1.0913 0.200347 V1 -0.781043 1.32982 0.200347 V2 -0.762222 1.29778 0.15 - N0 -0.476275 0.476275 -0.739137 N1 -0.338069 0.582878 -0.738893 N2 -0.501718 0.865031 0 - txt003 -STRI - V0 -0.762222 1.29778 0.15 V1 -1.065 1.065 0.15 V2 -1.0913 1.0913 0.200347 - N0 -0.501718 0.865031 0 N1 -0.707107 0.707107 0 N2 -0.476275 0.476275 -0.739137 - txt003 -STRI - V0 -0.781043 1.32982 0.200347 V1 -0.412723 1.48296 0.200347 V2 -0.402778 1.44722 0.15 - N0 -0.338069 0.582878 -0.738893 N1 -0.175561 0.651276 -0.738253 N2 -0.260275 0.965535 0 - txt003 -STRI - V0 -0.402778 1.44722 0.15 V1 -0.762222 1.29778 0.15 V2 -0.781043 1.32982 0.200347 - N0 -0.260275 0.965535 0 N1 -0.501718 0.865031 0 N2 -0.338069 0.582878 -0.738893 - txt003 -STRI - V0 -0.412723 1.48296 0.200347 V1 0 1.53704 0.200347 V2 0 1.5 0.15 - N0 -0.175561 0.651276 -0.738253 N1 9.51605e-17 0.675056 -0.737766 N2 -0 1 0 - txt003 -STRI - V0 0 1.5 0.15 V1 -0.402778 1.44722 0.15 V2 -0.412723 1.48296 0.200347 - N0 -0 1 0 N1 -0.260275 0.965535 0 N2 -0.175561 0.651276 -0.738253 - txt003 -STRI - V0 0 2 0.9 V1 0.537037 1.92963 0.9 V2 0.527092 1.8939 0.693403 - N0 -0 1 0 N1 0.260275 0.965535 0 N2 0.244192 0.905874 -0.346067 - txt003 -STRI - V0 0.527092 1.8939 0.693403 V1 0 1.96296 0.693403 V2 0 2 0.9 - N0 0.244192 0.905874 -0.346067 N1 0 0.938373 -0.345625 N2 -0 1 0 - txt003 -STRI - V0 0.537037 1.92963 0.9 V1 1.0163 1.73037 0.9 V2 0.997476 1.69833 0.693403 - N0 0.260275 0.965535 0 N1 0.501718 0.865031 0 N2 0.470609 0.811395 -0.346647 - txt003 -STRI - V0 0.997476 1.69833 0.693403 V1 0.527092 1.8939 0.693403 V2 0.537037 1.92963 0.9 - N0 0.470609 0.811395 -0.346647 N1 0.244192 0.905874 -0.346067 N2 0.260275 0.965535 0 - txt003 -STRI - V0 1.0163 1.73037 0.9 V1 1.42 1.42 0.9 V2 1.3937 1.3937 0.693403 - N0 0.501718 0.865031 0 N1 0.707107 0.707107 0 N2 0.663205 0.663205 -0.34687 - txt003 -STRI - V0 1.3937 1.3937 0.693403 V1 0.997476 1.69833 0.693403 V2 1.0163 1.73037 0.9 - N0 0.663205 0.663205 -0.34687 N1 0.470609 0.811395 -0.346647 N2 0.501718 0.865031 0 - txt003 -STRI - V0 1.42 1.42 0.9 V1 1.73037 1.0163 0.9 V2 1.69833 0.997476 0.693403 - N0 0.707107 0.707107 0 N1 0.865031 0.501718 0 N2 0.811395 0.470609 -0.346647 - txt003 -STRI - V0 1.69833 0.997476 0.693403 V1 1.3937 1.3937 0.693403 V2 1.42 1.42 0.9 - N0 0.811395 0.470609 -0.346647 N1 0.663205 0.663205 -0.34687 N2 0.707107 0.707107 0 - txt003 -STRI - V0 1.73037 1.0163 0.9 V1 1.92963 0.537037 0.9 V2 1.8939 0.527092 0.693403 - N0 0.865031 0.501718 0 N1 0.965535 0.260275 0 N2 0.905874 0.244192 -0.346067 - txt003 -STRI - V0 1.8939 0.527092 0.693403 V1 1.69833 0.997476 0.693403 V2 1.73037 1.0163 0.9 - N0 0.905874 0.244192 -0.346067 N1 0.811395 0.470609 -0.346647 N2 0.865031 0.501718 0 - txt003 -STRI - V0 1.92963 0.537037 0.9 V1 2 0 0.9 V2 1.96296 2.22045e-16 0.693403 - N0 0.965535 0.260275 0 N1 1 0 0 N2 0.938373 -3.49072e-17 -0.345625 - txt003 -STRI - V0 1.96296 2.22045e-16 0.693403 V1 1.8939 0.527092 0.693403 V2 1.92963 0.537037 0.9 - N0 0.938373 -3.49072e-17 -0.345625 N1 0.905874 0.244192 -0.346067 N2 0.965535 0.260275 0 - txt003 -STRI - V0 0 1.96296 0.693403 V1 0.527092 1.8939 0.693403 V2 0.502229 1.80456 0.522222 - N0 0 0.938373 -0.345625 N1 0.244192 0.905874 -0.346067 N2 0.211045 0.782908 -0.585248 - txt003 -STRI - V0 0.502229 1.80456 0.522222 V1 0 1.87037 0.522222 V2 0 1.96296 0.693403 - N0 0.211045 0.782908 -0.585248 N1 0 0.811257 -0.58469 N2 0 0.938373 -0.345625 - txt003 -STRI - V0 0.527092 1.8939 0.693403 V1 0.997476 1.69833 0.693403 V2 0.950425 1.61822 0.522222 - N0 0.244192 0.905874 -0.346067 N1 0.470609 0.811395 -0.346647 N2 0.406555 0.700957 -0.58598 - txt003 -STRI - V0 0.950425 1.61822 0.522222 V1 0.502229 1.80456 0.522222 V2 0.527092 1.8939 0.693403 - N0 0.406555 0.700957 -0.58598 N1 0.211045 0.782908 -0.585248 N2 0.244192 0.905874 -0.346067 - txt003 -STRI - V0 0.997476 1.69833 0.693403 V1 1.3937 1.3937 0.693403 V2 1.32796 1.32796 0.522222 - N0 0.470609 0.811395 -0.346647 N1 0.663205 0.663205 -0.34687 N2 0.572843 0.572843 -0.586261 - txt003 -STRI - V0 1.32796 1.32796 0.522222 V1 0.950425 1.61822 0.522222 V2 0.997476 1.69833 0.693403 - N0 0.572843 0.572843 -0.586261 N1 0.406555 0.700957 -0.58598 N2 0.470609 0.811395 -0.346647 - txt003 -STRI - V0 1.3937 1.3937 0.693403 V1 1.69833 0.997476 0.693403 V2 1.61822 0.950425 0.522222 - N0 0.663205 0.663205 -0.34687 N1 0.811395 0.470609 -0.346647 N2 0.700957 0.406555 -0.58598 - txt003 -STRI - V0 1.61822 0.950425 0.522222 V1 1.32796 1.32796 0.522222 V2 1.3937 1.3937 0.693403 - N0 0.700957 0.406555 -0.58598 N1 0.572843 0.572843 -0.586261 N2 0.663205 0.663205 -0.34687 - txt003 -STRI - V0 1.69833 0.997476 0.693403 V1 1.8939 0.527092 0.693403 V2 1.80456 0.502229 0.522222 - N0 0.811395 0.470609 -0.346647 N1 0.905874 0.244192 -0.346067 N2 0.782908 0.211045 -0.585248 - txt003 -STRI - V0 1.80456 0.502229 0.522222 V1 1.61822 0.950425 0.522222 V2 1.69833 0.997476 0.693403 - N0 0.782908 0.211045 -0.585248 N1 0.700957 0.406555 -0.58598 N2 0.811395 0.470609 -0.346647 - txt003 -STRI - V0 1.8939 0.527092 0.693403 V1 1.96296 2.22045e-16 0.693403 V2 1.87037 2.22045e-16 0.522222 - N0 0.905874 0.244192 -0.346067 N1 0.938373 -3.49072e-17 -0.345625 N2 0.811257 -6.19755e-17 -0.58469 - txt003 -STRI - V0 1.87037 2.22045e-16 0.522222 V1 1.80456 0.502229 0.522222 V2 1.8939 0.527092 0.693403 - N0 0.811257 -6.19755e-17 -0.58469 N1 0.782908 0.211045 -0.585248 N2 0.905874 0.244192 -0.346067 - txt003 -STRI - V0 0 1.87037 0.522222 V1 0.502229 1.80456 0.522222 V2 0.469907 1.68843 0.384375 - N0 0 0.811257 -0.58469 N1 0.211045 0.782908 -0.585248 N2 0.181563 0.673539 -0.716506 - txt003 -STRI - V0 0.469907 1.68843 0.384375 V1 0 1.75 0.384375 V2 0 1.87037 0.522222 - N0 0.181563 0.673539 -0.716506 N1 0 0.6981 -0.716 N2 0 0.811257 -0.58469 - txt003 -STRI - V0 0.502229 1.80456 0.522222 V1 0.950425 1.61822 0.522222 V2 0.889259 1.51407 0.384375 - N0 0.211045 0.782908 -0.585248 N1 0.406555 0.700957 -0.58598 N2 0.349647 0.602839 -0.717169 - txt003 -STRI - V0 0.889259 1.51407 0.384375 V1 0.469907 1.68843 0.384375 V2 0.502229 1.80456 0.522222 - N0 0.349647 0.602839 -0.717169 N1 0.181563 0.673539 -0.716506 N2 0.211045 0.782908 -0.585248 - txt003 -STRI - V0 0.950425 1.61822 0.522222 V1 1.32796 1.32796 0.522222 V2 1.2425 1.2425 0.384375 - N0 0.406555 0.700957 -0.58598 N1 0.572843 0.572843 -0.586261 N2 0.492597 0.492597 -0.717423 - txt003 -STRI - V0 1.2425 1.2425 0.384375 V1 0.889259 1.51407 0.384375 V2 0.950425 1.61822 0.522222 - N0 0.492597 0.492597 -0.717423 N1 0.349647 0.602839 -0.717169 N2 0.406555 0.700957 -0.58598 - txt003 -STRI - V0 1.32796 1.32796 0.522222 V1 1.61822 0.950425 0.522222 V2 1.51407 0.889259 0.384375 - N0 0.572843 0.572843 -0.586261 N1 0.700957 0.406555 -0.58598 N2 0.602839 0.349647 -0.717169 - txt003 -STRI - V0 1.51407 0.889259 0.384375 V1 1.2425 1.2425 0.384375 V2 1.32796 1.32796 0.522222 - N0 0.602839 0.349647 -0.717169 N1 0.492597 0.492597 -0.717423 N2 0.572843 0.572843 -0.586261 - txt003 -STRI - V0 1.61822 0.950425 0.522222 V1 1.80456 0.502229 0.522222 V2 1.68843 0.469907 0.384375 - N0 0.700957 0.406555 -0.58598 N1 0.782908 0.211045 -0.585248 N2 0.673539 0.181563 -0.716506 - txt003 -STRI - V0 1.68843 0.469907 0.384375 V1 1.51407 0.889259 0.384375 V2 1.61822 0.950425 0.522222 - N0 0.673539 0.181563 -0.716506 N1 0.602839 0.349647 -0.717169 N2 0.700957 0.406555 -0.58598 - txt003 -STRI - V0 1.80456 0.502229 0.522222 V1 1.87037 2.22045e-16 0.522222 V2 1.75 2.22045e-16 0.384375 - N0 0.782908 0.211045 -0.585248 N1 0.811257 -6.19755e-17 -0.58469 N2 0.6981 -8.11143e-17 -0.716 - txt003 -STRI - V0 1.75 2.22045e-16 0.384375 V1 1.68843 0.469907 0.384375 V2 1.80456 0.502229 0.522222 - N0 0.6981 -8.11143e-17 -0.716 N1 0.673539 0.181563 -0.716506 N2 0.782908 0.211045 -0.585248 - txt003 -STRI - V0 0 1.75 0.384375 V1 0.469907 1.68843 0.384375 V2 0.437586 1.57229 0.277778 - N0 0 0.6981 -0.716 N1 0.181563 0.673539 -0.716506 N2 0.165491 0.61392 -0.771826 - txt003 -STRI - V0 0.437586 1.57229 0.277778 V1 0 1.62963 0.277778 V2 0 1.75 0.384375 - N0 0.165491 0.61392 -0.771826 N1 0 0.636383 -0.771373 N2 0 0.6981 -0.716 - txt003 -STRI - V0 0.469907 1.68843 0.384375 V1 0.889259 1.51407 0.384375 V2 0.828093 1.40993 0.277778 - N0 0.181563 0.673539 -0.716506 N1 0.349647 0.602839 -0.717169 N2 0.318647 0.549392 -0.77242 - txt003 -STRI - V0 0.828093 1.40993 0.277778 V1 0.437586 1.57229 0.277778 V2 0.469907 1.68843 0.384375 - N0 0.318647 0.549392 -0.77242 N1 0.165491 0.61392 -0.771826 N2 0.181563 0.673539 -0.716506 - txt003 -STRI - V0 0.889259 1.51407 0.384375 V1 1.2425 1.2425 0.384375 V2 1.15704 1.15704 0.277778 - N0 0.349647 0.602839 -0.717169 N1 0.492597 0.492597 -0.717423 N2 0.448897 0.448897 -0.772647 - txt003 -STRI - V0 1.15704 1.15704 0.277778 V1 0.828093 1.40993 0.277778 V2 0.889259 1.51407 0.384375 - N0 0.448897 0.448897 -0.772647 N1 0.318647 0.549392 -0.77242 N2 0.349647 0.602839 -0.717169 - txt003 -STRI - V0 1.2425 1.2425 0.384375 V1 1.51407 0.889259 0.384375 V2 1.40993 0.828093 0.277778 - N0 0.492597 0.492597 -0.717423 N1 0.602839 0.349647 -0.717169 N2 0.549392 0.318647 -0.77242 - txt003 -STRI - V0 1.40993 0.828093 0.277778 V1 1.15704 1.15704 0.277778 V2 1.2425 1.2425 0.384375 - N0 0.549392 0.318647 -0.77242 N1 0.448897 0.448897 -0.772647 N2 0.492597 0.492597 -0.717423 - txt003 -STRI - V0 1.51407 0.889259 0.384375 V1 1.68843 0.469907 0.384375 V2 1.57229 0.437586 0.277778 - N0 0.602839 0.349647 -0.717169 N1 0.673539 0.181563 -0.716506 N2 0.61392 0.165491 -0.771826 - txt003 -STRI - V0 1.57229 0.437586 0.277778 V1 1.40993 0.828093 0.277778 V2 1.51407 0.889259 0.384375 - N0 0.61392 0.165491 -0.771826 N1 0.549392 0.318647 -0.77242 N2 0.602839 0.349647 -0.717169 - txt003 -STRI - V0 1.68843 0.469907 0.384375 V1 1.75 2.22045e-16 0.384375 V2 1.62963 0 0.277778 - N0 0.673539 0.181563 -0.716506 N1 0.6981 -8.11143e-17 -0.716 N2 0.636383 -1.97068e-16 -0.771373 - txt003 -STRI - V0 1.62963 0 0.277778 V1 1.57229 0.437586 0.277778 V2 1.68843 0.469907 0.384375 - N0 0.636383 -1.97068e-16 -0.771373 N1 0.61392 0.165491 -0.771826 N2 0.673539 0.181563 -0.716506 - txt003 -STRI - V0 0 1.62963 0.277778 V1 0.437586 1.57229 0.277778 V2 0.412723 1.48296 0.200347 - N0 0 0.636383 -0.771373 N1 0.165491 0.61392 -0.771826 N2 0.175561 0.651276 -0.738253 - txt003 -STRI - V0 0.412723 1.48296 0.200347 V1 0 1.53704 0.200347 V2 0 1.62963 0.277778 - N0 0.175561 0.651276 -0.738253 N1 0 0.675056 -0.737766 N2 0 0.636383 -0.771373 - txt003 -STRI - V0 0.437586 1.57229 0.277778 V1 0.828093 1.40993 0.277778 V2 0.781043 1.32982 0.200347 - N0 0.165491 0.61392 -0.771826 N1 0.318647 0.549392 -0.77242 N2 0.338069 0.582878 -0.738893 - txt003 -STRI - V0 0.781043 1.32982 0.200347 V1 0.412723 1.48296 0.200347 V2 0.437586 1.57229 0.277778 - N0 0.338069 0.582878 -0.738893 N1 0.175561 0.651276 -0.738253 N2 0.165491 0.61392 -0.771826 - txt003 -STRI - V0 0.828093 1.40993 0.277778 V1 1.15704 1.15704 0.277778 V2 1.0913 1.0913 0.200347 - N0 0.318647 0.549392 -0.77242 N1 0.448897 0.448897 -0.772647 N2 0.476275 0.476275 -0.739137 - txt003 -STRI - V0 1.0913 1.0913 0.200347 V1 0.781043 1.32982 0.200347 V2 0.828093 1.40993 0.277778 - N0 0.476275 0.476275 -0.739137 N1 0.338069 0.582878 -0.738893 N2 0.318647 0.549392 -0.77242 - txt003 -STRI - V0 1.15704 1.15704 0.277778 V1 1.40993 0.828093 0.277778 V2 1.32982 0.781043 0.200347 - N0 0.448897 0.448897 -0.772647 N1 0.549392 0.318647 -0.77242 N2 0.582878 0.338069 -0.738893 - txt003 -STRI - V0 1.32982 0.781043 0.200347 V1 1.0913 1.0913 0.200347 V2 1.15704 1.15704 0.277778 - N0 0.582878 0.338069 -0.738893 N1 0.476275 0.476275 -0.739137 N2 0.448897 0.448897 -0.772647 - txt003 -STRI - V0 1.40993 0.828093 0.277778 V1 1.57229 0.437586 0.277778 V2 1.48296 0.412723 0.200347 - N0 0.549392 0.318647 -0.77242 N1 0.61392 0.165491 -0.771826 N2 0.651276 0.175561 -0.738253 - txt003 -STRI - V0 1.48296 0.412723 0.200347 V1 1.32982 0.781043 0.200347 V2 1.40993 0.828093 0.277778 - N0 0.651276 0.175561 -0.738253 N1 0.582878 0.338069 -0.738893 N2 0.549392 0.318647 -0.77242 - txt003 -STRI - V0 1.57229 0.437586 0.277778 V1 1.62963 0 0.277778 V2 1.53704 0 0.200347 - N0 0.61392 0.165491 -0.771826 N1 0.636383 -1.97068e-16 -0.771373 N2 0.675056 -9.51605e-17 -0.737766 - txt003 -STRI - V0 1.53704 0 0.200347 V1 1.48296 0.412723 0.200347 V2 1.57229 0.437586 0.277778 - N0 0.675056 -9.51605e-17 -0.737766 N1 0.651276 0.175561 -0.738253 N2 0.61392 0.165491 -0.771826 - txt003 -STRI - V0 0 1.53704 0.200347 V1 0.412723 1.48296 0.200347 V2 0.402778 1.44722 0.15 - N0 0 0.675056 -0.737766 N1 0.175561 0.651276 -0.738253 N2 0.260275 0.965535 0 - txt003 -STRI - V0 0.402778 1.44722 0.15 V1 0 1.5 0.15 V2 0 1.53704 0.200347 - N0 0.260275 0.965535 0 N1 -0 1 0 N2 0 0.675056 -0.737766 - txt003 -STRI - V0 0.412723 1.48296 0.200347 V1 0.781043 1.32982 0.200347 V2 0.762222 1.29778 0.15 - N0 0.175561 0.651276 -0.738253 N1 0.338069 0.582878 -0.738893 N2 0.501718 0.865031 0 - txt003 -STRI - V0 0.762222 1.29778 0.15 V1 0.402778 1.44722 0.15 V2 0.412723 1.48296 0.200347 - N0 0.501718 0.865031 0 N1 0.260275 0.965535 0 N2 0.175561 0.651276 -0.738253 - txt003 -STRI - V0 0.781043 1.32982 0.200347 V1 1.0913 1.0913 0.200347 V2 1.065 1.065 0.15 - N0 0.338069 0.582878 -0.738893 N1 0.476275 0.476275 -0.739137 N2 0.707107 0.707107 0 - txt003 -STRI - V0 1.065 1.065 0.15 V1 0.762222 1.29778 0.15 V2 0.781043 1.32982 0.200347 - N0 0.707107 0.707107 0 N1 0.501718 0.865031 0 N2 0.338069 0.582878 -0.738893 - txt003 -STRI - V0 1.0913 1.0913 0.200347 V1 1.32982 0.781043 0.200347 V2 1.29778 0.762222 0.15 - N0 0.476275 0.476275 -0.739137 N1 0.582878 0.338069 -0.738893 N2 0.865031 0.501718 0 - txt003 -STRI - V0 1.29778 0.762222 0.15 V1 1.065 1.065 0.15 V2 1.0913 1.0913 0.200347 - N0 0.865031 0.501718 0 N1 0.707107 0.707107 0 N2 0.476275 0.476275 -0.739137 - txt003 -STRI - V0 1.32982 0.781043 0.200347 V1 1.48296 0.412723 0.200347 V2 1.44722 0.402778 0.15 - N0 0.582878 0.338069 -0.738893 N1 0.651276 0.175561 -0.738253 N2 0.965535 0.260275 0 - txt003 -STRI - V0 1.44722 0.402778 0.15 V1 1.29778 0.762222 0.15 V2 1.32982 0.781043 0.200347 - N0 0.965535 0.260275 0 N1 0.865031 0.501718 0 N2 0.582878 0.338069 -0.738893 - txt003 -STRI - V0 1.48296 0.412723 0.200347 V1 1.53704 0 0.200347 V2 1.5 0 0.15 - N0 0.651276 0.175561 -0.738253 N1 0.675056 -9.51605e-17 -0.737766 N2 1 0 0 - txt003 -STRI - V0 1.5 0 0.15 V1 1.44722 0.402778 0.15 V2 1.48296 0.412723 0.200347 - N0 1 0 0 N1 0.965535 0.260275 0 N2 0.651276 0.175561 -0.738253 - txt003 -STRI - V0 -1.6 0 2.025 V1 -1.59259 -0.125 2.04167 V2 -1.92704 -0.125 2.04055 - N0 -0 -0 -1 N1 -0 -0.298275 -0.95448 N2 0.0104256 -0.297446 -0.954682 - txt003 -STRI - V0 -1.92704 -0.125 2.04055 V1 -1.92454 0 2.02396 V2 -1.6 0 2.025 - N0 0.0104256 -0.297446 -0.954682 N1 0.0104645 0 -0.999945 N2 -0 -0 -1 - txt003 -STRI - V0 -1.59259 -0.125 2.04167 V1 -1.57407 -0.2 2.08333 V2 -1.9333 -0.2 2.08202 - N0 -0 -0.298275 -0.95448 N1 -0 -0.707107 -0.707107 N2 0.00846382 -0.706077 -0.708084 - txt003 -STRI - V0 -1.9333 -0.2 2.08202 V1 -1.92704 -0.125 2.04055 V2 -1.59259 -0.125 2.04167 - N0 0.00846382 -0.706077 -0.708084 N1 0.0104256 -0.297446 -0.954682 N2 -0 -0.298275 -0.95448 - txt003 -STRI - V0 -1.57407 -0.2 2.08333 V1 -1.55 -0.225 2.1375 V2 -1.94144 -0.225 2.13594 - N0 -0 -0.707107 -0.707107 N1 0 -1 0 N2 -1.61364e-18 -1 -2.43505e-19 - txt003 -STRI - V0 -1.94144 -0.225 2.13594 V1 -1.9333 -0.2 2.08202 V2 -1.57407 -0.2 2.08333 - N0 -1.61364e-18 -1 -2.43505e-19 N1 0.00846382 -0.706077 -0.708084 N2 -0 -0.707107 -0.707107 - txt003 -STRI - V0 -1.55 -0.225 2.1375 V1 -1.52593 -0.2 2.19167 V2 -1.94957 -0.2 2.18985 - N0 0 -1 0 N1 0 -0.707107 0.707107 N2 -0.00997559 -0.706181 0.707961 - txt003 -STRI - V0 -1.94957 -0.2 2.18985 V1 -1.94144 -0.225 2.13594 V2 -1.55 -0.225 2.1375 - N0 -0.00997559 -0.706181 0.707961 N1 -1.61364e-18 -1 -2.43505e-19 N2 0 -1 0 - txt003 -STRI - V0 -1.52593 -0.2 2.19167 V1 -1.50741 -0.125 2.23333 V2 -1.95583 -0.125 2.23133 - N0 0 -0.707107 0.707107 N1 0 -0.298275 0.95448 N2 -0.0140841 -0.297589 0.95459 - txt003 -STRI - V0 -1.95583 -0.125 2.23133 V1 -1.94957 -0.2 2.18985 V2 -1.52593 -0.2 2.19167 - N0 -0.0140841 -0.297589 0.95459 N1 -0.00997559 -0.706181 0.707961 N2 0 -0.707107 0.707107 - txt003 -STRI - V0 -1.50741 -0.125 2.23333 V1 -1.5 0 2.25 V2 -1.95833 0 2.24792 - N0 0 -0.298275 0.95448 N1 0 1.97373e-15 1 N2 -0.0149983 1.96426e-15 0.999888 - txt003 -STRI - V0 -1.95833 0 2.24792 V1 -1.95583 -0.125 2.23133 V2 -1.50741 -0.125 2.23333 - N0 -0.0149983 1.96426e-15 0.999888 N1 -0.0140841 -0.297589 0.95459 N2 0 -0.298275 0.95448 - txt003 -STRI - V0 -1.92454 0 2.02396 V1 -1.92704 -0.125 2.04055 V2 -2.20645 -0.125 2.03272 - N0 0.0104645 0 -0.999945 N1 0.0104256 -0.297446 -0.954682 N2 0.0510028 -0.296675 -0.953616 - txt003 -STRI - V0 -2.20645 -0.125 2.03272 V1 -2.1963 0 2.01667 V2 -1.92454 0 2.02396 - N0 0.0510028 -0.296675 -0.953616 N1 0.0510696 0 -0.998695 N2 0.0104645 0 -0.999945 - txt003 -STRI - V0 -1.92704 -0.125 2.04055 V1 -1.9333 -0.2 2.08202 V2 -2.23182 -0.2 2.07284 - N0 0.0104256 -0.297446 -0.954682 N1 0.00846382 -0.706077 -0.708084 N2 0.0415994 -0.706072 -0.706918 - txt003 -STRI - V0 -2.23182 -0.2 2.07284 V1 -2.20645 -0.125 2.03272 V2 -1.92704 -0.125 2.04055 - N0 0.0415994 -0.706072 -0.706918 N1 0.0510028 -0.296675 -0.953616 N2 0.0104256 -0.297446 -0.954682 - txt003 -STRI - V0 -1.9333 -0.2 2.08202 V1 -1.94144 -0.225 2.13594 V2 -2.26481 -0.225 2.125 - N0 0.00846382 -0.706077 -0.708084 N1 -1.61364e-18 -1 -2.43505e-19 N2 -7.69071e-18 -1 -4.86421e-18 - txt003 -STRI - V0 -2.26481 -0.225 2.125 V1 -2.23182 -0.2 2.07284 V2 -1.9333 -0.2 2.08202 - N0 -7.69071e-18 -1 -4.86421e-18 N1 0.0415994 -0.706072 -0.706918 N2 0.00846382 -0.706077 -0.708084 - txt003 -STRI - V0 -1.94144 -0.225 2.13594 V1 -1.94957 -0.2 2.18985 V2 -2.29781 -0.2 2.17716 - N0 -1.61364e-18 -1 -2.43505e-19 N1 -0.00997559 -0.706181 0.707961 N2 -0.0493858 -0.708239 0.704243 - txt003 -STRI - V0 -2.29781 -0.2 2.17716 V1 -2.26481 -0.225 2.125 V2 -1.94144 -0.225 2.13594 - N0 -0.0493858 -0.708239 0.704243 N1 -7.69071e-18 -1 -4.86421e-18 N2 -1.61364e-18 -1 -2.43505e-19 - txt003 -STRI - V0 -1.94957 -0.2 2.18985 V1 -1.95583 -0.125 2.23133 V2 -2.32318 -0.125 2.21728 - N0 -0.00997559 -0.706181 0.707961 N1 -0.0140841 -0.297589 0.95459 N2 -0.0701017 -0.299663 0.951466 - txt003 -STRI - V0 -2.32318 -0.125 2.21728 V1 -2.29781 -0.2 2.17716 V2 -1.94957 -0.2 2.18985 - N0 -0.0701017 -0.299663 0.951466 N1 -0.0493858 -0.708239 0.704243 N2 -0.00997559 -0.706181 0.707961 - txt003 -STRI - V0 -1.95583 -0.125 2.23133 V1 -1.95833 0 2.24792 V2 -2.33333 0 2.23333 - N0 -0.0140841 -0.297589 0.95459 N1 -0.0149983 1.96426e-15 0.999888 N2 -0.0747899 1.66682e-15 0.997199 - txt003 -STRI - V0 -2.33333 0 2.23333 V1 -2.32318 -0.125 2.21728 V2 -1.95583 -0.125 2.23133 - N0 -0.0747899 1.66682e-15 0.997199 N1 -0.0701017 -0.299663 0.951466 N2 -0.0140841 -0.297589 0.95459 - txt003 -STRI - V0 -2.1963 0 2.01667 V1 -2.20645 -0.125 2.03272 V2 -2.42824 -0.125 2.01146 - N0 0.0510696 0 -0.998695 N1 0.0510028 -0.296675 -0.953616 N2 0.148104 -0.301279 -0.941964 - txt003 -STRI - V0 -2.42824 -0.125 2.01146 V1 -2.4125 0 1.99687 V2 -2.1963 0 2.01667 - N0 0.148104 -0.301279 -0.941964 N1 0.14834 0 -0.988936 N2 0.0510696 0 -0.998695 - txt003 -STRI - V0 -2.20645 -0.125 2.03272 V1 -2.23182 -0.2 2.07284 V2 -2.46759 -0.2 2.04792 - N0 0.0510028 -0.296675 -0.953616 N1 0.0415994 -0.706072 -0.706918 N2 0.119688 -0.715388 -0.6884 - txt003 -STRI - V0 -2.46759 -0.2 2.04792 V1 -2.42824 -0.125 2.01146 V2 -2.20645 -0.125 2.03272 - N0 0.119688 -0.715388 -0.6884 N1 0.148104 -0.301279 -0.941964 N2 0.0510028 -0.296675 -0.953616 - txt003 -STRI - V0 -2.23182 -0.2 2.07284 V1 -2.26481 -0.225 2.125 V2 -2.51875 -0.225 2.09531 - N0 0.0415994 -0.706072 -0.706918 N1 -7.69071e-18 -1 -4.86421e-18 N2 -1.96915e-17 -1 -2.12543e-17 - txt003 -STRI - V0 -2.51875 -0.225 2.09531 V1 -2.46759 -0.2 2.04792 V2 -2.23182 -0.2 2.07284 - N0 -1.96915e-17 -1 -2.12543e-17 N1 0.119688 -0.715388 -0.6884 N2 0.0415994 -0.706072 -0.706918 - txt003 -STRI - V0 -2.26481 -0.225 2.125 V1 -2.29781 -0.2 2.17716 V2 -2.56991 -0.2 2.14271 - N0 -7.69071e-18 -1 -4.86421e-18 N1 -0.0493858 -0.708239 0.704243 N2 -0.141352 -0.724137 0.675015 - txt003 -STRI - V0 -2.56991 -0.2 2.14271 V1 -2.51875 -0.225 2.09531 V2 -2.26481 -0.225 2.125 - N0 -0.141352 -0.724137 0.675015 N1 -1.96915e-17 -1 -2.12543e-17 N2 -7.69071e-18 -1 -4.86421e-18 - txt003 -STRI - V0 -2.29781 -0.2 2.17716 V1 -2.32318 -0.125 2.21728 V2 -2.60926 -0.125 2.17917 - N0 -0.0493858 -0.708239 0.704243 N1 -0.0701017 -0.299663 0.951466 N2 -0.204668 -0.313917 0.927128 - txt003 -STRI - V0 -2.60926 -0.125 2.17917 V1 -2.56991 -0.2 2.14271 V2 -2.29781 -0.2 2.17716 - N0 -0.204668 -0.313917 0.927128 N1 -0.141352 -0.724137 0.675015 N2 -0.0493858 -0.708239 0.704243 - txt003 -STRI - V0 -2.32318 -0.125 2.21728 V1 -2.33333 0 2.23333 V2 -2.625 0 2.19375 - N0 -0.0701017 -0.299663 0.951466 N1 -0.0747899 1.66682e-15 0.997199 N2 -0.219512 1.81728e-15 0.97561 - txt003 -STRI - V0 -2.625 0 2.19375 V1 -2.60926 -0.125 2.17917 V2 -2.32318 -0.125 2.21728 - N0 -0.219512 1.81728e-15 0.97561 N1 -0.204668 -0.313917 0.927128 N2 -0.0701017 -0.299663 0.951466 - txt003 -STRI - V0 -2.4125 0 1.99687 V1 -2.42824 -0.125 2.01146 V2 -2.58985 -0.125 1.97006 - N0 0.14834 0 -0.988936 N1 0.148104 -0.301279 -0.941964 N2 0.359682 -0.323804 -0.875089 - txt003 -STRI - V0 -2.58985 -0.125 1.97006 V1 -2.57037 0 1.95833 V2 -2.4125 0 1.99687 - N0 0.359682 -0.323804 -0.875089 N1 0.364399 0 -0.931243 N2 0.14834 0 -0.988936 - txt003 -STRI - V0 -2.42824 -0.125 2.01146 V1 -2.46759 -0.2 2.04792 V2 -2.63855 -0.2 1.99938 - N0 0.148104 -0.301279 -0.941964 N1 0.119688 -0.715388 -0.6884 N2 0.275915 -0.747596 -0.604128 - txt003 -STRI - V0 -2.63855 -0.2 1.99938 V1 -2.58985 -0.125 1.97006 V2 -2.42824 -0.125 2.01146 - N0 0.275915 -0.747596 -0.604128 N1 0.359682 -0.323804 -0.875089 N2 0.148104 -0.301279 -0.941964 - txt003 -STRI - V0 -2.46759 -0.2 2.04792 V1 -2.51875 -0.225 2.09531 V2 -2.70185 -0.225 2.0375 - N0 0.119688 -0.715388 -0.6884 N1 -1.96915e-17 -1 -2.12543e-17 N2 -3.40413e-17 -1 -5.65364e-17 - txt003 -STRI - V0 -2.70185 -0.225 2.0375 V1 -2.63855 -0.2 1.99938 V2 -2.46759 -0.2 2.04792 - N0 -3.40413e-17 -1 -5.65364e-17 N1 0.275915 -0.747596 -0.604128 N2 0.119688 -0.715388 -0.6884 - txt003 -STRI - V0 -2.51875 -0.225 2.09531 V1 -2.56991 -0.2 2.14271 V2 -2.76516 -0.2 2.07562 - N0 -1.96915e-17 -1 -2.12543e-17 N1 -0.141352 -0.724137 0.675015 N2 -0.313659 -0.763673 0.564289 - txt003 -STRI - V0 -2.76516 -0.2 2.07562 V1 -2.70185 -0.225 2.0375 V2 -2.51875 -0.225 2.09531 - N0 -0.313659 -0.763673 0.564289 N1 -3.40413e-17 -1 -5.65364e-17 N2 -1.96915e-17 -1 -2.12543e-17 - txt003 -STRI - V0 -2.56991 -0.2 2.14271 V1 -2.60926 -0.125 2.17917 V2 -2.81385 -0.125 2.10494 - N0 -0.141352 -0.724137 0.675015 N1 -0.204668 -0.313917 0.927128 N2 -0.474611 -0.350859 0.807244 - txt003 -STRI - V0 -2.81385 -0.125 2.10494 V1 -2.76516 -0.2 2.07562 V2 -2.56991 -0.2 2.14271 - N0 -0.474611 -0.350859 0.807244 N1 -0.313659 -0.763673 0.564289 N2 -0.141352 -0.724137 0.675015 - txt003 -STRI - V0 -2.60926 -0.125 2.17917 V1 -2.625 0 2.19375 V2 -2.83333 0 2.11667 - N0 -0.204668 -0.313917 0.927128 N1 -0.219512 1.81728e-15 0.97561 N2 -0.514496 1.6713e-15 0.857493 - txt003 -STRI - V0 -2.83333 0 2.11667 V1 -2.81385 -0.125 2.10494 V2 -2.60926 -0.125 2.17917 - N0 -0.514496 1.6713e-15 0.857493 N1 -0.474611 -0.350859 0.807244 N2 -0.204668 -0.313917 0.927128 - txt003 -STRI - V0 -2.57037 0 1.95833 V1 -2.58985 -0.125 1.97006 V2 -2.6887 -0.125 1.90181 - N0 0.364399 0 -0.931243 N1 0.359682 -0.323804 -0.875089 N2 0.727532 -0.37029 -0.577566 - txt003 -STRI - V0 -2.6887 -0.125 1.90181 V1 -2.66713 0 1.89479 V2 -2.57037 0 1.95833 - N0 0.727532 -0.37029 -0.577566 N1 0.767382 0 -0.64119 N2 0.364399 0 -0.931243 - txt003 -STRI - V0 -2.58985 -0.125 1.97006 V1 -2.63855 -0.2 1.99938 V2 -2.74263 -0.2 1.91937 - N0 0.359682 -0.323804 -0.875089 N1 0.275915 -0.747596 -0.604128 N2 0.497152 -0.792374 -0.35353 - txt003 -STRI - V0 -2.74263 -0.2 1.91937 V1 -2.6887 -0.125 1.90181 V2 -2.58985 -0.125 1.97006 - N0 0.497152 -0.792374 -0.35353 N1 0.727532 -0.37029 -0.577566 N2 0.359682 -0.323804 -0.875089 - txt003 -STRI - V0 -2.63855 -0.2 1.99938 V1 -2.70185 -0.225 2.0375 V2 -2.81273 -0.225 1.94219 - N0 0.275915 -0.747596 -0.604128 N1 -3.40413e-17 -1 -5.65364e-17 N2 -3.3285e-17 -1 -1.02253e-16 - txt003 -STRI - V0 -2.81273 -0.225 1.94219 V1 -2.74263 -0.2 1.91937 V2 -2.63855 -0.2 1.99938 - N0 -3.3285e-17 -1 -1.02253e-16 N1 0.497152 -0.792374 -0.35353 N2 0.275915 -0.747596 -0.604128 - txt003 -STRI - V0 -2.70185 -0.225 2.0375 V1 -2.76516 -0.2 2.07562 V2 -2.88284 -0.2 1.96501 - N0 -3.40413e-17 -1 -5.65364e-17 N1 -0.313659 -0.763673 0.564289 N2 -0.519903 -0.799556 0.300684 - txt003 -STRI - V0 -2.88284 -0.2 1.96501 V1 -2.81273 -0.225 1.94219 V2 -2.70185 -0.225 2.0375 - N0 -0.519903 -0.799556 0.300684 N1 -3.3285e-17 -1 -1.02253e-16 N2 -3.40413e-17 -1 -5.65364e-17 - txt003 -STRI - V0 -2.76516 -0.2 2.07562 V1 -2.81385 -0.125 2.10494 V2 -2.93676 -0.125 1.98256 - N0 -0.313659 -0.763673 0.564289 N1 -0.474611 -0.350859 0.807244 N2 -0.810111 -0.385772 0.441476 - txt003 -STRI - V0 -2.93676 -0.125 1.98256 V1 -2.88284 -0.2 1.96501 V2 -2.76516 -0.2 2.07562 - N0 -0.810111 -0.385772 0.441476 N1 -0.519903 -0.799556 0.300684 N2 -0.313659 -0.763673 0.564289 - txt003 -STRI - V0 -2.81385 -0.125 2.10494 V1 -2.83333 0 2.11667 V2 -2.95833 0 1.98958 - N0 -0.474611 -0.350859 0.807244 N1 -0.514496 1.6713e-15 0.857493 N2 -0.882353 9.28814e-16 0.470588 - txt003 -STRI - V0 -2.95833 0 1.98958 V1 -2.93676 -0.125 1.98256 V2 -2.81385 -0.125 2.10494 - N0 -0.882353 9.28814e-16 0.470588 N1 -0.810111 -0.385772 0.441476 N2 -0.474611 -0.350859 0.807244 - txt003 -STRI - V0 -2.66713 0 1.89479 V1 -2.6887 -0.125 1.90181 V2 -2.72222 -0.125 1.8 - N0 0.767382 0 -0.64119 N1 0.727532 -0.37029 -0.577566 N2 0.923077 -0.384615 2.05733e-15 - txt003 -STRI - V0 -2.72222 -0.125 1.8 V1 -2.7 0 1.8 V2 -2.66713 0 1.89479 - N0 0.923077 -0.384615 2.05733e-15 N1 1 0 2.63164e-15 N2 0.767382 0 -0.64119 - txt003 -STRI - V0 -2.6887 -0.125 1.90181 V1 -2.74263 -0.2 1.91937 V2 -2.77778 -0.2 1.8 - N0 0.727532 -0.37029 -0.577566 N1 0.497152 -0.792374 -0.35353 N2 0.6 -0.8 8.24322e-16 - txt003 -STRI - V0 -2.77778 -0.2 1.8 V1 -2.72222 -0.125 1.8 V2 -2.6887 -0.125 1.90181 - N0 0.6 -0.8 8.24322e-16 N1 0.923077 -0.384615 2.05733e-15 N2 0.727532 -0.37029 -0.577566 - txt003 -STRI - V0 -2.74263 -0.2 1.91937 V1 -2.81273 -0.225 1.94219 V2 -2.85 -0.225 1.8 - N0 0.497152 -0.792374 -0.35353 N1 -3.3285e-17 -1 -1.02253e-16 N2 -1.21738e-31 -1 -1.23358e-16 - txt003 -STRI - V0 -2.85 -0.225 1.8 V1 -2.77778 -0.2 1.8 V2 -2.74263 -0.2 1.91937 - N0 -1.21738e-31 -1 -1.23358e-16 N1 0.6 -0.8 8.24322e-16 N2 0.497152 -0.792374 -0.35353 - txt003 -STRI - V0 -2.81273 -0.225 1.94219 V1 -2.88284 -0.2 1.96501 V2 -2.92222 -0.2 1.8 - N0 -3.3285e-17 -1 -1.02253e-16 N1 -0.519903 -0.799556 0.300684 N2 -0.6 -0.8 -3.10757e-16 - txt003 -STRI - V0 -2.92222 -0.2 1.8 V1 -2.85 -0.225 1.8 V2 -2.81273 -0.225 1.94219 - N0 -0.6 -0.8 -3.10757e-16 N1 -1.21738e-31 -1 -1.23358e-16 N2 -3.3285e-17 -1 -1.02253e-16 - txt003 -STRI - V0 -2.88284 -0.2 1.96501 V1 -2.93676 -0.125 1.98256 V2 -2.97778 -0.125 1.8 - N0 -0.519903 -0.799556 0.300684 N1 -0.810111 -0.385772 0.441476 N2 -0.923077 -0.384615 -1.1396e-16 - txt003 -STRI - V0 -2.97778 -0.125 1.8 V1 -2.92222 -0.2 1.8 V2 -2.88284 -0.2 1.96501 - N0 -0.923077 -0.384615 -1.1396e-16 N1 -0.6 -0.8 -3.10757e-16 N2 -0.519903 -0.799556 0.300684 - txt003 -STRI - V0 -2.93676 -0.125 1.98256 V1 -2.95833 0 1.98958 V2 -3 0 1.8 - N0 -0.810111 -0.385772 0.441476 N1 -0.882353 9.28814e-16 0.470588 N2 -1 -4.93432e-16 -0 - txt003 -STRI - V0 -3 0 1.8 V1 -2.97778 -0.125 1.8 V2 -2.93676 -0.125 1.98256 - N0 -1 -4.93432e-16 -0 N1 -0.923077 -0.384615 -1.1396e-16 N2 -0.810111 -0.385772 0.441476 - txt003 -STRI - V0 -1.5 0 2.25 V1 -1.50741 0.125 2.23333 V2 -1.95583 0.125 2.23133 - N0 0 -0 1 N1 0 0.298275 0.95448 N2 -0.0140841 0.297589 0.95459 - txt003 -STRI - V0 -1.95583 0.125 2.23133 V1 -1.95833 0 2.24792 V2 -1.5 0 2.25 - N0 -0.0140841 0.297589 0.95459 N1 -0.0149983 0 0.999888 N2 0 -0 1 - txt003 -STRI - V0 -1.50741 0.125 2.23333 V1 -1.52593 0.2 2.19167 V2 -1.94957 0.2 2.18985 - N0 0 0.298275 0.95448 N1 0 0.707107 0.707107 N2 -0.00997559 0.706181 0.707961 - txt003 -STRI - V0 -1.94957 0.2 2.18985 V1 -1.95583 0.125 2.23133 V2 -1.50741 0.125 2.23333 - N0 -0.00997559 0.706181 0.707961 N1 -0.0140841 0.297589 0.95459 N2 0 0.298275 0.95448 - txt003 -STRI - V0 -1.52593 0.2 2.19167 V1 -1.55 0.225 2.1375 V2 -1.94144 0.225 2.13594 - N0 0 0.707107 0.707107 N1 0 1 0 N2 -1.61364e-18 1 -2.43505e-19 - txt003 -STRI - V0 -1.94144 0.225 2.13594 V1 -1.94957 0.2 2.18985 V2 -1.52593 0.2 2.19167 - N0 -1.61364e-18 1 -2.43505e-19 N1 -0.00997559 0.706181 0.707961 N2 0 0.707107 0.707107 - txt003 -STRI - V0 -1.55 0.225 2.1375 V1 -1.57407 0.2 2.08333 V2 -1.9333 0.2 2.08202 - N0 0 1 0 N1 0 0.707107 -0.707107 N2 0.00846382 0.706077 -0.708084 - txt003 -STRI - V0 -1.9333 0.2 2.08202 V1 -1.94144 0.225 2.13594 V2 -1.55 0.225 2.1375 - N0 0.00846382 0.706077 -0.708084 N1 -1.61364e-18 1 -2.43505e-19 N2 0 1 0 - txt003 -STRI - V0 -1.57407 0.2 2.08333 V1 -1.59259 0.125 2.04167 V2 -1.92704 0.125 2.04055 - N0 0 0.707107 -0.707107 N1 0 0.298275 -0.95448 N2 0.0104256 0.297446 -0.954682 - txt003 -STRI - V0 -1.92704 0.125 2.04055 V1 -1.9333 0.2 2.08202 V2 -1.57407 0.2 2.08333 - N0 0.0104256 0.297446 -0.954682 N1 0.00846382 0.706077 -0.708084 N2 0 0.707107 -0.707107 - txt003 -STRI - V0 -1.59259 0.125 2.04167 V1 -1.6 0 2.025 V2 -1.92454 0 2.02396 - N0 0 0.298275 -0.95448 N1 -0 -4.93432e-16 -1 N2 0.0104645 -4.86951e-16 -0.999945 - txt003 -STRI - V0 -1.92454 0 2.02396 V1 -1.92704 0.125 2.04055 V2 -1.59259 0.125 2.04167 - N0 0.0104645 -4.86951e-16 -0.999945 N1 0.0104256 0.297446 -0.954682 N2 0 0.298275 -0.95448 - txt003 -STRI - V0 -1.95833 0 2.24792 V1 -1.95583 0.125 2.23133 V2 -2.32318 0.125 2.21728 - N0 -0.0149983 0 0.999888 N1 -0.0140841 0.297589 0.95459 N2 -0.0701017 0.299663 0.951466 - txt003 -STRI - V0 -2.32318 0.125 2.21728 V1 -2.33333 0 2.23333 V2 -1.95833 0 2.24792 - N0 -0.0701017 0.299663 0.951466 N1 -0.0747899 0 0.997199 N2 -0.0149983 0 0.999888 - txt003 -STRI - V0 -1.95583 0.125 2.23133 V1 -1.94957 0.2 2.18985 V2 -2.29781 0.2 2.17716 - N0 -0.0140841 0.297589 0.95459 N1 -0.00997559 0.706181 0.707961 N2 -0.0493858 0.708239 0.704243 - txt003 -STRI - V0 -2.29781 0.2 2.17716 V1 -2.32318 0.125 2.21728 V2 -1.95583 0.125 2.23133 - N0 -0.0493858 0.708239 0.704243 N1 -0.0701017 0.299663 0.951466 N2 -0.0140841 0.297589 0.95459 - txt003 -STRI - V0 -1.94957 0.2 2.18985 V1 -1.94144 0.225 2.13594 V2 -2.26481 0.225 2.125 - N0 -0.00997559 0.706181 0.707961 N1 -1.61364e-18 1 -2.43505e-19 N2 -7.69071e-18 1 -4.86421e-18 - txt003 -STRI - V0 -2.26481 0.225 2.125 V1 -2.29781 0.2 2.17716 V2 -1.94957 0.2 2.18985 - N0 -7.69071e-18 1 -4.86421e-18 N1 -0.0493858 0.708239 0.704243 N2 -0.00997559 0.706181 0.707961 - txt003 -STRI - V0 -1.94144 0.225 2.13594 V1 -1.9333 0.2 2.08202 V2 -2.23182 0.2 2.07284 - N0 -1.61364e-18 1 -2.43505e-19 N1 0.00846382 0.706077 -0.708084 N2 0.0415994 0.706072 -0.706918 - txt003 -STRI - V0 -2.23182 0.2 2.07284 V1 -2.26481 0.225 2.125 V2 -1.94144 0.225 2.13594 - N0 0.0415994 0.706072 -0.706918 N1 -7.69071e-18 1 -4.86421e-18 N2 -1.61364e-18 1 -2.43505e-19 - txt003 -STRI - V0 -1.9333 0.2 2.08202 V1 -1.92704 0.125 2.04055 V2 -2.20645 0.125 2.03272 - N0 0.00846382 0.706077 -0.708084 N1 0.0104256 0.297446 -0.954682 N2 0.0510028 0.296675 -0.953616 - txt003 -STRI - V0 -2.20645 0.125 2.03272 V1 -2.23182 0.2 2.07284 V2 -1.9333 0.2 2.08202 - N0 0.0510028 0.296675 -0.953616 N1 0.0415994 0.706072 -0.706918 N2 0.00846382 0.706077 -0.708084 - txt003 -STRI - V0 -1.92704 0.125 2.04055 V1 -1.92454 0 2.02396 V2 -2.1963 0 2.01667 - N0 0.0104256 0.297446 -0.954682 N1 0.0104645 -4.86951e-16 -0.999945 N2 0.0510696 -2.08595e-16 -0.998695 - txt003 -STRI - V0 -2.1963 0 2.01667 V1 -2.20645 0.125 2.03272 V2 -1.92704 0.125 2.04055 - N0 0.0510696 -2.08595e-16 -0.998695 N1 0.0510028 0.296675 -0.953616 N2 0.0104256 0.297446 -0.954682 - txt003 -STRI - V0 -2.33333 0 2.23333 V1 -2.32318 0.125 2.21728 V2 -2.60926 0.125 2.17917 - N0 -0.0747899 0 0.997199 N1 -0.0701017 0.299663 0.951466 N2 -0.204668 0.313917 0.927128 - txt003 -STRI - V0 -2.60926 0.125 2.17917 V1 -2.625 0 2.19375 V2 -2.33333 0 2.23333 - N0 -0.204668 0.313917 0.927128 N1 -0.219512 0 0.97561 N2 -0.0747899 0 0.997199 - txt003 -STRI - V0 -2.32318 0.125 2.21728 V1 -2.29781 0.2 2.17716 V2 -2.56991 0.2 2.14271 - N0 -0.0701017 0.299663 0.951466 N1 -0.0493858 0.708239 0.704243 N2 -0.141352 0.724137 0.675015 - txt003 -STRI - V0 -2.56991 0.2 2.14271 V1 -2.60926 0.125 2.17917 V2 -2.32318 0.125 2.21728 - N0 -0.141352 0.724137 0.675015 N1 -0.204668 0.313917 0.927128 N2 -0.0701017 0.299663 0.951466 - txt003 -STRI - V0 -2.29781 0.2 2.17716 V1 -2.26481 0.225 2.125 V2 -2.51875 0.225 2.09531 - N0 -0.0493858 0.708239 0.704243 N1 -7.69071e-18 1 -4.86421e-18 N2 -1.96915e-17 1 -2.12543e-17 - txt003 -STRI - V0 -2.51875 0.225 2.09531 V1 -2.56991 0.2 2.14271 V2 -2.29781 0.2 2.17716 - N0 -1.96915e-17 1 -2.12543e-17 N1 -0.141352 0.724137 0.675015 N2 -0.0493858 0.708239 0.704243 - txt003 -STRI - V0 -2.26481 0.225 2.125 V1 -2.23182 0.2 2.07284 V2 -2.46759 0.2 2.04792 - N0 -7.69071e-18 1 -4.86421e-18 N1 0.0415994 0.706072 -0.706918 N2 0.119688 0.715388 -0.6884 - txt003 -STRI - V0 -2.46759 0.2 2.04792 V1 -2.51875 0.225 2.09531 V2 -2.26481 0.225 2.125 - N0 0.119688 0.715388 -0.6884 N1 -1.96915e-17 1 -2.12543e-17 N2 -7.69071e-18 1 -4.86421e-18 - txt003 -STRI - V0 -2.23182 0.2 2.07284 V1 -2.20645 0.125 2.03272 V2 -2.42824 0.125 2.01146 - N0 0.0415994 0.706072 -0.706918 N1 0.0510028 0.296675 -0.953616 N2 0.148104 0.301279 -0.941964 - txt003 -STRI - V0 -2.42824 0.125 2.01146 V1 -2.46759 0.2 2.04792 V2 -2.23182 0.2 2.07284 - N0 0.148104 0.301279 -0.941964 N1 0.119688 0.715388 -0.6884 N2 0.0415994 0.706072 -0.706918 - txt003 -STRI - V0 -2.20645 0.125 2.03272 V1 -2.1963 0 2.01667 V2 -2.4125 0 1.99687 - N0 0.0510028 0.296675 -0.953616 N1 0.0510696 -2.08595e-16 -0.998695 N2 0.14834 -4.14777e-16 -0.988936 - txt003 -STRI - V0 -2.4125 0 1.99687 V1 -2.42824 0.125 2.01146 V2 -2.20645 0.125 2.03272 - N0 0.14834 -4.14777e-16 -0.988936 N1 0.148104 0.301279 -0.941964 N2 0.0510028 0.296675 -0.953616 - txt003 -STRI - V0 -2.625 0 2.19375 V1 -2.60926 0.125 2.17917 V2 -2.81385 0.125 2.10494 - N0 -0.219512 0 0.97561 N1 -0.204668 0.313917 0.927128 N2 -0.474611 0.350859 0.807244 - txt003 -STRI - V0 -2.81385 0.125 2.10494 V1 -2.83333 0 2.11667 V2 -2.625 0 2.19375 - N0 -0.474611 0.350859 0.807244 N1 -0.514496 0 0.857493 N2 -0.219512 0 0.97561 - txt003 -STRI - V0 -2.60926 0.125 2.17917 V1 -2.56991 0.2 2.14271 V2 -2.76516 0.2 2.07562 - N0 -0.204668 0.313917 0.927128 N1 -0.141352 0.724137 0.675015 N2 -0.313659 0.763673 0.564289 - txt003 -STRI - V0 -2.76516 0.2 2.07562 V1 -2.81385 0.125 2.10494 V2 -2.60926 0.125 2.17917 - N0 -0.313659 0.763673 0.564289 N1 -0.474611 0.350859 0.807244 N2 -0.204668 0.313917 0.927128 - txt003 -STRI - V0 -2.56991 0.2 2.14271 V1 -2.51875 0.225 2.09531 V2 -2.70185 0.225 2.0375 - N0 -0.141352 0.724137 0.675015 N1 -1.96915e-17 1 -2.12543e-17 N2 -3.40413e-17 1 -5.65364e-17 - txt003 -STRI - V0 -2.70185 0.225 2.0375 V1 -2.76516 0.2 2.07562 V2 -2.56991 0.2 2.14271 - N0 -3.40413e-17 1 -5.65364e-17 N1 -0.313659 0.763673 0.564289 N2 -0.141352 0.724137 0.675015 - txt003 -STRI - V0 -2.51875 0.225 2.09531 V1 -2.46759 0.2 2.04792 V2 -2.63855 0.2 1.99938 - N0 -1.96915e-17 1 -2.12543e-17 N1 0.119688 0.715388 -0.6884 N2 0.275915 0.747596 -0.604128 - txt003 -STRI - V0 -2.63855 0.2 1.99938 V1 -2.70185 0.225 2.0375 V2 -2.51875 0.225 2.09531 - N0 0.275915 0.747596 -0.604128 N1 -3.40413e-17 1 -5.65364e-17 N2 -1.96915e-17 1 -2.12543e-17 - txt003 -STRI - V0 -2.46759 0.2 2.04792 V1 -2.42824 0.125 2.01146 V2 -2.58985 0.125 1.97006 - N0 0.119688 0.715388 -0.6884 N1 0.148104 0.301279 -0.941964 N2 0.359682 0.323804 -0.875089 - txt003 -STRI - V0 -2.58985 0.125 1.97006 V1 -2.63855 0.2 1.99938 V2 -2.46759 0.2 2.04792 - N0 0.359682 0.323804 -0.875089 N1 0.275915 0.747596 -0.604128 N2 0.119688 0.715388 -0.6884 - txt003 -STRI - V0 -2.42824 0.125 2.01146 V1 -2.4125 0 1.99687 V2 -2.57037 0 1.95833 - N0 0.148104 0.301279 -0.941964 N1 0.14834 -4.14777e-16 -0.988936 N2 0.364399 -4.84479e-16 -0.931243 - txt003 -STRI - V0 -2.57037 0 1.95833 V1 -2.58985 0.125 1.97006 V2 -2.42824 0.125 2.01146 - N0 0.364399 -4.84479e-16 -0.931243 N1 0.359682 0.323804 -0.875089 N2 0.148104 0.301279 -0.941964 - txt003 -STRI - V0 -2.83333 0 2.11667 V1 -2.81385 0.125 2.10494 V2 -2.93676 0.125 1.98256 - N0 -0.514496 0 0.857493 N1 -0.474611 0.350859 0.807244 N2 -0.810111 0.385772 0.441476 - txt003 -STRI - V0 -2.93676 0.125 1.98256 V1 -2.95833 0 1.98958 V2 -2.83333 0 2.11667 - N0 -0.810111 0.385772 0.441476 N1 -0.882353 0 0.470588 N2 -0.514496 0 0.857493 - txt003 -STRI - V0 -2.81385 0.125 2.10494 V1 -2.76516 0.2 2.07562 V2 -2.88284 0.2 1.96501 - N0 -0.474611 0.350859 0.807244 N1 -0.313659 0.763673 0.564289 N2 -0.519903 0.799556 0.300684 - txt003 -STRI - V0 -2.88284 0.2 1.96501 V1 -2.93676 0.125 1.98256 V2 -2.81385 0.125 2.10494 - N0 -0.519903 0.799556 0.300684 N1 -0.810111 0.385772 0.441476 N2 -0.474611 0.350859 0.807244 - txt003 -STRI - V0 -2.76516 0.2 2.07562 V1 -2.70185 0.225 2.0375 V2 -2.81273 0.225 1.94219 - N0 -0.313659 0.763673 0.564289 N1 -3.40413e-17 1 -5.65364e-17 N2 -3.3285e-17 1 -1.02253e-16 - txt003 -STRI - V0 -2.81273 0.225 1.94219 V1 -2.88284 0.2 1.96501 V2 -2.76516 0.2 2.07562 - N0 -3.3285e-17 1 -1.02253e-16 N1 -0.519903 0.799556 0.300684 N2 -0.313659 0.763673 0.564289 - txt003 -STRI - V0 -2.70185 0.225 2.0375 V1 -2.63855 0.2 1.99938 V2 -2.74263 0.2 1.91937 - N0 -3.40413e-17 1 -5.65364e-17 N1 0.275915 0.747596 -0.604128 N2 0.497152 0.792374 -0.35353 - txt003 -STRI - V0 -2.74263 0.2 1.91937 V1 -2.81273 0.225 1.94219 V2 -2.70185 0.225 2.0375 - N0 0.497152 0.792374 -0.35353 N1 -3.3285e-17 1 -1.02253e-16 N2 -3.40413e-17 1 -5.65364e-17 - txt003 -STRI - V0 -2.63855 0.2 1.99938 V1 -2.58985 0.125 1.97006 V2 -2.6887 0.125 1.90181 - N0 0.275915 0.747596 -0.604128 N1 0.359682 0.323804 -0.875089 N2 0.727532 0.37029 -0.577566 - txt003 -STRI - V0 -2.6887 0.125 1.90181 V1 -2.74263 0.2 1.91937 V2 -2.63855 0.2 1.99938 - N0 0.727532 0.37029 -0.577566 N1 0.497152 0.792374 -0.35353 N2 0.275915 0.747596 -0.604128 - txt003 -STRI - V0 -2.58985 0.125 1.97006 V1 -2.57037 0 1.95833 V2 -2.66713 0 1.89479 - N0 0.359682 0.323804 -0.875089 N1 0.364399 -4.84479e-16 -0.931243 N2 0.767382 -3.16384e-16 -0.64119 - txt003 -STRI - V0 -2.66713 0 1.89479 V1 -2.6887 0.125 1.90181 V2 -2.58985 0.125 1.97006 - N0 0.767382 -3.16384e-16 -0.64119 N1 0.727532 0.37029 -0.577566 N2 0.359682 0.323804 -0.875089 - txt003 -STRI - V0 -2.95833 0 1.98958 V1 -2.93676 0.125 1.98256 V2 -2.97778 0.125 1.8 - N0 -0.882353 0 0.470588 N1 -0.810111 0.385772 0.441476 N2 -0.923077 0.384615 -1.1396e-16 - txt003 -STRI - V0 -2.97778 0.125 1.8 V1 -3 0 1.8 V2 -2.95833 0 1.98958 - N0 -0.923077 0.384615 -1.1396e-16 N1 -1 0 0 N2 -0.882353 0 0.470588 - txt003 -STRI - V0 -2.93676 0.125 1.98256 V1 -2.88284 0.2 1.96501 V2 -2.92222 0.2 1.8 - N0 -0.810111 0.385772 0.441476 N1 -0.519903 0.799556 0.300684 N2 -0.6 0.8 -3.10757e-16 - txt003 -STRI - V0 -2.92222 0.2 1.8 V1 -2.97778 0.125 1.8 V2 -2.93676 0.125 1.98256 - N0 -0.6 0.8 -3.10757e-16 N1 -0.923077 0.384615 -1.1396e-16 N2 -0.810111 0.385772 0.441476 - txt003 -STRI - V0 -2.88284 0.2 1.96501 V1 -2.81273 0.225 1.94219 V2 -2.85 0.225 1.8 - N0 -0.519903 0.799556 0.300684 N1 -3.3285e-17 1 -1.02253e-16 N2 -2.13041e-31 1 -1.23358e-16 - txt003 -STRI - V0 -2.85 0.225 1.8 V1 -2.92222 0.2 1.8 V2 -2.88284 0.2 1.96501 - N0 -2.13041e-31 1 -1.23358e-16 N1 -0.6 0.8 -3.10757e-16 N2 -0.519903 0.799556 0.300684 - txt003 -STRI - V0 -2.81273 0.225 1.94219 V1 -2.74263 0.2 1.91937 V2 -2.77778 0.2 1.8 - N0 -3.3285e-17 1 -1.02253e-16 N1 0.497152 0.792374 -0.35353 N2 0.6 0.8 8.24322e-16 - txt003 -STRI - V0 -2.77778 0.2 1.8 V1 -2.85 0.225 1.8 V2 -2.81273 0.225 1.94219 - N0 0.6 0.8 8.24322e-16 N1 -2.13041e-31 1 -1.23358e-16 N2 -3.3285e-17 1 -1.02253e-16 - txt003 -STRI - V0 -2.74263 0.2 1.91937 V1 -2.6887 0.125 1.90181 V2 -2.72222 0.125 1.8 - N0 0.497152 0.792374 -0.35353 N1 0.727532 0.37029 -0.577566 N2 0.923077 0.384615 2.05733e-15 - txt003 -STRI - V0 -2.72222 0.125 1.8 V1 -2.77778 0.2 1.8 V2 -2.74263 0.2 1.91937 - N0 0.923077 0.384615 2.05733e-15 N1 0.6 0.8 8.24322e-16 N2 0.497152 0.792374 -0.35353 - txt003 -STRI - V0 -2.6887 0.125 1.90181 V1 -2.66713 0 1.89479 V2 -2.7 0 1.8 - N0 0.727532 0.37029 -0.577566 N1 0.767382 -3.16384e-16 -0.64119 N2 1 4.93432e-16 2.63164e-15 - txt003 -STRI - V0 -2.7 0 1.8 V1 -2.72222 0.125 1.8 V2 -2.6887 0.125 1.90181 - N0 1 4.93432e-16 2.63164e-15 N1 0.923077 0.384615 2.05733e-15 N2 0.727532 0.37029 -0.577566 - txt003 -STRI - V0 -2.7 0 1.8 V1 -2.72222 -0.125 1.8 V2 -2.70418 -0.125 1.66398 - N0 1 0 0 N1 0.923077 -0.384615 0 N2 0.895972 -0.38623 0.219226 - txt003 -STRI - V0 -2.70418 -0.125 1.66398 V1 -2.68287 0 1.67083 V2 -2.7 0 1.8 - N0 0.895972 -0.38623 0.219226 N1 0.972045 0 0.234794 N2 1 0 0 - txt003 -STRI - V0 -2.72222 -0.125 1.8 V1 -2.77778 -0.2 1.8 V2 -2.75747 -0.2 1.64684 - N0 0.923077 -0.384615 0 N1 0.6 -0.8 0 N2 0.57987 -0.801541 0.145888 - txt003 -STRI - V0 -2.75747 -0.2 1.64684 V1 -2.70418 -0.125 1.66398 V2 -2.72222 -0.125 1.8 - N0 0.57987 -0.801541 0.145888 N1 0.895972 -0.38623 0.219226 N2 0.923077 -0.384615 0 - txt003 -STRI - V0 -2.77778 -0.2 1.8 V1 -2.85 -0.225 1.8 V2 -2.82674 -0.225 1.62457 - N0 0.6 -0.8 0 N1 -0 -1 -0 N2 9.48478e-19 -1 -2.94924e-18 - txt003 -STRI - V0 -2.82674 -0.225 1.62457 V1 -2.75747 -0.2 1.64684 V2 -2.77778 -0.2 1.8 - N0 9.48478e-19 -1 -2.94924e-18 N1 0.57987 -0.801541 0.145888 N2 0.6 -0.8 0 - txt003 -STRI - V0 -2.85 -0.225 1.8 V1 -2.92222 -0.2 1.8 V2 -2.896 -0.2 1.60229 - N0 -0 -1 -0 N1 -0.6 -0.8 -0 N2 -0.577707 -0.801752 -0.153129 - txt003 -STRI - V0 -2.896 -0.2 1.60229 V1 -2.82674 -0.225 1.62457 V2 -2.85 -0.225 1.8 - N0 -0.577707 -0.801752 -0.153129 N1 9.48478e-19 -1 -2.94924e-18 N2 -0 -1 -0 - txt003 -STRI - V0 -2.92222 -0.2 1.8 V1 -2.97778 -0.125 1.8 V2 -2.94929 -0.125 1.58515 - N0 -0.6 -0.8 -0 N1 -0.923077 -0.384615 -0 N2 -0.890548 -0.386679 -0.23959 - txt003 -STRI - V0 -2.94929 -0.125 1.58515 V1 -2.896 -0.2 1.60229 V2 -2.92222 -0.2 1.8 - N0 -0.890548 -0.386679 -0.23959 N1 -0.577707 -0.801752 -0.153129 N2 -0.6 -0.8 -0 - txt003 -STRI - V0 -2.97778 -0.125 1.8 V1 -3 0 1.8 V2 -2.9706 0 1.5783 - N0 -0.923077 -0.384615 -0 N1 -1 -9.86865e-16 -0 N2 -0.965311 -7.59377e-16 -0.261102 - txt003 -STRI - V0 -2.9706 0 1.5783 V1 -2.94929 -0.125 1.58515 V2 -2.97778 -0.125 1.8 - N0 -0.965311 -7.59377e-16 -0.261102 N1 -0.890548 -0.386679 -0.23959 N2 -0.923077 -0.384615 -0 - txt003 -STRI - V0 -2.68287 0 1.67083 V1 -2.70418 -0.125 1.66398 V2 -2.64829 -0.125 1.50535 - N0 0.972045 0 0.234794 N1 0.895972 -0.38623 0.219226 N2 0.842942 -0.376421 0.38439 - txt003 -STRI - V0 -2.64829 -0.125 1.50535 V1 -2.62963 0 1.51667 V2 -2.68287 0 1.67083 - N0 0.842942 -0.376421 0.38439 N1 0.913812 0 0.406138 N2 0.972045 0 0.234794 - txt003 -STRI - V0 -2.70418 -0.125 1.66398 V1 -2.75747 -0.2 1.64684 V2 -2.69492 -0.2 1.47706 - N0 0.895972 -0.38623 0.219226 N1 0.57987 -0.801541 0.145888 N2 0.548194 -0.793356 0.264707 - txt003 -STRI - V0 -2.69492 -0.2 1.47706 V1 -2.64829 -0.125 1.50535 V2 -2.70418 -0.125 1.66398 - N0 0.548194 -0.793356 0.264707 N1 0.842942 -0.376421 0.38439 N2 0.895972 -0.38623 0.219226 - txt003 -STRI - V0 -2.75747 -0.2 1.64684 V1 -2.82674 -0.225 1.62457 V2 -2.75556 -0.225 1.44028 - N0 0.57987 -0.801541 0.145888 N1 9.48478e-19 -1 -2.94924e-18 N2 5.73642e-18 -1 -9.4564e-18 - txt003 -STRI - V0 -2.75556 -0.225 1.44028 V1 -2.69492 -0.2 1.47706 V2 -2.75747 -0.2 1.64684 - N0 5.73642e-18 -1 -9.4564e-18 N1 0.548194 -0.793356 0.264707 N2 0.57987 -0.801541 0.145888 - txt003 -STRI - V0 -2.82674 -0.225 1.62457 V1 -2.896 -0.2 1.60229 V2 -2.81619 -0.2 1.4035 - N0 9.48478e-19 -1 -2.94924e-18 N1 -0.577707 -0.801752 -0.153129 N2 -0.534196 -0.794341 -0.289235 - txt003 -STRI - V0 -2.81619 -0.2 1.4035 V1 -2.75556 -0.225 1.44028 V2 -2.82674 -0.225 1.62457 - N0 -0.534196 -0.794341 -0.289235 N1 5.73642e-18 -1 -9.4564e-18 N2 9.48478e-19 -1 -2.94924e-18 - txt003 -STRI - V0 -2.896 -0.2 1.60229 V1 -2.94929 -0.125 1.58515 V2 -2.86283 -0.125 1.37521 - N0 -0.577707 -0.801752 -0.153129 N1 -0.890548 -0.386679 -0.23959 N2 -0.807437 -0.378466 -0.452558 - txt003 -STRI - V0 -2.86283 -0.125 1.37521 V1 -2.81619 -0.2 1.4035 V2 -2.896 -0.2 1.60229 - N0 -0.807437 -0.378466 -0.452558 N1 -0.534196 -0.794341 -0.289235 N2 -0.577707 -0.801752 -0.153129 - txt003 -STRI - V0 -2.94929 -0.125 1.58515 V1 -2.9706 0 1.5783 V2 -2.88148 0 1.36389 - N0 -0.890548 -0.386679 -0.23959 N1 -0.965311 -7.59377e-16 -0.261102 N2 -0.869653 -7.07402e-16 -0.493664 - txt003 -STRI - V0 -2.88148 0 1.36389 V1 -2.86283 -0.125 1.37521 V2 -2.94929 -0.125 1.58515 - N0 -0.869653 -7.07402e-16 -0.493664 N1 -0.807437 -0.378466 -0.452558 N2 -0.890548 -0.386679 -0.23959 - txt003 -STRI - V0 -2.62963 0 1.51667 V1 -2.64829 -0.125 1.50535 V2 -2.55185 -0.125 1.33576 - N0 0.913812 0 0.406138 N1 0.842942 -0.376421 0.38439 N2 0.772293 -0.349434 0.530527 - txt003 -STRI - V0 -2.55185 -0.125 1.33576 V1 -2.5375 0 1.35 V2 -2.62963 0 1.51667 - N0 0.772293 -0.349434 0.530527 N1 0.83205 0 0.5547 N2 0.913812 0 0.406138 - txt003 -STRI - V0 -2.64829 -0.125 1.50535 V1 -2.69492 -0.2 1.47706 V2 -2.58773 -0.2 1.30017 - N0 0.842942 -0.376421 0.38439 N1 0.548194 -0.793356 0.264707 N2 0.515846 -0.768155 0.379264 - txt003 -STRI - V0 -2.58773 -0.2 1.30017 V1 -2.55185 -0.125 1.33576 V2 -2.64829 -0.125 1.50535 - N0 0.515846 -0.768155 0.379264 N1 0.772293 -0.349434 0.530527 N2 0.842942 -0.376421 0.38439 - txt003 -STRI - V0 -2.69492 -0.2 1.47706 V1 -2.75556 -0.225 1.44028 V2 -2.63437 -0.225 1.25391 - N0 0.548194 -0.793356 0.264707 N1 5.73642e-18 -1 -9.4564e-18 N2 1.5603e-17 -1 -1.57299e-17 - txt003 -STRI - V0 -2.63437 -0.225 1.25391 V1 -2.58773 -0.2 1.30017 V2 -2.69492 -0.2 1.47706 - N0 1.5603e-17 -1 -1.57299e-17 N1 0.515846 -0.768155 0.379264 N2 0.548194 -0.793356 0.264707 - txt003 -STRI - V0 -2.75556 -0.225 1.44028 V1 -2.81619 -0.2 1.4035 V2 -2.68102 -0.2 1.20764 - N0 5.73642e-18 -1 -9.4564e-18 N1 -0.534196 -0.794341 -0.289235 N2 -0.486433 -0.770599 -0.411777 - txt003 -STRI - V0 -2.68102 -0.2 1.20764 V1 -2.63437 -0.225 1.25391 V2 -2.75556 -0.225 1.44028 - N0 -0.486433 -0.770599 -0.411777 N1 1.5603e-17 -1 -1.57299e-17 N2 5.73642e-18 -1 -9.4564e-18 - txt003 -STRI - V0 -2.81619 -0.2 1.4035 V1 -2.86283 -0.125 1.37521 V2 -2.7169 -0.125 1.17205 - N0 -0.534196 -0.794341 -0.289235 N1 -0.807437 -0.378466 -0.452558 N2 -0.700515 -0.35392 -0.619694 - txt003 -STRI - V0 -2.7169 -0.125 1.17205 V1 -2.68102 -0.2 1.20764 V2 -2.81619 -0.2 1.4035 - N0 -0.700515 -0.35392 -0.619694 N1 -0.486433 -0.770599 -0.411777 N2 -0.534196 -0.794341 -0.289235 - txt003 -STRI - V0 -2.86283 -0.125 1.37521 V1 -2.88148 0 1.36389 V2 -2.73125 0 1.15781 - N0 -0.807437 -0.378466 -0.452558 N1 -0.869653 -7.07402e-16 -0.493664 N2 -0.743581 -2.38916e-16 -0.668646 - txt003 -STRI - V0 -2.73125 0 1.15781 V1 -2.7169 -0.125 1.17205 V2 -2.86283 -0.125 1.37521 - N0 -0.743581 -2.38916e-16 -0.668646 N1 -0.700515 -0.35392 -0.619694 N2 -0.807437 -0.378466 -0.452558 - txt003 -STRI - V0 -2.5375 0 1.35 V1 -2.55185 -0.125 1.33576 V2 -2.41221 -0.125 1.16687 - N0 0.83205 0 0.5547 N1 0.772293 -0.349434 0.530527 N2 0.676612 -0.31353 0.666255 - txt003 -STRI - V0 -2.41221 -0.125 1.16687 V1 -2.4037 0 1.18333 V2 -2.5375 0 1.35 - N0 0.676612 -0.31353 0.666255 N1 0.722374 0 0.691503 N2 0.83205 0 0.5547 - txt003 -STRI - V0 -2.55185 -0.125 1.33576 V1 -2.58773 -0.2 1.30017 V2 -2.43347 -0.2 1.12572 - N0 0.772293 -0.349434 0.530527 N1 0.515846 -0.768155 0.379264 N2 0.471519 -0.729692 0.495195 - txt003 -STRI - V0 -2.43347 -0.2 1.12572 V1 -2.41221 -0.125 1.16687 V2 -2.55185 -0.125 1.33576 - N0 0.471519 -0.729692 0.495195 N1 0.676612 -0.31353 0.666255 N2 0.772293 -0.349434 0.530527 - txt003 -STRI - V0 -2.58773 -0.2 1.30017 V1 -2.63437 -0.225 1.25391 V2 -2.46111 -0.225 1.07222 - N0 0.515846 -0.768155 0.379264 N1 1.5603e-17 -1 -1.57299e-17 N2 3.17396e-17 -1 -1.63988e-17 - txt003 -STRI - V0 -2.46111 -0.225 1.07222 V1 -2.43347 -0.2 1.12572 V2 -2.58773 -0.2 1.30017 - N0 3.17396e-17 -1 -1.63988e-17 N1 0.471519 -0.729692 0.495195 N2 0.515846 -0.768155 0.379264 - txt003 -STRI - V0 -2.63437 -0.225 1.25391 V1 -2.68102 -0.2 1.20764 V2 -2.48875 -0.2 1.01872 - N0 1.5603e-17 -1 -1.57299e-17 N1 -0.486433 -0.770599 -0.411777 N2 -0.433172 -0.735531 -0.520919 - txt003 -STRI - V0 -2.48875 -0.2 1.01872 V1 -2.46111 -0.225 1.07222 V2 -2.63437 -0.225 1.25391 - N0 -0.433172 -0.735531 -0.520919 N1 3.17396e-17 -1 -1.63988e-17 N2 1.5603e-17 -1 -1.57299e-17 - txt003 -STRI - V0 -2.68102 -0.2 1.20764 V1 -2.7169 -0.125 1.17205 V2 -2.51001 -0.125 0.977572 - N0 -0.486433 -0.770599 -0.411777 N1 -0.700515 -0.35392 -0.619694 N2 -0.589822 -0.322549 -0.740319 - txt003 -STRI - V0 -2.51001 -0.125 0.977572 V1 -2.48875 -0.2 1.01872 V2 -2.68102 -0.2 1.20764 - N0 -0.589822 -0.322549 -0.740319 N1 -0.433172 -0.735531 -0.520919 N2 -0.486433 -0.770599 -0.411777 - txt003 -STRI - V0 -2.7169 -0.125 1.17205 V1 -2.73125 0 1.15781 V2 -2.51852 0 0.961111 - N0 -0.700515 -0.35392 -0.619694 N1 -0.743581 -2.38916e-16 -0.668646 N2 -0.617031 -2.64751e-17 -0.786939 - txt003 -STRI - V0 -2.51852 0 0.961111 V1 -2.51001 -0.125 0.977572 V2 -2.7169 -0.125 1.17205 - N0 -0.617031 -2.64751e-17 -0.786939 N1 -0.589822 -0.322549 -0.740319 N2 -0.700515 -0.35392 -0.619694 - txt003 -STRI - V0 -2.4037 0 1.18333 V1 -2.41221 -0.125 1.16687 V2 -2.22668 -0.125 1.01033 - N0 0.722374 0 0.691503 N1 0.676612 -0.31353 0.666255 N2 0.548733 -0.289562 0.784249 - txt003 -STRI - V0 -2.22668 -0.125 1.01033 V1 -2.22546 0 1.02917 V2 -2.4037 0 1.18333 - N0 0.548733 -0.289562 0.784249 N1 0.580973 0 0.813923 N2 0.722374 0 0.691503 - txt003 -STRI - V0 -2.41221 -0.125 1.16687 V1 -2.43347 -0.2 1.12572 V2 -2.22972 -0.2 0.963227 - N0 0.676612 -0.31353 0.666255 N1 0.471519 -0.729692 0.495195 N2 0.396971 -0.700023 0.593618 - txt003 -STRI - V0 -2.22972 -0.2 0.963227 V1 -2.22668 -0.125 1.01033 V2 -2.41221 -0.125 1.16687 - N0 0.396971 -0.700023 0.593618 N1 0.548733 -0.289562 0.784249 N2 0.676612 -0.31353 0.666255 - txt003 -STRI - V0 -2.43347 -0.2 1.12572 V1 -2.46111 -0.225 1.07222 V2 -2.23368 -0.225 0.901997 - N0 0.471519 -0.729692 0.495195 N1 3.17396e-17 -1 -1.63988e-17 N2 5.4409e-17 -1 -3.51585e-18 - txt003 -STRI - V0 -2.23368 -0.225 0.901997 V1 -2.22972 -0.2 0.963227 V2 -2.43347 -0.2 1.12572 - N0 5.4409e-17 -1 -3.51585e-18 N1 0.396971 -0.700023 0.593618 N2 0.471519 -0.729692 0.495195 - txt003 -STRI - V0 -2.46111 -0.225 1.07222 V1 -2.48875 -0.2 1.01872 V2 -2.23764 -0.2 0.840766 - N0 3.17396e-17 -1 -1.63988e-17 N1 -0.433172 -0.735531 -0.520919 N2 -0.367048 -0.708353 -0.60292 - txt003 -STRI - V0 -2.23764 -0.2 0.840766 V1 -2.23368 -0.225 0.901997 V2 -2.46111 -0.225 1.07222 - N0 -0.367048 -0.708353 -0.60292 N1 5.4409e-17 -1 -3.51585e-18 N2 3.17396e-17 -1 -1.63988e-17 - txt003 -STRI - V0 -2.48875 -0.2 1.01872 V1 -2.51001 -0.125 0.977572 V2 -2.24068 -0.125 0.793666 - N0 -0.433172 -0.735531 -0.520919 N1 -0.589822 -0.322549 -0.740319 N2 -0.485318 -0.301052 -0.820874 - txt003 -STRI - V0 -2.24068 -0.125 0.793666 V1 -2.23764 -0.2 0.840766 V2 -2.48875 -0.2 1.01872 - N0 -0.485318 -0.301052 -0.820874 N1 -0.367048 -0.708353 -0.60292 N2 -0.433172 -0.735531 -0.520919 - txt003 -STRI - V0 -2.51001 -0.125 0.977572 V1 -2.51852 0 0.961111 V2 -2.2419 0 0.774826 - N0 -0.589822 -0.322549 -0.740319 N1 -0.617031 -2.64751e-17 -0.786939 N2 -0.504836 2.02979e-16 -0.863216 - txt003 -STRI - V0 -2.2419 0 0.774826 V1 -2.24068 -0.125 0.793666 V2 -2.51001 -0.125 0.977572 - N0 -0.504836 2.02979e-16 -0.863216 N1 -0.485318 -0.301052 -0.820874 N2 -0.589822 -0.322549 -0.740319 - txt003 -STRI - V0 -2.22546 0 1.02917 V1 -2.22668 -0.125 1.01033 V2 -1.99259 -0.125 0.877778 - N0 0.580973 0 0.813923 N1 0.548733 -0.289562 0.784249 N2 0.390503 -0.30734 0.867784 - txt003 -STRI - V0 -1.99259 -0.125 0.877778 V1 -2 0 0.9 V2 -2.22546 0 1.02917 - N0 0.390503 -0.30734 0.867784 N1 0.410365 0 0.911922 N2 0.580973 0 0.813923 - txt003 -STRI - V0 -2.22668 -0.125 1.01033 V1 -2.22972 -0.2 0.963227 V2 -1.97407 -0.2 0.822222 - N0 0.548733 -0.289562 0.784249 N1 0.396971 -0.700023 0.593618 N2 0.285351 -0.718662 0.634113 - txt003 -STRI - V0 -1.97407 -0.2 0.822222 V1 -1.99259 -0.125 0.877778 V2 -2.22668 -0.125 1.01033 - N0 0.285351 -0.718662 0.634113 N1 0.390503 -0.30734 0.867784 N2 0.548733 -0.289562 0.784249 - txt003 -STRI - V0 -2.22972 -0.2 0.963227 V1 -2.23368 -0.225 0.901997 V2 -1.95 -0.225 0.75 - N0 0.396971 -0.700023 0.593618 N1 5.4409e-17 -1 -3.51585e-18 N2 7.83687e-17 -1 2.61229e-17 - txt003 -STRI - V0 -1.95 -0.225 0.75 V1 -1.97407 -0.2 0.822222 V2 -2.22972 -0.2 0.963227 - N0 7.83687e-17 -1 2.61229e-17 N1 0.285351 -0.718662 0.634113 N2 0.396971 -0.700023 0.593618 - txt003 -STRI - V0 -2.23368 -0.225 0.901997 V1 -2.23764 -0.2 0.840766 V2 -1.92593 -0.2 0.677778 - N0 5.4409e-17 -1 -3.51585e-18 N1 -0.367048 -0.708353 -0.60292 N2 -0.285351 -0.718662 -0.634113 - txt003 -STRI - V0 -1.92593 -0.2 0.677778 V1 -1.95 -0.225 0.75 V2 -2.23368 -0.225 0.901997 - N0 -0.285351 -0.718662 -0.634113 N1 7.83687e-17 -1 2.61229e-17 N2 5.4409e-17 -1 -3.51585e-18 - txt003 -STRI - V0 -2.23764 -0.2 0.840766 V1 -2.24068 -0.125 0.793666 V2 -1.90741 -0.125 0.622222 - N0 -0.367048 -0.708353 -0.60292 N1 -0.485318 -0.301052 -0.820874 N2 -0.390503 -0.30734 -0.867784 - txt003 -STRI - V0 -1.90741 -0.125 0.622222 V1 -1.92593 -0.2 0.677778 V2 -2.23764 -0.2 0.840766 - N0 -0.390503 -0.30734 -0.867784 N1 -0.285351 -0.718662 -0.634113 N2 -0.367048 -0.708353 -0.60292 - txt003 -STRI - V0 -2.24068 -0.125 0.793666 V1 -2.2419 0 0.774826 V2 -1.9 0 0.6 - N0 -0.485318 -0.301052 -0.820874 N1 -0.504836 2.02979e-16 -0.863216 N2 -0.410365 4.49972e-17 -0.911922 - txt003 -STRI - V0 -1.9 0 0.6 V1 -1.90741 -0.125 0.622222 V2 -2.24068 -0.125 0.793666 - N0 -0.410365 4.49972e-17 -0.911922 N1 -0.390503 -0.30734 -0.867784 N2 -0.485318 -0.301052 -0.820874 - txt003 -STRI - V0 -3 0 1.8 V1 -2.97778 0.125 1.8 V2 -2.94929 0.125 1.58515 - N0 -1 0 0 N1 -0.923077 0.384615 0 N2 -0.890548 0.386679 -0.23959 - txt003 -STRI - V0 -2.94929 0.125 1.58515 V1 -2.9706 0 1.5783 V2 -3 0 1.8 - N0 -0.890548 0.386679 -0.23959 N1 -0.965311 0 -0.261102 N2 -1 0 0 - txt003 -STRI - V0 -2.97778 0.125 1.8 V1 -2.92222 0.2 1.8 V2 -2.896 0.2 1.60229 - N0 -0.923077 0.384615 0 N1 -0.6 0.8 0 N2 -0.577707 0.801752 -0.153129 - txt003 -STRI - V0 -2.896 0.2 1.60229 V1 -2.94929 0.125 1.58515 V2 -2.97778 0.125 1.8 - N0 -0.577707 0.801752 -0.153129 N1 -0.890548 0.386679 -0.23959 N2 -0.923077 0.384615 0 - txt003 -STRI - V0 -2.92222 0.2 1.8 V1 -2.85 0.225 1.8 V2 -2.82674 0.225 1.62457 - N0 -0.6 0.8 0 N1 -0 1 0 N2 9.48478e-19 1 -2.94924e-18 - txt003 -STRI - V0 -2.82674 0.225 1.62457 V1 -2.896 0.2 1.60229 V2 -2.92222 0.2 1.8 - N0 9.48478e-19 1 -2.94924e-18 N1 -0.577707 0.801752 -0.153129 N2 -0.6 0.8 0 - txt003 -STRI - V0 -2.85 0.225 1.8 V1 -2.77778 0.2 1.8 V2 -2.75747 0.2 1.64684 - N0 -0 1 0 N1 0.6 0.8 0 N2 0.57987 0.801541 0.145888 - txt003 -STRI - V0 -2.75747 0.2 1.64684 V1 -2.82674 0.225 1.62457 V2 -2.85 0.225 1.8 - N0 0.57987 0.801541 0.145888 N1 9.48478e-19 1 -2.94924e-18 N2 -0 1 0 - txt003 -STRI - V0 -2.77778 0.2 1.8 V1 -2.72222 0.125 1.8 V2 -2.70418 0.125 1.66398 - N0 0.6 0.8 0 N1 0.923077 0.384615 0 N2 0.895972 0.38623 0.219226 - txt003 -STRI - V0 -2.70418 0.125 1.66398 V1 -2.75747 0.2 1.64684 V2 -2.77778 0.2 1.8 - N0 0.895972 0.38623 0.219226 N1 0.57987 0.801541 0.145888 N2 0.6 0.8 0 - txt003 -STRI - V0 -2.72222 0.125 1.8 V1 -2.7 0 1.8 V2 -2.68287 0 1.67083 - N0 0.923077 0.384615 0 N1 1 9.86865e-16 0 N2 0.972045 1.13306e-15 0.234794 - txt003 -STRI - V0 -2.68287 0 1.67083 V1 -2.70418 0.125 1.66398 V2 -2.72222 0.125 1.8 - N0 0.972045 1.13306e-15 0.234794 N1 0.895972 0.38623 0.219226 N2 0.923077 0.384615 0 - txt003 -STRI - V0 -2.9706 0 1.5783 V1 -2.94929 0.125 1.58515 V2 -2.86283 0.125 1.37521 - N0 -0.965311 0 -0.261102 N1 -0.890548 0.386679 -0.23959 N2 -0.807437 0.378466 -0.452558 - txt003 -STRI - V0 -2.86283 0.125 1.37521 V1 -2.88148 0 1.36389 V2 -2.9706 0 1.5783 - N0 -0.807437 0.378466 -0.452558 N1 -0.869653 0 -0.493664 N2 -0.965311 0 -0.261102 - txt003 -STRI - V0 -2.94929 0.125 1.58515 V1 -2.896 0.2 1.60229 V2 -2.81619 0.2 1.4035 - N0 -0.890548 0.386679 -0.23959 N1 -0.577707 0.801752 -0.153129 N2 -0.534196 0.794341 -0.289235 - txt003 -STRI - V0 -2.81619 0.2 1.4035 V1 -2.86283 0.125 1.37521 V2 -2.94929 0.125 1.58515 - N0 -0.534196 0.794341 -0.289235 N1 -0.807437 0.378466 -0.452558 N2 -0.890548 0.386679 -0.23959 - txt003 -STRI - V0 -2.896 0.2 1.60229 V1 -2.82674 0.225 1.62457 V2 -2.75556 0.225 1.44028 - N0 -0.577707 0.801752 -0.153129 N1 9.48478e-19 1 -2.94924e-18 N2 5.73642e-18 1 -9.4564e-18 - txt003 -STRI - V0 -2.75556 0.225 1.44028 V1 -2.81619 0.2 1.4035 V2 -2.896 0.2 1.60229 - N0 5.73642e-18 1 -9.4564e-18 N1 -0.534196 0.794341 -0.289235 N2 -0.577707 0.801752 -0.153129 - txt003 -STRI - V0 -2.82674 0.225 1.62457 V1 -2.75747 0.2 1.64684 V2 -2.69492 0.2 1.47706 - N0 9.48478e-19 1 -2.94924e-18 N1 0.57987 0.801541 0.145888 N2 0.548194 0.793356 0.264707 - txt003 -STRI - V0 -2.69492 0.2 1.47706 V1 -2.75556 0.225 1.44028 V2 -2.82674 0.225 1.62457 - N0 0.548194 0.793356 0.264707 N1 5.73642e-18 1 -9.4564e-18 N2 9.48478e-19 1 -2.94924e-18 - txt003 -STRI - V0 -2.75747 0.2 1.64684 V1 -2.70418 0.125 1.66398 V2 -2.64829 0.125 1.50535 - N0 0.57987 0.801541 0.145888 N1 0.895972 0.38623 0.219226 N2 0.842942 0.376421 0.38439 - txt003 -STRI - V0 -2.64829 0.125 1.50535 V1 -2.69492 0.2 1.47706 V2 -2.75747 0.2 1.64684 - N0 0.842942 0.376421 0.38439 N1 0.548194 0.793356 0.264707 N2 0.57987 0.801541 0.145888 - txt003 -STRI - V0 -2.70418 0.125 1.66398 V1 -2.68287 0 1.67083 V2 -2.62963 0 1.51667 - N0 0.895972 0.38623 0.219226 N1 0.972045 1.13306e-15 0.234794 N2 0.913812 1.42786e-15 0.406138 - txt003 -STRI - V0 -2.62963 0 1.51667 V1 -2.64829 0.125 1.50535 V2 -2.70418 0.125 1.66398 - N0 0.913812 1.42786e-15 0.406138 N1 0.842942 0.376421 0.38439 N2 0.895972 0.38623 0.219226 - txt003 -STRI - V0 -2.88148 0 1.36389 V1 -2.86283 0.125 1.37521 V2 -2.7169 0.125 1.17205 - N0 -0.869653 0 -0.493664 N1 -0.807437 0.378466 -0.452558 N2 -0.700515 0.35392 -0.619694 - txt003 -STRI - V0 -2.7169 0.125 1.17205 V1 -2.73125 0 1.15781 V2 -2.88148 0 1.36389 - N0 -0.700515 0.35392 -0.619694 N1 -0.743581 0 -0.668646 N2 -0.869653 0 -0.493664 - txt003 -STRI - V0 -2.86283 0.125 1.37521 V1 -2.81619 0.2 1.4035 V2 -2.68102 0.2 1.20764 - N0 -0.807437 0.378466 -0.452558 N1 -0.534196 0.794341 -0.289235 N2 -0.486433 0.770599 -0.411777 - txt003 -STRI - V0 -2.68102 0.2 1.20764 V1 -2.7169 0.125 1.17205 V2 -2.86283 0.125 1.37521 - N0 -0.486433 0.770599 -0.411777 N1 -0.700515 0.35392 -0.619694 N2 -0.807437 0.378466 -0.452558 - txt003 -STRI - V0 -2.81619 0.2 1.4035 V1 -2.75556 0.225 1.44028 V2 -2.63437 0.225 1.25391 - N0 -0.534196 0.794341 -0.289235 N1 5.73642e-18 1 -9.4564e-18 N2 1.5603e-17 1 -1.57299e-17 - txt003 -STRI - V0 -2.63437 0.225 1.25391 V1 -2.68102 0.2 1.20764 V2 -2.81619 0.2 1.4035 - N0 1.5603e-17 1 -1.57299e-17 N1 -0.486433 0.770599 -0.411777 N2 -0.534196 0.794341 -0.289235 - txt003 -STRI - V0 -2.75556 0.225 1.44028 V1 -2.69492 0.2 1.47706 V2 -2.58773 0.2 1.30017 - N0 5.73642e-18 1 -9.4564e-18 N1 0.548194 0.793356 0.264707 N2 0.515846 0.768155 0.379264 - txt003 -STRI - V0 -2.58773 0.2 1.30017 V1 -2.63437 0.225 1.25391 V2 -2.75556 0.225 1.44028 - N0 0.515846 0.768155 0.379264 N1 1.5603e-17 1 -1.57299e-17 N2 5.73642e-18 1 -9.4564e-18 - txt003 -STRI - V0 -2.69492 0.2 1.47706 V1 -2.64829 0.125 1.50535 V2 -2.55185 0.125 1.33576 - N0 0.548194 0.793356 0.264707 N1 0.842942 0.376421 0.38439 N2 0.772293 0.349434 0.530527 - txt003 -STRI - V0 -2.55185 0.125 1.33576 V1 -2.58773 0.2 1.30017 V2 -2.69492 0.2 1.47706 - N0 0.772293 0.349434 0.530527 N1 0.515846 0.768155 0.379264 N2 0.548194 0.793356 0.264707 - txt003 -STRI - V0 -2.64829 0.125 1.50535 V1 -2.62963 0 1.51667 V2 -2.5375 0 1.35 - N0 0.842942 0.376421 0.38439 N1 0.913812 1.42786e-15 0.406138 N2 0.83205 1.23168e-15 0.5547 - txt003 -STRI - V0 -2.5375 0 1.35 V1 -2.55185 0.125 1.33576 V2 -2.64829 0.125 1.50535 - N0 0.83205 1.23168e-15 0.5547 N1 0.772293 0.349434 0.530527 N2 0.842942 0.376421 0.38439 - txt003 -STRI - V0 -2.73125 0 1.15781 V1 -2.7169 0.125 1.17205 V2 -2.51001 0.125 0.977572 - N0 -0.743581 0 -0.668646 N1 -0.700515 0.35392 -0.619694 N2 -0.589822 0.322549 -0.740319 - txt003 -STRI - V0 -2.51001 0.125 0.977572 V1 -2.51852 0 0.961111 V2 -2.73125 0 1.15781 - N0 -0.589822 0.322549 -0.740319 N1 -0.617031 0 -0.786939 N2 -0.743581 0 -0.668646 - txt003 -STRI - V0 -2.7169 0.125 1.17205 V1 -2.68102 0.2 1.20764 V2 -2.48875 0.2 1.01872 - N0 -0.700515 0.35392 -0.619694 N1 -0.486433 0.770599 -0.411777 N2 -0.433172 0.735531 -0.520919 - txt003 -STRI - V0 -2.48875 0.2 1.01872 V1 -2.51001 0.125 0.977572 V2 -2.7169 0.125 1.17205 - N0 -0.433172 0.735531 -0.520919 N1 -0.589822 0.322549 -0.740319 N2 -0.700515 0.35392 -0.619694 - txt003 -STRI - V0 -2.68102 0.2 1.20764 V1 -2.63437 0.225 1.25391 V2 -2.46111 0.225 1.07222 - N0 -0.486433 0.770599 -0.411777 N1 1.5603e-17 1 -1.57299e-17 N2 3.17396e-17 1 -1.63988e-17 - txt003 -STRI - V0 -2.46111 0.225 1.07222 V1 -2.48875 0.2 1.01872 V2 -2.68102 0.2 1.20764 - N0 3.17396e-17 1 -1.63988e-17 N1 -0.433172 0.735531 -0.520919 N2 -0.486433 0.770599 -0.411777 - txt003 -STRI - V0 -2.63437 0.225 1.25391 V1 -2.58773 0.2 1.30017 V2 -2.43347 0.2 1.12572 - N0 1.5603e-17 1 -1.57299e-17 N1 0.515846 0.768155 0.379264 N2 0.471519 0.729692 0.495195 - txt003 -STRI - V0 -2.43347 0.2 1.12572 V1 -2.46111 0.225 1.07222 V2 -2.63437 0.225 1.25391 - N0 0.471519 0.729692 0.495195 N1 3.17396e-17 1 -1.63988e-17 N2 1.5603e-17 1 -1.57299e-17 - txt003 -STRI - V0 -2.58773 0.2 1.30017 V1 -2.55185 0.125 1.33576 V2 -2.41221 0.125 1.16687 - N0 0.515846 0.768155 0.379264 N1 0.772293 0.349434 0.530527 N2 0.676612 0.31353 0.666255 - txt003 -STRI - V0 -2.41221 0.125 1.16687 V1 -2.43347 0.2 1.12572 V2 -2.58773 0.2 1.30017 - N0 0.676612 0.31353 0.666255 N1 0.471519 0.729692 0.495195 N2 0.515846 0.768155 0.379264 - txt003 -STRI - V0 -2.55185 0.125 1.33576 V1 -2.5375 0 1.35 V2 -2.4037 0 1.18333 - N0 0.772293 0.349434 0.530527 N1 0.83205 1.23168e-15 0.5547 N2 0.722374 1.2247e-15 0.691503 - txt003 -STRI - V0 -2.4037 0 1.18333 V1 -2.41221 0.125 1.16687 V2 -2.55185 0.125 1.33576 - N0 0.722374 1.2247e-15 0.691503 N1 0.676612 0.31353 0.666255 N2 0.772293 0.349434 0.530527 - txt003 -STRI - V0 -2.51852 0 0.961111 V1 -2.51001 0.125 0.977572 V2 -2.24068 0.125 0.793666 - N0 -0.617031 0 -0.786939 N1 -0.589822 0.322549 -0.740319 N2 -0.485318 0.301052 -0.820874 - txt003 -STRI - V0 -2.24068 0.125 0.793666 V1 -2.2419 0 0.774826 V2 -2.51852 0 0.961111 - N0 -0.485318 0.301052 -0.820874 N1 -0.504836 0 -0.863216 N2 -0.617031 0 -0.786939 - txt003 -STRI - V0 -2.51001 0.125 0.977572 V1 -2.48875 0.2 1.01872 V2 -2.23764 0.2 0.840766 - N0 -0.589822 0.322549 -0.740319 N1 -0.433172 0.735531 -0.520919 N2 -0.367048 0.708353 -0.60292 - txt003 -STRI - V0 -2.23764 0.2 0.840766 V1 -2.24068 0.125 0.793666 V2 -2.51001 0.125 0.977572 - N0 -0.367048 0.708353 -0.60292 N1 -0.485318 0.301052 -0.820874 N2 -0.589822 0.322549 -0.740319 - txt003 -STRI - V0 -2.48875 0.2 1.01872 V1 -2.46111 0.225 1.07222 V2 -2.23368 0.225 0.901997 - N0 -0.433172 0.735531 -0.520919 N1 3.17396e-17 1 -1.63988e-17 N2 5.4409e-17 1 -3.51585e-18 - txt003 -STRI - V0 -2.23368 0.225 0.901997 V1 -2.23764 0.2 0.840766 V2 -2.48875 0.2 1.01872 - N0 5.4409e-17 1 -3.51585e-18 N1 -0.367048 0.708353 -0.60292 N2 -0.433172 0.735531 -0.520919 - txt003 -STRI - V0 -2.46111 0.225 1.07222 V1 -2.43347 0.2 1.12572 V2 -2.22972 0.2 0.963227 - N0 3.17396e-17 1 -1.63988e-17 N1 0.471519 0.729692 0.495195 N2 0.396971 0.700023 0.593618 - txt003 -STRI - V0 -2.22972 0.2 0.963227 V1 -2.23368 0.225 0.901997 V2 -2.46111 0.225 1.07222 - N0 0.396971 0.700023 0.593618 N1 5.4409e-17 1 -3.51585e-18 N2 3.17396e-17 1 -1.63988e-17 - txt003 -STRI - V0 -2.43347 0.2 1.12572 V1 -2.41221 0.125 1.16687 V2 -2.22668 0.125 1.01033 - N0 0.471519 0.729692 0.495195 N1 0.676612 0.31353 0.666255 N2 0.548733 0.289562 0.784249 - txt003 -STRI - V0 -2.22668 0.125 1.01033 V1 -2.22972 0.2 0.963227 V2 -2.43347 0.2 1.12572 - N0 0.548733 0.289562 0.784249 N1 0.396971 0.700023 0.593618 N2 0.471519 0.729692 0.495195 - txt003 -STRI - V0 -2.41221 0.125 1.16687 V1 -2.4037 0 1.18333 V2 -2.22546 0 1.02917 - N0 0.676612 0.31353 0.666255 N1 0.722374 1.2247e-15 0.691503 N2 0.580973 1.1041e-15 0.813923 - txt003 -STRI - V0 -2.22546 0 1.02917 V1 -2.22668 0.125 1.01033 V2 -2.41221 0.125 1.16687 - N0 0.580973 1.1041e-15 0.813923 N1 0.548733 0.289562 0.784249 N2 0.676612 0.31353 0.666255 - txt003 -STRI - V0 -2.2419 0 0.774826 V1 -2.24068 0.125 0.793666 V2 -1.90741 0.125 0.622222 - N0 -0.504836 0 -0.863216 N1 -0.485318 0.301052 -0.820874 N2 -0.390503 0.30734 -0.867784 - txt003 -STRI - V0 -1.90741 0.125 0.622222 V1 -1.9 0 0.6 V2 -2.2419 0 0.774826 - N0 -0.390503 0.30734 -0.867784 N1 -0.410365 0 -0.911922 N2 -0.504836 0 -0.863216 - txt003 -STRI - V0 -2.24068 0.125 0.793666 V1 -2.23764 0.2 0.840766 V2 -1.92593 0.2 0.677778 - N0 -0.485318 0.301052 -0.820874 N1 -0.367048 0.708353 -0.60292 N2 -0.285351 0.718662 -0.634113 - txt003 -STRI - V0 -1.92593 0.2 0.677778 V1 -1.90741 0.125 0.622222 V2 -2.24068 0.125 0.793666 - N0 -0.285351 0.718662 -0.634113 N1 -0.390503 0.30734 -0.867784 N2 -0.485318 0.301052 -0.820874 - txt003 -STRI - V0 -2.23764 0.2 0.840766 V1 -2.23368 0.225 0.901997 V2 -1.95 0.225 0.75 - N0 -0.367048 0.708353 -0.60292 N1 5.4409e-17 1 -3.51585e-18 N2 7.83687e-17 1 2.61229e-17 - txt003 -STRI - V0 -1.95 0.225 0.75 V1 -1.92593 0.2 0.677778 V2 -2.23764 0.2 0.840766 - N0 7.83687e-17 1 2.61229e-17 N1 -0.285351 0.718662 -0.634113 N2 -0.367048 0.708353 -0.60292 - txt003 -STRI - V0 -2.23368 0.225 0.901997 V1 -2.22972 0.2 0.963227 V2 -1.97407 0.2 0.822222 - N0 5.4409e-17 1 -3.51585e-18 N1 0.396971 0.700023 0.593618 N2 0.285351 0.718662 0.634113 - txt003 -STRI - V0 -1.97407 0.2 0.822222 V1 -1.95 0.225 0.75 V2 -2.23368 0.225 0.901997 - N0 0.285351 0.718662 0.634113 N1 7.83687e-17 1 2.61229e-17 N2 5.4409e-17 1 -3.51585e-18 - txt003 -STRI - V0 -2.22972 0.2 0.963227 V1 -2.22668 0.125 1.01033 V2 -1.99259 0.125 0.877778 - N0 0.396971 0.700023 0.593618 N1 0.548733 0.289562 0.784249 N2 0.390503 0.30734 0.867784 - txt003 -STRI - V0 -1.99259 0.125 0.877778 V1 -1.97407 0.2 0.822222 V2 -2.22972 0.2 0.963227 - N0 0.390503 0.30734 0.867784 N1 0.285351 0.718662 0.634113 N2 0.396971 0.700023 0.593618 - txt003 -STRI - V0 -2.22668 0.125 1.01033 V1 -2.22546 0 1.02917 V2 -2 0 0.9 - N0 0.548733 0.289562 0.784249 N1 0.580973 1.1041e-15 0.813923 N2 0.410365 1.30492e-15 0.911922 - txt003 -STRI - V0 -2 0 0.9 V1 -1.99259 0.125 0.877778 V2 -2.22668 0.125 1.01033 - N0 0.410365 1.30492e-15 0.911922 N1 0.390503 0.30734 0.867784 N2 0.548733 0.289562 0.784249 - txt003 -STRI - V0 1.7 0 1.425 V1 1.7 -0.275 1.36389 V2 2.07238 -0.262346 1.42521 - N0 -0 0 1 N1 -0.0157732 -0.461877 0.886804 N2 -0.291732 -0.426807 0.855995 - txt003 -STRI - V0 2.07238 -0.262346 1.42521 V1 2.0588 0 1.47639 V2 1.7 0 1.425 - N0 -0.291732 -0.426807 0.855995 N1 -0.333935 0 0.942596 N2 -0 0 1 - txt003 -STRI - V0 1.7 -0.275 1.36389 V1 1.7 -0.44 1.21111 V2 2.10633 -0.419753 1.29725 - N0 -0.0157732 -0.461877 0.886804 N1 -0.0291362 -0.857129 0.514277 N2 -0.135104 -0.834377 0.534381 - txt003 -STRI - V0 2.10633 -0.419753 1.29725 V1 2.07238 -0.262346 1.42521 V2 1.7 -0.275 1.36389 - N0 -0.135104 -0.834377 0.534381 N1 -0.291732 -0.426807 0.855995 N2 -0.0157732 -0.461877 0.886804 - txt003 -STRI - V0 1.7 -0.44 1.21111 V1 1.7 -0.495 1.0125 V2 2.15046 -0.472222 1.1309 - N0 -0.0291362 -0.857129 0.514277 N1 0 -1 -0 N2 0.110195 -0.99348 0.0292376 - txt003 -STRI - V0 2.15046 -0.472222 1.1309 V1 2.10633 -0.419753 1.29725 V2 1.7 -0.44 1.21111 - N0 0.110195 -0.99348 0.0292376 N1 -0.135104 -0.834377 0.534381 N2 -0.0291362 -0.857129 0.514277 - txt003 -STRI - V0 1.7 -0.495 1.0125 V1 1.7 -0.44 0.813889 V2 2.1946 -0.419753 0.964558 - N0 0 -1 -0 N1 0.0673462 -0.855546 -0.513328 N2 0.348602 -0.814337 -0.464038 - txt003 -STRI - V0 2.1946 -0.419753 0.964558 V1 2.15046 -0.472222 1.1309 V2 1.7 -0.495 1.0125 - N0 0.348602 -0.814337 -0.464038 N1 0.110195 -0.99348 0.0292376 N2 0 -1 -0 - txt003 -STRI - V0 1.7 -0.44 0.813889 V1 1.7 -0.275 0.661111 V2 2.22855 -0.262346 0.8366 - N0 0.0673462 -0.855546 -0.513328 N1 0.134339 -0.457747 -0.878875 N2 0.492146 -0.41068 -0.767551 - txt003 -STRI - V0 2.22855 -0.262346 0.8366 V1 2.1946 -0.419753 0.964558 V2 1.7 -0.44 0.813889 - N0 0.492146 -0.41068 -0.767551 N1 0.348602 -0.814337 -0.464038 N2 0.0673462 -0.855546 -0.513328 - txt003 -STRI - V0 1.7 -0.275 0.661111 V1 1.7 0 0.6 V2 2.24213 0 0.785417 - N0 0.134339 -0.457747 -0.878875 N1 0.158678 9.39168e-16 -0.98733 N2 0.528678 6.47717e-16 -0.848822 - txt003 -STRI - V0 2.24213 0 0.785417 V1 2.22855 -0.262346 0.8366 V2 1.7 -0.275 0.661111 - N0 0.528678 6.47717e-16 -0.848822 N1 0.492146 -0.41068 -0.767551 N2 0.134339 -0.457747 -0.878875 - txt003 -STRI - V0 2.0588 0 1.47639 V1 2.07238 -0.262346 1.42521 V2 2.29012 -0.23071 1.57202 - N0 -0.333935 0 0.942596 N1 -0.291732 -0.426807 0.855995 N2 -0.64585 -0.390219 0.656206 - txt003 -STRI - V0 2.29012 -0.23071 1.57202 V1 2.27037 0 1.61111 V2 2.0588 0 1.47639 - N0 -0.64585 -0.390219 0.656206 N1 -0.731055 0 0.682318 N2 -0.333935 0 0.942596 - txt003 -STRI - V0 2.07238 -0.262346 1.42521 V1 2.10633 -0.419753 1.29725 V2 2.33951 -0.369136 1.47428 - N0 -0.291732 -0.426807 0.855995 N1 -0.135104 -0.834377 0.534381 N2 -0.312511 -0.816863 0.484842 - txt003 -STRI - V0 2.33951 -0.369136 1.47428 V1 2.29012 -0.23071 1.57202 V2 2.07238 -0.262346 1.42521 - N0 -0.312511 -0.816863 0.484842 N1 -0.64585 -0.390219 0.656206 N2 -0.291732 -0.426807 0.855995 - txt003 -STRI - V0 2.10633 -0.419753 1.29725 V1 2.15046 -0.472222 1.1309 V2 2.4037 -0.415278 1.34722 - N0 -0.135104 -0.834377 0.534381 N1 0.110195 -0.99348 0.0292376 N2 0.215359 -0.970454 0.108813 - txt003 -STRI - V0 2.4037 -0.415278 1.34722 V1 2.33951 -0.369136 1.47428 V2 2.10633 -0.419753 1.29725 - N0 0.215359 -0.970454 0.108813 N1 -0.312511 -0.816863 0.484842 N2 -0.135104 -0.834377 0.534381 - txt003 -STRI - V0 2.15046 -0.472222 1.1309 V1 2.1946 -0.419753 0.964558 V2 2.4679 -0.369136 1.22016 - N0 0.110195 -0.99348 0.0292376 N1 0.348602 -0.814337 -0.464038 N2 0.627607 -0.733748 -0.260237 - txt003 -STRI - V0 2.4679 -0.369136 1.22016 V1 2.4037 -0.415278 1.34722 V2 2.15046 -0.472222 1.1309 - N0 0.627607 -0.733748 -0.260237 N1 0.215359 -0.970454 0.108813 N2 0.110195 -0.99348 0.0292376 - txt003 -STRI - V0 2.1946 -0.419753 0.964558 V1 2.22855 -0.262346 0.8366 V2 2.51728 -0.23071 1.12243 - N0 0.348602 -0.814337 -0.464038 N1 0.492146 -0.41068 -0.767551 N2 0.813963 -0.348056 -0.465103 - txt003 -STRI - V0 2.51728 -0.23071 1.12243 V1 2.4679 -0.369136 1.22016 V2 2.1946 -0.419753 0.964558 - N0 0.813963 -0.348056 -0.465103 N1 0.627607 -0.733748 -0.260237 N2 0.348602 -0.814337 -0.464038 - txt003 -STRI - V0 2.22855 -0.262346 0.8366 V1 2.24213 0 0.785417 V2 2.53704 0 1.08333 - N0 0.492146 -0.41068 -0.767551 N1 0.528678 6.47717e-16 -0.848822 N2 0.854063 9.88017e-16 -0.52017 - txt003 -STRI - V0 2.53704 0 1.08333 V1 2.51728 -0.23071 1.12243 V2 2.22855 -0.262346 0.8366 - N0 0.854063 9.88017e-16 -0.52017 N1 0.813963 -0.348056 -0.465103 N2 0.492146 -0.41068 -0.767551 - txt003 -STRI - V0 2.27037 0 1.61111 V1 2.29012 -0.23071 1.57202 V2 2.40972 -0.189583 1.77361 - N0 -0.731055 0 0.682318 N1 -0.64585 -0.390219 0.656206 N2 -0.835237 -0.363942 0.412221 - txt003 -STRI - V0 2.40972 -0.189583 1.77361 V1 2.3875 0 1.8 V2 2.27037 0 1.61111 - N0 -0.835237 -0.363942 0.412221 N1 -0.920582 0 0.39055 N2 -0.731055 0 0.682318 - txt003 -STRI - V0 2.29012 -0.23071 1.57202 V1 2.33951 -0.369136 1.47428 V2 2.46528 -0.303333 1.70764 - N0 -0.64585 -0.390219 0.656206 N1 -0.312511 -0.816863 0.484842 N2 -0.451323 -0.803033 0.38916 - txt003 -STRI - V0 2.46528 -0.303333 1.70764 V1 2.40972 -0.189583 1.77361 V2 2.29012 -0.23071 1.57202 - N0 -0.451323 -0.803033 0.38916 N1 -0.835237 -0.363942 0.412221 N2 -0.64585 -0.390219 0.656206 - txt003 -STRI - V0 2.33951 -0.369136 1.47428 V1 2.4037 -0.415278 1.34722 V2 2.5375 -0.34125 1.62187 - N0 -0.312511 -0.816863 0.484842 N1 0.215359 -0.970454 0.108813 N2 0.214084 -0.960035 0.180281 - txt003 -STRI - V0 2.5375 -0.34125 1.62187 V1 2.46528 -0.303333 1.70764 V2 2.33951 -0.369136 1.47428 - N0 0.214084 -0.960035 0.180281 N1 -0.451323 -0.803033 0.38916 N2 -0.312511 -0.816863 0.484842 - txt003 -STRI - V0 2.4037 -0.415278 1.34722 V1 2.4679 -0.369136 1.22016 V2 2.60972 -0.303333 1.53611 - N0 0.215359 -0.970454 0.108813 N1 0.627607 -0.733748 -0.260237 N2 0.705424 -0.704198 -0.0805066 - txt003 -STRI - V0 2.60972 -0.303333 1.53611 V1 2.5375 -0.34125 1.62187 V2 2.4037 -0.415278 1.34722 - N0 0.705424 -0.704198 -0.0805066 N1 0.214084 -0.960035 0.180281 N2 0.215359 -0.970454 0.108813 - txt003 -STRI - V0 2.4679 -0.369136 1.22016 V1 2.51728 -0.23071 1.12243 V2 2.66528 -0.189583 1.47014 - N0 0.627607 -0.733748 -0.260237 N1 0.813963 -0.348056 -0.465103 N2 0.913262 -0.329186 -0.239977 - txt003 -STRI - V0 2.66528 -0.189583 1.47014 V1 2.60972 -0.303333 1.53611 V2 2.4679 -0.369136 1.22016 - N0 0.913262 -0.329186 -0.239977 N1 0.705424 -0.704198 -0.0805066 N2 0.627607 -0.733748 -0.260237 - txt003 -STRI - V0 2.51728 -0.23071 1.12243 V1 2.53704 0 1.08333 V2 2.6875 0 1.44375 - N0 0.813963 -0.348056 -0.465103 N1 0.854063 9.88017e-16 -0.52017 N2 0.957826 1.83855e-15 -0.287348 - txt003 -STRI - V0 2.6875 0 1.44375 V1 2.66528 -0.189583 1.47014 V2 2.51728 -0.23071 1.12243 - N0 0.957826 1.83855e-15 -0.287348 N1 0.913262 -0.329186 -0.239977 N2 0.813963 -0.348056 -0.465103 - txt003 -STRI - V0 2.3875 0 1.8 V1 2.40972 -0.189583 1.77361 V2 2.48765 -0.148457 1.99928 - N0 -0.920582 0 0.39055 N1 -0.835237 -0.363942 0.412221 N2 -0.842821 -0.409176 0.34961 - txt003 -STRI - V0 2.48765 -0.148457 1.99928 V1 2.46296 0 2.01389 V2 2.3875 0 1.8 - N0 -0.842821 -0.409176 0.34961 N1 -0.948683 0 0.316228 N2 -0.920582 0 0.39055 - txt003 -STRI - V0 2.40972 -0.189583 1.77361 V1 2.46528 -0.303333 1.70764 V2 2.54938 -0.237531 1.96276 - N0 -0.835237 -0.363942 0.412221 N1 -0.451323 -0.803033 0.38916 N2 -0.452673 -0.821162 0.347535 - txt003 -STRI - V0 2.54938 -0.237531 1.96276 V1 2.48765 -0.148457 1.99928 V2 2.40972 -0.189583 1.77361 - N0 -0.452673 -0.821162 0.347535 N1 -0.842821 -0.409176 0.34961 N2 -0.835237 -0.363942 0.412221 - txt003 -STRI - V0 2.46528 -0.303333 1.70764 V1 2.5375 -0.34125 1.62187 V2 2.62963 -0.267222 1.91528 - N0 -0.451323 -0.803033 0.38916 N1 0.214084 -0.960035 0.180281 N2 0.113546 -0.974822 0.191909 - txt003 -STRI - V0 2.62963 -0.267222 1.91528 V1 2.54938 -0.237531 1.96276 V2 2.46528 -0.303333 1.70764 - N0 0.113546 -0.974822 0.191909 N1 -0.452673 -0.821162 0.347535 N2 -0.451323 -0.803033 0.38916 - txt003 -STRI - V0 2.5375 -0.34125 1.62187 V1 2.60972 -0.303333 1.53611 V2 2.70988 -0.237531 1.8678 - N0 0.214084 -0.960035 0.180281 N1 0.705424 -0.704198 -0.0805066 N2 0.60461 -0.794635 -0.0547983 - txt003 -STRI - V0 2.70988 -0.237531 1.8678 V1 2.62963 -0.267222 1.91528 V2 2.5375 -0.34125 1.62187 - N0 0.60461 -0.794635 -0.0547983 N1 0.113546 -0.974822 0.191909 N2 0.214084 -0.960035 0.180281 - txt003 -STRI - V0 2.60972 -0.303333 1.53611 V1 2.66528 -0.189583 1.47014 V2 2.7716 -0.148457 1.83128 - N0 0.705424 -0.704198 -0.0805066 N1 0.913262 -0.329186 -0.239977 N2 0.880144 -0.401503 -0.253261 - txt003 -STRI - V0 2.7716 -0.148457 1.83128 V1 2.70988 -0.237531 1.8678 V2 2.60972 -0.303333 1.53611 - N0 0.880144 -0.401503 -0.253261 N1 0.60461 -0.794635 -0.0547983 N2 0.705424 -0.704198 -0.0805066 - txt003 -STRI - V0 2.66528 -0.189583 1.47014 V1 2.6875 0 1.44375 V2 2.7963 0 1.81667 - N0 0.913262 -0.329186 -0.239977 N1 0.957826 1.83855e-15 -0.287348 N2 0.947588 3.02585e-15 -0.319493 - txt003 -STRI - V0 2.7963 0 1.81667 V1 2.7716 -0.148457 1.83128 V2 2.66528 -0.189583 1.47014 - N0 0.947588 3.02585e-15 -0.319493 N1 0.880144 -0.401503 -0.253261 N2 0.913262 -0.329186 -0.239977 - txt003 -STRI - V0 2.46296 0 2.01389 V1 2.48765 -0.148457 1.99928 V2 2.5804 -0.116821 2.21831 - N0 -0.948683 0 0.316228 N1 -0.842821 -0.409176 0.34961 N2 -0.723795 -0.498863 0.476715 - txt003 -STRI - V0 2.5804 -0.116821 2.21831 V1 2.54954 0 2.22361 V2 2.46296 0 2.01389 - N0 -0.723795 -0.498863 0.476715 N1 -0.874591 0 0.484861 N2 -0.948683 0 0.316228 - txt003 -STRI - V0 2.48765 -0.148457 1.99928 V1 2.54938 -0.237531 1.96276 V2 2.65756 -0.186914 2.20507 - N0 -0.842821 -0.409176 0.34961 N1 -0.452673 -0.821162 0.347535 N2 -0.365378 -0.851743 0.375544 - txt003 -STRI - V0 2.65756 -0.186914 2.20507 V1 2.5804 -0.116821 2.21831 V2 2.48765 -0.148457 1.99928 - N0 -0.365378 -0.851743 0.375544 N1 -0.723795 -0.498863 0.476715 N2 -0.842821 -0.409176 0.34961 - txt003 -STRI - V0 2.54938 -0.237531 1.96276 V1 2.62963 -0.267222 1.91528 V2 2.75787 -0.210278 2.18785 - N0 -0.452673 -0.821162 0.347535 N1 0.113546 -0.974822 0.191909 N2 0.0260102 -0.988113 0.151516 - txt003 -STRI - V0 2.75787 -0.210278 2.18785 V1 2.65756 -0.186914 2.20507 V2 2.54938 -0.237531 1.96276 - N0 0.0260102 -0.988113 0.151516 N1 -0.365378 -0.851743 0.375544 N2 -0.452673 -0.821162 0.347535 - txt003 -STRI - V0 2.62963 -0.267222 1.91528 V1 2.70988 -0.237531 1.8678 V2 2.85818 -0.186914 2.17063 - N0 0.113546 -0.974822 0.191909 N1 0.60461 -0.794635 -0.0547983 N2 0.417243 -0.88974 -0.185122 - txt003 -STRI - V0 2.85818 -0.186914 2.17063 V1 2.75787 -0.210278 2.18785 V2 2.62963 -0.267222 1.91528 - N0 0.417243 -0.88974 -0.185122 N1 0.0260102 -0.988113 0.151516 N2 0.113546 -0.974822 0.191909 - txt003 -STRI - V0 2.70988 -0.237531 1.8678 V1 2.7716 -0.148457 1.83128 V2 2.93534 -0.116821 2.15738 - N0 0.60461 -0.794635 -0.0547983 N1 0.880144 -0.401503 -0.253261 N2 0.70819 -0.492319 -0.506053 - txt003 -STRI - V0 2.93534 -0.116821 2.15738 V1 2.85818 -0.186914 2.17063 V2 2.70988 -0.237531 1.8678 - N0 0.70819 -0.492319 -0.506053 N1 0.417243 -0.88974 -0.185122 N2 0.60461 -0.794635 -0.0547983 - txt003 -STRI - V0 2.7716 -0.148457 1.83128 V1 2.7963 0 1.81667 V2 2.9662 0 2.15208 - N0 0.880144 -0.401503 -0.253261 N1 0.947588 3.02585e-15 -0.319493 N2 0.787582 4.30265e-15 -0.61621 - txt003 -STRI - V0 2.9662 0 2.15208 V1 2.93534 -0.116821 2.15738 V2 2.7716 -0.148457 1.83128 - N0 0.787582 4.30265e-15 -0.61621 N1 0.70819 -0.492319 -0.506053 N2 0.880144 -0.401503 -0.253261 - txt003 -STRI - V0 2.54954 0 2.22361 V1 2.5804 -0.116821 2.21831 V2 2.74444 -0.104167 2.4 - N0 -0.874591 0 0.484861 N1 -0.723795 -0.498863 0.476715 N2 -0.497164 -0.497164 0.711095 - txt003 -STRI - V0 2.74444 -0.104167 2.4 V1 2.7 0 2.4 V2 2.54954 0 2.22361 - N0 -0.497164 -0.497164 0.711095 N1 -0.6 0 0.8 N2 -0.874591 0 0.484861 - txt003 -STRI - V0 2.5804 -0.116821 2.21831 V1 2.65756 -0.186914 2.20507 V2 2.85556 -0.166667 2.4 - N0 -0.723795 -0.498863 0.476715 N1 -0.365378 -0.851743 0.375544 N2 -0.267368 -0.855576 0.443288 - txt003 -STRI - V0 2.85556 -0.166667 2.4 V1 2.74444 -0.104167 2.4 V2 2.5804 -0.116821 2.21831 - N0 -0.267368 -0.855576 0.443288 N1 -0.497164 -0.497164 0.711095 N2 -0.723795 -0.498863 0.476715 - txt003 -STRI - V0 2.65756 -0.186914 2.20507 V1 2.75787 -0.210278 2.18785 V2 3 -0.1875 2.4 - N0 -0.365378 -0.851743 0.375544 N1 0.0260102 -0.988113 0.151516 N2 0 -1 2.19303e-16 - txt003 -STRI - V0 3 -0.1875 2.4 V1 2.85556 -0.166667 2.4 V2 2.65756 -0.186914 2.20507 - N0 0 -1 2.19303e-16 N1 -0.267368 -0.855576 0.443288 N2 -0.365378 -0.851743 0.375544 - txt003 -STRI - V0 2.75787 -0.210278 2.18785 V1 2.85818 -0.186914 2.17063 V2 3.14444 -0.166667 2.4 - N0 0.0260102 -0.988113 0.151516 N1 0.417243 -0.88974 -0.185122 N2 0.250514 -0.801644 -0.54278 - txt003 -STRI - V0 3.14444 -0.166667 2.4 V1 3 -0.1875 2.4 V2 2.75787 -0.210278 2.18785 - N0 0.250514 -0.801644 -0.54278 N1 0 -1 2.19303e-16 N2 0.0260102 -0.988113 0.151516 - txt003 -STRI - V0 2.85818 -0.186914 2.17063 V1 2.93534 -0.116821 2.15738 V2 3.25556 -0.104167 2.4 - N0 0.417243 -0.88974 -0.185122 N1 0.70819 -0.492319 -0.506053 N2 0.366221 -0.366221 -0.855433 - txt003 -STRI - V0 3.25556 -0.104167 2.4 V1 3.14444 -0.166667 2.4 V2 2.85818 -0.186914 2.17063 - N0 0.366221 -0.366221 -0.855433 N1 0.250514 -0.801644 -0.54278 N2 0.417243 -0.88974 -0.185122 - txt003 -STRI - V0 2.93534 -0.116821 2.15738 V1 2.9662 0 2.15208 V2 3.3 0 2.4 - N0 0.70819 -0.492319 -0.506053 N1 0.787582 4.30265e-15 -0.61621 N2 0.384615 6.46776e-15 -0.923077 - txt003 -STRI - V0 3.3 0 2.4 V1 3.25556 -0.104167 2.4 V2 2.93534 -0.116821 2.15738 - N0 0.384615 6.46776e-15 -0.923077 N1 0.366221 -0.366221 -0.855433 N2 0.70819 -0.492319 -0.506053 - txt003 -STRI - V0 1.7 0 0.6 V1 1.7 0.275 0.661111 V2 2.22855 0.262346 0.8366 - N0 0.158678 0 -0.98733 N1 0.134339 0.457747 -0.878875 N2 0.492146 0.41068 -0.767551 - txt003 -STRI - V0 2.22855 0.262346 0.8366 V1 2.24213 0 0.785417 V2 1.7 0 0.6 - N0 0.492146 0.41068 -0.767551 N1 0.528678 0 -0.848822 N2 0.158678 0 -0.98733 - txt003 -STRI - V0 1.7 0.275 0.661111 V1 1.7 0.44 0.813889 V2 2.1946 0.419753 0.964558 - N0 0.134339 0.457747 -0.878875 N1 0.0673462 0.855546 -0.513328 N2 0.348602 0.814337 -0.464038 - txt003 -STRI - V0 2.1946 0.419753 0.964558 V1 2.22855 0.262346 0.8366 V2 1.7 0.275 0.661111 - N0 0.348602 0.814337 -0.464038 N1 0.492146 0.41068 -0.767551 N2 0.134339 0.457747 -0.878875 - txt003 -STRI - V0 1.7 0.44 0.813889 V1 1.7 0.495 1.0125 V2 2.15046 0.472222 1.1309 - N0 0.0673462 0.855546 -0.513328 N1 0 1 -0 N2 0.110195 0.99348 0.0292376 - txt003 -STRI - V0 2.15046 0.472222 1.1309 V1 2.1946 0.419753 0.964558 V2 1.7 0.44 0.813889 - N0 0.110195 0.99348 0.0292376 N1 0.348602 0.814337 -0.464038 N2 0.0673462 0.855546 -0.513328 - txt003 -STRI - V0 1.7 0.495 1.0125 V1 1.7 0.44 1.21111 V2 2.10633 0.419753 1.29725 - N0 0 1 -0 N1 -0.0291362 0.857129 0.514277 N2 -0.135104 0.834377 0.534381 - txt003 -STRI - V0 2.10633 0.419753 1.29725 V1 2.15046 0.472222 1.1309 V2 1.7 0.495 1.0125 - N0 -0.135104 0.834377 0.534381 N1 0.110195 0.99348 0.0292376 N2 0 1 -0 - txt003 -STRI - V0 1.7 0.44 1.21111 V1 1.7 0.275 1.36389 V2 2.07238 0.262346 1.42521 - N0 -0.0291362 0.857129 0.514277 N1 -0.0157732 0.461877 0.886804 N2 -0.291732 0.426807 0.855995 - txt003 -STRI - V0 2.07238 0.262346 1.42521 V1 2.10633 0.419753 1.29725 V2 1.7 0.44 1.21111 - N0 -0.291732 0.426807 0.855995 N1 -0.135104 0.834377 0.534381 N2 -0.0291362 0.857129 0.514277 - txt003 -STRI - V0 1.7 0.275 1.36389 V1 1.7 0 1.425 V2 2.0588 0 1.47639 - N0 -0.0157732 0.461877 0.886804 N1 0 -4.48575e-16 1 N2 -0.333935 -3.25455e-16 0.942596 - txt003 -STRI - V0 2.0588 0 1.47639 V1 2.07238 0.262346 1.42521 V2 1.7 0.275 1.36389 - N0 -0.333935 -3.25455e-16 0.942596 N1 -0.291732 0.426807 0.855995 N2 -0.0157732 0.461877 0.886804 - txt003 -STRI - V0 2.24213 0 0.785417 V1 2.22855 0.262346 0.8366 V2 2.51728 0.23071 1.12243 - N0 0.528678 0 -0.848822 N1 0.492146 0.41068 -0.767551 N2 0.813963 0.348056 -0.465103 - txt003 -STRI - V0 2.51728 0.23071 1.12243 V1 2.53704 0 1.08333 V2 2.24213 0 0.785417 - N0 0.813963 0.348056 -0.465103 N1 0.854063 0 -0.52017 N2 0.528678 0 -0.848822 - txt003 -STRI - V0 2.22855 0.262346 0.8366 V1 2.1946 0.419753 0.964558 V2 2.4679 0.369136 1.22016 - N0 0.492146 0.41068 -0.767551 N1 0.348602 0.814337 -0.464038 N2 0.627607 0.733748 -0.260237 - txt003 -STRI - V0 2.4679 0.369136 1.22016 V1 2.51728 0.23071 1.12243 V2 2.22855 0.262346 0.8366 - N0 0.627607 0.733748 -0.260237 N1 0.813963 0.348056 -0.465103 N2 0.492146 0.41068 -0.767551 - txt003 -STRI - V0 2.1946 0.419753 0.964558 V1 2.15046 0.472222 1.1309 V2 2.4037 0.415278 1.34722 - N0 0.348602 0.814337 -0.464038 N1 0.110195 0.99348 0.0292376 N2 0.215359 0.970454 0.108813 - txt003 -STRI - V0 2.4037 0.415278 1.34722 V1 2.4679 0.369136 1.22016 V2 2.1946 0.419753 0.964558 - N0 0.215359 0.970454 0.108813 N1 0.627607 0.733748 -0.260237 N2 0.348602 0.814337 -0.464038 - txt003 -STRI - V0 2.15046 0.472222 1.1309 V1 2.10633 0.419753 1.29725 V2 2.33951 0.369136 1.47428 - N0 0.110195 0.99348 0.0292376 N1 -0.135104 0.834377 0.534381 N2 -0.312511 0.816863 0.484842 - txt003 -STRI - V0 2.33951 0.369136 1.47428 V1 2.4037 0.415278 1.34722 V2 2.15046 0.472222 1.1309 - N0 -0.312511 0.816863 0.484842 N1 0.215359 0.970454 0.108813 N2 0.110195 0.99348 0.0292376 - txt003 -STRI - V0 2.10633 0.419753 1.29725 V1 2.07238 0.262346 1.42521 V2 2.29012 0.23071 1.57202 - N0 -0.135104 0.834377 0.534381 N1 -0.291732 0.426807 0.855995 N2 -0.64585 0.390219 0.656206 - txt003 -STRI - V0 2.29012 0.23071 1.57202 V1 2.33951 0.369136 1.47428 V2 2.10633 0.419753 1.29725 - N0 -0.64585 0.390219 0.656206 N1 -0.312511 0.816863 0.484842 N2 -0.135104 0.834377 0.534381 - txt003 -STRI - V0 2.07238 0.262346 1.42521 V1 2.0588 0 1.47639 V2 2.27037 0 1.61111 - N0 -0.291732 0.426807 0.855995 N1 -0.333935 -3.25455e-16 0.942596 N2 -0.731055 -1.69385e-16 0.682318 - txt003 -STRI - V0 2.27037 0 1.61111 V1 2.29012 0.23071 1.57202 V2 2.07238 0.262346 1.42521 - N0 -0.731055 -1.69385e-16 0.682318 N1 -0.64585 0.390219 0.656206 N2 -0.291732 0.426807 0.855995 - txt003 -STRI - V0 2.53704 0 1.08333 V1 2.51728 0.23071 1.12243 V2 2.66528 0.189583 1.47014 - N0 0.854063 0 -0.52017 N1 0.813963 0.348056 -0.465103 N2 0.913262 0.329186 -0.239977 - txt003 -STRI - V0 2.66528 0.189583 1.47014 V1 2.6875 0 1.44375 V2 2.53704 0 1.08333 - N0 0.913262 0.329186 -0.239977 N1 0.957826 0 -0.287348 N2 0.854063 0 -0.52017 - txt003 -STRI - V0 2.51728 0.23071 1.12243 V1 2.4679 0.369136 1.22016 V2 2.60972 0.303333 1.53611 - N0 0.813963 0.348056 -0.465103 N1 0.627607 0.733748 -0.260237 N2 0.705424 0.704198 -0.0805066 - txt003 -STRI - V0 2.60972 0.303333 1.53611 V1 2.66528 0.189583 1.47014 V2 2.51728 0.23071 1.12243 - N0 0.705424 0.704198 -0.0805066 N1 0.913262 0.329186 -0.239977 N2 0.813963 0.348056 -0.465103 - txt003 -STRI - V0 2.4679 0.369136 1.22016 V1 2.4037 0.415278 1.34722 V2 2.5375 0.34125 1.62188 - N0 0.627607 0.733748 -0.260237 N1 0.215359 0.970454 0.108813 N2 0.214084 0.960035 0.180281 - txt003 -STRI - V0 2.5375 0.34125 1.62188 V1 2.60972 0.303333 1.53611 V2 2.4679 0.369136 1.22016 - N0 0.214084 0.960035 0.180281 N1 0.705424 0.704198 -0.0805066 N2 0.627607 0.733748 -0.260237 - txt003 -STRI - V0 2.4037 0.415278 1.34722 V1 2.33951 0.369136 1.47428 V2 2.46528 0.303333 1.70764 - N0 0.215359 0.970454 0.108813 N1 -0.312511 0.816863 0.484842 N2 -0.451323 0.803033 0.38916 - txt003 -STRI - V0 2.46528 0.303333 1.70764 V1 2.5375 0.34125 1.62188 V2 2.4037 0.415278 1.34722 - N0 -0.451323 0.803033 0.38916 N1 0.214084 0.960035 0.180281 N2 0.215359 0.970454 0.108813 - txt003 -STRI - V0 2.33951 0.369136 1.47428 V1 2.29012 0.23071 1.57202 V2 2.40972 0.189583 1.77361 - N0 -0.312511 0.816863 0.484842 N1 -0.64585 0.390219 0.656206 N2 -0.835237 0.363942 0.412221 - txt003 -STRI - V0 2.40972 0.189583 1.77361 V1 2.46528 0.303333 1.70764 V2 2.33951 0.369136 1.47428 - N0 -0.835237 0.363942 0.412221 N1 -0.451323 0.803033 0.38916 N2 -0.312511 0.816863 0.484842 - txt003 -STRI - V0 2.29012 0.23071 1.57202 V1 2.27037 0 1.61111 V2 2.3875 0 1.8 - N0 -0.64585 0.390219 0.656206 N1 -0.731055 -1.69385e-16 0.682318 N2 -0.920582 -2.76813e-16 0.39055 - txt003 -STRI - V0 2.3875 0 1.8 V1 2.40972 0.189583 1.77361 V2 2.29012 0.23071 1.57202 - N0 -0.920582 -2.76813e-16 0.39055 N1 -0.835237 0.363942 0.412221 N2 -0.64585 0.390219 0.656206 - txt003 -STRI - V0 2.6875 0 1.44375 V1 2.66528 0.189583 1.47014 V2 2.7716 0.148457 1.83128 - N0 0.957826 0 -0.287348 N1 0.913262 0.329186 -0.239977 N2 0.880144 0.401503 -0.253261 - txt003 -STRI - V0 2.7716 0.148457 1.83128 V1 2.7963 0 1.81667 V2 2.6875 0 1.44375 - N0 0.880144 0.401503 -0.253261 N1 0.947588 0 -0.319493 N2 0.957826 0 -0.287348 - txt003 -STRI - V0 2.66528 0.189583 1.47014 V1 2.60972 0.303333 1.53611 V2 2.70988 0.237531 1.8678 - N0 0.913262 0.329186 -0.239977 N1 0.705424 0.704198 -0.0805066 N2 0.60461 0.794635 -0.0547983 - txt003 -STRI - V0 2.70988 0.237531 1.8678 V1 2.7716 0.148457 1.83128 V2 2.66528 0.189583 1.47014 - N0 0.60461 0.794635 -0.0547983 N1 0.880144 0.401503 -0.253261 N2 0.913262 0.329186 -0.239977 - txt003 -STRI - V0 2.60972 0.303333 1.53611 V1 2.5375 0.34125 1.62188 V2 2.62963 0.267222 1.91528 - N0 0.705424 0.704198 -0.0805066 N1 0.214084 0.960035 0.180281 N2 0.113546 0.974822 0.191909 - txt003 -STRI - V0 2.62963 0.267222 1.91528 V1 2.70988 0.237531 1.8678 V2 2.60972 0.303333 1.53611 - N0 0.113546 0.974822 0.191909 N1 0.60461 0.794635 -0.0547983 N2 0.705424 0.704198 -0.0805066 - txt003 -STRI - V0 2.5375 0.34125 1.62188 V1 2.46528 0.303333 1.70764 V2 2.54938 0.237531 1.96276 - N0 0.214084 0.960035 0.180281 N1 -0.451323 0.803033 0.38916 N2 -0.452673 0.821162 0.347535 - txt003 -STRI - V0 2.54938 0.237531 1.96276 V1 2.62963 0.267222 1.91528 V2 2.5375 0.34125 1.62188 - N0 -0.452673 0.821162 0.347535 N1 0.113546 0.974822 0.191909 N2 0.214084 0.960035 0.180281 - txt003 -STRI - V0 2.46528 0.303333 1.70764 V1 2.40972 0.189583 1.77361 V2 2.48765 0.148457 1.99928 - N0 -0.451323 0.803033 0.38916 N1 -0.835237 0.363942 0.412221 N2 -0.842821 0.409176 0.34961 - txt003 -STRI - V0 2.48765 0.148457 1.99928 V1 2.54938 0.237531 1.96276 V2 2.46528 0.303333 1.70764 - N0 -0.842821 0.409176 0.34961 N1 -0.452673 0.821162 0.347535 N2 -0.451323 0.803033 0.38916 - txt003 -STRI - V0 2.40972 0.189583 1.77361 V1 2.3875 0 1.8 V2 2.46296 0 2.01389 - N0 -0.835237 0.363942 0.412221 N1 -0.920582 -2.76813e-16 0.39055 N2 -0.948683 -4.59839e-16 0.316228 - txt003 -STRI - V0 2.46296 0 2.01389 V1 2.48765 0.148457 1.99928 V2 2.40972 0.189583 1.77361 - N0 -0.948683 -4.59839e-16 0.316228 N1 -0.842821 0.409176 0.34961 N2 -0.835237 0.363942 0.412221 - txt003 -STRI - V0 2.7963 0 1.81667 V1 2.7716 0.148457 1.83128 V2 2.93534 0.116821 2.15738 - N0 0.947588 0 -0.319493 N1 0.880144 0.401503 -0.253261 N2 0.70819 0.492319 -0.506053 - txt003 -STRI - V0 2.93534 0.116821 2.15738 V1 2.9662 0 2.15208 V2 2.7963 0 1.81667 - N0 0.70819 0.492319 -0.506053 N1 0.787582 0 -0.61621 N2 0.947588 0 -0.319493 - txt003 -STRI - V0 2.7716 0.148457 1.83128 V1 2.70988 0.237531 1.8678 V2 2.85818 0.186914 2.17063 - N0 0.880144 0.401503 -0.253261 N1 0.60461 0.794635 -0.0547983 N2 0.417243 0.88974 -0.185122 - txt003 -STRI - V0 2.85818 0.186914 2.17063 V1 2.93534 0.116821 2.15738 V2 2.7716 0.148457 1.83128 - N0 0.417243 0.88974 -0.185122 N1 0.70819 0.492319 -0.506053 N2 0.880144 0.401503 -0.253261 - txt003 -STRI - V0 2.70988 0.237531 1.8678 V1 2.62963 0.267222 1.91528 V2 2.75787 0.210278 2.18785 - N0 0.60461 0.794635 -0.0547983 N1 0.113546 0.974822 0.191909 N2 0.0260102 0.988113 0.151516 - txt003 -STRI - V0 2.75787 0.210278 2.18785 V1 2.85818 0.186914 2.17063 V2 2.70988 0.237531 1.8678 - N0 0.0260102 0.988113 0.151516 N1 0.417243 0.88974 -0.185122 N2 0.60461 0.794635 -0.0547983 - txt003 -STRI - V0 2.62963 0.267222 1.91528 V1 2.54938 0.237531 1.96276 V2 2.65756 0.186914 2.20507 - N0 0.113546 0.974822 0.191909 N1 -0.452673 0.821162 0.347535 N2 -0.365378 0.851743 0.375544 - txt003 -STRI - V0 2.65756 0.186914 2.20507 V1 2.75787 0.210278 2.18785 V2 2.62963 0.267222 1.91528 - N0 -0.365378 0.851743 0.375544 N1 0.0260102 0.988113 0.151516 N2 0.113546 0.974822 0.191909 - txt003 -STRI - V0 2.54938 0.237531 1.96276 V1 2.48765 0.148457 1.99928 V2 2.5804 0.116821 2.21831 - N0 -0.452673 0.821162 0.347535 N1 -0.842821 0.409176 0.34961 N2 -0.723795 0.498863 0.476715 - txt003 -STRI - V0 2.5804 0.116821 2.21831 V1 2.65756 0.186914 2.20507 V2 2.54938 0.237531 1.96276 - N0 -0.723795 0.498863 0.476715 N1 -0.365378 0.851743 0.375544 N2 -0.452673 0.821162 0.347535 - txt003 -STRI - V0 2.48765 0.148457 1.99928 V1 2.46296 0 2.01389 V2 2.54954 0 2.22361 - N0 -0.842821 0.409176 0.34961 N1 -0.948683 -4.59839e-16 0.316228 N2 -0.874591 -1.30753e-15 0.484861 - txt003 -STRI - V0 2.54954 0 2.22361 V1 2.5804 0.116821 2.21831 V2 2.48765 0.148457 1.99928 - N0 -0.874591 -1.30753e-15 0.484861 N1 -0.723795 0.498863 0.476715 N2 -0.842821 0.409176 0.34961 - txt003 -STRI - V0 2.9662 0 2.15208 V1 2.93534 0.116821 2.15738 V2 3.25556 0.104167 2.4 - N0 0.787582 0 -0.61621 N1 0.70819 0.492319 -0.506053 N2 0.366221 0.366221 -0.855433 - txt003 -STRI - V0 3.25556 0.104167 2.4 V1 3.3 0 2.4 V2 2.9662 0 2.15208 - N0 0.366221 0.366221 -0.855433 N1 0.384615 0 -0.923077 N2 0.787582 0 -0.61621 - txt003 -STRI - V0 2.93534 0.116821 2.15738 V1 2.85818 0.186914 2.17063 V2 3.14444 0.166667 2.4 - N0 0.70819 0.492319 -0.506053 N1 0.417243 0.88974 -0.185122 N2 0.250514 0.801644 -0.54278 - txt003 -STRI - V0 3.14444 0.166667 2.4 V1 3.25556 0.104167 2.4 V2 2.93534 0.116821 2.15738 - N0 0.250514 0.801644 -0.54278 N1 0.366221 0.366221 -0.855433 N2 0.70819 0.492319 -0.506053 - txt003 -STRI - V0 2.85818 0.186914 2.17063 V1 2.75787 0.210278 2.18785 V2 3 0.1875 2.4 - N0 0.417243 0.88974 -0.185122 N1 0.0260102 0.988113 0.151516 N2 4.05793e-32 1 2.19303e-16 - txt003 -STRI - V0 3 0.1875 2.4 V1 3.14444 0.166667 2.4 V2 2.85818 0.186914 2.17063 - N0 4.05793e-32 1 2.19303e-16 N1 0.250514 0.801644 -0.54278 N2 0.417243 0.88974 -0.185122 - txt003 -STRI - V0 2.75787 0.210278 2.18785 V1 2.65756 0.186914 2.20507 V2 2.85556 0.166667 2.4 - N0 0.0260102 0.988113 0.151516 N1 -0.365378 0.851743 0.375544 N2 -0.267368 0.855576 0.443288 - txt003 -STRI - V0 2.85556 0.166667 2.4 V1 3 0.1875 2.4 V2 2.75787 0.210278 2.18785 - N0 -0.267368 0.855576 0.443288 N1 4.05793e-32 1 2.19303e-16 N2 0.0260102 0.988113 0.151516 - txt003 -STRI - V0 2.65756 0.186914 2.20507 V1 2.5804 0.116821 2.21831 V2 2.74444 0.104167 2.4 - N0 -0.365378 0.851743 0.375544 N1 -0.723795 0.498863 0.476715 N2 -0.497164 0.497164 0.711095 - txt003 -STRI - V0 2.74444 0.104167 2.4 V1 2.85556 0.166667 2.4 V2 2.65756 0.186914 2.20507 - N0 -0.497164 0.497164 0.711095 N1 -0.267368 0.855576 0.443288 N2 -0.365378 0.851743 0.375544 - txt003 -STRI - V0 2.5804 0.116821 2.21831 V1 2.54954 0 2.22361 V2 2.7 0 2.4 - N0 -0.723795 0.498863 0.476715 N1 -0.874591 -1.30753e-15 0.484861 N2 -0.6 -3.55271e-15 0.8 - txt003 -STRI - V0 2.7 0 2.4 V1 2.74444 0.104167 2.4 V2 2.5804 0.116821 2.21831 - N0 -0.6 -3.55271e-15 0.8 N1 -0.497164 0.497164 0.711095 N2 -0.723795 0.498863 0.476715 - txt003 -STRI - V0 2.7 0 2.4 V1 2.74444 -0.104167 2.4 V2 2.79641 -0.10108 2.43193 - N0 -0.6 0 0.8 N1 -0.497164 -0.497164 0.711095 N2 -0.387052 -0.411886 0.824949 - txt003 -STRI - V0 2.79641 -0.10108 2.43193 V1 2.74907 0 2.43125 V2 2.7 0 2.4 - N0 -0.387052 -0.411886 0.824949 N1 -0.467888 0 0.883788 N2 -0.6 0 0.8 - txt003 -STRI - V0 2.74444 -0.104167 2.4 V1 2.85556 -0.166667 2.4 V2 2.91474 -0.161728 2.43361 - N0 -0.497164 -0.497164 0.711095 N1 -0.267368 -0.855576 0.443288 N2 -0.215548 -0.724209 0.655027 - txt003 -STRI - V0 2.91474 -0.161728 2.43361 V1 2.79641 -0.10108 2.43193 V2 2.74444 -0.104167 2.4 - N0 -0.215548 -0.724209 0.655027 N1 -0.387052 -0.411886 0.824949 N2 -0.497164 -0.497164 0.711095 - txt003 -STRI - V0 2.85556 -0.166667 2.4 V1 3 -0.1875 2.4 V2 3.06858 -0.181944 2.43581 - N0 -0.267368 -0.855576 0.443288 N1 0 -1 0 N2 -0.00489618 -0.939227 0.343261 - txt003 -STRI - V0 3.06858 -0.181944 2.43581 V1 2.91474 -0.161728 2.43361 V2 2.85556 -0.166667 2.4 - N0 -0.00489618 -0.939227 0.343261 N1 -0.215548 -0.724209 0.655027 N2 -0.267368 -0.855576 0.443288 - txt003 -STRI - V0 3 -0.1875 2.4 V1 3.14444 -0.166667 2.4 V2 3.22241 -0.161728 2.438 - N0 0 -1 0 N1 0.250514 -0.801644 -0.54278 N2 0.269127 -0.933284 -0.237808 - txt003 -STRI - V0 3.22241 -0.161728 2.438 V1 3.06858 -0.181944 2.43581 V2 3 -0.1875 2.4 - N0 0.269127 -0.933284 -0.237808 N1 -0.00489618 -0.939227 0.343261 N2 0 -1 0 - txt003 -STRI - V0 3.14444 -0.166667 2.4 V1 3.25556 -0.104167 2.4 V2 3.34075 -0.10108 2.43969 - N0 0.250514 -0.801644 -0.54278 N1 0.366221 -0.366221 -0.855433 N2 0.442187 -0.473386 -0.761824 - txt003 -STRI - V0 3.34075 -0.10108 2.43969 V1 3.22241 -0.161728 2.438 V2 3.14444 -0.166667 2.4 - N0 0.442187 -0.473386 -0.761824 N1 0.269127 -0.933284 -0.237808 N2 0.250514 -0.801644 -0.54278 - txt003 -STRI - V0 3.25556 -0.104167 2.4 V1 3.3 0 2.4 V2 3.38808 0 2.44036 - N0 0.366221 -0.366221 -0.855433 N1 0.384615 -2.55067e-15 -0.923077 N2 0.463425 -2.75328e-15 -0.886136 - txt003 -STRI - V0 3.38808 0 2.44036 V1 3.34075 -0.10108 2.43969 V2 3.25556 -0.104167 2.4 - N0 0.463425 -2.75328e-15 -0.886136 N1 0.442187 -0.473386 -0.761824 N2 0.366221 -0.366221 -0.855433 - txt003 -STRI - V0 2.74907 0 2.43125 V1 2.79641 -0.10108 2.43193 V2 2.83978 -0.0933642 2.45123 - N0 -0.467888 0 0.883788 N1 -0.387052 -0.411886 0.824949 N2 -0.253997 -0.272114 0.928138 - txt003 -STRI - V0 2.83978 -0.0933642 2.45123 V1 2.79259 0 2.45 V2 2.74907 0 2.43125 - N0 -0.253997 -0.272114 0.928138 N1 -0.306009 0 0.952029 N2 -0.467888 0 0.883788 - txt003 -STRI - V0 2.79641 -0.10108 2.43193 V1 2.91474 -0.161728 2.43361 V2 2.95775 -0.149383 2.45432 - N0 -0.387052 -0.411886 0.824949 N1 -0.215548 -0.724209 0.655027 N2 -0.14959 -0.481391 0.863647 - txt003 -STRI - V0 2.95775 -0.149383 2.45432 V1 2.83978 -0.0933642 2.45123 V2 2.79641 -0.10108 2.43193 - N0 -0.14959 -0.481391 0.863647 N1 -0.253997 -0.272114 0.928138 N2 -0.387052 -0.411886 0.824949 - txt003 -STRI - V0 2.91474 -0.161728 2.43361 V1 3.06858 -0.181944 2.43581 V2 3.11111 -0.168056 2.45833 - N0 -0.215548 -0.724209 0.655027 N1 -0.00489618 -0.939227 0.343261 N2 -0.0195232 -0.665415 0.746219 - txt003 -STRI - V0 3.11111 -0.168056 2.45833 V1 2.95775 -0.149383 2.45432 V2 2.91474 -0.161728 2.43361 - N0 -0.0195232 -0.665415 0.746219 N1 -0.14959 -0.481391 0.863647 N2 -0.215548 -0.724209 0.655027 - txt003 -STRI - V0 3.06858 -0.181944 2.43581 V1 3.22241 -0.161728 2.438 V2 3.26447 -0.149383 2.46235 - N0 -0.00489618 -0.939227 0.343261 N1 0.269127 -0.933284 -0.237808 N2 0.218115 -0.87054 0.44112 - txt003 -STRI - V0 3.26447 -0.149383 2.46235 V1 3.11111 -0.168056 2.45833 V2 3.06858 -0.181944 2.43581 - N0 0.218115 -0.87054 0.44112 N1 -0.0195232 -0.665415 0.746219 N2 -0.00489618 -0.939227 0.343261 - txt003 -STRI - V0 3.22241 -0.161728 2.438 V1 3.34075 -0.10108 2.43969 V2 3.38244 -0.0933642 2.46543 - N0 0.269127 -0.933284 -0.237808 N1 0.442187 -0.473386 -0.761824 N2 0.612385 -0.714958 -0.337372 - txt003 -STRI - V0 3.38244 -0.0933642 2.46543 V1 3.26447 -0.149383 2.46235 V2 3.22241 -0.161728 2.438 - N0 0.612385 -0.714958 -0.337372 N1 0.218115 -0.87054 0.44112 N2 0.269127 -0.933284 -0.237808 - txt003 -STRI - V0 3.34075 -0.10108 2.43969 V1 3.38808 0 2.44036 V2 3.42963 0 2.46667 - N0 0.442187 -0.473386 -0.761824 N1 0.463425 -2.75328e-15 -0.886136 N2 0.694136 -3.24605e-15 -0.719844 - txt003 -STRI - V0 3.42963 0 2.46667 V1 3.38244 -0.0933642 2.46543 V2 3.34075 -0.10108 2.43969 - N0 0.694136 -3.24605e-15 -0.719844 N1 0.612385 -0.714958 -0.337372 N2 0.442187 -0.473386 -0.761824 - txt003 -STRI - V0 2.79259 0 2.45 V1 2.83978 -0.0933642 2.45123 V2 2.86968 -0.0833333 2.45781 - N0 -0.306009 0 0.952029 N1 -0.253997 -0.272114 0.928138 N2 -0.0182321 0.0210195 0.999613 - txt003 -STRI - V0 2.86968 -0.0833333 2.45781 V1 2.825 0 2.45625 V2 2.79259 0 2.45 - N0 -0.0182321 0.0210195 0.999613 N1 2.22045e-15 0 1 N2 -0.306009 0 0.952029 - txt003 -STRI - V0 2.83978 -0.0933642 2.45123 V1 2.95775 -0.149383 2.45432 V2 2.98137 -0.133333 2.46172 - N0 -0.253997 -0.272114 0.928138 N1 -0.14959 -0.481391 0.863647 N2 -0.0369301 -0.00796532 0.999286 - txt003 -STRI - V0 2.98137 -0.133333 2.46172 V1 2.86968 -0.0833333 2.45781 V2 2.83978 -0.0933642 2.45123 - N0 -0.0369301 -0.00796532 0.999286 N1 -0.0182321 0.0210195 0.999613 N2 -0.253997 -0.272114 0.928138 - txt003 -STRI - V0 2.95775 -0.149383 2.45432 V1 3.11111 -0.168056 2.45833 V2 3.12656 -0.15 2.4668 - N0 -0.14959 -0.481391 0.863647 N1 -0.0195232 -0.665415 0.746219 N2 -0.0348909 -0.0594438 0.997622 - txt003 -STRI - V0 3.12656 -0.15 2.4668 V1 2.98137 -0.133333 2.46172 V2 2.95775 -0.149383 2.45432 - N0 -0.0348909 -0.0594438 0.997622 N1 -0.0369301 -0.00796532 0.999286 N2 -0.14959 -0.481391 0.863647 - txt003 -STRI - V0 3.11111 -0.168056 2.45833 V1 3.26447 -0.149383 2.46235 V2 3.27176 -0.133333 2.47187 - N0 -0.0195232 -0.665415 0.746219 N1 0.218115 -0.87054 0.44112 N2 -0.00787186 -0.108144 0.994104 - txt003 -STRI - V0 3.27176 -0.133333 2.47187 V1 3.12656 -0.15 2.4668 V2 3.11111 -0.168056 2.45833 - N0 -0.00787186 -0.108144 0.994104 N1 -0.0348909 -0.0594438 0.997622 N2 -0.0195232 -0.665415 0.746219 - txt003 -STRI - V0 3.26447 -0.149383 2.46235 V1 3.38244 -0.0933642 2.46543 V2 3.38345 -0.0833333 2.47578 - N0 0.218115 -0.87054 0.44112 N1 0.612385 -0.714958 -0.337372 N2 0.0539577 -0.111406 0.992309 - txt003 -STRI - V0 3.38345 -0.0833333 2.47578 V1 3.27176 -0.133333 2.47187 V2 3.26447 -0.149383 2.46235 - N0 0.0539577 -0.111406 0.992309 N1 -0.00787186 -0.108144 0.994104 N2 0.218115 -0.87054 0.44112 - txt003 -STRI - V0 3.38244 -0.0933642 2.46543 V1 3.42963 0 2.46667 V2 3.42813 0 2.47734 - N0 0.612385 -0.714958 -0.337372 N1 0.694136 -3.24605e-15 -0.719844 N2 0.106533 1.89241e-15 0.994309 - txt003 -STRI - V0 3.42813 0 2.47734 V1 3.38345 -0.0833333 2.47578 V2 3.38244 -0.0933642 2.46543 - N0 0.106533 1.89241e-15 0.994309 N1 0.0539577 -0.111406 0.992309 N2 0.612385 -0.714958 -0.337372 - txt003 -STRI - V0 2.825 0 2.45625 V1 2.86968 -0.0833333 2.45781 V2 2.88121 -0.0733025 2.45154 - N0 2.22045e-15 0 1 N1 -0.0182321 0.0210195 0.999613 N2 0.507715 0.682832 0.525324 - txt003 -STRI - V0 2.88121 -0.0733025 2.45154 V1 2.84074 0 2.45 V2 2.825 0 2.45625 - N0 0.507715 0.682832 0.525324 N1 0.913812 0 0.406138 N2 2.22045e-15 0 1 - txt003 -STRI - V0 2.86968 -0.0833333 2.45781 V1 2.98137 -0.133333 2.46172 V2 2.98237 -0.117284 2.4554 - N0 -0.0182321 0.0210195 0.999613 N1 -0.0369301 -0.00796532 0.999286 N2 0.148477 0.721529 0.676277 - txt003 -STRI - V0 2.98237 -0.117284 2.4554 V1 2.88121 -0.0733025 2.45154 V2 2.86968 -0.0833333 2.45781 - N0 0.148477 0.721529 0.676277 N1 0.507715 0.682832 0.525324 N2 -0.0182321 0.0210195 0.999613 - txt003 -STRI - V0 2.98137 -0.133333 2.46172 V1 3.12656 -0.15 2.4668 V2 3.11389 -0.131944 2.46042 - N0 -0.0369301 -0.00796532 0.999286 N1 -0.0348909 -0.0594438 0.997622 N2 -0.0300305 0.615625 0.787467 - txt003 -STRI - V0 3.11389 -0.131944 2.46042 V1 2.98237 -0.117284 2.4554 V2 2.98137 -0.133333 2.46172 - N0 -0.0300305 0.615625 0.787467 N1 0.148477 0.721529 0.676277 N2 -0.0369301 -0.00796532 0.999286 - txt003 -STRI - V0 3.12656 -0.15 2.4668 V1 3.27176 -0.133333 2.47187 V2 3.2454 -0.117284 2.46543 - N0 -0.0348909 -0.0594438 0.997622 N1 -0.00787186 -0.108144 0.994104 N2 -0.144371 0.459364 0.876437 - txt003 -STRI - V0 3.2454 -0.117284 2.46543 V1 3.11389 -0.131944 2.46042 V2 3.12656 -0.15 2.4668 - N0 -0.144371 0.459364 0.876437 N1 -0.0300305 0.615625 0.787467 N2 -0.0348909 -0.0594438 0.997622 - txt003 -STRI - V0 3.27176 -0.133333 2.47187 V1 3.38345 -0.0833333 2.47578 V2 3.34657 -0.0733025 2.46929 - N0 -0.00787186 -0.108144 0.994104 N1 0.0539577 -0.111406 0.992309 N2 -0.223743 0.242919 0.943891 - txt003 -STRI - V0 3.34657 -0.0733025 2.46929 V1 3.2454 -0.117284 2.46543 V2 3.27176 -0.133333 2.47187 - N0 -0.223743 0.242919 0.943891 N1 -0.144371 0.459364 0.876437 N2 -0.00787186 -0.108144 0.994104 - txt003 -STRI - V0 3.38345 -0.0833333 2.47578 V1 3.42813 0 2.47734 V2 3.38704 0 2.47083 - N0 0.0539577 -0.111406 0.992309 N1 0.106533 1.89241e-15 0.994309 N2 -0.253109 3.19224e-15 0.967438 - txt003 -STRI - V0 3.38704 0 2.47083 V1 3.34657 -0.0733025 2.46929 V2 3.38345 -0.0833333 2.47578 - N0 -0.253109 3.19224e-15 0.967438 N1 -0.223743 0.242919 0.943891 N2 0.0539577 -0.111406 0.992309 - txt003 -STRI - V0 2.84074 0 2.45 V1 2.88121 -0.0733025 2.45154 V2 2.86949 -0.0655864 2.43231 - N0 0.913812 0 0.406138 N1 0.507715 0.682832 0.525324 N2 0.577416 0.711734 -0.400031 - txt003 -STRI - V0 2.86949 -0.0655864 2.43231 V1 2.83426 0 2.43125 V2 2.84074 0 2.45 - N0 0.577416 0.711734 -0.400031 N1 0.789352 0 -0.613941 N2 0.913812 0 0.406138 - txt003 -STRI - V0 2.88121 -0.0733025 2.45154 V1 2.98237 -0.117284 2.4554 V2 2.95756 -0.104938 2.43496 - N0 0.507715 0.682832 0.525324 N1 0.148477 0.721529 0.676277 N2 0.241288 0.970358 -0.0136399 - txt003 -STRI - V0 2.95756 -0.104938 2.43496 V1 2.86949 -0.0655864 2.43231 V2 2.88121 -0.0733025 2.45154 - N0 0.241288 0.970358 -0.0136399 N1 0.577416 0.711734 -0.400031 N2 0.507715 0.682832 0.525324 - txt003 -STRI - V0 2.98237 -0.117284 2.4554 V1 3.11389 -0.131944 2.46042 V2 3.07205 -0.118056 2.43841 - N0 0.148477 0.721529 0.676277 N1 -0.0300305 0.615625 0.787467 N2 -0.0103804 0.938666 0.344672 - txt003 -STRI - V0 3.07205 -0.118056 2.43841 V1 2.95756 -0.104938 2.43496 V2 2.98237 -0.117284 2.4554 - N0 -0.0103804 0.938666 0.344672 N1 0.241288 0.970358 -0.0136399 N2 0.148477 0.721529 0.676277 - txt003 -STRI - V0 3.11389 -0.131944 2.46042 V1 3.2454 -0.117284 2.46543 V2 3.18654 -0.104938 2.44186 - N0 -0.0300305 0.615625 0.787467 N1 -0.144371 0.459364 0.876437 N2 -0.199105 0.721639 0.663019 - txt003 -STRI - V0 3.18654 -0.104938 2.44186 V1 3.07205 -0.118056 2.43841 V2 3.11389 -0.131944 2.46042 - N0 -0.199105 0.721639 0.663019 N1 -0.0103804 0.938666 0.344672 N2 -0.0300305 0.615625 0.787467 - txt003 -STRI - V0 3.2454 -0.117284 2.46543 V1 3.34657 -0.0733025 2.46929 V2 3.27461 -0.0655864 2.44451 - N0 -0.144371 0.459364 0.876437 N1 -0.223743 0.242919 0.943891 N2 -0.316294 0.364979 0.875641 - txt003 -STRI - V0 3.27461 -0.0655864 2.44451 V1 3.18654 -0.104938 2.44186 V2 3.2454 -0.117284 2.46543 - N0 -0.316294 0.364979 0.875641 N1 -0.199105 0.721639 0.663019 N2 -0.144371 0.459364 0.876437 - txt003 -STRI - V0 3.34657 -0.0733025 2.46929 V1 3.38704 0 2.47083 V2 3.30984 0 2.44557 - N0 -0.223743 0.242919 0.943891 N1 -0.253109 3.19224e-15 0.967438 N2 -0.349987 4.0695e-15 0.936755 - txt003 -STRI - V0 3.30984 0 2.44557 V1 3.27461 -0.0655864 2.44451 V2 3.34657 -0.0733025 2.46929 - N0 -0.349987 4.0695e-15 0.936755 N1 -0.316294 0.364979 0.875641 N2 -0.223743 0.242919 0.943891 - txt003 -STRI - V0 2.83426 0 2.43125 V1 2.86949 -0.0655864 2.43231 V2 2.82963 -0.0625 2.4 - N0 0.789352 0 -0.613941 N1 0.577416 0.711734 -0.400031 N2 0.483629 0.537366 -0.690899 - txt003 -STRI - V0 2.82963 -0.0625 2.4 V1 2.8 0 2.4 V2 2.83426 0 2.43125 - N0 0.483629 0.537366 -0.690899 N1 0.6 0 -0.8 N2 0.789352 0 -0.613941 - txt003 -STRI - V0 2.86949 -0.0655864 2.43231 V1 2.95756 -0.104938 2.43496 V2 2.9037 -0.1 2.4 - N0 0.577416 0.711734 -0.400031 N1 0.241288 0.970358 -0.0136399 N2 0.247465 0.879877 -0.405681 - txt003 -STRI - V0 2.9037 -0.1 2.4 V1 2.82963 -0.0625 2.4 V2 2.86949 -0.0655864 2.43231 - N0 0.247465 0.879877 -0.405681 N1 0.483629 0.537366 -0.690899 N2 0.577416 0.711734 -0.400031 - txt003 -STRI - V0 2.95756 -0.104938 2.43496 V1 3.07205 -0.118056 2.43841 V2 3 -0.1125 2.4 - N0 0.241288 0.970358 -0.0136399 N1 -0.0103804 0.938666 0.344672 N2 0 1 0 - txt003 -STRI - V0 3 -0.1125 2.4 V1 2.9037 -0.1 2.4 V2 2.95756 -0.104938 2.43496 - N0 0 1 0 N1 0.247465 0.879877 -0.405681 N2 0.241288 0.970358 -0.0136399 - txt003 -STRI - V0 3.07205 -0.118056 2.43841 V1 3.18654 -0.104938 2.44186 V2 3.0963 -0.1 2.4 - N0 -0.0103804 0.938666 0.344672 N1 -0.199105 0.721639 0.663019 N2 -0.236617 0.841304 0.486024 - txt003 -STRI - V0 3.0963 -0.1 2.4 V1 3 -0.1125 2.4 V2 3.07205 -0.118056 2.43841 - N0 -0.236617 0.841304 0.486024 N1 0 1 0 N2 -0.0103804 0.938666 0.344672 - txt003 -STRI - V0 3.18654 -0.104938 2.44186 V1 3.27461 -0.0655864 2.44451 V2 3.17037 -0.0625 2.4 - N0 -0.199105 0.721639 0.663019 N1 -0.316294 0.364979 0.875641 N2 -0.378646 0.420717 0.824393 - txt003 -STRI - V0 3.17037 -0.0625 2.4 V1 3.0963 -0.1 2.4 V2 3.18654 -0.104938 2.44186 - N0 -0.378646 0.420717 0.824393 N1 -0.236617 0.841304 0.486024 N2 -0.199105 0.721639 0.663019 - txt003 -STRI - V0 3.27461 -0.0655864 2.44451 V1 3.30984 0 2.44557 V2 3.2 0 2.4 - N0 -0.316294 0.364979 0.875641 N1 -0.349987 4.0695e-15 0.936755 N2 -0.410365 4.31973e-15 0.911922 - txt003 -STRI - V0 3.2 0 2.4 V1 3.17037 -0.0625 2.4 V2 3.27461 -0.0655864 2.44451 - N0 -0.410365 4.31973e-15 0.911922 N1 -0.378646 0.420717 0.824393 N2 -0.316294 0.364979 0.875641 - txt003 -STRI - V0 3.3 0 2.4 V1 3.25556 0.104167 2.4 V2 3.34075 0.10108 2.43969 - N0 0.384615 0 -0.923077 N1 0.366221 0.366221 -0.855433 N2 0.442187 0.473386 -0.761824 - txt003 -STRI - V0 3.34075 0.10108 2.43969 V1 3.38808 0 2.44036 V2 3.3 0 2.4 - N0 0.442187 0.473386 -0.761824 N1 0.463425 0 -0.886136 N2 0.384615 0 -0.923077 - txt003 -STRI - V0 3.25556 0.104167 2.4 V1 3.14444 0.166667 2.4 V2 3.22241 0.161728 2.438 - N0 0.366221 0.366221 -0.855433 N1 0.250514 0.801644 -0.54278 N2 0.269127 0.933284 -0.237808 - txt003 -STRI - V0 3.22241 0.161728 2.438 V1 3.34075 0.10108 2.43969 V2 3.25556 0.104167 2.4 - N0 0.269127 0.933284 -0.237808 N1 0.442187 0.473386 -0.761824 N2 0.366221 0.366221 -0.855433 - txt003 -STRI - V0 3.14444 0.166667 2.4 V1 3 0.1875 2.4 V2 3.06858 0.181944 2.43581 - N0 0.250514 0.801644 -0.54278 N1 0 1 -0 N2 -0.00489618 0.939227 0.343261 - txt003 -STRI - V0 3.06858 0.181944 2.43581 V1 3.22241 0.161728 2.438 V2 3.14444 0.166667 2.4 - N0 -0.00489618 0.939227 0.343261 N1 0.269127 0.933284 -0.237808 N2 0.250514 0.801644 -0.54278 - txt003 -STRI - V0 3 0.1875 2.4 V1 2.85556 0.166667 2.4 V2 2.91474 0.161728 2.43361 - N0 0 1 -0 N1 -0.267368 0.855576 0.443288 N2 -0.215548 0.724209 0.655027 - txt003 -STRI - V0 2.91474 0.161728 2.43361 V1 3.06858 0.181944 2.43581 V2 3 0.1875 2.4 - N0 -0.215548 0.724209 0.655027 N1 -0.00489618 0.939227 0.343261 N2 0 1 -0 - txt003 -STRI - V0 2.85556 0.166667 2.4 V1 2.74444 0.104167 2.4 V2 2.79641 0.10108 2.43193 - N0 -0.267368 0.855576 0.443288 N1 -0.497164 0.497164 0.711095 N2 -0.387052 0.411886 0.824949 - txt003 -STRI - V0 2.79641 0.10108 2.43193 V1 2.91474 0.161728 2.43361 V2 2.85556 0.166667 2.4 - N0 -0.387052 0.411886 0.824949 N1 -0.215548 0.724209 0.655027 N2 -0.267368 0.855576 0.443288 - txt003 -STRI - V0 2.74444 0.104167 2.4 V1 2.7 0 2.4 V2 2.74907 0 2.43125 - N0 -0.497164 0.497164 0.711095 N1 -0.6 2.24387e-29 0.8 N2 -0.467888 -4.75841e-16 0.883788 - txt003 -STRI - V0 2.74907 0 2.43125 V1 2.79641 0.10108 2.43193 V2 2.74444 0.104167 2.4 - N0 -0.467888 -4.75841e-16 0.883788 N1 -0.387052 0.411886 0.824949 N2 -0.497164 0.497164 0.711095 - txt003 -STRI - V0 3.38808 0 2.44036 V1 3.34075 0.10108 2.43969 V2 3.38244 0.0933642 2.46543 - N0 0.463425 0 -0.886136 N1 0.442187 0.473386 -0.761824 N2 0.612385 0.714958 -0.337372 - txt003 -STRI - V0 3.38244 0.0933642 2.46543 V1 3.42963 0 2.46667 V2 3.38808 0 2.44036 - N0 0.612385 0.714958 -0.337372 N1 0.694136 0 -0.719844 N2 0.463425 0 -0.886136 - txt003 -STRI - V0 3.34075 0.10108 2.43969 V1 3.22241 0.161728 2.438 V2 3.26447 0.149383 2.46235 - N0 0.442187 0.473386 -0.761824 N1 0.269127 0.933284 -0.237808 N2 0.218115 0.87054 0.44112 - txt003 -STRI - V0 3.26447 0.149383 2.46235 V1 3.38244 0.0933642 2.46543 V2 3.34075 0.10108 2.43969 - N0 0.218115 0.87054 0.44112 N1 0.612385 0.714958 -0.337372 N2 0.442187 0.473386 -0.761824 - txt003 -STRI - V0 3.22241 0.161728 2.438 V1 3.06858 0.181944 2.43581 V2 3.11111 0.168056 2.45833 - N0 0.269127 0.933284 -0.237808 N1 -0.00489618 0.939227 0.343261 N2 -0.0195232 0.665415 0.746219 - txt003 -STRI - V0 3.11111 0.168056 2.45833 V1 3.26447 0.149383 2.46235 V2 3.22241 0.161728 2.438 - N0 -0.0195232 0.665415 0.746219 N1 0.218115 0.87054 0.44112 N2 0.269127 0.933284 -0.237808 - txt003 -STRI - V0 3.06858 0.181944 2.43581 V1 2.91474 0.161728 2.43361 V2 2.95775 0.149383 2.45432 - N0 -0.00489618 0.939227 0.343261 N1 -0.215548 0.724209 0.655027 N2 -0.14959 0.481391 0.863647 - txt003 -STRI - V0 2.95775 0.149383 2.45432 V1 3.11111 0.168056 2.45833 V2 3.06858 0.181944 2.43581 - N0 -0.14959 0.481391 0.863647 N1 -0.0195232 0.665415 0.746219 N2 -0.00489618 0.939227 0.343261 - txt003 -STRI - V0 2.91474 0.161728 2.43361 V1 2.79641 0.10108 2.43193 V2 2.83978 0.0933642 2.45123 - N0 -0.215548 0.724209 0.655027 N1 -0.387052 0.411886 0.824949 N2 -0.253997 0.272114 0.928138 - txt003 -STRI - V0 2.83978 0.0933642 2.45123 V1 2.95775 0.149383 2.45432 V2 2.91474 0.161728 2.43361 - N0 -0.253997 0.272114 0.928138 N1 -0.14959 0.481391 0.863647 N2 -0.215548 0.724209 0.655027 - txt003 -STRI - V0 2.79641 0.10108 2.43193 V1 2.74907 0 2.43125 V2 2.79259 0 2.45 - N0 -0.387052 0.411886 0.824949 N1 -0.467888 -4.75841e-16 0.883788 N2 -0.306009 -1.09783e-15 0.952029 - txt003 -STRI - V0 2.79259 0 2.45 V1 2.83978 0.0933642 2.45123 V2 2.79641 0.10108 2.43193 - N0 -0.306009 -1.09783e-15 0.952029 N1 -0.253997 0.272114 0.928138 N2 -0.387052 0.411886 0.824949 - txt003 -STRI - V0 3.42963 0 2.46667 V1 3.38244 0.0933642 2.46543 V2 3.38345 0.0833333 2.47578 - N0 0.694136 0 -0.719844 N1 0.612385 0.714958 -0.337372 N2 0.0539577 0.111406 0.992309 - txt003 -STRI - V0 3.38345 0.0833333 2.47578 V1 3.42813 0 2.47734 V2 3.42963 0 2.46667 - N0 0.0539577 0.111406 0.992309 N1 0.106533 -0 0.994309 N2 0.694136 0 -0.719844 - txt003 -STRI - V0 3.38244 0.0933642 2.46543 V1 3.26447 0.149383 2.46235 V2 3.27176 0.133333 2.47188 - N0 0.612385 0.714958 -0.337372 N1 0.218115 0.87054 0.44112 N2 -0.00787186 0.108144 0.994104 - txt003 -STRI - V0 3.27176 0.133333 2.47188 V1 3.38345 0.0833333 2.47578 V2 3.38244 0.0933642 2.46543 - N0 -0.00787186 0.108144 0.994104 N1 0.0539577 0.111406 0.992309 N2 0.612385 0.714958 -0.337372 - txt003 -STRI - V0 3.26447 0.149383 2.46235 V1 3.11111 0.168056 2.45833 V2 3.12656 0.15 2.4668 - N0 0.218115 0.87054 0.44112 N1 -0.0195232 0.665415 0.746219 N2 -0.0348909 0.0594438 0.997622 - txt003 -STRI - V0 3.12656 0.15 2.4668 V1 3.27176 0.133333 2.47188 V2 3.26447 0.149383 2.46235 - N0 -0.0348909 0.0594438 0.997622 N1 -0.00787186 0.108144 0.994104 N2 0.218115 0.87054 0.44112 - txt003 -STRI - V0 3.11111 0.168056 2.45833 V1 2.95775 0.149383 2.45432 V2 2.98137 0.133333 2.46172 - N0 -0.0195232 0.665415 0.746219 N1 -0.14959 0.481391 0.863647 N2 -0.0369301 0.00796532 0.999286 - txt003 -STRI - V0 2.98137 0.133333 2.46172 V1 3.12656 0.15 2.4668 V2 3.11111 0.168056 2.45833 - N0 -0.0369301 0.00796532 0.999286 N1 -0.0348909 0.0594438 0.997622 N2 -0.0195232 0.665415 0.746219 - txt003 -STRI - V0 2.95775 0.149383 2.45432 V1 2.83978 0.0933642 2.45123 V2 2.86968 0.0833333 2.45781 - N0 -0.14959 0.481391 0.863647 N1 -0.253997 0.272114 0.928138 N2 -0.0182321 -0.0210195 0.999613 - txt003 -STRI - V0 2.86968 0.0833333 2.45781 V1 2.98137 0.133333 2.46172 V2 2.95775 0.149383 2.45432 - N0 -0.0182321 -0.0210195 0.999613 N1 -0.0369301 0.00796532 0.999286 N2 -0.14959 0.481391 0.863647 - txt003 -STRI - V0 2.83978 0.0933642 2.45123 V1 2.79259 0 2.45 V2 2.825 0 2.45625 - N0 -0.253997 0.272114 0.928138 N1 -0.306009 -1.09783e-15 0.952029 N2 2.22045e-15 -2.22045e-15 1 - txt003 -STRI - V0 2.825 0 2.45625 V1 2.86968 0.0833333 2.45781 V2 2.83978 0.0933642 2.45123 - N0 2.22045e-15 -2.22045e-15 1 N1 -0.0182321 -0.0210195 0.999613 N2 -0.253997 0.272114 0.928138 - txt003 -STRI - V0 3.42813 0 2.47734 V1 3.38345 0.0833333 2.47578 V2 3.34657 0.0733025 2.46929 - N0 0.106533 -0 0.994309 N1 0.0539577 0.111406 0.992309 N2 -0.223743 -0.242919 0.943891 - txt003 -STRI - V0 3.34657 0.0733025 2.46929 V1 3.38704 0 2.47083 V2 3.42813 0 2.47734 - N0 -0.223743 -0.242919 0.943891 N1 -0.253109 0 0.967438 N2 0.106533 -0 0.994309 - txt003 -STRI - V0 3.38345 0.0833333 2.47578 V1 3.27176 0.133333 2.47188 V2 3.2454 0.117284 2.46543 - N0 0.0539577 0.111406 0.992309 N1 -0.00787186 0.108144 0.994104 N2 -0.144371 -0.459364 0.876437 - txt003 -STRI - V0 3.2454 0.117284 2.46543 V1 3.34657 0.0733025 2.46929 V2 3.38345 0.0833333 2.47578 - N0 -0.144371 -0.459364 0.876437 N1 -0.223743 -0.242919 0.943891 N2 0.0539577 0.111406 0.992309 - txt003 -STRI - V0 3.27176 0.133333 2.47188 V1 3.12656 0.15 2.4668 V2 3.11389 0.131944 2.46042 - N0 -0.00787186 0.108144 0.994104 N1 -0.0348909 0.0594438 0.997622 N2 -0.0300305 -0.615625 0.787467 - txt003 -STRI - V0 3.11389 0.131944 2.46042 V1 3.2454 0.117284 2.46543 V2 3.27176 0.133333 2.47188 - N0 -0.0300305 -0.615625 0.787467 N1 -0.144371 -0.459364 0.876437 N2 -0.00787186 0.108144 0.994104 - txt003 -STRI - V0 3.12656 0.15 2.4668 V1 2.98137 0.133333 2.46172 V2 2.98237 0.117284 2.4554 - N0 -0.0348909 0.0594438 0.997622 N1 -0.0369301 0.00796532 0.999286 N2 0.148477 -0.721529 0.676277 - txt003 -STRI - V0 2.98237 0.117284 2.4554 V1 3.11389 0.131944 2.46042 V2 3.12656 0.15 2.4668 - N0 0.148477 -0.721529 0.676277 N1 -0.0300305 -0.615625 0.787467 N2 -0.0348909 0.0594438 0.997622 - txt003 -STRI - V0 2.98137 0.133333 2.46172 V1 2.86968 0.0833333 2.45781 V2 2.88121 0.0733025 2.45154 - N0 -0.0369301 0.00796532 0.999286 N1 -0.0182321 -0.0210195 0.999613 N2 0.507715 -0.682832 0.525324 - txt003 -STRI - V0 2.88121 0.0733025 2.45154 V1 2.98237 0.117284 2.4554 V2 2.98137 0.133333 2.46172 - N0 0.507715 -0.682832 0.525324 N1 0.148477 -0.721529 0.676277 N2 -0.0369301 0.00796532 0.999286 - txt003 -STRI - V0 2.86968 0.0833333 2.45781 V1 2.825 0 2.45625 V2 2.84074 0 2.45 - N0 -0.0182321 -0.0210195 0.999613 N1 2.22045e-15 -2.22045e-15 1 N2 0.913812 -4.13289e-15 0.406138 - txt003 -STRI - V0 2.84074 0 2.45 V1 2.88121 0.0733025 2.45154 V2 2.86968 0.0833333 2.45781 - N0 0.913812 -4.13289e-15 0.406138 N1 0.507715 -0.682832 0.525324 N2 -0.0182321 -0.0210195 0.999613 - txt003 -STRI - V0 3.38704 0 2.47083 V1 3.34657 0.0733025 2.46929 V2 3.27461 0.0655864 2.44451 - N0 -0.253109 0 0.967438 N1 -0.223743 -0.242919 0.943891 N2 -0.316294 -0.364979 0.875641 - txt003 -STRI - V0 3.27461 0.0655864 2.44451 V1 3.30984 0 2.44557 V2 3.38704 0 2.47083 - N0 -0.316294 -0.364979 0.875641 N1 -0.349987 0 0.936755 N2 -0.253109 0 0.967438 - txt003 -STRI - V0 3.34657 0.0733025 2.46929 V1 3.2454 0.117284 2.46543 V2 3.18654 0.104938 2.44186 - N0 -0.223743 -0.242919 0.943891 N1 -0.144371 -0.459364 0.876437 N2 -0.199105 -0.721639 0.663019 - txt003 -STRI - V0 3.18654 0.104938 2.44186 V1 3.27461 0.0655864 2.44451 V2 3.34657 0.0733025 2.46929 - N0 -0.199105 -0.721639 0.663019 N1 -0.316294 -0.364979 0.875641 N2 -0.223743 -0.242919 0.943891 - txt003 -STRI - V0 3.2454 0.117284 2.46543 V1 3.11389 0.131944 2.46042 V2 3.07205 0.118056 2.43841 - N0 -0.144371 -0.459364 0.876437 N1 -0.0300305 -0.615625 0.787467 N2 -0.0103804 -0.938666 0.344672 - txt003 -STRI - V0 3.07205 0.118056 2.43841 V1 3.18654 0.104938 2.44186 V2 3.2454 0.117284 2.46543 - N0 -0.0103804 -0.938666 0.344672 N1 -0.199105 -0.721639 0.663019 N2 -0.144371 -0.459364 0.876437 - txt003 -STRI - V0 3.11389 0.131944 2.46042 V1 2.98237 0.117284 2.4554 V2 2.95756 0.104938 2.43496 - N0 -0.0300305 -0.615625 0.787467 N1 0.148477 -0.721529 0.676277 N2 0.241288 -0.970358 -0.0136399 - txt003 -STRI - V0 2.95756 0.104938 2.43496 V1 3.07205 0.118056 2.43841 V2 3.11389 0.131944 2.46042 - N0 0.241288 -0.970358 -0.0136399 N1 -0.0103804 -0.938666 0.344672 N2 -0.0300305 -0.615625 0.787467 - txt003 -STRI - V0 2.98237 0.117284 2.4554 V1 2.88121 0.0733025 2.45154 V2 2.86949 0.0655864 2.43231 - N0 0.148477 -0.721529 0.676277 N1 0.507715 -0.682832 0.525324 N2 0.577416 -0.711734 -0.400031 - txt003 -STRI - V0 2.86949 0.0655864 2.43231 V1 2.95756 0.104938 2.43496 V2 2.98237 0.117284 2.4554 - N0 0.577416 -0.711734 -0.400031 N1 0.241288 -0.970358 -0.0136399 N2 0.148477 -0.721529 0.676277 - txt003 -STRI - V0 2.88121 0.0733025 2.45154 V1 2.84074 0 2.45 V2 2.83426 0 2.43125 - N0 0.507715 -0.682832 0.525324 N1 0.913812 -4.13289e-15 0.406138 N2 0.789352 -1.30938e-15 -0.613941 - txt003 -STRI - V0 2.83426 0 2.43125 V1 2.86949 0.0655864 2.43231 V2 2.88121 0.0733025 2.45154 - N0 0.789352 -1.30938e-15 -0.613941 N1 0.577416 -0.711734 -0.400031 N2 0.507715 -0.682832 0.525324 - txt003 -STRI - V0 3.30984 0 2.44557 V1 3.27461 0.0655864 2.44451 V2 3.17037 0.0625 2.4 - N0 -0.349987 0 0.936755 N1 -0.316294 -0.364979 0.875641 N2 -0.378646 -0.420717 0.824393 - txt003 -STRI - V0 3.17037 0.0625 2.4 V1 3.2 0 2.4 V2 3.30984 0 2.44557 - N0 -0.378646 -0.420717 0.824393 N1 -0.410365 0 0.911922 N2 -0.349987 0 0.936755 - txt003 -STRI - V0 3.27461 0.0655864 2.44451 V1 3.18654 0.104938 2.44186 V2 3.0963 0.1 2.4 - N0 -0.316294 -0.364979 0.875641 N1 -0.199105 -0.721639 0.663019 N2 -0.236617 -0.841304 0.486024 - txt003 -STRI - V0 3.0963 0.1 2.4 V1 3.17037 0.0625 2.4 V2 3.27461 0.0655864 2.44451 - N0 -0.236617 -0.841304 0.486024 N1 -0.378646 -0.420717 0.824393 N2 -0.316294 -0.364979 0.875641 - txt003 -STRI - V0 3.18654 0.104938 2.44186 V1 3.07205 0.118056 2.43841 V2 3 0.1125 2.4 - N0 -0.199105 -0.721639 0.663019 N1 -0.0103804 -0.938666 0.344672 N2 0 -1 0 - txt003 -STRI - V0 3 0.1125 2.4 V1 3.0963 0.1 2.4 V2 3.18654 0.104938 2.44186 - N0 0 -1 0 N1 -0.236617 -0.841304 0.486024 N2 -0.199105 -0.721639 0.663019 - txt003 -STRI - V0 3.07205 0.118056 2.43841 V1 2.95756 0.104938 2.43496 V2 2.9037 0.1 2.4 - N0 -0.0103804 -0.938666 0.344672 N1 0.241288 -0.970358 -0.0136399 N2 0.247465 -0.879877 -0.405681 - txt003 -STRI - V0 2.9037 0.1 2.4 V1 3 0.1125 2.4 V2 3.07205 0.118056 2.43841 - N0 0.247465 -0.879877 -0.405681 N1 0 -1 0 N2 -0.0103804 -0.938666 0.344672 - txt003 -STRI - V0 2.95756 0.104938 2.43496 V1 2.86949 0.0655864 2.43231 V2 2.82963 0.0625 2.4 - N0 0.241288 -0.970358 -0.0136399 N1 0.577416 -0.711734 -0.400031 N2 0.483629 -0.537366 -0.690899 - txt003 -STRI - V0 2.82963 0.0625 2.4 V1 2.9037 0.1 2.4 V2 2.95756 0.104938 2.43496 - N0 0.483629 -0.537366 -0.690899 N1 0.247465 -0.879877 -0.405681 N2 0.241288 -0.970358 -0.0136399 - txt003 -STRI - V0 2.86949 0.0655864 2.43231 V1 2.83426 0 2.43125 V2 2.8 0 2.4 - N0 0.577416 -0.711734 -0.400031 N1 0.789352 -1.30938e-15 -0.613941 N2 0.6 -3.73979e-29 -0.8 - txt003 -STRI - V0 2.8 0 2.4 V1 2.82963 0.0625 2.4 V2 2.86949 0.0655864 2.43231 - N0 0.6 -3.73979e-29 -0.8 N1 0.483629 -0.537366 -0.690899 N2 0.577416 -0.711734 -0.400031 - txt003 -STRI - V0 0.268946 -0.0750782 3.12708 V1 0.278704 0 3.12708 V2 0 0 3.15 - N0 0.241077 -0.0645609 0.968356 N1 0.249998 0 0.968246 N2 0 0 1 - txt003 -STRI - V0 0.241285 -0.141931 3.12708 V1 0.268946 -0.0750782 3.12708 V2 0 0 3.15 - N0 0.215548 -0.124615 0.968509 N1 0.241077 -0.0645609 0.968356 N2 0 0 1 - txt003 -STRI - V0 0.19814 -0.19814 3.12708 V1 0.241285 -0.141931 3.12708 V2 0 0 3.15 - N0 0.175885 -0.175885 0.96857 N1 0.215548 -0.124615 0.968509 N2 0 0 1 - txt003 -STRI - V0 0.141931 -0.241285 3.12708 V1 0.19814 -0.19814 3.12708 V2 0 0 3.15 - N0 0.124615 -0.215548 0.968509 N1 0.175885 -0.175885 0.96857 N2 0 0 1 - txt003 -STRI - V0 0.0750782 -0.268946 3.12708 V1 0.141931 -0.241285 3.12708 V2 0 0 3.15 - N0 0.0645609 -0.241077 0.968356 N1 0.124615 -0.215548 0.968509 N2 0 0 1 - txt003 -STRI - V0 0 -0.278704 3.12708 V1 0.0750782 -0.268946 3.12708 V2 0 0 3.15 - N0 -2.80184e-15 -0.249998 0.968246 N1 0.0645609 -0.241077 0.968356 N2 0 0 1 - txt003 -STRI - V0 0.278704 0 3.12708 V1 0.268946 -0.0750782 3.12708 V2 0.350254 -0.0977709 3.06667 - N0 0.249998 0 0.968246 N1 0.241077 -0.0645609 0.968356 N2 0.955496 -0.255913 0.146755 - txt003 -STRI - V0 0.350254 -0.0977709 3.06667 V1 0.362963 0 3.06667 V2 0.278704 0 3.12708 - N0 0.955496 -0.255913 0.146755 N1 0.989203 0 0.146549 N2 0.249998 0 0.968246 - txt003 -STRI - V0 0.268946 -0.0750782 3.12708 V1 0.241285 -0.141931 3.12708 V2 0.314228 -0.184834 3.06667 - N0 0.241077 -0.0645609 0.968356 N1 0.215548 -0.124615 0.968509 N2 0.856312 -0.495088 0.147029 - txt003 -STRI - V0 0.314228 -0.184834 3.06667 V1 0.350254 -0.0977709 3.06667 V2 0.268946 -0.0750782 3.12708 - N0 0.856312 -0.495088 0.147029 N1 0.955496 -0.255913 0.146755 N2 0.241077 -0.0645609 0.968356 - txt003 -STRI - V0 0.241285 -0.141931 3.12708 V1 0.19814 -0.19814 3.12708 V2 0.258037 -0.258037 3.06667 - N0 0.215548 -0.124615 0.968509 N1 0.175885 -0.175885 0.96857 N2 0.699411 -0.699411 0.147135 - txt003 -STRI - V0 0.258037 -0.258037 3.06667 V1 0.314228 -0.184834 3.06667 V2 0.241285 -0.141931 3.12708 - N0 0.699411 -0.699411 0.147135 N1 0.856312 -0.495088 0.147029 N2 0.215548 -0.124615 0.968509 - txt003 -STRI - V0 0.19814 -0.19814 3.12708 V1 0.141931 -0.241285 3.12708 V2 0.184834 -0.314228 3.06667 - N0 0.175885 -0.175885 0.96857 N1 0.124615 -0.215548 0.968509 N2 0.495088 -0.856312 0.147029 - txt003 -STRI - V0 0.184834 -0.314228 3.06667 V1 0.258037 -0.258037 3.06667 V2 0.19814 -0.19814 3.12708 - N0 0.495088 -0.856312 0.147029 N1 0.699411 -0.699411 0.147135 N2 0.175885 -0.175885 0.96857 - txt003 -STRI - V0 0.141931 -0.241285 3.12708 V1 0.0750782 -0.268946 3.12708 V2 0.0977709 -0.350254 3.06667 - N0 0.124615 -0.215548 0.968509 N1 0.0645609 -0.241077 0.968356 N2 0.255913 -0.955496 0.146755 - txt003 -STRI - V0 0.0977709 -0.350254 3.06667 V1 0.184834 -0.314228 3.06667 V2 0.141931 -0.241285 3.12708 - N0 0.255913 -0.955496 0.146755 N1 0.495088 -0.856312 0.147029 N2 0.124615 -0.215548 0.968509 - txt003 -STRI - V0 0.0750782 -0.268946 3.12708 V1 0 -0.278704 3.12708 V2 0 -0.362963 3.06667 - N0 0.0645609 -0.241077 0.968356 N1 -2.80184e-15 -0.249998 0.968246 N2 -4.98112e-16 -0.989203 0.146549 - txt003 -STRI - V0 0 -0.362963 3.06667 V1 0.0977709 -0.350254 3.06667 V2 0.0750782 -0.268946 3.12708 - N0 -4.98112e-16 -0.989203 0.146549 N1 0.255913 -0.955496 0.146755 N2 0.0645609 -0.241077 0.968356 - txt003 -STRI - V0 0.362963 0 3.06667 V1 0.350254 -0.0977709 3.06667 V2 0.313617 -0.0875289 2.98125 - N0 0.989203 0 0.146549 N1 0.955496 -0.255913 0.146755 N2 0.753688 -0.201937 -0.625441 - txt003 -STRI - V0 0.313617 -0.0875289 2.98125 V1 0.325 0 2.98125 V2 0.362963 0 3.06667 - N0 0.753688 -0.201937 -0.625441 N1 0.780869 0 -0.624695 N2 0.989203 0 0.146549 - txt003 -STRI - V0 0.350254 -0.0977709 3.06667 V1 0.314228 -0.184834 3.06667 V2 0.281352 -0.165481 2.98125 - N0 0.955496 -0.255913 0.146755 N1 0.856312 -0.495088 0.147029 N2 0.674735 -0.390178 -0.626493 - txt003 -STRI - V0 0.281352 -0.165481 2.98125 V1 0.313617 -0.0875289 2.98125 V2 0.350254 -0.0977709 3.06667 - N0 0.674735 -0.390178 -0.626493 N1 0.753688 -0.201937 -0.625441 N2 0.955496 -0.255913 0.146755 - txt003 -STRI - V0 0.314228 -0.184834 3.06667 V1 0.258037 -0.258037 3.06667 V2 0.231031 -0.231031 2.98125 - N0 0.856312 -0.495088 0.147029 N1 0.699411 -0.699411 0.147135 N2 0.550896 -0.550896 -0.626919 - txt003 -STRI - V0 0.231031 -0.231031 2.98125 V1 0.281352 -0.165481 2.98125 V2 0.314228 -0.184834 3.06667 - N0 0.550896 -0.550896 -0.626919 N1 0.674735 -0.390178 -0.626493 N2 0.856312 -0.495088 0.147029 - txt003 -STRI - V0 0.258037 -0.258037 3.06667 V1 0.184834 -0.314228 3.06667 V2 0.165481 -0.281352 2.98125 - N0 0.699411 -0.699411 0.147135 N1 0.495088 -0.856312 0.147029 N2 0.390178 -0.674735 -0.626493 - txt003 -STRI - V0 0.165481 -0.281352 2.98125 V1 0.231031 -0.231031 2.98125 V2 0.258037 -0.258037 3.06667 - N0 0.390178 -0.674735 -0.626493 N1 0.550896 -0.550896 -0.626919 N2 0.699411 -0.699411 0.147135 - txt003 -STRI - V0 0.184834 -0.314228 3.06667 V1 0.0977709 -0.350254 3.06667 V2 0.0875289 -0.313617 2.98125 - N0 0.495088 -0.856312 0.147029 N1 0.255913 -0.955496 0.146755 N2 0.201937 -0.753688 -0.625441 - txt003 -STRI - V0 0.0875289 -0.313617 2.98125 V1 0.165481 -0.281352 2.98125 V2 0.184834 -0.314228 3.06667 - N0 0.201937 -0.753688 -0.625441 N1 0.390178 -0.674735 -0.626493 N2 0.495088 -0.856312 0.147029 - txt003 -STRI - V0 0.0977709 -0.350254 3.06667 V1 0 -0.362963 3.06667 V2 -1.11022e-16 -0.325 2.98125 - N0 0.255913 -0.955496 0.146755 N1 -4.98112e-16 -0.989203 0.146549 N2 1.51803e-15 -0.780869 -0.624695 - txt003 -STRI - V0 -1.11022e-16 -0.325 2.98125 V1 0.0875289 -0.313617 2.98125 V2 0.0977709 -0.350254 3.06667 - N0 1.51803e-15 -0.780869 -0.624695 N1 0.201937 -0.753688 -0.625441 N2 0.255913 -0.955496 0.146755 - txt003 -STRI - V0 0.325 0 2.98125 V1 0.313617 -0.0875289 2.98125 V2 0.228728 -0.0638032 2.88333 - N0 0.780869 0 -0.624695 N1 0.753688 -0.201937 -0.625441 N2 0.721244 -0.193465 -0.665116 - txt003 -STRI - V0 0.228728 -0.0638032 2.88333 V1 0.237037 0 2.88333 V2 0.325 0 2.98125 - N0 0.721244 -0.193465 -0.665116 N1 0.747409 0 -0.664364 N2 0.780869 0 -0.624695 - txt003 -STRI - V0 0.313617 -0.0875289 2.98125 V1 0.281352 -0.165481 2.98125 V2 0.20518 -0.120647 2.88333 - N0 0.753688 -0.201937 -0.625441 N1 0.674735 -0.390178 -0.626493 N2 0.645526 -0.373497 -0.66618 - txt003 -STRI - V0 0.20518 -0.120647 2.88333 V1 0.228728 -0.0638032 2.88333 V2 0.313617 -0.0875289 2.98125 - N0 0.645526 -0.373497 -0.66618 N1 0.721244 -0.193465 -0.665116 N2 0.753688 -0.201937 -0.625441 - txt003 -STRI - V0 0.281352 -0.165481 2.98125 V1 0.231031 -0.231031 2.98125 V2 0.168463 -0.168463 2.88333 - N0 0.674735 -0.390178 -0.626493 N1 0.550896 -0.550896 -0.626919 N2 0.527081 -0.527081 -0.666611 - txt003 -STRI - V0 0.168463 -0.168463 2.88333 V1 0.20518 -0.120647 2.88333 V2 0.281352 -0.165481 2.98125 - N0 0.527081 -0.527081 -0.666611 N1 0.645526 -0.373497 -0.66618 N2 0.674735 -0.390178 -0.626493 - txt003 -STRI - V0 0.231031 -0.231031 2.98125 V1 0.165481 -0.281352 2.98125 V2 0.120647 -0.20518 2.88333 - N0 0.550896 -0.550896 -0.626919 N1 0.390178 -0.674735 -0.626493 N2 0.373497 -0.645526 -0.66618 - txt003 -STRI - V0 0.120647 -0.20518 2.88333 V1 0.168463 -0.168463 2.88333 V2 0.231031 -0.231031 2.98125 - N0 0.373497 -0.645526 -0.66618 N1 0.527081 -0.527081 -0.666611 N2 0.550896 -0.550896 -0.626919 - txt003 -STRI - V0 0.165481 -0.281352 2.98125 V1 0.0875289 -0.313617 2.98125 V2 0.0638032 -0.228728 2.88333 - N0 0.390178 -0.674735 -0.626493 N1 0.201937 -0.753688 -0.625441 N2 0.193465 -0.721244 -0.665116 - txt003 -STRI - V0 0.0638032 -0.228728 2.88333 V1 0.120647 -0.20518 2.88333 V2 0.165481 -0.281352 2.98125 - N0 0.193465 -0.721244 -0.665116 N1 0.373497 -0.645526 -0.66618 N2 0.390178 -0.674735 -0.626493 - txt003 -STRI - V0 0.0875289 -0.313617 2.98125 V1 -1.11022e-16 -0.325 2.98125 V2 -1.11022e-16 -0.237037 2.88333 - N0 0.201937 -0.753688 -0.625441 N1 1.51803e-15 -0.780869 -0.624695 N2 2.42292e-15 -0.747409 -0.664364 - txt003 -STRI - V0 -1.11022e-16 -0.237037 2.88333 V1 0.0638032 -0.228728 2.88333 V2 0.0875289 -0.313617 2.98125 - N0 2.42292e-15 -0.747409 -0.664364 N1 0.193465 -0.721244 -0.665116 N2 0.201937 -0.753688 -0.625441 - txt003 -STRI - V0 0.237037 0 2.88333 V1 0.228728 -0.0638032 2.88333 V2 0.165279 -0.0460445 2.78542 - N0 0.747409 0 -0.664364 N1 0.721244 -0.193465 -0.665116 N2 0.917897 -0.246906 -0.310647 - txt003 -STRI - V0 0.165279 -0.0460445 2.78542 V1 0.171296 0 2.78542 V2 0.237037 0 2.88333 - N0 0.917897 -0.246906 -0.310647 N1 0.950775 0 -0.309882 N2 0.747409 0 -0.664364 - txt003 -STRI - V0 0.228728 -0.0638032 2.88333 V1 0.20518 -0.120647 2.88333 V2 0.148234 -0.0871056 2.78542 - N0 0.721244 -0.193465 -0.665116 N1 0.645526 -0.373497 -0.66618 N2 0.822132 -0.476337 -0.311772 - txt003 -STRI - V0 0.148234 -0.0871056 2.78542 V1 0.165279 -0.0460445 2.78542 V2 0.228728 -0.0638032 2.88333 - N0 0.822132 -0.476337 -0.311772 N1 0.917897 -0.246906 -0.310647 N2 0.721244 -0.193465 -0.665116 - txt003 -STRI - V0 0.20518 -0.120647 2.88333 V1 0.168463 -0.168463 2.88333 V2 0.121672 -0.121672 2.78542 - N0 0.645526 -0.373497 -0.66618 N1 0.527081 -0.527081 -0.666611 N2 0.671754 -0.671754 -0.312241 - txt003 -STRI - V0 0.121672 -0.121672 2.78542 V1 0.148234 -0.0871056 2.78542 V2 0.20518 -0.120647 2.88333 - N0 0.671754 -0.671754 -0.312241 N1 0.822132 -0.476337 -0.311772 N2 0.645526 -0.373497 -0.66618 - txt003 -STRI - V0 0.168463 -0.168463 2.88333 V1 0.120647 -0.20518 2.88333 V2 0.0871056 -0.148234 2.78542 - N0 0.527081 -0.527081 -0.666611 N1 0.373497 -0.645526 -0.66618 N2 0.476337 -0.822132 -0.311772 - txt003 -STRI - V0 0.0871056 -0.148234 2.78542 V1 0.121672 -0.121672 2.78542 V2 0.168463 -0.168463 2.88333 - N0 0.476337 -0.822132 -0.311772 N1 0.671754 -0.671754 -0.312241 N2 0.527081 -0.527081 -0.666611 - txt003 -STRI - V0 0.120647 -0.20518 2.88333 V1 0.0638032 -0.228728 2.88333 V2 0.0460445 -0.165279 2.78542 - N0 0.373497 -0.645526 -0.66618 N1 0.193465 -0.721244 -0.665116 N2 0.246906 -0.917897 -0.310647 - txt003 -STRI - V0 0.0460445 -0.165279 2.78542 V1 0.0871056 -0.148234 2.78542 V2 0.120647 -0.20518 2.88333 - N0 0.246906 -0.917897 -0.310647 N1 0.476337 -0.822132 -0.311772 N2 0.373497 -0.645526 -0.66618 - txt003 -STRI - V0 0.0638032 -0.228728 2.88333 V1 -1.11022e-16 -0.237037 2.88333 V2 -6.66134e-16 -0.171296 2.78542 - N0 0.193465 -0.721244 -0.665116 N1 2.42292e-15 -0.747409 -0.664364 N2 2.16507e-15 -0.950775 -0.309882 - txt003 -STRI - V0 -6.66134e-16 -0.171296 2.78542 V1 0.0460445 -0.165279 2.78542 V2 0.0638032 -0.228728 2.88333 - N0 2.16507e-15 -0.950775 -0.309882 N1 0.246906 -0.917897 -0.310647 N2 0.193465 -0.721244 -0.665116 - txt003 -STRI - V0 0.171296 0 2.78542 V1 0.165279 -0.0460445 2.78542 V2 0.192963 -0.0537037 2.7 - N0 0.950775 0 -0.309882 N1 0.917897 -0.246906 -0.310647 N2 0.578783 -0.15602 0.800417 - txt003 -STRI - V0 0.192963 -0.0537037 2.7 V1 0.2 0 2.7 V2 0.171296 0 2.78542 - N0 0.578783 -0.15602 0.800417 N1 0.6 0 0.8 N2 0.950775 0 -0.309882 - txt003 -STRI - V0 0.165279 -0.0460445 2.78542 V1 0.148234 -0.0871056 2.78542 V2 0.173037 -0.10163 2.7 - N0 0.917897 -0.246906 -0.310647 N1 0.822132 -0.476337 -0.311772 N2 0.517905 -0.300385 0.800964 - txt003 -STRI - V0 0.173037 -0.10163 2.7 V1 0.192963 -0.0537037 2.7 V2 0.165279 -0.0460445 2.78542 - N0 0.517905 -0.300385 0.800964 N1 0.578783 -0.15602 0.800417 N2 0.917897 -0.246906 -0.310647 - txt003 -STRI - V0 0.148234 -0.0871056 2.78542 V1 0.121672 -0.121672 2.78542 V2 0.142 -0.142 2.7 - N0 0.822132 -0.476337 -0.311772 N1 0.671754 -0.671754 -0.312241 N2 0.423155 -0.423155 0.801174 - txt003 -STRI - V0 0.142 -0.142 2.7 V1 0.173037 -0.10163 2.7 V2 0.148234 -0.0871056 2.78542 - N0 0.423155 -0.423155 0.801174 N1 0.517905 -0.300385 0.800964 N2 0.822132 -0.476337 -0.311772 - txt003 -STRI - V0 0.121672 -0.121672 2.78542 V1 0.0871056 -0.148234 2.78542 V2 0.10163 -0.173037 2.7 - N0 0.671754 -0.671754 -0.312241 N1 0.476337 -0.822132 -0.311772 N2 0.300385 -0.517905 0.800964 - txt003 -STRI - V0 0.10163 -0.173037 2.7 V1 0.142 -0.142 2.7 V2 0.121672 -0.121672 2.78542 - N0 0.300385 -0.517905 0.800964 N1 0.423155 -0.423155 0.801174 N2 0.671754 -0.671754 -0.312241 - txt003 -STRI - V0 0.0871056 -0.148234 2.78542 V1 0.0460445 -0.165279 2.78542 V2 0.0537037 -0.192963 2.7 - N0 0.476337 -0.822132 -0.311772 N1 0.246906 -0.917897 -0.310647 N2 0.15602 -0.578783 0.800417 - txt003 -STRI - V0 0.0537037 -0.192963 2.7 V1 0.10163 -0.173037 2.7 V2 0.0871056 -0.148234 2.78542 - N0 0.15602 -0.578783 0.800417 N1 0.300385 -0.517905 0.800964 N2 0.476337 -0.822132 -0.311772 - txt003 -STRI - V0 0.0460445 -0.165279 2.78542 V1 -6.66134e-16 -0.171296 2.78542 V2 0 -0.2 2.7 - N0 0.246906 -0.917897 -0.310647 N1 2.16507e-15 -0.950775 -0.309882 N2 -3.17207e-15 -0.6 0.8 - txt003 -STRI - V0 0 -0.2 2.7 V1 0.0537037 -0.192963 2.7 V2 0.0460445 -0.165279 2.78542 - N0 -3.17207e-15 -0.6 0.8 N1 0.15602 -0.578783 0.800417 N2 0.246906 -0.917897 -0.310647 - txt003 -STRI - V0 -0.0750782 -0.268946 3.12708 V1 0 -0.278704 3.12708 V2 0 0 3.15 - N0 -0.0645609 -0.241077 0.968356 N1 0 -0.249998 0.968246 N2 0 0 1 - txt003 -STRI - V0 -0.141931 -0.241285 3.12708 V1 -0.0750782 -0.268946 3.12708 V2 0 0 3.15 - N0 -0.124615 -0.215548 0.968509 N1 -0.0645609 -0.241077 0.968356 N2 0 0 1 - txt003 -STRI - V0 -0.19814 -0.19814 3.12708 V1 -0.141931 -0.241285 3.12708 V2 0 0 3.15 - N0 -0.175885 -0.175885 0.96857 N1 -0.124615 -0.215548 0.968509 N2 0 0 1 - txt003 -STRI - V0 -0.241285 -0.141931 3.12708 V1 -0.19814 -0.19814 3.12708 V2 0 0 3.15 - N0 -0.215548 -0.124615 0.968509 N1 -0.175885 -0.175885 0.96857 N2 0 0 1 - txt003 -STRI - V0 -0.268946 -0.0750782 3.12708 V1 -0.241285 -0.141931 3.12708 V2 0 0 3.15 - N0 -0.241077 -0.0645609 0.968356 N1 -0.215548 -0.124615 0.968509 N2 0 0 1 - txt003 -STRI - V0 -0.278704 0 3.12708 V1 -0.268946 -0.0750782 3.12708 V2 0 0 3.15 - N0 -0.249998 2.80184e-15 0.968246 N1 -0.241077 -0.0645609 0.968356 N2 0 0 1 - txt003 -STRI - V0 0 -0.278704 3.12708 V1 -0.0750782 -0.268946 3.12708 V2 -0.0977709 -0.350254 3.06667 - N0 0 -0.249998 0.968246 N1 -0.0645609 -0.241077 0.968356 N2 -0.255913 -0.955496 0.146755 - txt003 -STRI - V0 -0.0977709 -0.350254 3.06667 V1 0 -0.362963 3.06667 V2 0 -0.278704 3.12708 - N0 -0.255913 -0.955496 0.146755 N1 0 -0.989203 0.146549 N2 0 -0.249998 0.968246 - txt003 -STRI - V0 -0.0750782 -0.268946 3.12708 V1 -0.141931 -0.241285 3.12708 V2 -0.184834 -0.314228 3.06667 - N0 -0.0645609 -0.241077 0.968356 N1 -0.124615 -0.215548 0.968509 N2 -0.495088 -0.856312 0.147029 - txt003 -STRI - V0 -0.184834 -0.314228 3.06667 V1 -0.0977709 -0.350254 3.06667 V2 -0.0750782 -0.268946 3.12708 - N0 -0.495088 -0.856312 0.147029 N1 -0.255913 -0.955496 0.146755 N2 -0.0645609 -0.241077 0.968356 - txt003 -STRI - V0 -0.141931 -0.241285 3.12708 V1 -0.19814 -0.19814 3.12708 V2 -0.258037 -0.258037 3.06667 - N0 -0.124615 -0.215548 0.968509 N1 -0.175885 -0.175885 0.96857 N2 -0.699411 -0.699411 0.147135 - txt003 -STRI - V0 -0.258037 -0.258037 3.06667 V1 -0.184834 -0.314228 3.06667 V2 -0.141931 -0.241285 3.12708 - N0 -0.699411 -0.699411 0.147135 N1 -0.495088 -0.856312 0.147029 N2 -0.124615 -0.215548 0.968509 - txt003 -STRI - V0 -0.19814 -0.19814 3.12708 V1 -0.241285 -0.141931 3.12708 V2 -0.314228 -0.184834 3.06667 - N0 -0.175885 -0.175885 0.96857 N1 -0.215548 -0.124615 0.968509 N2 -0.856312 -0.495088 0.147029 - txt003 -STRI - V0 -0.314228 -0.184834 3.06667 V1 -0.258037 -0.258037 3.06667 V2 -0.19814 -0.19814 3.12708 - N0 -0.856312 -0.495088 0.147029 N1 -0.699411 -0.699411 0.147135 N2 -0.175885 -0.175885 0.96857 - txt003 -STRI - V0 -0.241285 -0.141931 3.12708 V1 -0.268946 -0.0750782 3.12708 V2 -0.350254 -0.0977709 3.06667 - N0 -0.215548 -0.124615 0.968509 N1 -0.241077 -0.0645609 0.968356 N2 -0.955496 -0.255913 0.146755 - txt003 -STRI - V0 -0.350254 -0.0977709 3.06667 V1 -0.314228 -0.184834 3.06667 V2 -0.241285 -0.141931 3.12708 - N0 -0.955496 -0.255913 0.146755 N1 -0.856312 -0.495088 0.147029 N2 -0.215548 -0.124615 0.968509 - txt003 -STRI - V0 -0.268946 -0.0750782 3.12708 V1 -0.278704 0 3.12708 V2 -0.362963 0 3.06667 - N0 -0.241077 -0.0645609 0.968356 N1 -0.249998 2.80184e-15 0.968246 N2 -0.989203 4.98112e-16 0.146549 - txt003 -STRI - V0 -0.362963 0 3.06667 V1 -0.350254 -0.0977709 3.06667 V2 -0.268946 -0.0750782 3.12708 - N0 -0.989203 4.98112e-16 0.146549 N1 -0.955496 -0.255913 0.146755 N2 -0.241077 -0.0645609 0.968356 - txt003 -STRI - V0 0 -0.362963 3.06667 V1 -0.0977709 -0.350254 3.06667 V2 -0.0875289 -0.313617 2.98125 - N0 0 -0.989203 0.146549 N1 -0.255913 -0.955496 0.146755 N2 -0.201937 -0.753688 -0.625441 - txt003 -STRI - V0 -0.0875289 -0.313617 2.98125 V1 0 -0.325 2.98125 V2 0 -0.362963 3.06667 - N0 -0.201937 -0.753688 -0.625441 N1 -0 -0.780869 -0.624695 N2 0 -0.989203 0.146549 - txt003 -STRI - V0 -0.0977709 -0.350254 3.06667 V1 -0.184834 -0.314228 3.06667 V2 -0.165481 -0.281352 2.98125 - N0 -0.255913 -0.955496 0.146755 N1 -0.495088 -0.856312 0.147029 N2 -0.390178 -0.674735 -0.626493 - txt003 -STRI - V0 -0.165481 -0.281352 2.98125 V1 -0.0875289 -0.313617 2.98125 V2 -0.0977709 -0.350254 3.06667 - N0 -0.390178 -0.674735 -0.626493 N1 -0.201937 -0.753688 -0.625441 N2 -0.255913 -0.955496 0.146755 - txt003 -STRI - V0 -0.184834 -0.314228 3.06667 V1 -0.258037 -0.258037 3.06667 V2 -0.231031 -0.231031 2.98125 - N0 -0.495088 -0.856312 0.147029 N1 -0.699411 -0.699411 0.147135 N2 -0.550896 -0.550896 -0.626919 - txt003 -STRI - V0 -0.231031 -0.231031 2.98125 V1 -0.165481 -0.281352 2.98125 V2 -0.184834 -0.314228 3.06667 - N0 -0.550896 -0.550896 -0.626919 N1 -0.390178 -0.674735 -0.626493 N2 -0.495088 -0.856312 0.147029 - txt003 -STRI - V0 -0.258037 -0.258037 3.06667 V1 -0.314228 -0.184834 3.06667 V2 -0.281352 -0.165481 2.98125 - N0 -0.699411 -0.699411 0.147135 N1 -0.856312 -0.495088 0.147029 N2 -0.674735 -0.390178 -0.626493 - txt003 -STRI - V0 -0.281352 -0.165481 2.98125 V1 -0.231031 -0.231031 2.98125 V2 -0.258037 -0.258037 3.06667 - N0 -0.674735 -0.390178 -0.626493 N1 -0.550896 -0.550896 -0.626919 N2 -0.699411 -0.699411 0.147135 - txt003 -STRI - V0 -0.314228 -0.184834 3.06667 V1 -0.350254 -0.0977709 3.06667 V2 -0.313617 -0.0875289 2.98125 - N0 -0.856312 -0.495088 0.147029 N1 -0.955496 -0.255913 0.146755 N2 -0.753688 -0.201937 -0.625441 - txt003 -STRI - V0 -0.313617 -0.0875289 2.98125 V1 -0.281352 -0.165481 2.98125 V2 -0.314228 -0.184834 3.06667 - N0 -0.753688 -0.201937 -0.625441 N1 -0.674735 -0.390178 -0.626493 N2 -0.856312 -0.495088 0.147029 - txt003 -STRI - V0 -0.350254 -0.0977709 3.06667 V1 -0.362963 0 3.06667 V2 -0.325 1.11022e-16 2.98125 - N0 -0.955496 -0.255913 0.146755 N1 -0.989203 4.98112e-16 0.146549 N2 -0.780869 -1.51803e-15 -0.624695 - txt003 -STRI - V0 -0.325 1.11022e-16 2.98125 V1 -0.313617 -0.0875289 2.98125 V2 -0.350254 -0.0977709 3.06667 - N0 -0.780869 -1.51803e-15 -0.624695 N1 -0.753688 -0.201937 -0.625441 N2 -0.955496 -0.255913 0.146755 - txt003 -STRI - V0 0 -0.325 2.98125 V1 -0.0875289 -0.313617 2.98125 V2 -0.0638032 -0.228728 2.88333 - N0 -0 -0.780869 -0.624695 N1 -0.201937 -0.753688 -0.625441 N2 -0.193465 -0.721244 -0.665116 - txt003 -STRI - V0 -0.0638032 -0.228728 2.88333 V1 0 -0.237037 2.88333 V2 0 -0.325 2.98125 - N0 -0.193465 -0.721244 -0.665116 N1 -0 -0.747409 -0.664364 N2 -0 -0.780869 -0.624695 - txt003 -STRI - V0 -0.0875289 -0.313617 2.98125 V1 -0.165481 -0.281352 2.98125 V2 -0.120647 -0.20518 2.88333 - N0 -0.201937 -0.753688 -0.625441 N1 -0.390178 -0.674735 -0.626493 N2 -0.373497 -0.645526 -0.66618 - txt003 -STRI - V0 -0.120647 -0.20518 2.88333 V1 -0.0638032 -0.228728 2.88333 V2 -0.0875289 -0.313617 2.98125 - N0 -0.373497 -0.645526 -0.66618 N1 -0.193465 -0.721244 -0.665116 N2 -0.201937 -0.753688 -0.625441 - txt003 -STRI - V0 -0.165481 -0.281352 2.98125 V1 -0.231031 -0.231031 2.98125 V2 -0.168463 -0.168463 2.88333 - N0 -0.390178 -0.674735 -0.626493 N1 -0.550896 -0.550896 -0.626919 N2 -0.527081 -0.527081 -0.666611 - txt003 -STRI - V0 -0.168463 -0.168463 2.88333 V1 -0.120647 -0.20518 2.88333 V2 -0.165481 -0.281352 2.98125 - N0 -0.527081 -0.527081 -0.666611 N1 -0.373497 -0.645526 -0.66618 N2 -0.390178 -0.674735 -0.626493 - txt003 -STRI - V0 -0.231031 -0.231031 2.98125 V1 -0.281352 -0.165481 2.98125 V2 -0.20518 -0.120647 2.88333 - N0 -0.550896 -0.550896 -0.626919 N1 -0.674735 -0.390178 -0.626493 N2 -0.645526 -0.373497 -0.66618 - txt003 -STRI - V0 -0.20518 -0.120647 2.88333 V1 -0.168463 -0.168463 2.88333 V2 -0.231031 -0.231031 2.98125 - N0 -0.645526 -0.373497 -0.66618 N1 -0.527081 -0.527081 -0.666611 N2 -0.550896 -0.550896 -0.626919 - txt003 -STRI - V0 -0.281352 -0.165481 2.98125 V1 -0.313617 -0.0875289 2.98125 V2 -0.228728 -0.0638032 2.88333 - N0 -0.674735 -0.390178 -0.626493 N1 -0.753688 -0.201937 -0.625441 N2 -0.721244 -0.193465 -0.665116 - txt003 -STRI - V0 -0.228728 -0.0638032 2.88333 V1 -0.20518 -0.120647 2.88333 V2 -0.281352 -0.165481 2.98125 - N0 -0.721244 -0.193465 -0.665116 N1 -0.645526 -0.373497 -0.66618 N2 -0.674735 -0.390178 -0.626493 - txt003 -STRI - V0 -0.313617 -0.0875289 2.98125 V1 -0.325 1.11022e-16 2.98125 V2 -0.237037 1.11022e-16 2.88333 - N0 -0.753688 -0.201937 -0.625441 N1 -0.780869 -1.51803e-15 -0.624695 N2 -0.747409 -2.42292e-15 -0.664364 - txt003 -STRI - V0 -0.237037 1.11022e-16 2.88333 V1 -0.228728 -0.0638032 2.88333 V2 -0.313617 -0.0875289 2.98125 - N0 -0.747409 -2.42292e-15 -0.664364 N1 -0.721244 -0.193465 -0.665116 N2 -0.753688 -0.201937 -0.625441 - txt003 -STRI - V0 0 -0.237037 2.88333 V1 -0.0638032 -0.228728 2.88333 V2 -0.0460445 -0.165279 2.78542 - N0 -0 -0.747409 -0.664364 N1 -0.193465 -0.721244 -0.665116 N2 -0.246906 -0.917897 -0.310647 - txt003 -STRI - V0 -0.0460445 -0.165279 2.78542 V1 0 -0.171296 2.78542 V2 0 -0.237037 2.88333 - N0 -0.246906 -0.917897 -0.310647 N1 -0 -0.950775 -0.309882 N2 -0 -0.747409 -0.664364 - txt003 -STRI - V0 -0.0638032 -0.228728 2.88333 V1 -0.120647 -0.20518 2.88333 V2 -0.0871056 -0.148234 2.78542 - N0 -0.193465 -0.721244 -0.665116 N1 -0.373497 -0.645526 -0.66618 N2 -0.476337 -0.822132 -0.311772 - txt003 -STRI - V0 -0.0871056 -0.148234 2.78542 V1 -0.0460445 -0.165279 2.78542 V2 -0.0638032 -0.228728 2.88333 - N0 -0.476337 -0.822132 -0.311772 N1 -0.246906 -0.917897 -0.310647 N2 -0.193465 -0.721244 -0.665116 - txt003 -STRI - V0 -0.120647 -0.20518 2.88333 V1 -0.168463 -0.168463 2.88333 V2 -0.121672 -0.121672 2.78542 - N0 -0.373497 -0.645526 -0.66618 N1 -0.527081 -0.527081 -0.666611 N2 -0.671754 -0.671754 -0.312241 - txt003 -STRI - V0 -0.121672 -0.121672 2.78542 V1 -0.0871056 -0.148234 2.78542 V2 -0.120647 -0.20518 2.88333 - N0 -0.671754 -0.671754 -0.312241 N1 -0.476337 -0.822132 -0.311772 N2 -0.373497 -0.645526 -0.66618 - txt003 -STRI - V0 -0.168463 -0.168463 2.88333 V1 -0.20518 -0.120647 2.88333 V2 -0.148234 -0.0871056 2.78542 - N0 -0.527081 -0.527081 -0.666611 N1 -0.645526 -0.373497 -0.66618 N2 -0.822132 -0.476337 -0.311772 - txt003 -STRI - V0 -0.148234 -0.0871056 2.78542 V1 -0.121672 -0.121672 2.78542 V2 -0.168463 -0.168463 2.88333 - N0 -0.822132 -0.476337 -0.311772 N1 -0.671754 -0.671754 -0.312241 N2 -0.527081 -0.527081 -0.666611 - txt003 -STRI - V0 -0.20518 -0.120647 2.88333 V1 -0.228728 -0.0638032 2.88333 V2 -0.165279 -0.0460445 2.78542 - N0 -0.645526 -0.373497 -0.66618 N1 -0.721244 -0.193465 -0.665116 N2 -0.917897 -0.246906 -0.310647 - txt003 -STRI - V0 -0.165279 -0.0460445 2.78542 V1 -0.148234 -0.0871056 2.78542 V2 -0.20518 -0.120647 2.88333 - N0 -0.917897 -0.246906 -0.310647 N1 -0.822132 -0.476337 -0.311772 N2 -0.645526 -0.373497 -0.66618 - txt003 -STRI - V0 -0.228728 -0.0638032 2.88333 V1 -0.237037 1.11022e-16 2.88333 V2 -0.171296 6.66134e-16 2.78542 - N0 -0.721244 -0.193465 -0.665116 N1 -0.747409 -2.42292e-15 -0.664364 N2 -0.950775 -2.16507e-15 -0.309882 - txt003 -STRI - V0 -0.171296 6.66134e-16 2.78542 V1 -0.165279 -0.0460445 2.78542 V2 -0.228728 -0.0638032 2.88333 - N0 -0.950775 -2.16507e-15 -0.309882 N1 -0.917897 -0.246906 -0.310647 N2 -0.721244 -0.193465 -0.665116 - txt003 -STRI - V0 0 -0.171296 2.78542 V1 -0.0460445 -0.165279 2.78542 V2 -0.0537037 -0.192963 2.7 - N0 -0 -0.950775 -0.309882 N1 -0.246906 -0.917897 -0.310647 N2 -0.15602 -0.578783 0.800417 - txt003 -STRI - V0 -0.0537037 -0.192963 2.7 V1 0 -0.2 2.7 V2 0 -0.171296 2.78542 - N0 -0.15602 -0.578783 0.800417 N1 0 -0.6 0.8 N2 -0 -0.950775 -0.309882 - txt003 -STRI - V0 -0.0460445 -0.165279 2.78542 V1 -0.0871056 -0.148234 2.78542 V2 -0.10163 -0.173037 2.7 - N0 -0.246906 -0.917897 -0.310647 N1 -0.476337 -0.822132 -0.311772 N2 -0.300385 -0.517905 0.800964 - txt003 -STRI - V0 -0.10163 -0.173037 2.7 V1 -0.0537037 -0.192963 2.7 V2 -0.0460445 -0.165279 2.78542 - N0 -0.300385 -0.517905 0.800964 N1 -0.15602 -0.578783 0.800417 N2 -0.246906 -0.917897 -0.310647 - txt003 -STRI - V0 -0.0871056 -0.148234 2.78542 V1 -0.121672 -0.121672 2.78542 V2 -0.142 -0.142 2.7 - N0 -0.476337 -0.822132 -0.311772 N1 -0.671754 -0.671754 -0.312241 N2 -0.423155 -0.423155 0.801174 - txt003 -STRI - V0 -0.142 -0.142 2.7 V1 -0.10163 -0.173037 2.7 V2 -0.0871056 -0.148234 2.78542 - N0 -0.423155 -0.423155 0.801174 N1 -0.300385 -0.517905 0.800964 N2 -0.476337 -0.822132 -0.311772 - txt003 -STRI - V0 -0.121672 -0.121672 2.78542 V1 -0.148234 -0.0871056 2.78542 V2 -0.173037 -0.10163 2.7 - N0 -0.671754 -0.671754 -0.312241 N1 -0.822132 -0.476337 -0.311772 N2 -0.517905 -0.300385 0.800964 - txt003 -STRI - V0 -0.173037 -0.10163 2.7 V1 -0.142 -0.142 2.7 V2 -0.121672 -0.121672 2.78542 - N0 -0.517905 -0.300385 0.800964 N1 -0.423155 -0.423155 0.801174 N2 -0.671754 -0.671754 -0.312241 - txt003 -STRI - V0 -0.148234 -0.0871056 2.78542 V1 -0.165279 -0.0460445 2.78542 V2 -0.192963 -0.0537037 2.7 - N0 -0.822132 -0.476337 -0.311772 N1 -0.917897 -0.246906 -0.310647 N2 -0.578783 -0.15602 0.800417 - txt003 -STRI - V0 -0.192963 -0.0537037 2.7 V1 -0.173037 -0.10163 2.7 V2 -0.148234 -0.0871056 2.78542 - N0 -0.578783 -0.15602 0.800417 N1 -0.517905 -0.300385 0.800964 N2 -0.822132 -0.476337 -0.311772 - txt003 -STRI - V0 -0.165279 -0.0460445 2.78542 V1 -0.171296 6.66134e-16 2.78542 V2 -0.2 0 2.7 - N0 -0.917897 -0.246906 -0.310647 N1 -0.950775 -2.16507e-15 -0.309882 N2 -0.6 3.17207e-15 0.8 - txt003 -STRI - V0 -0.2 0 2.7 V1 -0.192963 -0.0537037 2.7 V2 -0.165279 -0.0460445 2.78542 - N0 -0.6 3.17207e-15 0.8 N1 -0.578783 -0.15602 0.800417 N2 -0.917897 -0.246906 -0.310647 - txt003 -STRI - V0 -0.268946 0.0750782 3.12708 V1 -0.278704 0 3.12708 V2 0 0 3.15 - N0 -0.241077 0.0645609 0.968356 N1 -0.249998 0 0.968246 N2 0 0 1 - txt003 -STRI - V0 -0.241285 0.141931 3.12708 V1 -0.268946 0.0750782 3.12708 V2 0 0 3.15 - N0 -0.215548 0.124615 0.968509 N1 -0.241077 0.0645609 0.968356 N2 0 0 1 - txt003 -STRI - V0 -0.19814 0.19814 3.12708 V1 -0.241285 0.141931 3.12708 V2 0 0 3.15 - N0 -0.175885 0.175885 0.96857 N1 -0.215548 0.124615 0.968509 N2 0 0 1 - txt003 -STRI - V0 -0.141931 0.241285 3.12708 V1 -0.19814 0.19814 3.12708 V2 0 0 3.15 - N0 -0.124615 0.215548 0.968509 N1 -0.175885 0.175885 0.96857 N2 0 0 1 - txt003 -STRI - V0 -0.0750782 0.268946 3.12708 V1 -0.141931 0.241285 3.12708 V2 0 0 3.15 - N0 -0.0645609 0.241077 0.968356 N1 -0.124615 0.215548 0.968509 N2 0 0 1 - txt003 -STRI - V0 0 0.278704 3.12708 V1 -0.0750782 0.268946 3.12708 V2 0 0 3.15 - N0 2.80184e-15 0.249998 0.968246 N1 -0.0645609 0.241077 0.968356 N2 0 0 1 - txt003 -STRI - V0 -0.278704 0 3.12708 V1 -0.268946 0.0750782 3.12708 V2 -0.350254 0.0977709 3.06667 - N0 -0.249998 0 0.968246 N1 -0.241077 0.0645609 0.968356 N2 -0.955496 0.255913 0.146755 - txt003 -STRI - V0 -0.350254 0.0977709 3.06667 V1 -0.362963 0 3.06667 V2 -0.278704 0 3.12708 - N0 -0.955496 0.255913 0.146755 N1 -0.989203 0 0.146549 N2 -0.249998 0 0.968246 - txt003 -STRI - V0 -0.268946 0.0750782 3.12708 V1 -0.241285 0.141931 3.12708 V2 -0.314228 0.184834 3.06667 - N0 -0.241077 0.0645609 0.968356 N1 -0.215548 0.124615 0.968509 N2 -0.856312 0.495088 0.147029 - txt003 -STRI - V0 -0.314228 0.184834 3.06667 V1 -0.350254 0.0977709 3.06667 V2 -0.268946 0.0750782 3.12708 - N0 -0.856312 0.495088 0.147029 N1 -0.955496 0.255913 0.146755 N2 -0.241077 0.0645609 0.968356 - txt003 -STRI - V0 -0.241285 0.141931 3.12708 V1 -0.19814 0.19814 3.12708 V2 -0.258037 0.258037 3.06667 - N0 -0.215548 0.124615 0.968509 N1 -0.175885 0.175885 0.96857 N2 -0.699411 0.699411 0.147135 - txt003 -STRI - V0 -0.258037 0.258037 3.06667 V1 -0.314228 0.184834 3.06667 V2 -0.241285 0.141931 3.12708 - N0 -0.699411 0.699411 0.147135 N1 -0.856312 0.495088 0.147029 N2 -0.215548 0.124615 0.968509 - txt003 -STRI - V0 -0.19814 0.19814 3.12708 V1 -0.141931 0.241285 3.12708 V2 -0.184834 0.314228 3.06667 - N0 -0.175885 0.175885 0.96857 N1 -0.124615 0.215548 0.968509 N2 -0.495088 0.856312 0.147029 - txt003 -STRI - V0 -0.184834 0.314228 3.06667 V1 -0.258037 0.258037 3.06667 V2 -0.19814 0.19814 3.12708 - N0 -0.495088 0.856312 0.147029 N1 -0.699411 0.699411 0.147135 N2 -0.175885 0.175885 0.96857 - txt003 -STRI - V0 -0.141931 0.241285 3.12708 V1 -0.0750782 0.268946 3.12708 V2 -0.0977709 0.350254 3.06667 - N0 -0.124615 0.215548 0.968509 N1 -0.0645609 0.241077 0.968356 N2 -0.255913 0.955496 0.146755 - txt003 -STRI - V0 -0.0977709 0.350254 3.06667 V1 -0.184834 0.314228 3.06667 V2 -0.141931 0.241285 3.12708 - N0 -0.255913 0.955496 0.146755 N1 -0.495088 0.856312 0.147029 N2 -0.124615 0.215548 0.968509 - txt003 -STRI - V0 -0.0750782 0.268946 3.12708 V1 0 0.278704 3.12708 V2 0 0.362963 3.06667 - N0 -0.0645609 0.241077 0.968356 N1 2.80184e-15 0.249998 0.968246 N2 4.98112e-16 0.989203 0.146549 - txt003 -STRI - V0 0 0.362963 3.06667 V1 -0.0977709 0.350254 3.06667 V2 -0.0750782 0.268946 3.12708 - N0 4.98112e-16 0.989203 0.146549 N1 -0.255913 0.955496 0.146755 N2 -0.0645609 0.241077 0.968356 - txt003 -STRI - V0 -0.362963 0 3.06667 V1 -0.350254 0.0977709 3.06667 V2 -0.313617 0.0875289 2.98125 - N0 -0.989203 0 0.146549 N1 -0.955496 0.255913 0.146755 N2 -0.753688 0.201937 -0.625441 - txt003 -STRI - V0 -0.313617 0.0875289 2.98125 V1 -0.325 0 2.98125 V2 -0.362963 0 3.06667 - N0 -0.753688 0.201937 -0.625441 N1 -0.780869 0 -0.624695 N2 -0.989203 0 0.146549 - txt003 -STRI - V0 -0.350254 0.0977709 3.06667 V1 -0.314228 0.184834 3.06667 V2 -0.281352 0.165481 2.98125 - N0 -0.955496 0.255913 0.146755 N1 -0.856312 0.495088 0.147029 N2 -0.674735 0.390178 -0.626493 - txt003 -STRI - V0 -0.281352 0.165481 2.98125 V1 -0.313617 0.0875289 2.98125 V2 -0.350254 0.0977709 3.06667 - N0 -0.674735 0.390178 -0.626493 N1 -0.753688 0.201937 -0.625441 N2 -0.955496 0.255913 0.146755 - txt003 -STRI - V0 -0.314228 0.184834 3.06667 V1 -0.258037 0.258037 3.06667 V2 -0.231031 0.231031 2.98125 - N0 -0.856312 0.495088 0.147029 N1 -0.699411 0.699411 0.147135 N2 -0.550896 0.550896 -0.626919 - txt003 -STRI - V0 -0.231031 0.231031 2.98125 V1 -0.281352 0.165481 2.98125 V2 -0.314228 0.184834 3.06667 - N0 -0.550896 0.550896 -0.626919 N1 -0.674735 0.390178 -0.626493 N2 -0.856312 0.495088 0.147029 - txt003 -STRI - V0 -0.258037 0.258037 3.06667 V1 -0.184834 0.314228 3.06667 V2 -0.165481 0.281352 2.98125 - N0 -0.699411 0.699411 0.147135 N1 -0.495088 0.856312 0.147029 N2 -0.390178 0.674735 -0.626493 - txt003 -STRI - V0 -0.165481 0.281352 2.98125 V1 -0.231031 0.231031 2.98125 V2 -0.258037 0.258037 3.06667 - N0 -0.390178 0.674735 -0.626493 N1 -0.550896 0.550896 -0.626919 N2 -0.699411 0.699411 0.147135 - txt003 -STRI - V0 -0.184834 0.314228 3.06667 V1 -0.0977709 0.350254 3.06667 V2 -0.0875289 0.313617 2.98125 - N0 -0.495088 0.856312 0.147029 N1 -0.255913 0.955496 0.146755 N2 -0.201937 0.753688 -0.625441 - txt003 -STRI - V0 -0.0875289 0.313617 2.98125 V1 -0.165481 0.281352 2.98125 V2 -0.184834 0.314228 3.06667 - N0 -0.201937 0.753688 -0.625441 N1 -0.390178 0.674735 -0.626493 N2 -0.495088 0.856312 0.147029 - txt003 -STRI - V0 -0.0977709 0.350254 3.06667 V1 0 0.362963 3.06667 V2 1.11022e-16 0.325 2.98125 - N0 -0.255913 0.955496 0.146755 N1 4.98112e-16 0.989203 0.146549 N2 -1.51803e-15 0.780869 -0.624695 - txt003 -STRI - V0 1.11022e-16 0.325 2.98125 V1 -0.0875289 0.313617 2.98125 V2 -0.0977709 0.350254 3.06667 - N0 -1.51803e-15 0.780869 -0.624695 N1 -0.201937 0.753688 -0.625441 N2 -0.255913 0.955496 0.146755 - txt003 -STRI - V0 -0.325 0 2.98125 V1 -0.313617 0.0875289 2.98125 V2 -0.228728 0.0638032 2.88333 - N0 -0.780869 0 -0.624695 N1 -0.753688 0.201937 -0.625441 N2 -0.721244 0.193465 -0.665116 - txt003 -STRI - V0 -0.228728 0.0638032 2.88333 V1 -0.237037 0 2.88333 V2 -0.325 0 2.98125 - N0 -0.721244 0.193465 -0.665116 N1 -0.747409 0 -0.664364 N2 -0.780869 0 -0.624695 - txt003 -STRI - V0 -0.313617 0.0875289 2.98125 V1 -0.281352 0.165481 2.98125 V2 -0.20518 0.120647 2.88333 - N0 -0.753688 0.201937 -0.625441 N1 -0.674735 0.390178 -0.626493 N2 -0.645526 0.373497 -0.66618 - txt003 -STRI - V0 -0.20518 0.120647 2.88333 V1 -0.228728 0.0638032 2.88333 V2 -0.313617 0.0875289 2.98125 - N0 -0.645526 0.373497 -0.66618 N1 -0.721244 0.193465 -0.665116 N2 -0.753688 0.201937 -0.625441 - txt003 -STRI - V0 -0.281352 0.165481 2.98125 V1 -0.231031 0.231031 2.98125 V2 -0.168463 0.168463 2.88333 - N0 -0.674735 0.390178 -0.626493 N1 -0.550896 0.550896 -0.626919 N2 -0.527081 0.527081 -0.666611 - txt003 -STRI - V0 -0.168463 0.168463 2.88333 V1 -0.20518 0.120647 2.88333 V2 -0.281352 0.165481 2.98125 - N0 -0.527081 0.527081 -0.666611 N1 -0.645526 0.373497 -0.66618 N2 -0.674735 0.390178 -0.626493 - txt003 -STRI - V0 -0.231031 0.231031 2.98125 V1 -0.165481 0.281352 2.98125 V2 -0.120647 0.20518 2.88333 - N0 -0.550896 0.550896 -0.626919 N1 -0.390178 0.674735 -0.626493 N2 -0.373497 0.645526 -0.66618 - txt003 -STRI - V0 -0.120647 0.20518 2.88333 V1 -0.168463 0.168463 2.88333 V2 -0.231031 0.231031 2.98125 - N0 -0.373497 0.645526 -0.66618 N1 -0.527081 0.527081 -0.666611 N2 -0.550896 0.550896 -0.626919 - txt003 -STRI - V0 -0.165481 0.281352 2.98125 V1 -0.0875289 0.313617 2.98125 V2 -0.0638032 0.228728 2.88333 - N0 -0.390178 0.674735 -0.626493 N1 -0.201937 0.753688 -0.625441 N2 -0.193465 0.721244 -0.665116 - txt003 -STRI - V0 -0.0638032 0.228728 2.88333 V1 -0.120647 0.20518 2.88333 V2 -0.165481 0.281352 2.98125 - N0 -0.193465 0.721244 -0.665116 N1 -0.373497 0.645526 -0.66618 N2 -0.390178 0.674735 -0.626493 - txt003 -STRI - V0 -0.0875289 0.313617 2.98125 V1 1.11022e-16 0.325 2.98125 V2 1.11022e-16 0.237037 2.88333 - N0 -0.201937 0.753688 -0.625441 N1 -1.51803e-15 0.780869 -0.624695 N2 -2.42292e-15 0.747409 -0.664364 - txt003 -STRI - V0 1.11022e-16 0.237037 2.88333 V1 -0.0638032 0.228728 2.88333 V2 -0.0875289 0.313617 2.98125 - N0 -2.42292e-15 0.747409 -0.664364 N1 -0.193465 0.721244 -0.665116 N2 -0.201937 0.753688 -0.625441 - txt003 -STRI - V0 -0.237037 0 2.88333 V1 -0.228728 0.0638032 2.88333 V2 -0.165279 0.0460445 2.78542 - N0 -0.747409 0 -0.664364 N1 -0.721244 0.193465 -0.665116 N2 -0.917897 0.246906 -0.310647 - txt003 -STRI - V0 -0.165279 0.0460445 2.78542 V1 -0.171296 0 2.78542 V2 -0.237037 0 2.88333 - N0 -0.917897 0.246906 -0.310647 N1 -0.950775 0 -0.309882 N2 -0.747409 0 -0.664364 - txt003 -STRI - V0 -0.228728 0.0638032 2.88333 V1 -0.20518 0.120647 2.88333 V2 -0.148234 0.0871056 2.78542 - N0 -0.721244 0.193465 -0.665116 N1 -0.645526 0.373497 -0.66618 N2 -0.822132 0.476337 -0.311772 - txt003 -STRI - V0 -0.148234 0.0871056 2.78542 V1 -0.165279 0.0460445 2.78542 V2 -0.228728 0.0638032 2.88333 - N0 -0.822132 0.476337 -0.311772 N1 -0.917897 0.246906 -0.310647 N2 -0.721244 0.193465 -0.665116 - txt003 -STRI - V0 -0.20518 0.120647 2.88333 V1 -0.168463 0.168463 2.88333 V2 -0.121672 0.121672 2.78542 - N0 -0.645526 0.373497 -0.66618 N1 -0.527081 0.527081 -0.666611 N2 -0.671754 0.671754 -0.312241 - txt003 -STRI - V0 -0.121672 0.121672 2.78542 V1 -0.148234 0.0871056 2.78542 V2 -0.20518 0.120647 2.88333 - N0 -0.671754 0.671754 -0.312241 N1 -0.822132 0.476337 -0.311772 N2 -0.645526 0.373497 -0.66618 - txt003 -STRI - V0 -0.168463 0.168463 2.88333 V1 -0.120647 0.20518 2.88333 V2 -0.0871056 0.148234 2.78542 - N0 -0.527081 0.527081 -0.666611 N1 -0.373497 0.645526 -0.66618 N2 -0.476337 0.822132 -0.311772 - txt003 -STRI - V0 -0.0871056 0.148234 2.78542 V1 -0.121672 0.121672 2.78542 V2 -0.168463 0.168463 2.88333 - N0 -0.476337 0.822132 -0.311772 N1 -0.671754 0.671754 -0.312241 N2 -0.527081 0.527081 -0.666611 - txt003 -STRI - V0 -0.120647 0.20518 2.88333 V1 -0.0638032 0.228728 2.88333 V2 -0.0460445 0.165279 2.78542 - N0 -0.373497 0.645526 -0.66618 N1 -0.193465 0.721244 -0.665116 N2 -0.246906 0.917897 -0.310647 - txt003 -STRI - V0 -0.0460445 0.165279 2.78542 V1 -0.0871056 0.148234 2.78542 V2 -0.120647 0.20518 2.88333 - N0 -0.246906 0.917897 -0.310647 N1 -0.476337 0.822132 -0.311772 N2 -0.373497 0.645526 -0.66618 - txt003 -STRI - V0 -0.0638032 0.228728 2.88333 V1 1.11022e-16 0.237037 2.88333 V2 6.66134e-16 0.171296 2.78542 - N0 -0.193465 0.721244 -0.665116 N1 -2.42292e-15 0.747409 -0.664364 N2 -2.16507e-15 0.950775 -0.309882 - txt003 -STRI - V0 6.66134e-16 0.171296 2.78542 V1 -0.0460445 0.165279 2.78542 V2 -0.0638032 0.228728 2.88333 - N0 -2.16507e-15 0.950775 -0.309882 N1 -0.246906 0.917897 -0.310647 N2 -0.193465 0.721244 -0.665116 - txt003 -STRI - V0 -0.171296 0 2.78542 V1 -0.165279 0.0460445 2.78542 V2 -0.192963 0.0537037 2.7 - N0 -0.950775 0 -0.309882 N1 -0.917897 0.246906 -0.310647 N2 -0.578783 0.15602 0.800417 - txt003 -STRI - V0 -0.192963 0.0537037 2.7 V1 -0.2 0 2.7 V2 -0.171296 0 2.78542 - N0 -0.578783 0.15602 0.800417 N1 -0.6 0 0.8 N2 -0.950775 0 -0.309882 - txt003 -STRI - V0 -0.165279 0.0460445 2.78542 V1 -0.148234 0.0871056 2.78542 V2 -0.173037 0.10163 2.7 - N0 -0.917897 0.246906 -0.310647 N1 -0.822132 0.476337 -0.311772 N2 -0.517905 0.300385 0.800964 - txt003 -STRI - V0 -0.173037 0.10163 2.7 V1 -0.192963 0.0537037 2.7 V2 -0.165279 0.0460445 2.78542 - N0 -0.517905 0.300385 0.800964 N1 -0.578783 0.15602 0.800417 N2 -0.917897 0.246906 -0.310647 - txt003 -STRI - V0 -0.148234 0.0871056 2.78542 V1 -0.121672 0.121672 2.78542 V2 -0.142 0.142 2.7 - N0 -0.822132 0.476337 -0.311772 N1 -0.671754 0.671754 -0.312241 N2 -0.423155 0.423155 0.801174 - txt003 -STRI - V0 -0.142 0.142 2.7 V1 -0.173037 0.10163 2.7 V2 -0.148234 0.0871056 2.78542 - N0 -0.423155 0.423155 0.801174 N1 -0.517905 0.300385 0.800964 N2 -0.822132 0.476337 -0.311772 - txt003 -STRI - V0 -0.121672 0.121672 2.78542 V1 -0.0871056 0.148234 2.78542 V2 -0.10163 0.173037 2.7 - N0 -0.671754 0.671754 -0.312241 N1 -0.476337 0.822132 -0.311772 N2 -0.300385 0.517905 0.800964 - txt003 -STRI - V0 -0.10163 0.173037 2.7 V1 -0.142 0.142 2.7 V2 -0.121672 0.121672 2.78542 - N0 -0.300385 0.517905 0.800964 N1 -0.423155 0.423155 0.801174 N2 -0.671754 0.671754 -0.312241 - txt003 -STRI - V0 -0.0871056 0.148234 2.78542 V1 -0.0460445 0.165279 2.78542 V2 -0.0537037 0.192963 2.7 - N0 -0.476337 0.822132 -0.311772 N1 -0.246906 0.917897 -0.310647 N2 -0.15602 0.578783 0.800417 - txt003 -STRI - V0 -0.0537037 0.192963 2.7 V1 -0.10163 0.173037 2.7 V2 -0.0871056 0.148234 2.78542 - N0 -0.15602 0.578783 0.800417 N1 -0.300385 0.517905 0.800964 N2 -0.476337 0.822132 -0.311772 - txt003 -STRI - V0 -0.0460445 0.165279 2.78542 V1 6.66134e-16 0.171296 2.78542 V2 0 0.2 2.7 - N0 -0.246906 0.917897 -0.310647 N1 -2.16507e-15 0.950775 -0.309882 N2 3.17207e-15 0.6 0.8 - txt003 -STRI - V0 0 0.2 2.7 V1 -0.0537037 0.192963 2.7 V2 -0.0460445 0.165279 2.78542 - N0 3.17207e-15 0.6 0.8 N1 -0.15602 0.578783 0.800417 N2 -0.246906 0.917897 -0.310647 - txt003 -STRI - V0 0.0750782 0.268946 3.12708 V1 0 0.278704 3.12708 V2 0 0 3.15 - N0 0.0645609 0.241077 0.968356 N1 -0 0.249998 0.968246 N2 0 0 1 - txt003 -STRI - V0 0.141931 0.241285 3.12708 V1 0.0750782 0.268946 3.12708 V2 0 0 3.15 - N0 0.124615 0.215548 0.968509 N1 0.0645609 0.241077 0.968356 N2 0 0 1 - txt003 -STRI - V0 0.19814 0.19814 3.12708 V1 0.141931 0.241285 3.12708 V2 0 0 3.15 - N0 0.175885 0.175885 0.96857 N1 0.124615 0.215548 0.968509 N2 0 0 1 - txt003 -STRI - V0 0.241285 0.141931 3.12708 V1 0.19814 0.19814 3.12708 V2 0 0 3.15 - N0 0.215548 0.124615 0.968509 N1 0.175885 0.175885 0.96857 N2 0 0 1 - txt003 -STRI - V0 0.268946 0.0750782 3.12708 V1 0.241285 0.141931 3.12708 V2 0 0 3.15 - N0 0.241077 0.0645609 0.968356 N1 0.215548 0.124615 0.968509 N2 0 0 1 - txt003 -STRI - V0 0.278704 0 3.12708 V1 0.268946 0.0750782 3.12708 V2 0 0 3.15 - N0 0.249998 -2.80184e-15 0.968246 N1 0.241077 0.0645609 0.968356 N2 0 0 1 - txt003 -STRI - V0 0 0.278704 3.12708 V1 0.0750782 0.268946 3.12708 V2 0.0977709 0.350254 3.06667 - N0 -0 0.249998 0.968246 N1 0.0645609 0.241077 0.968356 N2 0.255913 0.955496 0.146755 - txt003 -STRI - V0 0.0977709 0.350254 3.06667 V1 0 0.362963 3.06667 V2 0 0.278704 3.12708 - N0 0.255913 0.955496 0.146755 N1 -0 0.989203 0.146549 N2 -0 0.249998 0.968246 - txt003 -STRI - V0 0.0750782 0.268946 3.12708 V1 0.141931 0.241285 3.12708 V2 0.184834 0.314228 3.06667 - N0 0.0645609 0.241077 0.968356 N1 0.124615 0.215548 0.968509 N2 0.495088 0.856312 0.147029 - txt003 -STRI - V0 0.184834 0.314228 3.06667 V1 0.0977709 0.350254 3.06667 V2 0.0750782 0.268946 3.12708 - N0 0.495088 0.856312 0.147029 N1 0.255913 0.955496 0.146755 N2 0.0645609 0.241077 0.968356 - txt003 -STRI - V0 0.141931 0.241285 3.12708 V1 0.19814 0.19814 3.12708 V2 0.258037 0.258037 3.06667 - N0 0.124615 0.215548 0.968509 N1 0.175885 0.175885 0.96857 N2 0.699411 0.699411 0.147135 - txt003 -STRI - V0 0.258037 0.258037 3.06667 V1 0.184834 0.314228 3.06667 V2 0.141931 0.241285 3.12708 - N0 0.699411 0.699411 0.147135 N1 0.495088 0.856312 0.147029 N2 0.124615 0.215548 0.968509 - txt003 -STRI - V0 0.19814 0.19814 3.12708 V1 0.241285 0.141931 3.12708 V2 0.314228 0.184834 3.06667 - N0 0.175885 0.175885 0.96857 N1 0.215548 0.124615 0.968509 N2 0.856312 0.495088 0.147029 - txt003 -STRI - V0 0.314228 0.184834 3.06667 V1 0.258037 0.258037 3.06667 V2 0.19814 0.19814 3.12708 - N0 0.856312 0.495088 0.147029 N1 0.699411 0.699411 0.147135 N2 0.175885 0.175885 0.96857 - txt003 -STRI - V0 0.241285 0.141931 3.12708 V1 0.268946 0.0750782 3.12708 V2 0.350254 0.0977709 3.06667 - N0 0.215548 0.124615 0.968509 N1 0.241077 0.0645609 0.968356 N2 0.955496 0.255913 0.146755 - txt003 -STRI - V0 0.350254 0.0977709 3.06667 V1 0.314228 0.184834 3.06667 V2 0.241285 0.141931 3.12708 - N0 0.955496 0.255913 0.146755 N1 0.856312 0.495088 0.147029 N2 0.215548 0.124615 0.968509 - txt003 -STRI - V0 0.268946 0.0750782 3.12708 V1 0.278704 0 3.12708 V2 0.362963 0 3.06667 - N0 0.241077 0.0645609 0.968356 N1 0.249998 -2.80184e-15 0.968246 N2 0.989203 -4.98112e-16 0.146549 - txt003 -STRI - V0 0.362963 0 3.06667 V1 0.350254 0.0977709 3.06667 V2 0.268946 0.0750782 3.12708 - N0 0.989203 -4.98112e-16 0.146549 N1 0.955496 0.255913 0.146755 N2 0.241077 0.0645609 0.968356 - txt003 -STRI - V0 0 0.362963 3.06667 V1 0.0977709 0.350254 3.06667 V2 0.0875289 0.313617 2.98125 - N0 -0 0.989203 0.146549 N1 0.255913 0.955496 0.146755 N2 0.201937 0.753688 -0.625441 - txt003 -STRI - V0 0.0875289 0.313617 2.98125 V1 0 0.325 2.98125 V2 0 0.362963 3.06667 - N0 0.201937 0.753688 -0.625441 N1 0 0.780869 -0.624695 N2 -0 0.989203 0.146549 - txt003 -STRI - V0 0.0977709 0.350254 3.06667 V1 0.184834 0.314228 3.06667 V2 0.165481 0.281352 2.98125 - N0 0.255913 0.955496 0.146755 N1 0.495088 0.856312 0.147029 N2 0.390178 0.674735 -0.626493 - txt003 -STRI - V0 0.165481 0.281352 2.98125 V1 0.0875289 0.313617 2.98125 V2 0.0977709 0.350254 3.06667 - N0 0.390178 0.674735 -0.626493 N1 0.201937 0.753688 -0.625441 N2 0.255913 0.955496 0.146755 - txt003 -STRI - V0 0.184834 0.314228 3.06667 V1 0.258037 0.258037 3.06667 V2 0.231031 0.231031 2.98125 - N0 0.495088 0.856312 0.147029 N1 0.699411 0.699411 0.147135 N2 0.550896 0.550896 -0.626919 - txt003 -STRI - V0 0.231031 0.231031 2.98125 V1 0.165481 0.281352 2.98125 V2 0.184834 0.314228 3.06667 - N0 0.550896 0.550896 -0.626919 N1 0.390178 0.674735 -0.626493 N2 0.495088 0.856312 0.147029 - txt003 -STRI - V0 0.258037 0.258037 3.06667 V1 0.314228 0.184834 3.06667 V2 0.281352 0.165481 2.98125 - N0 0.699411 0.699411 0.147135 N1 0.856312 0.495088 0.147029 N2 0.674735 0.390178 -0.626493 - txt003 -STRI - V0 0.281352 0.165481 2.98125 V1 0.231031 0.231031 2.98125 V2 0.258037 0.258037 3.06667 - N0 0.674735 0.390178 -0.626493 N1 0.550896 0.550896 -0.626919 N2 0.699411 0.699411 0.147135 - txt003 -STRI - V0 0.314228 0.184834 3.06667 V1 0.350254 0.0977709 3.06667 V2 0.313617 0.0875289 2.98125 - N0 0.856312 0.495088 0.147029 N1 0.955496 0.255913 0.146755 N2 0.753688 0.201937 -0.625441 - txt003 -STRI - V0 0.313617 0.0875289 2.98125 V1 0.281352 0.165481 2.98125 V2 0.314228 0.184834 3.06667 - N0 0.753688 0.201937 -0.625441 N1 0.674735 0.390178 -0.626493 N2 0.856312 0.495088 0.147029 - txt003 -STRI - V0 0.350254 0.0977709 3.06667 V1 0.362963 0 3.06667 V2 0.325 -1.11022e-16 2.98125 - N0 0.955496 0.255913 0.146755 N1 0.989203 -4.98112e-16 0.146549 N2 0.780869 1.51803e-15 -0.624695 - txt003 -STRI - V0 0.325 -1.11022e-16 2.98125 V1 0.313617 0.0875289 2.98125 V2 0.350254 0.0977709 3.06667 - N0 0.780869 1.51803e-15 -0.624695 N1 0.753688 0.201937 -0.625441 N2 0.955496 0.255913 0.146755 - txt003 -STRI - V0 0 0.325 2.98125 V1 0.0875289 0.313617 2.98125 V2 0.0638032 0.228728 2.88333 - N0 0 0.780869 -0.624695 N1 0.201937 0.753688 -0.625441 N2 0.193465 0.721244 -0.665116 - txt003 -STRI - V0 0.0638032 0.228728 2.88333 V1 0 0.237037 2.88333 V2 0 0.325 2.98125 - N0 0.193465 0.721244 -0.665116 N1 0 0.747409 -0.664364 N2 0 0.780869 -0.624695 - txt003 -STRI - V0 0.0875289 0.313617 2.98125 V1 0.165481 0.281352 2.98125 V2 0.120647 0.20518 2.88333 - N0 0.201937 0.753688 -0.625441 N1 0.390178 0.674735 -0.626493 N2 0.373497 0.645526 -0.66618 - txt003 -STRI - V0 0.120647 0.20518 2.88333 V1 0.0638032 0.228728 2.88333 V2 0.0875289 0.313617 2.98125 - N0 0.373497 0.645526 -0.66618 N1 0.193465 0.721244 -0.665116 N2 0.201937 0.753688 -0.625441 - txt003 -STRI - V0 0.165481 0.281352 2.98125 V1 0.231031 0.231031 2.98125 V2 0.168463 0.168463 2.88333 - N0 0.390178 0.674735 -0.626493 N1 0.550896 0.550896 -0.626919 N2 0.527081 0.527081 -0.666611 - txt003 -STRI - V0 0.168463 0.168463 2.88333 V1 0.120647 0.20518 2.88333 V2 0.165481 0.281352 2.98125 - N0 0.527081 0.527081 -0.666611 N1 0.373497 0.645526 -0.66618 N2 0.390178 0.674735 -0.626493 - txt003 -STRI - V0 0.231031 0.231031 2.98125 V1 0.281352 0.165481 2.98125 V2 0.20518 0.120647 2.88333 - N0 0.550896 0.550896 -0.626919 N1 0.674735 0.390178 -0.626493 N2 0.645526 0.373497 -0.66618 - txt003 -STRI - V0 0.20518 0.120647 2.88333 V1 0.168463 0.168463 2.88333 V2 0.231031 0.231031 2.98125 - N0 0.645526 0.373497 -0.66618 N1 0.527081 0.527081 -0.666611 N2 0.550896 0.550896 -0.626919 - txt003 -STRI - V0 0.281352 0.165481 2.98125 V1 0.313617 0.0875289 2.98125 V2 0.228728 0.0638032 2.88333 - N0 0.674735 0.390178 -0.626493 N1 0.753688 0.201937 -0.625441 N2 0.721244 0.193465 -0.665116 - txt003 -STRI - V0 0.228728 0.0638032 2.88333 V1 0.20518 0.120647 2.88333 V2 0.281352 0.165481 2.98125 - N0 0.721244 0.193465 -0.665116 N1 0.645526 0.373497 -0.66618 N2 0.674735 0.390178 -0.626493 - txt003 -STRI - V0 0.313617 0.0875289 2.98125 V1 0.325 -1.11022e-16 2.98125 V2 0.237037 -1.11022e-16 2.88333 - N0 0.753688 0.201937 -0.625441 N1 0.780869 1.51803e-15 -0.624695 N2 0.747409 2.42292e-15 -0.664364 - txt003 -STRI - V0 0.237037 -1.11022e-16 2.88333 V1 0.228728 0.0638032 2.88333 V2 0.313617 0.0875289 2.98125 - N0 0.747409 2.42292e-15 -0.664364 N1 0.721244 0.193465 -0.665116 N2 0.753688 0.201937 -0.625441 - txt003 -STRI - V0 0 0.237037 2.88333 V1 0.0638032 0.228728 2.88333 V2 0.0460445 0.165279 2.78542 - N0 0 0.747409 -0.664364 N1 0.193465 0.721244 -0.665116 N2 0.246906 0.917897 -0.310647 - txt003 -STRI - V0 0.0460445 0.165279 2.78542 V1 0 0.171296 2.78542 V2 0 0.237037 2.88333 - N0 0.246906 0.917897 -0.310647 N1 0 0.950775 -0.309882 N2 0 0.747409 -0.664364 - txt003 -STRI - V0 0.0638032 0.228728 2.88333 V1 0.120647 0.20518 2.88333 V2 0.0871056 0.148234 2.78542 - N0 0.193465 0.721244 -0.665116 N1 0.373497 0.645526 -0.66618 N2 0.476337 0.822132 -0.311772 - txt003 -STRI - V0 0.0871056 0.148234 2.78542 V1 0.0460445 0.165279 2.78542 V2 0.0638032 0.228728 2.88333 - N0 0.476337 0.822132 -0.311772 N1 0.246906 0.917897 -0.310647 N2 0.193465 0.721244 -0.665116 - txt003 -STRI - V0 0.120647 0.20518 2.88333 V1 0.168463 0.168463 2.88333 V2 0.121672 0.121672 2.78542 - N0 0.373497 0.645526 -0.66618 N1 0.527081 0.527081 -0.666611 N2 0.671754 0.671754 -0.312241 - txt003 -STRI - V0 0.121672 0.121672 2.78542 V1 0.0871056 0.148234 2.78542 V2 0.120647 0.20518 2.88333 - N0 0.671754 0.671754 -0.312241 N1 0.476337 0.822132 -0.311772 N2 0.373497 0.645526 -0.66618 - txt003 -STRI - V0 0.168463 0.168463 2.88333 V1 0.20518 0.120647 2.88333 V2 0.148234 0.0871056 2.78542 - N0 0.527081 0.527081 -0.666611 N1 0.645526 0.373497 -0.66618 N2 0.822132 0.476337 -0.311772 - txt003 -STRI - V0 0.148234 0.0871056 2.78542 V1 0.121672 0.121672 2.78542 V2 0.168463 0.168463 2.88333 - N0 0.822132 0.476337 -0.311772 N1 0.671754 0.671754 -0.312241 N2 0.527081 0.527081 -0.666611 - txt003 -STRI - V0 0.20518 0.120647 2.88333 V1 0.228728 0.0638032 2.88333 V2 0.165279 0.0460445 2.78542 - N0 0.645526 0.373497 -0.66618 N1 0.721244 0.193465 -0.665116 N2 0.917897 0.246906 -0.310647 - txt003 -STRI - V0 0.165279 0.0460445 2.78542 V1 0.148234 0.0871056 2.78542 V2 0.20518 0.120647 2.88333 - N0 0.917897 0.246906 -0.310647 N1 0.822132 0.476337 -0.311772 N2 0.645526 0.373497 -0.66618 - txt003 -STRI - V0 0.228728 0.0638032 2.88333 V1 0.237037 -1.11022e-16 2.88333 V2 0.171296 -6.66134e-16 2.78542 - N0 0.721244 0.193465 -0.665116 N1 0.747409 2.42292e-15 -0.664364 N2 0.950775 2.16507e-15 -0.309882 - txt003 -STRI - V0 0.171296 -6.66134e-16 2.78542 V1 0.165279 0.0460445 2.78542 V2 0.228728 0.0638032 2.88333 - N0 0.950775 2.16507e-15 -0.309882 N1 0.917897 0.246906 -0.310647 N2 0.721244 0.193465 -0.665116 - txt003 -STRI - V0 0 0.171296 2.78542 V1 0.0460445 0.165279 2.78542 V2 0.0537037 0.192963 2.7 - N0 0 0.950775 -0.309882 N1 0.246906 0.917897 -0.310647 N2 0.15602 0.578783 0.800417 - txt003 -STRI - V0 0.0537037 0.192963 2.7 V1 0 0.2 2.7 V2 0 0.171296 2.78542 - N0 0.15602 0.578783 0.800417 N1 -0 0.6 0.8 N2 0 0.950775 -0.309882 - txt003 -STRI - V0 0.0460445 0.165279 2.78542 V1 0.0871056 0.148234 2.78542 V2 0.10163 0.173037 2.7 - N0 0.246906 0.917897 -0.310647 N1 0.476337 0.822132 -0.311772 N2 0.300385 0.517905 0.800964 - txt003 -STRI - V0 0.10163 0.173037 2.7 V1 0.0537037 0.192963 2.7 V2 0.0460445 0.165279 2.78542 - N0 0.300385 0.517905 0.800964 N1 0.15602 0.578783 0.800417 N2 0.246906 0.917897 -0.310647 - txt003 -STRI - V0 0.0871056 0.148234 2.78542 V1 0.121672 0.121672 2.78542 V2 0.142 0.142 2.7 - N0 0.476337 0.822132 -0.311772 N1 0.671754 0.671754 -0.312241 N2 0.423155 0.423155 0.801174 - txt003 -STRI - V0 0.142 0.142 2.7 V1 0.10163 0.173037 2.7 V2 0.0871056 0.148234 2.78542 - N0 0.423155 0.423155 0.801174 N1 0.300385 0.517905 0.800964 N2 0.476337 0.822132 -0.311772 - txt003 -STRI - V0 0.121672 0.121672 2.78542 V1 0.148234 0.0871056 2.78542 V2 0.173037 0.10163 2.7 - N0 0.671754 0.671754 -0.312241 N1 0.822132 0.476337 -0.311772 N2 0.517905 0.300385 0.800964 - txt003 -STRI - V0 0.173037 0.10163 2.7 V1 0.142 0.142 2.7 V2 0.121672 0.121672 2.78542 - N0 0.517905 0.300385 0.800964 N1 0.423155 0.423155 0.801174 N2 0.671754 0.671754 -0.312241 - txt003 -STRI - V0 0.148234 0.0871056 2.78542 V1 0.165279 0.0460445 2.78542 V2 0.192963 0.0537037 2.7 - N0 0.822132 0.476337 -0.311772 N1 0.917897 0.246906 -0.310647 N2 0.578783 0.15602 0.800417 - txt003 -STRI - V0 0.192963 0.0537037 2.7 V1 0.173037 0.10163 2.7 V2 0.148234 0.0871056 2.78542 - N0 0.578783 0.15602 0.800417 N1 0.517905 0.300385 0.800964 N2 0.822132 0.476337 -0.311772 - txt003 -STRI - V0 0.165279 0.0460445 2.78542 V1 0.171296 -6.66134e-16 2.78542 V2 0.2 0 2.7 - N0 0.917897 0.246906 -0.310647 N1 0.950775 2.16507e-15 -0.309882 N2 0.6 -3.17207e-15 0.8 - txt003 -STRI - V0 0.2 0 2.7 V1 0.192963 0.0537037 2.7 V2 0.165279 0.0460445 2.78542 - N0 0.6 -3.17207e-15 0.8 N1 0.578783 0.15602 0.800417 N2 0.917897 0.246906 -0.310647 - txt003 -STRI - V0 0.2 0 2.7 V1 0.192963 -0.0537037 2.7 V2 0.338579 -0.0942301 2.63611 - N0 0.6 0 0.8 N1 0.578783 -0.15602 0.800417 N2 0.258756 -0.0697517 0.963421 - txt003 -STRI - V0 0.338579 -0.0942301 2.63611 V1 0.350926 0 2.63611 V2 0.2 0 2.7 - N0 0.258756 -0.0697517 0.963421 N1 0.268354 0 0.96332 N2 0.6 0 0.8 - txt003 -STRI - V0 0.192963 -0.0537037 2.7 V1 0.173037 -0.10163 2.7 V2 0.303616 -0.178322 2.63611 - N0 0.578783 -0.15602 0.800417 N1 0.517905 -0.300385 0.800964 N2 0.231413 -0.134219 0.963552 - txt003 -STRI - V0 0.303616 -0.178322 2.63611 V1 0.338579 -0.0942301 2.63611 V2 0.192963 -0.0537037 2.7 - N0 0.231413 -0.134219 0.963552 N1 0.258756 -0.0697517 0.963421 N2 0.578783 -0.15602 0.800417 - txt003 -STRI - V0 0.173037 -0.10163 2.7 V1 0.142 -0.142 2.7 V2 0.249157 -0.249157 2.63611 - N0 0.517905 -0.300385 0.800964 N1 0.423155 -0.423155 0.801174 N2 0.189037 -0.189037 0.963603 - txt003 -STRI - V0 0.249157 -0.249157 2.63611 V1 0.303616 -0.178322 2.63611 V2 0.173037 -0.10163 2.7 - N0 0.189037 -0.189037 0.963603 N1 0.231413 -0.134219 0.963552 N2 0.517905 -0.300385 0.800964 - txt003 -STRI - V0 0.142 -0.142 2.7 V1 0.10163 -0.173037 2.7 V2 0.178322 -0.303616 2.63611 - N0 0.423155 -0.423155 0.801174 N1 0.300385 -0.517905 0.800964 N2 0.134219 -0.231413 0.963552 - txt003 -STRI - V0 0.178322 -0.303616 2.63611 V1 0.249157 -0.249157 2.63611 V2 0.142 -0.142 2.7 - N0 0.134219 -0.231413 0.963552 N1 0.189037 -0.189037 0.963603 N2 0.423155 -0.423155 0.801174 - txt003 -STRI - V0 0.10163 -0.173037 2.7 V1 0.0537037 -0.192963 2.7 V2 0.0942301 -0.338579 2.63611 - N0 0.300385 -0.517905 0.800964 N1 0.15602 -0.578783 0.800417 N2 0.0697517 -0.258756 0.963421 - txt003 -STRI - V0 0.0942301 -0.338579 2.63611 V1 0.178322 -0.303616 2.63611 V2 0.10163 -0.173037 2.7 - N0 0.0697517 -0.258756 0.963421 N1 0.134219 -0.231413 0.963552 N2 0.300385 -0.517905 0.800964 - txt003 -STRI - V0 0.0537037 -0.192963 2.7 V1 0 -0.2 2.7 V2 5.55112e-17 -0.350926 2.63611 - N0 0.15602 -0.578783 0.800417 N1 -9.91271e-17 -0.6 0.8 N2 0 -0.268354 0.96332 - txt003 -STRI - V0 5.55112e-17 -0.350926 2.63611 V1 0.0942301 -0.338579 2.63611 V2 0.0537037 -0.192963 2.7 - N0 0 -0.268354 0.96332 N1 0.0697517 -0.258756 0.963421 N2 0.15602 -0.578783 0.800417 - txt003 -STRI - V0 0.350926 0 2.63611 V1 0.338579 -0.0942301 2.63611 V2 0.553875 -0.15415 2.58889 - N0 0.268354 0 0.96332 N1 0.258756 -0.0697517 0.963421 N2 0.162011 -0.0436726 0.985822 - txt003 -STRI - V0 0.553875 -0.15415 2.58889 V1 0.574074 0 2.58889 V2 0.350926 0 2.63611 - N0 0.162011 -0.0436726 0.985822 N1 0.168031 0 0.985782 N2 0.268354 0 0.96332 - txt003 -STRI - V0 0.338579 -0.0942301 2.63611 V1 0.303616 -0.178322 2.63611 V2 0.49668 -0.291715 2.58889 - N0 0.258756 -0.0697517 0.963421 N1 0.231413 -0.134219 0.963552 N2 0.144879 -0.0840299 0.985875 - txt003 -STRI - V0 0.49668 -0.291715 2.58889 V1 0.553875 -0.15415 2.58889 V2 0.338579 -0.0942301 2.63611 - N0 0.144879 -0.0840299 0.985875 N1 0.162011 -0.0436726 0.985822 N2 0.258756 -0.0697517 0.963421 - txt003 -STRI - V0 0.303616 -0.178322 2.63611 V1 0.249157 -0.249157 2.63611 V2 0.407593 -0.407593 2.58889 - N0 0.231413 -0.134219 0.963552 N1 0.189037 -0.189037 0.963603 N2 0.118345 -0.118345 0.985895 - txt003 -STRI - V0 0.407593 -0.407593 2.58889 V1 0.49668 -0.291715 2.58889 V2 0.303616 -0.178322 2.63611 - N0 0.118345 -0.118345 0.985895 N1 0.144879 -0.0840299 0.985875 N2 0.231413 -0.134219 0.963552 - txt003 -STRI - V0 0.249157 -0.249157 2.63611 V1 0.178322 -0.303616 2.63611 V2 0.291715 -0.49668 2.58889 - N0 0.189037 -0.189037 0.963603 N1 0.134219 -0.231413 0.963552 N2 0.0840299 -0.144879 0.985875 - txt003 -STRI - V0 0.291715 -0.49668 2.58889 V1 0.407593 -0.407593 2.58889 V2 0.249157 -0.249157 2.63611 - N0 0.0840299 -0.144879 0.985875 N1 0.118345 -0.118345 0.985895 N2 0.189037 -0.189037 0.963603 - txt003 -STRI - V0 0.178322 -0.303616 2.63611 V1 0.0942301 -0.338579 2.63611 V2 0.15415 -0.553875 2.58889 - N0 0.134219 -0.231413 0.963552 N1 0.0697517 -0.258756 0.963421 N2 0.0436726 -0.162011 0.985822 - txt003 -STRI - V0 0.15415 -0.553875 2.58889 V1 0.291715 -0.49668 2.58889 V2 0.178322 -0.303616 2.63611 - N0 0.0436726 -0.162011 0.985822 N1 0.0840299 -0.144879 0.985875 N2 0.134219 -0.231413 0.963552 - txt003 -STRI - V0 0.0942301 -0.338579 2.63611 V1 5.55112e-17 -0.350926 2.63611 V2 2.22045e-16 -0.574074 2.58889 - N0 0.0697517 -0.258756 0.963421 N1 0 -0.268354 0.96332 N2 -1.93429e-17 -0.168031 0.985782 - txt003 -STRI - V0 2.22045e-16 -0.574074 2.58889 V1 0.15415 -0.553875 2.58889 V2 0.0942301 -0.338579 2.63611 - N0 -1.93429e-17 -0.168031 0.985782 N1 0.0436726 -0.162011 0.985822 N2 0.0697517 -0.258756 0.963421 - txt003 -STRI - V0 0.574074 0 2.58889 V1 0.553875 -0.15415 2.58889 V2 0.795972 -0.221528 2.55 - N0 0.168031 0 0.985782 N1 0.162011 -0.0436726 0.985822 N2 0.143025 -0.0385545 0.988968 - txt003 -STRI - V0 0.795972 -0.221528 2.55 V1 0.825 0 2.55 V2 0.574074 0 2.58889 - N0 0.143025 -0.0385545 0.988968 N1 0.14834 0 0.988936 N2 0.168031 0 0.985782 - txt003 -STRI - V0 0.553875 -0.15415 2.58889 V1 0.49668 -0.291715 2.58889 V2 0.713778 -0.419222 2.55 - N0 0.162011 -0.0436726 0.985822 N1 0.144879 -0.0840299 0.985875 N2 0.127899 -0.0741814 0.989009 - txt003 -STRI - V0 0.713778 -0.419222 2.55 V1 0.795972 -0.221528 2.55 V2 0.553875 -0.15415 2.58889 - N0 0.127899 -0.0741814 0.989009 N1 0.143025 -0.0385545 0.988968 N2 0.162011 -0.0436726 0.985822 - txt003 -STRI - V0 0.49668 -0.291715 2.58889 V1 0.407593 -0.407593 2.58889 V2 0.58575 -0.58575 2.55 - N0 0.144879 -0.0840299 0.985875 N1 0.118345 -0.118345 0.985895 N2 0.104474 -0.104474 0.989025 - txt003 -STRI - V0 0.58575 -0.58575 2.55 V1 0.713778 -0.419222 2.55 V2 0.49668 -0.291715 2.58889 - N0 0.104474 -0.104474 0.989025 N1 0.127899 -0.0741814 0.989009 N2 0.144879 -0.0840299 0.985875 - txt003 -STRI - V0 0.407593 -0.407593 2.58889 V1 0.291715 -0.49668 2.58889 V2 0.419222 -0.713778 2.55 - N0 0.118345 -0.118345 0.985895 N1 0.0840299 -0.144879 0.985875 N2 0.0741814 -0.127899 0.989009 - txt003 -STRI - V0 0.419222 -0.713778 2.55 V1 0.58575 -0.58575 2.55 V2 0.407593 -0.407593 2.58889 - N0 0.0741814 -0.127899 0.989009 N1 0.104474 -0.104474 0.989025 N2 0.118345 -0.118345 0.985895 - txt003 -STRI - V0 0.291715 -0.49668 2.58889 V1 0.15415 -0.553875 2.58889 V2 0.221528 -0.795972 2.55 - N0 0.0840299 -0.144879 0.985875 N1 0.0436726 -0.162011 0.985822 N2 0.0385545 -0.143025 0.988968 - txt003 -STRI - V0 0.221528 -0.795972 2.55 V1 0.419222 -0.713778 2.55 V2 0.291715 -0.49668 2.58889 - N0 0.0385545 -0.143025 0.988968 N1 0.0741814 -0.127899 0.989009 N2 0.0840299 -0.144879 0.985875 - txt003 -STRI - V0 0.15415 -0.553875 2.58889 V1 2.22045e-16 -0.574074 2.58889 V2 1.11022e-16 -0.825 2.55 - N0 0.0436726 -0.162011 0.985822 N1 -1.93429e-17 -0.168031 0.985782 N2 -2.37649e-17 -0.14834 0.988936 - txt003 -STRI - V0 1.11022e-16 -0.825 2.55 V1 0.221528 -0.795972 2.55 V2 0.15415 -0.553875 2.58889 - N0 -2.37649e-17 -0.14834 0.988936 N1 0.0385545 -0.143025 0.988968 N2 0.0436726 -0.162011 0.985822 - txt003 -STRI - V0 0.825 0 2.55 V1 0.795972 -0.221528 2.55 V2 1.02199 -0.284431 2.51111 - N0 0.14834 0 0.988936 N1 0.143025 -0.0385545 0.988968 N2 0.186699 -0.0503275 0.981127 - txt003 -STRI - V0 1.02199 -0.284431 2.51111 V1 1.05926 0 2.51111 V2 0.825 0 2.55 - N0 0.186699 -0.0503275 0.981127 N1 0.193633 0 0.981074 N2 0.14834 0 0.988936 - txt003 -STRI - V0 0.795972 -0.221528 2.55 V1 0.713778 -0.419222 2.55 V2 0.916455 -0.538261 2.51111 - N0 0.143025 -0.0385545 0.988968 N1 0.127899 -0.0741814 0.989009 N2 0.166959 -0.0968361 0.981197 - txt003 -STRI - V0 0.916455 -0.538261 2.51111 V1 1.02199 -0.284431 2.51111 V2 0.795972 -0.221528 2.55 - N0 0.166959 -0.0968361 0.981197 N1 0.186699 -0.0503275 0.981127 N2 0.143025 -0.0385545 0.988968 - txt003 -STRI - V0 0.713778 -0.419222 2.55 V1 0.58575 -0.58575 2.55 V2 0.752074 -0.752074 2.51111 - N0 0.127899 -0.0741814 0.989009 N1 0.104474 -0.104474 0.989025 N2 0.136382 -0.136382 0.981224 - txt003 -STRI - V0 0.752074 -0.752074 2.51111 V1 0.916455 -0.538261 2.51111 V2 0.713778 -0.419222 2.55 - N0 0.136382 -0.136382 0.981224 N1 0.166959 -0.0968361 0.981197 N2 0.127899 -0.0741814 0.989009 - txt003 -STRI - V0 0.58575 -0.58575 2.55 V1 0.419222 -0.713778 2.55 V2 0.538261 -0.916455 2.51111 - N0 0.104474 -0.104474 0.989025 N1 0.0741814 -0.127899 0.989009 N2 0.0968361 -0.166959 0.981197 - txt003 -STRI - V0 0.538261 -0.916455 2.51111 V1 0.752074 -0.752074 2.51111 V2 0.58575 -0.58575 2.55 - N0 0.0968361 -0.166959 0.981197 N1 0.136382 -0.136382 0.981224 N2 0.104474 -0.104474 0.989025 - txt003 -STRI - V0 0.419222 -0.713778 2.55 V1 0.221528 -0.795972 2.55 V2 0.284431 -1.02199 2.51111 - N0 0.0741814 -0.127899 0.989009 N1 0.0385545 -0.143025 0.988968 N2 0.0503275 -0.186699 0.981127 - txt003 -STRI - V0 0.284431 -1.02199 2.51111 V1 0.538261 -0.916455 2.51111 V2 0.419222 -0.713778 2.55 - N0 0.0503275 -0.186699 0.981127 N1 0.0968361 -0.166959 0.981197 N2 0.0741814 -0.127899 0.989009 - txt003 -STRI - V0 0.221528 -0.795972 2.55 V1 1.11022e-16 -0.825 2.55 V2 4.44089e-16 -1.05926 2.51111 - N0 0.0385545 -0.143025 0.988968 N1 -2.37649e-17 -0.14834 0.988936 N2 -7.24819e-17 -0.193633 0.981074 - txt003 -STRI - V0 4.44089e-16 -1.05926 2.51111 V1 0.284431 -1.02199 2.51111 V2 0.221528 -0.795972 2.55 - N0 -7.24819e-17 -0.193633 0.981074 N1 0.0503275 -0.186699 0.981127 N2 0.0385545 -0.143025 0.988968 - txt003 -STRI - V0 1.05926 0 2.51111 V1 1.02199 -0.284431 2.51111 V2 1.18904 -0.330924 2.46389 - N0 0.193633 0 0.981074 N1 0.186699 -0.0503275 0.981127 N2 0.376378 -0.101459 0.920894 - txt003 -STRI - V0 1.18904 -0.330924 2.46389 V1 1.23241 0 2.46389 V2 1.05926 0 2.51111 - N0 0.376378 -0.101459 0.920894 N1 0.390293 0 0.920691 N2 0.193633 0 0.981074 - txt003 -STRI - V0 1.02199 -0.284431 2.51111 V1 0.916455 -0.538261 2.51111 V2 1.06626 -0.626246 2.46389 - N0 0.186699 -0.0503275 0.981127 N1 0.166959 -0.0968361 0.981197 N2 0.336657 -0.195261 0.92116 - txt003 -STRI - V0 1.06626 -0.626246 2.46389 V1 1.18904 -0.330924 2.46389 V2 1.02199 -0.284431 2.51111 - N0 0.336657 -0.195261 0.92116 N1 0.376378 -0.101459 0.920894 N2 0.186699 -0.0503275 0.981127 - txt003 -STRI - V0 0.916455 -0.538261 2.51111 V1 0.752074 -0.752074 2.51111 V2 0.875009 -0.875009 2.46389 - N0 0.166959 -0.0968361 0.981197 N1 0.136382 -0.136382 0.981224 N2 0.275025 -0.275025 0.921262 - txt003 -STRI - V0 0.875009 -0.875009 2.46389 V1 1.06626 -0.626246 2.46389 V2 0.916455 -0.538261 2.51111 - N0 0.275025 -0.275025 0.921262 N1 0.336657 -0.195261 0.92116 N2 0.166959 -0.0968361 0.981197 - txt003 -STRI - V0 0.752074 -0.752074 2.51111 V1 0.538261 -0.916455 2.51111 V2 0.626246 -1.06626 2.46389 - N0 0.136382 -0.136382 0.981224 N1 0.0968361 -0.166959 0.981197 N2 0.195261 -0.336657 0.92116 - txt003 -STRI - V0 0.626246 -1.06626 2.46389 V1 0.875009 -0.875009 2.46389 V2 0.752074 -0.752074 2.51111 - N0 0.195261 -0.336657 0.92116 N1 0.275025 -0.275025 0.921262 N2 0.136382 -0.136382 0.981224 - txt003 -STRI - V0 0.538261 -0.916455 2.51111 V1 0.284431 -1.02199 2.51111 V2 0.330924 -1.18904 2.46389 - N0 0.0968361 -0.166959 0.981197 N1 0.0503275 -0.186699 0.981127 N2 0.101459 -0.376378 0.920894 - txt003 -STRI - V0 0.330924 -1.18904 2.46389 V1 0.626246 -1.06626 2.46389 V2 0.538261 -0.916455 2.51111 - N0 0.101459 -0.376378 0.920894 N1 0.195261 -0.336657 0.92116 N2 0.0968361 -0.166959 0.981197 - txt003 -STRI - V0 0.284431 -1.02199 2.51111 V1 4.44089e-16 -1.05926 2.51111 V2 4.44089e-16 -1.23241 2.46389 - N0 0.0503275 -0.186699 0.981127 N1 -7.24819e-17 -0.193633 0.981074 N2 -8.37138e-17 -0.390293 0.920691 - txt003 -STRI - V0 4.44089e-16 -1.23241 2.46389 V1 0.330924 -1.18904 2.46389 V2 0.284431 -1.02199 2.51111 - N0 -8.37138e-17 -0.390293 0.920691 N1 0.101459 -0.376378 0.920894 N2 0.0503275 -0.186699 0.981127 - txt003 -STRI - V0 1.23241 0 2.46389 V1 1.18904 -0.330924 2.46389 V2 1.25426 -0.349074 2.4 - N0 0.390293 0 0.920691 N1 0.376378 -0.101459 0.920894 N2 0.965535 -0.260275 -1.02004e-15 - txt003 -STRI - V0 1.25426 -0.349074 2.4 V1 1.3 0 2.4 V2 1.23241 0 2.46389 - N0 0.965535 -0.260275 -1.02004e-15 N1 1 0 -9.86865e-16 N2 0.390293 0 0.920691 - txt003 -STRI - V0 1.18904 -0.330924 2.46389 V1 1.06626 -0.626246 2.46389 V2 1.12474 -0.660593 2.4 - N0 0.376378 -0.101459 0.920894 N1 0.336657 -0.195261 0.92116 N2 0.865031 -0.501718 -9.69705e-16 - txt003 -STRI - V0 1.12474 -0.660593 2.4 V1 1.25426 -0.349074 2.4 V2 1.18904 -0.330924 2.46389 - N0 0.865031 -0.501718 -9.69705e-16 N1 0.965535 -0.260275 -1.02004e-15 N2 0.376378 -0.101459 0.920894 - txt003 -STRI - V0 1.06626 -0.626246 2.46389 V1 0.875009 -0.875009 2.46389 V2 0.923 -0.923 2.4 - N0 0.336657 -0.195261 0.92116 N1 0.275025 -0.275025 0.921262 N2 0.707107 -0.707107 -7.41433e-16 - txt003 -STRI - V0 0.923 -0.923 2.4 V1 1.12474 -0.660593 2.4 V2 1.06626 -0.626246 2.46389 - N0 0.707107 -0.707107 -7.41433e-16 N1 0.865031 -0.501718 -9.69705e-16 N2 0.336657 -0.195261 0.92116 - txt003 -STRI - V0 0.875009 -0.875009 2.46389 V1 0.626246 -1.06626 2.46389 V2 0.660593 -1.12474 2.4 - N0 0.275025 -0.275025 0.921262 N1 0.195261 -0.336657 0.92116 N2 0.501718 -0.865031 -4.67305e-16 - txt003 -STRI - V0 0.660593 -1.12474 2.4 V1 0.923 -0.923 2.4 V2 0.875009 -0.875009 2.46389 - N0 0.501718 -0.865031 -4.67305e-16 N1 0.707107 -0.707107 -7.41433e-16 N2 0.275025 -0.275025 0.921262 - txt003 -STRI - V0 0.626246 -1.06626 2.46389 V1 0.330924 -1.18904 2.46389 V2 0.349074 -1.25426 2.4 - N0 0.195261 -0.336657 0.92116 N1 0.101459 -0.376378 0.920894 N2 0.260275 -0.965535 -5.24893e-16 - txt003 -STRI - V0 0.349074 -1.25426 2.4 V1 0.660593 -1.12474 2.4 V2 0.626246 -1.06626 2.46389 - N0 0.260275 -0.965535 -5.24893e-16 N1 0.501718 -0.865031 -4.67305e-16 N2 0.195261 -0.336657 0.92116 - txt003 -STRI - V0 0.330924 -1.18904 2.46389 V1 4.44089e-16 -1.23241 2.46389 V2 6.66134e-16 -1.3 2.4 - N0 0.101459 -0.376378 0.920894 N1 -8.37138e-17 -0.390293 0.920691 N2 -4.06675e-16 -1 -1.4803e-15 - txt003 -STRI - V0 6.66134e-16 -1.3 2.4 V1 0.349074 -1.25426 2.4 V2 0.330924 -1.18904 2.46389 - N0 -4.06675e-16 -1 -1.4803e-15 N1 0.260275 -0.965535 -5.24893e-16 N2 0.101459 -0.376378 0.920894 - txt003 -STRI - V0 0 -0.2 2.7 V1 -0.0537037 -0.192963 2.7 V2 -0.0942301 -0.338579 2.63611 - N0 0 -0.6 0.8 N1 -0.15602 -0.578783 0.800417 N2 -0.0697517 -0.258756 0.963421 - txt003 -STRI - V0 -0.0942301 -0.338579 2.63611 V1 0 -0.350926 2.63611 V2 0 -0.2 2.7 - N0 -0.0697517 -0.258756 0.963421 N1 0 -0.268354 0.96332 N2 0 -0.6 0.8 - txt003 -STRI - V0 -0.0537037 -0.192963 2.7 V1 -0.10163 -0.173037 2.7 V2 -0.178322 -0.303616 2.63611 - N0 -0.15602 -0.578783 0.800417 N1 -0.300385 -0.517905 0.800964 N2 -0.134219 -0.231413 0.963552 - txt003 -STRI - V0 -0.178322 -0.303616 2.63611 V1 -0.0942301 -0.338579 2.63611 V2 -0.0537037 -0.192963 2.7 - N0 -0.134219 -0.231413 0.963552 N1 -0.0697517 -0.258756 0.963421 N2 -0.15602 -0.578783 0.800417 - txt003 -STRI - V0 -0.10163 -0.173037 2.7 V1 -0.142 -0.142 2.7 V2 -0.249157 -0.249157 2.63611 - N0 -0.300385 -0.517905 0.800964 N1 -0.423155 -0.423155 0.801174 N2 -0.189037 -0.189037 0.963603 - txt003 -STRI - V0 -0.249157 -0.249157 2.63611 V1 -0.178322 -0.303616 2.63611 V2 -0.10163 -0.173037 2.7 - N0 -0.189037 -0.189037 0.963603 N1 -0.134219 -0.231413 0.963552 N2 -0.300385 -0.517905 0.800964 - txt003 -STRI - V0 -0.142 -0.142 2.7 V1 -0.173037 -0.10163 2.7 V2 -0.303616 -0.178322 2.63611 - N0 -0.423155 -0.423155 0.801174 N1 -0.517905 -0.300385 0.800964 N2 -0.231413 -0.134219 0.963552 - txt003 -STRI - V0 -0.303616 -0.178322 2.63611 V1 -0.249157 -0.249157 2.63611 V2 -0.142 -0.142 2.7 - N0 -0.231413 -0.134219 0.963552 N1 -0.189037 -0.189037 0.963603 N2 -0.423155 -0.423155 0.801174 - txt003 -STRI - V0 -0.173037 -0.10163 2.7 V1 -0.192963 -0.0537037 2.7 V2 -0.338579 -0.0942301 2.63611 - N0 -0.517905 -0.300385 0.800964 N1 -0.578783 -0.15602 0.800417 N2 -0.258756 -0.0697517 0.963421 - txt003 -STRI - V0 -0.338579 -0.0942301 2.63611 V1 -0.303616 -0.178322 2.63611 V2 -0.173037 -0.10163 2.7 - N0 -0.258756 -0.0697517 0.963421 N1 -0.231413 -0.134219 0.963552 N2 -0.517905 -0.300385 0.800964 - txt003 -STRI - V0 -0.192963 -0.0537037 2.7 V1 -0.2 0 2.7 V2 -0.350926 -5.55112e-17 2.63611 - N0 -0.578783 -0.15602 0.800417 N1 -0.6 9.91271e-17 0.8 N2 -0.268354 0 0.96332 - txt003 -STRI - V0 -0.350926 -5.55112e-17 2.63611 V1 -0.338579 -0.0942301 2.63611 V2 -0.192963 -0.0537037 2.7 - N0 -0.268354 0 0.96332 N1 -0.258756 -0.0697517 0.963421 N2 -0.578783 -0.15602 0.800417 - txt003 -STRI - V0 0 -0.350926 2.63611 V1 -0.0942301 -0.338579 2.63611 V2 -0.15415 -0.553875 2.58889 - N0 0 -0.268354 0.96332 N1 -0.0697517 -0.258756 0.963421 N2 -0.0436726 -0.162011 0.985822 - txt003 -STRI - V0 -0.15415 -0.553875 2.58889 V1 0 -0.574074 2.58889 V2 0 -0.350926 2.63611 - N0 -0.0436726 -0.162011 0.985822 N1 0 -0.168031 0.985782 N2 0 -0.268354 0.96332 - txt003 -STRI - V0 -0.0942301 -0.338579 2.63611 V1 -0.178322 -0.303616 2.63611 V2 -0.291715 -0.49668 2.58889 - N0 -0.0697517 -0.258756 0.963421 N1 -0.134219 -0.231413 0.963552 N2 -0.0840299 -0.144879 0.985875 - txt003 -STRI - V0 -0.291715 -0.49668 2.58889 V1 -0.15415 -0.553875 2.58889 V2 -0.0942301 -0.338579 2.63611 - N0 -0.0840299 -0.144879 0.985875 N1 -0.0436726 -0.162011 0.985822 N2 -0.0697517 -0.258756 0.963421 - txt003 -STRI - V0 -0.178322 -0.303616 2.63611 V1 -0.249157 -0.249157 2.63611 V2 -0.407593 -0.407593 2.58889 - N0 -0.134219 -0.231413 0.963552 N1 -0.189037 -0.189037 0.963603 N2 -0.118345 -0.118345 0.985895 - txt003 -STRI - V0 -0.407593 -0.407593 2.58889 V1 -0.291715 -0.49668 2.58889 V2 -0.178322 -0.303616 2.63611 - N0 -0.118345 -0.118345 0.985895 N1 -0.0840299 -0.144879 0.985875 N2 -0.134219 -0.231413 0.963552 - txt003 -STRI - V0 -0.249157 -0.249157 2.63611 V1 -0.303616 -0.178322 2.63611 V2 -0.49668 -0.291715 2.58889 - N0 -0.189037 -0.189037 0.963603 N1 -0.231413 -0.134219 0.963552 N2 -0.144879 -0.0840299 0.985875 - txt003 -STRI - V0 -0.49668 -0.291715 2.58889 V1 -0.407593 -0.407593 2.58889 V2 -0.249157 -0.249157 2.63611 - N0 -0.144879 -0.0840299 0.985875 N1 -0.118345 -0.118345 0.985895 N2 -0.189037 -0.189037 0.963603 - txt003 -STRI - V0 -0.303616 -0.178322 2.63611 V1 -0.338579 -0.0942301 2.63611 V2 -0.553875 -0.15415 2.58889 - N0 -0.231413 -0.134219 0.963552 N1 -0.258756 -0.0697517 0.963421 N2 -0.162011 -0.0436726 0.985822 - txt003 -STRI - V0 -0.553875 -0.15415 2.58889 V1 -0.49668 -0.291715 2.58889 V2 -0.303616 -0.178322 2.63611 - N0 -0.162011 -0.0436726 0.985822 N1 -0.144879 -0.0840299 0.985875 N2 -0.231413 -0.134219 0.963552 - txt003 -STRI - V0 -0.338579 -0.0942301 2.63611 V1 -0.350926 -5.55112e-17 2.63611 V2 -0.574074 -2.22045e-16 2.58889 - N0 -0.258756 -0.0697517 0.963421 N1 -0.268354 0 0.96332 N2 -0.168031 1.93429e-17 0.985782 - txt003 -STRI - V0 -0.574074 -2.22045e-16 2.58889 V1 -0.553875 -0.15415 2.58889 V2 -0.338579 -0.0942301 2.63611 - N0 -0.168031 1.93429e-17 0.985782 N1 -0.162011 -0.0436726 0.985822 N2 -0.258756 -0.0697517 0.963421 - txt003 -STRI - V0 0 -0.574074 2.58889 V1 -0.15415 -0.553875 2.58889 V2 -0.221528 -0.795972 2.55 - N0 0 -0.168031 0.985782 N1 -0.0436726 -0.162011 0.985822 N2 -0.0385545 -0.143025 0.988968 - txt003 -STRI - V0 -0.221528 -0.795972 2.55 V1 0 -0.825 2.55 V2 0 -0.574074 2.58889 - N0 -0.0385545 -0.143025 0.988968 N1 0 -0.14834 0.988936 N2 0 -0.168031 0.985782 - txt003 -STRI - V0 -0.15415 -0.553875 2.58889 V1 -0.291715 -0.49668 2.58889 V2 -0.419222 -0.713778 2.55 - N0 -0.0436726 -0.162011 0.985822 N1 -0.0840299 -0.144879 0.985875 N2 -0.0741814 -0.127899 0.989009 - txt003 -STRI - V0 -0.419222 -0.713778 2.55 V1 -0.221528 -0.795972 2.55 V2 -0.15415 -0.553875 2.58889 - N0 -0.0741814 -0.127899 0.989009 N1 -0.0385545 -0.143025 0.988968 N2 -0.0436726 -0.162011 0.985822 - txt003 -STRI - V0 -0.291715 -0.49668 2.58889 V1 -0.407593 -0.407593 2.58889 V2 -0.58575 -0.58575 2.55 - N0 -0.0840299 -0.144879 0.985875 N1 -0.118345 -0.118345 0.985895 N2 -0.104474 -0.104474 0.989025 - txt003 -STRI - V0 -0.58575 -0.58575 2.55 V1 -0.419222 -0.713778 2.55 V2 -0.291715 -0.49668 2.58889 - N0 -0.104474 -0.104474 0.989025 N1 -0.0741814 -0.127899 0.989009 N2 -0.0840299 -0.144879 0.985875 - txt003 -STRI - V0 -0.407593 -0.407593 2.58889 V1 -0.49668 -0.291715 2.58889 V2 -0.713778 -0.419222 2.55 - N0 -0.118345 -0.118345 0.985895 N1 -0.144879 -0.0840299 0.985875 N2 -0.127899 -0.0741814 0.989009 - txt003 -STRI - V0 -0.713778 -0.419222 2.55 V1 -0.58575 -0.58575 2.55 V2 -0.407593 -0.407593 2.58889 - N0 -0.127899 -0.0741814 0.989009 N1 -0.104474 -0.104474 0.989025 N2 -0.118345 -0.118345 0.985895 - txt003 -STRI - V0 -0.49668 -0.291715 2.58889 V1 -0.553875 -0.15415 2.58889 V2 -0.795972 -0.221528 2.55 - N0 -0.144879 -0.0840299 0.985875 N1 -0.162011 -0.0436726 0.985822 N2 -0.143025 -0.0385545 0.988968 - txt003 -STRI - V0 -0.795972 -0.221528 2.55 V1 -0.713778 -0.419222 2.55 V2 -0.49668 -0.291715 2.58889 - N0 -0.143025 -0.0385545 0.988968 N1 -0.127899 -0.0741814 0.989009 N2 -0.144879 -0.0840299 0.985875 - txt003 -STRI - V0 -0.553875 -0.15415 2.58889 V1 -0.574074 -2.22045e-16 2.58889 V2 -0.825 -1.11022e-16 2.55 - N0 -0.162011 -0.0436726 0.985822 N1 -0.168031 1.93429e-17 0.985782 N2 -0.14834 2.37649e-17 0.988936 - txt003 -STRI - V0 -0.825 -1.11022e-16 2.55 V1 -0.795972 -0.221528 2.55 V2 -0.553875 -0.15415 2.58889 - N0 -0.14834 2.37649e-17 0.988936 N1 -0.143025 -0.0385545 0.988968 N2 -0.162011 -0.0436726 0.985822 - txt003 -STRI - V0 0 -0.825 2.55 V1 -0.221528 -0.795972 2.55 V2 -0.284431 -1.02199 2.51111 - N0 0 -0.14834 0.988936 N1 -0.0385545 -0.143025 0.988968 N2 -0.0503275 -0.186699 0.981127 - txt003 -STRI - V0 -0.284431 -1.02199 2.51111 V1 0 -1.05926 2.51111 V2 0 -0.825 2.55 - N0 -0.0503275 -0.186699 0.981127 N1 0 -0.193633 0.981074 N2 0 -0.14834 0.988936 - txt003 -STRI - V0 -0.221528 -0.795972 2.55 V1 -0.419222 -0.713778 2.55 V2 -0.538261 -0.916455 2.51111 - N0 -0.0385545 -0.143025 0.988968 N1 -0.0741814 -0.127899 0.989009 N2 -0.0968361 -0.166959 0.981197 - txt003 -STRI - V0 -0.538261 -0.916455 2.51111 V1 -0.284431 -1.02199 2.51111 V2 -0.221528 -0.795972 2.55 - N0 -0.0968361 -0.166959 0.981197 N1 -0.0503275 -0.186699 0.981127 N2 -0.0385545 -0.143025 0.988968 - txt003 -STRI - V0 -0.419222 -0.713778 2.55 V1 -0.58575 -0.58575 2.55 V2 -0.752074 -0.752074 2.51111 - N0 -0.0741814 -0.127899 0.989009 N1 -0.104474 -0.104474 0.989025 N2 -0.136382 -0.136382 0.981224 - txt003 -STRI - V0 -0.752074 -0.752074 2.51111 V1 -0.538261 -0.916455 2.51111 V2 -0.419222 -0.713778 2.55 - N0 -0.136382 -0.136382 0.981224 N1 -0.0968361 -0.166959 0.981197 N2 -0.0741814 -0.127899 0.989009 - txt003 -STRI - V0 -0.58575 -0.58575 2.55 V1 -0.713778 -0.419222 2.55 V2 -0.916455 -0.538261 2.51111 - N0 -0.104474 -0.104474 0.989025 N1 -0.127899 -0.0741814 0.989009 N2 -0.166959 -0.0968361 0.981197 - txt003 -STRI - V0 -0.916455 -0.538261 2.51111 V1 -0.752074 -0.752074 2.51111 V2 -0.58575 -0.58575 2.55 - N0 -0.166959 -0.0968361 0.981197 N1 -0.136382 -0.136382 0.981224 N2 -0.104474 -0.104474 0.989025 - txt003 -STRI - V0 -0.713778 -0.419222 2.55 V1 -0.795972 -0.221528 2.55 V2 -1.02199 -0.284431 2.51111 - N0 -0.127899 -0.0741814 0.989009 N1 -0.143025 -0.0385545 0.988968 N2 -0.186699 -0.0503275 0.981127 - txt003 -STRI - V0 -1.02199 -0.284431 2.51111 V1 -0.916455 -0.538261 2.51111 V2 -0.713778 -0.419222 2.55 - N0 -0.186699 -0.0503275 0.981127 N1 -0.166959 -0.0968361 0.981197 N2 -0.127899 -0.0741814 0.989009 - txt003 -STRI - V0 -0.795972 -0.221528 2.55 V1 -0.825 -1.11022e-16 2.55 V2 -1.05926 -4.44089e-16 2.51111 - N0 -0.143025 -0.0385545 0.988968 N1 -0.14834 2.37649e-17 0.988936 N2 -0.193633 7.24819e-17 0.981074 - txt003 -STRI - V0 -1.05926 -4.44089e-16 2.51111 V1 -1.02199 -0.284431 2.51111 V2 -0.795972 -0.221528 2.55 - N0 -0.193633 7.24819e-17 0.981074 N1 -0.186699 -0.0503275 0.981127 N2 -0.143025 -0.0385545 0.988968 - txt003 -STRI - V0 0 -1.05926 2.51111 V1 -0.284431 -1.02199 2.51111 V2 -0.330924 -1.18904 2.46389 - N0 0 -0.193633 0.981074 N1 -0.0503275 -0.186699 0.981127 N2 -0.101459 -0.376378 0.920894 - txt003 -STRI - V0 -0.330924 -1.18904 2.46389 V1 0 -1.23241 2.46389 V2 0 -1.05926 2.51111 - N0 -0.101459 -0.376378 0.920894 N1 0 -0.390293 0.920691 N2 0 -0.193633 0.981074 - txt003 -STRI - V0 -0.284431 -1.02199 2.51111 V1 -0.538261 -0.916455 2.51111 V2 -0.626246 -1.06626 2.46389 - N0 -0.0503275 -0.186699 0.981127 N1 -0.0968361 -0.166959 0.981197 N2 -0.195261 -0.336657 0.92116 - txt003 -STRI - V0 -0.626246 -1.06626 2.46389 V1 -0.330924 -1.18904 2.46389 V2 -0.284431 -1.02199 2.51111 - N0 -0.195261 -0.336657 0.92116 N1 -0.101459 -0.376378 0.920894 N2 -0.0503275 -0.186699 0.981127 - txt003 -STRI - V0 -0.538261 -0.916455 2.51111 V1 -0.752074 -0.752074 2.51111 V2 -0.875009 -0.875009 2.46389 - N0 -0.0968361 -0.166959 0.981197 N1 -0.136382 -0.136382 0.981224 N2 -0.275025 -0.275025 0.921262 - txt003 -STRI - V0 -0.875009 -0.875009 2.46389 V1 -0.626246 -1.06626 2.46389 V2 -0.538261 -0.916455 2.51111 - N0 -0.275025 -0.275025 0.921262 N1 -0.195261 -0.336657 0.92116 N2 -0.0968361 -0.166959 0.981197 - txt003 -STRI - V0 -0.752074 -0.752074 2.51111 V1 -0.916455 -0.538261 2.51111 V2 -1.06626 -0.626246 2.46389 - N0 -0.136382 -0.136382 0.981224 N1 -0.166959 -0.0968361 0.981197 N2 -0.336657 -0.195261 0.92116 - txt003 -STRI - V0 -1.06626 -0.626246 2.46389 V1 -0.875009 -0.875009 2.46389 V2 -0.752074 -0.752074 2.51111 - N0 -0.336657 -0.195261 0.92116 N1 -0.275025 -0.275025 0.921262 N2 -0.136382 -0.136382 0.981224 - txt003 -STRI - V0 -0.916455 -0.538261 2.51111 V1 -1.02199 -0.284431 2.51111 V2 -1.18904 -0.330924 2.46389 - N0 -0.166959 -0.0968361 0.981197 N1 -0.186699 -0.0503275 0.981127 N2 -0.376378 -0.101459 0.920894 - txt003 -STRI - V0 -1.18904 -0.330924 2.46389 V1 -1.06626 -0.626246 2.46389 V2 -0.916455 -0.538261 2.51111 - N0 -0.376378 -0.101459 0.920894 N1 -0.336657 -0.195261 0.92116 N2 -0.166959 -0.0968361 0.981197 - txt003 -STRI - V0 -1.02199 -0.284431 2.51111 V1 -1.05926 -4.44089e-16 2.51111 V2 -1.23241 -4.44089e-16 2.46389 - N0 -0.186699 -0.0503275 0.981127 N1 -0.193633 7.24819e-17 0.981074 N2 -0.390293 8.37138e-17 0.920691 - txt003 -STRI - V0 -1.23241 -4.44089e-16 2.46389 V1 -1.18904 -0.330924 2.46389 V2 -1.02199 -0.284431 2.51111 - N0 -0.390293 8.37138e-17 0.920691 N1 -0.376378 -0.101459 0.920894 N2 -0.186699 -0.0503275 0.981127 - txt003 -STRI - V0 0 -1.23241 2.46389 V1 -0.330924 -1.18904 2.46389 V2 -0.349074 -1.25426 2.4 - N0 0 -0.390293 0.920691 N1 -0.101459 -0.376378 0.920894 N2 -0.260275 -0.965535 -1.02004e-15 - txt003 -STRI - V0 -0.349074 -1.25426 2.4 V1 0 -1.3 2.4 V2 0 -1.23241 2.46389 - N0 -0.260275 -0.965535 -1.02004e-15 N1 -0 -1 -9.86865e-16 N2 0 -0.390293 0.920691 - txt003 -STRI - V0 -0.330924 -1.18904 2.46389 V1 -0.626246 -1.06626 2.46389 V2 -0.660593 -1.12474 2.4 - N0 -0.101459 -0.376378 0.920894 N1 -0.195261 -0.336657 0.92116 N2 -0.501718 -0.865031 -9.69705e-16 - txt003 -STRI - V0 -0.660593 -1.12474 2.4 V1 -0.349074 -1.25426 2.4 V2 -0.330924 -1.18904 2.46389 - N0 -0.501718 -0.865031 -9.69705e-16 N1 -0.260275 -0.965535 -1.02004e-15 N2 -0.101459 -0.376378 0.920894 - txt003 -STRI - V0 -0.626246 -1.06626 2.46389 V1 -0.875009 -0.875009 2.46389 V2 -0.923 -0.923 2.4 - N0 -0.195261 -0.336657 0.92116 N1 -0.275025 -0.275025 0.921262 N2 -0.707107 -0.707107 -7.41433e-16 - txt003 -STRI - V0 -0.923 -0.923 2.4 V1 -0.660593 -1.12474 2.4 V2 -0.626246 -1.06626 2.46389 - N0 -0.707107 -0.707107 -7.41433e-16 N1 -0.501718 -0.865031 -9.69705e-16 N2 -0.195261 -0.336657 0.92116 - txt003 -STRI - V0 -0.875009 -0.875009 2.46389 V1 -1.06626 -0.626246 2.46389 V2 -1.12474 -0.660593 2.4 - N0 -0.275025 -0.275025 0.921262 N1 -0.336657 -0.195261 0.92116 N2 -0.865031 -0.501718 -4.67305e-16 - txt003 -STRI - V0 -1.12474 -0.660593 2.4 V1 -0.923 -0.923 2.4 V2 -0.875009 -0.875009 2.46389 - N0 -0.865031 -0.501718 -4.67305e-16 N1 -0.707107 -0.707107 -7.41433e-16 N2 -0.275025 -0.275025 0.921262 - txt003 -STRI - V0 -1.06626 -0.626246 2.46389 V1 -1.18904 -0.330924 2.46389 V2 -1.25426 -0.349074 2.4 - N0 -0.336657 -0.195261 0.92116 N1 -0.376378 -0.101459 0.920894 N2 -0.965535 -0.260275 -5.24893e-16 - txt003 -STRI - V0 -1.25426 -0.349074 2.4 V1 -1.12474 -0.660593 2.4 V2 -1.06626 -0.626246 2.46389 - N0 -0.965535 -0.260275 -5.24893e-16 N1 -0.865031 -0.501718 -4.67305e-16 N2 -0.336657 -0.195261 0.92116 - txt003 -STRI - V0 -1.18904 -0.330924 2.46389 V1 -1.23241 -4.44089e-16 2.46389 V2 -1.3 -6.66134e-16 2.4 - N0 -0.376378 -0.101459 0.920894 N1 -0.390293 8.37138e-17 0.920691 N2 -1 4.06675e-16 -1.4803e-15 - txt003 -STRI - V0 -1.3 -6.66134e-16 2.4 V1 -1.25426 -0.349074 2.4 V2 -1.18904 -0.330924 2.46389 - N0 -1 4.06675e-16 -1.4803e-15 N1 -0.965535 -0.260275 -5.24893e-16 N2 -0.376378 -0.101459 0.920894 - txt003 -STRI - V0 -0.2 0 2.7 V1 -0.192963 0.0537037 2.7 V2 -0.338579 0.0942301 2.63611 - N0 -0.6 0 0.8 N1 -0.578783 0.15602 0.800417 N2 -0.258756 0.0697517 0.963421 - txt003 -STRI - V0 -0.338579 0.0942301 2.63611 V1 -0.350926 0 2.63611 V2 -0.2 0 2.7 - N0 -0.258756 0.0697517 0.963421 N1 -0.268354 0 0.96332 N2 -0.6 0 0.8 - txt003 -STRI - V0 -0.192963 0.0537037 2.7 V1 -0.173037 0.10163 2.7 V2 -0.303616 0.178322 2.63611 - N0 -0.578783 0.15602 0.800417 N1 -0.517905 0.300385 0.800964 N2 -0.231413 0.134219 0.963552 - txt003 -STRI - V0 -0.303616 0.178322 2.63611 V1 -0.338579 0.0942301 2.63611 V2 -0.192963 0.0537037 2.7 - N0 -0.231413 0.134219 0.963552 N1 -0.258756 0.0697517 0.963421 N2 -0.578783 0.15602 0.800417 - txt003 -STRI - V0 -0.173037 0.10163 2.7 V1 -0.142 0.142 2.7 V2 -0.249157 0.249157 2.63611 - N0 -0.517905 0.300385 0.800964 N1 -0.423155 0.423155 0.801174 N2 -0.189037 0.189037 0.963603 - txt003 -STRI - V0 -0.249157 0.249157 2.63611 V1 -0.303616 0.178322 2.63611 V2 -0.173037 0.10163 2.7 - N0 -0.189037 0.189037 0.963603 N1 -0.231413 0.134219 0.963552 N2 -0.517905 0.300385 0.800964 - txt003 -STRI - V0 -0.142 0.142 2.7 V1 -0.10163 0.173037 2.7 V2 -0.178322 0.303616 2.63611 - N0 -0.423155 0.423155 0.801174 N1 -0.300385 0.517905 0.800964 N2 -0.134219 0.231413 0.963552 - txt003 -STRI - V0 -0.178322 0.303616 2.63611 V1 -0.249157 0.249157 2.63611 V2 -0.142 0.142 2.7 - N0 -0.134219 0.231413 0.963552 N1 -0.189037 0.189037 0.963603 N2 -0.423155 0.423155 0.801174 - txt003 -STRI - V0 -0.10163 0.173037 2.7 V1 -0.0537037 0.192963 2.7 V2 -0.0942301 0.338579 2.63611 - N0 -0.300385 0.517905 0.800964 N1 -0.15602 0.578783 0.800417 N2 -0.0697517 0.258756 0.963421 - txt003 -STRI - V0 -0.0942301 0.338579 2.63611 V1 -0.178322 0.303616 2.63611 V2 -0.10163 0.173037 2.7 - N0 -0.0697517 0.258756 0.963421 N1 -0.134219 0.231413 0.963552 N2 -0.300385 0.517905 0.800964 - txt003 -STRI - V0 -0.0537037 0.192963 2.7 V1 0 0.2 2.7 V2 -5.55112e-17 0.350926 2.63611 - N0 -0.15602 0.578783 0.800417 N1 9.91271e-17 0.6 0.8 N2 -0 0.268354 0.96332 - txt003 -STRI - V0 -5.55112e-17 0.350926 2.63611 V1 -0.0942301 0.338579 2.63611 V2 -0.0537037 0.192963 2.7 - N0 -0 0.268354 0.96332 N1 -0.0697517 0.258756 0.963421 N2 -0.15602 0.578783 0.800417 - txt003 -STRI - V0 -0.350926 0 2.63611 V1 -0.338579 0.0942301 2.63611 V2 -0.553875 0.15415 2.58889 - N0 -0.268354 0 0.96332 N1 -0.258756 0.0697517 0.963421 N2 -0.162011 0.0436726 0.985822 - txt003 -STRI - V0 -0.553875 0.15415 2.58889 V1 -0.574074 0 2.58889 V2 -0.350926 0 2.63611 - N0 -0.162011 0.0436726 0.985822 N1 -0.168031 0 0.985782 N2 -0.268354 0 0.96332 - txt003 -STRI - V0 -0.338579 0.0942301 2.63611 V1 -0.303616 0.178322 2.63611 V2 -0.49668 0.291715 2.58889 - N0 -0.258756 0.0697517 0.963421 N1 -0.231413 0.134219 0.963552 N2 -0.144879 0.0840299 0.985875 - txt003 -STRI - V0 -0.49668 0.291715 2.58889 V1 -0.553875 0.15415 2.58889 V2 -0.338579 0.0942301 2.63611 - N0 -0.144879 0.0840299 0.985875 N1 -0.162011 0.0436726 0.985822 N2 -0.258756 0.0697517 0.963421 - txt003 -STRI - V0 -0.303616 0.178322 2.63611 V1 -0.249157 0.249157 2.63611 V2 -0.407593 0.407593 2.58889 - N0 -0.231413 0.134219 0.963552 N1 -0.189037 0.189037 0.963603 N2 -0.118345 0.118345 0.985895 - txt003 -STRI - V0 -0.407593 0.407593 2.58889 V1 -0.49668 0.291715 2.58889 V2 -0.303616 0.178322 2.63611 - N0 -0.118345 0.118345 0.985895 N1 -0.144879 0.0840299 0.985875 N2 -0.231413 0.134219 0.963552 - txt003 -STRI - V0 -0.249157 0.249157 2.63611 V1 -0.178322 0.303616 2.63611 V2 -0.291715 0.49668 2.58889 - N0 -0.189037 0.189037 0.963603 N1 -0.134219 0.231413 0.963552 N2 -0.0840299 0.144879 0.985875 - txt003 -STRI - V0 -0.291715 0.49668 2.58889 V1 -0.407593 0.407593 2.58889 V2 -0.249157 0.249157 2.63611 - N0 -0.0840299 0.144879 0.985875 N1 -0.118345 0.118345 0.985895 N2 -0.189037 0.189037 0.963603 - txt003 -STRI - V0 -0.178322 0.303616 2.63611 V1 -0.0942301 0.338579 2.63611 V2 -0.15415 0.553875 2.58889 - N0 -0.134219 0.231413 0.963552 N1 -0.0697517 0.258756 0.963421 N2 -0.0436726 0.162011 0.985822 - txt003 -STRI - V0 -0.15415 0.553875 2.58889 V1 -0.291715 0.49668 2.58889 V2 -0.178322 0.303616 2.63611 - N0 -0.0436726 0.162011 0.985822 N1 -0.0840299 0.144879 0.985875 N2 -0.134219 0.231413 0.963552 - txt003 -STRI - V0 -0.0942301 0.338579 2.63611 V1 -5.55112e-17 0.350926 2.63611 V2 -2.22045e-16 0.574074 2.58889 - N0 -0.0697517 0.258756 0.963421 N1 -0 0.268354 0.96332 N2 1.93429e-17 0.168031 0.985782 - txt003 -STRI - V0 -2.22045e-16 0.574074 2.58889 V1 -0.15415 0.553875 2.58889 V2 -0.0942301 0.338579 2.63611 - N0 1.93429e-17 0.168031 0.985782 N1 -0.0436726 0.162011 0.985822 N2 -0.0697517 0.258756 0.963421 - txt003 -STRI - V0 -0.574074 0 2.58889 V1 -0.553875 0.15415 2.58889 V2 -0.795972 0.221528 2.55 - N0 -0.168031 0 0.985782 N1 -0.162011 0.0436726 0.985822 N2 -0.143025 0.0385545 0.988968 - txt003 -STRI - V0 -0.795972 0.221528 2.55 V1 -0.825 0 2.55 V2 -0.574074 0 2.58889 - N0 -0.143025 0.0385545 0.988968 N1 -0.14834 0 0.988936 N2 -0.168031 0 0.985782 - txt003 -STRI - V0 -0.553875 0.15415 2.58889 V1 -0.49668 0.291715 2.58889 V2 -0.713778 0.419222 2.55 - N0 -0.162011 0.0436726 0.985822 N1 -0.144879 0.0840299 0.985875 N2 -0.127899 0.0741814 0.989009 - txt003 -STRI - V0 -0.713778 0.419222 2.55 V1 -0.795972 0.221528 2.55 V2 -0.553875 0.15415 2.58889 - N0 -0.127899 0.0741814 0.989009 N1 -0.143025 0.0385545 0.988968 N2 -0.162011 0.0436726 0.985822 - txt003 -STRI - V0 -0.49668 0.291715 2.58889 V1 -0.407593 0.407593 2.58889 V2 -0.58575 0.58575 2.55 - N0 -0.144879 0.0840299 0.985875 N1 -0.118345 0.118345 0.985895 N2 -0.104474 0.104474 0.989025 - txt003 -STRI - V0 -0.58575 0.58575 2.55 V1 -0.713778 0.419222 2.55 V2 -0.49668 0.291715 2.58889 - N0 -0.104474 0.104474 0.989025 N1 -0.127899 0.0741814 0.989009 N2 -0.144879 0.0840299 0.985875 - txt003 -STRI - V0 -0.407593 0.407593 2.58889 V1 -0.291715 0.49668 2.58889 V2 -0.419222 0.713778 2.55 - N0 -0.118345 0.118345 0.985895 N1 -0.0840299 0.144879 0.985875 N2 -0.0741814 0.127899 0.989009 - txt003 -STRI - V0 -0.419222 0.713778 2.55 V1 -0.58575 0.58575 2.55 V2 -0.407593 0.407593 2.58889 - N0 -0.0741814 0.127899 0.989009 N1 -0.104474 0.104474 0.989025 N2 -0.118345 0.118345 0.985895 - txt003 -STRI - V0 -0.291715 0.49668 2.58889 V1 -0.15415 0.553875 2.58889 V2 -0.221528 0.795972 2.55 - N0 -0.0840299 0.144879 0.985875 N1 -0.0436726 0.162011 0.985822 N2 -0.0385545 0.143025 0.988968 - txt003 -STRI - V0 -0.221528 0.795972 2.55 V1 -0.419222 0.713778 2.55 V2 -0.291715 0.49668 2.58889 - N0 -0.0385545 0.143025 0.988968 N1 -0.0741814 0.127899 0.989009 N2 -0.0840299 0.144879 0.985875 - txt003 -STRI - V0 -0.15415 0.553875 2.58889 V1 -2.22045e-16 0.574074 2.58889 V2 -1.11022e-16 0.825 2.55 - N0 -0.0436726 0.162011 0.985822 N1 1.93429e-17 0.168031 0.985782 N2 2.37649e-17 0.14834 0.988936 - txt003 -STRI - V0 -1.11022e-16 0.825 2.55 V1 -0.221528 0.795972 2.55 V2 -0.15415 0.553875 2.58889 - N0 2.37649e-17 0.14834 0.988936 N1 -0.0385545 0.143025 0.988968 N2 -0.0436726 0.162011 0.985822 - txt003 -STRI - V0 -0.825 0 2.55 V1 -0.795972 0.221528 2.55 V2 -1.02199 0.284431 2.51111 - N0 -0.14834 0 0.988936 N1 -0.143025 0.0385545 0.988968 N2 -0.186699 0.0503275 0.981127 - txt003 -STRI - V0 -1.02199 0.284431 2.51111 V1 -1.05926 0 2.51111 V2 -0.825 0 2.55 - N0 -0.186699 0.0503275 0.981127 N1 -0.193633 0 0.981074 N2 -0.14834 0 0.988936 - txt003 -STRI - V0 -0.795972 0.221528 2.55 V1 -0.713778 0.419222 2.55 V2 -0.916455 0.538261 2.51111 - N0 -0.143025 0.0385545 0.988968 N1 -0.127899 0.0741814 0.989009 N2 -0.166959 0.0968361 0.981197 - txt003 -STRI - V0 -0.916455 0.538261 2.51111 V1 -1.02199 0.284431 2.51111 V2 -0.795972 0.221528 2.55 - N0 -0.166959 0.0968361 0.981197 N1 -0.186699 0.0503275 0.981127 N2 -0.143025 0.0385545 0.988968 - txt003 -STRI - V0 -0.713778 0.419222 2.55 V1 -0.58575 0.58575 2.55 V2 -0.752074 0.752074 2.51111 - N0 -0.127899 0.0741814 0.989009 N1 -0.104474 0.104474 0.989025 N2 -0.136382 0.136382 0.981224 - txt003 -STRI - V0 -0.752074 0.752074 2.51111 V1 -0.916455 0.538261 2.51111 V2 -0.713778 0.419222 2.55 - N0 -0.136382 0.136382 0.981224 N1 -0.166959 0.0968361 0.981197 N2 -0.127899 0.0741814 0.989009 - txt003 -STRI - V0 -0.58575 0.58575 2.55 V1 -0.419222 0.713778 2.55 V2 -0.538261 0.916455 2.51111 - N0 -0.104474 0.104474 0.989025 N1 -0.0741814 0.127899 0.989009 N2 -0.0968361 0.166959 0.981197 - txt003 -STRI - V0 -0.538261 0.916455 2.51111 V1 -0.752074 0.752074 2.51111 V2 -0.58575 0.58575 2.55 - N0 -0.0968361 0.166959 0.981197 N1 -0.136382 0.136382 0.981224 N2 -0.104474 0.104474 0.989025 - txt003 -STRI - V0 -0.419222 0.713778 2.55 V1 -0.221528 0.795972 2.55 V2 -0.284431 1.02199 2.51111 - N0 -0.0741814 0.127899 0.989009 N1 -0.0385545 0.143025 0.988968 N2 -0.0503275 0.186699 0.981127 - txt003 -STRI - V0 -0.284431 1.02199 2.51111 V1 -0.538261 0.916455 2.51111 V2 -0.419222 0.713778 2.55 - N0 -0.0503275 0.186699 0.981127 N1 -0.0968361 0.166959 0.981197 N2 -0.0741814 0.127899 0.989009 - txt003 -STRI - V0 -0.221528 0.795972 2.55 V1 -1.11022e-16 0.825 2.55 V2 -4.44089e-16 1.05926 2.51111 - N0 -0.0385545 0.143025 0.988968 N1 2.37649e-17 0.14834 0.988936 N2 7.24819e-17 0.193633 0.981074 - txt003 -STRI - V0 -4.44089e-16 1.05926 2.51111 V1 -0.284431 1.02199 2.51111 V2 -0.221528 0.795972 2.55 - N0 7.24819e-17 0.193633 0.981074 N1 -0.0503275 0.186699 0.981127 N2 -0.0385545 0.143025 0.988968 - txt003 -STRI - V0 -1.05926 0 2.51111 V1 -1.02199 0.284431 2.51111 V2 -1.18904 0.330924 2.46389 - N0 -0.193633 0 0.981074 N1 -0.186699 0.0503275 0.981127 N2 -0.376378 0.101459 0.920894 - txt003 -STRI - V0 -1.18904 0.330924 2.46389 V1 -1.23241 0 2.46389 V2 -1.05926 0 2.51111 - N0 -0.376378 0.101459 0.920894 N1 -0.390293 0 0.920691 N2 -0.193633 0 0.981074 - txt003 -STRI - V0 -1.02199 0.284431 2.51111 V1 -0.916455 0.538261 2.51111 V2 -1.06626 0.626246 2.46389 - N0 -0.186699 0.0503275 0.981127 N1 -0.166959 0.0968361 0.981197 N2 -0.336657 0.195261 0.92116 - txt003 -STRI - V0 -1.06626 0.626246 2.46389 V1 -1.18904 0.330924 2.46389 V2 -1.02199 0.284431 2.51111 - N0 -0.336657 0.195261 0.92116 N1 -0.376378 0.101459 0.920894 N2 -0.186699 0.0503275 0.981127 - txt003 -STRI - V0 -0.916455 0.538261 2.51111 V1 -0.752074 0.752074 2.51111 V2 -0.875009 0.875009 2.46389 - N0 -0.166959 0.0968361 0.981197 N1 -0.136382 0.136382 0.981224 N2 -0.275025 0.275025 0.921262 - txt003 -STRI - V0 -0.875009 0.875009 2.46389 V1 -1.06626 0.626246 2.46389 V2 -0.916455 0.538261 2.51111 - N0 -0.275025 0.275025 0.921262 N1 -0.336657 0.195261 0.92116 N2 -0.166959 0.0968361 0.981197 - txt003 -STRI - V0 -0.752074 0.752074 2.51111 V1 -0.538261 0.916455 2.51111 V2 -0.626246 1.06626 2.46389 - N0 -0.136382 0.136382 0.981224 N1 -0.0968361 0.166959 0.981197 N2 -0.195261 0.336657 0.92116 - txt003 -STRI - V0 -0.626246 1.06626 2.46389 V1 -0.875009 0.875009 2.46389 V2 -0.752074 0.752074 2.51111 - N0 -0.195261 0.336657 0.92116 N1 -0.275025 0.275025 0.921262 N2 -0.136382 0.136382 0.981224 - txt003 -STRI - V0 -0.538261 0.916455 2.51111 V1 -0.284431 1.02199 2.51111 V2 -0.330924 1.18904 2.46389 - N0 -0.0968361 0.166959 0.981197 N1 -0.0503275 0.186699 0.981127 N2 -0.101459 0.376378 0.920894 - txt003 -STRI - V0 -0.330924 1.18904 2.46389 V1 -0.626246 1.06626 2.46389 V2 -0.538261 0.916455 2.51111 - N0 -0.101459 0.376378 0.920894 N1 -0.195261 0.336657 0.92116 N2 -0.0968361 0.166959 0.981197 - txt003 -STRI - V0 -0.284431 1.02199 2.51111 V1 -4.44089e-16 1.05926 2.51111 V2 -4.44089e-16 1.23241 2.46389 - N0 -0.0503275 0.186699 0.981127 N1 7.24819e-17 0.193633 0.981074 N2 8.37138e-17 0.390293 0.920691 - txt003 -STRI - V0 -4.44089e-16 1.23241 2.46389 V1 -0.330924 1.18904 2.46389 V2 -0.284431 1.02199 2.51111 - N0 8.37138e-17 0.390293 0.920691 N1 -0.101459 0.376378 0.920894 N2 -0.0503275 0.186699 0.981127 - txt003 -STRI - V0 -1.23241 0 2.46389 V1 -1.18904 0.330924 2.46389 V2 -1.25426 0.349074 2.4 - N0 -0.390293 0 0.920691 N1 -0.376378 0.101459 0.920894 N2 -0.965535 0.260275 -1.02004e-15 - txt003 -STRI - V0 -1.25426 0.349074 2.4 V1 -1.3 0 2.4 V2 -1.23241 0 2.46389 - N0 -0.965535 0.260275 -1.02004e-15 N1 -1 0 -9.86865e-16 N2 -0.390293 0 0.920691 - txt003 -STRI - V0 -1.18904 0.330924 2.46389 V1 -1.06626 0.626246 2.46389 V2 -1.12474 0.660593 2.4 - N0 -0.376378 0.101459 0.920894 N1 -0.336657 0.195261 0.92116 N2 -0.865031 0.501718 -9.69705e-16 - txt003 -STRI - V0 -1.12474 0.660593 2.4 V1 -1.25426 0.349074 2.4 V2 -1.18904 0.330924 2.46389 - N0 -0.865031 0.501718 -9.69705e-16 N1 -0.965535 0.260275 -1.02004e-15 N2 -0.376378 0.101459 0.920894 - txt003 -STRI - V0 -1.06626 0.626246 2.46389 V1 -0.875009 0.875009 2.46389 V2 -0.923 0.923 2.4 - N0 -0.336657 0.195261 0.92116 N1 -0.275025 0.275025 0.921262 N2 -0.707107 0.707107 -7.41433e-16 - txt003 -STRI - V0 -0.923 0.923 2.4 V1 -1.12474 0.660593 2.4 V2 -1.06626 0.626246 2.46389 - N0 -0.707107 0.707107 -7.41433e-16 N1 -0.865031 0.501718 -9.69705e-16 N2 -0.336657 0.195261 0.92116 - txt003 -STRI - V0 -0.875009 0.875009 2.46389 V1 -0.626246 1.06626 2.46389 V2 -0.660593 1.12474 2.4 - N0 -0.275025 0.275025 0.921262 N1 -0.195261 0.336657 0.92116 N2 -0.501718 0.865031 -4.67305e-16 - txt003 -STRI - V0 -0.660593 1.12474 2.4 V1 -0.923 0.923 2.4 V2 -0.875009 0.875009 2.46389 - N0 -0.501718 0.865031 -4.67305e-16 N1 -0.707107 0.707107 -7.41433e-16 N2 -0.275025 0.275025 0.921262 - txt003 -STRI - V0 -0.626246 1.06626 2.46389 V1 -0.330924 1.18904 2.46389 V2 -0.349074 1.25426 2.4 - N0 -0.195261 0.336657 0.92116 N1 -0.101459 0.376378 0.920894 N2 -0.260275 0.965535 -5.24893e-16 - txt003 -STRI - V0 -0.349074 1.25426 2.4 V1 -0.660593 1.12474 2.4 V2 -0.626246 1.06626 2.46389 - N0 -0.260275 0.965535 -5.24893e-16 N1 -0.501718 0.865031 -4.67305e-16 N2 -0.195261 0.336657 0.92116 - txt003 -STRI - V0 -0.330924 1.18904 2.46389 V1 -4.44089e-16 1.23241 2.46389 V2 -6.66134e-16 1.3 2.4 - N0 -0.101459 0.376378 0.920894 N1 8.37138e-17 0.390293 0.920691 N2 4.06675e-16 1 -1.4803e-15 - txt003 -STRI - V0 -6.66134e-16 1.3 2.4 V1 -0.349074 1.25426 2.4 V2 -0.330924 1.18904 2.46389 - N0 4.06675e-16 1 -1.4803e-15 N1 -0.260275 0.965535 -5.24893e-16 N2 -0.101459 0.376378 0.920894 - txt003 -STRI - V0 0 0.2 2.7 V1 0.0537037 0.192963 2.7 V2 0.0942301 0.338579 2.63611 - N0 -0 0.6 0.8 N1 0.15602 0.578783 0.800417 N2 0.0697517 0.258756 0.963421 - txt003 -STRI - V0 0.0942301 0.338579 2.63611 V1 0 0.350926 2.63611 V2 0 0.2 2.7 - N0 0.0697517 0.258756 0.963421 N1 -0 0.268354 0.96332 N2 -0 0.6 0.8 - txt003 -STRI - V0 0.0537037 0.192963 2.7 V1 0.10163 0.173037 2.7 V2 0.178322 0.303616 2.63611 - N0 0.15602 0.578783 0.800417 N1 0.300385 0.517905 0.800964 N2 0.134219 0.231413 0.963552 - txt003 -STRI - V0 0.178322 0.303616 2.63611 V1 0.0942301 0.338579 2.63611 V2 0.0537037 0.192963 2.7 - N0 0.134219 0.231413 0.963552 N1 0.0697517 0.258756 0.963421 N2 0.15602 0.578783 0.800417 - txt003 -STRI - V0 0.10163 0.173037 2.7 V1 0.142 0.142 2.7 V2 0.249157 0.249157 2.63611 - N0 0.300385 0.517905 0.800964 N1 0.423155 0.423155 0.801174 N2 0.189037 0.189037 0.963603 - txt003 -STRI - V0 0.249157 0.249157 2.63611 V1 0.178322 0.303616 2.63611 V2 0.10163 0.173037 2.7 - N0 0.189037 0.189037 0.963603 N1 0.134219 0.231413 0.963552 N2 0.300385 0.517905 0.800964 - txt003 -STRI - V0 0.142 0.142 2.7 V1 0.173037 0.10163 2.7 V2 0.303616 0.178322 2.63611 - N0 0.423155 0.423155 0.801174 N1 0.517905 0.300385 0.800964 N2 0.231413 0.134219 0.963552 - txt003 -STRI - V0 0.303616 0.178322 2.63611 V1 0.249157 0.249157 2.63611 V2 0.142 0.142 2.7 - N0 0.231413 0.134219 0.963552 N1 0.189037 0.189037 0.963603 N2 0.423155 0.423155 0.801174 - txt003 -STRI - V0 0.173037 0.10163 2.7 V1 0.192963 0.0537037 2.7 V2 0.338579 0.0942301 2.63611 - N0 0.517905 0.300385 0.800964 N1 0.578783 0.15602 0.800417 N2 0.258756 0.0697517 0.963421 - txt003 -STRI - V0 0.338579 0.0942301 2.63611 V1 0.303616 0.178322 2.63611 V2 0.173037 0.10163 2.7 - N0 0.258756 0.0697517 0.963421 N1 0.231413 0.134219 0.963552 N2 0.517905 0.300385 0.800964 - txt003 -STRI - V0 0.192963 0.0537037 2.7 V1 0.2 0 2.7 V2 0.350926 5.55112e-17 2.63611 - N0 0.578783 0.15602 0.800417 N1 0.6 -9.91271e-17 0.8 N2 0.268354 0 0.96332 - txt003 -STRI - V0 0.350926 5.55112e-17 2.63611 V1 0.338579 0.0942301 2.63611 V2 0.192963 0.0537037 2.7 - N0 0.268354 0 0.96332 N1 0.258756 0.0697517 0.963421 N2 0.578783 0.15602 0.800417 - txt003 -STRI - V0 0 0.350926 2.63611 V1 0.0942301 0.338579 2.63611 V2 0.15415 0.553875 2.58889 - N0 -0 0.268354 0.96332 N1 0.0697517 0.258756 0.963421 N2 0.0436726 0.162011 0.985822 - txt003 -STRI - V0 0.15415 0.553875 2.58889 V1 0 0.574074 2.58889 V2 0 0.350926 2.63611 - N0 0.0436726 0.162011 0.985822 N1 -0 0.168031 0.985782 N2 -0 0.268354 0.96332 - txt003 -STRI - V0 0.0942301 0.338579 2.63611 V1 0.178322 0.303616 2.63611 V2 0.291715 0.49668 2.58889 - N0 0.0697517 0.258756 0.963421 N1 0.134219 0.231413 0.963552 N2 0.0840299 0.144879 0.985875 - txt003 -STRI - V0 0.291715 0.49668 2.58889 V1 0.15415 0.553875 2.58889 V2 0.0942301 0.338579 2.63611 - N0 0.0840299 0.144879 0.985875 N1 0.0436726 0.162011 0.985822 N2 0.0697517 0.258756 0.963421 - txt003 -STRI - V0 0.178322 0.303616 2.63611 V1 0.249157 0.249157 2.63611 V2 0.407593 0.407593 2.58889 - N0 0.134219 0.231413 0.963552 N1 0.189037 0.189037 0.963603 N2 0.118345 0.118345 0.985895 - txt003 -STRI - V0 0.407593 0.407593 2.58889 V1 0.291715 0.49668 2.58889 V2 0.178322 0.303616 2.63611 - N0 0.118345 0.118345 0.985895 N1 0.0840299 0.144879 0.985875 N2 0.134219 0.231413 0.963552 - txt003 -STRI - V0 0.249157 0.249157 2.63611 V1 0.303616 0.178322 2.63611 V2 0.49668 0.291715 2.58889 - N0 0.189037 0.189037 0.963603 N1 0.231413 0.134219 0.963552 N2 0.144879 0.0840299 0.985875 - txt003 -STRI - V0 0.49668 0.291715 2.58889 V1 0.407593 0.407593 2.58889 V2 0.249157 0.249157 2.63611 - N0 0.144879 0.0840299 0.985875 N1 0.118345 0.118345 0.985895 N2 0.189037 0.189037 0.963603 - txt003 -STRI - V0 0.303616 0.178322 2.63611 V1 0.338579 0.0942301 2.63611 V2 0.553875 0.15415 2.58889 - N0 0.231413 0.134219 0.963552 N1 0.258756 0.0697517 0.963421 N2 0.162011 0.0436726 0.985822 - txt003 -STRI - V0 0.553875 0.15415 2.58889 V1 0.49668 0.291715 2.58889 V2 0.303616 0.178322 2.63611 - N0 0.162011 0.0436726 0.985822 N1 0.144879 0.0840299 0.985875 N2 0.231413 0.134219 0.963552 - txt003 -STRI - V0 0.338579 0.0942301 2.63611 V1 0.350926 5.55112e-17 2.63611 V2 0.574074 2.22045e-16 2.58889 - N0 0.258756 0.0697517 0.963421 N1 0.268354 0 0.96332 N2 0.168031 -1.93429e-17 0.985782 - txt003 -STRI - V0 0.574074 2.22045e-16 2.58889 V1 0.553875 0.15415 2.58889 V2 0.338579 0.0942301 2.63611 - N0 0.168031 -1.93429e-17 0.985782 N1 0.162011 0.0436726 0.985822 N2 0.258756 0.0697517 0.963421 - txt003 -STRI - V0 0 0.574074 2.58889 V1 0.15415 0.553875 2.58889 V2 0.221528 0.795972 2.55 - N0 -0 0.168031 0.985782 N1 0.0436726 0.162011 0.985822 N2 0.0385545 0.143025 0.988968 - txt003 -STRI - V0 0.221528 0.795972 2.55 V1 0 0.825 2.55 V2 0 0.574074 2.58889 - N0 0.0385545 0.143025 0.988968 N1 -0 0.14834 0.988936 N2 -0 0.168031 0.985782 - txt003 -STRI - V0 0.15415 0.553875 2.58889 V1 0.291715 0.49668 2.58889 V2 0.419222 0.713778 2.55 - N0 0.0436726 0.162011 0.985822 N1 0.0840299 0.144879 0.985875 N2 0.0741814 0.127899 0.989009 - txt003 -STRI - V0 0.419222 0.713778 2.55 V1 0.221528 0.795972 2.55 V2 0.15415 0.553875 2.58889 - N0 0.0741814 0.127899 0.989009 N1 0.0385545 0.143025 0.988968 N2 0.0436726 0.162011 0.985822 - txt003 -STRI - V0 0.291715 0.49668 2.58889 V1 0.407593 0.407593 2.58889 V2 0.58575 0.58575 2.55 - N0 0.0840299 0.144879 0.985875 N1 0.118345 0.118345 0.985895 N2 0.104474 0.104474 0.989025 - txt003 -STRI - V0 0.58575 0.58575 2.55 V1 0.419222 0.713778 2.55 V2 0.291715 0.49668 2.58889 - N0 0.104474 0.104474 0.989025 N1 0.0741814 0.127899 0.989009 N2 0.0840299 0.144879 0.985875 - txt003 -STRI - V0 0.407593 0.407593 2.58889 V1 0.49668 0.291715 2.58889 V2 0.713778 0.419222 2.55 - N0 0.118345 0.118345 0.985895 N1 0.144879 0.0840299 0.985875 N2 0.127899 0.0741814 0.989009 - txt003 -STRI - V0 0.713778 0.419222 2.55 V1 0.58575 0.58575 2.55 V2 0.407593 0.407593 2.58889 - N0 0.127899 0.0741814 0.989009 N1 0.104474 0.104474 0.989025 N2 0.118345 0.118345 0.985895 - txt003 -STRI - V0 0.49668 0.291715 2.58889 V1 0.553875 0.15415 2.58889 V2 0.795972 0.221528 2.55 - N0 0.144879 0.0840299 0.985875 N1 0.162011 0.0436726 0.985822 N2 0.143025 0.0385545 0.988968 - txt003 -STRI - V0 0.795972 0.221528 2.55 V1 0.713778 0.419222 2.55 V2 0.49668 0.291715 2.58889 - N0 0.143025 0.0385545 0.988968 N1 0.127899 0.0741814 0.989009 N2 0.144879 0.0840299 0.985875 - txt003 -STRI - V0 0.553875 0.15415 2.58889 V1 0.574074 2.22045e-16 2.58889 V2 0.825 1.11022e-16 2.55 - N0 0.162011 0.0436726 0.985822 N1 0.168031 -1.93429e-17 0.985782 N2 0.14834 -2.37649e-17 0.988936 - txt003 -STRI - V0 0.825 1.11022e-16 2.55 V1 0.795972 0.221528 2.55 V2 0.553875 0.15415 2.58889 - N0 0.14834 -2.37649e-17 0.988936 N1 0.143025 0.0385545 0.988968 N2 0.162011 0.0436726 0.985822 - txt003 -STRI - V0 0 0.825 2.55 V1 0.221528 0.795972 2.55 V2 0.284431 1.02199 2.51111 - N0 -0 0.14834 0.988936 N1 0.0385545 0.143025 0.988968 N2 0.0503275 0.186699 0.981127 - txt003 -STRI - V0 0.284431 1.02199 2.51111 V1 0 1.05926 2.51111 V2 0 0.825 2.55 - N0 0.0503275 0.186699 0.981127 N1 -0 0.193633 0.981074 N2 -0 0.14834 0.988936 - txt003 -STRI - V0 0.221528 0.795972 2.55 V1 0.419222 0.713778 2.55 V2 0.538261 0.916455 2.51111 - N0 0.0385545 0.143025 0.988968 N1 0.0741814 0.127899 0.989009 N2 0.0968361 0.166959 0.981197 - txt003 -STRI - V0 0.538261 0.916455 2.51111 V1 0.284431 1.02199 2.51111 V2 0.221528 0.795972 2.55 - N0 0.0968361 0.166959 0.981197 N1 0.0503275 0.186699 0.981127 N2 0.0385545 0.143025 0.988968 - txt003 -STRI - V0 0.419222 0.713778 2.55 V1 0.58575 0.58575 2.55 V2 0.752074 0.752074 2.51111 - N0 0.0741814 0.127899 0.989009 N1 0.104474 0.104474 0.989025 N2 0.136382 0.136382 0.981224 - txt003 -STRI - V0 0.752074 0.752074 2.51111 V1 0.538261 0.916455 2.51111 V2 0.419222 0.713778 2.55 - N0 0.136382 0.136382 0.981224 N1 0.0968361 0.166959 0.981197 N2 0.0741814 0.127899 0.989009 - txt003 -STRI - V0 0.58575 0.58575 2.55 V1 0.713778 0.419222 2.55 V2 0.916455 0.538261 2.51111 - N0 0.104474 0.104474 0.989025 N1 0.127899 0.0741814 0.989009 N2 0.166959 0.0968361 0.981197 - txt003 -STRI - V0 0.916455 0.538261 2.51111 V1 0.752074 0.752074 2.51111 V2 0.58575 0.58575 2.55 - N0 0.166959 0.0968361 0.981197 N1 0.136382 0.136382 0.981224 N2 0.104474 0.104474 0.989025 - txt003 -STRI - V0 0.713778 0.419222 2.55 V1 0.795972 0.221528 2.55 V2 1.02199 0.284431 2.51111 - N0 0.127899 0.0741814 0.989009 N1 0.143025 0.0385545 0.988968 N2 0.186699 0.0503275 0.981127 - txt003 -STRI - V0 1.02199 0.284431 2.51111 V1 0.916455 0.538261 2.51111 V2 0.713778 0.419222 2.55 - N0 0.186699 0.0503275 0.981127 N1 0.166959 0.0968361 0.981197 N2 0.127899 0.0741814 0.989009 - txt003 -STRI - V0 0.795972 0.221528 2.55 V1 0.825 1.11022e-16 2.55 V2 1.05926 4.44089e-16 2.51111 - N0 0.143025 0.0385545 0.988968 N1 0.14834 -2.37649e-17 0.988936 N2 0.193633 -7.24819e-17 0.981074 - txt003 -STRI - V0 1.05926 4.44089e-16 2.51111 V1 1.02199 0.284431 2.51111 V2 0.795972 0.221528 2.55 - N0 0.193633 -7.24819e-17 0.981074 N1 0.186699 0.0503275 0.981127 N2 0.143025 0.0385545 0.988968 - txt003 -STRI - V0 0 1.05926 2.51111 V1 0.284431 1.02199 2.51111 V2 0.330924 1.18904 2.46389 - N0 -0 0.193633 0.981074 N1 0.0503275 0.186699 0.981127 N2 0.101459 0.376378 0.920894 - txt003 -STRI - V0 0.330924 1.18904 2.46389 V1 0 1.23241 2.46389 V2 0 1.05926 2.51111 - N0 0.101459 0.376378 0.920894 N1 -0 0.390293 0.920691 N2 -0 0.193633 0.981074 - txt003 -STRI - V0 0.284431 1.02199 2.51111 V1 0.538261 0.916455 2.51111 V2 0.626246 1.06626 2.46389 - N0 0.0503275 0.186699 0.981127 N1 0.0968361 0.166959 0.981197 N2 0.195261 0.336657 0.92116 - txt003 -STRI - V0 0.626246 1.06626 2.46389 V1 0.330924 1.18904 2.46389 V2 0.284431 1.02199 2.51111 - N0 0.195261 0.336657 0.92116 N1 0.101459 0.376378 0.920894 N2 0.0503275 0.186699 0.981127 - txt003 -STRI - V0 0.538261 0.916455 2.51111 V1 0.752074 0.752074 2.51111 V2 0.875009 0.875009 2.46389 - N0 0.0968361 0.166959 0.981197 N1 0.136382 0.136382 0.981224 N2 0.275025 0.275025 0.921262 - txt003 -STRI - V0 0.875009 0.875009 2.46389 V1 0.626246 1.06626 2.46389 V2 0.538261 0.916455 2.51111 - N0 0.275025 0.275025 0.921262 N1 0.195261 0.336657 0.92116 N2 0.0968361 0.166959 0.981197 - txt003 -STRI - V0 0.752074 0.752074 2.51111 V1 0.916455 0.538261 2.51111 V2 1.06626 0.626246 2.46389 - N0 0.136382 0.136382 0.981224 N1 0.166959 0.0968361 0.981197 N2 0.336657 0.195261 0.92116 - txt003 -STRI - V0 1.06626 0.626246 2.46389 V1 0.875009 0.875009 2.46389 V2 0.752074 0.752074 2.51111 - N0 0.336657 0.195261 0.92116 N1 0.275025 0.275025 0.921262 N2 0.136382 0.136382 0.981224 - txt003 -STRI - V0 0.916455 0.538261 2.51111 V1 1.02199 0.284431 2.51111 V2 1.18904 0.330924 2.46389 - N0 0.166959 0.0968361 0.981197 N1 0.186699 0.0503275 0.981127 N2 0.376378 0.101459 0.920894 - txt003 -STRI - V0 1.18904 0.330924 2.46389 V1 1.06626 0.626246 2.46389 V2 0.916455 0.538261 2.51111 - N0 0.376378 0.101459 0.920894 N1 0.336657 0.195261 0.92116 N2 0.166959 0.0968361 0.981197 - txt003 -STRI - V0 1.02199 0.284431 2.51111 V1 1.05926 4.44089e-16 2.51111 V2 1.23241 4.44089e-16 2.46389 - N0 0.186699 0.0503275 0.981127 N1 0.193633 -7.24819e-17 0.981074 N2 0.390293 -8.37138e-17 0.920691 - txt003 -STRI - V0 1.23241 4.44089e-16 2.46389 V1 1.18904 0.330924 2.46389 V2 1.02199 0.284431 2.51111 - N0 0.390293 -8.37138e-17 0.920691 N1 0.376378 0.101459 0.920894 N2 0.186699 0.0503275 0.981127 - txt003 -STRI - V0 0 1.23241 2.46389 V1 0.330924 1.18904 2.46389 V2 0.349074 1.25426 2.4 - N0 -0 0.390293 0.920691 N1 0.101459 0.376378 0.920894 N2 0.260275 0.965535 -1.02004e-15 - txt003 -STRI - V0 0.349074 1.25426 2.4 V1 0 1.3 2.4 V2 0 1.23241 2.46389 - N0 0.260275 0.965535 -1.02004e-15 N1 0 1 -9.86865e-16 N2 -0 0.390293 0.920691 - txt003 -STRI - V0 0.330924 1.18904 2.46389 V1 0.626246 1.06626 2.46389 V2 0.660593 1.12474 2.4 - N0 0.101459 0.376378 0.920894 N1 0.195261 0.336657 0.92116 N2 0.501718 0.865031 -9.69705e-16 - txt003 -STRI - V0 0.660593 1.12474 2.4 V1 0.349074 1.25426 2.4 V2 0.330924 1.18904 2.46389 - N0 0.501718 0.865031 -9.69705e-16 N1 0.260275 0.965535 -1.02004e-15 N2 0.101459 0.376378 0.920894 - txt003 -STRI - V0 0.626246 1.06626 2.46389 V1 0.875009 0.875009 2.46389 V2 0.923 0.923 2.4 - N0 0.195261 0.336657 0.92116 N1 0.275025 0.275025 0.921262 N2 0.707107 0.707107 -7.41433e-16 - txt003 -STRI - V0 0.923 0.923 2.4 V1 0.660593 1.12474 2.4 V2 0.626246 1.06626 2.46389 - N0 0.707107 0.707107 -7.41433e-16 N1 0.501718 0.865031 -9.69705e-16 N2 0.195261 0.336657 0.92116 - txt003 -STRI - V0 0.875009 0.875009 2.46389 V1 1.06626 0.626246 2.46389 V2 1.12474 0.660593 2.4 - N0 0.275025 0.275025 0.921262 N1 0.336657 0.195261 0.92116 N2 0.865031 0.501718 -4.67305e-16 - txt003 -STRI - V0 1.12474 0.660593 2.4 V1 0.923 0.923 2.4 V2 0.875009 0.875009 2.46389 - N0 0.865031 0.501718 -4.67305e-16 N1 0.707107 0.707107 -7.41433e-16 N2 0.275025 0.275025 0.921262 - txt003 -STRI - V0 1.06626 0.626246 2.46389 V1 1.18904 0.330924 2.46389 V2 1.25426 0.349074 2.4 - N0 0.336657 0.195261 0.92116 N1 0.376378 0.101459 0.920894 N2 0.965535 0.260275 -5.24893e-16 - txt003 -STRI - V0 1.25426 0.349074 2.4 V1 1.12474 0.660593 2.4 V2 1.06626 0.626246 2.46389 - N0 0.965535 0.260275 -5.24893e-16 N1 0.865031 0.501718 -4.67305e-16 N2 0.336657 0.195261 0.92116 - txt003 -STRI - V0 1.18904 0.330924 2.46389 V1 1.23241 4.44089e-16 2.46389 V2 1.3 6.66134e-16 2.4 - N0 0.376378 0.101459 0.920894 N1 0.390293 -8.37138e-17 0.920691 N2 1 -4.06675e-16 -1.4803e-15 - txt003 -STRI - V0 1.3 6.66134e-16 2.4 V1 1.25426 0.349074 2.4 V2 1.18904 0.330924 2.46389 - N0 1 -4.06675e-16 -1.4803e-15 N1 0.965535 0.260275 -5.24893e-16 N2 0.376378 0.101459 0.920894 - txt003 -STRI - V0 0.584584 0.162696 0.00590278 V1 0.605903 0 0.00590278 V2 0 0 0 - N0 0.0218614 0.00589307 -0.999744 N1 0.0226746 0 -0.999743 N2 0 0 -1 - txt003 -STRI - V0 0.524218 0.307888 0.00590278 V1 0.584584 0.162696 0.00590278 V2 0 0 0 - N0 0.0195486 0.0113382 -0.999745 N1 0.0218614 0.00589307 -0.999744 N2 0 0 -1 - txt003 -STRI - V0 0.430191 0.430191 0.00590278 V1 0.524218 0.307888 0.00590278 V2 0 0 0 - N0 0.015968 0.015968 -0.999745 N1 0.0195486 0.0113382 -0.999745 N2 0 0 -1 - txt003 -STRI - V0 0.307888 0.524218 0.00590278 V1 0.430191 0.430191 0.00590278 V2 0 0 0 - N0 0.0113382 0.0195486 -0.999745 N1 0.015968 0.015968 -0.999745 N2 0 0 -1 - txt003 -STRI - V0 0.162696 0.584584 0.00590278 V1 0.307888 0.524218 0.00590278 V2 0 0 0 - N0 0.00589307 0.0218614 -0.999744 N1 0.0113382 0.0195486 -0.999745 N2 0 0 -1 - txt003 -STRI - V0 0 0.605903 0.00590278 V1 0.162696 0.584584 0.00590278 V2 0 0 0 - N0 4.94615e-18 0.0226746 -0.999743 N1 0.00589307 0.0218614 -0.999744 N2 0 0 -1 - txt003 -STRI - V0 0.605903 0 0.00590278 V1 0.584584 0.162696 0.00590278 V2 0.986255 0.274486 0.0222222 - N0 0.0226746 0 -0.999743 N1 0.0218614 0.00589307 -0.999744 N2 0.0601415 0.0162121 -0.998058 - txt003 -STRI - V0 0.986255 0.274486 0.0222222 V1 1.02222 0 0.0222222 V2 0.605903 0 0.00590278 - N0 0.0601415 0.0162121 -0.998058 N1 0.0623783 0 -0.998053 N2 0.0226746 0 -0.999743 - txt003 -STRI - V0 0.584584 0.162696 0.00590278 V1 0.524218 0.307888 0.00590278 V2 0.884412 0.51944 0.0222222 - N0 0.0218614 0.00589307 -0.999744 N1 0.0195486 0.0113382 -0.999745 N2 0.0537792 0.0311919 -0.998066 - txt003 -STRI - V0 0.884412 0.51944 0.0222222 V1 0.986255 0.274486 0.0222222 V2 0.584584 0.162696 0.00590278 - N0 0.0537792 0.0311919 -0.998066 N1 0.0601415 0.0162121 -0.998058 N2 0.0218614 0.00589307 -0.999744 - txt003 -STRI - V0 0.524218 0.307888 0.00590278 V1 0.430191 0.430191 0.00590278 V2 0.725778 0.725778 0.0222222 - N0 0.0195486 0.0113382 -0.999745 N1 0.015968 0.015968 -0.999745 N2 0.0439291 0.0439291 -0.998068 - txt003 -STRI - V0 0.725778 0.725778 0.0222222 V1 0.884412 0.51944 0.0222222 V2 0.524218 0.307888 0.00590278 - N0 0.0439291 0.0439291 -0.998068 N1 0.0537792 0.0311919 -0.998066 N2 0.0195486 0.0113382 -0.999745 - txt003 -STRI - V0 0.430191 0.430191 0.00590278 V1 0.307888 0.524218 0.00590278 V2 0.51944 0.884412 0.0222222 - N0 0.015968 0.015968 -0.999745 N1 0.0113382 0.0195486 -0.999745 N2 0.0311919 0.0537792 -0.998066 - txt003 -STRI - V0 0.51944 0.884412 0.0222222 V1 0.725778 0.725778 0.0222222 V2 0.430191 0.430191 0.00590278 - N0 0.0311919 0.0537792 -0.998066 N1 0.0439291 0.0439291 -0.998068 N2 0.015968 0.015968 -0.999745 - txt003 -STRI - V0 0.307888 0.524218 0.00590278 V1 0.162696 0.584584 0.00590278 V2 0.274486 0.986255 0.0222222 - N0 0.0113382 0.0195486 -0.999745 N1 0.00589307 0.0218614 -0.999744 N2 0.0162121 0.0601415 -0.998058 - txt003 -STRI - V0 0.274486 0.986255 0.0222222 V1 0.51944 0.884412 0.0222222 V2 0.307888 0.524218 0.00590278 - N0 0.0162121 0.0601415 -0.998058 N1 0.0311919 0.0537792 -0.998066 N2 0.0113382 0.0195486 -0.999745 - txt003 -STRI - V0 0.162696 0.584584 0.00590278 V1 0 0.605903 0.00590278 V2 -2.22045e-16 1.02222 0.0222222 - N0 0.00589307 0.0218614 -0.999744 N1 4.94615e-18 0.0226746 -0.999743 N2 0 0.0623783 -0.998053 - txt003 -STRI - V0 -2.22045e-16 1.02222 0.0222222 V1 0.274486 0.986255 0.0222222 V2 0.162696 0.584584 0.00590278 - N0 0 0.0623783 -0.998053 N1 0.0162121 0.0601415 -0.998058 N2 0.00589307 0.0218614 -0.999744 - txt003 -STRI - V0 1.02222 0 0.0222222 V1 0.986255 0.274486 0.0222222 V2 1.23918 0.344878 0.046875 - N0 0.0623783 0 -0.998053 N1 0.0601415 0.0162121 -0.998058 N2 0.136353 0.0367561 -0.989978 - txt003 -STRI - V0 1.23918 0.344878 0.046875 V1 1.28438 0 0.046875 V2 1.02222 0 0.0222222 - N0 0.136353 0.0367561 -0.989978 N1 0.141421 0 -0.989949 N2 0.0623783 0 -0.998053 - txt003 -STRI - V0 0.986255 0.274486 0.0222222 V1 0.884412 0.51944 0.0222222 V2 1.11122 0.652653 0.046875 - N0 0.0601415 0.0162121 -0.998058 N1 0.0537792 0.0311919 -0.998066 N2 0.121932 0.0707208 -0.990016 - txt003 -STRI - V0 1.11122 0.652653 0.046875 V1 1.23918 0.344878 0.046875 V2 0.986255 0.274486 0.0222222 - N0 0.121932 0.0707208 -0.990016 N1 0.136353 0.0367561 -0.989978 N2 0.0601415 0.0162121 -0.998058 - txt003 -STRI - V0 0.884412 0.51944 0.0222222 V1 0.725778 0.725778 0.0222222 V2 0.911906 0.911906 0.046875 - N0 0.0537792 0.0311919 -0.998066 N1 0.0439291 0.0439291 -0.998068 N2 0.0996006 0.0996006 -0.99003 - txt003 -STRI - V0 0.911906 0.911906 0.046875 V1 1.11122 0.652653 0.046875 V2 0.884412 0.51944 0.0222222 - N0 0.0996006 0.0996006 -0.99003 N1 0.121932 0.0707208 -0.990016 N2 0.0537792 0.0311919 -0.998066 - txt003 -STRI - V0 0.725778 0.725778 0.0222222 V1 0.51944 0.884412 0.0222222 V2 0.652653 1.11122 0.046875 - N0 0.0439291 0.0439291 -0.998068 N1 0.0311919 0.0537792 -0.998066 N2 0.0707208 0.121932 -0.990016 - txt003 -STRI - V0 0.652653 1.11122 0.046875 V1 0.911906 0.911906 0.046875 V2 0.725778 0.725778 0.0222222 - N0 0.0707208 0.121932 -0.990016 N1 0.0996006 0.0996006 -0.99003 N2 0.0439291 0.0439291 -0.998068 - txt003 -STRI - V0 0.51944 0.884412 0.0222222 V1 0.274486 0.986255 0.0222222 V2 0.344878 1.23918 0.046875 - N0 0.0311919 0.0537792 -0.998066 N1 0.0162121 0.0601415 -0.998058 N2 0.0367561 0.136353 -0.989978 - txt003 -STRI - V0 0.344878 1.23918 0.046875 V1 0.652653 1.11122 0.046875 V2 0.51944 0.884412 0.0222222 - N0 0.0367561 0.136353 -0.989978 N1 0.0707208 0.121932 -0.990016 N2 0.0311919 0.0537792 -0.998066 - txt003 -STRI - V0 0.274486 0.986255 0.0222222 V1 -2.22045e-16 1.02222 0.0222222 V2 2.22045e-16 1.28437 0.046875 - N0 0.0162121 0.0601415 -0.998058 N1 0 0.0623783 -0.998053 N2 0 0.141421 -0.989949 - txt003 -STRI - V0 2.22045e-16 1.28437 0.046875 V1 0.344878 1.23918 0.046875 V2 0.274486 0.986255 0.0222222 - N0 0 0.141421 -0.989949 N1 0.0367561 0.136353 -0.989978 N2 0.0162121 0.0601415 -0.998058 - txt003 -STRI - V0 1.28438 0 0.046875 V1 1.23918 0.344878 0.046875 V2 1.37754 0.383385 0.0777778 - N0 0.141421 0 -0.989949 N1 0.136353 0.0367561 -0.989978 N2 0.316788 0.085395 -0.944644 - txt003 -STRI - V0 1.37754 0.383385 0.0777778 V1 1.42778 0 0.0777778 V2 1.28438 0 0.046875 - N0 0.316788 0.085395 -0.944644 N1 0.328521 0 -0.944497 N2 0.141421 0 -0.989949 - txt003 -STRI - V0 1.23918 0.344878 0.046875 V1 1.11122 0.652653 0.046875 V2 1.23529 0.725523 0.0777778 - N0 0.136353 0.0367561 -0.989978 N1 0.121932 0.0707208 -0.990016 N2 0.283331 0.164332 -0.944838 - txt003 -STRI - V0 1.23529 0.725523 0.0777778 V1 1.37754 0.383385 0.0777778 V2 1.23918 0.344878 0.046875 - N0 0.283331 0.164332 -0.944838 N1 0.316788 0.085395 -0.944644 N2 0.136353 0.0367561 -0.989978 - txt003 -STRI - V0 1.11122 0.652653 0.046875 V1 0.911906 0.911906 0.046875 V2 1.01372 1.01372 0.0777778 - N0 0.121932 0.0707208 -0.990016 N1 0.0996006 0.0996006 -0.99003 N2 0.231454 0.231454 -0.944912 - txt003 -STRI - V0 1.01372 1.01372 0.0777778 V1 1.23529 0.725523 0.0777778 V2 1.11122 0.652653 0.046875 - N0 0.231454 0.231454 -0.944912 N1 0.283331 0.164332 -0.944838 N2 0.121932 0.0707208 -0.990016 - txt003 -STRI - V0 0.911906 0.911906 0.046875 V1 0.652653 1.11122 0.046875 V2 0.725523 1.23529 0.0777778 - N0 0.0996006 0.0996006 -0.99003 N1 0.0707208 0.121932 -0.990016 N2 0.164332 0.283331 -0.944838 - txt003 -STRI - V0 0.725523 1.23529 0.0777778 V1 1.01372 1.01372 0.0777778 V2 0.911906 0.911906 0.046875 - N0 0.164332 0.283331 -0.944838 N1 0.231454 0.231454 -0.944912 N2 0.0996006 0.0996006 -0.99003 - txt003 -STRI - V0 0.652653 1.11122 0.046875 V1 0.344878 1.23918 0.046875 V2 0.383385 1.37754 0.0777778 - N0 0.0707208 0.121932 -0.990016 N1 0.0367561 0.136353 -0.989978 N2 0.085395 0.316788 -0.944644 - txt003 -STRI - V0 0.383385 1.37754 0.0777778 V1 0.725523 1.23529 0.0777778 V2 0.652653 1.11122 0.046875 - N0 0.085395 0.316788 -0.944644 N1 0.164332 0.283331 -0.944838 N2 0.0707208 0.121932 -0.990016 - txt003 -STRI - V0 0.344878 1.23918 0.046875 V1 2.22045e-16 1.28437 0.046875 V2 -2.22045e-16 1.42778 0.0777778 - N0 0.0367561 0.136353 -0.989978 N1 0 0.141421 -0.989949 N2 6.08223e-17 0.328521 -0.944497 - txt003 -STRI - V0 -2.22045e-16 1.42778 0.0777778 V1 0.383385 1.37754 0.0777778 V2 0.344878 1.23918 0.046875 - N0 6.08223e-17 0.328521 -0.944497 N1 0.085395 0.316788 -0.944644 N2 0.0367561 0.136353 -0.989978 - txt003 -STRI - V0 1.42778 0 0.0777778 V1 1.37754 0.383385 0.0777778 V2 1.4355 0.399515 0.112847 - N0 0.328521 0 -0.944497 N1 0.316788 0.085395 -0.944644 N2 0.743044 0.200299 -0.638566 - txt003 -STRI - V0 1.4355 0.399515 0.112847 V1 1.48785 0 0.112847 V2 1.42778 0 0.0777778 - N0 0.743044 0.200299 -0.638566 N1 0.770022 0 -0.638018 N2 0.328521 0 -0.944497 - txt003 -STRI - V0 1.37754 0.383385 0.0777778 V1 1.23529 0.725523 0.0777778 V2 1.28726 0.756047 0.112847 - N0 0.316788 0.085395 -0.944644 N1 0.283331 0.164332 -0.944838 N2 0.665182 0.385806 -0.639286 - txt003 -STRI - V0 1.28726 0.756047 0.112847 V1 1.4355 0.399515 0.112847 V2 1.37754 0.383385 0.0777778 - N0 0.665182 0.385806 -0.639286 N1 0.743044 0.200299 -0.638566 N2 0.316788 0.085395 -0.944644 - txt003 -STRI - V0 1.23529 0.725523 0.0777778 V1 1.01372 1.01372 0.0777778 V2 1.05637 1.05637 0.112847 - N0 0.283331 0.164332 -0.944838 N1 0.231454 0.231454 -0.944912 N2 0.543581 0.543581 -0.639562 - txt003 -STRI - V0 1.05637 1.05637 0.112847 V1 1.28726 0.756047 0.112847 V2 1.23529 0.725523 0.0777778 - N0 0.543581 0.543581 -0.639562 N1 0.665182 0.385806 -0.639286 N2 0.283331 0.164332 -0.944838 - txt003 -STRI - V0 1.01372 1.01372 0.0777778 V1 0.725523 1.23529 0.0777778 V2 0.756047 1.28726 0.112847 - N0 0.231454 0.231454 -0.944912 N1 0.164332 0.283331 -0.944838 N2 0.385806 0.665182 -0.639286 - txt003 -STRI - V0 0.756047 1.28726 0.112847 V1 1.05637 1.05637 0.112847 V2 1.01372 1.01372 0.0777778 - N0 0.385806 0.665182 -0.639286 N1 0.543581 0.543581 -0.639562 N2 0.231454 0.231454 -0.944912 - txt003 -STRI - V0 0.725523 1.23529 0.0777778 V1 0.383385 1.37754 0.0777778 V2 0.399515 1.4355 0.112847 - N0 0.164332 0.283331 -0.944838 N1 0.085395 0.316788 -0.944644 N2 0.200299 0.743044 -0.638566 - txt003 -STRI - V0 0.399515 1.4355 0.112847 V1 0.756047 1.28726 0.112847 V2 0.725523 1.23529 0.0777778 - N0 0.200299 0.743044 -0.638566 N1 0.385806 0.665182 -0.639286 N2 0.164332 0.283331 -0.944838 - txt003 -STRI - V0 0.383385 1.37754 0.0777778 V1 -2.22045e-16 1.42778 0.0777778 V2 0 1.48785 0.112847 - N0 0.085395 0.316788 -0.944644 N1 6.08223e-17 0.328521 -0.944497 N2 1.36806e-16 0.770022 -0.638018 - txt003 -STRI - V0 0 1.48785 0.112847 V1 0.399515 1.4355 0.112847 V2 0.383385 1.37754 0.0777778 - N0 1.36806e-16 0.770022 -0.638018 N1 0.200299 0.743044 -0.638566 N2 0.085395 0.316788 -0.944644 - txt003 -STRI - V0 1.48785 0 0.112847 V1 1.4355 0.399515 0.112847 V2 1.44722 0.402778 0.15 - N0 0.770022 0 -0.638018 N1 0.743044 0.200299 -0.638566 N2 0.965535 0.260275 -2.07142e-16 - txt003 -STRI - V0 1.44722 0.402778 0.15 V1 1.5 0 0.15 V2 1.48785 0 0.112847 - N0 0.965535 0.260275 -2.07142e-16 N1 1 0 0 N2 0.770022 0 -0.638018 - txt003 -STRI - V0 1.4355 0.399515 0.112847 V1 1.28726 0.756047 0.112847 V2 1.29778 0.762222 0.15 - N0 0.743044 0.200299 -0.638566 N1 0.665182 0.385806 -0.639286 N2 0.865031 0.501718 -5.46348e-16 - txt003 -STRI - V0 1.29778 0.762222 0.15 V1 1.44722 0.402778 0.15 V2 1.4355 0.399515 0.112847 - N0 0.865031 0.501718 -5.46348e-16 N1 0.965535 0.260275 -2.07142e-16 N2 0.743044 0.200299 -0.638566 - txt003 -STRI - V0 1.28726 0.756047 0.112847 V1 1.05637 1.05637 0.112847 V2 1.065 1.065 0.15 - N0 0.665182 0.385806 -0.639286 N1 0.543581 0.543581 -0.639562 N2 0.707107 0.707107 -6.97819e-16 - txt003 -STRI - V0 1.065 1.065 0.15 V1 1.29778 0.762222 0.15 V2 1.28726 0.756047 0.112847 - N0 0.707107 0.707107 -6.97819e-16 N1 0.865031 0.501718 -5.46348e-16 N2 0.665182 0.385806 -0.639286 - txt003 -STRI - V0 1.05637 1.05637 0.112847 V1 0.756047 1.28726 0.112847 V2 0.762222 1.29778 0.15 - N0 0.543581 0.543581 -0.639562 N1 0.385806 0.665182 -0.639286 N2 0.501718 0.865031 -5.46348e-16 - txt003 -STRI - V0 0.762222 1.29778 0.15 V1 1.065 1.065 0.15 V2 1.05637 1.05637 0.112847 - N0 0.501718 0.865031 -5.46348e-16 N1 0.707107 0.707107 -6.97819e-16 N2 0.543581 0.543581 -0.639562 - txt003 -STRI - V0 0.756047 1.28726 0.112847 V1 0.399515 1.4355 0.112847 V2 0.402778 1.44722 0.15 - N0 0.385806 0.665182 -0.639286 N1 0.200299 0.743044 -0.638566 N2 0.260275 0.965535 -2.07142e-16 - txt003 -STRI - V0 0.402778 1.44722 0.15 V1 0.762222 1.29778 0.15 V2 0.756047 1.28726 0.112847 - N0 0.260275 0.965535 -2.07142e-16 N1 0.501718 0.865031 -5.46348e-16 N2 0.385806 0.665182 -0.639286 - txt003 -STRI - V0 0.399515 1.4355 0.112847 V1 0 1.48785 0.112847 V2 0 1.5 0.15 - N0 0.200299 0.743044 -0.638566 N1 1.36806e-16 0.770022 -0.638018 N2 0 1 -0 - txt003 -STRI - V0 0 1.5 0.15 V1 0.402778 1.44722 0.15 V2 0.399515 1.4355 0.112847 - N0 0 1 -0 N1 0.260275 0.965535 -2.07142e-16 N2 0.200299 0.743044 -0.638566 - txt003 -STRI - V0 -0.162696 0.584584 0.00590278 V1 0 0.605903 0.00590278 V2 0 0 0 - N0 -0.00589307 0.0218614 -0.999744 N1 0 0.0226746 -0.999743 N2 0 0 -1 - txt003 -STRI - V0 -0.307888 0.524218 0.00590278 V1 -0.162696 0.584584 0.00590278 V2 0 0 0 - N0 -0.0113382 0.0195486 -0.999745 N1 -0.00589307 0.0218614 -0.999744 N2 0 0 -1 - txt003 -STRI - V0 -0.430191 0.430191 0.00590278 V1 -0.307888 0.524218 0.00590278 V2 0 0 0 - N0 -0.015968 0.015968 -0.999745 N1 -0.0113382 0.0195486 -0.999745 N2 0 0 -1 - txt003 -STRI - V0 -0.524218 0.307888 0.00590278 V1 -0.430191 0.430191 0.00590278 V2 0 0 0 - N0 -0.0195486 0.0113382 -0.999745 N1 -0.015968 0.015968 -0.999745 N2 0 0 -1 - txt003 -STRI - V0 -0.584584 0.162696 0.00590278 V1 -0.524218 0.307888 0.00590278 V2 0 0 0 - N0 -0.0218614 0.00589307 -0.999744 N1 -0.0195486 0.0113382 -0.999745 N2 0 0 -1 - txt003 -STRI - V0 -0.605903 0 0.00590278 V1 -0.584584 0.162696 0.00590278 V2 0 0 0 - N0 -0.0226746 4.94615e-18 -0.999743 N1 -0.0218614 0.00589307 -0.999744 N2 0 0 -1 - txt003 -STRI - V0 0 0.605903 0.00590278 V1 -0.162696 0.584584 0.00590278 V2 -0.274486 0.986255 0.0222222 - N0 0 0.0226746 -0.999743 N1 -0.00589307 0.0218614 -0.999744 N2 -0.0162121 0.0601415 -0.998058 - txt003 -STRI - V0 -0.274486 0.986255 0.0222222 V1 0 1.02222 0.0222222 V2 0 0.605903 0.00590278 - N0 -0.0162121 0.0601415 -0.998058 N1 0 0.0623783 -0.998053 N2 0 0.0226746 -0.999743 - txt003 -STRI - V0 -0.162696 0.584584 0.00590278 V1 -0.307888 0.524218 0.00590278 V2 -0.51944 0.884412 0.0222222 - N0 -0.00589307 0.0218614 -0.999744 N1 -0.0113382 0.0195486 -0.999745 N2 -0.0311919 0.0537792 -0.998066 - txt003 -STRI - V0 -0.51944 0.884412 0.0222222 V1 -0.274486 0.986255 0.0222222 V2 -0.162696 0.584584 0.00590278 - N0 -0.0311919 0.0537792 -0.998066 N1 -0.0162121 0.0601415 -0.998058 N2 -0.00589307 0.0218614 -0.999744 - txt003 -STRI - V0 -0.307888 0.524218 0.00590278 V1 -0.430191 0.430191 0.00590278 V2 -0.725778 0.725778 0.0222222 - N0 -0.0113382 0.0195486 -0.999745 N1 -0.015968 0.015968 -0.999745 N2 -0.0439291 0.0439291 -0.998068 - txt003 -STRI - V0 -0.725778 0.725778 0.0222222 V1 -0.51944 0.884412 0.0222222 V2 -0.307888 0.524218 0.00590278 - N0 -0.0439291 0.0439291 -0.998068 N1 -0.0311919 0.0537792 -0.998066 N2 -0.0113382 0.0195486 -0.999745 - txt003 -STRI - V0 -0.430191 0.430191 0.00590278 V1 -0.524218 0.307888 0.00590278 V2 -0.884412 0.51944 0.0222222 - N0 -0.015968 0.015968 -0.999745 N1 -0.0195486 0.0113382 -0.999745 N2 -0.0537792 0.0311919 -0.998066 - txt003 -STRI - V0 -0.884412 0.51944 0.0222222 V1 -0.725778 0.725778 0.0222222 V2 -0.430191 0.430191 0.00590278 - N0 -0.0537792 0.0311919 -0.998066 N1 -0.0439291 0.0439291 -0.998068 N2 -0.015968 0.015968 -0.999745 - txt003 -STRI - V0 -0.524218 0.307888 0.00590278 V1 -0.584584 0.162696 0.00590278 V2 -0.986255 0.274486 0.0222222 - N0 -0.0195486 0.0113382 -0.999745 N1 -0.0218614 0.00589307 -0.999744 N2 -0.0601415 0.0162121 -0.998058 - txt003 -STRI - V0 -0.986255 0.274486 0.0222222 V1 -0.884412 0.51944 0.0222222 V2 -0.524218 0.307888 0.00590278 - N0 -0.0601415 0.0162121 -0.998058 N1 -0.0537792 0.0311919 -0.998066 N2 -0.0195486 0.0113382 -0.999745 - txt003 -STRI - V0 -0.584584 0.162696 0.00590278 V1 -0.605903 0 0.00590278 V2 -1.02222 -2.22045e-16 0.0222222 - N0 -0.0218614 0.00589307 -0.999744 N1 -0.0226746 4.94615e-18 -0.999743 N2 -0.0623783 -0 -0.998053 - txt003 -STRI - V0 -1.02222 -2.22045e-16 0.0222222 V1 -0.986255 0.274486 0.0222222 V2 -0.584584 0.162696 0.00590278 - N0 -0.0623783 -0 -0.998053 N1 -0.0601415 0.0162121 -0.998058 N2 -0.0218614 0.00589307 -0.999744 - txt003 -STRI - V0 0 1.02222 0.0222222 V1 -0.274486 0.986255 0.0222222 V2 -0.344878 1.23918 0.046875 - N0 0 0.0623783 -0.998053 N1 -0.0162121 0.0601415 -0.998058 N2 -0.0367561 0.136353 -0.989978 - txt003 -STRI - V0 -0.344878 1.23918 0.046875 V1 0 1.28438 0.046875 V2 0 1.02222 0.0222222 - N0 -0.0367561 0.136353 -0.989978 N1 0 0.141421 -0.989949 N2 0 0.0623783 -0.998053 - txt003 -STRI - V0 -0.274486 0.986255 0.0222222 V1 -0.51944 0.884412 0.0222222 V2 -0.652653 1.11122 0.046875 - N0 -0.0162121 0.0601415 -0.998058 N1 -0.0311919 0.0537792 -0.998066 N2 -0.0707208 0.121932 -0.990016 - txt003 -STRI - V0 -0.652653 1.11122 0.046875 V1 -0.344878 1.23918 0.046875 V2 -0.274486 0.986255 0.0222222 - N0 -0.0707208 0.121932 -0.990016 N1 -0.0367561 0.136353 -0.989978 N2 -0.0162121 0.0601415 -0.998058 - txt003 -STRI - V0 -0.51944 0.884412 0.0222222 V1 -0.725778 0.725778 0.0222222 V2 -0.911906 0.911906 0.046875 - N0 -0.0311919 0.0537792 -0.998066 N1 -0.0439291 0.0439291 -0.998068 N2 -0.0996006 0.0996006 -0.99003 - txt003 -STRI - V0 -0.911906 0.911906 0.046875 V1 -0.652653 1.11122 0.046875 V2 -0.51944 0.884412 0.0222222 - N0 -0.0996006 0.0996006 -0.99003 N1 -0.0707208 0.121932 -0.990016 N2 -0.0311919 0.0537792 -0.998066 - txt003 -STRI - V0 -0.725778 0.725778 0.0222222 V1 -0.884412 0.51944 0.0222222 V2 -1.11122 0.652653 0.046875 - N0 -0.0439291 0.0439291 -0.998068 N1 -0.0537792 0.0311919 -0.998066 N2 -0.121932 0.0707208 -0.990016 - txt003 -STRI - V0 -1.11122 0.652653 0.046875 V1 -0.911906 0.911906 0.046875 V2 -0.725778 0.725778 0.0222222 - N0 -0.121932 0.0707208 -0.990016 N1 -0.0996006 0.0996006 -0.99003 N2 -0.0439291 0.0439291 -0.998068 - txt003 -STRI - V0 -0.884412 0.51944 0.0222222 V1 -0.986255 0.274486 0.0222222 V2 -1.23918 0.344878 0.046875 - N0 -0.0537792 0.0311919 -0.998066 N1 -0.0601415 0.0162121 -0.998058 N2 -0.136353 0.0367561 -0.989978 - txt003 -STRI - V0 -1.23918 0.344878 0.046875 V1 -1.11122 0.652653 0.046875 V2 -0.884412 0.51944 0.0222222 - N0 -0.136353 0.0367561 -0.989978 N1 -0.121932 0.0707208 -0.990016 N2 -0.0537792 0.0311919 -0.998066 - txt003 -STRI - V0 -0.986255 0.274486 0.0222222 V1 -1.02222 -2.22045e-16 0.0222222 V2 -1.28437 2.22045e-16 0.046875 - N0 -0.0601415 0.0162121 -0.998058 N1 -0.0623783 -0 -0.998053 N2 -0.141421 -0 -0.989949 - txt003 -STRI - V0 -1.28437 2.22045e-16 0.046875 V1 -1.23918 0.344878 0.046875 V2 -0.986255 0.274486 0.0222222 - N0 -0.141421 -0 -0.989949 N1 -0.136353 0.0367561 -0.989978 N2 -0.0601415 0.0162121 -0.998058 - txt003 -STRI - V0 0 1.28438 0.046875 V1 -0.344878 1.23918 0.046875 V2 -0.383385 1.37754 0.0777778 - N0 0 0.141421 -0.989949 N1 -0.0367561 0.136353 -0.989978 N2 -0.085395 0.316788 -0.944644 - txt003 -STRI - V0 -0.383385 1.37754 0.0777778 V1 0 1.42778 0.0777778 V2 0 1.28438 0.046875 - N0 -0.085395 0.316788 -0.944644 N1 0 0.328521 -0.944497 N2 0 0.141421 -0.989949 - txt003 -STRI - V0 -0.344878 1.23918 0.046875 V1 -0.652653 1.11122 0.046875 V2 -0.725523 1.23529 0.0777778 - N0 -0.0367561 0.136353 -0.989978 N1 -0.0707208 0.121932 -0.990016 N2 -0.164332 0.283331 -0.944838 - txt003 -STRI - V0 -0.725523 1.23529 0.0777778 V1 -0.383385 1.37754 0.0777778 V2 -0.344878 1.23918 0.046875 - N0 -0.164332 0.283331 -0.944838 N1 -0.085395 0.316788 -0.944644 N2 -0.0367561 0.136353 -0.989978 - txt003 -STRI - V0 -0.652653 1.11122 0.046875 V1 -0.911906 0.911906 0.046875 V2 -1.01372 1.01372 0.0777778 - N0 -0.0707208 0.121932 -0.990016 N1 -0.0996006 0.0996006 -0.99003 N2 -0.231454 0.231454 -0.944912 - txt003 -STRI - V0 -1.01372 1.01372 0.0777778 V1 -0.725523 1.23529 0.0777778 V2 -0.652653 1.11122 0.046875 - N0 -0.231454 0.231454 -0.944912 N1 -0.164332 0.283331 -0.944838 N2 -0.0707208 0.121932 -0.990016 - txt003 -STRI - V0 -0.911906 0.911906 0.046875 V1 -1.11122 0.652653 0.046875 V2 -1.23529 0.725523 0.0777778 - N0 -0.0996006 0.0996006 -0.99003 N1 -0.121932 0.0707208 -0.990016 N2 -0.283331 0.164332 -0.944838 - txt003 -STRI - V0 -1.23529 0.725523 0.0777778 V1 -1.01372 1.01372 0.0777778 V2 -0.911906 0.911906 0.046875 - N0 -0.283331 0.164332 -0.944838 N1 -0.231454 0.231454 -0.944912 N2 -0.0996006 0.0996006 -0.99003 - txt003 -STRI - V0 -1.11122 0.652653 0.046875 V1 -1.23918 0.344878 0.046875 V2 -1.37754 0.383385 0.0777778 - N0 -0.121932 0.0707208 -0.990016 N1 -0.136353 0.0367561 -0.989978 N2 -0.316788 0.085395 -0.944644 - txt003 -STRI - V0 -1.37754 0.383385 0.0777778 V1 -1.23529 0.725523 0.0777778 V2 -1.11122 0.652653 0.046875 - N0 -0.316788 0.085395 -0.944644 N1 -0.283331 0.164332 -0.944838 N2 -0.121932 0.0707208 -0.990016 - txt003 -STRI - V0 -1.23918 0.344878 0.046875 V1 -1.28437 2.22045e-16 0.046875 V2 -1.42778 -2.22045e-16 0.0777778 - N0 -0.136353 0.0367561 -0.989978 N1 -0.141421 -0 -0.989949 N2 -0.328521 6.08223e-17 -0.944497 - txt003 -STRI - V0 -1.42778 -2.22045e-16 0.0777778 V1 -1.37754 0.383385 0.0777778 V2 -1.23918 0.344878 0.046875 - N0 -0.328521 6.08223e-17 -0.944497 N1 -0.316788 0.085395 -0.944644 N2 -0.136353 0.0367561 -0.989978 - txt003 -STRI - V0 0 1.42778 0.0777778 V1 -0.383385 1.37754 0.0777778 V2 -0.399515 1.4355 0.112847 - N0 0 0.328521 -0.944497 N1 -0.085395 0.316788 -0.944644 N2 -0.200299 0.743044 -0.638566 - txt003 -STRI - V0 -0.399515 1.4355 0.112847 V1 0 1.48785 0.112847 V2 0 1.42778 0.0777778 - N0 -0.200299 0.743044 -0.638566 N1 0 0.770022 -0.638018 N2 0 0.328521 -0.944497 - txt003 -STRI - V0 -0.383385 1.37754 0.0777778 V1 -0.725523 1.23529 0.0777778 V2 -0.756047 1.28726 0.112847 - N0 -0.085395 0.316788 -0.944644 N1 -0.164332 0.283331 -0.944838 N2 -0.385806 0.665182 -0.639286 - txt003 -STRI - V0 -0.756047 1.28726 0.112847 V1 -0.399515 1.4355 0.112847 V2 -0.383385 1.37754 0.0777778 - N0 -0.385806 0.665182 -0.639286 N1 -0.200299 0.743044 -0.638566 N2 -0.085395 0.316788 -0.944644 - txt003 -STRI - V0 -0.725523 1.23529 0.0777778 V1 -1.01372 1.01372 0.0777778 V2 -1.05637 1.05637 0.112847 - N0 -0.164332 0.283331 -0.944838 N1 -0.231454 0.231454 -0.944912 N2 -0.543581 0.543581 -0.639562 - txt003 -STRI - V0 -1.05637 1.05637 0.112847 V1 -0.756047 1.28726 0.112847 V2 -0.725523 1.23529 0.0777778 - N0 -0.543581 0.543581 -0.639562 N1 -0.385806 0.665182 -0.639286 N2 -0.164332 0.283331 -0.944838 - txt003 -STRI - V0 -1.01372 1.01372 0.0777778 V1 -1.23529 0.725523 0.0777778 V2 -1.28726 0.756047 0.112847 - N0 -0.231454 0.231454 -0.944912 N1 -0.283331 0.164332 -0.944838 N2 -0.665182 0.385806 -0.639286 - txt003 -STRI - V0 -1.28726 0.756047 0.112847 V1 -1.05637 1.05637 0.112847 V2 -1.01372 1.01372 0.0777778 - N0 -0.665182 0.385806 -0.639286 N1 -0.543581 0.543581 -0.639562 N2 -0.231454 0.231454 -0.944912 - txt003 -STRI - V0 -1.23529 0.725523 0.0777778 V1 -1.37754 0.383385 0.0777778 V2 -1.4355 0.399515 0.112847 - N0 -0.283331 0.164332 -0.944838 N1 -0.316788 0.085395 -0.944644 N2 -0.743044 0.200299 -0.638566 - txt003 -STRI - V0 -1.4355 0.399515 0.112847 V1 -1.28726 0.756047 0.112847 V2 -1.23529 0.725523 0.0777778 - N0 -0.743044 0.200299 -0.638566 N1 -0.665182 0.385806 -0.639286 N2 -0.283331 0.164332 -0.944838 - txt003 -STRI - V0 -1.37754 0.383385 0.0777778 V1 -1.42778 -2.22045e-16 0.0777778 V2 -1.48785 0 0.112847 - N0 -0.316788 0.085395 -0.944644 N1 -0.328521 6.08223e-17 -0.944497 N2 -0.770022 1.36806e-16 -0.638018 - txt003 -STRI - V0 -1.48785 0 0.112847 V1 -1.4355 0.399515 0.112847 V2 -1.37754 0.383385 0.0777778 - N0 -0.770022 1.36806e-16 -0.638018 N1 -0.743044 0.200299 -0.638566 N2 -0.316788 0.085395 -0.944644 - txt003 -STRI - V0 0 1.48785 0.112847 V1 -0.399515 1.4355 0.112847 V2 -0.402778 1.44722 0.15 - N0 0 0.770022 -0.638018 N1 -0.200299 0.743044 -0.638566 N2 -0.260275 0.965535 -2.07142e-16 - txt003 -STRI - V0 -0.402778 1.44722 0.15 V1 0 1.5 0.15 V2 0 1.48785 0.112847 - N0 -0.260275 0.965535 -2.07142e-16 N1 0 1 -0 N2 0 0.770022 -0.638018 - txt003 -STRI - V0 -0.399515 1.4355 0.112847 V1 -0.756047 1.28726 0.112847 V2 -0.762222 1.29778 0.15 - N0 -0.200299 0.743044 -0.638566 N1 -0.385806 0.665182 -0.639286 N2 -0.501718 0.865031 -5.46348e-16 - txt003 -STRI - V0 -0.762222 1.29778 0.15 V1 -0.402778 1.44722 0.15 V2 -0.399515 1.4355 0.112847 - N0 -0.501718 0.865031 -5.46348e-16 N1 -0.260275 0.965535 -2.07142e-16 N2 -0.200299 0.743044 -0.638566 - txt003 -STRI - V0 -0.756047 1.28726 0.112847 V1 -1.05637 1.05637 0.112847 V2 -1.065 1.065 0.15 - N0 -0.385806 0.665182 -0.639286 N1 -0.543581 0.543581 -0.639562 N2 -0.707107 0.707107 -6.97819e-16 - txt003 -STRI - V0 -1.065 1.065 0.15 V1 -0.762222 1.29778 0.15 V2 -0.756047 1.28726 0.112847 - N0 -0.707107 0.707107 -6.97819e-16 N1 -0.501718 0.865031 -5.46348e-16 N2 -0.385806 0.665182 -0.639286 - txt003 -STRI - V0 -1.05637 1.05637 0.112847 V1 -1.28726 0.756047 0.112847 V2 -1.29778 0.762222 0.15 - N0 -0.543581 0.543581 -0.639562 N1 -0.665182 0.385806 -0.639286 N2 -0.865031 0.501718 -5.46348e-16 - txt003 -STRI - V0 -1.29778 0.762222 0.15 V1 -1.065 1.065 0.15 V2 -1.05637 1.05637 0.112847 - N0 -0.865031 0.501718 -5.46348e-16 N1 -0.707107 0.707107 -6.97819e-16 N2 -0.543581 0.543581 -0.639562 - txt003 -STRI - V0 -1.28726 0.756047 0.112847 V1 -1.4355 0.399515 0.112847 V2 -1.44722 0.402778 0.15 - N0 -0.665182 0.385806 -0.639286 N1 -0.743044 0.200299 -0.638566 N2 -0.965535 0.260275 -2.07142e-16 - txt003 -STRI - V0 -1.44722 0.402778 0.15 V1 -1.29778 0.762222 0.15 V2 -1.28726 0.756047 0.112847 - N0 -0.965535 0.260275 -2.07142e-16 N1 -0.865031 0.501718 -5.46348e-16 N2 -0.665182 0.385806 -0.639286 - txt003 -STRI - V0 -1.4355 0.399515 0.112847 V1 -1.48785 0 0.112847 V2 -1.5 0 0.15 - N0 -0.743044 0.200299 -0.638566 N1 -0.770022 1.36806e-16 -0.638018 N2 -1 0 0 - txt003 -STRI - V0 -1.5 0 0.15 V1 -1.44722 0.402778 0.15 V2 -1.4355 0.399515 0.112847 - N0 -1 0 0 N1 -0.965535 0.260275 -2.07142e-16 N2 -0.743044 0.200299 -0.638566 - txt003 -STRI - V0 -0.584584 -0.162696 0.00590278 V1 -0.605903 0 0.00590278 V2 0 0 0 - N0 -0.0218614 -0.00589307 -0.999744 N1 -0.0226746 -0 -0.999743 N2 0 0 -1 - txt003 -STRI - V0 -0.524218 -0.307888 0.00590278 V1 -0.584584 -0.162696 0.00590278 V2 0 0 0 - N0 -0.0195486 -0.0113382 -0.999745 N1 -0.0218614 -0.00589307 -0.999744 N2 0 0 -1 - txt003 -STRI - V0 -0.430191 -0.430191 0.00590278 V1 -0.524218 -0.307888 0.00590278 V2 0 0 0 - N0 -0.015968 -0.015968 -0.999745 N1 -0.0195486 -0.0113382 -0.999745 N2 0 0 -1 - txt003 -STRI - V0 -0.307888 -0.524218 0.00590278 V1 -0.430191 -0.430191 0.00590278 V2 0 0 0 - N0 -0.0113382 -0.0195486 -0.999745 N1 -0.015968 -0.015968 -0.999745 N2 0 0 -1 - txt003 -STRI - V0 -0.162696 -0.584584 0.00590278 V1 -0.307888 -0.524218 0.00590278 V2 0 0 0 - N0 -0.00589307 -0.0218614 -0.999744 N1 -0.0113382 -0.0195486 -0.999745 N2 0 0 -1 - txt003 -STRI - V0 0 -0.605903 0.00590278 V1 -0.162696 -0.584584 0.00590278 V2 0 0 0 - N0 -4.94615e-18 -0.0226746 -0.999743 N1 -0.00589307 -0.0218614 -0.999744 N2 0 0 -1 - txt003 -STRI - V0 -0.605903 0 0.00590278 V1 -0.584584 -0.162696 0.00590278 V2 -0.986255 -0.274486 0.0222222 - N0 -0.0226746 -0 -0.999743 N1 -0.0218614 -0.00589307 -0.999744 N2 -0.0601415 -0.0162121 -0.998058 - txt003 -STRI - V0 -0.986255 -0.274486 0.0222222 V1 -1.02222 0 0.0222222 V2 -0.605903 0 0.00590278 - N0 -0.0601415 -0.0162121 -0.998058 N1 -0.0623783 -0 -0.998053 N2 -0.0226746 -0 -0.999743 - txt003 -STRI - V0 -0.584584 -0.162696 0.00590278 V1 -0.524218 -0.307888 0.00590278 V2 -0.884412 -0.51944 0.0222222 - N0 -0.0218614 -0.00589307 -0.999744 N1 -0.0195486 -0.0113382 -0.999745 N2 -0.0537792 -0.0311919 -0.998066 - txt003 -STRI - V0 -0.884412 -0.51944 0.0222222 V1 -0.986255 -0.274486 0.0222222 V2 -0.584584 -0.162696 0.00590278 - N0 -0.0537792 -0.0311919 -0.998066 N1 -0.0601415 -0.0162121 -0.998058 N2 -0.0218614 -0.00589307 -0.999744 - txt003 -STRI - V0 -0.524218 -0.307888 0.00590278 V1 -0.430191 -0.430191 0.00590278 V2 -0.725778 -0.725778 0.0222222 - N0 -0.0195486 -0.0113382 -0.999745 N1 -0.015968 -0.015968 -0.999745 N2 -0.0439291 -0.0439291 -0.998068 - txt003 -STRI - V0 -0.725778 -0.725778 0.0222222 V1 -0.884412 -0.51944 0.0222222 V2 -0.524218 -0.307888 0.00590278 - N0 -0.0439291 -0.0439291 -0.998068 N1 -0.0537792 -0.0311919 -0.998066 N2 -0.0195486 -0.0113382 -0.999745 - txt003 -STRI - V0 -0.430191 -0.430191 0.00590278 V1 -0.307888 -0.524218 0.00590278 V2 -0.51944 -0.884412 0.0222222 - N0 -0.015968 -0.015968 -0.999745 N1 -0.0113382 -0.0195486 -0.999745 N2 -0.0311919 -0.0537792 -0.998066 - txt003 -STRI - V0 -0.51944 -0.884412 0.0222222 V1 -0.725778 -0.725778 0.0222222 V2 -0.430191 -0.430191 0.00590278 - N0 -0.0311919 -0.0537792 -0.998066 N1 -0.0439291 -0.0439291 -0.998068 N2 -0.015968 -0.015968 -0.999745 - txt003 -STRI - V0 -0.307888 -0.524218 0.00590278 V1 -0.162696 -0.584584 0.00590278 V2 -0.274486 -0.986255 0.0222222 - N0 -0.0113382 -0.0195486 -0.999745 N1 -0.00589307 -0.0218614 -0.999744 N2 -0.0162121 -0.0601415 -0.998058 - txt003 -STRI - V0 -0.274486 -0.986255 0.0222222 V1 -0.51944 -0.884412 0.0222222 V2 -0.307888 -0.524218 0.00590278 - N0 -0.0162121 -0.0601415 -0.998058 N1 -0.0311919 -0.0537792 -0.998066 N2 -0.0113382 -0.0195486 -0.999745 - txt003 -STRI - V0 -0.162696 -0.584584 0.00590278 V1 0 -0.605903 0.00590278 V2 2.22045e-16 -1.02222 0.0222222 - N0 -0.00589307 -0.0218614 -0.999744 N1 -4.94615e-18 -0.0226746 -0.999743 N2 0 -0.0623783 -0.998053 - txt003 -STRI - V0 2.22045e-16 -1.02222 0.0222222 V1 -0.274486 -0.986255 0.0222222 V2 -0.162696 -0.584584 0.00590278 - N0 0 -0.0623783 -0.998053 N1 -0.0162121 -0.0601415 -0.998058 N2 -0.00589307 -0.0218614 -0.999744 - txt003 -STRI - V0 -1.02222 0 0.0222222 V1 -0.986255 -0.274486 0.0222222 V2 -1.23918 -0.344878 0.046875 - N0 -0.0623783 -0 -0.998053 N1 -0.0601415 -0.0162121 -0.998058 N2 -0.136353 -0.0367561 -0.989978 - txt003 -STRI - V0 -1.23918 -0.344878 0.046875 V1 -1.28438 0 0.046875 V2 -1.02222 0 0.0222222 - N0 -0.136353 -0.0367561 -0.989978 N1 -0.141421 -0 -0.989949 N2 -0.0623783 -0 -0.998053 - txt003 -STRI - V0 -0.986255 -0.274486 0.0222222 V1 -0.884412 -0.51944 0.0222222 V2 -1.11122 -0.652653 0.046875 - N0 -0.0601415 -0.0162121 -0.998058 N1 -0.0537792 -0.0311919 -0.998066 N2 -0.121932 -0.0707208 -0.990016 - txt003 -STRI - V0 -1.11122 -0.652653 0.046875 V1 -1.23918 -0.344878 0.046875 V2 -0.986255 -0.274486 0.0222222 - N0 -0.121932 -0.0707208 -0.990016 N1 -0.136353 -0.0367561 -0.989978 N2 -0.0601415 -0.0162121 -0.998058 - txt003 -STRI - V0 -0.884412 -0.51944 0.0222222 V1 -0.725778 -0.725778 0.0222222 V2 -0.911906 -0.911906 0.046875 - N0 -0.0537792 -0.0311919 -0.998066 N1 -0.0439291 -0.0439291 -0.998068 N2 -0.0996006 -0.0996006 -0.99003 - txt003 -STRI - V0 -0.911906 -0.911906 0.046875 V1 -1.11122 -0.652653 0.046875 V2 -0.884412 -0.51944 0.0222222 - N0 -0.0996006 -0.0996006 -0.99003 N1 -0.121932 -0.0707208 -0.990016 N2 -0.0537792 -0.0311919 -0.998066 - txt003 -STRI - V0 -0.725778 -0.725778 0.0222222 V1 -0.51944 -0.884412 0.0222222 V2 -0.652653 -1.11122 0.046875 - N0 -0.0439291 -0.0439291 -0.998068 N1 -0.0311919 -0.0537792 -0.998066 N2 -0.0707208 -0.121932 -0.990016 - txt003 -STRI - V0 -0.652653 -1.11122 0.046875 V1 -0.911906 -0.911906 0.046875 V2 -0.725778 -0.725778 0.0222222 - N0 -0.0707208 -0.121932 -0.990016 N1 -0.0996006 -0.0996006 -0.99003 N2 -0.0439291 -0.0439291 -0.998068 - txt003 -STRI - V0 -0.51944 -0.884412 0.0222222 V1 -0.274486 -0.986255 0.0222222 V2 -0.344878 -1.23918 0.046875 - N0 -0.0311919 -0.0537792 -0.998066 N1 -0.0162121 -0.0601415 -0.998058 N2 -0.0367561 -0.136353 -0.989978 - txt003 -STRI - V0 -0.344878 -1.23918 0.046875 V1 -0.652653 -1.11122 0.046875 V2 -0.51944 -0.884412 0.0222222 - N0 -0.0367561 -0.136353 -0.989978 N1 -0.0707208 -0.121932 -0.990016 N2 -0.0311919 -0.0537792 -0.998066 - txt003 -STRI - V0 -0.274486 -0.986255 0.0222222 V1 2.22045e-16 -1.02222 0.0222222 V2 -2.22045e-16 -1.28437 0.046875 - N0 -0.0162121 -0.0601415 -0.998058 N1 0 -0.0623783 -0.998053 N2 0 -0.141421 -0.989949 - txt003 -STRI - V0 -2.22045e-16 -1.28437 0.046875 V1 -0.344878 -1.23918 0.046875 V2 -0.274486 -0.986255 0.0222222 - N0 0 -0.141421 -0.989949 N1 -0.0367561 -0.136353 -0.989978 N2 -0.0162121 -0.0601415 -0.998058 - txt003 -STRI - V0 -1.28438 0 0.046875 V1 -1.23918 -0.344878 0.046875 V2 -1.37754 -0.383385 0.0777778 - N0 -0.141421 -0 -0.989949 N1 -0.136353 -0.0367561 -0.989978 N2 -0.316788 -0.085395 -0.944644 - txt003 -STRI - V0 -1.37754 -0.383385 0.0777778 V1 -1.42778 0 0.0777778 V2 -1.28438 0 0.046875 - N0 -0.316788 -0.085395 -0.944644 N1 -0.328521 -0 -0.944497 N2 -0.141421 -0 -0.989949 - txt003 -STRI - V0 -1.23918 -0.344878 0.046875 V1 -1.11122 -0.652653 0.046875 V2 -1.23529 -0.725523 0.0777778 - N0 -0.136353 -0.0367561 -0.989978 N1 -0.121932 -0.0707208 -0.990016 N2 -0.283331 -0.164332 -0.944838 - txt003 -STRI - V0 -1.23529 -0.725523 0.0777778 V1 -1.37754 -0.383385 0.0777778 V2 -1.23918 -0.344878 0.046875 - N0 -0.283331 -0.164332 -0.944838 N1 -0.316788 -0.085395 -0.944644 N2 -0.136353 -0.0367561 -0.989978 - txt003 -STRI - V0 -1.11122 -0.652653 0.046875 V1 -0.911906 -0.911906 0.046875 V2 -1.01372 -1.01372 0.0777778 - N0 -0.121932 -0.0707208 -0.990016 N1 -0.0996006 -0.0996006 -0.99003 N2 -0.231454 -0.231454 -0.944912 - txt003 -STRI - V0 -1.01372 -1.01372 0.0777778 V1 -1.23529 -0.725523 0.0777778 V2 -1.11122 -0.652653 0.046875 - N0 -0.231454 -0.231454 -0.944912 N1 -0.283331 -0.164332 -0.944838 N2 -0.121932 -0.0707208 -0.990016 - txt003 -STRI - V0 -0.911906 -0.911906 0.046875 V1 -0.652653 -1.11122 0.046875 V2 -0.725523 -1.23529 0.0777778 - N0 -0.0996006 -0.0996006 -0.99003 N1 -0.0707208 -0.121932 -0.990016 N2 -0.164332 -0.283331 -0.944838 - txt003 -STRI - V0 -0.725523 -1.23529 0.0777778 V1 -1.01372 -1.01372 0.0777778 V2 -0.911906 -0.911906 0.046875 - N0 -0.164332 -0.283331 -0.944838 N1 -0.231454 -0.231454 -0.944912 N2 -0.0996006 -0.0996006 -0.99003 - txt003 -STRI - V0 -0.652653 -1.11122 0.046875 V1 -0.344878 -1.23918 0.046875 V2 -0.383385 -1.37754 0.0777778 - N0 -0.0707208 -0.121932 -0.990016 N1 -0.0367561 -0.136353 -0.989978 N2 -0.085395 -0.316788 -0.944644 - txt003 -STRI - V0 -0.383385 -1.37754 0.0777778 V1 -0.725523 -1.23529 0.0777778 V2 -0.652653 -1.11122 0.046875 - N0 -0.085395 -0.316788 -0.944644 N1 -0.164332 -0.283331 -0.944838 N2 -0.0707208 -0.121932 -0.990016 - txt003 -STRI - V0 -0.344878 -1.23918 0.046875 V1 -2.22045e-16 -1.28437 0.046875 V2 2.22045e-16 -1.42778 0.0777778 - N0 -0.0367561 -0.136353 -0.989978 N1 0 -0.141421 -0.989949 N2 -6.08223e-17 -0.328521 -0.944497 - txt003 -STRI - V0 2.22045e-16 -1.42778 0.0777778 V1 -0.383385 -1.37754 0.0777778 V2 -0.344878 -1.23918 0.046875 - N0 -6.08223e-17 -0.328521 -0.944497 N1 -0.085395 -0.316788 -0.944644 N2 -0.0367561 -0.136353 -0.989978 - txt003 -STRI - V0 -1.42778 0 0.0777778 V1 -1.37754 -0.383385 0.0777778 V2 -1.4355 -0.399515 0.112847 - N0 -0.328521 -0 -0.944497 N1 -0.316788 -0.085395 -0.944644 N2 -0.743044 -0.200299 -0.638566 - txt003 -STRI - V0 -1.4355 -0.399515 0.112847 V1 -1.48785 0 0.112847 V2 -1.42778 0 0.0777778 - N0 -0.743044 -0.200299 -0.638566 N1 -0.770022 -0 -0.638018 N2 -0.328521 -0 -0.944497 - txt003 -STRI - V0 -1.37754 -0.383385 0.0777778 V1 -1.23529 -0.725523 0.0777778 V2 -1.28726 -0.756047 0.112847 - N0 -0.316788 -0.085395 -0.944644 N1 -0.283331 -0.164332 -0.944838 N2 -0.665182 -0.385806 -0.639286 - txt003 -STRI - V0 -1.28726 -0.756047 0.112847 V1 -1.4355 -0.399515 0.112847 V2 -1.37754 -0.383385 0.0777778 - N0 -0.665182 -0.385806 -0.639286 N1 -0.743044 -0.200299 -0.638566 N2 -0.316788 -0.085395 -0.944644 - txt003 -STRI - V0 -1.23529 -0.725523 0.0777778 V1 -1.01372 -1.01372 0.0777778 V2 -1.05637 -1.05637 0.112847 - N0 -0.283331 -0.164332 -0.944838 N1 -0.231454 -0.231454 -0.944912 N2 -0.543581 -0.543581 -0.639562 - txt003 -STRI - V0 -1.05637 -1.05637 0.112847 V1 -1.28726 -0.756047 0.112847 V2 -1.23529 -0.725523 0.0777778 - N0 -0.543581 -0.543581 -0.639562 N1 -0.665182 -0.385806 -0.639286 N2 -0.283331 -0.164332 -0.944838 - txt003 -STRI - V0 -1.01372 -1.01372 0.0777778 V1 -0.725523 -1.23529 0.0777778 V2 -0.756047 -1.28726 0.112847 - N0 -0.231454 -0.231454 -0.944912 N1 -0.164332 -0.283331 -0.944838 N2 -0.385806 -0.665182 -0.639286 - txt003 -STRI - V0 -0.756047 -1.28726 0.112847 V1 -1.05637 -1.05637 0.112847 V2 -1.01372 -1.01372 0.0777778 - N0 -0.385806 -0.665182 -0.639286 N1 -0.543581 -0.543581 -0.639562 N2 -0.231454 -0.231454 -0.944912 - txt003 -STRI - V0 -0.725523 -1.23529 0.0777778 V1 -0.383385 -1.37754 0.0777778 V2 -0.399515 -1.4355 0.112847 - N0 -0.164332 -0.283331 -0.944838 N1 -0.085395 -0.316788 -0.944644 N2 -0.200299 -0.743044 -0.638566 - txt003 -STRI - V0 -0.399515 -1.4355 0.112847 V1 -0.756047 -1.28726 0.112847 V2 -0.725523 -1.23529 0.0777778 - N0 -0.200299 -0.743044 -0.638566 N1 -0.385806 -0.665182 -0.639286 N2 -0.164332 -0.283331 -0.944838 - txt003 -STRI - V0 -0.383385 -1.37754 0.0777778 V1 2.22045e-16 -1.42778 0.0777778 V2 0 -1.48785 0.112847 - N0 -0.085395 -0.316788 -0.944644 N1 -6.08223e-17 -0.328521 -0.944497 N2 -1.36806e-16 -0.770022 -0.638018 - txt003 -STRI - V0 0 -1.48785 0.112847 V1 -0.399515 -1.4355 0.112847 V2 -0.383385 -1.37754 0.0777778 - N0 -1.36806e-16 -0.770022 -0.638018 N1 -0.200299 -0.743044 -0.638566 N2 -0.085395 -0.316788 -0.944644 - txt003 -STRI - V0 -1.48785 0 0.112847 V1 -1.4355 -0.399515 0.112847 V2 -1.44722 -0.402778 0.15 - N0 -0.770022 -0 -0.638018 N1 -0.743044 -0.200299 -0.638566 N2 -0.965535 -0.260275 -2.07142e-16 - txt003 -STRI - V0 -1.44722 -0.402778 0.15 V1 -1.5 0 0.15 V2 -1.48785 0 0.112847 - N0 -0.965535 -0.260275 -2.07142e-16 N1 -1 0 0 N2 -0.770022 -0 -0.638018 - txt003 -STRI - V0 -1.4355 -0.399515 0.112847 V1 -1.28726 -0.756047 0.112847 V2 -1.29778 -0.762222 0.15 - N0 -0.743044 -0.200299 -0.638566 N1 -0.665182 -0.385806 -0.639286 N2 -0.865031 -0.501718 -5.46348e-16 - txt003 -STRI - V0 -1.29778 -0.762222 0.15 V1 -1.44722 -0.402778 0.15 V2 -1.4355 -0.399515 0.112847 - N0 -0.865031 -0.501718 -5.46348e-16 N1 -0.965535 -0.260275 -2.07142e-16 N2 -0.743044 -0.200299 -0.638566 - txt003 -STRI - V0 -1.28726 -0.756047 0.112847 V1 -1.05637 -1.05637 0.112847 V2 -1.065 -1.065 0.15 - N0 -0.665182 -0.385806 -0.639286 N1 -0.543581 -0.543581 -0.639562 N2 -0.707107 -0.707107 -6.97819e-16 - txt003 -STRI - V0 -1.065 -1.065 0.15 V1 -1.29778 -0.762222 0.15 V2 -1.28726 -0.756047 0.112847 - N0 -0.707107 -0.707107 -6.97819e-16 N1 -0.865031 -0.501718 -5.46348e-16 N2 -0.665182 -0.385806 -0.639286 - txt003 -STRI - V0 -1.05637 -1.05637 0.112847 V1 -0.756047 -1.28726 0.112847 V2 -0.762222 -1.29778 0.15 - N0 -0.543581 -0.543581 -0.639562 N1 -0.385806 -0.665182 -0.639286 N2 -0.501718 -0.865031 -5.46348e-16 - txt003 -STRI - V0 -0.762222 -1.29778 0.15 V1 -1.065 -1.065 0.15 V2 -1.05637 -1.05637 0.112847 - N0 -0.501718 -0.865031 -5.46348e-16 N1 -0.707107 -0.707107 -6.97819e-16 N2 -0.543581 -0.543581 -0.639562 - txt003 -STRI - V0 -0.756047 -1.28726 0.112847 V1 -0.399515 -1.4355 0.112847 V2 -0.402778 -1.44722 0.15 - N0 -0.385806 -0.665182 -0.639286 N1 -0.200299 -0.743044 -0.638566 N2 -0.260275 -0.965535 -2.07142e-16 - txt003 -STRI - V0 -0.402778 -1.44722 0.15 V1 -0.762222 -1.29778 0.15 V2 -0.756047 -1.28726 0.112847 - N0 -0.260275 -0.965535 -2.07142e-16 N1 -0.501718 -0.865031 -5.46348e-16 N2 -0.385806 -0.665182 -0.639286 - txt003 -STRI - V0 -0.399515 -1.4355 0.112847 V1 0 -1.48785 0.112847 V2 0 -1.5 0.15 - N0 -0.200299 -0.743044 -0.638566 N1 -1.36806e-16 -0.770022 -0.638018 N2 0 -1 0 - txt003 -STRI - V0 0 -1.5 0.15 V1 -0.402778 -1.44722 0.15 V2 -0.399515 -1.4355 0.112847 - N0 0 -1 0 N1 -0.260275 -0.965535 -2.07142e-16 N2 -0.200299 -0.743044 -0.638566 - txt003 -STRI - V0 0.162696 -0.584584 0.00590278 V1 0 -0.605903 0.00590278 V2 0 0 0 - N0 0.00589307 -0.0218614 -0.999744 N1 0 -0.0226746 -0.999743 N2 0 0 -1 - txt003 -STRI - V0 0.307888 -0.524218 0.00590278 V1 0.162696 -0.584584 0.00590278 V2 0 0 0 - N0 0.0113382 -0.0195486 -0.999745 N1 0.00589307 -0.0218614 -0.999744 N2 0 0 -1 - txt003 -STRI - V0 0.430191 -0.430191 0.00590278 V1 0.307888 -0.524218 0.00590278 V2 0 0 0 - N0 0.015968 -0.015968 -0.999745 N1 0.0113382 -0.0195486 -0.999745 N2 0 0 -1 - txt003 -STRI - V0 0.524218 -0.307888 0.00590278 V1 0.430191 -0.430191 0.00590278 V2 0 0 0 - N0 0.0195486 -0.0113382 -0.999745 N1 0.015968 -0.015968 -0.999745 N2 0 0 -1 - txt003 -STRI - V0 0.584584 -0.162696 0.00590278 V1 0.524218 -0.307888 0.00590278 V2 0 0 0 - N0 0.0218614 -0.00589307 -0.999744 N1 0.0195486 -0.0113382 -0.999745 N2 0 0 -1 - txt003 -STRI - V0 0.605903 0 0.00590278 V1 0.584584 -0.162696 0.00590278 V2 0 0 0 - N0 0.0226746 -4.94615e-18 -0.999743 N1 0.0218614 -0.00589307 -0.999744 N2 0 0 -1 - txt003 -STRI - V0 0 -0.605903 0.00590278 V1 0.162696 -0.584584 0.00590278 V2 0.274486 -0.986255 0.0222222 - N0 0 -0.0226746 -0.999743 N1 0.00589307 -0.0218614 -0.999744 N2 0.0162121 -0.0601415 -0.998058 - txt003 -STRI - V0 0.274486 -0.986255 0.0222222 V1 0 -1.02222 0.0222222 V2 0 -0.605903 0.00590278 - N0 0.0162121 -0.0601415 -0.998058 N1 0 -0.0623783 -0.998053 N2 0 -0.0226746 -0.999743 - txt003 -STRI - V0 0.162696 -0.584584 0.00590278 V1 0.307888 -0.524218 0.00590278 V2 0.51944 -0.884412 0.0222222 - N0 0.00589307 -0.0218614 -0.999744 N1 0.0113382 -0.0195486 -0.999745 N2 0.0311919 -0.0537792 -0.998066 - txt003 -STRI - V0 0.51944 -0.884412 0.0222222 V1 0.274486 -0.986255 0.0222222 V2 0.162696 -0.584584 0.00590278 - N0 0.0311919 -0.0537792 -0.998066 N1 0.0162121 -0.0601415 -0.998058 N2 0.00589307 -0.0218614 -0.999744 - txt003 -STRI - V0 0.307888 -0.524218 0.00590278 V1 0.430191 -0.430191 0.00590278 V2 0.725778 -0.725778 0.0222222 - N0 0.0113382 -0.0195486 -0.999745 N1 0.015968 -0.015968 -0.999745 N2 0.0439291 -0.0439291 -0.998068 - txt003 -STRI - V0 0.725778 -0.725778 0.0222222 V1 0.51944 -0.884412 0.0222222 V2 0.307888 -0.524218 0.00590278 - N0 0.0439291 -0.0439291 -0.998068 N1 0.0311919 -0.0537792 -0.998066 N2 0.0113382 -0.0195486 -0.999745 - txt003 -STRI - V0 0.430191 -0.430191 0.00590278 V1 0.524218 -0.307888 0.00590278 V2 0.884412 -0.51944 0.0222222 - N0 0.015968 -0.015968 -0.999745 N1 0.0195486 -0.0113382 -0.999745 N2 0.0537792 -0.0311919 -0.998066 - txt003 -STRI - V0 0.884412 -0.51944 0.0222222 V1 0.725778 -0.725778 0.0222222 V2 0.430191 -0.430191 0.00590278 - N0 0.0537792 -0.0311919 -0.998066 N1 0.0439291 -0.0439291 -0.998068 N2 0.015968 -0.015968 -0.999745 - txt003 -STRI - V0 0.524218 -0.307888 0.00590278 V1 0.584584 -0.162696 0.00590278 V2 0.986255 -0.274486 0.0222222 - N0 0.0195486 -0.0113382 -0.999745 N1 0.0218614 -0.00589307 -0.999744 N2 0.0601415 -0.0162121 -0.998058 - txt003 -STRI - V0 0.986255 -0.274486 0.0222222 V1 0.884412 -0.51944 0.0222222 V2 0.524218 -0.307888 0.00590278 - N0 0.0601415 -0.0162121 -0.998058 N1 0.0537792 -0.0311919 -0.998066 N2 0.0195486 -0.0113382 -0.999745 - txt003 -STRI - V0 0.584584 -0.162696 0.00590278 V1 0.605903 0 0.00590278 V2 1.02222 2.22045e-16 0.0222222 - N0 0.0218614 -0.00589307 -0.999744 N1 0.0226746 -4.94615e-18 -0.999743 N2 0.0623783 0 -0.998053 - txt003 -STRI - V0 1.02222 2.22045e-16 0.0222222 V1 0.986255 -0.274486 0.0222222 V2 0.584584 -0.162696 0.00590278 - N0 0.0623783 0 -0.998053 N1 0.0601415 -0.0162121 -0.998058 N2 0.0218614 -0.00589307 -0.999744 - txt003 -STRI - V0 0 -1.02222 0.0222222 V1 0.274486 -0.986255 0.0222222 V2 0.344878 -1.23918 0.046875 - N0 0 -0.0623783 -0.998053 N1 0.0162121 -0.0601415 -0.998058 N2 0.0367561 -0.136353 -0.989978 - txt003 -STRI - V0 0.344878 -1.23918 0.046875 V1 0 -1.28438 0.046875 V2 0 -1.02222 0.0222222 - N0 0.0367561 -0.136353 -0.989978 N1 0 -0.141421 -0.989949 N2 0 -0.0623783 -0.998053 - txt003 -STRI - V0 0.274486 -0.986255 0.0222222 V1 0.51944 -0.884412 0.0222222 V2 0.652653 -1.11122 0.046875 - N0 0.0162121 -0.0601415 -0.998058 N1 0.0311919 -0.0537792 -0.998066 N2 0.0707208 -0.121932 -0.990016 - txt003 -STRI - V0 0.652653 -1.11122 0.046875 V1 0.344878 -1.23918 0.046875 V2 0.274486 -0.986255 0.0222222 - N0 0.0707208 -0.121932 -0.990016 N1 0.0367561 -0.136353 -0.989978 N2 0.0162121 -0.0601415 -0.998058 - txt003 -STRI - V0 0.51944 -0.884412 0.0222222 V1 0.725778 -0.725778 0.0222222 V2 0.911906 -0.911906 0.046875 - N0 0.0311919 -0.0537792 -0.998066 N1 0.0439291 -0.0439291 -0.998068 N2 0.0996006 -0.0996006 -0.99003 - txt003 -STRI - V0 0.911906 -0.911906 0.046875 V1 0.652653 -1.11122 0.046875 V2 0.51944 -0.884412 0.0222222 - N0 0.0996006 -0.0996006 -0.99003 N1 0.0707208 -0.121932 -0.990016 N2 0.0311919 -0.0537792 -0.998066 - txt003 -STRI - V0 0.725778 -0.725778 0.0222222 V1 0.884412 -0.51944 0.0222222 V2 1.11122 -0.652653 0.046875 - N0 0.0439291 -0.0439291 -0.998068 N1 0.0537792 -0.0311919 -0.998066 N2 0.121932 -0.0707208 -0.990016 - txt003 -STRI - V0 1.11122 -0.652653 0.046875 V1 0.911906 -0.911906 0.046875 V2 0.725778 -0.725778 0.0222222 - N0 0.121932 -0.0707208 -0.990016 N1 0.0996006 -0.0996006 -0.99003 N2 0.0439291 -0.0439291 -0.998068 - txt003 -STRI - V0 0.884412 -0.51944 0.0222222 V1 0.986255 -0.274486 0.0222222 V2 1.23918 -0.344878 0.046875 - N0 0.0537792 -0.0311919 -0.998066 N1 0.0601415 -0.0162121 -0.998058 N2 0.136353 -0.0367561 -0.989978 - txt003 -STRI - V0 1.23918 -0.344878 0.046875 V1 1.11122 -0.652653 0.046875 V2 0.884412 -0.51944 0.0222222 - N0 0.136353 -0.0367561 -0.989978 N1 0.121932 -0.0707208 -0.990016 N2 0.0537792 -0.0311919 -0.998066 - txt003 -STRI - V0 0.986255 -0.274486 0.0222222 V1 1.02222 2.22045e-16 0.0222222 V2 1.28437 -2.22045e-16 0.046875 - N0 0.0601415 -0.0162121 -0.998058 N1 0.0623783 0 -0.998053 N2 0.141421 0 -0.989949 - txt003 -STRI - V0 1.28437 -2.22045e-16 0.046875 V1 1.23918 -0.344878 0.046875 V2 0.986255 -0.274486 0.0222222 - N0 0.141421 0 -0.989949 N1 0.136353 -0.0367561 -0.989978 N2 0.0601415 -0.0162121 -0.998058 - txt003 -STRI - V0 0 -1.28438 0.046875 V1 0.344878 -1.23918 0.046875 V2 0.383385 -1.37754 0.0777778 - N0 0 -0.141421 -0.989949 N1 0.0367561 -0.136353 -0.989978 N2 0.085395 -0.316788 -0.944644 - txt003 -STRI - V0 0.383385 -1.37754 0.0777778 V1 0 -1.42778 0.0777778 V2 0 -1.28438 0.046875 - N0 0.085395 -0.316788 -0.944644 N1 0 -0.328521 -0.944497 N2 0 -0.141421 -0.989949 - txt003 -STRI - V0 0.344878 -1.23918 0.046875 V1 0.652653 -1.11122 0.046875 V2 0.725523 -1.23529 0.0777778 - N0 0.0367561 -0.136353 -0.989978 N1 0.0707208 -0.121932 -0.990016 N2 0.164332 -0.283331 -0.944838 - txt003 -STRI - V0 0.725523 -1.23529 0.0777778 V1 0.383385 -1.37754 0.0777778 V2 0.344878 -1.23918 0.046875 - N0 0.164332 -0.283331 -0.944838 N1 0.085395 -0.316788 -0.944644 N2 0.0367561 -0.136353 -0.989978 - txt003 -STRI - V0 0.652653 -1.11122 0.046875 V1 0.911906 -0.911906 0.046875 V2 1.01372 -1.01372 0.0777778 - N0 0.0707208 -0.121932 -0.990016 N1 0.0996006 -0.0996006 -0.99003 N2 0.231454 -0.231454 -0.944912 - txt003 -STRI - V0 1.01372 -1.01372 0.0777778 V1 0.725523 -1.23529 0.0777778 V2 0.652653 -1.11122 0.046875 - N0 0.231454 -0.231454 -0.944912 N1 0.164332 -0.283331 -0.944838 N2 0.0707208 -0.121932 -0.990016 - txt003 -STRI - V0 0.911906 -0.911906 0.046875 V1 1.11122 -0.652653 0.046875 V2 1.23529 -0.725523 0.0777778 - N0 0.0996006 -0.0996006 -0.99003 N1 0.121932 -0.0707208 -0.990016 N2 0.283331 -0.164332 -0.944838 - txt003 -STRI - V0 1.23529 -0.725523 0.0777778 V1 1.01372 -1.01372 0.0777778 V2 0.911906 -0.911906 0.046875 - N0 0.283331 -0.164332 -0.944838 N1 0.231454 -0.231454 -0.944912 N2 0.0996006 -0.0996006 -0.99003 - txt003 -STRI - V0 1.11122 -0.652653 0.046875 V1 1.23918 -0.344878 0.046875 V2 1.37754 -0.383385 0.0777778 - N0 0.121932 -0.0707208 -0.990016 N1 0.136353 -0.0367561 -0.989978 N2 0.316788 -0.085395 -0.944644 - txt003 -STRI - V0 1.37754 -0.383385 0.0777778 V1 1.23529 -0.725523 0.0777778 V2 1.11122 -0.652653 0.046875 - N0 0.316788 -0.085395 -0.944644 N1 0.283331 -0.164332 -0.944838 N2 0.121932 -0.0707208 -0.990016 - txt003 -STRI - V0 1.23918 -0.344878 0.046875 V1 1.28437 -2.22045e-16 0.046875 V2 1.42778 2.22045e-16 0.0777778 - N0 0.136353 -0.0367561 -0.989978 N1 0.141421 0 -0.989949 N2 0.328521 -6.08223e-17 -0.944497 - txt003 -STRI - V0 1.42778 2.22045e-16 0.0777778 V1 1.37754 -0.383385 0.0777778 V2 1.23918 -0.344878 0.046875 - N0 0.328521 -6.08223e-17 -0.944497 N1 0.316788 -0.085395 -0.944644 N2 0.136353 -0.0367561 -0.989978 - txt003 -STRI - V0 0 -1.42778 0.0777778 V1 0.383385 -1.37754 0.0777778 V2 0.399515 -1.4355 0.112847 - N0 0 -0.328521 -0.944497 N1 0.085395 -0.316788 -0.944644 N2 0.200299 -0.743044 -0.638566 - txt003 -STRI - V0 0.399515 -1.4355 0.112847 V1 0 -1.48785 0.112847 V2 0 -1.42778 0.0777778 - N0 0.200299 -0.743044 -0.638566 N1 0 -0.770022 -0.638018 N2 0 -0.328521 -0.944497 - txt003 -STRI - V0 0.383385 -1.37754 0.0777778 V1 0.725523 -1.23529 0.0777778 V2 0.756047 -1.28726 0.112847 - N0 0.085395 -0.316788 -0.944644 N1 0.164332 -0.283331 -0.944838 N2 0.385806 -0.665182 -0.639286 - txt003 -STRI - V0 0.756047 -1.28726 0.112847 V1 0.399515 -1.4355 0.112847 V2 0.383385 -1.37754 0.0777778 - N0 0.385806 -0.665182 -0.639286 N1 0.200299 -0.743044 -0.638566 N2 0.085395 -0.316788 -0.944644 - txt003 -STRI - V0 0.725523 -1.23529 0.0777778 V1 1.01372 -1.01372 0.0777778 V2 1.05637 -1.05637 0.112847 - N0 0.164332 -0.283331 -0.944838 N1 0.231454 -0.231454 -0.944912 N2 0.543581 -0.543581 -0.639562 - txt003 -STRI - V0 1.05637 -1.05637 0.112847 V1 0.756047 -1.28726 0.112847 V2 0.725523 -1.23529 0.0777778 - N0 0.543581 -0.543581 -0.639562 N1 0.385806 -0.665182 -0.639286 N2 0.164332 -0.283331 -0.944838 - txt003 -STRI - V0 1.01372 -1.01372 0.0777778 V1 1.23529 -0.725523 0.0777778 V2 1.28726 -0.756047 0.112847 - N0 0.231454 -0.231454 -0.944912 N1 0.283331 -0.164332 -0.944838 N2 0.665182 -0.385806 -0.639286 - txt003 -STRI - V0 1.28726 -0.756047 0.112847 V1 1.05637 -1.05637 0.112847 V2 1.01372 -1.01372 0.0777778 - N0 0.665182 -0.385806 -0.639286 N1 0.543581 -0.543581 -0.639562 N2 0.231454 -0.231454 -0.944912 - txt003 -STRI - V0 1.23529 -0.725523 0.0777778 V1 1.37754 -0.383385 0.0777778 V2 1.4355 -0.399515 0.112847 - N0 0.283331 -0.164332 -0.944838 N1 0.316788 -0.085395 -0.944644 N2 0.743044 -0.200299 -0.638566 - txt003 -STRI - V0 1.4355 -0.399515 0.112847 V1 1.28726 -0.756047 0.112847 V2 1.23529 -0.725523 0.0777778 - N0 0.743044 -0.200299 -0.638566 N1 0.665182 -0.385806 -0.639286 N2 0.283331 -0.164332 -0.944838 - txt003 -STRI - V0 1.37754 -0.383385 0.0777778 V1 1.42778 2.22045e-16 0.0777778 V2 1.48785 0 0.112847 - N0 0.316788 -0.085395 -0.944644 N1 0.328521 -6.08223e-17 -0.944497 N2 0.770022 -1.36806e-16 -0.638018 - txt003 -STRI - V0 1.48785 0 0.112847 V1 1.4355 -0.399515 0.112847 V2 1.37754 -0.383385 0.0777778 - N0 0.770022 -1.36806e-16 -0.638018 N1 0.743044 -0.200299 -0.638566 N2 0.316788 -0.085395 -0.944644 - txt003 -STRI - V0 0 -1.48785 0.112847 V1 0.399515 -1.4355 0.112847 V2 0.402778 -1.44722 0.15 - N0 0 -0.770022 -0.638018 N1 0.200299 -0.743044 -0.638566 N2 0.260275 -0.965535 -2.07142e-16 - txt003 -STRI - V0 0.402778 -1.44722 0.15 V1 0 -1.5 0.15 V2 0 -1.48785 0.112847 - N0 0.260275 -0.965535 -2.07142e-16 N1 0 -1 0 N2 0 -0.770022 -0.638018 - txt003 -STRI - V0 0.399515 -1.4355 0.112847 V1 0.756047 -1.28726 0.112847 V2 0.762222 -1.29778 0.15 - N0 0.200299 -0.743044 -0.638566 N1 0.385806 -0.665182 -0.639286 N2 0.501718 -0.865031 -5.46348e-16 - txt003 -STRI - V0 0.762222 -1.29778 0.15 V1 0.402778 -1.44722 0.15 V2 0.399515 -1.4355 0.112847 - N0 0.501718 -0.865031 -5.46348e-16 N1 0.260275 -0.965535 -2.07142e-16 N2 0.200299 -0.743044 -0.638566 - txt003 -STRI - V0 0.756047 -1.28726 0.112847 V1 1.05637 -1.05637 0.112847 V2 1.065 -1.065 0.15 - N0 0.385806 -0.665182 -0.639286 N1 0.543581 -0.543581 -0.639562 N2 0.707107 -0.707107 -6.97819e-16 - txt003 -STRI - V0 1.065 -1.065 0.15 V1 0.762222 -1.29778 0.15 V2 0.756047 -1.28726 0.112847 - N0 0.707107 -0.707107 -6.97819e-16 N1 0.501718 -0.865031 -5.46348e-16 N2 0.385806 -0.665182 -0.639286 - txt003 -STRI - V0 1.05637 -1.05637 0.112847 V1 1.28726 -0.756047 0.112847 V2 1.29778 -0.762222 0.15 - N0 0.543581 -0.543581 -0.639562 N1 0.665182 -0.385806 -0.639286 N2 0.865031 -0.501718 -5.46348e-16 - txt003 -STRI - V0 1.29778 -0.762222 0.15 V1 1.065 -1.065 0.15 V2 1.05637 -1.05637 0.112847 - N0 0.865031 -0.501718 -5.46348e-16 N1 0.707107 -0.707107 -6.97819e-16 N2 0.543581 -0.543581 -0.639562 - txt003 -STRI - V0 1.28726 -0.756047 0.112847 V1 1.4355 -0.399515 0.112847 V2 1.44722 -0.402778 0.15 - N0 0.665182 -0.385806 -0.639286 N1 0.743044 -0.200299 -0.638566 N2 0.965535 -0.260275 -2.07142e-16 - txt003 -STRI - V0 1.44722 -0.402778 0.15 V1 1.29778 -0.762222 0.15 V2 1.28726 -0.756047 0.112847 - N0 0.965535 -0.260275 -2.07142e-16 N1 0.865031 -0.501718 -5.46348e-16 N2 0.665182 -0.385806 -0.639286 - txt003 -STRI - V0 1.4355 -0.399515 0.112847 V1 1.48785 0 0.112847 V2 1.5 0 0.15 - N0 0.743044 -0.200299 -0.638566 N1 0.770022 -1.36806e-16 -0.638018 N2 1 0 0 - txt003 -STRI - V0 1.5 0 0.15 V1 1.44722 -0.402778 0.15 V2 1.4355 -0.399515 0.112847 - N0 1 0 0 N1 0.965535 -0.260275 -2.07142e-16 N2 0.743044 -0.200299 -0.638566 - txt003 - -END_SCENE diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/dat/trypsin4pti.dat b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/dat/trypsin4pti.dat deleted file mode 100644 index 7d547f28d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/dat/trypsin4pti.dat +++ /dev/null @@ -1,538 +0,0 @@ -BEGIN_SCENE - OUTFILE /dev/null - RESOLUTION 768 768 - VERBOSE 0 - -CAMERA - ZOOM 1.0 - ASPECTRATIO 1.0 - ANTIALIASING 0 - RAYDEPTH 4 - CENTER 15.0 20.0 -50.0 - VIEWDIR 0.0 0.0 1.0 - UPDIR 0.0 1.0 0.0 -END_CAMERA - - -LIGHT - CENTER 40.0 50.0 -40.0 - RAD 0.2 - COLOR 0.5 0.5 0.5 - -LIGHT - CENTER -40.0 20.0 -40.0 - RAD 0.2 - COLOR 0.5 0.5 0.5 - - -TEXDEF O AMBIENT 0.1 DIFFUSE 0.9 SPECULAR 0.0 OPACITY 1.0 - PHONG PLASTIC 0.5 PHONG_SIZE 24.8 - COLOR 1.0 0.0 0.0 TEXFUNC 0 -TEXALIAS OH O -TEXALIAS OD1 O -TEXALIAS OD2 O -TEXALIAS OE1 O -TEXALIAS OE2 O -TEXALIAS OG O -TEXALIAS OG1 O -TEXALIAS OG2 O -TEXALIAS OXT O - -TEXDEF C AMBIENT 0.1 DIFFUSE 0.5 SPECULAR 0.0 OPACITY 1.0 - PHONG PLASTIC 0.5 PHONG_SIZE 24.8 - COLOR 0.5 0.5 0.5 TEXFUNC 0 -TEXALIAS CA C -TEXALIAS CB C -TEXALIAS CD C -TEXALIAS CD1 C -TEXALIAS CD2 C -TEXALIAS CE C -TEXALIAS CE1 C -TEXALIAS CE2 C -TEXALIAS CG C -TEXALIAS CG1 C -TEXALIAS CG2 C -TEXALIAS CZ C - -TEXDEF N AMBIENT 0.1 DIFFUSE 0.9 SPECULAR 0.0 OPACITY 1.0 - PHONG PLASTIC 0.5 PHONG_SIZE 24.8 - COLOR 0.5 0.5 1.0 TEXFUNC 0 -TEXALIAS ND2 N -TEXALIAS NH1 N -TEXALIAS NH2 N -TEXALIAS NE N -TEXALIAS NE2 N -TEXALIAS NZ N - -TEXDEF SD AMBIENT 0.1 DIFFUSE 0.9 SPECULAR 0.0 OPACITY 1.0 - PHONG METAL 0.5 PHONG_SIZE 24.8 - COLOR 1.0 1.0 1.0 TEXFUNC 0 - -TEXDEF SG AMBIENT 0.1 DIFFUSE 0.9 SPECULAR 0.0 OPACITY 1.0 - PHONG PLASTIC 0.5 PHONG_SIZE 24.8 - COLOR 1.0 1.0 1.0 TEXFUNC 0 - -SPHERE CENTER 26.465000 27.452000 -2.490000 RAD 1.0 N -SPHERE CENTER 25.497000 26.862000 -1.573000 RAD 1.0 CA -SPHERE CENTER 26.193001 26.179001 -0.437000 RAD 1.0 C -SPHERE CENTER 27.270000 25.549000 -0.624000 RAD 1.0 O -SPHERE CENTER 24.583000 25.804001 -2.239000 RAD 1.0 CB -SPHERE CENTER 25.091000 24.375000 -2.409000 RAD 1.0 CG -SPHERE CENTER 24.018999 23.427999 -2.996000 RAD 1.0 CD -SPHERE CENTER 23.591000 24.028000 -4.287000 RAD 1.0 NE -SPHERE CENTER 24.299000 23.972000 -5.389000 RAD 1.0 CZ -SPHERE CENTER 25.431999 23.261000 -5.440000 RAD 1.0 NH1 -SPHERE CENTER 23.721001 24.372999 -6.467000 RAD 1.0 NH2 -SPHERE CENTER 25.667000 26.396000 0.708000 RAD 1.0 N -SPHERE CENTER 26.222000 25.760000 1.891000 RAD 1.0 CA -SPHERE CENTER 26.207001 24.242001 1.830000 RAD 1.0 C -SPHERE CENTER 25.400000 23.576000 1.139000 RAD 1.0 O -SPHERE CENTER 25.260000 26.207001 3.033000 RAD 1.0 CB -SPHERE CENTER 24.511999 27.427999 2.493000 RAD 1.0 CG -SPHERE CENTER 24.606001 27.382000 0.978000 RAD 1.0 CD -SPHERE CENTER 27.170000 23.634001 2.462000 RAD 1.0 N -SPHERE CENTER 27.284000 22.163000 2.498000 RAD 1.0 CA -SPHERE CENTER 26.042999 21.506001 3.085000 RAD 1.0 C -SPHERE CENTER 25.752001 20.350000 2.705000 RAD 1.0 O -SPHERE CENTER 28.424999 21.747000 3.461000 RAD 1.0 CB -SPHERE CENTER 29.791000 21.886000 2.787000 RAD 1.0 CG -SPHERE CENTER 29.875000 22.104000 1.543000 RAD 1.0 OD1 -SPHERE CENTER 30.806000 21.500999 3.431000 RAD 1.0 OD2 -SPHERE CENTER 25.393999 22.184000 4.041000 RAD 1.0 N -SPHERE CENTER 24.172001 21.584999 4.618000 RAD 1.0 CA -SPHERE CENTER 23.009001 21.375000 3.624000 RAD 1.0 C -SPHERE CENTER 22.082001 20.603001 3.921000 RAD 1.0 O -SPHERE CENTER 23.691999 22.330999 5.862000 RAD 1.0 CB -SPHERE CENTER 23.191999 23.778999 5.639000 RAD 1.0 CG -SPHERE CENTER 21.961000 24.002001 5.060000 RAD 1.0 CD1 -SPHERE CENTER 23.951000 24.841000 6.050000 RAD 1.0 CD2 -SPHERE CENTER 21.497000 25.281000 4.869000 RAD 1.0 CE1 -SPHERE CENTER 23.510000 26.124001 5.854000 RAD 1.0 CE2 -SPHERE CENTER 22.277000 26.363001 5.249000 RAD 1.0 CZ -SPHERE CENTER 23.094999 22.004000 2.522000 RAD 1.0 N -SPHERE CENTER 22.106001 21.863001 1.467000 RAD 1.0 CA -SPHERE CENTER 22.191999 20.518000 0.830000 RAD 1.0 C -SPHERE CENTER 21.230000 20.068001 0.167000 RAD 1.0 O -SPHERE CENTER 22.358000 22.903999 0.371000 RAD 1.0 CB -SPHERE CENTER 22.145000 24.591999 0.888000 RAD 1.0 SG -SPHERE CENTER 23.326000 19.826000 1.008000 RAD 1.0 N -SPHERE CENTER 23.436001 18.459999 0.459000 RAD 1.0 CA -SPHERE CENTER 22.958000 17.365000 1.407000 RAD 1.0 C -SPHERE CENTER 22.938000 16.180000 0.999000 RAD 1.0 O -SPHERE CENTER 24.898001 18.084000 0.131000 RAD 1.0 CB -SPHERE CENTER 25.572001 19.129000 -0.776000 RAD 1.0 CG -SPHERE CENTER 27.037001 18.695000 -1.116000 RAD 1.0 CD1 -SPHERE CENTER 24.791000 19.488001 -2.049000 RAD 1.0 CD2 -SPHERE CENTER 22.545000 17.716000 2.628000 RAD 1.0 N -SPHERE CENTER 22.039000 16.646000 3.528000 RAD 1.0 CA -SPHERE CENTER 20.615999 16.285000 3.113000 RAD 1.0 C -SPHERE CENTER 19.860001 17.136000 2.576000 RAD 1.0 O -SPHERE CENTER 21.764000 17.216999 4.920000 RAD 1.0 CB -SPHERE CENTER 22.813999 18.035000 5.647000 RAD 1.0 CG -SPHERE CENTER 22.152000 18.707001 6.870000 RAD 1.0 CD -SPHERE CENTER 22.980000 19.100000 7.718000 RAD 1.0 OE1 -SPHERE CENTER 21.086000 19.403999 6.779000 RAD 1.0 OE2 -SPHERE CENTER 20.254000 15.031000 3.334000 RAD 1.0 N -SPHERE CENTER 18.892000 14.554000 3.034000 RAD 1.0 CA -SPHERE CENTER 17.954000 15.160000 4.079000 RAD 1.0 C -SPHERE CENTER 18.443001 15.606000 5.146000 RAD 1.0 O -SPHERE CENTER 18.910000 13.045000 3.274000 RAD 1.0 CB -SPHERE CENTER 20.226000 12.742000 4.021000 RAD 1.0 CG -SPHERE CENTER 21.107000 14.009000 3.934000 RAD 1.0 CD -SPHERE CENTER 16.681999 15.232000 3.767000 RAD 1.0 N -SPHERE CENTER 15.690000 15.852000 4.661000 RAD 1.0 CA -SPHERE CENTER 15.550000 15.006000 5.916000 RAD 1.0 C -SPHERE CENTER 15.693000 13.769000 5.836000 RAD 1.0 O -SPHERE CENTER 14.367000 15.707000 3.867000 RAD 1.0 CB -SPHERE CENTER 14.571000 14.716000 2.710000 RAD 1.0 CG -SPHERE CENTER 16.090000 14.597000 2.574000 RAD 1.0 CD -SPHERE CENTER 15.365000 15.630000 7.042000 RAD 1.0 N -SPHERE CENTER 15.310000 14.908000 8.298000 RAD 1.0 CA -SPHERE CENTER 13.953000 15.177000 8.952000 RAD 1.0 C -SPHERE CENTER 13.699000 16.320000 9.382000 RAD 1.0 O -SPHERE CENTER 16.532000 15.383000 9.122000 RAD 1.0 CB -SPHERE CENTER 16.608000 14.781000 10.525000 RAD 1.0 CG -SPHERE CENTER 17.132000 13.535000 10.707000 RAD 1.0 CD1 -SPHERE CENTER 16.155001 15.523000 11.588000 RAD 1.0 CD2 -SPHERE CENTER 17.216000 12.999000 11.982000 RAD 1.0 CE1 -SPHERE CENTER 16.266001 14.985000 12.862000 RAD 1.0 CE2 -SPHERE CENTER 16.808001 13.746000 13.047000 RAD 1.0 CZ -SPHERE CENTER 16.878000 13.192000 14.372000 RAD 1.0 OH -SPHERE CENTER 13.161000 14.146000 9.088000 RAD 1.0 N -SPHERE CENTER 11.802000 14.321000 9.642000 RAD 1.0 CA -SPHERE CENTER 11.855000 14.484000 11.146000 RAD 1.0 C -SPHERE CENTER 11.105000 15.314000 11.759000 RAD 1.0 O -SPHERE CENTER 10.963000 13.105000 9.273000 RAD 1.0 CB -SPHERE CENTER 10.706000 13.192000 7.854000 RAD 1.0 OG1 -SPHERE CENTER 9.611000 13.152000 10.045000 RAD 1.0 CG2 -SPHERE CENTER 12.789000 13.760000 11.726000 RAD 1.0 N -SPHERE CENTER 13.002000 13.922000 13.198000 RAD 1.0 CA -SPHERE CENTER 12.107000 12.944000 13.909000 RAD 1.0 C -SPHERE CENTER 11.333000 12.212000 13.239000 RAD 1.0 O -SPHERE CENTER 12.235000 12.905000 15.210000 RAD 1.0 N -SPHERE CENTER 11.516000 11.958000 16.066999 RAD 1.0 CA -SPHERE CENTER 10.094000 12.319000 16.468000 RAD 1.0 C -SPHERE CENTER 9.440000 11.442000 17.052000 RAD 1.0 O -SPHERE CENTER 12.272000 11.936000 17.370001 RAD 1.0 CB -SPHERE CENTER 13.164000 13.172000 17.399000 RAD 1.0 CG -SPHERE CENTER 13.281000 13.627000 15.925000 RAD 1.0 CD -SPHERE CENTER 9.629000 13.519000 16.214001 RAD 1.0 N -SPHERE CENTER 8.290000 13.980000 16.615999 RAD 1.0 CA -SPHERE CENTER 7.268000 13.720000 15.515000 RAD 1.0 C -SPHERE CENTER 7.672000 13.397000 14.387000 RAD 1.0 O -SPHERE CENTER 8.279000 15.441000 16.966999 RAD 1.0 CB -SPHERE CENTER 9.221000 15.735000 18.490000 RAD 1.0 SG -SPHERE CENTER 6.027000 13.680000 15.869000 RAD 1.0 N -SPHERE CENTER 5.005000 13.220000 14.945000 RAD 1.0 CA -SPHERE CENTER 3.964000 14.283000 14.630000 RAD 1.0 C -SPHERE CENTER 2.777000 13.949000 14.377000 RAD 1.0 O -SPHERE CENTER 4.310000 11.998000 15.592000 RAD 1.0 CB -SPHERE CENTER 5.273000 10.848000 15.913000 RAD 1.0 CG -SPHERE CENTER 5.781000 10.034000 14.702000 RAD 1.0 CD -SPHERE CENTER 6.855000 9.016000 15.126000 RAD 1.0 CE -SPHERE CENTER 7.357000 8.291000 13.953000 RAD 1.0 NZ -SPHERE CENTER 4.325000 15.549000 14.618000 RAD 1.0 N -SPHERE CENTER 3.513000 16.639999 14.122000 RAD 1.0 CA -SPHERE CENTER 3.561000 16.615000 12.586000 RAD 1.0 C -SPHERE CENTER 4.270000 15.752000 12.023000 RAD 1.0 O -SPHERE CENTER 3.984000 17.995001 14.670000 RAD 1.0 CB -SPHERE CENTER 2.781000 17.424999 11.943000 RAD 1.0 N -SPHERE CENTER 2.700000 17.355000 10.457000 RAD 1.0 CA -SPHERE CENTER 2.875000 18.731001 9.887000 RAD 1.0 C -SPHERE CENTER 1.878000 19.469999 9.653000 RAD 1.0 O -SPHERE CENTER 1.320000 16.787001 9.970000 RAD 1.0 CB -SPHERE CENTER 1.186000 15.339000 10.395000 RAD 1.0 CG -SPHERE CENTER -0.170000 14.751000 9.963000 RAD 1.0 CD -SPHERE CENTER -1.132000 15.455000 10.801000 RAD 1.0 NE -SPHERE CENTER -1.531000 14.913000 11.939000 RAD 1.0 CZ -SPHERE CENTER -1.172000 13.658000 12.165000 RAD 1.0 NH1 -SPHERE CENTER -2.202000 15.647000 12.795000 RAD 1.0 NH2 -SPHERE CENTER 4.154000 19.110001 9.817000 RAD 1.0 N -SPHERE CENTER 4.595000 20.444000 9.391000 RAD 1.0 CA -SPHERE CENTER 5.249000 20.388000 8.012000 RAD 1.0 C -SPHERE CENTER 6.193000 19.612000 7.834000 RAD 1.0 O -SPHERE CENTER 5.590000 20.988001 10.452000 RAD 1.0 CB -SPHERE CENTER 4.792000 21.062000 11.815000 RAD 1.0 CG1 -SPHERE CENTER 5.985000 22.451000 10.085000 RAD 1.0 CG2 -SPHERE CENTER 5.689000 21.535999 12.955000 RAD 1.0 CD1 -SPHERE CENTER 4.586000 20.955999 7.035000 RAD 1.0 N -SPHERE CENTER 5.154000 20.879000 5.697000 RAD 1.0 CA -SPHERE CENTER 6.286000 21.912001 5.572000 RAD 1.0 C -SPHERE CENTER 6.156000 23.146000 5.785000 RAD 1.0 O -SPHERE CENTER 4.095000 21.205000 4.648000 RAD 1.0 CB -SPHERE CENTER 2.836000 20.316999 4.886000 RAD 1.0 CG1 -SPHERE CENTER 4.655000 20.930000 3.250000 RAD 1.0 CG2 -SPHERE CENTER 3.122000 18.813999 4.850000 RAD 1.0 CD1 -SPHERE CENTER 7.451000 21.372000 5.297000 RAD 1.0 N -SPHERE CENTER 8.602000 22.257000 5.060000 RAD 1.0 CA -SPHERE CENTER 9.150000 21.950001 3.673000 RAD 1.0 C -SPHERE CENTER 8.840000 20.896000 3.088000 RAD 1.0 O -SPHERE CENTER 9.698000 21.896999 6.092000 RAD 1.0 CB -SPHERE CENTER 9.226000 22.299999 7.493000 RAD 1.0 CG -SPHERE CENTER 9.248000 23.850000 7.622000 RAD 1.0 CD -SPHERE CENTER 8.810000 24.311001 8.962000 RAD 1.0 NE -SPHERE CENTER 9.575000 24.336000 10.075000 RAD 1.0 CZ -SPHERE CENTER 10.888000 24.077000 10.044000 RAD 1.0 NH1 -SPHERE CENTER 9.050000 24.893000 11.170000 RAD 1.0 NH2 -SPHERE CENTER 10.178000 22.695000 3.318000 RAD 1.0 N -SPHERE CENTER 10.959000 22.444000 2.085000 RAD 1.0 CA -SPHERE CENTER 12.407000 22.010000 2.386000 RAD 1.0 C -SPHERE CENTER 12.987000 22.511999 3.378000 RAD 1.0 O -SPHERE CENTER 10.997000 23.770000 1.282000 RAD 1.0 CB -SPHERE CENTER 9.641000 24.038000 0.627000 RAD 1.0 CG -SPHERE CENTER 8.639000 24.591999 1.399000 RAD 1.0 CD1 -SPHERE CENTER 9.451000 23.725000 -0.691000 RAD 1.0 CD2 -SPHERE CENTER 7.403000 24.861000 0.831000 RAD 1.0 CE1 -SPHERE CENTER 8.213000 23.993000 -1.249000 RAD 1.0 CE2 -SPHERE CENTER 7.215000 24.576000 -0.494000 RAD 1.0 CZ -SPHERE CENTER 5.879000 24.768999 -1.060000 RAD 1.0 OH -SPHERE CENTER 12.977000 21.141001 1.535000 RAD 1.0 N -SPHERE CENTER 14.449000 20.892000 1.626000 RAD 1.0 CA -SPHERE CENTER 15.018000 21.045000 0.237000 RAD 1.0 C -SPHERE CENTER 14.250000 20.837000 -0.740000 RAD 1.0 O -SPHERE CENTER 14.664000 19.434999 2.142000 RAD 1.0 CB -SPHERE CENTER 14.283000 18.275999 1.191000 RAD 1.0 CG -SPHERE CENTER 15.290000 17.639000 0.506000 RAD 1.0 CD1 -SPHERE CENTER 12.962000 17.907000 0.976000 RAD 1.0 CD2 -SPHERE CENTER 14.981000 16.632000 -0.392000 RAD 1.0 CE1 -SPHERE CENTER 12.638000 16.909000 0.061000 RAD 1.0 CE2 -SPHERE CENTER 13.673000 16.261999 -0.626000 RAD 1.0 CZ -SPHERE CENTER 16.336000 21.281000 0.152000 RAD 1.0 N -SPHERE CENTER 16.948000 21.292000 -1.153000 RAD 1.0 CA -SPHERE CENTER 17.365000 19.888000 -1.542000 RAD 1.0 C -SPHERE CENTER 18.009001 19.184000 -0.744000 RAD 1.0 O -SPHERE CENTER 18.188000 22.194000 -1.071000 RAD 1.0 CB -SPHERE CENTER 18.906000 22.263000 -2.442000 RAD 1.0 CG -SPHERE CENTER 20.089001 21.621000 -2.663000 RAD 1.0 CD1 -SPHERE CENTER 18.361000 23.033001 -3.436000 RAD 1.0 CD2 -SPHERE CENTER 20.733000 21.778999 -3.896000 RAD 1.0 CE1 -SPHERE CENTER 18.990999 23.184999 -4.662000 RAD 1.0 CE2 -SPHERE CENTER 20.184999 22.562000 -4.864000 RAD 1.0 CZ -SPHERE CENTER 20.826000 22.768000 -6.115000 RAD 1.0 OH -SPHERE CENTER 16.913000 19.452999 -2.726000 RAD 1.0 N -SPHERE CENTER 17.295000 18.160000 -3.291000 RAD 1.0 CA -SPHERE CENTER 18.406000 18.332001 -4.341000 RAD 1.0 C -SPHERE CENTER 18.166000 18.843000 -5.464000 RAD 1.0 O -SPHERE CENTER 16.052000 17.558001 -3.946000 RAD 1.0 CB -SPHERE CENTER 16.354000 16.226999 -4.626000 RAD 1.0 CG -SPHERE CENTER 17.531000 15.754000 -4.725000 RAD 1.0 OD1 -SPHERE CENTER 15.234000 15.549000 -4.870000 RAD 1.0 ND2 -SPHERE CENTER 19.655001 18.124001 -3.871000 RAD 1.0 N -SPHERE CENTER 20.851000 18.420000 -4.681000 RAD 1.0 CA -SPHERE CENTER 20.920000 17.650000 -6.010000 RAD 1.0 C -SPHERE CENTER 21.385000 18.257000 -6.997000 RAD 1.0 O -SPHERE CENTER 22.112000 18.070999 -3.866000 RAD 1.0 CB -SPHERE CENTER 20.333000 16.480000 -6.081000 RAD 1.0 N -SPHERE CENTER 20.243999 15.784000 -7.383000 RAD 1.0 CA -SPHERE CENTER 19.287001 16.482000 -8.327000 RAD 1.0 C -SPHERE CENTER 19.478001 16.368999 -9.556000 RAD 1.0 O -SPHERE CENTER 19.732000 14.353000 -7.259000 RAD 1.0 CB -SPHERE CENTER 20.799999 13.485000 -6.626000 RAD 1.0 CG -SPHERE CENTER 20.299000 12.037000 -6.533000 RAD 1.0 CD -SPHERE CENTER 21.386999 11.067000 -6.033000 RAD 1.0 CE -SPHERE CENTER 21.820999 11.437000 -4.681000 RAD 1.0 NZ -SPHERE CENTER 18.212999 17.041000 -7.772000 RAD 1.0 N -SPHERE CENTER 17.181999 17.617001 -8.631000 RAD 1.0 CA -SPHERE CENTER 17.468000 19.070000 -8.921000 RAD 1.0 C -SPHERE CENTER 16.909000 19.707001 -9.863000 RAD 1.0 O -SPHERE CENTER 15.833000 17.423000 -7.901000 RAD 1.0 CB -SPHERE CENTER 18.299000 19.622000 -8.061000 RAD 1.0 N -SPHERE CENTER 18.625999 21.035999 -8.237000 RAD 1.0 CA -SPHERE CENTER 17.587999 22.051001 -7.738000 RAD 1.0 C -SPHERE CENTER 17.702000 23.257999 -8.056000 RAD 1.0 O -SPHERE CENTER 16.632000 21.566000 -6.970000 RAD 1.0 N -SPHERE CENTER 15.576000 22.431999 -6.478000 RAD 1.0 CA -SPHERE CENTER 14.947000 21.879999 -5.199000 RAD 1.0 C -SPHERE CENTER 15.304000 20.784000 -4.719000 RAD 1.0 O -SPHERE CENTER 14.553000 22.764999 -7.568000 RAD 1.0 CB -SPHERE CENTER 14.018000 21.514000 -8.283000 RAD 1.0 CG -SPHERE CENTER 13.211000 20.593000 -7.394000 RAD 1.0 CD1 -SPHERE CENTER 13.189000 21.898001 -9.518000 RAD 1.0 CD2 -SPHERE CENTER 14.114000 22.691999 -4.605000 RAD 1.0 N -SPHERE CENTER 13.591000 22.299999 -3.306000 RAD 1.0 CA -SPHERE CENTER 12.246000 21.612000 -3.398000 RAD 1.0 C -SPHERE CENTER 11.508000 21.862000 -4.381000 RAD 1.0 O -SPHERE CENTER 13.406000 23.628000 -2.540000 RAD 1.0 CB -SPHERE CENTER 14.977000 24.433001 -2.196000 RAD 1.0 SG -SPHERE CENTER 12.005000 20.672001 -2.530000 RAD 1.0 N -SPHERE CENTER 10.813000 19.820999 -2.569000 RAD 1.0 CA -SPHERE CENTER 10.208000 19.822001 -1.167000 RAD 1.0 C -SPHERE CENTER 10.918000 20.218000 -0.210000 RAD 1.0 O -SPHERE CENTER 11.110000 18.377001 -3.007000 RAD 1.0 CB -SPHERE CENTER 11.604000 18.464001 -4.496000 RAD 1.0 CG -SPHERE CENTER 12.041000 17.093000 -4.992000 RAD 1.0 CD -SPHERE CENTER 12.104000 16.884001 -6.223000 RAD 1.0 OE1 -SPHERE CENTER 12.461000 16.246000 -4.115000 RAD 1.0 NE2 -SPHERE CENTER 8.983000 19.459000 -1.072000 RAD 1.0 N -SPHERE CENTER 8.377000 19.427999 0.280000 RAD 1.0 CA -SPHERE CENTER 8.573000 18.100000 0.950000 RAD 1.0 C -SPHERE CENTER 8.785000 17.013000 0.347000 RAD 1.0 O -SPHERE CENTER 6.844000 19.700001 0.273000 RAD 1.0 CB -SPHERE CENTER 6.304000 18.825001 -0.706000 RAD 1.0 OG1 -SPHERE CENTER 6.585000 21.149000 -0.177000 RAD 1.0 CG2 -SPHERE CENTER 8.526000 18.187000 2.280000 RAD 1.0 N -SPHERE CENTER 8.582000 16.999001 3.087000 RAD 1.0 CA -SPHERE CENTER 7.801000 17.273001 4.382000 RAD 1.0 C -SPHERE CENTER 7.554000 18.469000 4.665000 RAD 1.0 O -SPHERE CENTER 10.066000 16.503000 3.399000 RAD 1.0 CB -SPHERE CENTER 10.840000 17.323999 4.462000 RAD 1.0 CG -SPHERE CENTER 11.188000 16.711000 5.670000 RAD 1.0 CD1 -SPHERE CENTER 11.224000 18.618999 4.188000 RAD 1.0 CD2 -SPHERE CENTER 11.912000 17.452999 6.617000 RAD 1.0 CE1 -SPHERE CENTER 11.948000 19.333000 5.129000 RAD 1.0 CE2 -SPHERE CENTER 12.277000 18.763000 6.344000 RAD 1.0 CZ -SPHERE CENTER 7.455000 16.219999 5.116000 RAD 1.0 N -SPHERE CENTER 6.756000 16.414000 6.390000 RAD 1.0 CA -SPHERE CENTER 7.798000 16.358999 7.491000 RAD 1.0 C -SPHERE CENTER 8.422000 15.296000 7.692000 RAD 1.0 O -SPHERE CENTER 5.716000 15.281000 6.557000 RAD 1.0 CB -SPHERE CENTER 4.973000 15.432000 7.882000 RAD 1.0 CG1 -SPHERE CENTER 4.667000 15.326000 5.371000 RAD 1.0 CG2 -SPHERE CENTER 7.953000 17.509001 8.095000 RAD 1.0 N -SPHERE CENTER 8.816000 17.659000 9.286000 RAD 1.0 CA -SPHERE CENTER 7.941000 17.294001 10.498000 RAD 1.0 C -SPHERE CENTER 6.818000 17.832001 10.661000 RAD 1.0 O -SPHERE CENTER 9.260000 19.136000 9.274000 RAD 1.0 CB -SPHERE CENTER 10.066000 19.506001 10.540000 RAD 1.0 CG -SPHERE CENTER 11.058000 18.667999 11.032000 RAD 1.0 CD1 -SPHERE CENTER 9.728000 20.677999 11.181000 RAD 1.0 CD2 -SPHERE CENTER 11.713000 19.021999 12.217000 RAD 1.0 CE1 -SPHERE CENTER 10.401000 21.042000 12.346000 RAD 1.0 CE2 -SPHERE CENTER 11.371000 20.211000 12.851000 RAD 1.0 CZ -SPHERE CENTER 12.040000 20.579000 14.049000 RAD 1.0 OH -SPHERE CENTER 8.505000 16.504999 11.400000 RAD 1.0 N -SPHERE CENTER 7.774000 16.076000 12.622000 RAD 1.0 CA -SPHERE CENTER 7.696000 17.099001 13.728000 RAD 1.0 C -SPHERE CENTER 6.978000 16.834999 14.718000 RAD 1.0 O -SPHERE CENTER 8.385000 18.202000 13.646000 RAD 1.0 N -SPHERE CENTER 8.275000 19.365999 14.533000 RAD 1.0 CA -SPHERE CENTER 9.338000 19.430000 15.620000 RAD 1.0 C -SPHERE CENTER 9.309000 20.379999 16.415001 RAD 1.0 O -SPHERE CENTER 10.317000 18.555000 15.610000 RAD 1.0 N -SPHERE CENTER 11.453000 18.707001 16.541000 RAD 1.0 CA -SPHERE CENTER 12.763000 18.232000 15.950000 RAD 1.0 C -SPHERE CENTER 12.753000 17.224001 15.201000 RAD 1.0 O -SPHERE CENTER 11.179000 18.055000 17.937000 RAD 1.0 CB -SPHERE CENTER 11.154000 16.283001 17.922001 RAD 1.0 SG -SPHERE CENTER 13.828000 18.788000 16.528999 RAD 1.0 N -SPHERE CENTER 15.222000 18.386999 16.261999 RAD 1.0 CA -SPHERE CENTER 15.644000 18.605000 14.798000 RAD 1.0 C -SPHERE CENTER 16.306000 17.708000 14.224000 RAD 1.0 O -SPHERE CENTER 15.486000 16.941000 16.719000 RAD 1.0 CB -SPHERE CENTER 14.949000 16.624001 18.146999 RAD 1.0 CG -SPHERE CENTER 15.484000 17.593000 19.195000 RAD 1.0 CD -SPHERE CENTER 15.081000 17.068001 20.497000 RAD 1.0 NE -SPHERE CENTER 15.268000 17.830999 21.573999 RAD 1.0 CZ -SPHERE CENTER 15.870000 19.020000 21.452999 RAD 1.0 NH1 -SPHERE CENTER 14.930000 17.320999 22.753000 RAD 1.0 NH2 -SPHERE CENTER 15.154000 19.670000 14.180000 RAD 1.0 N -SPHERE CENTER 15.461000 19.893999 12.733000 RAD 1.0 CA -SPHERE CENTER 16.969000 19.924000 12.482000 RAD 1.0 C -SPHERE CENTER 17.752001 20.431000 13.327000 RAD 1.0 O -SPHERE CENTER 14.918000 21.275000 12.366000 RAD 1.0 CB -SPHERE CENTER 17.282000 19.622000 11.271000 RAD 1.0 N -SPHERE CENTER 18.584999 19.886999 10.687000 RAD 1.0 CA -SPHERE CENTER 18.461000 21.087000 9.753000 RAD 1.0 C -SPHERE CENTER 17.371000 21.708000 9.790000 RAD 1.0 O -SPHERE CENTER 18.961000 18.612000 9.934000 RAD 1.0 CB -SPHERE CENTER 19.486000 17.514999 10.843000 RAD 1.0 CG -SPHERE CENTER 20.042999 16.424999 9.926000 RAD 1.0 CD -SPHERE CENTER 20.782000 15.386000 10.779000 RAD 1.0 CE -SPHERE CENTER 20.985001 14.137000 10.021000 RAD 1.0 NZ -SPHERE CENTER 19.577000 21.643999 9.215000 RAD 1.0 N -SPHERE CENTER 19.570999 22.903000 8.543000 RAD 1.0 CA -SPHERE CENTER 18.898001 22.847000 7.144000 RAD 1.0 C -SPHERE CENTER 18.476000 23.930000 6.690000 RAD 1.0 O -SPHERE CENTER 20.981001 23.469999 8.429000 RAD 1.0 CB -SPHERE CENTER 21.461000 24.047001 9.786000 RAD 1.0 CG -SPHERE CENTER 22.614000 25.047001 9.608000 RAD 1.0 CD -SPHERE CENTER 22.118999 26.403999 9.384000 RAD 1.0 NE -SPHERE CENTER 22.948000 27.426001 9.370000 RAD 1.0 CZ -SPHERE CENTER 24.253000 27.187000 9.415000 RAD 1.0 NH1 -SPHERE CENTER 22.472000 28.634001 9.297000 RAD 1.0 NH2 -SPHERE CENTER 18.870001 21.715000 6.474000 RAD 1.0 N -SPHERE CENTER 18.209999 21.712999 5.169000 RAD 1.0 CA -SPHERE CENTER 16.671000 21.559000 5.372000 RAD 1.0 C -SPHERE CENTER 16.068001 20.466000 5.197000 RAD 1.0 O -SPHERE CENTER 18.745001 20.506001 4.379000 RAD 1.0 CB -SPHERE CENTER 18.295000 20.591999 2.909000 RAD 1.0 CG -SPHERE CENTER 17.721001 21.629000 2.499000 RAD 1.0 OD1 -SPHERE CENTER 18.664000 19.563999 2.134000 RAD 1.0 ND2 -SPHERE CENTER 16.097000 22.643000 5.820000 RAD 1.0 N -SPHERE CENTER 14.676000 22.662001 6.349000 RAD 1.0 CA -SPHERE CENTER 14.157000 24.101999 6.384000 RAD 1.0 C -SPHERE CENTER 14.715000 24.959000 7.120000 RAD 1.0 O -SPHERE CENTER 14.577000 21.951000 7.736000 RAD 1.0 CB -SPHERE CENTER 13.128000 21.861000 8.301000 RAD 1.0 CG -SPHERE CENTER 12.432000 22.889000 8.208000 RAD 1.0 OD1 -SPHERE CENTER 12.975000 21.035000 9.288000 RAD 1.0 ND2 -SPHERE CENTER 13.324000 24.438000 5.381000 RAD 1.0 N -SPHERE CENTER 12.918000 25.816999 5.120000 RAD 1.0 CA -SPHERE CENTER 11.388000 25.961000 5.164000 RAD 1.0 C -SPHERE CENTER 10.669000 24.966000 4.915000 RAD 1.0 O -SPHERE CENTER 13.372000 26.372999 3.741000 RAD 1.0 CB -SPHERE CENTER 14.913000 26.191999 3.701000 RAD 1.0 CG -SPHERE CENTER 15.492000 25.002001 3.268000 RAD 1.0 CD1 -SPHERE CENTER 15.705000 27.252001 4.053000 RAD 1.0 CD2 -SPHERE CENTER 16.877001 24.881001 3.132000 RAD 1.0 CE1 -SPHERE CENTER 17.108999 27.125999 3.941000 RAD 1.0 CE2 -SPHERE CENTER 17.659000 25.957001 3.487000 RAD 1.0 CZ -SPHERE CENTER 10.949000 27.146999 5.460000 RAD 1.0 N -SPHERE CENTER 9.480000 27.343000 5.498000 RAD 1.0 CA -SPHERE CENTER 8.875000 27.670000 4.157000 RAD 1.0 C -SPHERE CENTER 7.634000 27.622999 4.057000 RAD 1.0 O -SPHERE CENTER 9.045000 28.475000 6.433000 RAD 1.0 CB -SPHERE CENTER 9.258000 27.945999 7.875000 RAD 1.0 CG -SPHERE CENTER 9.119000 29.052000 8.948000 RAD 1.0 CD -SPHERE CENTER 10.025000 28.736000 10.167000 RAD 1.0 CE -SPHERE CENTER 9.826000 29.728001 11.231000 RAD 1.0 NZ -SPHERE CENTER 9.687000 27.909000 3.152000 RAD 1.0 N -SPHERE CENTER 9.124000 28.167999 1.840000 RAD 1.0 CA -SPHERE CENTER 10.108000 27.719000 0.765000 RAD 1.0 C -SPHERE CENTER 11.332000 27.660000 1.047000 RAD 1.0 O -SPHERE CENTER 8.778000 29.648001 1.642000 RAD 1.0 CB -SPHERE CENTER 10.000000 30.391001 1.484000 RAD 1.0 OG -SPHERE CENTER 9.604000 27.471001 -0.422000 RAD 1.0 N -SPHERE CENTER 10.526000 27.160999 -1.512000 RAD 1.0 CA -SPHERE CENTER 11.423000 28.346001 -1.863000 RAD 1.0 C -SPHERE CENTER 12.634000 28.115000 -2.136000 RAD 1.0 O -SPHERE CENTER 9.782000 26.679001 -2.783000 RAD 1.0 CB -SPHERE CENTER 10.966000 29.570000 -1.682000 RAD 1.0 N -SPHERE CENTER 11.751000 30.764000 -1.998000 RAD 1.0 CA -SPHERE CENTER 12.900000 30.964001 -1.040000 RAD 1.0 C -SPHERE CENTER 14.032000 31.282000 -1.463000 RAD 1.0 O -SPHERE CENTER 10.871000 32.021999 -2.024000 RAD 1.0 CB -SPHERE CENTER 9.868000 32.069000 -3.200000 RAD 1.0 CG -SPHERE CENTER 8.525000 31.417000 -2.847000 RAD 1.0 CD -SPHERE CENTER 7.573000 31.562000 -3.638000 RAD 1.0 OE1 -SPHERE CENTER 8.368000 30.636999 -1.865000 RAD 1.0 OE2 -SPHERE CENTER 12.658000 30.686001 0.225000 RAD 1.0 N -SPHERE CENTER 13.804000 30.775000 1.163000 RAD 1.0 CA -SPHERE CENTER 14.824000 29.667000 0.941000 RAD 1.0 C -SPHERE CENTER 16.058001 29.903999 1.049000 RAD 1.0 O -SPHERE CENTER 13.347000 30.500000 2.601000 RAD 1.0 CB -SPHERE CENTER 12.813000 31.775999 3.236000 RAD 1.0 CG -SPHERE CENTER 12.716000 32.875000 2.613000 RAD 1.0 OD1 -SPHERE CENTER 12.096000 31.598000 4.247000 RAD 1.0 OD2 -SPHERE CENTER 14.305000 28.478001 0.644000 RAD 1.0 N -SPHERE CENTER 15.128000 27.301001 0.379000 RAD 1.0 CA -SPHERE CENTER 16.006001 27.523001 -0.852000 RAD 1.0 C -SPHERE CENTER 17.247999 27.267000 -0.809000 RAD 1.0 O -SPHERE CENTER 14.238000 26.045000 0.259000 RAD 1.0 CB -SPHERE CENTER 15.047000 24.530001 -0.176000 RAD 1.0 SG -SPHERE CENTER 15.384000 28.062000 -1.870000 RAD 1.0 N -SPHERE CENTER 16.191999 28.302000 -3.048000 RAD 1.0 CA -SPHERE CENTER 17.171000 29.452999 -2.841000 RAD 1.0 C -SPHERE CENTER 18.246000 29.474001 -3.490000 RAD 1.0 O -SPHERE CENTER 15.267000 28.570999 -4.266000 RAD 1.0 CB -SPHERE CENTER 14.634000 27.261000 -4.708000 RAD 1.0 CG -SPHERE CENTER 15.759000 25.962000 -5.253000 RAD 1.0 SD -SPHERE CENTER 16.306999 26.625000 -6.805000 RAD 1.0 CE -SPHERE CENTER 16.775999 30.469999 -2.099000 RAD 1.0 N -SPHERE CENTER 17.652000 31.617001 -1.869000 RAD 1.0 CA -SPHERE CENTER 18.910000 31.125999 -1.141000 RAD 1.0 C -SPHERE CENTER 20.049999 31.469999 -1.556000 RAD 1.0 O -SPHERE CENTER 16.934000 32.595001 -0.930000 RAD 1.0 CB -SPHERE CENTER 17.721001 33.839001 -0.540000 RAD 1.0 CG -SPHERE CENTER 16.740999 35.039001 -0.291000 RAD 1.0 CD -SPHERE CENTER 15.472000 34.667999 0.404000 RAD 1.0 NE -SPHERE CENTER 14.256000 34.889999 -0.074000 RAD 1.0 CZ -SPHERE CENTER 13.983000 35.465000 -1.233000 RAD 1.0 NH1 -SPHERE CENTER 13.260000 34.542999 0.660000 RAD 1.0 NH2 -SPHERE CENTER 18.726999 30.198999 -0.237000 RAD 1.0 N -SPHERE CENTER 19.889999 29.693001 0.496000 RAD 1.0 CA -SPHERE CENTER 20.636999 28.649000 -0.297000 RAD 1.0 C -SPHERE CENTER 21.871000 28.686001 -0.287000 RAD 1.0 O -SPHERE CENTER 19.416000 29.106001 1.823000 RAD 1.0 CB -SPHERE CENTER 18.643999 30.132000 2.537000 RAD 1.0 OG1 -SPHERE CENTER 20.615999 28.506001 2.662000 RAD 1.0 CG2 -SPHERE CENTER 19.988001 27.747000 -0.961000 RAD 1.0 N -SPHERE CENTER 20.669001 26.563999 -1.471000 RAD 1.0 CA -SPHERE CENTER 20.773001 26.534000 -2.963000 RAD 1.0 C -SPHERE CENTER 21.341000 25.552999 -3.498000 RAD 1.0 O -SPHERE CENTER 19.955999 25.260000 -1.056000 RAD 1.0 CB -SPHERE CENTER 20.128000 24.914000 0.713000 RAD 1.0 SG -SPHERE CENTER 20.132000 27.441999 -3.608000 RAD 1.0 N -SPHERE CENTER 19.987000 27.268000 -5.071000 RAD 1.0 CA -SPHERE CENTER 21.257000 27.575001 -5.849000 RAD 1.0 C -SPHERE CENTER 21.386000 27.129000 -7.018000 RAD 1.0 O -SPHERE CENTER 22.225000 28.049999 -5.113000 RAD 1.0 N -SPHERE CENTER 23.639000 28.131001 -5.505000 RAD 1.0 CA -SPHERE CENTER 23.886999 29.393000 -6.316000 RAD 1.0 C -SPHERE CENTER 22.948999 30.065001 -6.822000 RAD 1.0 O -SPHERE CENTER 25.146000 29.681000 -6.493000 RAD 1.0 N -SPHERE CENTER 25.617001 30.840000 -7.256000 RAD 1.0 CA -SPHERE CENTER 25.247999 30.735001 -8.729000 RAD 1.0 C -SPHERE CENTER 24.962000 31.791000 -9.369000 RAD 1.0 O -SPHERE CENTER 27.160000 30.980000 -7.146000 RAD 1.0 CB -SPHERE CENTER 24.919001 29.594000 -9.172000 RAD 1.0 OXT - -PLANE - CENTER 0.0 -25.0 0.0 - NORMAL 0.0 1.0 0.0 - TEXTURE - AMBIENT 0.1 DIFFUSE 0.9 SPECULAR 0.0 OPACITY 1.0 - COLOR 1.0 1.0 1.0 - TEXFUNC 0 - -END_SCENE diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/index.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/index.html deleted file mode 100644 index a49483bda..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/index.html +++ /dev/null @@ -1,222 +0,0 @@ - - - -

    Overview

    -Parallel raytracer / renderer that demonstrates the use of parallel_for. - -

    -This example includes software developed by John E. Stone. See -here for copyright information. -

    - -

    -This example is a 2-D raytracer/renderer that visually shows different parallel scheduling -methods and their resulting speedup. The code was parallelized by speculating -that each pixel could be rendered in parallel. The resulting parallel code was -then checked for correctness by using Intel® Thread Checker, which -pointed out where synchronization was needed. Minimal synchronization was then -inserted into the parallel code. The resulting parallel code exhibits good speedup. -

    - -

    -The following versions of the example are provided: -

    -
    serial -
    Original sequential version. -
    tbb1d -
    Parallel version that uses Intel® Threading Building Blocks (Intel® TBB) and blocked_range to parallelize - over tasks that are groups of scan-lines. -
      -
    • By default, this version uses one thread per available processor. To change this - default, set the TBB_NUM_THREADS environment variable to the desired number of threads before running. -
    • This version uses the preview feature: auto_range_partitioner. No grain size is provided to blocked_range. - The blocked_range class uses a default grain size of 1 when none is provided. However, the auto_range_partitioner - controls the amount of range splitting dynamically at runtime, resulting in sub-ranges of varying sizes. -
    -
    tbb -
    Parallel version that uses Intel TBB and blocked_range2d to parallelize - over tasks that are rectangular sub-areas. -
      -
    • By default, this version uses one thread per available processor. To change this - default, set the TBB_NUM_THREADS environment variable to the desired number of threads before running. -
    • This version uses a reasonable task grain size by default. To change this default, - set the TBB_GRAINSIZE environment variable to the desired grain size before running. - The grain size corresponds to the number of pixels (in the X or Y direction, for a - rectangular sub-area) in each parallel task. -
    -
    -

    - -

    Files

    -
    -
    src/main.cpp -
    Main program which parses command line options and runs the raytracer. -
    src/tachyon_video.cpp -
    Source code for GUI interfaces. -
    src/trace.serial.cpp -
    Source code for original sequential version of example. -
    src/trace.tbb1d.cpp -
    Source code for Intel TBB blocked_range (scan-line) version of example. -
    src/trace.tbb.cpp -
    Source code for Intel TBB blocked_range2d (rectangular sub-area) version of example. -
    (src/*.cpp) -
    Remainder of source code for example. -
    (src/*.h) -
    Remainder of include files for example. -
    Makefile -
    Makefile for building example. -
    - -

    Directories

    -
    -
    src -
    Contains source code and include files for the example. -
    dat -
    Contains data sets for running the example. -
    msvs -
    Contains Microsoft* Visual Studio* 2005 workspace for building and running the - example (Windows* systems only).
    xcode -
    Contains Xcode* IDE workspace for building and running the example (OS X* - systems only).
    -android -
    Contains Eclipse* IDE workspace for building and running the example on Android* system. JNI part needs to be compiled by Android NDK. - - -

    To Build

    -General build directions can be found here. - -

    -For Windows* systems Microsoft* Visual Studio* projects are provided for each of the above - example versions. -

    - -

    -The Makefile supports the following build targets (in addition to the general ones). -Here, <version> is one of the above versions of the example, i.e., {serial, tbb1d, tbb}. -

    -
    -
    make <version>[_debug] -
    Build and run a single version (release or debug). - Equivalent to 'make build_<version>[_debug] run_<version>'. -
    make build_<version>[_debug] -
    Compile and link a single version (release or debug). - The resulting executable is left in the directory for the example. -
    make run_<version> -
    Run a single version previously produced by one of the above commands. -
    make [(above options or targets)] DATASET={820spheres, balls, balls3, lattice, model2, - teapot, trypsin4pti} -
    Build and run as above, but run with the specified data set. -
    make [(above options or targets)] ARGS=-D -
    Build and run as above, but run with disabled run-time display updating for use in making performance measurements - (strongly recommended when measuring performance or scalability; see note below). -
    make [(above options or targets)] UI={con, gdi, dd, d2d, x, mac} -
    Build and run as usual, but build with the specified GUI driver: console, GDI+*, DirectDraw*, - Direct2D*, X11, or OpenGL* - (see the description of the common GUI code - for more information on available graphics support). - For Linux* and OS X* systems, the best available driver is detected automatically by the Makefile. - For Windows* systems, UI=gdi is the default GUI driver; compiling with UI=dd or - UI=d2d may offer superior - performance, but can only be used if the Microsoft* DirectX* SDK is installed on your system. - Use UI=con to build without the GUI for use in making performance measurements - (strongly recommended when measuring performance or scalability; see note below). -
    make [(above options or targets)] XARCH=x64 -
    Build and run as above, but - also specify XARCH=x64 (or XARCH=AMD64 for older compilers) when building the example on Windows* as a 64-bit binary. -
    make [(above options or targets)] DDLIB_DIR=<specify path to library directory of Direct Draw* SDK here> -
    If you experience ddraw.lib linking problems, specify the correct library directory via this option. -
    - -

    Usage

    -Building via the above make commands, or via Visual Studio projects on Windows* systems, produces executable files -named tachyon.<version>.exe. To run these executables directly, use one or more of the following commands. -
    -
    tachyon.<version> -h -
    Prints the help for command line options -
    tachyon.<version> [dataset=value] [boundthresh=value] [no-display-updating] [nobounding] [silent] -
    tachyon.<version> [dataset [boundthresh]] [no-display-updating] [nobounding] [silent] -
    dataset is the path/name of one of the *.dat files in the dat directory for the example.
    - boundthresh is a bounding threshold value.
    - no-display-updating - disable run-time display updating.
    - no-bounding - disable bounding technique.
    - silent - no output except elapsed time.
    -
    tachyon.<version> [dataset] [no-display-updating] -
    Run this version (release or debug), but run with disabled run-time display updating - for use in making performance measurements - (strongly recommended when measuring performance or scalability; see note below). -
    To run a short version of this example, e.g., for use with Intel® Parallel Inspector: -
    Build a debug version of the tbb example with the GUI turned off - (e.g., make UI=con tbb_debug; see also the build directions above). -
    Run it with a small dataset, e.g., tachyon.tbb.exe dat/820spheres.dat no-display-updating. -
    - -

    Keys

    -While running with the GUI display turned on the following keyboard keys can be used: -
    -
    ESC -
    Interrupt the rendering and exit -
    Any key -
    Enable repetition of rendering after the pause. Press ESC to stop the application. -
    Space -
    Toggle run-time display updating mode while rendering (see no-display-updating above). -
    p -
    Holds the picture after rendering completion. Press 'p' again to continue. -
    - -

    Notes

    -
      -
    • While running with the GUI display turned on should yield reasonable performance in most cases, running with the GUI - display turned off is strongly recommended in order to demonstrate the full performance and scalability of the example. -
    - - - -
    -
    Up to parent directory -

    -Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

    -Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

    -* Other names and brands may be claimed as the property of others. - - -

    -The original source for this example is -Copyright (c) 1994-2008 John E. Stone -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. -
    3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. -
    -

    - -

    -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -

    -
    - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/gui.ico b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/gui.ico deleted file mode 100644 index d551aa3aa..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/gui.ico and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/gui.rc b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/gui.rc deleted file mode 100644 index 5a13d046b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/gui.rc +++ /dev/null @@ -1,90 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#define APSTUDIO_HIDDEN_SYMBOLS -#include "windows.h" -#undef APSTUDIO_HIDDEN_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDI_GUI ICON "gui.ico" -IDI_SMALL ICON "small.ico" - - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" - "#include ""windows.h""\r\n" - "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n" - "\0" -END - -3 TEXTINCLUDE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE -BEGIN - IDS_APP_TITLE "gui" - IDC_GUI "GUI" -END - -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/resource.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/resource.h deleted file mode 100644 index 5f70f0cea..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/resource.h +++ /dev/null @@ -1,8 +0,0 @@ -#define IDC_MYICON 2 -#define IDD_GUI 102 -#define IDS_APP_TITLE 103 -#define IDI_GUI 107 -#define IDI_SMALL 108 -#define IDC_GUI 109 -#define IDR_MAINFRAME 128 -#define IDC_STATIC -1 diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/small.ico b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/small.ico deleted file mode 100644 index d551aa3aa..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/small.ico and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/tachyon.icproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/tachyon.icproj deleted file mode 100644 index eb1f7c1e9..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/tachyon.icproj +++ /dev/null @@ -1,11 +0,0 @@ - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/tachyon.serial.icproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/tachyon.serial.icproj deleted file mode 100644 index f3ca83e30..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/tachyon.serial.icproj +++ /dev/null @@ -1,11 +0,0 @@ - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/tachyon.serial.vcproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/tachyon.serial.vcproj deleted file mode 100644 index 7377a82e5..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/tachyon.serial.vcproj +++ /dev/null @@ -1,695 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/tachyon.tbb.icproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/tachyon.tbb.icproj deleted file mode 100644 index cb9112127..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/tachyon.tbb.icproj +++ /dev/null @@ -1,11 +0,0 @@ - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/tachyon.tbb.vcproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/tachyon.tbb.vcproj deleted file mode 100644 index d160ee735..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/tachyon.tbb.vcproj +++ /dev/null @@ -1,731 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/tachyon.tbb1d.icproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/tachyon.tbb1d.icproj deleted file mode 100644 index 29c55137d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/tachyon.tbb1d.icproj +++ /dev/null @@ -1,11 +0,0 @@ - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/tachyon.tbb1d.vcproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/tachyon.tbb1d.vcproj deleted file mode 100644 index 1d902c268..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/tachyon.tbb1d.vcproj +++ /dev/null @@ -1,731 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/tachyon.vcproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/tachyon.vcproj deleted file mode 100644 index ef2b57279..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/tachyon.vcproj +++ /dev/null @@ -1,1046 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/tachyon_cl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/tachyon_cl.sln deleted file mode 100644 index 3763ddf8e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/tachyon_cl.sln +++ /dev/null @@ -1,92 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tachyon.tbb", "tachyon.tbb.vcproj", "{6E9B1702-78E0-4D64-B771-8B274D963B58}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tachyon.common", "tachyon.vcproj", "{924517DF-2B6A-47D5-8A11-CC247CC4D810}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tachyon.serial", "tachyon.serial.vcproj", "{924517DF-2B6A-47D5-8A11-CC047CC4D8E9}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tachyon.tbb1d", "tachyon.tbb1d.vcproj", "{924517DF-2B6A-47D5-8A11-CC347CC4D8E9}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - DD Debug|Win32 = DD Debug|Win32 - DD Debug|x64 = DD Debug|x64 - DD Release|Win32 = DD Release|Win32 - DD Release|x64 = DD Release|x64 - GDI Debug|Win32 = GDI Debug|Win32 - GDI Debug|x64 = GDI Debug|x64 - _GDI Release|Win32 = _GDI Release|Win32 - _GDI Release|x64 = _GDI Release|x64 - Description = Tachyon ray-tracer example - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.DD Debug|Win32.ActiveCfg = DDDebug|Win32 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.DD Debug|Win32.Build.0 = DDDebug|Win32 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.DD Debug|x64.ActiveCfg = DDDebug|x64 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.DD Debug|x64.Build.0 = DDDebug|x64 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.DD Release|Win32.ActiveCfg = DDRelease|Win32 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.DD Release|Win32.Build.0 = DDRelease|Win32 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.DD Release|x64.ActiveCfg = DDRelease|x64 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.DD Release|x64.Build.0 = DDRelease|x64 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.GDI Debug|Win32.ActiveCfg = Debug|Win32 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.GDI Debug|Win32.Build.0 = Debug|Win32 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.GDI Debug|x64.ActiveCfg = Debug|x64 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.GDI Debug|x64.Build.0 = Debug|x64 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}._GDI Release|Win32.ActiveCfg = Release|Win32 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}._GDI Release|Win32.Build.0 = Release|Win32 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}._GDI Release|x64.ActiveCfg = Release|x64 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}._GDI Release|x64.Build.0 = Release|x64 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.DD Debug|Win32.ActiveCfg = DDDebug|Win32 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.DD Debug|Win32.Build.0 = DDDebug|Win32 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.DD Debug|x64.ActiveCfg = DDDebug|x64 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.DD Debug|x64.Build.0 = DDDebug|x64 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.DD Release|Win32.ActiveCfg = DDRelease|Win32 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.DD Release|Win32.Build.0 = DDRelease|Win32 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.DD Release|x64.ActiveCfg = DDRelease|x64 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.DD Release|x64.Build.0 = DDRelease|x64 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.GDI Debug|Win32.ActiveCfg = Debug|Win32 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.GDI Debug|Win32.Build.0 = Debug|Win32 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.GDI Debug|x64.ActiveCfg = Debug|x64 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.GDI Debug|x64.Build.0 = Debug|x64 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}._GDI Release|Win32.ActiveCfg = Release|Win32 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}._GDI Release|Win32.Build.0 = Release|Win32 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}._GDI Release|x64.ActiveCfg = Release|x64 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}._GDI Release|x64.Build.0 = Release|x64 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.DD Debug|Win32.ActiveCfg = DDDebug|Win32 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.DD Debug|Win32.Build.0 = DDDebug|Win32 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.DD Debug|x64.ActiveCfg = DDDebug|x64 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.DD Debug|x64.Build.0 = DDDebug|x64 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.DD Release|Win32.ActiveCfg = DDRelease|Win32 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.DD Release|Win32.Build.0 = DDRelease|Win32 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.DD Release|x64.ActiveCfg = DDRelease|x64 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.DD Release|x64.Build.0 = DDRelease|x64 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.GDI Debug|Win32.ActiveCfg = Debug|Win32 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.GDI Debug|Win32.Build.0 = Debug|Win32 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.GDI Debug|x64.ActiveCfg = Debug|x64 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.GDI Debug|x64.Build.0 = Debug|x64 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}._GDI Release|Win32.ActiveCfg = Release|Win32 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}._GDI Release|Win32.Build.0 = Release|Win32 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}._GDI Release|x64.ActiveCfg = Release|x64 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}._GDI Release|x64.Build.0 = Release|x64 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.DD Debug|Win32.ActiveCfg = DDDebug|Win32 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.DD Debug|Win32.Build.0 = DDDebug|Win32 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.DD Debug|x64.ActiveCfg = DDDebug|x64 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.DD Debug|x64.Build.0 = DDDebug|x64 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.DD Release|Win32.ActiveCfg = DDRelease|Win32 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.DD Release|Win32.Build.0 = DDRelease|Win32 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.DD Release|x64.ActiveCfg = DDRelease|x64 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.DD Release|x64.Build.0 = DDRelease|x64 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.GDI Debug|Win32.ActiveCfg = Debug|Win32 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.GDI Debug|Win32.Build.0 = Debug|Win32 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.GDI Debug|x64.ActiveCfg = Debug|x64 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.GDI Debug|x64.Build.0 = Debug|x64 - {6E9B1702-78E0-4D64-B771-8B274D963B58}._GDI Release|Win32.ActiveCfg = Release|Win32 - {6E9B1702-78E0-4D64-B771-8B274D963B58}._GDI Release|Win32.Build.0 = Release|Win32 - {6E9B1702-78E0-4D64-B771-8B274D963B58}._GDI Release|x64.ActiveCfg = Release|x64 - {6E9B1702-78E0-4D64-B771-8B274D963B58}._GDI Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/tachyon_icl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/tachyon_icl.sln deleted file mode 100644 index 8a0c3bac0..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/msvs/tachyon_icl.sln +++ /dev/null @@ -1,149 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{EAF909A5-FA59-4C3D-9431-0FCC20D5BCF9}") = "tachyon.tbb", "tachyon.tbb.icproj", "{2D08E05F-D0E0-48A7-9597-28B95ACE70B6}" - ProjectSection(ProjectDependencies) = postProject - {5F685DBD-9A04-4E94-A1CA-FC48FE799830} = {5F685DBD-9A04-4E94-A1CA-FC48FE799830} - EndProjectSection -EndProject -Project("{EAF909A5-FA59-4C3D-9431-0FCC20D5BCF9}") = "tachyon.common", "tachyon.icproj", "{5F685DBD-9A04-4E94-A1CA-FC48FE799830}" -EndProject -Project("{EAF909A5-FA59-4C3D-9431-0FCC20D5BCF9}") = "tachyon.serial", "tachyon.serial.icproj", "{E085A8DB-75D4-4927-9631-6368E6D0EE72}" - ProjectSection(ProjectDependencies) = postProject - {5F685DBD-9A04-4E94-A1CA-FC48FE799830} = {5F685DBD-9A04-4E94-A1CA-FC48FE799830} - EndProjectSection -EndProject -Project("{EAF909A5-FA59-4C3D-9431-0FCC20D5BCF9}") = "tachyon.tbb1d", "tachyon.tbb1d.icproj", "{4F173D3A-AE8C-4F7E-A4D0-6527F46B8495}" - ProjectSection(ProjectDependencies) = postProject - {5F685DBD-9A04-4E94-A1CA-FC48FE799830} = {5F685DBD-9A04-4E94-A1CA-FC48FE799830} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - DD Debug|Win32 = DD Debug|Win32 - DD Debug|x64 = DD Debug|x64 - DD Release|Win32 = DD Release|Win32 - DD Release|x64 = DD Release|x64 - GDI Debug|Win32 = GDI Debug|Win32 - GDI Debug|x64 = GDI Debug|x64 - _GDI Release|Win32 = _GDI Release|Win32 - _GDI Release|x64 = _GDI Release|x64 - Description = Tachyon ray-tracer example - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {2D08E05F-D0E0-48A7-9597-28B95ACE70B6}.DD Debug|Win32.ActiveCfg = DDDebug|Win32 - {2D08E05F-D0E0-48A7-9597-28B95ACE70B6}.DD Debug|Win32.Build.0 = DDDebug|Win32 - {2D08E05F-D0E0-48A7-9597-28B95ACE70B6}.DD Debug|x64.ActiveCfg = DDDebug|x64 - {2D08E05F-D0E0-48A7-9597-28B95ACE70B6}.DD Debug|x64.Build.0 = DDDebug|x64 - {2D08E05F-D0E0-48A7-9597-28B95ACE70B6}.DD Release|Win32.ActiveCfg = DDRelease|Win32 - {2D08E05F-D0E0-48A7-9597-28B95ACE70B6}.DD Release|Win32.Build.0 = DDRelease|Win32 - {2D08E05F-D0E0-48A7-9597-28B95ACE70B6}.DD Release|x64.ActiveCfg = DDRelease|x64 - {2D08E05F-D0E0-48A7-9597-28B95ACE70B6}.DD Release|x64.Build.0 = DDRelease|x64 - {2D08E05F-D0E0-48A7-9597-28B95ACE70B6}.GDI Debug|Win32.ActiveCfg = Debug|Win32 - {2D08E05F-D0E0-48A7-9597-28B95ACE70B6}.GDI Debug|Win32.Build.0 = Debug|Win32 - {2D08E05F-D0E0-48A7-9597-28B95ACE70B6}.GDI Debug|x64.ActiveCfg = Debug|x64 - {2D08E05F-D0E0-48A7-9597-28B95ACE70B6}.GDI Debug|x64.Build.0 = Debug|x64 - {2D08E05F-D0E0-48A7-9597-28B95ACE70B6}._GDI Release|Win32.ActiveCfg = Release|Win32 - {2D08E05F-D0E0-48A7-9597-28B95ACE70B6}._GDI Release|Win32.Build.0 = Release|Win32 - {2D08E05F-D0E0-48A7-9597-28B95ACE70B6}._GDI Release|x64.ActiveCfg = Release|x64 - {2D08E05F-D0E0-48A7-9597-28B95ACE70B6}._GDI Release|x64.Build.0 = Release|x64 - {5F685DBD-9A04-4E94-A1CA-FC48FE799830}.DD Debug|Win32.ActiveCfg = DDDebug|Win32 - {5F685DBD-9A04-4E94-A1CA-FC48FE799830}.DD Debug|Win32.Build.0 = DDDebug|Win32 - {5F685DBD-9A04-4E94-A1CA-FC48FE799830}.DD Debug|x64.ActiveCfg = DDDebug|x64 - {5F685DBD-9A04-4E94-A1CA-FC48FE799830}.DD Debug|x64.Build.0 = DDDebug|x64 - {5F685DBD-9A04-4E94-A1CA-FC48FE799830}.DD Release|Win32.ActiveCfg = DDRelease|Win32 - {5F685DBD-9A04-4E94-A1CA-FC48FE799830}.DD Release|Win32.Build.0 = DDRelease|Win32 - {5F685DBD-9A04-4E94-A1CA-FC48FE799830}.DD Release|x64.ActiveCfg = DDRelease|x64 - {5F685DBD-9A04-4E94-A1CA-FC48FE799830}.DD Release|x64.Build.0 = DDRelease|x64 - {5F685DBD-9A04-4E94-A1CA-FC48FE799830}.GDI Debug|Win32.ActiveCfg = Debug|Win32 - {5F685DBD-9A04-4E94-A1CA-FC48FE799830}.GDI Debug|Win32.Build.0 = Debug|Win32 - {5F685DBD-9A04-4E94-A1CA-FC48FE799830}.GDI Debug|x64.ActiveCfg = Debug|x64 - {5F685DBD-9A04-4E94-A1CA-FC48FE799830}.GDI Debug|x64.Build.0 = Debug|x64 - {5F685DBD-9A04-4E94-A1CA-FC48FE799830}._GDI Release|Win32.ActiveCfg = Release|Win32 - {5F685DBD-9A04-4E94-A1CA-FC48FE799830}._GDI Release|Win32.Build.0 = Release|Win32 - {5F685DBD-9A04-4E94-A1CA-FC48FE799830}._GDI Release|x64.ActiveCfg = Release|x64 - {5F685DBD-9A04-4E94-A1CA-FC48FE799830}._GDI Release|x64.Build.0 = Release|x64 - {E085A8DB-75D4-4927-9631-6368E6D0EE72}.DD Debug|Win32.ActiveCfg = DDDebug|Win32 - {E085A8DB-75D4-4927-9631-6368E6D0EE72}.DD Debug|Win32.Build.0 = DDDebug|Win32 - {E085A8DB-75D4-4927-9631-6368E6D0EE72}.DD Debug|x64.ActiveCfg = DDDebug|x64 - {E085A8DB-75D4-4927-9631-6368E6D0EE72}.DD Debug|x64.Build.0 = DDDebug|x64 - {E085A8DB-75D4-4927-9631-6368E6D0EE72}.DD Release|Win32.ActiveCfg = DDRelease|Win32 - {E085A8DB-75D4-4927-9631-6368E6D0EE72}.DD Release|Win32.Build.0 = DDRelease|Win32 - {E085A8DB-75D4-4927-9631-6368E6D0EE72}.DD Release|x64.ActiveCfg = DDRelease|x64 - {E085A8DB-75D4-4927-9631-6368E6D0EE72}.DD Release|x64.Build.0 = DDRelease|x64 - {E085A8DB-75D4-4927-9631-6368E6D0EE72}.GDI Debug|Win32.ActiveCfg = Debug|Win32 - {E085A8DB-75D4-4927-9631-6368E6D0EE72}.GDI Debug|Win32.Build.0 = Debug|Win32 - {E085A8DB-75D4-4927-9631-6368E6D0EE72}.GDI Debug|x64.ActiveCfg = Debug|x64 - {E085A8DB-75D4-4927-9631-6368E6D0EE72}.GDI Debug|x64.Build.0 = Debug|x64 - {E085A8DB-75D4-4927-9631-6368E6D0EE72}._GDI Release|Win32.ActiveCfg = Release|Win32 - {E085A8DB-75D4-4927-9631-6368E6D0EE72}._GDI Release|Win32.Build.0 = Release|Win32 - {E085A8DB-75D4-4927-9631-6368E6D0EE72}._GDI Release|x64.ActiveCfg = Release|x64 - {E085A8DB-75D4-4927-9631-6368E6D0EE72}._GDI Release|x64.Build.0 = Release|x64 - {4F173D3A-AE8C-4F7E-A4D0-6527F46B8495}.DD Debug|Win32.ActiveCfg = DDDebug|Win32 - {4F173D3A-AE8C-4F7E-A4D0-6527F46B8495}.DD Debug|Win32.Build.0 = DDDebug|Win32 - {4F173D3A-AE8C-4F7E-A4D0-6527F46B8495}.DD Debug|x64.ActiveCfg = DDDebug|x64 - {4F173D3A-AE8C-4F7E-A4D0-6527F46B8495}.DD Debug|x64.Build.0 = DDDebug|x64 - {4F173D3A-AE8C-4F7E-A4D0-6527F46B8495}.DD Release|Win32.ActiveCfg = DDRelease|Win32 - {4F173D3A-AE8C-4F7E-A4D0-6527F46B8495}.DD Release|Win32.Build.0 = DDRelease|Win32 - {4F173D3A-AE8C-4F7E-A4D0-6527F46B8495}.DD Release|x64.ActiveCfg = DDRelease|x64 - {4F173D3A-AE8C-4F7E-A4D0-6527F46B8495}.DD Release|x64.Build.0 = DDRelease|x64 - {4F173D3A-AE8C-4F7E-A4D0-6527F46B8495}.GDI Debug|Win32.ActiveCfg = Debug|Win32 - {4F173D3A-AE8C-4F7E-A4D0-6527F46B8495}.GDI Debug|Win32.Build.0 = Debug|Win32 - {4F173D3A-AE8C-4F7E-A4D0-6527F46B8495}.GDI Debug|x64.ActiveCfg = Debug|x64 - {4F173D3A-AE8C-4F7E-A4D0-6527F46B8495}.GDI Debug|x64.Build.0 = Debug|x64 - {4F173D3A-AE8C-4F7E-A4D0-6527F46B8495}._GDI Release|Win32.ActiveCfg = Release|Win32 - {4F173D3A-AE8C-4F7E-A4D0-6527F46B8495}._GDI Release|Win32.Build.0 = Release|Win32 - {4F173D3A-AE8C-4F7E-A4D0-6527F46B8495}._GDI Release|x64.ActiveCfg = Release|x64 - {4F173D3A-AE8C-4F7E-A4D0-6527F46B8495}._GDI Release|x64.Build.0 = Release|x64 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.DD Debug|Win32.ActiveCfg = DDDebug|Win32 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.DD Debug|x64.ActiveCfg = DDDebug|x64 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.DD Release|Win32.ActiveCfg = DDRelease|Win32 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.DD Release|x64.ActiveCfg = DDRelease|x64 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.GDI Debug|Win32.ActiveCfg = Debug|Win32 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.GDI Debug|Win32.Build.0 = Debug|Win32 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.GDI Debug|x64.ActiveCfg = Debug|x64 - {6E9B1702-78E0-4D64-B771-8B274D963B58}.GDI Debug|x64.Build.0 = Debug|x64 - {6E9B1702-78E0-4D64-B771-8B274D963B58}._GDI Release|Win32.ActiveCfg = Release|Win32 - {6E9B1702-78E0-4D64-B771-8B274D963B58}._GDI Release|Win32.Build.0 = Release|Win32 - {6E9B1702-78E0-4D64-B771-8B274D963B58}._GDI Release|x64.ActiveCfg = Release|x64 - {6E9B1702-78E0-4D64-B771-8B274D963B58}._GDI Release|x64.Build.0 = Release|x64 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.DD Debug|Win32.ActiveCfg = DDDebug|Win32 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.DD Debug|x64.ActiveCfg = DDDebug|x64 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.DD Release|Win32.ActiveCfg = DDRelease|Win32 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.DD Release|x64.ActiveCfg = DDRelease|x64 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.GDI Debug|Win32.ActiveCfg = Debug|Win32 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.GDI Debug|Win32.Build.0 = Debug|Win32 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.GDI Debug|x64.ActiveCfg = Debug|x64 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}.GDI Debug|x64.Build.0 = Debug|x64 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}._GDI Release|Win32.ActiveCfg = Release|Win32 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}._GDI Release|Win32.Build.0 = Release|Win32 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}._GDI Release|x64.ActiveCfg = Release|x64 - {924517DF-2B6A-47D5-8A11-CC247CC4D810}._GDI Release|x64.Build.0 = Release|x64 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.DD Debug|Win32.ActiveCfg = DDDebug|Win32 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.DD Debug|x64.ActiveCfg = DDDebug|x64 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.DD Release|Win32.ActiveCfg = DDRelease|Win32 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.DD Release|x64.ActiveCfg = DDRelease|x64 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.GDI Debug|Win32.ActiveCfg = Debug|Win32 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.GDI Debug|Win32.Build.0 = Debug|Win32 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.GDI Debug|x64.ActiveCfg = Debug|x64 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}.GDI Debug|x64.Build.0 = Debug|x64 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}._GDI Release|Win32.ActiveCfg = Release|Win32 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}._GDI Release|Win32.Build.0 = Release|Win32 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}._GDI Release|x64.ActiveCfg = Release|x64 - {924517DF-2B6A-47D5-8A11-CC047CC4D8E9}._GDI Release|x64.Build.0 = Release|x64 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.DD Debug|Win32.ActiveCfg = DDDebug|Win32 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.DD Debug|x64.ActiveCfg = DDDebug|x64 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.DD Release|Win32.ActiveCfg = DDRelease|Win32 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.DD Release|x64.ActiveCfg = DDRelease|x64 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.GDI Debug|Win32.ActiveCfg = Debug|Win32 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.GDI Debug|Win32.Build.0 = Debug|Win32 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.GDI Debug|x64.ActiveCfg = Debug|x64 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}.GDI Debug|x64.Build.0 = Debug|x64 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}._GDI Release|Win32.ActiveCfg = Release|Win32 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}._GDI Release|Win32.Build.0 = Release|Win32 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}._GDI Release|x64.ActiveCfg = Release|x64 - {924517DF-2B6A-47D5-8A11-CC347CC4D8E9}._GDI Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/api.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/api.cpp deleted file mode 100644 index 6c9a1afdb..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/api.cpp +++ /dev/null @@ -1,428 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * api.c - This file contains all of the API calls that are defined for - * external driver code to use. - * - * $Id: api.cpp,v 1.5 2007-02-22 17:54:14 Exp $ - */ - -#include "machine.h" -#include "types.h" -#include "macros.h" - -#include "box.h" -#include "cylinder.h" -#include "plane.h" -#include "quadric.h" -#include "ring.h" -#include "sphere.h" -#include "triangle.h" -#include "vol.h" -#include "extvol.h" - -#include "texture.h" -#include "light.h" -#include "render.h" -#include "camera.h" -#include "vector.h" -#include "intersect.h" -#include "shade.h" -#include "util.h" -#include "imap.h" -#include "global.h" - -#include "tachyon_video.h" - -typedef void * SceneHandle; -#include "api.h" - - -vector rt_vector(apiflt x, apiflt y, apiflt z) { - vector v; - - v.x = x; - v.y = y; - v.z = z; - - return v; -} - -color rt_color(apiflt r, apiflt g, apiflt b) { - color c; - - c.r = r; - c.g = g; - c.b = b; - - return c; -} - -void rt_initialize() { - rpcmsg msg; - - reset_object(); - reset_lights(); - InitTextures(); - - if (!parinitted) { - parinitted=1; - - msg.type=1; /* setup a ping message */ - } -} - -void rt_renderscene(SceneHandle voidscene) { - scenedef * scene = (scenedef *) voidscene; - renderscene(*scene); -} - -void rt_camerasetup(SceneHandle voidscene, apiflt zoom, apiflt aspectratio, - int antialiasing, int raydepth, - vector camcent, vector viewvec, vector upvec) { - scenedef * scene = (scenedef *) voidscene; - - vector newupvec; - vector newviewvec; - vector newrightvec; - - VCross((vector *) &upvec, &viewvec, &newrightvec); - VNorm(&newrightvec); - - VCross((vector *) &viewvec, &newrightvec, &newupvec); - VNorm(&newupvec); - - newviewvec=viewvec; - VNorm(&newviewvec); - - - scene->camzoom=zoom; - scene->aspectratio=aspectratio; - scene->antialiasing=antialiasing; - scene->raydepth=raydepth; - scene->camcent=camcent; - scene->camviewvec=newviewvec; - scene->camrightvec=newrightvec; - scene->camupvec=newupvec; -} - -void rt_outputfile(SceneHandle voidscene, const char * outname) { - scenedef * scene = (scenedef *) voidscene; - strcpy((char *) &scene->outfilename, outname); -} - -void rt_resolution(SceneHandle voidscene, int hres, int vres) { - scenedef * scene = (scenedef *) voidscene; - scene->hres=hres; - scene->vres=vres; -} - -void rt_verbose(SceneHandle voidscene, int v) { - scenedef * scene = (scenedef *) voidscene; - scene->verbosemode = v; -} - -void rt_rawimage(SceneHandle voidscene, unsigned char *rawimage) { - scenedef * scene = (scenedef *) voidscene; - scene->rawimage = rawimage; -} - -void rt_background(SceneHandle voidscene, color col) { - scenedef * scene = (scenedef *) voidscene; - scene->background.r = col.r; - scene->background.g = col.g; - scene->background.b = col.b; -} - -void rt_boundmode(SceneHandle voidscene, int mode) { - scenedef * scene = (scenedef *) voidscene; - scene->boundmode = mode; -} - -void rt_boundthresh(SceneHandle voidscene, int threshold) { - scenedef * scene = (scenedef *) voidscene; - - if (threshold > 1) { - scene->boundthresh = threshold; - } - else { - rtmesg("Ignoring out-of-range automatic bounding threshold.\n"); - rtmesg("Automatic bounding threshold reset to default.\n"); - scene->boundthresh = MAXOCTNODES; - } -} - -void rt_displaymode(SceneHandle voidscene, int mode) { - scenedef * scene = (scenedef *) voidscene; - scene->displaymode = mode; -} - - -void rt_scenesetup(SceneHandle voidscene, char * outname, int hres, int vres, int verbose) { - rt_outputfile(voidscene, outname); - rt_resolution(voidscene, hres, vres); - rt_verbose(voidscene, verbose); -} - -SceneHandle rt_newscene(void) { - scenedef * scene; - SceneHandle voidscene; - - scene = (scenedef *) malloc(sizeof(scenedef)); - memset(scene, 0, sizeof(scenedef)); /* clear all valuas to 0 */ - - voidscene = (SceneHandle) scene; - - rt_outputfile(voidscene, "/dev/null"); /* default output file (.tga) */ - rt_resolution(voidscene, 512, 512); /* 512x512 resolution */ - rt_verbose(voidscene, 0); /* verbose messages off */ - rt_rawimage(voidscene, NULL); /* raw image output off */ - rt_boundmode(voidscene, RT_BOUNDING_ENABLED); /* spatial subdivision on */ - rt_boundthresh(voidscene, MAXOCTNODES); /* default threshold */ - rt_displaymode(voidscene, RT_DISPLAY_ENABLED); /* video output on */ - rt_camerasetup(voidscene, 1.0, 1.0, 0, 6, - rt_vector(0.0, 0.0, 0.0), - rt_vector(0.0, 0.0, 1.0), - rt_vector(0.0, 1.0, 0.0)); - - return scene; -} - -void rt_deletescene(SceneHandle scene) { - if (scene != NULL) - free(scene); -} - -void apitextotex(apitexture * apitex, texture * tex) { - switch(apitex->texturefunc) { - case 0: - tex->texfunc=(color(*)(void *, void *, void *))(standard_texture); - break; - - case 1: - tex->texfunc=(color(*)(void *, void *, void *))(checker_texture); - break; - - case 2: - tex->texfunc=(color(*)(void *, void *, void *))(grit_texture); - break; - - case 3: - tex->texfunc=(color(*)(void *, void *, void *))(marble_texture); - break; - - case 4: - tex->texfunc=(color(*)(void *, void *, void *))(wood_texture); - break; - - case 5: - tex->texfunc=(color(*)(void *, void *, void *))(gnoise_texture); - break; - - case 6: - tex->texfunc=(color(*)(void *, void *, void *))(cyl_checker_texture); - break; - - case 7: - tex->texfunc=(color(*)(void *, void *, void *))(image_sphere_texture); - tex->img=AllocateImage((char *)apitex->imap); - break; - - case 8: - tex->texfunc=(color(*)(void *, void *, void *))(image_cyl_texture); - tex->img=AllocateImage((char *)apitex->imap); - break; - - case 9: - tex->texfunc=(color(*)(void *, void *, void *))(image_plane_texture); - tex->img=AllocateImage((char *)apitex->imap); - break; - - default: - tex->texfunc=(color(*)(void *, void *, void *))(standard_texture); - break; - } - - tex->ctr = apitex->ctr; - tex->rot = apitex->rot; - tex->scale = apitex->scale; - tex->uaxs = apitex->uaxs; - tex->vaxs = apitex->vaxs; - tex->ambient = apitex->ambient; - tex->diffuse = apitex->diffuse; - tex->specular = apitex->specular; - tex->opacity = apitex->opacity; - tex->col = apitex->col; - - tex->islight = 0; - tex->shadowcast = 1; - tex->phong = 0.0; - tex->phongexp = 0.0; - tex->phongtype = 0; -} - -void * rt_texture(apitexture * apitex) { - texture * tex; - - tex=(texture *)rt_getmem(sizeof(texture)); - apitextotex(apitex, tex); - return(tex); -} - -void rt_tex_color(void * voidtex, color col) { - texture * tex = (texture *) voidtex; - tex->col = col; -} - -void rt_tex_phong(void * voidtex, apiflt phong, apiflt phongexp, int type) { - texture * tex = (texture *) voidtex; - tex->phong = phong; - tex->phongexp = phongexp; - tex->phongtype = type; -} - -void rt_light(void * tex, vector ctr, apiflt rad) { - point_light * li; - - li=newlight(tex, (vector) ctr, rad); - - li->tex->islight=1; - li->tex->shadowcast=1; - li->tex->diffuse=0.0; - li->tex->specular=0.0; - li->tex->opacity=1.0; - - add_light(li); - add_object((object *)li); -} - -void rt_scalarvol(void * tex, vector min, vector max, - int xs, int ys, int zs, char * fname, void * invol) { - add_object((object *) newscalarvol(tex, (vector)min, (vector)max, xs, ys, zs, fname, (scalarvol *) invol)); -} - -void rt_extvol(void * tex, vector min, vector max, int samples, flt (* evaluator)(flt, flt, flt)) { - add_object((object *) newextvol(tex, (vector)min, (vector)max, samples, evaluator)); -} - -void rt_box(void * tex, vector min, vector max) { - add_object((object *) newbox(tex, (vector)min, (vector)max)); -} - -void rt_cylinder(void * tex, vector ctr, vector axis, apiflt rad) { - add_object(newcylinder(tex, (vector)ctr, (vector)axis, rad)); -} - -void rt_fcylinder(void * tex, vector ctr, vector axis, apiflt rad) { - add_object(newfcylinder(tex, (vector)ctr, (vector)axis, rad)); -} - -void rt_plane(void * tex, vector ctr, vector norm) { - add_object(newplane(tex, (vector)ctr, (vector)norm)); -} - -void rt_ring(void * tex, vector ctr, vector norm, apiflt a, apiflt b) { - add_object(newring(tex, (vector)ctr, (vector)norm, a, b)); -} - -void rt_sphere(void * tex, vector ctr, apiflt rad) { - add_object(newsphere(tex, (vector)ctr, rad)); -} - -void rt_tri(void * tex, vector v0, vector v1, vector v2) { - object * trn; - - trn = newtri(tex, (vector)v0, (vector)v1, (vector)v2); - - if (trn != NULL) { - add_object(trn); - } -} - -void rt_stri(void * tex, vector v0, vector v1, vector v2, - vector n0, vector n1, vector n2) { - object * trn; - - trn = newstri(tex, (vector)v0, (vector)v1, (vector)v2, (vector)n0, (vector)n1, (vector)n2); - - if (trn != NULL) { - add_object(trn); - } -} - -void rt_quadsphere(void * tex, vector ctr, apiflt rad) { - quadric * q; - flt factor; - q=(quadric *) newquadric(); - factor= 1.0 / (rad*rad); - q->tex=(texture *)tex; - q->ctr=ctr; - - q->mat.a=factor; - q->mat.b=0.0; - q->mat.c=0.0; - q->mat.d=0.0; - q->mat.e=factor; - q->mat.f=0.0; - q->mat.g=0.0; - q->mat.h=factor; - q->mat.i=0.0; - q->mat.j=-1.0; - - add_object((object *)q); -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/api.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/api.h deleted file mode 100644 index 5026fdaee..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/api.h +++ /dev/null @@ -1,216 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/***************************************************************************** - * api.h - The declarations and prototypes needed so that 3rd party driver * - * code can run the raytracer. Third party driver code should * - * only use the functions in this header file to interface with * - * the rendering engine. * - *************************************************************************** */ - - -/* - * $Id: api.h,v 1.2 2007-02-22 17:54:15 Exp $ - */ - - -/********************************************/ -/* Types defined for use with the API calls */ -/********************************************/ - -#ifdef USESINGLEFLT -typedef float apiflt; /* generic floating point number */ -#else -typedef double apiflt; /* generic floating point number */ -#endif - -typedef void * SceneHandle; - -typedef struct { - int texturefunc; /* which texture function to use */ - color col; /* base object color */ - int shadowcast; /* does the object cast a shadow */ - apiflt ambient; /* ambient lighting */ - apiflt diffuse; /* diffuse reflection */ - apiflt specular; /* specular reflection */ - apiflt opacity; /* how opaque the object is */ - vector ctr; /* origin of texture */ - vector rot; /* rotation of texture around origin */ - vector scale; /* scale of texture in x,y,z */ - vector uaxs; /* planar map u axis */ - vector vaxs; /* planar map v axis */ - char imap[96]; /* name of image map */ -} apitexture; - - -/******************************************************************* - * NOTE: The value passed in apitexture.texturefunc corresponds to - * the meanings given in this table: - * - * 0 - No texture function is applied other than standard lighting. - * 1 - 3D checkerboard texture. Red & Blue checkers through 3d space. - * 2 - Grit texture, roughens up the surface of the object a bit. - * 3 - 3D marble texture. Makes a 3D swirl pattern through the object. - * 4 - 3D wood texture. Makes a 3D wood pattern through the object. - * 5 - 3D gradient noise function. - * 6 - I've forgotten :-) - * 7 - Cylindrical Image Map **** IMAGE MAPS REQUIRE the filename - * 8 - Spherical Image Map of the image be put in imap[] - * 9 - Planar Image Map part of the texture... - * planar requires uaxs, and vaxs.. - * - *******************************************************************/ - -/********************************************/ -/* Functions implemented to provide the API */ -/********************************************/ - -vector rt_vector(apiflt x, apiflt y, apiflt z); /* helper to make vectors */ -color rt_color(apiflt r, apiflt g, apiflt b); /* helper to make colors */ - -void rt_initialize();/* reset raytracer, memory deallocation */ -void rt_finalize(void); /* close down for good.. */ - -SceneHandle rt_newscene(void); /* allocate new scene */ -void rt_deletescene(SceneHandle); /* delete a scene */ -void rt_renderscene(SceneHandle); /* raytrace the current scene */ -void rt_outputfile(SceneHandle, const char * outname); -void rt_resolution(SceneHandle, int hres, int vres); -void rt_verbose(SceneHandle, int v); -void rt_rawimage(SceneHandle, unsigned char *rawimage); -void rt_background(SceneHandle, color); - -/* Parameter values for rt_boundmode() */ -#define RT_BOUNDING_DISABLED 0 -#define RT_BOUNDING_ENABLED 1 - -void rt_boundmode(SceneHandle, int); -void rt_boundthresh(SceneHandle, int); - -/* Parameter values for rt_displaymode() */ -#define RT_DISPLAY_DISABLED 0 -#define RT_DISPLAY_ENABLED 1 - -void rt_displaymode(SceneHandle, int); - -void rt_scenesetup(SceneHandle, char *, int, int, int); - /* scene, output filename, horizontal resolution, vertical resolution, - verbose mode */ - - -void rt_camerasetup(SceneHandle, apiflt, apiflt, int, int, - vector, vector, vector); - /* camera parms: scene, zoom, aspectratio, antialiasing, raydepth, - camera center, view direction, up direction */ - - - -void * rt_texture(apitexture *); - /* pointer to the texture struct that would have been passed to each - object() call in older revisions.. */ - - - - -void rt_light(void * , vector, apiflt); /* add a light */ - /* light parms: texture, center, radius */ - -void rt_sphere(void *, vector, apiflt); /* add a sphere */ - /* sphere parms: texture, center, radius */ - -void rt_scalarvol(void *, vector, vector, - int, int, int, char *, void *); - -void rt_extvol(void *, vector, vector, int, apiflt (* evaluator)(apiflt, apiflt, apiflt)); - -void rt_box(void *, vector, vector); - /* box parms: texture, min, max */ - -void rt_plane(void *, vector, vector); - /* plane parms: texture, center, normal */ - -void rt_ring(void *, vector, vector, apiflt, apiflt); - /* ring parms: texture, center, normal, inner, outer */ - -void rt_tri(void *, vector, vector, vector); - /* tri parms: texture, vertex 0, vertex 1, vertex 2 */ - -void rt_stri(void *, vector, vector, vector, - vector, vector, vector); - /* stri parms: texture, vertex 0, vertex 1, vertex 2, norm 0, norm 1, norm 2 */ - -void rt_heightfield(void *, vector, int, int, apiflt *, apiflt, apiflt); - /* field parms: texture, center, m, n, field, wx, wy */ - -void rt_landscape(void *, int, int, vector, apiflt, apiflt); - -void rt_quadsphere(void *, vector, apiflt); /* add quadric sphere */ - /* sphere parms: texture, center, radius */ - -void rt_cylinder(void *, vector, vector, apiflt); - -void rt_fcylinder(void *, vector, vector, apiflt); - -void rt_polycylinder(void *, vector *, int, apiflt); - - -/* new texture handling routines */ -void rt_tex_color(void * voidtex, color col); - -#define RT_PHONG_PLASTIC 0 -#define RT_PHONG_METAL 1 -void rt_tex_phong(void * voidtex, apiflt phong, apiflt phongexp, int type); diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/apigeom.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/apigeom.cpp deleted file mode 100644 index 07faed792..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/apigeom.cpp +++ /dev/null @@ -1,278 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * api.c - This file contains all of the API calls that are defined for - * external driver code to use. - * - * $Id: apigeom.cpp,v 1.2 2007-02-22 17:54:15 Exp $ - */ - -#include "machine.h" -#include "types.h" -#include "api.h" -#include "macros.h" -#include "vector.h" - -#define MyVNorm(a) VNorm ((vector *) a) - -void rt_polycylinder(void * tex, vector * points, int numpts, apiflt rad) { - vector a; - int i; - - if ((points == NULL) || (numpts == 0)) { - return; - } - - if (numpts > 0) { - rt_sphere(tex, points[0], rad); - - if (numpts > 1) { - for (i=1; i (xres + yres)) v=(xres + yres); - base[x + (xres * y)]=v; - } -} - -static void subdivide(apiflt *base, int xres, int yres, apiflt wx, apiflt wy, - int x1, int y1, int x2, int y2) { - long x,y; - - if (((x2 - x1) < 2) && ((y2 - y1) < 2)) { return; } - - x=(x1 + x2) / 2; - y=(y1 + y2) / 2; - - adjust(base, xres, yres, wx, wy, x1, y1, x, y1, x2, y1); - adjust(base, xres, yres, wx, wy, x2, y1, x2, y, x2, y2); - adjust(base, xres, yres, wx, wy, x1, y2, x, y2, x2, y2); - adjust(base, xres, yres, wx, wy, x1, y1, x1, y, x1, y2); - - - if (base[x + xres*y]==0.0) { - base[x + (xres * y)]=(base[x1 + xres*y1] + base[x2 + xres*y1] + - base[x2 + xres*y2] + base[x1 + xres*y2] )/4.0; - } - - subdivide(base, xres, yres, wx, wy, x1, y1 ,x ,y); - subdivide(base, xres, yres, wx, wy, x, y1, x2, y); - subdivide(base, xres, yres, wx, wy, x, y, x2, y2); - subdivide(base, xres, yres, wx, wy, x1, y, x, y2); -} - -void rt_landscape(void * tex, int m, int n, - vector ctr, apiflt wx, apiflt wy) { - int totalsize, x, y; - apiflt * field; - - totalsize=m*n; - - srand(totalsize); - - field=(apiflt *) malloc(totalsize*sizeof(apiflt)); - - for (y=0; ymin=min; - b->max=max; - b->methods = &bndbox_methods; - - b->objlist=NULL; - b->tex=NULL; - b->nextobj=NULL; - return b; -} - - -static int bndbox_bbox(void * obj, vector * min, vector * max) { - bndbox * b = (bndbox *) obj; - - *min = b->min; - *max = b->max; - - return 1; -} - - -static void free_bndbox(void * v) { - bndbox * b = (bndbox *) v; - - free_objects(b->objlist); - - free(b); -} - - -static void bndbox_intersect(bndbox * bx, ray * ry) { - flt a, tx1, tx2, ty1, ty2, tz1, tz2; - flt tnear, tfar; - object * obj; - ray newray; - - /* eliminate bounded rays whose bounds do not intersect */ - /* the bounds of the box.. */ - if (ry->flags & RT_RAY_BOUNDED) { - if ((ry->s.x > bx->max.x) && (ry->e.x > bx->max.x)) return; - if ((ry->s.x < bx->min.x) && (ry->e.x < bx->min.x)) return; - - if ((ry->s.y > bx->max.y) && (ry->e.y > bx->max.y)) return; - if ((ry->s.y < bx->min.y) && (ry->e.y < bx->min.y)) return; - - if ((ry->s.z > bx->max.z) && (ry->e.z > bx->max.z)) return; - if ((ry->s.z < bx->min.z) && (ry->e.z < bx->min.z)) return; - } - - tnear= -FHUGE; - tfar= FHUGE; - - if (ry->d.x == 0.0) { - if ((ry->o.x < bx->min.x) || (ry->o.x > bx->max.x)) return; - } - else { - tx1 = (bx->min.x - ry->o.x) / ry->d.x; - tx2 = (bx->max.x - ry->o.x) / ry->d.x; - if (tx1 > tx2) { a=tx1; tx1=tx2; tx2=a; } - if (tx1 > tnear) tnear=tx1; - if (tx2 < tfar) tfar=tx2; - } - if (tnear > tfar) return; - if (tfar < 0.0) return; - - if (ry->d.y == 0.0) { - if ((ry->o.y < bx->min.y) || (ry->o.y > bx->max.y)) return; - } - else { - ty1 = (bx->min.y - ry->o.y) / ry->d.y; - ty2 = (bx->max.y - ry->o.y) / ry->d.y; - if (ty1 > ty2) { a=ty1; ty1=ty2; ty2=a; } - if (ty1 > tnear) tnear=ty1; - if (ty2 < tfar) tfar=ty2; - } - if (tnear > tfar) return; - if (tfar < 0.0) return; - - if (ry->d.z == 0.0) { - if ((ry->o.z < bx->min.z) || (ry->o.z > bx->max.z)) return; - } - else { - tz1 = (bx->min.z - ry->o.z) / ry->d.z; - tz2 = (bx->max.z - ry->o.z) / ry->d.z; - if (tz1 > tz2) { a=tz1; tz1=tz2; tz2=a; } - if (tz1 > tnear) tnear=tz1; - if (tz2 < tfar) tfar=tz2; - } - if (tnear > tfar) return; - if (tfar < 0.0) return; - - - /* intersect all of the enclosed objects */ - newray=*ry; - newray.flags |= RT_RAY_BOUNDED; - - RAYPNT(newray.s , (*ry) , tnear); - RAYPNT(newray.e , (*ry) , (tfar + EPSILON)); - - obj = bx->objlist; - while (obj != NULL) { - obj->methods->intersect(obj, &newray); - obj = (object *)obj->nextobj; - } -} - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/bndbox.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/bndbox.h deleted file mode 100644 index 0ef764836..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/bndbox.h +++ /dev/null @@ -1,82 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * bndbox.h - This file contains the defines for bounding boxes etc. - * - * $Id: bndbox.h,v 1.2 2007-02-22 17:54:15 Exp $ - */ - -typedef struct { - unsigned int id; /* Unique Object serial number */ - void * nextobj; /* pointer to next object in list */ - object_methods * methods; /* this object's methods */ - texture * tex; /* object texture */ - vector min; - vector max; - object * objlist; -} bndbox; - -bndbox * newbndbox(vector min, vector max); - -#ifdef BNDBOX_PRIVATE - -static int bndbox_bbox(void * obj, vector * min, vector * max); -static void free_bndbox(void * v); -static void bndbox_intersect(bndbox *, ray *); - -#endif diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/box.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/box.cpp deleted file mode 100644 index f356286be..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/box.cpp +++ /dev/null @@ -1,178 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * box.c - This file contains the functions for dealing with boxes. - * - * $Id: box.cpp,v 1.2 2007-02-22 17:54:15 Exp $ - */ - -#include "machine.h" -#include "types.h" -#include "macros.h" -#include "box.h" -#include "vector.h" -#include "intersect.h" -#include "util.h" - -int box_bbox(void * obj, vector * min, vector * max) { - box * b = (box *) obj; - - *min = b->min; - *max = b->max; - - return 1; -} - -static object_methods box_methods = { - (void (*)(void *, void *))(box_intersect), - (void (*)(void *, void *, void *, void *))(box_normal), - box_bbox, - free -}; - -box * newbox(void * tex, vector min, vector max) { - box * b; - - b=(box *) rt_getmem(sizeof(box)); - memset(b, 0, sizeof(box)); - b->methods = &box_methods; - b->tex = (texture *)tex; - b->min = min; - b->max = max; - - return b; -} - -void box_intersect(box * bx, ray * ry) { - flt a, tx1, tx2, ty1, ty2, tz1, tz2; - flt tnear, tfar; - - tnear= -FHUGE; - tfar= FHUGE; - - if (ry->d.x == 0.0) { - if ((ry->o.x < bx->min.x) || (ry->o.x > bx->max.x)) return; - } - else { - tx1 = (bx->min.x - ry->o.x) / ry->d.x; - tx2 = (bx->max.x - ry->o.x) / ry->d.x; - if (tx1 > tx2) { a=tx1; tx1=tx2; tx2=a; } - if (tx1 > tnear) tnear=tx1; - if (tx2 < tfar) tfar=tx2; - } - if (tnear > tfar) return; - if (tfar < 0.0) return; - - if (ry->d.y == 0.0) { - if ((ry->o.y < bx->min.y) || (ry->o.y > bx->max.y)) return; - } - else { - ty1 = (bx->min.y - ry->o.y) / ry->d.y; - ty2 = (bx->max.y - ry->o.y) / ry->d.y; - if (ty1 > ty2) { a=ty1; ty1=ty2; ty2=a; } - if (ty1 > tnear) tnear=ty1; - if (ty2 < tfar) tfar=ty2; - } - if (tnear > tfar) return; - if (tfar < 0.0) return; - - if (ry->d.z == 0.0) { - if ((ry->o.z < bx->min.z) || (ry->o.z > bx->max.z)) return; - } - else { - tz1 = (bx->min.z - ry->o.z) / ry->d.z; - tz2 = (bx->max.z - ry->o.z) / ry->d.z; - if (tz1 > tz2) { a=tz1; tz1=tz2; tz2=a; } - if (tz1 > tnear) tnear=tz1; - if (tz2 < tfar) tfar=tz2; - } - if (tnear > tfar) return; - if (tfar < 0.0) return; - - add_intersection(tnear, (object *) bx, ry); - add_intersection(tfar, (object *) bx, ry); -} - -void box_normal(box * bx, vector * pnt, ray * incident, vector * N) { - vector a, b, c; - flt t; - - c.x=(bx->max.x + bx->min.x) / 2.0; - c.y=(bx->max.y + bx->min.y) / 2.0; - c.z=(bx->max.z + bx->min.z) / 2.0; - - VSub((vector *) pnt, &c, N); - b=(*N); - - a.x=fabs(N->x); - a.y=fabs(N->y); - a.z=fabs(N->z); - - N->x=0.0; N->y=0.0; N->z=0.0; - - t=MYMAX(a.x, MYMAX(a.y, a.z)); - - if (t==a.x) N->x=b.x; - - if (t==a.y) N->y=b.y; - - if (t==a.z) N->z=b.z; - - VNorm(N); -} - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/box.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/box.h deleted file mode 100644 index 2628b2c00..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/box.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * box.h - This file contains the defines for boxes etc. - * - * $Id: box.h,v 1.2 2007-02-22 17:54:15 Exp $ - */ - - -typedef struct { - unsigned int id; /* Unique Object serial number */ - void * nextobj; /* pointer to next object in list */ - object_methods * methods; /* this object's methods */ - texture * tex; /* object texture */ - vector min; - vector max; -} box; - - -box * newbox(void * tex, vector min, vector max); -void box_intersect(box *, ray *); -void box_normal(box *, vector *, ray * incident, vector *); diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/camera.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/camera.cpp deleted file mode 100644 index 7bdbebc93..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/camera.cpp +++ /dev/null @@ -1,119 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * camera.c - This file contains all of the functions for doing camera work. - * - * $Id: camera.cpp,v 1.2 2007-02-22 17:54:15 Exp $ - */ - -#include "machine.h" -#include "types.h" -#include "macros.h" -#include "vector.h" -#include "camera.h" -#include "util.h" - -ray camray(scenedef *scene, int x, int y) { - ray ray1, newray; - vector projcent; - vector projpixel; - flt px, py, sx, sy; - - sx = (flt) scene->hres; - sy = (flt) scene->vres; - - /* calculate the width and height of the image plane given the */ - /* aspect ratio, image resolution, and zoom factor */ - - px=((sx / sy) / scene->aspectratio) / scene->camzoom; - py=1.0 / scene->camzoom; - - /* assuming viewvec is a unit vector, then the center of the */ - /* image plane is the camera center + vievec */ - projcent.x = scene->camcent.x + scene->camviewvec.x; - projcent.y = scene->camcent.y + scene->camviewvec.y; - projcent.z = scene->camcent.z + scene->camviewvec.z; - - /* starting from the center of the image plane, we move the */ - /* center of the pel we're calculating, to */ - /* projcent + (rightvec * x distance) */ - ray1.o=projcent; - ray1.d=scene->camrightvec; - projpixel=Raypnt(&ray1, ((x*px/sx) - (px / 2.0))); - - /* starting from the horizontally translated pel, we move the */ - /* center of the pel we're calculating, to */ - /* projcent + (upvec * y distance) */ - ray1.o=projpixel; - ray1.d=scene->camupvec; - projpixel=Raypnt(&ray1, ((y*py/sy) - (py / 2.0))); - - /* now that we have the exact pel center in the image plane */ - /* we create the real primary ray that will be used by the */ - /* rest of the system. */ - /* The ray is expected to be re-normalized elsewhere, we're */ - /* only really concerned about getting its direction right. */ - newray.o=scene->camcent; - VSub(&projpixel, &scene->camcent, &newray.d); - newray.depth = scene->raydepth; - newray.flags = RT_RAY_REGULAR; /* camera only generates primary rays */ - - return newray; -} - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/camera.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/camera.h deleted file mode 100644 index 9f94b5642..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/camera.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * camera.h - This file contains the defines for camera routines etc. - * - * $Id: camera.h,v 1.2 2007-02-22 17:54:15 Exp $ - */ - -ray camray(scenedef *, int, int); diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/coordsys.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/coordsys.cpp deleted file mode 100644 index 10d9fc0c7..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/coordsys.cpp +++ /dev/null @@ -1,106 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * coordsys.c - Routines to translate from one coordinate system to another. - * - * $Id: coordsys.cpp,v 1.2 2007-02-22 17:54:15 Exp $ - */ - -#include "machine.h" -#include "types.h" -#include "coordsys.h" - -void xytopolar(flt x, flt y, flt rad, flt * u, flt * v) { - flt r1; - r1=x*x + y*y; - *v=sqrt(r1 / (rad*rad)); - if (y<0.0) - *u=1.0 - acos(x/sqrt(r1))/TWOPI; - else - *u= acos(x/sqrt(r1))/TWOPI; -} - -void xyztocyl(vector pnt, flt height, flt * u, flt * v) { - flt r1; - - r1=pnt.x*pnt.x + pnt.y*pnt.y; - - *v=pnt.z / height; - if (pnt.y<0.0) - *u=1.0 - acos(pnt.x/sqrt(r1))/TWOPI; - else - *u=acos(pnt.x/sqrt(r1))/TWOPI; -} - -void xyztospr(vector pnt, flt * u, flt * v) { - flt r1, phi, theta; - - r1=sqrt(pnt.x*pnt.x + pnt.y*pnt.y + pnt.z*pnt.z); - - phi=acos(-pnt.y/r1); - *v=phi/3.1415926; - - theta=acos((pnt.x/r1)/sin(phi))/TWOPI; - - if (pnt.z > 0.0) - *u = theta; - else - *u = 1 - theta; -} - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/coordsys.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/coordsys.h deleted file mode 100644 index 35d0026d6..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/coordsys.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * coordsys.h - defines for coordinate system routines. - * - * $Id: coordsys.h,v 1.2 2007-02-22 17:54:15 Exp $ - */ - -#define TWOPI 6.2831853 - -void xytopolar(flt, flt, flt, flt *, flt *); -void xyztocyl(vector, flt, flt *, flt *); -void xyztospr(vector, flt *, flt *); diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/cylinder.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/cylinder.cpp deleted file mode 100644 index c3b9b0a71..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/cylinder.cpp +++ /dev/null @@ -1,281 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * cylinder.c - This file contains the functions for dealing with cylinders. - * - * $Id: cylinder.cpp,v 1.2 2007-02-22 17:54:15 Exp $ - */ - -#include "machine.h" -#include "types.h" -#include "macros.h" -#include "vector.h" -#include "intersect.h" -#include "util.h" - -#define CYLINDER_PRIVATE -#include "cylinder.h" - -static object_methods cylinder_methods = { - (void (*)(void *, void *))(cylinder_intersect), - (void (*)(void *, void *, void *, void *))(cylinder_normal), - cylinder_bbox, - free -}; - -static object_methods fcylinder_methods = { - (void (*)(void *, void *))(fcylinder_intersect), - (void (*)(void *, void *, void *, void *))(cylinder_normal), - fcylinder_bbox, - free -}; - - -object * newcylinder(void * tex, vector ctr, vector axis, flt rad) { - cylinder * c; - - c=(cylinder *) rt_getmem(sizeof(cylinder)); - memset(c, 0, sizeof(cylinder)); - c->methods = &cylinder_methods; - - c->tex=(texture *) tex; - c->ctr=ctr; - c->axis=axis; - c->rad=rad; - return (object *) c; -} - -static int cylinder_bbox(void * obj, vector * min, vector * max) { - return 0; /* infinite / unbounded object */ -} - -static void cylinder_intersect(cylinder * cyl, ray * ry) { - vector rc, n, D, O; - flt t, s, tin, tout, ln, d; - - rc.x = ry->o.x - cyl->ctr.x; - rc.y = ry->o.y - cyl->ctr.y; - rc.z = ry->o.z - cyl->ctr.z; - - VCross(&ry->d, &cyl->axis, &n); - - VDOT(ln, n, n); - ln=sqrt(ln); /* finish length calculation */ - - if (ln == 0.0) { /* ray is parallel to the cylinder.. */ - VDOT(d, rc, cyl->axis); - D.x = rc.x - d * cyl->axis.x; - D.y = rc.y - d * cyl->axis.y; - D.z = rc.z - d * cyl->axis.z; - VDOT(d, D, D); - d = sqrt(d); - tin = -FHUGE; - tout = FHUGE; - /* if (d <= cyl->rad) then ray is inside cylinder.. else outside */ - } - - VNorm(&n); - VDOT(d, rc, n); - d = fabs(d); - - if (d <= cyl->rad) { /* ray intersects cylinder.. */ - VCross(&rc, &cyl->axis, &O); - VDOT(t, O, n); - t = - t / ln; - VCross(&n, &cyl->axis, &O); - VNorm(&O); - VDOT(s, ry->d, O); - s = fabs(sqrt(cyl->rad*cyl->rad - d*d) / s); - tin = t - s; - add_intersection(tin, (object *) cyl, ry); - tout = t + s; - add_intersection(tout, (object *) cyl, ry); - } -} - -static void cylinder_normal(cylinder * cyl, vector * pnt, ray * incident, vector * N) { - vector a,b,c; - flt t; - - VSub((vector *) pnt, &(cyl->ctr), &a); - - c=cyl->axis; - - VNorm(&c); - - VDOT(t, a, c); - - b.x = c.x * t + cyl->ctr.x; - b.y = c.y * t + cyl->ctr.y; - b.z = c.z * t + cyl->ctr.z; - - VSub(pnt, &b, N); - VNorm(N); - - if (VDot(N, &(incident->d)) > 0.0) { /* make cylinder double sided */ - N->x=-N->x; - N->y=-N->y; - N->z=-N->z; - } -} - -object * newfcylinder(void * tex, vector ctr, vector axis, flt rad) { - cylinder * c; - - c=(cylinder *) rt_getmem(sizeof(cylinder)); - memset(c, 0, sizeof(cylinder)); - c->methods = &fcylinder_methods; - - c->tex=(texture *) tex; - c->ctr=ctr; - c->axis=axis; - c->rad=rad; - - return (object *) c; -} - -static int fcylinder_bbox(void * obj, vector * min, vector * max) { - cylinder * c = (cylinder *) obj; - vector mintmp, maxtmp; - - mintmp.x = c->ctr.x; - mintmp.y = c->ctr.y; - mintmp.z = c->ctr.z; - maxtmp.x = c->ctr.x + c->axis.x; - maxtmp.y = c->ctr.y + c->axis.y; - maxtmp.z = c->ctr.z + c->axis.z; - - min->x = MYMIN(mintmp.x, maxtmp.x); - min->y = MYMIN(mintmp.y, maxtmp.y); - min->z = MYMIN(mintmp.z, maxtmp.z); - min->x -= c->rad; - min->y -= c->rad; - min->z -= c->rad; - - max->x = MYMAX(mintmp.x, maxtmp.x); - max->y = MYMAX(mintmp.y, maxtmp.y); - max->z = MYMAX(mintmp.z, maxtmp.z); - max->x += c->rad; - max->y += c->rad; - max->z += c->rad; - - return 1; -} - - -static void fcylinder_intersect(cylinder * cyl, ray * ry) { - vector rc, n, O, hit, tmp2, ctmp4; - flt t, s, tin, tout, ln, d, tmp, tmp3; - - rc.x = ry->o.x - cyl->ctr.x; - rc.y = ry->o.y - cyl->ctr.y; - rc.z = ry->o.z - cyl->ctr.z; - - VCross(&ry->d, &cyl->axis, &n); - - VDOT(ln, n, n); - ln=sqrt(ln); /* finish length calculation */ - - if (ln == 0.0) { /* ray is parallel to the cylinder.. */ - return; /* in this case, we want to miss or go through the "hole" */ - } - - VNorm(&n); - VDOT(d, rc, n); - d = fabs(d); - - if (d <= cyl->rad) { /* ray intersects cylinder.. */ - VCross(&rc, &cyl->axis, &O); - VDOT(t, O, n); - t = - t / ln; - VCross(&n, &cyl->axis, &O); - VNorm(&O); - VDOT(s, ry->d, O); - s = fabs(sqrt(cyl->rad*cyl->rad - d*d) / s); - tin = t - s; - - RAYPNT(hit, (*ry), tin); - - ctmp4=cyl->axis; - VNorm(&ctmp4); - - tmp2.x = hit.x - cyl->ctr.x; - tmp2.y = hit.y - cyl->ctr.y; - tmp2.z = hit.z - cyl->ctr.z; - - VDOT(tmp, tmp2, ctmp4); - VDOT(tmp3, cyl->axis, cyl->axis); - - if ((tmp > 0.0) && (tmp < sqrt(tmp3))) - add_intersection(tin, (object *) cyl, ry); - tout = t + s; - - RAYPNT(hit, (*ry), tout); - - tmp2.x = hit.x - cyl->ctr.x; - tmp2.y = hit.y - cyl->ctr.y; - tmp2.z = hit.z - cyl->ctr.z; - - VDOT(tmp, tmp2, ctmp4); - VDOT(tmp3, cyl->axis, cyl->axis); - - if ((tmp > 0.0) && (tmp < sqrt(tmp3))) - add_intersection(tout, (object *) cyl, ry); - } -} - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/cylinder.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/cylinder.h deleted file mode 100644 index 319e60ac4..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/cylinder.h +++ /dev/null @@ -1,86 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * cylinder.h - This file contains the defines for cylinders etc. - * - * $Id: cylinder.h,v 1.2 2007-02-22 17:54:15 Exp $ - */ - -object * newcylinder(void *, vector, vector, flt); -object * newfcylinder(void *, vector, vector, flt); - -#ifdef CYLINDER_PRIVATE - -typedef struct { - unsigned int id; /* Unique Object serial number */ - void * nextobj; /* pointer to next object in list */ - object_methods * methods; /* this object's methods */ - texture * tex; /* object texture */ - vector ctr; - vector axis; - flt rad; -} cylinder; - -static void cylinder_intersect(cylinder *, ray *); -static void fcylinder_intersect(cylinder *, ray *); - -static int cylinder_bbox(void * obj, vector * min, vector * max); -static int fcylinder_bbox(void * obj, vector * min, vector * max); - -static void cylinder_normal(cylinder *, vector *, ray *, vector *); -#endif diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/extvol.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/extvol.cpp deleted file mode 100644 index 62481b67e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/extvol.cpp +++ /dev/null @@ -1,321 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * extvol.c - Volume rendering helper routines etc. - * - * $Id: extvol.cpp,v 1.2 2007-02-22 17:54:15 Exp $ - */ - -#include - -#include "machine.h" -#include "types.h" -#include "macros.h" -#include "vector.h" -#include "util.h" -#include "box.h" -#include "extvol.h" -#include "trace.h" -#include "sphere.h" -#include "light.h" -#include "shade.h" -#include "global.h" - - -int extvol_bbox(void * obj, vector * min, vector * max) { - box * b = (box *) obj; - - *min = b->min; - *max = b->max; - - return 1; -} - -static object_methods extvol_methods = { - (void (*)(void *, void *))(box_intersect), - (void (*)(void *, void *, void *, void *))(box_normal), - extvol_bbox, - free -}; - -extvol * newextvol(void * voidtex, vector min, vector max, - int samples, flt (* evaluator)(flt, flt, flt)) { - extvol * xvol; - texture * tex; - - tex = (texture *) voidtex; - - xvol = (extvol *) rt_getmem(sizeof(extvol)); - memset(xvol, 0, sizeof(extvol)); - - xvol->methods = &extvol_methods; - - xvol->min=min; - xvol->max=max; - xvol->evaluator = evaluator; - xvol->ambient = tex->ambient; - xvol->diffuse = tex->diffuse; - xvol->opacity = tex->opacity; - xvol->samples = samples; - - xvol->tex = (texture *)rt_getmem(sizeof(texture)); - memset(xvol->tex, 0, sizeof(texture)); - - xvol->tex->ctr.x = 0.0; - xvol->tex->ctr.y = 0.0; - xvol->tex->ctr.z = 0.0; - xvol->tex->rot = xvol->tex->ctr; - xvol->tex->scale = xvol->tex->ctr; - xvol->tex->uaxs = xvol->tex->ctr; - xvol->tex->vaxs = xvol->tex->ctr; - xvol->tex->islight = 0; - xvol->tex->shadowcast = 0; - - xvol->tex->col=tex->col; - xvol->tex->ambient=1.0; - xvol->tex->diffuse=0.0; - xvol->tex->specular=0.0; - xvol->tex->opacity=1.0; - xvol->tex->img=NULL; - xvol->tex->texfunc=(color(*)(void *, void *, void *))(ext_volume_texture); - xvol->tex->obj = (void *) xvol; /* XXX hack! */ - - return xvol; -} - -color ExtVoxelColor(flt scalar) { - color col; - - if (scalar > 1.0) - scalar = 1.0; - - if (scalar < 0.0) - scalar = 0.0; - - if (scalar < 0.5) { - col.g = 0.0; - } - else { - col.g = (scalar - 0.5) * 2.0; - } - - col.r = scalar; - col.b = 1.0 - (scalar / 2.0); - - return col; -} - -color ext_volume_texture(vector * hit, texture * tex, ray * ry) { - color col, col2; - box * bx; - extvol * xvol; - flt a, tx1, tx2, ty1, ty2, tz1, tz2; - flt tnear, tfar; - flt t, tdist, dt, ddt, sum, tt; - vector pnt, bln; - flt scalar, transval; - int i; - point_light * li; - color diffint; - vector N, L; - flt inten; - - col.r = 0.0; - col.g = 0.0; - col.b = 0.0; - - bx = (box *) tex->obj; - xvol = (extvol *) tex->obj; - - tnear= -FHUGE; - tfar= FHUGE; - - if (ry->d.x == 0.0) { - if ((ry->o.x < bx->min.x) || (ry->o.x > bx->max.x)) return col; - } - else { - tx1 = (bx->min.x - ry->o.x) / ry->d.x; - tx2 = (bx->max.x - ry->o.x) / ry->d.x; - if (tx1 > tx2) { a=tx1; tx1=tx2; tx2=a; } - if (tx1 > tnear) tnear=tx1; - if (tx2 < tfar) tfar=tx2; - } - if (tnear > tfar) return col; - if (tfar < 0.0) return col; - - if (ry->d.y == 0.0) { - if ((ry->o.y < bx->min.y) || (ry->o.y > bx->max.y)) return col; - } - else { - ty1 = (bx->min.y - ry->o.y) / ry->d.y; - ty2 = (bx->max.y - ry->o.y) / ry->d.y; - if (ty1 > ty2) { a=ty1; ty1=ty2; ty2=a; } - if (ty1 > tnear) tnear=ty1; - if (ty2 < tfar) tfar=ty2; - } - if (tnear > tfar) return col; - if (tfar < 0.0) return col; - - if (ry->d.z == 0.0) { - if ((ry->o.z < bx->min.z) || (ry->o.z > bx->max.z)) return col; - } - else { - tz1 = (bx->min.z - ry->o.z) / ry->d.z; - tz2 = (bx->max.z - ry->o.z) / ry->d.z; - if (tz1 > tz2) { a=tz1; tz1=tz2; tz2=a; } - if (tz1 > tnear) tnear=tz1; - if (tz2 < tfar) tfar=tz2; - } - if (tnear > tfar) return col; - if (tfar < 0.0) return col; - - if (tnear < 0.0) tnear=0.0; - - tdist = xvol->samples; - - tt = (xvol->opacity / tdist); - - bln.x=fabs(bx->min.x - bx->max.x); - bln.y=fabs(bx->min.y - bx->max.y); - bln.z=fabs(bx->min.z - bx->max.z); - - dt = 1.0 / tdist; - sum = 0.0; - -/* Accumulate color as the ray passes through the voxels */ - for (t=tnear; t<=tfar; t+=dt) { - if (sum < 1.0) { - pnt.x=((ry->o.x + (ry->d.x * t)) - bx->min.x) / bln.x; - pnt.y=((ry->o.y + (ry->d.y * t)) - bx->min.y) / bln.y; - pnt.z=((ry->o.z + (ry->d.z * t)) - bx->min.z) / bln.z; - - /* call external evaluator assume 0.0 -> 1.0 range.. */ - scalar = xvol->evaluator(pnt.x, pnt.y, pnt.z); - - transval = tt * scalar; - sum += transval; - - col2 = ExtVoxelColor(scalar); - - col.r += transval * col2.r * xvol->ambient; - col.g += transval * col2.g * xvol->ambient; - col.b += transval * col2.b * xvol->ambient; - - ddt = dt; - - /* Add in diffuse shaded light sources (no shadows) */ - if (xvol->diffuse > 0.0) { - - /* Calculate the Volume gradient at the voxel */ - N.x = (xvol->evaluator(pnt.x - ddt, pnt.y, pnt.z) - - xvol->evaluator(pnt.x + ddt, pnt.y, pnt.z)) * 8.0 * tt; - - N.y = (xvol->evaluator(pnt.x, pnt.y - ddt, pnt.z) - - xvol->evaluator(pnt.x, pnt.y + ddt, pnt.z)) * 8.0 * tt; - - N.z = (xvol->evaluator(pnt.x, pnt.y, pnt.z - ddt) - - xvol->evaluator(pnt.x, pnt.y, pnt.z + ddt)) * 8.0 * tt; - - /* only light surfaces with enough of a normal.. */ - if ((N.x*N.x + N.y*N.y + N.z*N.z) > 0.0) { - diffint.r = 0.0; - diffint.g = 0.0; - diffint.b = 0.0; - - /* add the contribution of each of the lights.. */ - for (i=0; ictr, (*hit), L) - VNorm(&L); - VDOT(inten, N, L) - - /* only add light if its from the front of the surface */ - /* could add back-lighting if we wanted to later.. */ - if (inten > 0.0) { - diffint.r += inten*li->tex->col.r; - diffint.g += inten*li->tex->col.g; - diffint.b += inten*li->tex->col.b; - } - } - col.r += col2.r * diffint.r * xvol->diffuse; - col.g += col2.g * diffint.g * xvol->diffuse; - col.b += col2.b * diffint.b * xvol->diffuse; - } - } - } - else { - sum=1.0; - } - } - - /* Add in transmitted ray from outside environment */ - if (sum < 1.0) { /* spawn transmission rays / refraction */ - color transcol; - - transcol = shade_transmission(ry, hit, 1.0 - sum); - - col.r += transcol.r; /* add the transmitted ray */ - col.g += transcol.g; /* to the diffuse and */ - col.b += transcol.b; /* transmission total.. */ - } - - return col; -} - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/extvol.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/extvol.h deleted file mode 100644 index 4726580b9..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/extvol.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * vol.h - Volume rendering definitions etc. - * - * - * $Id: extvol.h,v 1.2 2007-02-22 17:54:15 Exp $ - */ - -typedef struct { - unsigned int id; /* Unique Object serial number */ - void * nextobj; /* pointer to next object in list */ - object_methods * methods; /* this object's methods */ - texture * tex; /* object texture */ - vector min; - vector max; - flt ambient; - flt diffuse; - flt opacity; - int samples; - flt (* evaluator)(flt, flt, flt); -} extvol; - -extvol * newextvol(void * voidtex, vector min, vector max, - int samples, flt (* evaluator)(flt, flt, flt)); -color ext_volume_texture(vector *, texture *, ray *); diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/global.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/global.cpp deleted file mode 100644 index e1e94f19b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/global.cpp +++ /dev/null @@ -1,85 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * global.c - any/all global data items etc should be in this file - * - * $Id: global.cpp,v 1.2 2007-02-22 17:54:15 Exp $ - * - */ - -#include "types.h" -#include "machine.h" -#include "sphere.h" -#include "light.h" - -/* stuff moved from intersect.c */ -object * rootobj = NULL; /* starts out empty. */ - -point_light * lightlist[MAXLIGHTS]; -int numlights = 0; - -unsigned int numobjects = 0; /* used to assign unique object ID's */ - -/* used in util.c */ -unsigned int rt_mem_in_use = 0; - -/* used in api.c */ -int parinitted = 0; - -int graphicswindowopen = 0; - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/global.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/global.h deleted file mode 100644 index 5b9ff6054..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/global.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * global.h - any/all global data items etc should be in this file - * - * $Id: global.h,v 1.2 2007-02-22 17:54:15 Exp $ - * - */ - -/* stuff moved from intersect.c */ -extern object * rootobj; - -extern point_light * lightlist[MAXLIGHTS]; -extern int numlights; - -extern unsigned int numobjects; - -extern unsigned int rt_mem_in_use; -extern int parinitted; - -extern int graphicswindowopen; diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/grid.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/grid.cpp deleted file mode 100644 index c424c79ba..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/grid.cpp +++ /dev/null @@ -1,690 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * grid.c - spatial subdivision efficiency structures - * - * $Id: grid.cpp,v 1.2 2007-02-22 17:54:15 Exp $ - * - */ - -#include "machine.h" -#include "types.h" -#include "macros.h" -#include "vector.h" -#include "intersect.h" -#include "util.h" - -#define GRID_PRIVATE -#include "grid.h" - -#ifndef cbrt -#define cbrt(x) ((x) > 0.0 ? pow((double)(x), 1.0/3.0) : \ - ((x) < 0.0 ? -pow((double)-(x), 1.0/3.0) : 0.0)) - -#define qbrt(x) ((x) > 0.0 ? pow((double)(x), 1.0/4.0) : \ - ((x) < 0.0 ? -pow((double)-(x), 1.0/4.0) : 0.0)) - -#endif - -static object_methods grid_methods = { - (void (*)(void *, void *))(grid_intersect), - (void (*)(void *, void *, void *, void *))(NULL), - grid_bbox, - grid_free -}; - -extern bool silent_mode; - -object * newgrid(int xsize, int ysize, int zsize, vector min, vector max) { - grid * g; - - g = (grid *) rt_getmem(sizeof(grid)); - memset(g, 0, sizeof(grid)); - - g->methods = &grid_methods; - g->id = new_objectid(); - - g->xsize = xsize; - g->ysize = ysize; - g->zsize = zsize; - - g->min = min; - g->max = max; - - VSub(&g->max, &g->min, &g->voxsize); - g->voxsize.x /= (flt) g->xsize; - g->voxsize.y /= (flt) g->ysize; - g->voxsize.z /= (flt) g->zsize; - - g->cells = (objectlist **) rt_getmem(xsize*ysize*zsize*sizeof(objectlist *)); - memset(g->cells, 0, xsize*ysize*zsize * sizeof(objectlist *)); - -/* fprintf(stderr, "New grid, size: %8d %8d %8d\n", g->xsize, g->ysize, g->zsize); */ - - return (object *) g; -} - -static int grid_bbox(void * obj, vector * min, vector * max) { - grid * g = (grid *) obj; - - *min = g->min; - *max = g->max; - - return 1; -} - -static void grid_free(void * v) { - int i, numvoxels; - grid * g = (grid *) v; - - /* loop through all voxels and free the object lists */ - numvoxels = g->xsize * g->ysize * g->zsize; - for (i=0; icells[i]; - while (lcur != NULL) { - lnext = lcur->next; - free(lcur); - } - } - - /* free the grid cells */ - free(g->cells); - - /* free all objects on the grid object list */ - free_objects(g->objects); - - free(g); -} - -static void globalbound(object ** rootlist, vector * gmin, vector * gmax) { - vector min, max; - object * cur; - - if (*rootlist == NULL) /* don't bound non-existant objects */ - return; - - gmin->x = FHUGE; gmin->y = FHUGE; gmin->z = FHUGE; - gmax->x = -FHUGE; gmax->y = -FHUGE; gmax->z = -FHUGE; - - cur=*rootlist; - while (cur != NULL) { /* Go! */ - min.x = -FHUGE; min.y = -FHUGE; min.z = -FHUGE; - max.x = FHUGE; max.y = FHUGE; max.z = FHUGE; - - if (cur->methods->bbox((void *) cur, &min, &max)) { - gmin->x = MYMIN( gmin->x , min.x); - gmin->y = MYMIN( gmin->y , min.y); - gmin->z = MYMIN( gmin->z , min.z); - - gmax->x = MYMAX( gmax->x , max.x); - gmax->y = MYMAX( gmax->y , max.y); - gmax->z = MYMAX( gmax->z , max.z); - } - - cur=(object *)cur->nextobj; - } -} - - -static int cellbound(grid *g, gridindex *index, vector * cmin, vector * cmax) { - vector min, max, cellmin, cellmax; - objectlist * cur; - int numinbounds = 0; - - cur = g->cells[index->z*g->xsize*g->ysize + index->y*g->xsize + index->x]; - - if (cur == NULL) /* don't bound non-existant objects */ - return 0; - - cellmin.x = voxel2x(g, index->x); - cellmin.y = voxel2y(g, index->y); - cellmin.z = voxel2z(g, index->z); - - cellmax.x = cellmin.x + g->voxsize.x; - cellmax.y = cellmin.y + g->voxsize.y; - cellmax.z = cellmin.z + g->voxsize.z; - - cmin->x = FHUGE; cmin->y = FHUGE; cmin->z = FHUGE; - cmax->x = -FHUGE; cmax->y = -FHUGE; cmax->z = -FHUGE; - - while (cur != NULL) { /* Go! */ - min.x = -FHUGE; min.y = -FHUGE; min.z = -FHUGE; - max.x = FHUGE; max.y = FHUGE; max.z = FHUGE; - - if (cur->obj->methods->bbox((void *) cur->obj, &min, &max)) { - if ((min.x >= cellmin.x) && (max.x <= cellmax.x) && - (min.y >= cellmin.y) && (max.y <= cellmax.y) && - (min.z >= cellmin.z) && (max.z <= cellmax.z)) { - - cmin->x = MYMIN( cmin->x , min.x); - cmin->y = MYMIN( cmin->y , min.y); - cmin->z = MYMIN( cmin->z , min.z); - - cmax->x = MYMAX( cmax->x , max.x); - cmax->y = MYMAX( cmax->y , max.y); - cmax->z = MYMAX( cmax->z , max.z); - - numinbounds++; - } - } - - cur=cur->next; - } - - /* in case we get a 0.0 sized axis on the cell bounds, we'll */ - /* use the original cell bounds */ - if ((cmax->x - cmin->x) < EPSILON) { - cmax->x += EPSILON; - cmin->x -= EPSILON; - } - if ((cmax->y - cmin->y) < EPSILON) { - cmax->y += EPSILON; - cmin->y -= EPSILON; - } - if ((cmax->z - cmin->z) < EPSILON) { - cmax->z += EPSILON; - cmin->z -= EPSILON; - } - - return numinbounds; -} - -static int countobj(object * root) { - object * cur; /* counts the number of objects on a list */ - int numobj; - - numobj=0; - cur=root; - - while (cur != NULL) { - cur=(object *)cur->nextobj; - numobj++; - } - return numobj; -} - -static int countobjlist(objectlist * root) { - objectlist * cur; - int numobj; - - numobj=0; - cur = root; - - while (cur != NULL) { - cur = cur->next; - numobj++; - } - return numobj; -} - -int engrid_scene(object ** list) { - grid * g; - int numobj, numcbrt; - vector gmin, gmax; - gridindex index; - - if (*list == NULL) - return 0; - - numobj = countobj(*list); - - if ( !silent_mode ) - fprintf(stderr, "Scene contains %d bounded objects.\n", numobj); - - if (numobj > 16) { - numcbrt = (int) cbrt(4*numobj); - globalbound(list, &gmin, &gmax); - - g = (grid *) newgrid(numcbrt, numcbrt, numcbrt, gmin, gmax); - engrid_objlist(g, list); - - numobj = countobj(*list); - g->nextobj = *list; - *list = (object *) g; - - /* now create subgrids.. */ - for (index.z=0; index.zzsize; index.z++) { - for (index.y=0; index.yysize; index.y++) { - for (index.x=0; index.xxsize; index.x++) { - engrid_cell(g, &index); - } - } - } - } - - return 1; -} - - -void engrid_objlist(grid * g, object ** list) { - object * cur, * next, **prev; - - if (*list == NULL) - return; - - prev = list; - cur = *list; - - while (cur != NULL) { - next = (object *)cur->nextobj; - - if (engrid_object(g, cur)) - *prev = next; - else - prev = (object **) &cur->nextobj; - - cur = next; - } -} - -static int engrid_cell(grid * gold, gridindex *index) { - vector gmin, gmax, gsize; - flt len; - int numobj, numcbrt, xs, ys, zs; - grid * g; - objectlist **list; - objectlist * newobj; - - list = &gold->cells[index->z*gold->xsize*gold->ysize + - index->y*gold->xsize + index->x]; - - if (*list == NULL) - return 0; - - numobj = cellbound(gold, index, &gmin, &gmax); - - VSub(&gmax, &gmin, &gsize); - len = 1.0 / (MYMAX( MYMAX(gsize.x, gsize.y), gsize.z )); - gsize.x *= len; - gsize.y *= len; - gsize.z *= len; - - if (numobj > 16) { - numcbrt = (int) cbrt(2*numobj); - - xs = (int) ((flt) numcbrt * gsize.x); - if (xs < 1) xs = 1; - ys = (int) ((flt) numcbrt * gsize.y); - if (ys < 1) ys = 1; - zs = (int) ((flt) numcbrt * gsize.z); - if (zs < 1) zs = 1; - - g = (grid *) newgrid(xs, ys, zs, gmin, gmax); - engrid_objectlist(g, list); - - newobj = (objectlist *) rt_getmem(sizeof(objectlist)); - newobj->obj = (object *) g; - newobj->next = *list; - *list = newobj; - - g->nextobj = gold->objects; - gold->objects = (object *) g; - } - - return 1; -} - -static int engrid_objectlist(grid * g, objectlist ** list) { - objectlist * cur, * next, **prev; - int numsucceeded = 0; - - if (*list == NULL) - return 0; - - prev = list; - cur = *list; - - while (cur != NULL) { - next = cur->next; - - if (engrid_object(g, cur->obj)) { - *prev = next; - free(cur); - numsucceeded++; - } - else { - prev = &cur->next; - } - - cur = next; - } - - return numsucceeded; -} - - - -static int engrid_object(grid * g, object * obj) { - vector omin, omax; - gridindex low, high; - int x, y, z, zindex, yindex, voxindex; - objectlist * tmp; - - if (obj->methods->bbox(obj, &omin, &omax)) { - if (!pos2grid(g, &omin, &low) || !pos2grid(g, &omax, &high)) { - return 0; /* object is not wholly contained in the grid */ - } - } - else { - return 0; /* object is unbounded */ - } - - /* add the object to the complete list of objects in the grid */ - obj->nextobj = g->objects; - g->objects = obj; - - /* add this object to all voxels it inhabits */ - for (z=low.z; z<=high.z; z++) { - zindex = z * g->xsize * g->ysize; - for (y=low.y; y<=high.y; y++) { - yindex = y * g->xsize; - for (x=low.x; x<=high.x; x++) { - voxindex = x + yindex + zindex; - tmp = (objectlist *) rt_getmem(sizeof(objectlist)); - tmp->next = g->cells[voxindex]; - tmp->obj = obj; - g->cells[voxindex] = tmp; - } - } - } - - return 1; -} - -static int pos2grid(grid * g, vector * pos, gridindex * index) { - index->x = (int) ((pos->x - g->min.x) / g->voxsize.x); - index->y = (int) ((pos->y - g->min.y) / g->voxsize.y); - index->z = (int) ((pos->z - g->min.z) / g->voxsize.z); - - if (index->x == g->xsize) - index->x--; - if (index->y == g->ysize) - index->y--; - if (index->z == g->zsize) - index->z--; - - if (index->x < 0 || index->x > g->xsize || - index->y < 0 || index->y > g->ysize || - index->z < 0 || index->z > g->zsize) - return 0; - - if (pos->x < g->min.x || pos->x > g->max.x || - pos->y < g->min.y || pos->y > g->max.y || - pos->z < g->min.z || pos->z > g->max.z) - return 0; - - return 1; -} - - -/* the real thing */ -static void grid_intersect(grid * g, ray * ry) { - flt tnear, tfar, offset; - vector curpos, tmax, tdelta, pdeltaX, pdeltaY, pdeltaZ, nXp, nYp, nZp; - gridindex curvox, step, out; - int voxindex; - objectlist * cur; - - if (ry->flags & RT_RAY_FINISHED) - return; - - if (!grid_bounds_intersect(g, ry, &tnear, &tfar)) - return; - - if (ry->maxdist < tnear) - return; - - curpos = Raypnt(ry, tnear); - pos2grid(g, &curpos, &curvox); - offset = tnear; - - /* Setup X iterator stuff */ - if (fabs(ry->d.x) < EPSILON) { - tmax.x = FHUGE; - tdelta.x = 0.0; - step.x = 0; - out.x = 0; /* never goes out of bounds on this axis */ - } - else if (ry->d.x < 0.0) { - tmax.x = offset + ((voxel2x(g, curvox.x) - curpos.x) / ry->d.x); - tdelta.x = g->voxsize.x / - ry->d.x; - step.x = out.x = -1; - } - else { - tmax.x = offset + ((voxel2x(g, curvox.x + 1) - curpos.x) / ry->d.x); - tdelta.x = g->voxsize.x / ry->d.x; - step.x = 1; - out.x = g->xsize; - } - - /* Setup Y iterator stuff */ - if (fabs(ry->d.y) < EPSILON) { - tmax.y = FHUGE; - tdelta.y = 0.0; - step.y = 0; - out.y = 0; /* never goes out of bounds on this axis */ - } - else if (ry->d.y < 0.0) { - tmax.y = offset + ((voxel2y(g, curvox.y) - curpos.y) / ry->d.y); - tdelta.y = g->voxsize.y / - ry->d.y; - step.y = out.y = -1; - } - else { - tmax.y = offset + ((voxel2y(g, curvox.y + 1) - curpos.y) / ry->d.y); - tdelta.y = g->voxsize.y / ry->d.y; - step.y = 1; - out.y = g->ysize; - } - - /* Setup Z iterator stuff */ - if (fabs(ry->d.z) < EPSILON) { - tmax.z = FHUGE; - tdelta.z = 0.0; - step.z = 0; - out.z = 0; /* never goes out of bounds on this axis */ - } - else if (ry->d.z < 0.0) { - tmax.z = offset + ((voxel2z(g, curvox.z) - curpos.z) / ry->d.z); - tdelta.z = g->voxsize.z / - ry->d.z; - step.z = out.z = -1; - } - else { - tmax.z = offset + ((voxel2z(g, curvox.z + 1) - curpos.z) / ry->d.z); - tdelta.z = g->voxsize.z / ry->d.z; - step.z = 1; - out.z = g->zsize; - } - - pdeltaX = ry->d; - VScale(&pdeltaX, tdelta.x); - pdeltaY = ry->d; - VScale(&pdeltaY, tdelta.y); - pdeltaZ = ry->d; - VScale(&pdeltaZ, tdelta.z); - - nXp = Raypnt(ry, tmax.x); - nYp = Raypnt(ry, tmax.y); - nZp = Raypnt(ry, tmax.z); - - voxindex = curvox.z*g->xsize*g->ysize + curvox.y*g->xsize + curvox.x; - while (1) { - if (tmax.x < tmax.y && tmax.x < tmax.z) { - cur = g->cells[voxindex]; - while (cur != NULL) { - if (ry->mbox[cur->obj->id] != ry->serial) { - ry->mbox[cur->obj->id] = ry->serial; - cur->obj->methods->intersect(cur->obj, ry); - } - cur = cur->next; - } - curvox.x += step.x; - if (ry->maxdist < tmax.x || curvox.x == out.x) - break; - voxindex += step.x; - tmax.x += tdelta.x; - curpos = nXp; - nXp.x += pdeltaX.x; - nXp.y += pdeltaX.y; - nXp.z += pdeltaX.z; - } - else if (tmax.z < tmax.y) { - cur = g->cells[voxindex]; - while (cur != NULL) { - if (ry->mbox[cur->obj->id] != ry->serial) { - ry->mbox[cur->obj->id] = ry->serial; - cur->obj->methods->intersect(cur->obj, ry); - } - cur = cur->next; - } - curvox.z += step.z; - if (ry->maxdist < tmax.z || curvox.z == out.z) - break; - voxindex += step.z*g->xsize*g->ysize; - tmax.z += tdelta.z; - curpos = nZp; - nZp.x += pdeltaZ.x; - nZp.y += pdeltaZ.y; - nZp.z += pdeltaZ.z; - } - else { - cur = g->cells[voxindex]; - while (cur != NULL) { - if (ry->mbox[cur->obj->id] != ry->serial) { - ry->mbox[cur->obj->id] = ry->serial; - cur->obj->methods->intersect(cur->obj, ry); - } - cur = cur->next; - } - curvox.y += step.y; - if (ry->maxdist < tmax.y || curvox.y == out.y) - break; - voxindex += step.y*g->xsize; - tmax.y += tdelta.y; - curpos = nYp; - nYp.x += pdeltaY.x; - nYp.y += pdeltaY.y; - nYp.z += pdeltaY.z; - } - - if (ry->flags & RT_RAY_FINISHED) - break; - } -} - -static void voxel_intersect(grid * g, ray * ry, int voxindex) { - objectlist * cur; - - cur = g->cells[voxindex]; - while (cur != NULL) { - cur->obj->methods->intersect(cur->obj, ry); - cur = cur->next; - } -} - -static int grid_bounds_intersect(grid * g, ray * ry, flt *nr, flt *fr) { - flt a, tx1, tx2, ty1, ty2, tz1, tz2; - flt tnear, tfar; - - tnear= -FHUGE; - tfar= FHUGE; - - if (ry->d.x == 0.0) { - if ((ry->o.x < g->min.x) || (ry->o.x > g->max.x)) return 0; - } - else { - tx1 = (g->min.x - ry->o.x) / ry->d.x; - tx2 = (g->max.x - ry->o.x) / ry->d.x; - if (tx1 > tx2) { a=tx1; tx1=tx2; tx2=a; } - if (tx1 > tnear) tnear=tx1; - if (tx2 < tfar) tfar=tx2; - } - if (tnear > tfar) return 0; - if (tfar < 0.0) return 0; - - if (ry->d.y == 0.0) { - if ((ry->o.y < g->min.y) || (ry->o.y > g->max.y)) return 0; - } - else { - ty1 = (g->min.y - ry->o.y) / ry->d.y; - ty2 = (g->max.y - ry->o.y) / ry->d.y; - if (ty1 > ty2) { a=ty1; ty1=ty2; ty2=a; } - if (ty1 > tnear) tnear=ty1; - if (ty2 < tfar) tfar=ty2; - } - if (tnear > tfar) return 0; - if (tfar < 0.0) return 0; - - if (ry->d.z == 0.0) { - if ((ry->o.z < g->min.z) || (ry->o.z > g->max.z)) return 0; - } - else { - tz1 = (g->min.z - ry->o.z) / ry->d.z; - tz2 = (g->max.z - ry->o.z) / ry->d.z; - if (tz1 > tz2) { a=tz1; tz1=tz2; tz2=a; } - if (tz1 > tnear) tnear=tz1; - if (tz2 < tfar) tfar=tz2; - } - if (tnear > tfar) return 0; - if (tfar < 0.0) return 0; - - *nr = tnear; - *fr = tfar; - return 1; -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/grid.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/grid.h deleted file mode 100644 index 3866cbc49..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/grid.h +++ /dev/null @@ -1,128 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * grid.h - spatial subdivision efficiency structures - * - * $Id: grid.h,v 1.2 2007-02-22 17:54:15 Exp $ - * - */ - -int engrid_scene(object ** list); -object * newgrid(int xsize, int ysize, int zsize, vector min, vector max); - -#ifdef GRID_PRIVATE - -typedef struct objectlist { - struct objectlist * next; /* next link in the list */ - object * obj; /* the actual object */ -} objectlist; - -typedef struct { - unsigned int id; /* Unique Object serial number */ - void * nextobj; /* pointer to next object in list */ - object_methods * methods; /* this object's methods */ - texture * tex; /* object texture */ - int xsize; /* number of cells along the X direction */ - int ysize; /* number of cells along the Y direction */ - int zsize; /* number of cells along the Z direction */ - vector min; /* the minimum coords for the box containing the grid */ - vector max; /* the maximum coords for the box containing the grid */ - vector voxsize; /* the size of a grid cell/voxel */ - object * objects; /* all objects contained in the grid */ - objectlist ** cells; /* the grid cells themselves */ -} grid; - -typedef struct { - int x; /* Voxel X address */ - int y; /* Voxel Y address */ - int z; /* Voxel Z address */ -} gridindex; - -/* - * Convert from voxel number along X/Y/Z to corresponding coordinate. - */ -#define voxel2x(g,X) ((X) * (g->voxsize.x) + (g->min.x)) -#define voxel2y(g,Y) ((Y) * (g->voxsize.y) + (g->min.y)) -#define voxel2z(g,Z) ((Z) * (g->voxsize.z) + (g->min.z)) - -/* - * And vice-versa. - */ -#define x2voxel(g,x) (((x) - g->min.x) / g->voxsize.x) -#define y2voxel(g,y) (((y) - g->min.y) / g->voxsize.y) -#define z2voxel(g,z) (((z) - g->min.z) / g->voxsize.z) - - -static int grid_bbox(void * obj, vector * min, vector * max); -static void grid_free(void * v); - -static int cellbound(grid *g, gridindex *index, vector * cmin, vector * cmax); - -void engrid_objlist(grid * g, object ** list); -static int engrid_object(grid * g, object * obj); - -static int engrid_objectlist(grid * g, objectlist ** list); -static int engrid_cell(grid *, gridindex *); - -static int pos2grid(grid * g, vector * pos, gridindex * index); -static void grid_intersect(grid *, ray *); -static void voxel_intersect(grid * g, ray * ry, int voxaddr); -static int grid_bounds_intersect(grid * g, ray * ry, flt *near, flt *far); - - -#endif diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/imageio.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/imageio.cpp deleted file mode 100644 index 042ab4697..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/imageio.cpp +++ /dev/null @@ -1,157 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * imageio.c - This file deals with reading/writing image files - * - * $Id: imageio.cpp,v 1.2 2007-02-22 17:54:15 Exp $ - */ - -/* For our puposes, we're interested only in the 3 byte per pixel 24 bit - * truecolor sort of file.. - */ - -#include -#include "machine.h" -#include "types.h" -#include "util.h" -#include "imageio.h" -#include "ppm.h" /* PPM files */ -#include "tgafile.h" /* Truevision Targa files */ -#include "jpeg.h" /* JPEG files */ - -static -int fakeimage(char * name, int * xres, int * yres, unsigned char ** imgdata) { - int i, imgsize; - - fprintf(stderr, "Error loading image %s. Faking it.\n", name); - - *xres = 2; - *yres = 2; - imgsize = 3 * (*xres) * (*yres); - *imgdata = (unsigned char *)rt_getmem(imgsize); - for (i=0; iname; - - if (strstr(name, ".ppm")) { - rc = readppm(name, &xres, &yres, &imgdata); - } - else if (strstr(name, ".tga")) { - rc = readtga(name, &xres, &yres, &imgdata); - } - else if (strstr(name, ".jpg")) { - rc = readjpeg(name, &xres, &yres, &imgdata); - } - else if (strstr(name, ".gif")) { - rc = IMAGEUNSUP; - } - else if (strstr(name, ".png")) { - rc = IMAGEUNSUP; - } - else if (strstr(name, ".tiff")) { - rc = IMAGEUNSUP; - } - else if (strstr(name, ".rgb")) { - rc = IMAGEUNSUP; - } - else if (strstr(name, ".xpm")) { - rc = IMAGEUNSUP; - } - else { - rc = readppm(name, &xres, &yres, &imgdata); - } - - switch (rc) { - case IMAGEREADERR: - fprintf(stderr, "Short read encountered while loading image %s\n", name); - rc = IMAGENOERR; /* remap to non-fatal error */ - break; - - case IMAGEUNSUP: - fprintf(stderr, "Cannot read unsupported image format for image %s\n", name); - break; - } - - /* If the image load failed, create a tiny white colored image to fake it */ - /* this allows a scene to render even when a file can't be loaded */ - if (rc != IMAGENOERR) { - rc = fakeimage(name, &xres, &yres, &imgdata); - } - - /* If we succeeded in loading the image, return it. */ - if (rc == IMAGENOERR) { - img->xres = xres; - img->yres = yres; - img->bpp = 3; - img->data = imgdata; - } - - return rc; -} - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/imageio.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/imageio.h deleted file mode 100644 index 0f3e4243e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/imageio.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * imageio.h - This file deals with reading/writing image files - * - * $Id: imageio.h,v 1.2 2007-02-22 17:54:15 Exp $ - */ - -/* For our puposes, we're interested only in the 3 byte per pixel 24 bit - truecolor sort of file.. */ - -#define IMAGENOERR 0 /* no error */ -#define IMAGEBADFILE 1 /* can't find or can't open the file */ -#define IMAGEUNSUP 2 /* the image file is an unsupported format */ -#define IMAGEALLOCERR 3 /* not enough remaining memory to load this image */ -#define IMAGEREADERR 4 /* failed read, short reads etc */ - -int readimage(rawimage *); diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/imap.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/imap.cpp deleted file mode 100644 index 4df0e62ee..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/imap.cpp +++ /dev/null @@ -1,177 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * imap.c - This file contains code for doing image map type things. - * - * $Id: imap.cpp,v 1.2 2007-02-22 17:54:15 Exp $ - */ - -#include "machine.h" -#include "types.h" -#include "imap.h" -#include "util.h" -#include "imageio.h" - -rawimage * imagelist[MAXIMGS]; -int numimages; - -void ResetImages(void) { - int i; - numimages=0; - for (i=0; iloaded) { - readimage(image); - image->loaded=1; - } -} - -color ImageMap(rawimage * image, flt u, flt v) { - color col, colx, colx2; - flt x,y, px, py; - int x1, x2, y1, y2; - unsigned char * ptr; - unsigned char * ptr2; - - if (!image->loaded) { - LoadImage(image); - image->loaded=1; - } - - if ((u <= 1.0) && (u >=0.0) && (v <= 1.0) && (v >= 0.0)) { - x=(image->xres - 1.0) * u; /* floating point X location */ - y=(image->yres - 1.0) * v; /* floating point Y location */ - - px = x - ((int) x); - py = y - ((int) y); - - x1 = (int) x; - x2 = x1 + 1; - - y1 = (int) y; - y2 = y1 + 1; - - ptr = image->data + ((image->xres * y1) + x1) * 3; - ptr2 = image->data + ((image->xres * y1) + x2) * 3; - - colx.r = (flt) ((flt)ptr[0] + px*((flt)ptr2[0] - (flt) ptr[0])) / 255.0; - colx.g = (flt) ((flt)ptr[1] + px*((flt)ptr2[1] - (flt) ptr[1])) / 255.0; - colx.b = (flt) ((flt)ptr[2] + px*((flt)ptr2[2] - (flt) ptr[2])) / 255.0; - - ptr = image->data + ((image->xres * y2) + x1) * 3; - ptr2 = image->data + ((image->xres * y2) + x2) * 3; - - colx2.r = ((flt)ptr[0] + px*((flt)ptr2[0] - (flt)ptr[0])) / 255.0; - colx2.g = ((flt)ptr[1] + px*((flt)ptr2[1] - (flt)ptr[1])) / 255.0; - colx2.b = ((flt)ptr[2] + px*((flt)ptr2[2] - (flt)ptr[2])) / 255.0; - - col.r = colx.r + py*(colx2.r - colx.r); - col.g = colx.g + py*(colx2.g - colx.g); - col.b = colx.b + py*(colx2.b - colx.b); - - } - else { - col.r=0.0; - col.g=0.0; - col.b=0.0; - } - return col; -} - -rawimage * AllocateImage(char * filename) { - rawimage * newimage = NULL; - int i, len, intable; - - intable=0; - if (numimages!=0) { - for (i=0; iname)) { - newimage=imagelist[i]; - intable=1; - } - } - } - - if (!intable) { - newimage=(rawimage *)rt_getmem(sizeof(rawimage)); - newimage->loaded=0; - newimage->xres=0; - newimage->yres=0; - newimage->bpp=0; - newimage->data=NULL; - len=strlen(filename); - if (len > 80) rtbomb("Filename too long in image map!!"); - strcpy(newimage->name, filename); - - imagelist[numimages]=newimage; /* add new one to the table */ - numimages++; /* increment the number of images */ - } - - return newimage; -} - -void DeallocateImage(rawimage * image) { - image->loaded=0; - rt_freemem(image->data); -} - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/imap.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/imap.h deleted file mode 100644 index c2bfd88a1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/imap.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * imap.h - This file contains defines etc for doing image map type things. - * - * $Id: imap.h,v 1.2 2007-02-22 17:54:15 Exp $ - */ - -void ResetImage(void); -void LoadImage(rawimage *); -color ImageMap(rawimage *, flt, flt); -rawimage * AllocateImage(char *); -void DeallocateImage(rawimage *); -void ResetImages(void); diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/intersect.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/intersect.cpp deleted file mode 100644 index cfb39f7ae..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/intersect.cpp +++ /dev/null @@ -1,187 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * intersect.c - This file contains code for CSG and intersection routines. - * - * $Id: intersect.cpp,v 1.2 2007-02-22 17:54:15 Exp $ - */ - -#include "machine.h" -#include "types.h" -#include "intersect.h" -#include "light.h" -#include "util.h" -#include "global.h" - -unsigned int new_objectid(void) { - return numobjects++; /* global used to generate unique object ID's */ -} - -unsigned int max_objectid(void) { - return numobjects; -} - -void add_object(object * obj) { - object * objtemp; - - if (obj == NULL) - return; - - obj->id = new_objectid(); - - objtemp = rootobj; - rootobj = obj; - obj->nextobj = objtemp; -} - -void free_objects(object * start) { - object * cur; - object * cur2; - - cur=start; - while (cur->nextobj != NULL) { - cur2=(object *)cur->nextobj; - cur->methods->free(cur); - cur=cur2; - } - free(cur); - -} - -void reset_object(void) { - if (rootobj != NULL) - free_objects(rootobj); - - rootobj = NULL; - numobjects = 0; /* set number of objects back to 0 */ -} - -void intersect_objects(ray * intray) { - object * cur; - object temp; - - temp.nextobj = rootobj; /* setup the initial object pointers.. */ - cur = &temp; /* ready, set */ - - while ((cur=(object *)cur->nextobj) != NULL) - cur->methods->intersect(cur, intray); -} - -void reset_intersection(intersectstruct * intstruct) { - intstruct->num = 0; - intstruct->list[0].t = FHUGE; - intstruct->list[0].obj = NULL; - intstruct->list[1].t = FHUGE; - intstruct->list[1].obj = NULL; -} - -void add_intersection(flt t, object * obj, ray * ry) { - intersectstruct * intstruct = ry->intstruct; - - if (t > EPSILON) { - - /* if we hit something before maxdist update maxdist */ - if (t < ry->maxdist) { - ry->maxdist = t; - - /* if we hit *anything* before maxdist, and we're firing a */ - /* shadow ray, then we are finished ray tracing the shadow */ - if (ry->flags & RT_RAY_SHADOW) - ry->flags |= RT_RAY_FINISHED; - } - - intstruct->num++; - intstruct->list[intstruct->num].obj = obj; - intstruct->list[intstruct->num].t = t; - } -} - - -int closest_intersection(flt * t, object ** obj, intersectstruct * intstruct) { - int i; - *t=FHUGE; - - for (i=1; i<=intstruct->num; i++) { - if (intstruct->list[i].t < *t) { - *t=intstruct->list[i].t; - *obj=intstruct->list[i].obj; - } - } - - return intstruct->num; -} - -int shadow_intersection(intersectstruct * intstruct, flt maxdist) { - int i; - - if (intstruct->num > 0) { - for (i=1; i<=intstruct->num; i++) { - if ((intstruct->list[i].t < maxdist) && - (intstruct->list[i].obj->tex->shadowcast == 1)) { - return 1; - } - } - } - - return 0; -} - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/intersect.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/intersect.h deleted file mode 100644 index 85c7b7c3f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/intersect.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * intersect.h - This file contains the declarations and defines for the - * functions that manage intersection, bounding and CSG.. - * - * $Id: intersect.h,v 1.2 2007-02-22 17:54:15 Exp $ - */ - -unsigned int new_objectid(void); -unsigned int max_objectid(void); -void add_object(object *); -void reset_object(void); -void free_objects(object *); -void intersect_objects(ray *); -void reset_intersection(intersectstruct *); -void add_intersection(flt, object *, ray *); -int closest_intersection(flt *, object **, intersectstruct *); -int next_intersection(object **, object *, intersectstruct *); -int shadow_intersection(intersectstruct * intstruct, flt maxdist); diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/jpeg.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/jpeg.cpp deleted file mode 100644 index afe38334f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/jpeg.cpp +++ /dev/null @@ -1,139 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * jpeg.c - This file deals with JPEG format image files (reading/writing) - * - * $Id: jpeg.cpp,v 1.2 2007-02-22 17:54:15 Exp $ - */ - -/* - * This code requires support from the Independent JPEG Group's libjpeg. - * For our puposes, we're interested only in the 3 byte per pixel 24 bit - * RGB output. Probably won't implement any decent checking at this point. - */ - -#include -#include "machine.h" -#include "types.h" -#include "util.h" -#include "imageio.h" /* error codes etc */ -#include "jpeg.h" /* the protos for this file */ - -#if !defined(USEJPEG) - -int readjpeg(char * name, int * xres, int * yres, unsigned char **imgdata) { - return IMAGEUNSUP; -} - -#else - -#include "jpeglib.h" /* the IJG jpeg library headers */ - -int readjpeg(char * name, int * xres, int * yres, unsigned char **imgdata) { - FILE * ifp; - struct jpeg_decompress_struct cinfo; /* JPEG decompression struct */ - struct jpeg_error_mgr jerr; /* JPEG Error handler */ - JSAMPROW row_pointer[1]; /* output row buffer */ - int row_stride; /* physical row width in output buf */ - - /* open input file before doing any JPEG decompression setup */ - if ((ifp = fopen(name, "rb")) == NULL) - return IMAGEBADFILE; /* Could not open image, return error */ - - /* - * Note: The Independent JPEG Group's library does not have a way - * of returning errors without the use of setjmp/longjmp. - * This is a problem in multi-threaded environment, since setjmp - * and longjmp are declared thread-unsafe by many vendors currently. - * For now, JPEG decompression errors will result in the "default" - * error handling provided by the JPEG library, which is an error - * message and a fatal call to exit(). I'll have to work around this - * or find a reasonably thread-safe way of doing setjmp/longjmp.. - */ - - cinfo.err = jpeg_std_error(&jerr); /* Set JPEG error handler to default */ - - jpeg_create_decompress(&cinfo); /* Create decompression context */ - jpeg_stdio_src(&cinfo, ifp); /* Set input mechanism to stdio type */ - jpeg_read_header(&cinfo, TRUE); /* Read the JPEG header for info */ - jpeg_start_decompress(&cinfo); /* Prepare for actual decompression */ - - *xres = cinfo.output_width; /* set returned image width */ - *yres = cinfo.output_height; /* set returned image height */ - - /* Calculate the size of a row in the image */ - row_stride = cinfo.output_width * cinfo.output_components; - - /* Allocate the image buffer which will be returned to the ray tracer */ - *imgdata = (unsigned char *) malloc(row_stride * cinfo.output_height); - - /* decompress the JPEG, one scanline at a time into the buffer */ - while (cinfo.output_scanline < cinfo.output_height) { - row_pointer[0] = &((*imgdata)[(cinfo.output_scanline)*row_stride]); - jpeg_read_scanlines(&cinfo, row_pointer, 1); - } - - jpeg_finish_decompress(&cinfo); /* Tell the JPEG library to cleanup */ - jpeg_destroy_decompress(&cinfo); /* Destroy JPEG decompression context */ - - fclose(ifp); /* Close the input file */ - - return IMAGENOERR; /* No fatal errors */ -} - -#endif diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/jpeg.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/jpeg.h deleted file mode 100644 index e260ab75e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/jpeg.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * jpeg.h - This file deals with JPEG format image files (reading/writing) - * - * $Id: jpeg.h,v 1.2 2007-02-22 17:54:15 Exp $ - */ - -int readjpeg(char * name, int * xres, int * yres, unsigned char **imgdata); diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/light.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/light.cpp deleted file mode 100644 index 11ed339a1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/light.cpp +++ /dev/null @@ -1,138 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * light.c - This file contains declarations and defines for light sources. - * - * $Id: light.cpp,v 1.2 2007-02-22 17:54:15 Exp $ - */ - -#include "machine.h" -#include "types.h" -#include "macros.h" -#include "vector.h" -#include "intersect.h" -#include "util.h" - -#define LIGHT_PRIVATE -#include "light.h" - -static object_methods light_methods = { - (void (*)(void *, void *))(light_intersect), - (void (*)(void *, void *, void *, void *))(light_normal), - light_bbox, - free -}; - -point_light * newlight(void * tex, vector ctr, flt rad) { - point_light * l; - - l=(point_light *) rt_getmem(sizeof(point_light)); - memset(l, 0, sizeof(point_light)); - l->methods = &light_methods; - - l->tex=(texture *)tex; - l->ctr=ctr; - l->rad=rad; - - return l; -} - -static int light_bbox(void * obj, vector * min, vector * max) { - return 0; /* lights are unbounded currently */ -} - -static void light_intersect(point_light * l, ray * ry) { - flt b, disc, t1, t2, temp; - vector V; - - /* Lights do not cast shadows.. */ - if (ry->flags & RT_RAY_SHADOW) - return; - - VSUB(l->ctr, ry->o, V); - VDOT(b, V, ry->d); - VDOT(temp, V, V); - - disc=b*b + l->rad*l->rad - temp; - - if (disc<=0.0) return; - disc=sqrt(disc); - - t2=b+disc; - if (t2 <= SPEPSILON) - return; - add_intersection(t2, (object *) l, ry); - - t1=b-disc; - if (t1 > SPEPSILON) - add_intersection(t1, (object *) l, ry); -} - -static void light_normal(point_light * l, vector * pnt, ray * incident, vector * N) { - VSub((vector *) pnt, &(l->ctr), N); - - VNorm(N); - - if (VDot(N, &(incident->d)) > 0.0) { - N->x=-N->x; - N->y=-N->y; - N->z=-N->z; - } -} - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/light.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/light.h deleted file mode 100644 index 75db06f55..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/light.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * light.h - this file includes declarations and defines for light sources. - * - * $Id: light.h,v 1.2 2007-02-22 17:54:15 Exp $ - */ - -typedef struct { - unsigned int id; /* Unique Object serial number */ - void * nextobj; /* pointer to next object in list */ - object_methods * methods; /* this object's methods */ - texture * tex; /* object texture */ - vector ctr; - flt rad; -} point_light; - -point_light * newlight(void *, vector, flt); - -#ifdef LIGHT_PRIVATE -static int light_bbox(void * obj, vector * min, vector * max); -static void light_intersect(point_light *, ray *); -static void light_normal(point_light *, vector *, ray *, vector *); -#endif diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/machine.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/machine.h deleted file mode 100644 index cf2db1262..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/machine.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * machine.h - This is the machine specific include file - * - * $Id: machine.h,v 1.2 2007-02-22 17:54:15 Exp $ - */ - -#include -#include -#include -#include -#include -#include -#include - -using namespace std; - -#define STDTIME diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/macros.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/macros.h deleted file mode 100644 index 18ccbfb7d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/macros.h +++ /dev/null @@ -1,87 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * macros.h - This file contains macro versions of functions that would be best - * used as inlined code rather than function calls. - * - * $Id: macros.h,v 1.2 2007-02-22 17:54:15 Exp $ - */ - -#define MYMAX(a , b) ((a) > (b) ? (a) : (b)) -#define MYMIN(a , b) ((a) < (b) ? (a) : (b)) - -#define VDOT(return, a, b) \ - return=(a.x * b.x + a.y * b.y + a.z * b.z); \ - -#define RAYPNT(c, a, b) \ -c.x = a.o.x + ( a.d.x * b ); \ -c.y = a.o.y + ( a.d.y * b ); \ -c.z = a.o.z + ( a.d.z * b ); \ - - -#define VSUB(a, b, c) \ -c.x = (a.x - b.x); \ -c.y = (a.y - b.y); \ -c.z = (a.z - b.z); \ - - -#define VCROSS(a, b, c) \ - c->x = (a->y * b->z) - (a->z * b->y); \ - c->y = (a->z * b->x) - (a->x * b->z); \ - c->z = (a->x * b->y) - (a->y * b->x); \ - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/main.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/main.cpp deleted file mode 100644 index abd87d292..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/main.cpp +++ /dev/null @@ -1,257 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -#include -#include -#include - -#define VIDEO_WINMAIN_ARGS -#include "types.h" -#include "api.h" /* The ray tracing library API */ -#include "parse.h" /* Support for my own file format */ -#include "ui.h" -#include "util.h" -#include "tachyon_video.h" -#include "../../../common/utility/utility.h" - -SceneHandle global_scene; -int global_xsize; /* size of graphic image rendered in window (from hres, vres) */ -int global_ysize; -int global_xwinsize; /* size of window (may be larger than above) */ -int global_ywinsize; -char *global_window_title; -bool global_usegraphics; - -bool silent_mode = false; /* silent mode */ - -class tachyon_video *video = 0; - -typedef struct { - int foundfilename; /* was a model file name found in the args? */ - char filename[1024]; /* model file to render */ - int useoutfilename; /* command line override of output filename */ - char outfilename[1024]; /* name of output image file */ - int verbosemode; /* verbose flags */ - int antialiasing; /* antialiasing setting */ - int displaymode; /* display mode */ - int boundmode; /* bounding mode */ - int boundthresh; /* bounding threshold */ - int usecamfile; /* use camera file */ - char camfilename[1024]; /* camera filename */ -} argoptions; - -static char *window_title_string (int argc, const char **argv) -{ - int i; - char *name; - - name = (char *) malloc (8192); - char *title = getenv ("TITLE"); - if( title ) strcpy( name, title ); - else { - if(strrchr(argv[0], '\\')) strcpy (name, strrchr(argv[0], '\\')+1); - else if(strrchr(argv[0], '/')) strcpy (name, strrchr(argv[0], '/')+1); - else strcpy (name, *argv[0]?argv[0]:"Tachyon"); - } - for (i = 1; i < argc; i++) { - strcat (name, " "); - strcat (name, argv[i]); - } -#ifdef _DEBUG - strcat (name, " (DEBUG BUILD)"); -#endif - return name; -} - -void initoptions(argoptions * opt) { - memset(opt, 0, sizeof(argoptions)); - opt->foundfilename = -1; - opt->useoutfilename = -1; - opt->verbosemode = -1; - opt->antialiasing = -1; - opt->displaymode = -1; - opt->boundmode = -1; - opt->boundthresh = -1; - opt->usecamfile = -1; -} - -int useoptions(argoptions * opt, SceneHandle scene) { - if (opt->useoutfilename == 1) { - rt_outputfile(scene, opt->outfilename); - } - - if (opt->verbosemode == 1) { - rt_verbose(scene, 1); - } - - if (opt->antialiasing != -1) { - /* need new api code for this */ - } - - if (opt->displaymode != -1) { - rt_displaymode(scene, opt->displaymode); - } - - if (opt->boundmode != -1) { - rt_boundmode(scene, opt->boundmode); - } - - if (opt->boundthresh != -1) { - rt_boundthresh(scene, opt->boundthresh); - } - - return 0; -} - -argoptions ParseCommandLine(int argc, const char *argv[]) { - argoptions opt; - - initoptions(&opt); - - bool nobounding = false; - bool nodisp = false; - - string filename; - - utility::parse_cli_arguments(argc,argv, - utility::cli_argument_pack() - .positional_arg(filename,"dataset", "Model file") - .positional_arg(opt.boundthresh,"boundthresh","bounding threshold value") - .arg(nodisp,"no-display-updating","disable run-time display updating") - .arg(nobounding,"no-bounding","disable bounding technique") - .arg(silent_mode,"silent","no output except elapsed time") - ); - - strcpy(opt.filename, filename.c_str()); - - opt.displaymode = nodisp ? RT_DISPLAY_DISABLED : RT_DISPLAY_ENABLED; - opt.boundmode = nobounding ? RT_BOUNDING_DISABLED : RT_BOUNDING_ENABLED; - - return opt; -} - -int CreateScene(argoptions &opt) { - char *filename; - - global_scene = rt_newscene(); - rt_initialize(); - - /* process command line overrides */ - useoptions(&opt, global_scene); - -#ifdef DEFAULT_MODELFILE -#if _WIN32||_WIN64 -#define _GLUE_FILENAME(x) "..\\dat\\" #x -#else -#define _GLUE_FILENAME(x) #x -#endif -#define GLUE_FILENAME(x) _GLUE_FILENAME(x) - if(opt.foundfilename == -1) - filename = GLUE_FILENAME(DEFAULT_MODELFILE); - else -#endif//DEFAULT_MODELFILE - filename = opt.filename; - - if ( readmodel(filename, global_scene) != 0 ) { - fprintf(stderr, "Parser returned a non-zero error code reading %s\n", filename); - fprintf(stderr, "Aborting Render...\n"); - rt_finalize(); - return -1; - } - - // need these early for create_graphics_window() so grab these here... - scenedef *scene = (scenedef *) global_scene; - global_xsize = scene->hres; - global_ysize = scene->vres; - global_xwinsize = global_xsize; - global_ywinsize = global_ysize; // add some here to leave extra blank space on bottom for status etc. - - return 0; -} - -int main (int argc, char *argv[]) { - try { - timer mainStartTime = gettimer(); - - global_window_title = window_title_string (argc, (const char**)argv); - - argoptions opt = ParseCommandLine(argc, (const char**)argv); - - if ( CreateScene(opt) != 0 ) - return -1; - - tachyon_video tachyon; - tachyon.threaded = true; - tachyon.init_console(); - - tachyon.title = global_window_title; - // always using window even if(!global_usegraphics) - global_usegraphics = - tachyon.init_window(global_xwinsize, global_ywinsize); - if(!tachyon.running) - return -1; - - video = &tachyon; - tachyon.main_loop(); - - utility::report_elapsed_time(timertime(mainStartTime, gettimer())); - return 0; - } catch ( std::exception& e ) { - std::cerr<<"error occurred. error text is :\"" <x = FHUGE; gmin->y = FHUGE; gmin->z = FHUGE; - gmax->x = -FHUGE; gmax->y = -FHUGE; gmax->z = -FHUGE; - - cur=*rootlist; - while (cur != NULL) { /* Go! */ - min.x = -FHUGE; min.y = -FHUGE; min.z = -FHUGE; - max.x = FHUGE; max.y = FHUGE; max.z = FHUGE; - - cur->methods->bbox((void *) cur, &min, &max); - - gmin->x = MYMIN( gmin->x , min.x); - gmin->y = MYMIN( gmin->y , min.y); - gmin->z = MYMIN( gmin->z , min.z); - - gmax->x = MYMAX( gmax->x , max.x); - gmax->y = MYMAX( gmax->y , max.y); - gmax->z = MYMAX( gmax->z , max.z); - - cur=(object *)cur->nextobj; - } -} - -static int objinside(object * obj, vector * min, vector * max) { - vector omin, omax; - - if (obj == NULL) /* non-existant object, shouldn't get here */ - return 0; - - if (obj->methods->bbox((void *) obj, &omin, &omax)) { - if ((min->x <= omin.x) && (min->y <= omin.y) && (min->z <= omin.z) && - (max->x >= omax.x) && (max->y >= omax.y) && (max->z >= omax.z)) { - return 1; - } - } - return 0; -} - -static int countobj(object * root) { - object * cur; /* counts the number of objects on a list */ - int numobj; - - numobj=0; - cur=root; - - while (cur != NULL) { - cur=(object *)cur->nextobj; - numobj++; - } - return numobj; -} - -static void movenextobj(object * thisobj, object ** root) { - object * cur, * tmp; - - /* move the object after thisobj to the front of the object list */ - /* headed by root */ - if (thisobj != NULL) { - if (thisobj->nextobj != NULL) { - cur=(object *)thisobj->nextobj; /* the object to be moved */ - thisobj->nextobj = cur->nextobj; /* link around the moved obj */ - tmp=*root; /* store the root node */ - cur->nextobj=tmp; /* attach root to cur */ - *root=cur; /* make cur, the new root */ - } - } -} - -static void octreespace(object ** rootlist, int maxoctnodes) { - object * cur; - vector gmin, gmax, gctr; - vector cmin1, cmin2, cmin3, cmin4, cmin5, cmin6, cmin7, cmin8; - vector cmax1, cmax2, cmax3, cmax4, cmax5, cmax6, cmax7, cmax8; - bndbox * box1, * box2, * box3, * box4; - bndbox * box5, * box6, * box7, * box8; - int skipobj; - - if (*rootlist == NULL) /* don't subdivide non-existant data */ - return; - - skipobj=0; - globalbound(rootlist, &gmin, &gmax); /* find global min and max */ - - gctr.x = ((gmax.x - gmin.x) / 2.0) + gmin.x; - gctr.y = ((gmax.y - gmin.y) / 2.0) + gmin.y; - gctr.z = ((gmax.z - gmin.z) / 2.0) + gmin.z; - - cmin1=gmin; - cmax1=gctr; - box1 = newbndbox(cmin1, cmax1); - - cmin2=gmin; - cmin2.x=gctr.x; - cmax2=gmax; - cmax2.y=gctr.y; - cmax2.z=gctr.z; - box2 = newbndbox(cmin2, cmax2); - - cmin3=gmin; - cmin3.y=gctr.y; - cmax3=gmax; - cmax3.x=gctr.x; - cmax3.z=gctr.z; - box3 = newbndbox(cmin3, cmax3); - - cmin4=gmin; - cmin4.x=gctr.x; - cmin4.y=gctr.y; - cmax4=gmax; - cmax4.z=gctr.z; - box4 = newbndbox(cmin4, cmax4); - - cmin5=gmin; - cmin5.z=gctr.z; - cmax5=gctr; - cmax5.z=gmax.z; - box5 = newbndbox(cmin5, cmax5); - - cmin6=gctr; - cmin6.y=gmin.y; - cmax6=gmax; - cmax6.y=gctr.y; - box6 = newbndbox(cmin6, cmax6); - - cmin7=gctr; - cmin7.x=gmin.x; - cmax7=gctr; - cmax7.y=gmax.y; - cmax7.z=gmax.z; - box7 = newbndbox(cmin7, cmax7); - - cmin8=gctr; - cmax8=gmax; - box8 = newbndbox(cmin8, cmax8); - - cur = *rootlist; - while (cur != NULL) { - if (objinside((object *)cur->nextobj, &cmin1, &cmax1)) { - movenextobj(cur, &box1->objlist); - } - else if (objinside((object *)cur->nextobj, &cmin2, &cmax2)) { - movenextobj(cur, &box2->objlist); - } - else if (objinside((object *)cur->nextobj, &cmin3, &cmax3)) { - movenextobj(cur, &box3->objlist); - } - else if (objinside((object *)cur->nextobj, &cmin4, &cmax4)) { - movenextobj(cur, &box4->objlist); - } - else if (objinside((object *)cur->nextobj, &cmin5, &cmax5)) { - movenextobj(cur, &box5->objlist); - } - else if (objinside((object *)cur->nextobj, &cmin6, &cmax6)) { - movenextobj(cur, &box6->objlist); - } - else if (objinside((object *)cur->nextobj, &cmin7, &cmax7)) { - movenextobj(cur, &box7->objlist); - } - else if (objinside((object *)cur->nextobj, &cmin8, &cmax8)) { - movenextobj(cur, &box8->objlist); - } - else { - skipobj++; - cur=(object *)cur->nextobj; - } - } - -/* new scope, for redefinition of cur, and old */ - { bndbox * cur, * old; - old=box1; - cur=box2; - if (countobj(cur->objlist) > 0) { - old->nextobj=cur; - globalbound(&cur->objlist, &cur->min, &cur->max); - old=cur; - } - cur=box3; - if (countobj(cur->objlist) > 0) { - old->nextobj=cur; - globalbound(&cur->objlist, &cur->min, &cur->max); - old=cur; - } - cur=box4; - if (countobj(cur->objlist) > 0) { - old->nextobj=cur; - globalbound(&cur->objlist, &cur->min, &cur->max); - old=cur; - } - cur=box5; - if (countobj(cur->objlist) > 0) { - old->nextobj=cur; - globalbound(&cur->objlist, &cur->min, &cur->max); - old=cur; - } - cur=box6; - if (countobj(cur->objlist) > 0) { - old->nextobj=cur; - globalbound(&cur->objlist, &cur->min, &cur->max); - old=cur; - } - cur=box7; - if (countobj(cur->objlist) > 0) { - old->nextobj=cur; - globalbound(&cur->objlist, &cur->min, &cur->max); - old=cur; - } - cur=box8; - if (countobj(cur->objlist) > 0) { - old->nextobj=cur; - globalbound(&cur->objlist, &cur->min, &cur->max); - old=cur; - } - - old->nextobj=*rootlist; - - if (countobj(box1->objlist) > 0) { - globalbound(&box1->objlist, &box1->min, &box1->max); - *rootlist=(object *) box1; - } - else { - *rootlist=(object *) box1->nextobj; - } - - } /**** end of special cur and old scope */ - - if (countobj(box1->objlist) > maxoctnodes) { - octreespace(&box1->objlist, maxoctnodes); - } - if (countobj(box2->objlist) > maxoctnodes) { - octreespace(&box2->objlist, maxoctnodes); - } - if (countobj(box3->objlist) > maxoctnodes) { - octreespace(&box3->objlist, maxoctnodes); - } - if (countobj(box4->objlist) > maxoctnodes) { - octreespace(&box4->objlist, maxoctnodes); - } - if (countobj(box5->objlist) > maxoctnodes) { - octreespace(&box5->objlist, maxoctnodes); - } - if (countobj(box6->objlist) > maxoctnodes) { - octreespace(&box6->objlist, maxoctnodes); - } - if (countobj(box7->objlist) > maxoctnodes) { - octreespace(&box7->objlist, maxoctnodes); - } - if (countobj(box8->objlist) > maxoctnodes) { - octreespace(&box8->objlist, maxoctnodes); - } -} - -void dividespace(int maxoctnodes, object **toplist) { - bndbox * gbox; - vector gmin, gmax; - - if (countobj(*toplist) > maxoctnodes) { - globalbound(toplist, &gmin, &gmax); - - octreespace(toplist, maxoctnodes); - - gbox = newbndbox(gmin, gmax); - gbox->objlist = NULL; - gbox->tex = NULL; - gbox->nextobj=NULL; - gbox->objlist=*toplist; - *toplist=(object *) gbox; - } -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/objbound.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/objbound.h deleted file mode 100644 index 06f3522c2..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/objbound.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * objbound.h - defines for object bounding code. - * - * $Id: objbound.h,v 1.2 2007-02-22 17:54:15 Exp $ - */ - -void dividespace(int, object **); - -#ifdef OBJBOUND_PRIVATE - -static void globalbound(object **, vector *, vector *); -static int objinside(object * obj, vector * min, vector * max); -static int countobj(object *); -static void movenextobj(object *, object **); -static void octreespace(object **, int); - -#endif diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/parse.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/parse.cpp deleted file mode 100644 index 4c79f2d4e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/parse.cpp +++ /dev/null @@ -1,871 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * parse.c - an UltraLame (tm) parser for simple data files... - * - * $Id: parse.cpp,v 1.3 2007-02-22 17:54:15 Exp $ - */ - -// Try preventing lots of GCC warnings about ignored results of fscanf etc. -#if !__INTEL_COMPILER - -#if __GNUC__<4 || __GNUC__==4 && __GNUC_MINOR__<5 -// For older versions of GCC, disable use of __wur in GLIBC -#undef _FORTIFY_SOURCE -#define _FORTIFY_SOURCE 0 -#else -// Starting from 4.5, GCC has a suppression option -#pragma GCC diagnostic ignored "-Wunused-result" -#endif - -#endif //__INTEL_COMPILER - -#include -#include -#include -#include -#include /* needed for toupper(), macro.. */ - -#include "types.h" -#include "api.h" /* rendering API */ - -#define PARSE_INTERNAL -#include "parse.h" /* self protos */ -#undef PARSE_INTERNAL - -static texentry textable[NUMTEXS]; /* texture lookup table */ -static texentry defaulttex; /* The default texture when a lookup fails */ -static int numtextures; /* number of TEXDEF textures */ -static int numobjectsparsed; /* total number of objects parsed so far */ -static color scenebackcol; /* scene background color */ - -static int stringcmp(const char * a, const char * b) { - int i, s, l; - - s=strlen(a); - l=strlen(b); - - if (s != l) - return 1; - - for (i=0; i NUMTEXS) { - fprintf(stderr, "Parse: %d textures allocated, texture slots full!\n", numtextures); - numtextures--; /* keep writing over last texture if we've run out.. */ - return PARSEALLOCERR; - } - - return PARSENOERR; -} - -static void * find_texture(char name[TEXNAMELEN]) { - int i; - - for (i=0; ix); - tmp.y=degtorad(degvec->y); - tmp.z=degtorad(degvec->z); - *degvec=tmp; -} - -static void InitRot3d(RotMat * rot, apiflt x, apiflt y, apiflt z) { - rot->rx1=cos(y)*cos(z); - rot->rx2=sin(x)*sin(y)*cos(z) - cos(x)*sin(z); - rot->rx3=sin(x)*sin(z) + cos(x)*cos(z)*sin(y); - - rot->ry1=cos(y)*sin(z); - rot->ry2=cos(x)*cos(z) + sin(x)*sin(y)*sin(z); - rot->ry3=cos(x)*sin(y)*sin(z) - sin(x)*cos(z); - - rot->rz1=sin(y); - rot->rz2=sin(x)*cos(y); - rot->rz3=cos(x)*cos(y); -} - -static void Rotate3d(RotMat * rot, vector * vec) { - vector tmp; - tmp.x=(vec->x*(rot->rx1) + vec->y*(rot->rx2) + vec->z*(rot->rx3)); - tmp.y=(vec->x*(rot->ry1) + vec->y*(rot->ry2) + vec->z*(rot->ry3)); - tmp.z=(vec->x*(rot->rz1) + vec->y*(rot->rz2) + vec->z*(rot->rz3)); - *vec=tmp; -} - -static void Scale3d(vector * scale, vector * vec) { - vec->x=vec->x * scale->x; - vec->y=vec->y * scale->y; - vec->z=vec->z * scale->z; -} - -static void Trans3d(vector * trans, vector * vec) { - vec->x+=trans->x; - vec->y+=trans->y; - vec->z+=trans->z; -} - -static errcode GetString(FILE * dfile, const char * string) { - char data[255]; - - fscanf(dfile,"%s",data); - if (stringcmp(data, string) != 0) { - fprintf(stderr, "parse: Expected %s, got %s \n",string, data); - fprintf(stderr, "parse: Error while parsing object: %d \n",numobjectsparsed); - return PARSEBADSYNTAX; - } - - return PARSENOERR; -} - -unsigned int readmodel(char * modelfile, SceneHandle scene) { - FILE * dfile; - errcode rc; - - reset_tex_table(); - dfile=NULL; - - dfile=fopen(modelfile,"r"); - if (dfile==NULL) { - return PARSEBADFILE; - } - - rc = GetScenedefs(dfile, scene); - if (rc != PARSENOERR) - return rc; - - scenebackcol.r = 0.0; /* default background is black */ - scenebackcol.g = 0.0; - scenebackcol.b = 0.0; - - numobjectsparsed=0; - while ((rc = GetObject(dfile, scene)) == PARSENOERR) { - numobjectsparsed++; - } - fclose(dfile); - - if (rc == PARSEEOF) - rc = PARSENOERR; - - rt_background(scene, scenebackcol); - - return rc; -} - - -static errcode GetScenedefs(FILE * dfile, SceneHandle scene) { - vector Ccenter, Cview, Cup; - apiflt zoom, aspectratio; - int raydepth, antialiasing; - char outfilename[200]; - int xres, yres, verbose; - float a,b,c; - errcode rc = PARSENOERR; - - rc |= GetString(dfile, "BEGIN_SCENE"); - - rc |= GetString(dfile, "OUTFILE"); - fscanf(dfile, "%s", outfilename); -#ifdef _WIN32 - if (strcmp (outfilename, "/dev/null") == 0) { - strcpy (outfilename, "NUL:"); - } -#endif - - rc |= GetString(dfile, "RESOLUTION"); - fscanf(dfile, "%d %d", &xres, &yres); - - rc |= GetString(dfile, "VERBOSE"); - fscanf(dfile, "%d", &verbose); - - rt_scenesetup(scene, outfilename, xres, yres, verbose); - - rc |= GetString(dfile, "CAMERA"); - - rc |= GetString(dfile, "ZOOM"); - fscanf(dfile, "%f", &a); - zoom=a; - - rc |= GetString(dfile, "ASPECTRATIO"); - fscanf(dfile, "%f", &b); - aspectratio=b; - - rc |= GetString(dfile, "ANTIALIASING"); - fscanf(dfile, "%d", &antialiasing); - - rc |= GetString(dfile, "RAYDEPTH"); - fscanf(dfile, "%d", &raydepth); - - rc |= GetString(dfile, "CENTER"); - fscanf(dfile,"%f %f %f", &a, &b, &c); - Ccenter.x = a; - Ccenter.y = b; - Ccenter.z = c; - - rc |= GetString(dfile, "VIEWDIR"); - fscanf(dfile,"%f %f %f", &a, &b, &c); - Cview.x = a; - Cview.y = b; - Cview.z = c; - - rc |= GetString(dfile, "UPDIR"); - fscanf(dfile,"%f %f %f", &a, &b, &c); - Cup.x = a; - Cup.y = b; - Cup.z = c; - - rc |= GetString(dfile, "END_CAMERA"); - - rt_camerasetup(scene, zoom, aspectratio, antialiasing, raydepth, - Ccenter, Cview, Cup); - - - return rc; -} - -static errcode GetObject(FILE * dfile, SceneHandle scene) { - char objtype[80]; - - fscanf(dfile, "%s", objtype); - if (!stringcmp(objtype, "END_SCENE")) { - return PARSEEOF; /* end parsing */ - } - if (!stringcmp(objtype, "TEXDEF")) { - return GetTexDef(dfile); - } - if (!stringcmp(objtype, "TEXALIAS")) { - return GetTexAlias(dfile); - } - if (!stringcmp(objtype, "BACKGROUND")) { - return GetBackGnd(dfile); - } - if (!stringcmp(objtype, "CYLINDER")) { - return GetCylinder(dfile); - } - if (!stringcmp(objtype, "FCYLINDER")) { - return GetFCylinder(dfile); - } - if (!stringcmp(objtype, "POLYCYLINDER")) { - return GetPolyCylinder(dfile); - } - if (!stringcmp(objtype, "SPHERE")) { - return GetSphere(dfile); - } - if (!stringcmp(objtype, "PLANE")) { - return GetPlane(dfile); - } - if (!stringcmp(objtype, "RING")) { - return GetRing(dfile); - } - if (!stringcmp(objtype, "BOX")) { - return GetBox(dfile); - } - if (!stringcmp(objtype, "SCALARVOL")) { - return GetVol(dfile); - } - if (!stringcmp(objtype, "TRI")) { - return GetTri(dfile); - } - if (!stringcmp(objtype, "STRI")) { - return GetSTri(dfile); - } - if (!stringcmp(objtype, "LIGHT")) { - return GetLight(dfile); - } - if (!stringcmp(objtype, "SCAPE")) { - return GetLandScape(dfile); - } - if (!stringcmp(objtype, "TPOLYFILE")) { - return GetTPolyFile(dfile); - } - - fprintf(stderr, "Found bad token: %s expected an object type\n", objtype); - return PARSEBADSYNTAX; -} - -static errcode GetVector(FILE * dfile, vector * v1) { - float a, b, c; - - fscanf(dfile, "%f %f %f", &a, &b, &c); - v1->x=a; - v1->y=b; - v1->z=c; - - return PARSENOERR; -} - -static errcode GetColor(FILE * dfile, color * c1) { - float r, g, b; - int rc; - - rc = GetString(dfile, "COLOR"); - fscanf(dfile, "%f %f %f", &r, &g, &b); - c1->r=r; - c1->g=g; - c1->b=b; - - return rc; -} - -static errcode GetTexDef(FILE * dfile) { - char texname[TEXNAMELEN]; - - fscanf(dfile, "%s", texname); - add_texture(GetTexBody(dfile), texname); - - return PARSENOERR; -} - -static errcode GetTexAlias(FILE * dfile) { - char texname[TEXNAMELEN]; - char aliasname[TEXNAMELEN]; - - fscanf(dfile, "%s", texname); - fscanf(dfile, "%s", aliasname); - add_texture(find_texture(aliasname), texname); - - return PARSENOERR; -} - - -static errcode GetTexture(FILE * dfile, void ** tex) { - char tmp[255]; - errcode rc = PARSENOERR; - - fscanf(dfile, "%s", tmp); - if (!stringcmp("TEXTURE", tmp)) { - *tex = GetTexBody(dfile); - } - else - *tex = find_texture(tmp); - - return rc; -} - -void * GetTexBody(FILE * dfile) { - char tmp[255]; - float a,b,c,d, phong, phongexp, phongtype; - apitexture tex; - void * voidtex; - errcode rc; - - rc = GetString(dfile, "AMBIENT"); - fscanf(dfile, "%f", &a); - tex.ambient=a; - - rc |= GetString(dfile, "DIFFUSE"); - fscanf(dfile, "%f", &b); - tex.diffuse=b; - - rc |= GetString(dfile, "SPECULAR"); - fscanf(dfile, "%f", &c); - tex.specular=c; - - rc |= GetString(dfile, "OPACITY"); - fscanf(dfile, "%f", &d); - tex.opacity=d; - - fscanf(dfile, "%s", tmp); - if (!stringcmp("PHONG", tmp)) { - fscanf(dfile, "%s", tmp); - if (!stringcmp("METAL", tmp)) { - phongtype = RT_PHONG_METAL; - } - else if (!stringcmp("PLASTIC", tmp)) { - phongtype = RT_PHONG_PLASTIC; - } - else { - phongtype = RT_PHONG_PLASTIC; - } - - fscanf(dfile, "%f", &phong); - GetString(dfile, "PHONG_SIZE"); - fscanf(dfile, "%f", &phongexp); - fscanf(dfile, "%s", tmp); - } - else { - phong = 0.0; - phongexp = 100.0; - phongtype = RT_PHONG_PLASTIC; - } - - fscanf(dfile, "%f %f %f", &a, &b, &c); - tex.col.r = a; - tex.col.g = b; - tex.col.b = c; - - rc |= GetString(dfile, "TEXFUNC"); - fscanf(dfile, "%d", &tex.texturefunc); - if (tex.texturefunc >= 7) { /* if its an image map, we need a filename */ - fscanf(dfile, "%s", tex.imap); - } - if (tex.texturefunc != 0) { - rc |= GetString(dfile, "CENTER"); - rc |= GetVector(dfile, &tex.ctr); - rc |= GetString(dfile, "ROTATE"); - rc |= GetVector(dfile, &tex.rot); - rc |= GetString(dfile, "SCALE"); - rc |= GetVector(dfile, &tex.scale); - } - if (tex.texturefunc == 9) { - rc |= GetString(dfile, "UAXIS"); - rc |= GetVector(dfile, &tex.uaxs); - rc |= GetString(dfile, "VAXIS"); - rc |= GetVector(dfile, &tex.vaxs); - } - - voidtex = rt_texture(&tex); - rt_tex_phong(voidtex, phong, phongexp, (int) phongtype); - - return voidtex; -} - -static errcode GetLight(FILE * dfile) { - apiflt rad; - vector ctr; - apitexture tex; - float a; - errcode rc; - - memset(&tex, 0, sizeof(apitexture)); - - rc = GetString(dfile,"CENTER"); - rc |= GetVector(dfile, &ctr); - rc |= GetString(dfile,"RAD"); - fscanf(dfile,"%f",&a); /* read in radius */ - rad=a; - - rc |= GetColor(dfile, &tex.col); - - rt_light(rt_texture(&tex), ctr, rad); - - return rc; -} - -static errcode GetBackGnd(FILE * dfile) { - float r,g,b; - - fscanf(dfile, "%f %f %f", &r, &g, &b); - - scenebackcol.r=r; - scenebackcol.g=g; - scenebackcol.b=b; - - return PARSENOERR; -} - -static errcode GetCylinder(FILE * dfile) { - apiflt rad; - vector ctr, axis; - void * tex; - float a; - errcode rc; - - rc = GetString(dfile, "CENTER"); - rc |= GetVector(dfile, &ctr); - rc |= GetString(dfile, "AXIS"); - rc |= GetVector(dfile, &axis); - rc |= GetString(dfile, "RAD"); - fscanf(dfile, "%f", &a); - rad=a; - - rc |= GetTexture(dfile, &tex); - rt_cylinder(tex, ctr, axis, rad); - - return rc; -} - -static errcode GetFCylinder(FILE * dfile) { - apiflt rad; - vector ctr, axis; - vector pnt1, pnt2; - void * tex; - float a; - errcode rc; - - rc = GetString(dfile, "BASE"); - rc |= GetVector(dfile, &pnt1); - rc |= GetString(dfile, "APEX"); - rc |= GetVector(dfile, &pnt2); - - ctr=pnt1; - axis.x=pnt2.x - pnt1.x; - axis.y=pnt2.y - pnt1.y; - axis.z=pnt2.z - pnt1.z; - - rc |= GetString(dfile, "RAD"); - fscanf(dfile, "%f", &a); - rad=a; - - rc |= GetTexture(dfile, &tex); - rt_fcylinder(tex, ctr, axis, rad); - - return rc; -} - -static errcode GetPolyCylinder(FILE * dfile) { - apiflt rad; - vector * temp; - void * tex; - float a; - int numpts, i; - errcode rc; - - rc = GetString(dfile, "POINTS"); - fscanf(dfile, "%d", &numpts); - - temp = (vector *) malloc(numpts * sizeof(vector)); - - for (i=0; imethods = &plane_methods; - - p->tex = (texture *)tex; - p->norm = norm; - VNorm(&p->norm); - p->d = -VDot(&ctr, &p->norm); - - return (object *) p; -} - -static int plane_bbox(void * obj, vector * min, vector * max) { - return 0; -} - -static void plane_intersect(plane * pln, ray * ry) { - flt t,td; - - t=-(pln->d + VDot(&pln->norm, &ry->o)); - td=VDot(&pln->norm, &ry->d); - if (td != 0.0) { - t /= td; - if (t > 0.0) - add_intersection(t,(object *) pln, ry); - } -} - -static void plane_normal(plane * pln, vector * pnt, ray * incident, vector * N) { - *N=pln->norm; -} - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/plane.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/plane.h deleted file mode 100644 index 4426cafa6..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/plane.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * plane.h - This file contains the defines for planes etc. - * - * $Id: plane.h,v 1.2 2007-02-22 17:54:16 Exp $ - */ - - -object * newplane(void * tex, vector ctr, vector norm); - -#ifdef PLANE_PRIVATE -typedef struct { - unsigned int id; /* Unique Object serial number */ - void * nextobj; /* pointer to next object in list */ - object_methods * methods; /* this object's methods */ - texture * tex; /* object texture */ - flt d; - vector norm; -} plane; - -static void plane_intersect(plane *, ray *); -static int plane_bbox(void * obj, vector * min, vector * max); -static void plane_normal(plane *, vector *, ray * incident, vector *); -#endif diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/ppm.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/ppm.cpp deleted file mode 100644 index 73b222f37..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/ppm.cpp +++ /dev/null @@ -1,138 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * ppm.c - This file deals with PPM format image files (reading/writing) - * - * $Id: ppm.cpp,v 1.2 2007-02-22 17:54:16 Exp $ - */ - -/* For our puposes, we're interested only in the 3 byte per pixel 24 bit - truecolor sort of file.. Probably won't implement any decent checking - at this point, probably choke on things like the # comments.. */ - -// Try preventing lots of GCC warnings about ignored results of fscanf etc. -#if !__INTEL_COMPILER - -#if __GNUC__<4 || __GNUC__==4 && __GNUC_MINOR__<5 -// For older versions of GCC, disable use of __wur in GLIBC -#undef _FORTIFY_SOURCE -#define _FORTIFY_SOURCE 0 -#else -// Starting from 4.5, GCC has a suppression option -#pragma GCC diagnostic ignored "-Wunused-result" -#endif - -#endif //__INTEL_COMPILER - -#include -#include "machine.h" -#include "types.h" -#include "util.h" -#include "imageio.h" /* error codes etc */ -#include "ppm.h" - -static int getint(FILE * dfile) { - char ch[200]; - int i; - int num; - - num=0; - while (num==0) { - fscanf(dfile, "%s", ch); - while (ch[0]=='#') { - fgets(ch, 200, dfile); - } - num=sscanf(ch, "%d", &i); - } - return i; -} - -int readppm(char * name, int * xres, int * yres, unsigned char **imgdata) { - char data[200]; - FILE * ifp; - int i, bytesread; - int datasize; - - ifp=fopen(name, "r"); - if (ifp==NULL) { - return IMAGEBADFILE; /* couldn't open the file */ - } - fscanf(ifp, "%s", data); - - if (strcmp(data, "P6")) { - fclose(ifp); - return IMAGEUNSUP; /* not a format we support */ - } - - *xres=getint(ifp); - *yres=getint(ifp); - i=getint(ifp); /* eat the maxval number */ - fread(&i, 1, 1, ifp); /* eat the newline */ - datasize = 3 * (*xres) * (*yres); - - *imgdata=(unsigned char *)rt_getmem(datasize); - - bytesread=fread(*imgdata, 1, datasize, ifp); - - fclose(ifp); - - if (bytesread != datasize) - return IMAGEREADERR; - - return IMAGENOERR; -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/ppm.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/ppm.h deleted file mode 100644 index 027b89b5f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/ppm.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * ppm.h - This file deals with PPM format image files (reading/writing) - * - * $Id: ppm.h,v 1.2 2007-02-22 17:54:16 Exp $ - */ - -/* For our puposes, we're interested only in the 3 byte per pixel 24 bit - truecolor sort of file.. Probably won't implement any decent checking - at this point, probably choke on things like the # comments.. */ - -int readppm(char * name, int * xres, int * yres, unsigned char **imgdata); diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/pthread.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/pthread.cpp deleted file mode 100644 index 5a7aa0065..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/pthread.cpp +++ /dev/null @@ -1,164 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -#ifdef EMULATE_PTHREADS - -#include -#include "pthread_w.h" - -/* - Basics -*/ - -int -pthread_create (pthread_t *thread, pthread_attr_t *attr, void *(*start_routine) (void *), void *arg) -{ - pthread_t th; - - if (thread == NULL) return EINVAL; - *thread = NULL; - - if (start_routine == NULL) return EINVAL; - - th = (pthread_t) malloc (sizeof (pthread_s)); - memset (th, 0, sizeof (pthread_s)); - - th->winthread_handle = CreateThread ( - NULL, - 0, - (LPTHREAD_START_ROUTINE) start_routine, - arg, - 0, - &th->winthread_id); - if (th->winthread_handle == NULL) return EAGAIN; /* GetLastError() */ - - *thread = th; - return 0; -} - -int -pthread_join (pthread_t th, void **thread_return) -{ - BOOL b_ret; - DWORD dw_ret; - - if (thread_return) *thread_return = NULL; - - if ((th == NULL) || (th->winthread_handle == NULL)) return EINVAL; - - dw_ret = WaitForSingleObject (th->winthread_handle, INFINITE); - if (dw_ret != WAIT_OBJECT_0) return ERROR_PTHREAD; /* dw_ret == WAIT_FAILED; GetLastError() */ - - if (thread_return) { - BOOL e_ret; - DWORD exit_val; - e_ret = GetExitCodeThread (th->winthread_handle, &exit_val); - if (!e_ret) return ERROR_PTHREAD; /* GetLastError() */ - *thread_return = (void *)(size_t) exit_val; - } - - b_ret = CloseHandle (th->winthread_handle); - if (!b_ret) return ERROR_PTHREAD; /* GetLastError() */ - memset (th, 0, sizeof (pthread_s)); - free (th); - th = NULL; - - return 0; -} - -void -pthread_exit (void *retval) -{ - /* specific to PTHREAD_TO_WINTHREAD */ - - ExitThread ((DWORD) ((size_t) retval)); /* thread becomes signalled so its death can be waited upon */ - /*NOTREACHED*/ - assert (0); return; /* void fnc; can't return an error code */ -} - -/* - Mutex -*/ - -int -pthread_mutex_init (pthread_mutex_t *mutex, pthread_mutexattr_t *mutex_attr) -{ - InitializeCriticalSection (&mutex->critsec); - return 0; -} - -int -pthread_mutex_destroy (pthread_mutex_t *mutex) -{ - return 0; -} - -int -pthread_mutex_lock (pthread_mutex_t *mutex) -{ - EnterCriticalSection (&mutex->critsec); - return 0; -} - -int -pthread_mutex_unlock (pthread_mutex_t *mutex) -{ - LeaveCriticalSection (&mutex->critsec); - return 0; -} - -#endif /* EMULATE_PTHREADS */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/pthread_w.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/pthread_w.h deleted file mode 100644 index fb5683941..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/pthread_w.h +++ /dev/null @@ -1,117 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -#ifdef EMULATE_PTHREADS - -#ifndef _PTHREAD_H_DEFINED -#define _PTHREAD_H_DEFINED - -#include -#include -#ifndef ENOTSUP -#define ENOTSUP EPERM -#endif - -/* just need on Windows to get size_t defined */ -#include - -#define ERROR_PTHREAD 1000 -#define ERROR_MODE 1001 -#define ERROR_UNIMPL 1002 - -/* - Basics -*/ - -struct pthread_s { - HANDLE winthread_handle; - DWORD winthread_id; -}; -typedef struct pthread_s *pthread_t; /* one of the few types that's pointer, not struct */ - -typedef struct { - int i; /* not yet defined... */ -} pthread_attr_t; - -/* - Mutex -*/ - -typedef struct { - int i; /* not yet defined... */ -} pthread_mutexattr_t; - -typedef struct { - CRITICAL_SECTION critsec; -} pthread_mutex_t; - -/* - Function prototypes -*/ - -extern int pthread_create (pthread_t *thread, pthread_attr_t *attr, void *(*start_routine) (void *), void *arg); -extern int pthread_join (pthread_t th, void **thread_return); -extern void pthread_exit (void *retval); - -extern int pthread_mutex_init (pthread_mutex_t *mutex, pthread_mutexattr_t *mutex_attr); -extern int pthread_mutex_destroy (pthread_mutex_t *mutex); -extern int pthread_mutex_lock (pthread_mutex_t *mutex); -extern int pthread_mutex_unlock (pthread_mutex_t *mutex); - -#endif /* _PTHREAD_H_DEFINED */ - -#endif /* EMULATE_PTHREADS */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/quadric.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/quadric.cpp deleted file mode 100644 index 9bba20005..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/quadric.cpp +++ /dev/null @@ -1,180 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * quadric.c - This file contains the functions for dealing with quadrics. - * - * $Id: quadric.cpp,v 1.2 2007-02-22 17:54:16 Exp $ - */ - -#include "machine.h" -#include "types.h" -#include "macros.h" -#include "quadric.h" -#include "vector.h" -#include "intersect.h" -#include "util.h" - -int quadric_bbox(void * obj, vector * min, vector * max) { - return 0; -} - -static object_methods quadric_methods = { - (void (*)(void *, void *))(quadric_intersect), - (void (*)(void *, void *, void *, void *))(quadric_normal), - quadric_bbox, - free -}; - -quadric * newquadric() { - quadric * q; - - q=(quadric *) rt_getmem(sizeof(quadric)); - memset(q, 0, sizeof(quadric)); - q->ctr.x=0.0; - q->ctr.y=0.0; - q->ctr.z=0.0; - q->methods = &quadric_methods; - - return q; -} - -void quadric_intersect(quadric * q, ray * ry) { - flt Aq, Bq, Cq; - flt t1, t2; - flt disc; - vector rd; - vector ro; - - rd=ry->d; - VNorm(&rd); - - ro.x = ry->o.x - q->ctr.x; - ro.y = ry->o.y - q->ctr.y; - ro.z = ry->o.z - q->ctr.z; - - - Aq = (q->mat.a*(rd.x * rd.x)) + - (2.0 * q->mat.b * rd.x * rd.y) + - (2.0 * q->mat.c * rd.x * rd.z) + - (q->mat.e * (rd.y * rd.y)) + - (2.0 * q->mat.f * rd.y * rd.z) + - (q->mat.h * (rd.z * rd.z)); - - Bq = 2.0 * ( - (q->mat.a * ro.x * rd.x) + - (q->mat.b * ((ro.x * rd.y) + (rd.x * ro.y))) + - (q->mat.c * ((ro.x * rd.z) + (rd.x * ro.z))) + - (q->mat.d * rd.x) + - (q->mat.e * ro.y * rd.y) + - (q->mat.f * ((ro.y * rd.z) + (rd.y * ro.z))) + - (q->mat.g * rd.y) + - (q->mat.h * ro.z * rd.z) + - (q->mat.i * rd.z) - ); - - Cq = (q->mat.a * (ro.x * ro.x)) + - (2.0 * q->mat.b * ro.x * ro.y) + - (2.0 * q->mat.c * ro.x * ro.z) + - (2.0 * q->mat.d * ro.x) + - (q->mat.e * (ro.y * ro.y)) + - (2.0 * q->mat.f * ro.y * ro.z) + - (2.0 * q->mat.g * ro.y) + - (q->mat.h * (ro.z * ro.z)) + - (2.0 * q->mat.i * ro.z) + - q->mat.j; - - if (Aq == 0.0) { - t1 = - Cq / Bq; - add_intersection(t1, (object *) q, ry); - } - else { - disc=(Bq*Bq - 4.0 * Aq * Cq); - if (disc > 0.0) { - disc=sqrt(disc); - t1 = (-Bq + disc) / (2.0 * Aq); - t2 = (-Bq - disc) / (2.0 * Aq); - add_intersection(t1, (object *) q, ry); - add_intersection(t2, (object *) q, ry); - } - } -} - -void quadric_normal(quadric * q, vector * pnt, ray * incident, vector * N) { - - N->x = (q->mat.a*(pnt->x - q->ctr.x) + - q->mat.b*(pnt->y - q->ctr.y) + - q->mat.c*(pnt->z - q->ctr.z) + q->mat.d); - - N->y = (q->mat.b*(pnt->x - q->ctr.x) + - q->mat.e*(pnt->y - q->ctr.y) + - q->mat.f*(pnt->z - q->ctr.z) + q->mat.g); - - N->z = (q->mat.c*(pnt->x - q->ctr.x) + - q->mat.f*(pnt->y - q->ctr.y) + - q->mat.h*(pnt->z - q->ctr.z) + q->mat.i); - - VNorm(N); - - if (VDot(N, &(incident->d)) > 0.0) { - N->x=-N->x; - N->y=-N->y; - N->z=-N->z; - } -} - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/quadric.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/quadric.h deleted file mode 100644 index aad2ff498..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/quadric.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * quadric.h - This file contains the defines for quadrics. - * - * $Id: quadric.h,v 1.2 2007-02-22 17:54:16 Exp $ - */ - -typedef struct { - flt a; flt b; flt c; - flt d; flt e; flt f; - flt g; flt h; flt i; flt j; -} quadmatrix; - - -typedef struct { - unsigned int id; /* Unique Object serial number */ - void * nextobj; /* pointer to next object in list */ - object_methods * methods; /* this object's methods */ - texture * tex; /* object texture */ - vector ctr; - quadmatrix mat; -} quadric; - - -quadric * newquadric(void); -void quadric_intersect(quadric *, ray *); -void quadric_normal(quadric *, vector *, ray *, vector *); diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/render.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/render.cpp deleted file mode 100644 index e5826ec57..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/render.cpp +++ /dev/null @@ -1,101 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * render.c - This file contains the main program and driver for the raytracer. - * - * $Id: render.cpp,v 1.5 2007-02-22 18:17:51 amalakho Exp $ - */ - -#include "machine.h" -#include "types.h" -#include "macros.h" -#include "tgafile.h" -#include "trace.h" -#include "render.h" -#include "util.h" -#include "light.h" -#include "global.h" -#include "ui.h" -#include "tachyon_video.h" -#include "objbound.h" -#include "grid.h" - -/* how many pieces to divide each scanline into */ -#define NUMHORZDIV 1 - -void renderscene(scenedef scene) { - //char msgtxt[2048]; - //void * outfile; - /* Grid based accerlation scheme */ - if (scene.boundmode == RT_BOUNDING_ENABLED) - engrid_scene(&rootobj); /* grid */ - /* Not used now - if (scene.verbosemode) { - sprintf(msgtxt, "Opening %s for output.", scene.outfilename); - rt_ui_message(MSG_0, msgtxt); - } - - createtgafile(scene.outfilename, - (unsigned short) scene.hres, - (unsigned short) scene.vres); - outfile = opentgafile(scene.outfilename); - */ - - trace_region (scene, 0/*outfile*/, 0, 0, scene.hres, scene.vres); - //fclose((FILE *)outfile); -} /* end of renderscene() */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/render.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/render.h deleted file mode 100644 index a01cf8d7f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/render.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * render.h - This file contains the defines for the top level functions - * - * $Id: render.h,v 1.2 2007-02-22 17:54:16 Exp $ - */ - - -void renderscene(scenedef); diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/ring.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/ring.cpp deleted file mode 100644 index fe6b4e4d8..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/ring.cpp +++ /dev/null @@ -1,141 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * ring.c - This file contains the functions for dealing with rings. - * - * $Id: ring.cpp,v 1.2 2007-02-22 17:54:16 Exp $ - */ - -#include "machine.h" -#include "types.h" -#include "macros.h" -#include "vector.h" -#include "intersect.h" -#include "util.h" - -#define RING_PRIVATE -#include "ring.h" - -static object_methods ring_methods = { - (void (*)(void *, void *))(ring_intersect), - (void (*)(void *, void *, void *, void *))(ring_normal), - ring_bbox, - free -}; - -object * newring(void * tex, vector ctr, vector norm, flt inrad, flt outrad) { - ring * r; - - r=(ring *) rt_getmem(sizeof(ring)); - memset(r, 0, sizeof(ring)); - r->methods = &ring_methods; - - r->tex = (texture *)tex; - r->ctr = ctr; - r->norm = norm; - r->inrad = inrad; - r->outrad= outrad; - - return (object *) r; -} - -static int ring_bbox(void * obj, vector * min, vector * max) { - ring * r = (ring *) obj; - - min->x = r->ctr.x - r->outrad; - min->y = r->ctr.y - r->outrad; - min->z = r->ctr.z - r->outrad; - max->x = r->ctr.x + r->outrad; - max->y = r->ctr.y + r->outrad; - max->z = r->ctr.z + r->outrad; - - return 1; -} - -static void ring_intersect(ring * rng, ray * ry) { - flt d; - flt t,td; - vector hit, pnt; - - d = -VDot(&(rng->ctr), &(rng->norm)); - - t=-(d+VDot(&(rng->norm), &(ry->o))); - td=VDot(&(rng->norm),&(ry->d)); - if (td != 0.0) { - t= t / td; - if (t>=0.0) { - hit=Raypnt(ry, t); - VSUB(hit, rng->ctr, pnt); - VDOT(td, pnt, pnt); - td=sqrt(td); - if ((td > rng->inrad) && (td < rng->outrad)) - add_intersection(t,(object *) rng, ry); - } - } -} - -static void ring_normal(ring * rng, vector * pnt, ray * incident, vector * N) { - *N=rng->norm; - VNorm(N); - if (VDot(N, &(incident->d)) > 0.0) { - N->x=-N->x; - N->y=-N->y; - N->z=-N->z; - } -} - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/ring.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/ring.h deleted file mode 100644 index 64fd4c12a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/ring.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * ring.h - This file contains the defines for rings etc. - * - * $Id: ring.h,v 1.2 2007-02-22 17:54:16 Exp $ - */ - -object * newring(void * tex, vector ctr, vector norm, flt in, flt out); - -#ifdef RING_PRIVATE -typedef struct { - unsigned int id; /* Unique Object serial number */ - void * nextobj; /* pointer to next object in list */ - object_methods * methods; /* this object's methods */ - texture * tex; /* object texture */ - vector ctr; - vector norm; - flt inrad; - flt outrad; -} ring; - -static int ring_bbox(void * obj, vector * min, vector * max); -static void ring_intersect(ring *, ray *); -static void ring_normal(ring *, vector *, ray * incident, vector *); -#endif diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/shade.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/shade.cpp deleted file mode 100644 index c4b3afe6e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/shade.cpp +++ /dev/null @@ -1,268 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * shade.c - This file contains the functions that perform surface shading. - * - * $Id: shade.cpp,v 1.3 2007-02-22 17:54:16 Exp $ - */ - -#include "machine.h" -#include "types.h" -#include "macros.h" -#include "light.h" -#include "intersect.h" -#include "vector.h" -#include "trace.h" -#include "global.h" -#include "shade.h" - -void reset_lights(void) { - numlights=0; -} - -void add_light(point_light * li) { - lightlist[numlights]=li; - numlights++; -} - -color shader(ray * incident) { - color col, diffuse, phongcol; - vector N, L, hit; - ray shadowray; - flt inten, t, Llen; - object * obj; - int numints, i; - point_light * li; - - - numints=closest_intersection(&t, &obj, incident->intstruct); - /* find the number of intersections */ - /* and return the closest one. */ - - if (numints < 1) { - /* if there weren't any object intersections then return the */ - /* background color for the pixel color. */ - return incident->scene->background; - } - - if (obj->tex->islight) { /* if the current object is a light, then we */ - return obj->tex->col; /* will only use the objects ambient color */ - } - - RAYPNT(hit, (*incident), t) /* find the point of intersection from t */ - obj->methods->normal(obj, &hit, incident, &N); /* find the surface normal */ - - /* execute the object's texture function */ - col = obj->tex->texfunc(&hit, obj->tex, incident); - - diffuse.r = 0.0; - diffuse.g = 0.0; - diffuse.b = 0.0; - phongcol = diffuse; - - if ((obj->tex->diffuse > 0.0) || (obj->tex->phong > 0.0)) { - for (i=0; ictr, hit, L) /* find the light vector */ - - /* calculate the distance to the light from the hit point */ - Llen = sqrt(L.x*L.x + L.y*L.y + L.z*L.z) + EPSILON; - - L.x /= Llen; /* normalize the light direction vector */ - L.y /= Llen; - L.z /= Llen; - - VDOT(inten, N, L) /* light intensity */ - - /* add in diffuse lighting for this light if we're facing it */ - if (inten > 0.0) { - /* test for a shadow */ - shadowray.intstruct = incident->intstruct; - shadowray.flags = RT_RAY_SHADOW | RT_RAY_BOUNDED; - incident->serial++; - shadowray.serial = incident->serial; - shadowray.mbox = incident->mbox; - shadowray.o = hit; - shadowray.d = L; - shadowray.maxdist = Llen; - shadowray.s = hit; - shadowray.e = li->ctr; - shadowray.scene = incident->scene; - reset_intersection(incident->intstruct); - intersect_objects(&shadowray); - - if (!shadow_intersection(incident->intstruct, Llen)) { - /* XXX now that opacity is in the code, have to be more careful */ - ColorAddS(&diffuse, &li->tex->col, inten); - - /* phong type specular highlights */ - if (obj->tex->phong > 0.0) { - flt phongval; - phongval = shade_phong(incident, &hit, &N, &L, obj->tex->phongexp); - if (obj->tex->phongtype) - ColorAddS(&phongcol, &col, phongval); - else - ColorAddS(&phongcol, &(li->tex->col), phongval); - } - } - } - } - } - - ColorScale(&diffuse, obj->tex->diffuse); - - col.r *= (diffuse.r + obj->tex->ambient); /* do a product of the */ - col.g *= (diffuse.g + obj->tex->ambient); /* diffuse intensity with */ - col.b *= (diffuse.b + obj->tex->ambient); /* object color + ambient */ - - if (obj->tex->phong > 0.0) { - ColorAccum(&col, &phongcol); - } - - /* spawn reflection rays if necessary */ - /* note: this will overwrite the old intersection list */ - if (obj->tex->specular > 0.0) { - color specol; - specol = shade_reflection(incident, &hit, &N, obj->tex->specular); - ColorAccum(&col, &specol); - } - - /* spawn transmission rays / refraction */ - /* note: this will overwrite the old intersection list */ - if (obj->tex->opacity < 1.0) { - color transcol; - transcol = shade_transmission(incident, &hit, 1.0 - obj->tex->opacity); - ColorAccum(&col, &transcol); - } - - return col; /* return the color of the shaded pixel... */ -} - - -color shade_reflection(ray * incident, vector * hit, vector * N, flt specular) { - ray specray; - color col; - vector R; - - VAddS(-2.0 * (incident->d.x * N->x + - incident->d.y * N->y + - incident->d.z * N->z), N, &incident->d, &R); - - specray.intstruct=incident->intstruct; /* what thread are we */ - specray.depth=incident->depth - 1; /* go up a level in recursion depth */ - specray.flags = RT_RAY_REGULAR; /* infinite ray, to start with */ - specray.serial = incident->serial + 1; /* next serial number */ - specray.mbox = incident->mbox; - specray.o=*hit; - specray.d=R; /* reflect incident ray about normal */ - specray.o=Raypnt(&specray, EPSILON); /* avoid numerical precision bugs */ - specray.maxdist = FHUGE; /* take any intersection */ - specray.scene=incident->scene; /* global scenedef info */ - col=trace(&specray); /* trace specular reflection ray */ - - incident->serial = specray.serial; /* update the serial number */ - - ColorScale(&col, specular); - - return col; -} - - -color shade_transmission(ray * incident, vector * hit, flt trans) { - ray transray; - color col; - - transray.intstruct=incident->intstruct; /* what thread are we */ - transray.depth=incident->depth - 1; /* go up a level in recursion depth */ - transray.flags = RT_RAY_REGULAR; /* infinite ray, to start with */ - transray.serial = incident->serial + 1; /* update serial number */ - transray.mbox = incident->mbox; - transray.o=*hit; - transray.d=incident->d; /* ray continues along incident path */ - transray.o=Raypnt(&transray, EPSILON); /* avoid numerical precision bugs */ - transray.maxdist = FHUGE; /* take any intersection */ - transray.scene=incident->scene; /* global scenedef info */ - col=trace(&transray); /* trace transmission ray */ - - incident->serial = transray.serial; - - ColorScale(&col, trans); - - return col; -} - -flt shade_phong(ray * incident, vector * hit, - vector * N, vector * L, flt specpower){ - vector H, V; - flt inten; - - V = incident->d; - VScale(&V, -1.0); - VAdd(&V, L, &H); - VScale(&H, 0.5); - VNorm(&H); - inten = VDot(N, &H); - if (inten > 0.0) - inten = pow(inten, specpower); - else - inten = 0.0; - - return inten; -} - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/shade.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/shade.h deleted file mode 100644 index 491b0a75c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/shade.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * shade.h - This file contains declarations and definitions for the shader. - * - * $Id: shade.h,v 1.2 2007-02-22 17:54:16 Exp $ - */ - -void reset_lights(void); -void add_light(point_light *); - -color shader(ray *); -color shade_reflection(ray *, vector *, vector *, flt); -color shade_transmission(ray *, vector *, flt); -flt shade_phong(ray * incident, vector * hit, vector * N, vector * L, flt specpower); diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/sphere.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/sphere.cpp deleted file mode 100644 index 86d8ff67d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/sphere.cpp +++ /dev/null @@ -1,143 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * sphere.c - This file contains the functions for dealing with spheres. - * - * $Id: sphere.cpp,v 1.2 2007-02-22 17:54:16 Exp $ - */ - -#include "machine.h" -#include "types.h" -#include "macros.h" -#include "vector.h" -#include "intersect.h" -#include "util.h" - -#define SPHERE_PRIVATE -#include "sphere.h" - -static object_methods sphere_methods = { - (void (*)(void *, void *))(sphere_intersect), - (void (*)(void *, void *, void *, void *))(sphere_normal), - sphere_bbox, - free -}; - -object * newsphere(void * tex, vector ctr, flt rad) { - sphere * s; - - s=(sphere *) rt_getmem(sizeof(sphere)); - memset(s, 0, sizeof(sphere)); - s->methods = &sphere_methods; - - s->tex=(texture *)tex; - s->ctr=ctr; - s->rad=rad; - - return (object *) s; -} - -static int sphere_bbox(void * obj, vector * min, vector * max) { - sphere * s = (sphere *) obj; - - min->x = s->ctr.x - s->rad; - min->y = s->ctr.y - s->rad; - min->z = s->ctr.z - s->rad; - max->x = s->ctr.x + s->rad; - max->y = s->ctr.y + s->rad; - max->z = s->ctr.z + s->rad; - - return 1; -} - -static void sphere_intersect(sphere * spr, ray * ry) { - flt b, disc, t1, t2, temp; - vector V; - - VSUB(spr->ctr, ry->o, V); - VDOT(b, V, ry->d); - VDOT(temp, V, V); - - disc=b*b + spr->rad*spr->rad - temp; - - if (disc<=0.0) return; - disc=sqrt(disc); - - t2=b+disc; - if (t2 <= SPEPSILON) - return; - add_intersection(t2, (object *) spr, ry); - - t1=b-disc; - if (t1 > SPEPSILON) - add_intersection(t1, (object *) spr, ry); -} - -static void sphere_normal(sphere * spr, vector * pnt, ray * incident, vector * N) { - VSub((vector *) pnt, &(spr->ctr), N); - - VNorm(N); - - if (VDot(N, &(incident->d)) > 0.0) { - N->x=-N->x; - N->y=-N->y; - N->z=-N->z; - } -} - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/sphere.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/sphere.h deleted file mode 100644 index 718f7d2e1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/sphere.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * sphere.h - This file contains the defines for spheres etc. - * - * $Id: sphere.h,v 1.2 2007-02-22 17:54:16 Exp $ - */ - -object * newsphere(void *, vector, flt); - -#ifdef SPHERE_PRIVATE - -typedef struct { - unsigned int id; /* Unique Object serial number */ - void * nextobj; /* pointer to next object in list */ - object_methods * methods; /* this object's methods */ - texture * tex; /* object texture */ - vector ctr; - flt rad; -} sphere; - -static int sphere_bbox(void * obj, vector * min, vector * max); -static void sphere_intersect(sphere *, ray *); -static void sphere_normal(sphere *, vector *, ray *, vector *); - -#endif /* SPHERE_PRIVATE */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/tachyon_video.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/tachyon_video.cpp deleted file mode 100644 index c992532b1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/tachyon_video.cpp +++ /dev/null @@ -1,128 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -#include -#include -#include - -#include "types.h" -#include "api.h" /* The ray tracing library API */ -#include "ui.h" -#include "util.h" -#include "tachyon_video.h" - -extern SceneHandle global_scene; -extern char *global_window_title; -extern bool global_usegraphics; - -void tachyon_video::on_process() { - char buf[8192]; - flt runtime; - scenedef *scene = (scenedef *) global_scene; - updating_mode = scene->displaymode == RT_DISPLAY_ENABLED; - recycling = false; - pausing = false; - do { - updating = updating_mode; - timer start_timer = gettimer(); - rt_renderscene(global_scene); - timer end_timer = gettimer(); - runtime = timertime(start_timer, end_timer); - sprintf(buf, "%s: %.3f seconds", global_window_title, runtime); - rt_ui_message(MSG_0, buf); - title = buf; show_title(); // show time spent for rendering - if(!updating) { - updating = true; - drawing_memory dm = get_drawing_memory(); - drawing_area drawing(0, 0, dm.sizex, dm.sizey);// invalidate whole screen - } - rt_finalize(); - title = global_window_title; show_title(); // reset title to default - } while(recycling && running); -} - -void tachyon_video::on_key(int key) { - key &= 0xff; - recycling = true; - if(key == esc_key) running = false; - else if(key == ' ') { - if(!updating) { - updating = true; - drawing_memory dm = get_drawing_memory(); - drawing_area drawing(0, 0, dm.sizex, dm.sizey);// invalidate whole screen - } - updating = updating_mode = !updating_mode; - } - else if(key == 'p') { - pausing = !pausing; - if(pausing) { - title = "Press ESC to exit or 'p' to continue after rendering completion"; - show_title(); - } - } -} - -void rt_finalize(void) { - timer t0, t1; - t0 = gettimer(); - if(global_usegraphics) - do { rt_sleep(1); t1 = gettimer(); } - while( (timertime(t0, t1) < 10 || video->pausing) && video->next_frame()); -#ifdef _WINDOWS - else rt_sleep(10000); -#endif -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/tachyon_video.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/tachyon_video.h deleted file mode 100644 index 5421a9ba9..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/tachyon_video.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -#include "../../../common/gui/video.h" - -class tachyon_video : public video -{ -public: - bool updating_mode; - bool recycling; - bool pausing; - void on_process(); - void on_key(int key); -}; - -extern class tachyon_video *video; diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/texture.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/texture.cpp deleted file mode 100644 index 26a476706..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/texture.cpp +++ /dev/null @@ -1,395 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * texture.c - This file contains functions for implementing textures. - * - * $Id: texture.cpp,v 1.2 2007-02-22 17:54:16 Exp $ - */ - -#include "machine.h" -#include "types.h" -#include "macros.h" -#include "texture.h" -#include "coordsys.h" -#include "imap.h" -#include "vector.h" -#include "box.h" - -/* plain vanilla texture solely based on object color */ -color standard_texture(vector * hit, texture * tex, ray * ry) { - return tex->col; -} - -/* cylindrical image map */ -color image_cyl_texture(vector * hit, texture * tex, ray * ry) { - vector rh; - flt u,v; - - rh.x=hit->x - tex->ctr.x; - rh.z=hit->y - tex->ctr.y; - rh.y=hit->z - tex->ctr.z; - - xyztocyl(rh, 1.0, &u, &v); - - u = u * tex->scale.x; - u = u + tex->rot.x; - u=fmod(u, 1.0); - if (u < 0.0) u+=1.0; - - v = v * tex->scale.y; - v = v + tex->rot.y; - v=fmod(v, 1.0); - if (v < 0.0) v+=1.0; - - return ImageMap((rawimage *)tex->img, u, v); -} - -/* spherical image map */ -color image_sphere_texture(vector * hit, texture * tex, ray * ry) { - vector rh; - flt u,v; - - rh.x=hit->x - tex->ctr.x; - rh.y=hit->y - tex->ctr.y; - rh.z=hit->z - tex->ctr.z; - - xyztospr(rh, &u, &v); - - u = u * tex->scale.x; - u = u + tex->rot.x; - u=fmod(u, 1.0); - if (u < 0.0) u+=1.0; - - v = v * tex->scale.y; - v = v + tex->rot.y; - v=fmod(v, 1.0); - if (v < 0.0) v+=1.0; - - return ImageMap((rawimage *)tex->img, u, v); -} - -/* planar image map */ -color image_plane_texture(vector * hit, texture * tex, ray * ry) { - vector pnt; - flt u,v; - - pnt.x=hit->x - tex->ctr.x; - pnt.y=hit->y - tex->ctr.y; - pnt.z=hit->z - tex->ctr.z; - - VDOT(u, tex->uaxs, pnt); -/* VDOT(len, tex->uaxs, tex->uaxs); - u = u / sqrt(len); */ - - VDOT(v, tex->vaxs, pnt); -/* VDOT(len, tex->vaxs, tex->vaxs); - v = v / sqrt(len); */ - - - u = u * tex->scale.x; - u = u + tex->rot.x; - u = fmod(u, 1.0); - if (u < 0.0) u += 1.0; - - v = v * tex->scale.y; - v = v + tex->rot.y; - v = fmod(v, 1.0); - if (v < 0.0) v += 1.0; - - return ImageMap((rawimage *)tex->img, u, v); -} - -color grit_texture(vector * hit, texture * tex, ray * ry) { - int rnum; - flt fnum; - color col; - - rnum=rand() % 4096; - fnum=(rnum / 4096.0 * 0.2) + 0.8; - - col.r=tex->col.r * fnum; - col.g=tex->col.g * fnum; - col.b=tex->col.b * fnum; - - return col; -} - -color checker_texture(vector * hit, texture * tex, ray * ry) { - long x,y,z; - flt xh,yh,zh; - color col; - - xh=hit->x - tex->ctr.x; - x=(long) ((fabs(xh) * 3) + 0.5); - x=x % 2; - yh=hit->y - tex->ctr.y; - y=(long) ((fabs(yh) * 3) + 0.5); - y=y % 2; - zh=hit->z - tex->ctr.z; - z=(long) ((fabs(zh) * 3) + 0.5); - z=z % 2; - - if (((x + y + z) % 2)==1) { - col.r=1.0; - col.g=0.2; - col.b=0.0; - } - else { - col.r=0.0; - col.g=0.2; - col.b=1.0; - } - - return col; -} - -color cyl_checker_texture(vector * hit, texture * tex, ray * ry) { - long x,y; - vector rh; - flt u,v; - color col; - - rh.x=hit->x - tex->ctr.x; - rh.y=hit->y - tex->ctr.y; - rh.z=hit->z - tex->ctr.z; - - xyztocyl(rh, 1.0, &u, &v); - - x=(long) (fabs(u) * 18.0); - x=x % 2; - y=(long) (fabs(v) * 10.0); - y=y % 2; - - if (((x + y) % 2)==1) { - col.r=1.0; - col.g=0.2; - col.b=0.0; - } - else { - col.r=0.0; - col.g=0.2; - col.b=1.0; - } - - return col; -} - - -color wood_texture(vector * hit, texture * tex, ray * ry) { - flt radius, angle; - int grain; - color col; - flt x,y,z; - - x=(hit->x - tex->ctr.x) * 1000; - y=(hit->y - tex->ctr.y) * 1000; - z=(hit->z - tex->ctr.z) * 1000; - - radius=sqrt(x*x + z*z); - if (z == 0.0) - angle=3.1415926/2.0; - else - angle=atan(x / z); - - radius=radius + 3.0 * sin(20 * angle + y / 150.0); - grain=((int) (radius + 0.5)) % 60; - if (grain < 40) { - col.r=0.8; - col.g=1.0; - col.b=0.2; - } - else { - col.r=0.0; - col.g=0.0; - col.b=0.0; - } - - return col; -} - - - -#define NMAX 28 -short int NoiseMatrix[NMAX][NMAX][NMAX]; - -void InitNoise(void) { - byte x,y,z,i,j,k; - - for (x=0; xx; - y=hit->y; - z=hit->z; - - x=x * 1.0; - - d=x + 0.0006 * Noise(x, (y * 1.0), (z * 1.0)); - d=d*(((int) d) % 25); - i=0.0 + 0.10 * fabs(d - 10.0 - 20.0 * ((int) d * 0.05)); - if (i > 1.0) i=1.0; - if (i < 0.0) i=0.0; - -/* - col.r=i * tex->col.r; - col.g=i * tex->col.g; - col.b=i * tex->col.b; -*/ - - col.r = (1.0 + sin(i * 6.28)) / 2.0; - col.g = (1.0 + sin(i * 16.28)) / 2.0; - col.b = (1.0 + cos(i * 30.28)) / 2.0; - - return col; -} - - -color gnoise_texture(vector * hit, texture * tex, ray * ry) { - color col; - flt f; - - f=Noise((hit->x - tex->ctr.x), - (hit->y - tex->ctr.y), - (hit->z - tex->ctr.z)); - - if (f < 0.01) f=0.01; - if (f > 1.0) f=1.0; - - col.r=tex->col.r * f; - col.g=tex->col.g * f; - col.b=tex->col.b * f; - - return col; -} - -void InitTextures(void) { - InitNoise(); - ResetImages(); -} - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/texture.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/texture.h deleted file mode 100644 index 3552baa97..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/texture.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * texture.h This file contains all of the includes and defines for the texture - * mapping part of the shader. - * - * $Id: texture.h,v 1.2 2007-02-22 17:54:16 Exp $ - */ - -void InitTextures(void); -color standard_texture(vector *, texture *, ray *); -color image_cyl_texture(vector *, texture *, ray *); -color image_sphere_texture(vector *, texture *, ray *); -color image_plane_texture(vector *, texture *, ray *); -color checker_texture(vector *, texture *, ray *); -color cyl_checker_texture(vector *, texture *, ray *); -color grit_texture(vector *, texture *, ray *); -color wood_texture(vector *, texture *, ray *); -color marble_texture(vector *, texture *, ray *); -color gnoise_texture(vector *, texture *, ray *); -int Noise(flt, flt, flt); -void InitTextures(void); diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/tgafile.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/tgafile.cpp deleted file mode 100644 index f5c99d4e6..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/tgafile.cpp +++ /dev/null @@ -1,245 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * tgafile.c - This file contains the code to write 24 bit targa files... - * - * $Id: tgafile.cpp,v 1.2 2007-02-22 17:54:16 Exp $ - */ - -#include "machine.h" -#include "types.h" -#include "util.h" -#include "ui.h" -#include "imageio.h" -#include "tgafile.h" - -void createtgafile(char *name, unsigned short width, unsigned short height) { - int filesize; - FILE * ofp; - - filesize = 3*width*height + 18 - 10; - - if (name==NULL) - exit(1); - else { - ofp=fopen(name, "w+b"); - if (ofp == NULL) { - char msgtxt[2048]; - sprintf(msgtxt, "Cannot create %s for output!", name); - rt_ui_message(MSG_ERR, msgtxt); - rt_ui_message(MSG_ABORT, "Rendering Aborted."); - exit(1); - } - - fputc(0, ofp); /* IdLength */ - fputc(0, ofp); /* ColorMapType */ - fputc(2, ofp); /* ImageTypeCode */ - fputc(0, ofp); /* ColorMapOrigin, low byte */ - fputc(0, ofp); /* ColorMapOrigin, high byte */ - fputc(0, ofp); /* ColorMapLength, low byte */ - fputc(0, ofp); /* ColorMapLength, high byte */ - fputc(0, ofp); /* ColorMapEntrySize */ - fputc(0, ofp); /* XOrigin, low byte */ - fputc(0, ofp); /* XOrigin, high byte */ - fputc(0, ofp); /* YOrigin, low byte */ - fputc(0, ofp); /* YOrigin, high byte */ - fputc((width & 0xff), ofp); /* Width, low byte */ - fputc(((width >> 8) & 0xff), ofp); /* Width, high byte */ - fputc((height & 0xff), ofp); /* Height, low byte */ - fputc(((height >> 8) & 0xff), ofp); /* Height, high byte */ - fputc(24, ofp); /* ImagePixelSize */ - fputc(0x20, ofp); /* ImageDescriptorByte 0x20 == flip vertically */ - - fseek(ofp, filesize, 0); - fprintf(ofp, "9876543210"); - - fclose(ofp); - } -} - -void * opentgafile(char * filename) { - FILE * ofp; - - ofp=fopen(filename, "r+b"); - if (ofp == NULL) { - char msgtxt[2048]; - sprintf(msgtxt, "Cannot open %s for output!", filename); - rt_ui_message(MSG_ERR, msgtxt); - rt_ui_message(MSG_ABORT, "Rendering Aborted."); - exit(1); - } - - return ofp; -} - -void writetgaregion(void * voidofp, - int iwidth, int iheight, - int startx, int starty, - int stopx, int stopy, char * buffer) { - int y, totalx, totaly; - char * bufpos; - int filepos, numbytes; - FILE * ofp = (FILE *) voidofp; - - totalx = stopx - startx + 1; - totaly = stopy - starty + 1; - - for (y=0; y= 18) { - fseek(ofp, filepos, 0); - numbytes = fwrite(bufpos, 3, totalx, ofp); - - if (numbytes != totalx) { - char msgtxt[256]; - sprintf(msgtxt, "File write problem, %d bytes written.", numbytes); - rt_ui_message(MSG_ERR, msgtxt); - } - } - else { - rt_ui_message(MSG_ERR, "writetgaregion: file ptr out of range!!!\n"); - return; /* don't try to continue */ - } - } -} - - -int readtga(char * name, int * xres, int * yres, unsigned char **imgdata) { - int format, width, height, w1, w2, h1, h2, depth, flags; - int imgsize, bytesread, i, tmp; - FILE * ifp; - - ifp=fopen(name, "r"); - if (ifp==NULL) { - return IMAGEBADFILE; /* couldn't open the file */ - } - - /* read the targa header */ - getc(ifp); /* ID length */ - getc(ifp); /* colormap type */ - format = getc(ifp); /* image type */ - getc(ifp); /* color map origin */ - getc(ifp); /* color map origin */ - getc(ifp); /* color map length */ - getc(ifp); /* color map length */ - getc(ifp); /* color map entry size */ - getc(ifp); /* x origin */ - getc(ifp); /* x origin */ - getc(ifp); /* y origin */ - getc(ifp); /* y origin */ - w1 = getc(ifp); /* width (low) */ - w2 = getc(ifp); /* width (hi) */ - h1 = getc(ifp); /* height (low) */ - h2 = getc(ifp); /* height (hi) */ - depth = getc(ifp); /* image pixel size */ - flags = getc(ifp); /* image descriptor byte */ - - if ((format != 2) || (depth != 24)) { - fclose(ifp); - return IMAGEUNSUP; /* unsupported targa format */ - } - - - width = ((w2 << 8) | w1); - height = ((h2 << 8) | h1); - - imgsize = 3 * width * height; - *imgdata = (unsigned char *)rt_getmem(imgsize); - bytesread = fread(*imgdata, 1, imgsize, ifp); - fclose(ifp); - - /* flip image vertically */ - if (flags == 0x20) { - int rowsize = 3 * width; - unsigned char * copytmp; - - copytmp = (unsigned char *)malloc(rowsize); - - for (i=0; i 0) { - for (alias=0; alias < scene.antialiasing; alias++) { - - serial++; /* increment serial number */ - sample=primary; /* copy the regular primary ray to start with */ - sample.serial = serial; - - { - sample.d.x+=((std::rand() % 100) - 50) / jitterscale; - sample.d.y+=((std::rand() % 100) - 50) / jitterscale; - sample.d.z+=((std::rand() % 100) - 50) / jitterscale; - } - - avcol=trace(&sample); - - serial = sample.serial; /* update our overall serial # */ - - col.r += avcol.r; - col.g += avcol.g; - col.b += avcol.b; - } - - col.r /= (scene.antialiasing + 1.0); - col.g /= (scene.antialiasing + 1.0); - col.b /= (scene.antialiasing + 1.0); - } - - /* Handle overexposure and underexposure here... */ - R=(int) (col.r*255); - if (R > 255) R = 255; - else if (R < 0) R = 0; - - G=(int) (col.g*255); - if (G > 255) G = 255; - else if (G < 0) G = 0; - - B=(int) (col.b*255); - if (B > 255) B = 255; - else if (B < 0) B = 0; - - return video->get_color(R, G, B); - -} - -static void parallel_thread (void) -{ - // thread-local storage - unsigned int serial = 1; - unsigned int mboxsize = sizeof(unsigned int)*(max_objectid() + 20); - unsigned int * local_mbox = (unsigned int *) alloca(mboxsize); - memset(local_mbox,0,mboxsize); - - for (int y = starty; y < stopy; y++) { { - drawing_area drawing(startx, totaly-y, stopx-startx, 1); - for (int x = startx; x < stopx; x++) { - color_t c = render_one_pixel (x, y, local_mbox, serial, startx, stopx, starty, stopy); - drawing.put_pixel(c); - } } - if(!video->next_frame()) return; - } -} - -void * thread_trace(thr_parms * parms) -{ - // shared but read-only so could be private too - all_parms = parms; - scene = parms->scene; - startx = parms->startx; - stopx = parms->stopx; - starty = parms->starty; - stopy = parms->stopy; - jitterscale = 40.0*(scene.hres + scene.vres); - totaly = parms->scene.vres-1; - - parallel_thread (); - - return(NULL); -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/trace.tbb.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/trace.tbb.cpp deleted file mode 100644 index 43c9f876c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/trace.tbb.cpp +++ /dev/null @@ -1,271 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -#include "machine.h" -#include "types.h" -#include "macros.h" -#include "vector.h" -#include "tgafile.h" -#include "trace.h" -#include "light.h" -#include "shade.h" -#include "camera.h" -#include "util.h" -#include "intersect.h" -#include "global.h" -#include "ui.h" -#include "tachyon_video.h" - -// shared but read-only so could be private too -static thr_parms *all_parms; -static scenedef scene; -static int startx; -static int stopx; -static int starty; -static int stopy; -static flt jitterscale; -static int totaly; - -#ifdef MARK_RENDERING_AREA - -// rgb colors list for coloring image by each thread -static const float inner_alpha = 0.3; -static const float border_alpha = 0.5; -#define NUM_COLORS 24 -static int colors[NUM_COLORS][3] = { - {255,110,0}, {220,254,0}, {102,254,0}, {0,21,254}, {97,0,254}, {254,30,0}, - {20,41,8}, {144,238,38}, {184,214,139}, {28,95,20}, {139,173,148}, {188,228,183}, - {145,47,56}, {204,147,193}, {45,202,143}, {204,171,143}, {143,160,204}, {220,173,3}, - {1,152,231}, {79,235,237}, {52,193,72}, {67,136,151}, {78,87,179}, {143,255,9}, -}; - -#include "tbb/atomic.h" -#include "tbb/enumerable_thread_specific.h" -// storage and counter for thread numbers in order of first task run -typedef tbb::enumerable_thread_specific< int > thread_id_t; -thread_id_t thread_ids (-1); -tbb::atomic thread_number; - -#endif - -#include "tbb/task_scheduler_init.h" -#include "tbb/parallel_for.h" -#include "tbb/spin_mutex.h" -#include "tbb/blocked_range2d.h" - -static tbb::spin_mutex MyMutex, MyMutex2; - -static color_t render_one_pixel (int x, int y, unsigned int *local_mbox, unsigned int &serial, - int startx, int stopx, int starty, int stopy -#ifdef MARK_RENDERING_AREA - , int *blend, float alpha -#endif -) -{ - /* private vars moved inside loop */ - ray primary, sample; - color col, avcol; - int R,G,B; - intersectstruct local_intersections; - int alias; - /* end private */ - - primary=camray(&scene, x, y); - primary.intstruct = &local_intersections; - primary.flags = RT_RAY_REGULAR; - - serial++; - primary.serial = serial; - primary.mbox = local_mbox; - primary.maxdist = FHUGE; - primary.scene = &scene; - col=trace(&primary); - - serial = primary.serial; - - /* perform antialiasing if enabled.. */ - if (scene.antialiasing > 0) { - for (alias=0; alias < scene.antialiasing; alias++) { - - serial++; /* increment serial number */ - sample=primary; /* copy the regular primary ray to start with */ - sample.serial = serial; - - { - tbb::spin_mutex::scoped_lock lock (MyMutex); - sample.d.x+=((rand() % 100) - 50) / jitterscale; - sample.d.y+=((rand() % 100) - 50) / jitterscale; - sample.d.z+=((rand() % 100) - 50) / jitterscale; - } - - avcol=trace(&sample); - - serial = sample.serial; /* update our overall serial # */ - - col.r += avcol.r; - col.g += avcol.g; - col.b += avcol.b; - } - - col.r /= (scene.antialiasing + 1.0); - col.g /= (scene.antialiasing + 1.0); - col.b /= (scene.antialiasing + 1.0); - } - - /* Handle overexposure and underexposure here... */ - R=(int) (col.r*255); - if (R > 255) R = 255; - else if (R < 0) R = 0; - - G=(int) (col.g*255); - if (G > 255) G = 255; - else if (G < 0) G = 0; - - B=(int) (col.b*255); - if (B > 255) B = 255; - else if (B < 0) B = 0; - -#ifdef MARK_RENDERING_AREA - R = int((1.0 - alpha) * R + alpha * blend[0]); - G = int((1.0 - alpha) * G + alpha * blend[1]); - B = int((1.0 - alpha) * B + alpha * blend[2]); -#endif - - return video->get_color(R, G, B); -} - -class parallel_task { -public: - void operator() (const tbb::blocked_range2d &r) const - { - // task-local storage - unsigned int serial = 1; - unsigned int mboxsize = sizeof(unsigned int)*(max_objectid() + 20); - unsigned int * local_mbox = (unsigned int *) alloca(mboxsize); - memset(local_mbox,0,mboxsize); -#ifdef MARK_RENDERING_AREA - // compute thread number while first task run - thread_id_t::reference thread_id = thread_ids.local(); - if (thread_id == -1) thread_id = thread_number++; - // choose thread color - int pos = thread_id % NUM_COLORS; - if(video->running) { - drawing_area drawing(r.cols().begin(), totaly-r.rows().end(), r.cols().end() - r.cols().begin(), r.rows().end()-r.rows().begin()); - for (int i = 1, y = r.rows().begin(); y != r.rows().end(); ++y, i++) { - drawing.set_pos(0, drawing.size_y-i); - for (int x = r.cols().begin(); x != r.cols().end(); x++) { - int d = (y % 3 == 0) ? 2 : 1; - drawing.put_pixel(video->get_color(colors[pos][0]/d, colors[pos][1]/d, colors[pos][2]/d)); - } - } - } -#endif - if(video->next_frame()) { - drawing_area drawing(r.cols().begin(), totaly-r.rows().end(), r.cols().end() - r.cols().begin(), r.rows().end()-r.rows().begin()); - for (int i = 1, y = r.rows().begin(); y != r.rows().end(); ++y, i++) { - drawing.set_pos(0, drawing.size_y-i); - for (int x = r.cols().begin(); x != r.cols().end(); x++) { -#ifdef MARK_RENDERING_AREA - float alpha = y==r.rows().begin()||y==r.rows().end()-1||x==r.cols().begin()||x==r.cols().end()-1 - ? border_alpha : inner_alpha; - color_t c = render_one_pixel (x, y, local_mbox, serial, startx, stopx, starty, stopy, colors[pos], alpha); -#else - color_t c = render_one_pixel (x, y, local_mbox, serial, startx, stopx, starty, stopy); -#endif - drawing.put_pixel(c); - } - } - } - } - - parallel_task () {} -}; - -void * thread_trace(thr_parms * parms) -{ - int n, nthreads = tbb::task_scheduler_init::automatic; - char *nthreads_str = getenv ("TBB_NUM_THREADS"); - if (nthreads_str && (sscanf (nthreads_str, "%d", &n) > 0) && (n > 0)) nthreads = n; - tbb::task_scheduler_init init (nthreads); - - // shared but read-only so could be private too - all_parms = parms; - scene = parms->scene; - startx = parms->startx; - stopx = parms->stopx; - starty = parms->starty; - stopy = parms->stopy; - jitterscale = 40.0*(scene.hres + scene.vres); - totaly = parms->scene.vres; -#ifdef MARK_RENDERING_AREA - thread_ids.clear(); -#endif - - int g, grain_size = 8; - char *grain_str = getenv ("TBB_GRAINSIZE"); - if (grain_str && (sscanf (grain_str, "%d", &g) > 0) && (g > 0)) grain_size = g; - char *sched_str = getenv ("TBB_PARTITIONER"); - static tbb::affinity_partitioner g_ap; // reused across calls to thread_trace - if ( sched_str && !strncmp(sched_str, "aff", 3) ) - tbb::parallel_for (tbb::blocked_range2d (starty, stopy, grain_size, startx, stopx, grain_size), parallel_task (), g_ap); - else if ( sched_str && !strncmp(sched_str, "simp", 4) ) - tbb::parallel_for (tbb::blocked_range2d (starty, stopy, grain_size, startx, stopx, grain_size), parallel_task (), tbb::simple_partitioner()); - else - tbb::parallel_for (tbb::blocked_range2d (starty, stopy, grain_size, startx, stopx, grain_size), parallel_task (), tbb::auto_partitioner()); - - return(NULL); -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/trace.tbb1d.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/trace.tbb1d.cpp deleted file mode 100644 index 405f072b7..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/trace.tbb1d.cpp +++ /dev/null @@ -1,213 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -#include "machine.h" -#include "types.h" -#include "macros.h" -#include "vector.h" -#include "tgafile.h" -#include "trace.h" -#include "light.h" -#include "shade.h" -#include "camera.h" -#include "util.h" -#include "intersect.h" -#include "global.h" -#include "ui.h" -#include "tachyon_video.h" - -// shared but read-only so could be private too -static thr_parms *all_parms; -static scenedef scene; -static int startx; -static int stopx; -static int starty; -static int stopy; -static flt jitterscale; -static int totaly; - -#include "tbb/task_scheduler_init.h" -#include "tbb/parallel_for.h" -#include "tbb/spin_mutex.h" -#include "tbb/blocked_range.h" - -static tbb::spin_mutex MyMutex, MyMutex2; - -static color_t render_one_pixel (int x, int y, unsigned int *local_mbox, unsigned int &serial, - int startx, int stopx, int starty, int stopy) -{ - /* private vars moved inside loop */ - ray primary, sample; - color col, avcol; - int R,G,B; - intersectstruct local_intersections; - int alias; - /* end private */ - - primary=camray(&scene, x, y); - primary.intstruct = &local_intersections; - primary.flags = RT_RAY_REGULAR; - - serial++; - primary.serial = serial; - primary.mbox = local_mbox; - primary.maxdist = FHUGE; - primary.scene = &scene; - col=trace(&primary); - - serial = primary.serial; - - /* perform antialiasing if enabled.. */ - if (scene.antialiasing > 0) { - for (alias=0; alias < scene.antialiasing; alias++) { - - serial++; /* increment serial number */ - sample=primary; /* copy the regular primary ray to start with */ - sample.serial = serial; - - { - tbb::spin_mutex::scoped_lock lock (MyMutex); - sample.d.x+=((rand() % 100) - 50) / jitterscale; - sample.d.y+=((rand() % 100) - 50) / jitterscale; - sample.d.z+=((rand() % 100) - 50) / jitterscale; - } - - avcol=trace(&sample); - - serial = sample.serial; /* update our overall serial # */ - - col.r += avcol.r; - col.g += avcol.g; - col.b += avcol.b; - } - - col.r /= (scene.antialiasing + 1.0); - col.g /= (scene.antialiasing + 1.0); - col.b /= (scene.antialiasing + 1.0); - } - - /* Handle overexposure and underexposure here... */ - R=(int) (col.r*255); - if (R > 255) R = 255; - else if (R < 0) R = 0; - - G=(int) (col.g*255); - if (G > 255) G = 255; - else if (G < 0) G = 0; - - B=(int) (col.b*255); - if (B > 255) B = 255; - else if (B < 0) B = 0; - - return video->get_color(R, G, B); - -} - -class parallel_task { -public: - void operator() (const tbb::blocked_range &r) const - { - // task-local storage - unsigned int serial = 1; - unsigned int mboxsize = sizeof(unsigned int)*(max_objectid() + 20); - unsigned int * local_mbox = (unsigned int *) alloca(mboxsize); - memset(local_mbox,0,mboxsize); - - for (int y = r.begin(); y != r.end(); ++y) { { - drawing_area drawing(startx, totaly-y, stopx-startx, 1); - for (int x = startx; x < stopx; x++) { - color_t c = render_one_pixel (x, y, local_mbox, serial, startx, stopx, starty, stopy); - drawing.put_pixel(c); - } } - if(!video->next_frame()) return; - } - } - - parallel_task () {} -}; - -void * thread_trace(thr_parms * parms) -{ - int n, nthreads = tbb::task_scheduler_init::automatic; - char *nthreads_str = getenv ("TBB_NUM_THREADS"); - if (nthreads_str && (sscanf (nthreads_str, "%d", &n) > 0) && (n > 0)) nthreads = n; - tbb::task_scheduler_init init (nthreads); - - // shared but read-only so could be private too - all_parms = parms; - scene = parms->scene; - startx = parms->startx; - stopx = parms->stopx; - starty = parms->starty; - stopy = parms->stopy; - jitterscale = 40.0*(scene.hres + scene.vres); - totaly = parms->scene.vres-1; - - int g, grain_size = 1; - char *grain_str = getenv ("TBB_GRAINSIZE"); - if (grain_str && (sscanf (grain_str, "%d", &g) > 0) && (g > 0)) grain_size = g; - char *sched_str = getenv ("TBB_PARTITIONER"); - static tbb::affinity_partitioner g_ap; - if ( sched_str && !strncmp(sched_str, "aff", 3) ) - tbb::parallel_for (tbb::blocked_range (starty, stopy, grain_size), parallel_task (), g_ap ); - else if ( sched_str && !strncmp(sched_str, "simp", 4) ) - tbb::parallel_for (tbb::blocked_range (starty, stopy, grain_size), parallel_task (), tbb::simple_partitioner() ); - else - tbb::parallel_for (tbb::blocked_range (starty, stopy, grain_size), parallel_task (), tbb::auto_partitioner() ); - - return(NULL); -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/trace_rest.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/trace_rest.cpp deleted file mode 100644 index 51c00d999..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/trace_rest.cpp +++ /dev/null @@ -1,148 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * trace.c - This file contains the functions for firing primary rays - * and handling subsequent calculations - * - * $Id: trace_rest.cpp,v 1.4 2007-02-22 17:54:16 Exp $ - */ - -#include "machine.h" -#include "types.h" -#include "macros.h" -#include "vector.h" -#include "tgafile.h" -#include "trace.h" -#include "light.h" -#include "shade.h" -#include "camera.h" -#include "util.h" -#include "intersect.h" -#include "global.h" -#include "ui.h" -#include "tachyon_video.h" - -color trace(ray * primary) { - if (primary->depth > 0) { - VNorm(&primary->d); - reset_intersection(primary->intstruct); - intersect_objects(primary); - return shader(primary); - } - - /* if ray is truncated, return the background as its color */ - return primary->scene->background; -} - -void * thread_io(void * parms) { - thr_io_parms p; - - p= *((thr_io_parms *) parms); - writetgaregion(p.tga, p.iwidth, p.iheight, p.startx, p.starty, - p.stopx, p.stopy, p.buffer); - free(p.buffer); /* free the buffer once we are done with it.. */ - free(parms); - - return(NULL); -} - -void trace_shm(scenedef scene, /*char * buffer, */ int startx, int stopx, int starty, int stopy) { - - thr_parms * parms; - - parms = (thr_parms *) rt_getmem(sizeof(thr_parms)); - - parms->tid=0; - parms->nthr=1; - parms->scene=scene; - parms->startx=startx; - parms->stopx=stopx; - parms->starty=starty; - parms->stopy=stopy; - - thread_trace(parms); - - rt_freemem(parms); -} - -void trace_region(scenedef scene, void * tga, int startx, int starty, int stopx, int stopy) { - - if (scene.verbosemode) { - char msgtxt[2048]; - sprintf(msgtxt, "Node %3d tracing region %4d, %4d ---> %4d, %4d \n", 0, startx,starty,stopx,stopy); - rt_ui_message(MSG_0, msgtxt); - } - - trace_shm(scene, /*buffer,*/ startx, stopx, starty, stopy); -/* not used now - writetgaregion(tga, scene.hres, scene.vres, - startx, starty, stopx, stopy, global_buffer); - - if (scene.rawimage != NULL) { - int x, y; - int totalx = stopx - startx + 1; - for (y=starty; y<=stopy; y++) { - for (x=0; x= EPSILON) && - (VLength(&edge2) >= EPSILON) && - (VLength(&edge3) >= EPSILON)) { - - t=(tri *) rt_getmem(sizeof(tri)); - - t->nextobj = NULL; - t->methods = &tri_methods; - - t->tex = (texture *)tex; - t->v0 = v0; - t->edge1 = edge1; - t->edge2 = edge2; - - return (object *) t; - } - - return NULL; /* was a degenerate triangle */ -} - - -object * newstri(void * tex, vector v0, vector v1, vector v2, - vector n0, vector n1, vector n2) { - stri * t; - vector edge1, edge2, edge3; - - VSub(&v1, &v0, &edge1); - VSub(&v2, &v0, &edge2); - VSub(&v2, &v1, &edge3); - - /* check to see if this will be a degenerate triangle before creation */ - if ((VLength(&edge1) >= EPSILON) && - (VLength(&edge2) >= EPSILON) && - (VLength(&edge3) >= EPSILON)) { - - t=(stri *) rt_getmem(sizeof(stri)); - - t->nextobj = NULL; - t->methods = &stri_methods; - - t->tex = (texture *)tex; - t->v0 = v0; - t->edge1 = edge1; - t->edge2 = edge2; - t->n0 = n0; - t->n1 = n1; - t->n2 = n2; - - return (object *) t; - } - - return NULL; /* was a degenerate triangle */ -} - -#define CROSS(dest,v1,v2) \ - dest.x=v1.y*v2.z-v1.z*v2.y; \ - dest.y=v1.z*v2.x-v1.x*v2.z; \ - dest.z=v1.x*v2.y-v1.y*v2.x; - -#define DOT(v1,v2) (v1.x*v2.x+v1.y*v2.y+v1.z*v2.z) - -#define SUB(dest,v1,v2) \ - dest.x=v1.x-v2.x; \ - dest.y=v1.y-v2.y; \ - dest.z=v1.z-v2.z; - -static int tri_bbox(void * obj, vector * min, vector * max) { - tri * t = (tri *) obj; - vector v1, v2; - - VAdd(&t->v0, &t->edge1, &v1); - VAdd(&t->v0, &t->edge2, &v2); - - min->x = MYMIN( t->v0.x , MYMIN( v1.x , v2.x )); - min->y = MYMIN( t->v0.y , MYMIN( v1.y , v2.y )); - min->z = MYMIN( t->v0.z , MYMIN( v1.z , v2.z )); - - max->x = MYMAX( t->v0.x , MYMAX( v1.x , v2.x )); - max->y = MYMAX( t->v0.y , MYMAX( v1.y , v2.y )); - max->z = MYMAX( t->v0.z , MYMAX( v1.z , v2.z )); - - return 1; -} - -static void tri_intersect(tri * trn, ray * ry) { - vector tvec, pvec, qvec; - flt det, inv_det, t, u, v; - - /* begin calculating determinant - also used to calculate U parameter */ - CROSS(pvec, ry->d, trn->edge2); - - /* if determinant is near zero, ray lies in plane of triangle */ - det = DOT(trn->edge1, pvec); - - if (det > -EPSILON && det < EPSILON) - return; - - inv_det = 1.0 / det; - - /* calculate distance from vert0 to ray origin */ - SUB(tvec, ry->o, trn->v0); - - /* calculate U parameter and test bounds */ - u = DOT(tvec, pvec) * inv_det; - if (u < 0.0 || u > 1.0) - return; - - /* prepare to test V parameter */ - CROSS(qvec, tvec, trn->edge1); - - /* calculate V parameter and test bounds */ - v = DOT(ry->d, qvec) * inv_det; - if (v < 0.0 || u + v > 1.0) - return; - - /* calculate t, ray intersects triangle */ - t = DOT(trn->edge2, qvec) * inv_det; - - add_intersection(t,(object *) trn, ry); -} - - -static void tri_normal(tri * trn, vector * pnt, ray * incident, vector * N) { - - CROSS((*N), trn->edge1, trn->edge2); - - VNorm(N); - - if (VDot(N, &(incident->d)) > 0.0) { - N->x=-N->x; - N->y=-N->y; - N->z=-N->z; - } -} - -static void stri_normal(stri * trn, vector * pnt, ray * incident, vector * N) { - flt U, V, W, lensqr; - vector P, tmp, norm; - - CROSS(norm, trn->edge1, trn->edge2); - lensqr = DOT(norm, norm); - - VSUB((*pnt), trn->v0, P); - - CROSS(tmp, P, trn->edge2); - U = DOT(tmp, norm) / lensqr; - - CROSS(tmp, trn->edge1, P); - V = DOT(tmp, norm) / lensqr; - - W = 1.0 - (U + V); - - N->x = W*trn->n0.x + U*trn->n1.x + V*trn->n2.x; - N->y = W*trn->n0.y + U*trn->n1.y + V*trn->n2.y; - N->z = W*trn->n0.z + U*trn->n1.z + V*trn->n2.z; - - VNorm(N); -} - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/triangle.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/triangle.h deleted file mode 100644 index ab511e9f0..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/triangle.h +++ /dev/null @@ -1,102 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * triangle.h - This file contains the defines for triangles etc. - * - * $Id: triangle.h,v 1.2 2007-02-22 17:54:16 Exp $ - */ - -object * newtri(void *, vector, vector, vector); -object * newstri(void *, vector, vector, vector, vector, vector, vector); - -#ifdef TRIANGLE_PRIVATE - -#define TRIXMAJOR 0 -#define TRIYMAJOR 1 -#define TRIZMAJOR 2 - -typedef struct { - unsigned int id; /* Unique Object serial number */ - void * nextobj; /* pointer to next object in list */ - object_methods * methods; /* this object's methods */ - texture * tex; /* object texture */ - vector edge2; - vector edge1; - vector v0; -} tri; - -typedef struct { - unsigned int id; /* Unique Object serial number */ - void * nextobj; /* pointer to next object in list */ - object_methods * methods; /* this object's methods */ - texture * tex; /* object texture */ - vector edge2; - vector edge1; - vector v0; - vector n0; - vector n1; - vector n2; -} stri; - -static int tri_bbox(void * obj, vector * min, vector * max); - -static void tri_intersect(tri *, ray *); - -static void tri_normal(tri *, vector *, ray *, vector *); -static void stri_normal(stri *, vector *, ray *, vector *); -#endif diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/types.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/types.h deleted file mode 100644 index 84e56d205..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/types.h +++ /dev/null @@ -1,234 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -#if __MINGW32__ -#include -#elif _WIN32 -#include -#define alloca _alloca -#elif __FreeBSD__||__NetBSD__ -#include -#else -#include -#endif - -/* - * types.h - This file contains all of the type definitions for the raytracer - * - * $Id: types.h,v 1.2 2007-02-22 17:54:16 Exp $ - */ - -#define MAXOCTNODES 25 /* subdivide octants /w > # of children */ -#define SPEPSILON 0.000001 /* amount to crawl down a ray */ -#define EPSILON 0.000001 /* amount to crawl down a ray */ -#define TWOPI 6.2831853 /* guess */ -#define FHUGE 1e18 /* biggest fp number we can represent */ - -/* Maximum internal table sizes */ -/* Use prime numbers for best memory system performance */ -#define INTTBSIZE 1024 /* maximum intersections we can hold */ -#define MAXLIGHTS 39 /* maximum number of lights in a scene */ -#define MAXIMGS 39 /* maxiumum number of distinct images */ -#define RPCQSIZE 113 /* number of RPC messages to queue */ - -/* Parameter values for rt_boundmode() */ -#define RT_BOUNDING_DISABLED 0 /* spatial subdivision/bounding disabled */ -#define RT_BOUNDING_ENABLED 1 /* spatial subdivision/bounding enabled */ - -/* Parameter values for rt_displaymode() */ -#define RT_DISPLAY_DISABLED 0 /* video output enabled */ -#define RT_DISPLAY_ENABLED 1 /* video output disabled */ - -/* Ray flags */ -#define RT_RAY_REGULAR 1 -#define RT_RAY_SHADOW 2 -#define RT_RAY_BOUNDED 4 -#define RT_RAY_FINISHED 8 - -#ifdef USESINGLEFLT -typedef float flt; /* generic floating point number, using float */ -#else -typedef double flt; /* generic floating point number, using double */ -#endif - -typedef unsigned char byte; /* 1 byte */ -typedef signed int word; /* 32 bit integer */ - -typedef struct { - flt x; /* X coordinate value */ - flt y; /* Y coordinate value */ - flt z; /* Z coordinate value */ -} vector; - -typedef struct { - flt r; /* Red component */ - flt g; /* Green component */ - flt b; /* Blue component */ -} color; - -typedef struct { - byte r; /* Red component */ - byte g; /* Green component */ - byte b; /* Blue component */ -} bytecolor; - -typedef struct { /* Raw 24 bit image structure, for tga, ppm etc */ - int loaded; /* image memory residence flag */ - int xres; /* image X axis size */ - int yres; /* image Y axis size */ - int bpp; /* image bits per pixel */ - char name[96]; /* image filename (with path) */ - unsigned char * data; /* pointer to raw byte image data */ -} rawimage; - -typedef struct { /* Scalar Volume Data */ - int loaded; /* Volume data memory residence flag */ - int xres; /* volume X axis size */ - int yres; /* volume Y axis size */ - int zres; /* volume Z axis size */ - flt opacity; /* opacity per unit length */ - char name[96]; /* Volume data filename */ - unsigned char * data; /* pointer to raw byte volume data */ -} scalarvol; - -typedef struct { - color (* texfunc)(void *, void *, void *); - int shadowcast; /* does the object cast a shadow */ - int islight; /* light flag... */ - color col; /* base object color */ - flt ambient; /* ambient lighting */ - flt diffuse; /* diffuse reflection */ - flt phong; /* phong specular highlights */ - flt phongexp; /* phong exponent/shininess factor */ - int phongtype; /* phong type: 0 == plastic, nonzero == metal */ - flt specular; /* specular reflection */ - flt opacity; /* how opaque the object is */ - vector ctr; /* origin of texture */ - vector rot; /* rotation of texture about origin */ - vector scale; /* scale of texture in x,y,z */ - vector uaxs; /* planar map U axis */ - vector vaxs; /* planar map V axis */ - void * img; /* pointer to image for image mapping */ - void * obj; /* object ptr, hack for volume shaders for now */ -} texture; - -typedef struct { - void (* intersect)(void *, void *); /* intersection func ptr */ - void (* normal)(void *, void *, void *, void *); /* normal function ptr */ - int (* bbox)(void *, vector *, vector *); /* return the object bbox */ - void (* free)(void *); /* free the object */ -} object_methods; - -typedef struct { - unsigned int id; /* Unique Object serial number */ - void * nextobj; /* pointer to next object in list */ - object_methods * methods; /* this object's methods */ - texture * tex; /* object texture */ -} object; - -typedef struct { - object * obj; /* to object we hit */ - flt t; /* distance along the ray to the hit point */ -} intersection; - -typedef struct { - int num; /* number of intersections */ - intersection closest; /* closest intersection > 0.0 */ - intersection list[INTTBSIZE]; /* list of all intersections */ -} intersectstruct; - -typedef struct { - char outfilename[200]; /* name of the output image */ - unsigned char * rawimage; /* pointer to a raw rgb image to be stored */ - int hres; /* horizontal output image resolution */ - int vres; /* vertical output image resolution */ - flt aspectratio; /* aspect ratio of output image */ - int raydepth; /* maximum recursion depth */ - int antialiasing; /* number of antialiasing rays to fire */ - int verbosemode; /* verbose reporting flag */ - int boundmode; /* automatic spatial subdivision flag */ - int boundthresh; /* threshold number of subobjects */ - int displaymode; /* run-time X11 display flag */ - vector camcent; /* center of the camera in world coords */ - vector camviewvec; /* view direction of the camera (Z axis) */ - vector camrightvec; /* right axis for the camera (X axis) */ - vector camupvec; /* up axis for the camera (Y axis) */ - flt camzoom; /* zoom factor for the camera */ - color background; /* scene background color */ -} scenedef; - -typedef struct { - intersectstruct * intstruct; /* ptr to thread's intersection data */ - unsigned int depth; /* levels left to recurse.. (maxdepth - curdepth) */ - unsigned int flags; /* ray flags, any special treatment needed etc */ - unsigned int serial; /* serial number of the ray */ - unsigned int * mbox; /* mailbox array for optimizing intersections */ - vector o; /* origin of the ray X,Y,Z */ - vector d; /* normalized direction of the ray */ - flt maxdist; /* maximum distance to search for intersections */ - vector s; /* startpoint of the ray (may differ from origin */ - vector e; /* endpoint of the ray if bounded */ - scenedef * scene; /* pointer to the scene, for global parms such as */ - /* background colors etc */ -} ray; - -typedef struct { - int type; /* RPC call type */ - int from; /* Sending processor */ - int len; /* length of parms in bytes */ - void * parms; /* Parameters to RPC */ -} rpcmsg; diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/ui.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/ui.cpp deleted file mode 100644 index d85416de7..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/ui.cpp +++ /dev/null @@ -1,125 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * ui.c - Contains functions for dealing with user interfaces - * - * $Id: ui.cpp,v 1.2 2007-02-22 17:54:16 Exp $ - */ - -#include "machine.h" -#include "types.h" -#include "macros.h" -#include "util.h" -#include "ui.h" - -static void (* rt_static_ui_message) (int, const char *) = NULL; -static void (* rt_static_ui_progress) (int) = NULL; -static int (* rt_static_ui_checkaction) (void) = NULL; - -extern bool silent_mode; - -void set_rt_ui_message(void (* func) (int, const char *)) { - rt_static_ui_message = func; -} - -void set_rt_ui_progress(void (* func) (int)) { - rt_static_ui_progress = func; -} - -void rt_ui_message(int level, const char * msg) { - if (rt_static_ui_message == NULL) { - if ( !silent_mode ) { - fprintf(stderr, "%s\n", msg); - fflush (stderr); - } - } else { - rt_static_ui_message(level, msg); - } -} - -void rt_ui_progress(int percent) { - if (rt_static_ui_progress != NULL) - rt_static_ui_progress(percent); - else { - if ( !silent_mode ) { - fprintf(stderr, "\r %3d%% Complete \r", percent); - fflush(stderr); - } - } -} - -int rt_ui_checkaction(void) { - if (rt_static_ui_checkaction != NULL) - return rt_static_ui_checkaction(); - else - return 0; -} - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/ui.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/ui.h deleted file mode 100644 index 4770f1277..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/ui.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * ui.h - defines for user interface functions - * - * $Id: ui.h,v 1.2 2007-02-22 17:54:16 Exp $ - */ - -/* Different types of message, for levels of verbosity etc */ -#define MSG_0 100 -#define MSG_1 101 -#define MSG_2 102 -#define MSG_3 103 -#define MSG_4 104 -#define MSG_5 105 -#define MSG_ERR 200 -#define MSG_ABORT 300 - -void rt_ui_message(int, const char *); -void rt_ui_progress(int); -int rt_ui_checkaction(void); diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/util.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/util.cpp deleted file mode 100644 index 6e95897b3..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/util.cpp +++ /dev/null @@ -1,182 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * util.c - Contains all of the timing functions for various platforms. - * - * $Id: util.cpp,v 1.6 2007-02-22 18:17:51 amalakho Exp $ - */ - -#include "machine.h" -#include "types.h" -#include "macros.h" -#include "util.h" -#include "light.h" -#include "global.h" -#include "ui.h" - -void rt_finalize(void); - -#if !defined( _WIN32 ) -#include -#include - -void rt_sleep(int msec) { - usleep(msec*1000); -} - -#else //_WIN32 - -#undef OLDUNIXTIME -#undef STDTIME - -#include - -void rt_sleep(int msec) { - Sleep(msec); -} - -timer gettimer(void) { - return GetTickCount (); -} - -flt timertime(timer st, timer fn) { - double ttime, start, end; - - start = ((double) st) / ((double) 1000.00); - end = ((double) fn) / ((double) 1000.00); - ttime = end - start; - - return ttime; -} -#endif /* _WIN32 */ - -/* if we're on a Unix with gettimeofday() we'll use newer timers */ -#if defined( STDTIME ) - struct timezone tz; - -timer gettimer(void) { - timer t; - gettimeofday(&t, &tz); - return t; -} - -flt timertime(timer st, timer fn) { - double ttime, start, end; - - start = (st.tv_sec+1.0*st.tv_usec / 1000000.0); - end = (fn.tv_sec+1.0*fn.tv_usec / 1000000.0); - ttime = end - start; - - return ttime; -} -#endif /* STDTIME */ - - - -/* use the old fashioned Unix time functions */ -#if defined( OLDUNIXTIME ) -timer gettimer(void) { - return time(NULL); -} - -flt timertime(timer st, timer fn) { - return difftime(fn, st);; -} -#endif /* OLDUNIXTIME */ - - - -/* random other helper utility functions */ -int rt_meminuse(void) { - return rt_mem_in_use; -} - -void * rt_getmem(unsigned int bytes) { - void * mem; - - mem=malloc( bytes ); - if (mem!=NULL) { - rt_mem_in_use += bytes; - } - else { - rtbomb("No more memory!!!!"); - } - return mem; -} - -unsigned int rt_freemem(void * addr) { - unsigned int bytes; - - free(addr); - - bytes=0; - rt_mem_in_use -= bytes; - return bytes; -} - -void rtbomb(const char * msg) { - rt_ui_message(MSG_ERR, msg); - rt_ui_message(MSG_ABORT, "Rendering Aborted."); - - rt_finalize(); - exit(1); -} - -void rtmesg(const char * msg) { - rt_ui_message(MSG_0, msg); -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/util.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/util.h deleted file mode 100644 index 9640375ca..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/util.h +++ /dev/null @@ -1,86 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * util.h - This file contains defines for the timer functions... - * - * $Id: util.h,v 1.3 2007-02-22 17:54:17 Exp $ - */ - -#include "machine.h" - -#if defined( _WIN32 ) - #include - typedef DWORD timer; -#else - #include - #include - #if defined( STDTIME ) - typedef timeval timer; - #elif defined ( OLDUNIXTIME ) - typedef time_t timer; - #endif /* OLDUNIXTIME */ /* STDTIME */ - #endif /* _WIN32 */ - -timer gettimer(void); -flt timertime(timer st, timer fn); -void rt_sleep(int); -int rt_meminuse(void); -void * rt_getmem(unsigned int); -unsigned int rt_freemem(void *); -void rtbomb(const char *); -void rtmesg(const char *); diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/vector.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/vector.cpp deleted file mode 100644 index be7f249b6..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/vector.cpp +++ /dev/null @@ -1,144 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * vector.c - This file contains all of the vector arithmetic functions. - * - * $Id: vector.cpp,v 1.2 2007-02-22 17:54:17 Exp $ - */ - -#include "machine.h" -#include "types.h" -#include "macros.h" - -flt VDot(vector *a, vector *b) { - return (a->x*b->x + a->y*b->y + a->z*b->z); -} - -void VCross(vector * a, vector * b, vector * c) { - c->x = (a->y * b->z) - (a->z * b->y); - c->y = (a->z * b->x) - (a->x * b->z); - c->z = (a->x * b->y) - (a->y * b->x); -} - -flt VLength(vector * a) { - return (flt) sqrt((a->x * a->x) + (a->y * a->y) + (a->z * a->z)); -} - -void VNorm(vector * a) { - flt len; - - len=sqrt((a->x * a->x) + (a->y * a->y) + (a->z * a->z)); - if (len != 0.0) { - a->x /= len; - a->y /= len; - a->z /= len; - } -} - -void VAdd(vector * a, vector * b, vector * c) { - c->x = (a->x + b->x); - c->y = (a->y + b->y); - c->z = (a->z + b->z); -} - -void VSub(vector * a, vector * b, vector * c) { - c->x = (a->x - b->x); - c->y = (a->y - b->y); - c->z = (a->z - b->z); -} - -void VAddS(flt a, vector * A, vector * B, vector * C) { - C->x = (a * A->x) + B->x; - C->y = (a * A->y) + B->y; - C->z = (a * A->z) + B->z; -} - -vector Raypnt(ray * a, flt t) { - vector temp; - - temp.x=a->o.x + (a->d.x * t); - temp.y=a->o.y + (a->d.y * t); - temp.z=a->o.z + (a->d.z * t); - - return temp; -} - -void VScale(vector * a, flt s) { - a->x *= s; - a->y *= s; - a->z *= s; -} - -void ColorAddS(color * a, color * b, flt s) { - a->r += b->r * s; - a->g += b->g * s; - a->b += b->b * s; -} - -void ColorAccum(color * a, color * b) { - a->r += b->r; - a->g += b->g; - a->b += b->b; -} - -void ColorScale(color * a, flt s) { - a->r *= s; - a->g *= s; - a->b *= s; -} - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/vector.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/vector.h deleted file mode 100644 index b66829d98..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/vector.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * vector.h - This file contains declarations of vector functions - * - * $Id: vector.h,v 1.2 2007-02-22 17:54:17 Exp $ - */ - -flt VDot(vector *, vector *); -void VCross(vector *, vector *, vector *); -flt VLength(vector *); -void VNorm(vector *); -void VAdd(vector *, vector *, vector *); -void VSub(vector *, vector *, vector *); -void VAddS(flt, vector *, vector *, vector *); -vector Raypnt(ray *, flt); -void VScale(vector * a, flt s); - -void ColorAddS(color * a, color * b, flt s); -void ColorAccum(color * a, color * b); -void ColorScale(color * a, flt s); diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/vol.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/vol.cpp deleted file mode 100644 index b3f1f54ac..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/vol.cpp +++ /dev/null @@ -1,312 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * vol.c - Volume rendering helper routines etc. - * - * - * $Id: vol.cpp,v 1.3 2007-02-22 18:17:51 amalakho Exp $ - */ - -#include -#include "machine.h" -#include "types.h" -#include "macros.h" -#include "vector.h" -#include "util.h" -#include "vol.h" -#include "box.h" -#include "trace.h" -#include "ui.h" -#include "light.h" -#include "shade.h" - -int scalarvol_bbox(void * obj, vector * min, vector * max) { - box * b = (box *) obj; - - *min = b->min; - *max = b->max; - - return 1; -} - -void * newscalarvol(void * intex, vector min, vector max, - int xs, int ys, int zs, char * fname, scalarvol * invol) { - box * bx; - texture * tx, * tex; - scalarvol * vol; - - tex=(texture *)intex; - tex->shadowcast = 0; /* doesn't cast a shadow */ - - tx=(texture *)rt_getmem(sizeof(texture)); - - /* is the volume data already loaded? */ - if (invol==NULL) { - vol=(scalarvol *)rt_getmem(sizeof(scalarvol)); - vol->loaded=0; - vol->data=NULL; - } - else - vol=invol; - - vol->opacity=tex->opacity; - vol->xres=xs; - vol->yres=ys; - vol->zres=zs; - strcpy(vol->name, fname); - - tx->ctr.x = 0.0; - tx->ctr.y = 0.0; - tx->ctr.z = 0.0; - tx->rot = tx->ctr; - tx->scale = tx->ctr; - tx->uaxs = tx->ctr; - tx->vaxs = tx->ctr; - - tx->islight = 0; - tx->shadowcast = 0; /* doesn't cast a shadow */ - - tx->col = tex->col; - tx->ambient = 1.0; - tx->diffuse = 0.0; - tx->specular = 0.0; - tx->opacity = 1.0; - tx->img = vol; - tx->texfunc = (color(*)(void *, void *, void *))(scalar_volume_texture); - - bx=newbox(tx, min, max); - tx->obj = (void *) bx; /* XXX hack! */ - - return (void *) bx; -} - - -color VoxelColor(flt scalar) { - color col; - - if (scalar > 1.0) - scalar = 1.0; - - if (scalar < 0.0) - scalar = 0.0; - - if (scalar < 0.25) { - col.r = scalar * 4.0; - col.g = 0.0; - col.b = 0.0; - } - else { - if (scalar < 0.75) { - col.r = 1.0; - col.g = (scalar - 0.25) * 2.0; - col.b = 0.0; - } - else { - col.r = 1.0; - col.g = 1.0; - col.b = (scalar - 0.75) * 4.0; - } - } - - return col; -} - -color scalar_volume_texture(vector * hit, texture * tex, ray * ry) { - color col, col2; - box * bx; - flt a, tx1, tx2, ty1, ty2, tz1, tz2; - flt tnear, tfar; - flt t, tdist, dt, sum, tt; - vector pnt, bln; - scalarvol * vol; - flt scalar, transval; - int x, y, z; - unsigned char * ptr; - - bx=(box *) tex->obj; - vol=(scalarvol *)bx->tex->img; - - col.r=0.0; - col.g=0.0; - col.b=0.0; - - tnear= -FHUGE; - tfar= FHUGE; - - if (ry->d.x == 0.0) { - if ((ry->o.x < bx->min.x) || (ry->o.x > bx->max.x)) return col; - } - else { - tx1 = (bx->min.x - ry->o.x) / ry->d.x; - tx2 = (bx->max.x - ry->o.x) / ry->d.x; - if (tx1 > tx2) { a=tx1; tx1=tx2; tx2=a; } - if (tx1 > tnear) tnear=tx1; - if (tx2 < tfar) tfar=tx2; - } - if (tnear > tfar) return col; - if (tfar < 0.0) return col; - - if (ry->d.y == 0.0) { - if ((ry->o.y < bx->min.y) || (ry->o.y > bx->max.y)) return col; - } - else { - ty1 = (bx->min.y - ry->o.y) / ry->d.y; - ty2 = (bx->max.y - ry->o.y) / ry->d.y; - if (ty1 > ty2) { a=ty1; ty1=ty2; ty2=a; } - if (ty1 > tnear) tnear=ty1; - if (ty2 < tfar) tfar=ty2; - } - if (tnear > tfar) return col; - if (tfar < 0.0) return col; - - if (ry->d.z == 0.0) { - if ((ry->o.z < bx->min.z) || (ry->o.z > bx->max.z)) return col; - } - else { - tz1 = (bx->min.z - ry->o.z) / ry->d.z; - tz2 = (bx->max.z - ry->o.z) / ry->d.z; - if (tz1 > tz2) { a=tz1; tz1=tz2; tz2=a; } - if (tz1 > tnear) tnear=tz1; - if (tz2 < tfar) tfar=tz2; - } - if (tnear > tfar) return col; - if (tfar < 0.0) return col; - - if (tnear < 0.0) tnear=0.0; - - tdist=sqrt((flt) (vol->xres*vol->xres + vol->yres*vol->yres + vol->zres*vol->zres)); - tt = (vol->opacity / tdist); - - bln.x=fabs(bx->min.x - bx->max.x); - bln.y=fabs(bx->min.y - bx->max.y); - bln.z=fabs(bx->min.z - bx->max.z); - - dt=sqrt(bln.x*bln.x + bln.y*bln.y + bln.z*bln.z) / tdist; - sum=0.0; - - /* move the volume residency check out of loop.. */ - if (!vol->loaded) { - LoadVol(vol); - vol->loaded=1; - } - - for (t=tnear; t<=tfar; t+=dt) { - pnt.x=((ry->o.x + (ry->d.x * t)) - bx->min.x) / bln.x; - pnt.y=((ry->o.y + (ry->d.y * t)) - bx->min.y) / bln.y; - pnt.z=((ry->o.z + (ry->d.z * t)) - bx->min.z) / bln.z; - - x=(int) ((vol->xres - 1.5) * pnt.x + 0.5); - y=(int) ((vol->yres - 1.5) * pnt.y + 0.5); - z=(int) ((vol->zres - 1.5) * pnt.z + 0.5); - - ptr = vol->data + ((vol->xres * vol->yres * z) + (vol->xres * y) + x); - - scalar = (flt) ((flt) 1.0 * ((int) ptr[0])) / 255.0; - - sum += tt * scalar; - - transval = tt * scalar; - - col2 = VoxelColor(scalar); - - if (sum < 1.0) { - col.r += transval * col2.r; - col.g += transval * col2.g; - col.b += transval * col2.b; - if (sum < 0.0) sum=0.0; - } - else { - sum=1.0; - } - } - - if (sum < 1.0) { /* spawn transmission rays / refraction */ - color transcol; - - transcol = shade_transmission(ry, hit, 1.0 - sum); - - col.r += transcol.r; /* add the transmitted ray */ - col.g += transcol.g; /* to the diffuse and */ - col.b += transcol.b; /* transmission total.. */ - } - - return col; -} - -void LoadVol(scalarvol * vol) { - FILE * dfile; - int status; - char msgtxt[2048]; - - dfile=fopen(vol->name, "r"); - if (dfile==NULL) { - char msgtxt[2048]; - sprintf(msgtxt, "Vol: can't open %s for input!!! Aborting\n",vol->name); - rt_ui_message(MSG_ERR, msgtxt); - rt_ui_message(MSG_ABORT, "Rendering Aborted."); - exit(1); - } - - sprintf(msgtxt, "loading %dx%dx%d volume set from %s", - vol->xres, vol->yres, vol->zres, vol->name); - rt_ui_message(MSG_0, msgtxt); - - vol->data = (unsigned char *)rt_getmem(vol->xres * vol->yres * vol->zres); - - status=fread(vol->data, 1, (vol->xres * vol->yres * vol->zres), dfile); -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/vol.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/vol.h deleted file mode 100644 index 6980e7ce8..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/src/vol.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - The original source for this example is - Copyright (c) 1994-2008 John E. Stone - 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. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -*/ - -/* - * vol.h - Volume rendering definitions etc. - * - * - * $Id: vol.h,v 1.2 2007-02-22 17:54:17 Exp $ - */ - - -void * newscalarvol(void * intex, vector min, vector max, - int xs, int ys, int zs, - char * fname, scalarvol * invol); - -void LoadVol(scalarvol *); -color scalar_volume_texture(vector *, texture *, ray *); diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/xcode/tachyon.xcodeproj/project.pbxproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/xcode/tachyon.xcodeproj/project.pbxproj deleted file mode 100644 index b4ee8cc8d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/xcode/tachyon.xcodeproj/project.pbxproj +++ /dev/null @@ -1,938 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 840116E1152CBBF600B07E4D /* api.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116B6152CBBF600B07E4D /* api.cpp */; }; - 840116E2152CBBF600B07E4D /* apigeom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116B7152CBBF600B07E4D /* apigeom.cpp */; }; - 840116E3152CBBF600B07E4D /* apitrigeom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116B8152CBBF600B07E4D /* apitrigeom.cpp */; }; - 840116E4152CBBF600B07E4D /* bndbox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116B9152CBBF600B07E4D /* bndbox.cpp */; }; - 840116E5152CBBF600B07E4D /* box.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116BA152CBBF600B07E4D /* box.cpp */; }; - 840116E6152CBBF600B07E4D /* camera.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116BB152CBBF600B07E4D /* camera.cpp */; }; - 840116E7152CBBF600B07E4D /* coordsys.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116BC152CBBF600B07E4D /* coordsys.cpp */; }; - 840116E8152CBBF600B07E4D /* cylinder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116BD152CBBF600B07E4D /* cylinder.cpp */; }; - 840116E9152CBBF600B07E4D /* extvol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116BE152CBBF600B07E4D /* extvol.cpp */; }; - 840116EA152CBBF600B07E4D /* global.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116BF152CBBF600B07E4D /* global.cpp */; }; - 840116EB152CBBF600B07E4D /* grid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116C0152CBBF600B07E4D /* grid.cpp */; }; - 840116EC152CBBF600B07E4D /* imageio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116C1152CBBF600B07E4D /* imageio.cpp */; }; - 840116ED152CBBF600B07E4D /* imap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116C2152CBBF600B07E4D /* imap.cpp */; }; - 840116EE152CBBF600B07E4D /* intersect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116C3152CBBF600B07E4D /* intersect.cpp */; }; - 840116EF152CBBF600B07E4D /* jpeg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116C4152CBBF600B07E4D /* jpeg.cpp */; }; - 840116F0152CBBF600B07E4D /* light.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116C5152CBBF600B07E4D /* light.cpp */; }; - 840116F1152CBBF600B07E4D /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116C6152CBBF600B07E4D /* main.cpp */; }; - 840116F2152CBBF600B07E4D /* objbound.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116C7152CBBF600B07E4D /* objbound.cpp */; }; - 840116F3152CBBF600B07E4D /* parse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116C8152CBBF600B07E4D /* parse.cpp */; }; - 840116F4152CBBF600B07E4D /* plane.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116C9152CBBF600B07E4D /* plane.cpp */; }; - 840116F5152CBBF600B07E4D /* ppm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116CA152CBBF600B07E4D /* ppm.cpp */; }; - 840116F6152CBBF600B07E4D /* pthread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116CB152CBBF600B07E4D /* pthread.cpp */; }; - 840116F7152CBBF600B07E4D /* quadric.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116CC152CBBF600B07E4D /* quadric.cpp */; }; - 840116F8152CBBF600B07E4D /* render.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116CD152CBBF600B07E4D /* render.cpp */; }; - 840116F9152CBBF600B07E4D /* ring.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116CE152CBBF600B07E4D /* ring.cpp */; }; - 840116FA152CBBF600B07E4D /* shade.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116CF152CBBF600B07E4D /* shade.cpp */; }; - 840116FB152CBBF600B07E4D /* sphere.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116D0152CBBF600B07E4D /* sphere.cpp */; }; - 840116FC152CBBF600B07E4D /* tachyon_video.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116D1152CBBF600B07E4D /* tachyon_video.cpp */; }; - 840116FD152CBBF600B07E4D /* texture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116D2152CBBF600B07E4D /* texture.cpp */; }; - 840116FE152CBBF600B07E4D /* tgafile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116D3152CBBF600B07E4D /* tgafile.cpp */; }; - 840116FF152CBBF600B07E4D /* trace_rest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116D4152CBBF600B07E4D /* trace_rest.cpp */; }; - 84011707152CBBF600B07E4D /* triangle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116DC152CBBF600B07E4D /* triangle.cpp */; }; - 84011708152CBBF600B07E4D /* ui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116DD152CBBF600B07E4D /* ui.cpp */; }; - 84011709152CBBF600B07E4D /* util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116DE152CBBF600B07E4D /* util.cpp */; }; - 8401170A152CBBF600B07E4D /* vector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116DF152CBBF600B07E4D /* vector.cpp */; }; - 8401170B152CBBF600B07E4D /* vol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116E0152CBBF600B07E4D /* vol.cpp */; }; - 8401172A152D6E3E00B07E4D /* trace.tbb.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84011729152D6E3E00B07E4D /* trace.tbb.cpp */; }; - 8401172D152D6F6C00B07E4D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA6F152CA90100D59B95 /* main.m */; }; - 8401172E152D6F6C00B07E4D /* OpenGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA71152CA90100D59B95 /* OpenGLView.m */; }; - 8401172F152D6F6C00B07E4D /* tbbAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA73152CA90100D59B95 /* tbbAppDelegate.m */; }; - 84011730152D6F6C00B07E4D /* macvideo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA99152CADF400D59B95 /* macvideo.cpp */; }; - 84011731152D6F6C00B07E4D /* api.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116B6152CBBF600B07E4D /* api.cpp */; }; - 84011732152D6F6C00B07E4D /* apigeom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116B7152CBBF600B07E4D /* apigeom.cpp */; }; - 84011733152D6F6C00B07E4D /* apitrigeom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116B8152CBBF600B07E4D /* apitrigeom.cpp */; }; - 84011734152D6F6C00B07E4D /* bndbox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116B9152CBBF600B07E4D /* bndbox.cpp */; }; - 84011735152D6F6C00B07E4D /* box.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116BA152CBBF600B07E4D /* box.cpp */; }; - 84011736152D6F6C00B07E4D /* camera.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116BB152CBBF600B07E4D /* camera.cpp */; }; - 84011737152D6F6C00B07E4D /* coordsys.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116BC152CBBF600B07E4D /* coordsys.cpp */; }; - 84011738152D6F6C00B07E4D /* cylinder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116BD152CBBF600B07E4D /* cylinder.cpp */; }; - 84011739152D6F6C00B07E4D /* extvol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116BE152CBBF600B07E4D /* extvol.cpp */; }; - 8401173A152D6F6C00B07E4D /* global.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116BF152CBBF600B07E4D /* global.cpp */; }; - 8401173B152D6F6C00B07E4D /* grid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116C0152CBBF600B07E4D /* grid.cpp */; }; - 8401173C152D6F6C00B07E4D /* imageio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116C1152CBBF600B07E4D /* imageio.cpp */; }; - 8401173D152D6F6C00B07E4D /* imap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116C2152CBBF600B07E4D /* imap.cpp */; }; - 8401173E152D6F6C00B07E4D /* intersect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116C3152CBBF600B07E4D /* intersect.cpp */; }; - 8401173F152D6F6C00B07E4D /* jpeg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116C4152CBBF600B07E4D /* jpeg.cpp */; }; - 84011740152D6F6C00B07E4D /* light.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116C5152CBBF600B07E4D /* light.cpp */; }; - 84011741152D6F6C00B07E4D /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116C6152CBBF600B07E4D /* main.cpp */; }; - 84011742152D6F6C00B07E4D /* objbound.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116C7152CBBF600B07E4D /* objbound.cpp */; }; - 84011743152D6F6C00B07E4D /* parse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116C8152CBBF600B07E4D /* parse.cpp */; }; - 84011744152D6F6C00B07E4D /* plane.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116C9152CBBF600B07E4D /* plane.cpp */; }; - 84011745152D6F6C00B07E4D /* ppm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116CA152CBBF600B07E4D /* ppm.cpp */; }; - 84011746152D6F6C00B07E4D /* pthread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116CB152CBBF600B07E4D /* pthread.cpp */; }; - 84011747152D6F6C00B07E4D /* quadric.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116CC152CBBF600B07E4D /* quadric.cpp */; }; - 84011748152D6F6C00B07E4D /* render.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116CD152CBBF600B07E4D /* render.cpp */; }; - 84011749152D6F6C00B07E4D /* ring.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116CE152CBBF600B07E4D /* ring.cpp */; }; - 8401174A152D6F6C00B07E4D /* shade.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116CF152CBBF600B07E4D /* shade.cpp */; }; - 8401174B152D6F6C00B07E4D /* sphere.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116D0152CBBF600B07E4D /* sphere.cpp */; }; - 8401174C152D6F6C00B07E4D /* tachyon_video.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116D1152CBBF600B07E4D /* tachyon_video.cpp */; }; - 8401174D152D6F6C00B07E4D /* texture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116D2152CBBF600B07E4D /* texture.cpp */; }; - 8401174E152D6F6C00B07E4D /* tgafile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116D3152CBBF600B07E4D /* tgafile.cpp */; }; - 8401174F152D6F6C00B07E4D /* trace_rest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116D4152CBBF600B07E4D /* trace_rest.cpp */; }; - 84011750152D6F6C00B07E4D /* triangle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116DC152CBBF600B07E4D /* triangle.cpp */; }; - 84011751152D6F6C00B07E4D /* ui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116DD152CBBF600B07E4D /* ui.cpp */; }; - 84011752152D6F6C00B07E4D /* util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116DE152CBBF600B07E4D /* util.cpp */; }; - 84011753152D6F6C00B07E4D /* vector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116DF152CBBF600B07E4D /* vector.cpp */; }; - 84011754152D6F6C00B07E4D /* vol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116E0152CBBF600B07E4D /* vol.cpp */; }; - 84011757152D6F6C00B07E4D /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84D01775152744BD0008A4E0 /* OpenGL.framework */; }; - 84011758152D6F6C00B07E4D /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84D017551527431F0008A4E0 /* Cocoa.framework */; }; - 84011759152D6F6C00B07E4D /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 84B8DA13152C9AC600D59B95 /* libtbb.dylib */; }; - 8401175B152D6F6C00B07E4D /* (null) in Resources */ = {isa = PBXBuildFile; }; - 8401175C152D6F6C00B07E4D /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 84B8DA7C152CA97B00D59B95 /* InfoPlist.strings */; }; - 8401175D152D6F6C00B07E4D /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 84B8DA7E152CA97B00D59B95 /* MainMenu.xib */; }; - 84011766152D6F8400B07E4D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA6F152CA90100D59B95 /* main.m */; }; - 84011767152D6F8400B07E4D /* OpenGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA71152CA90100D59B95 /* OpenGLView.m */; }; - 84011768152D6F8400B07E4D /* tbbAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA73152CA90100D59B95 /* tbbAppDelegate.m */; }; - 84011769152D6F8400B07E4D /* macvideo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA99152CADF400D59B95 /* macvideo.cpp */; }; - 8401176A152D6F8400B07E4D /* api.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116B6152CBBF600B07E4D /* api.cpp */; }; - 8401176B152D6F8400B07E4D /* apigeom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116B7152CBBF600B07E4D /* apigeom.cpp */; }; - 8401176C152D6F8400B07E4D /* apitrigeom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116B8152CBBF600B07E4D /* apitrigeom.cpp */; }; - 8401176D152D6F8400B07E4D /* bndbox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116B9152CBBF600B07E4D /* bndbox.cpp */; }; - 8401176E152D6F8400B07E4D /* box.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116BA152CBBF600B07E4D /* box.cpp */; }; - 8401176F152D6F8400B07E4D /* camera.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116BB152CBBF600B07E4D /* camera.cpp */; }; - 84011770152D6F8400B07E4D /* coordsys.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116BC152CBBF600B07E4D /* coordsys.cpp */; }; - 84011771152D6F8400B07E4D /* cylinder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116BD152CBBF600B07E4D /* cylinder.cpp */; }; - 84011772152D6F8400B07E4D /* extvol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116BE152CBBF600B07E4D /* extvol.cpp */; }; - 84011773152D6F8400B07E4D /* global.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116BF152CBBF600B07E4D /* global.cpp */; }; - 84011774152D6F8400B07E4D /* grid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116C0152CBBF600B07E4D /* grid.cpp */; }; - 84011775152D6F8400B07E4D /* imageio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116C1152CBBF600B07E4D /* imageio.cpp */; }; - 84011776152D6F8400B07E4D /* imap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116C2152CBBF600B07E4D /* imap.cpp */; }; - 84011777152D6F8400B07E4D /* intersect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116C3152CBBF600B07E4D /* intersect.cpp */; }; - 84011778152D6F8400B07E4D /* jpeg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116C4152CBBF600B07E4D /* jpeg.cpp */; }; - 84011779152D6F8400B07E4D /* light.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116C5152CBBF600B07E4D /* light.cpp */; }; - 8401177A152D6F8400B07E4D /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116C6152CBBF600B07E4D /* main.cpp */; }; - 8401177B152D6F8400B07E4D /* objbound.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116C7152CBBF600B07E4D /* objbound.cpp */; }; - 8401177C152D6F8400B07E4D /* parse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116C8152CBBF600B07E4D /* parse.cpp */; }; - 8401177D152D6F8400B07E4D /* plane.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116C9152CBBF600B07E4D /* plane.cpp */; }; - 8401177E152D6F8400B07E4D /* ppm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116CA152CBBF600B07E4D /* ppm.cpp */; }; - 8401177F152D6F8400B07E4D /* pthread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116CB152CBBF600B07E4D /* pthread.cpp */; }; - 84011780152D6F8400B07E4D /* quadric.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116CC152CBBF600B07E4D /* quadric.cpp */; }; - 84011781152D6F8400B07E4D /* render.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116CD152CBBF600B07E4D /* render.cpp */; }; - 84011782152D6F8400B07E4D /* ring.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116CE152CBBF600B07E4D /* ring.cpp */; }; - 84011783152D6F8400B07E4D /* shade.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116CF152CBBF600B07E4D /* shade.cpp */; }; - 84011784152D6F8400B07E4D /* sphere.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116D0152CBBF600B07E4D /* sphere.cpp */; }; - 84011785152D6F8400B07E4D /* tachyon_video.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116D1152CBBF600B07E4D /* tachyon_video.cpp */; }; - 84011786152D6F8400B07E4D /* texture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116D2152CBBF600B07E4D /* texture.cpp */; }; - 84011787152D6F8400B07E4D /* tgafile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116D3152CBBF600B07E4D /* tgafile.cpp */; }; - 84011788152D6F8400B07E4D /* trace_rest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116D4152CBBF600B07E4D /* trace_rest.cpp */; }; - 84011789152D6F8400B07E4D /* triangle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116DC152CBBF600B07E4D /* triangle.cpp */; }; - 8401178A152D6F8400B07E4D /* ui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116DD152CBBF600B07E4D /* ui.cpp */; }; - 8401178B152D6F8400B07E4D /* util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116DE152CBBF600B07E4D /* util.cpp */; }; - 8401178C152D6F8400B07E4D /* vector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116DF152CBBF600B07E4D /* vector.cpp */; }; - 8401178D152D6F8400B07E4D /* vol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 840116E0152CBBF600B07E4D /* vol.cpp */; }; - 84011790152D6F8400B07E4D /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84D01775152744BD0008A4E0 /* OpenGL.framework */; }; - 84011791152D6F8400B07E4D /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84D017551527431F0008A4E0 /* Cocoa.framework */; }; - 84011792152D6F8400B07E4D /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 84B8DA13152C9AC600D59B95 /* libtbb.dylib */; }; - 84011794152D6F8400B07E4D /* (null) in Resources */ = {isa = PBXBuildFile; }; - 84011795152D6F8400B07E4D /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 84B8DA7C152CA97B00D59B95 /* InfoPlist.strings */; }; - 84011796152D6F8400B07E4D /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 84B8DA7E152CA97B00D59B95 /* MainMenu.xib */; }; - 840117A1152D6FF900B07E4D /* trace.serial.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8401179F152D6FD100B07E4D /* trace.serial.cpp */; }; - 840117A2152D701A00B07E4D /* trace.tbb1d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8401179D152D6FC600B07E4D /* trace.tbb1d.cpp */; }; - 84B8DA19152C9AC600D59B95 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 84B8DA13152C9AC600D59B95 /* libtbb.dylib */; }; - 84B8DA77152CA90100D59B95 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA6F152CA90100D59B95 /* main.m */; }; - 84B8DA78152CA90100D59B95 /* OpenGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA71152CA90100D59B95 /* OpenGLView.m */; }; - 84B8DA79152CA90100D59B95 /* tbbAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA73152CA90100D59B95 /* tbbAppDelegate.m */; }; - 84B8DA7A152CA90100D59B95 /* (null) in Resources */ = {isa = PBXBuildFile; }; - 84B8DA80152CA97B00D59B95 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 84B8DA7C152CA97B00D59B95 /* InfoPlist.strings */; }; - 84B8DA81152CA97B00D59B95 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 84B8DA7E152CA97B00D59B95 /* MainMenu.xib */; }; - 84B8DA9A152CADF400D59B95 /* macvideo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA99152CADF400D59B95 /* macvideo.cpp */; }; - 84D017561527431F0008A4E0 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84D017551527431F0008A4E0 /* Cocoa.framework */; }; - 84D01776152744BD0008A4E0 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84D01775152744BD0008A4E0 /* OpenGL.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 84011691152CBBC900B07E4D /* api.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = api.h; path = ../src/api.h; sourceTree = ""; }; - 84011692152CBBC900B07E4D /* apitrigeom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = apitrigeom.h; path = ../src/apitrigeom.h; sourceTree = ""; }; - 84011693152CBBC900B07E4D /* bndbox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bndbox.h; path = ../src/bndbox.h; sourceTree = ""; }; - 84011694152CBBC900B07E4D /* box.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = box.h; path = ../src/box.h; sourceTree = ""; }; - 84011695152CBBC900B07E4D /* camera.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = camera.h; path = ../src/camera.h; sourceTree = ""; }; - 84011696152CBBC900B07E4D /* coordsys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = coordsys.h; path = ../src/coordsys.h; sourceTree = ""; }; - 84011697152CBBC900B07E4D /* cylinder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cylinder.h; path = ../src/cylinder.h; sourceTree = ""; }; - 84011698152CBBC900B07E4D /* extvol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = extvol.h; path = ../src/extvol.h; sourceTree = ""; }; - 84011699152CBBC900B07E4D /* global.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = global.h; path = ../src/global.h; sourceTree = ""; }; - 8401169A152CBBC900B07E4D /* grid.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = grid.h; path = ../src/grid.h; sourceTree = ""; }; - 8401169B152CBBC900B07E4D /* imageio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = imageio.h; path = ../src/imageio.h; sourceTree = ""; }; - 8401169C152CBBC900B07E4D /* imap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = imap.h; path = ../src/imap.h; sourceTree = ""; }; - 8401169D152CBBC900B07E4D /* intersect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = intersect.h; path = ../src/intersect.h; sourceTree = ""; }; - 8401169E152CBBC900B07E4D /* jpeg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = jpeg.h; path = ../src/jpeg.h; sourceTree = ""; }; - 8401169F152CBBC900B07E4D /* light.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = light.h; path = ../src/light.h; sourceTree = ""; }; - 840116A0152CBBC900B07E4D /* machine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = machine.h; path = ../src/machine.h; sourceTree = ""; }; - 840116A1152CBBC900B07E4D /* macros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = macros.h; path = ../src/macros.h; sourceTree = ""; }; - 840116A2152CBBC900B07E4D /* objbound.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = objbound.h; path = ../src/objbound.h; sourceTree = ""; }; - 840116A3152CBBC900B07E4D /* parse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = parse.h; path = ../src/parse.h; sourceTree = ""; }; - 840116A4152CBBC900B07E4D /* plane.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = plane.h; path = ../src/plane.h; sourceTree = ""; }; - 840116A5152CBBC900B07E4D /* ppm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ppm.h; path = ../src/ppm.h; sourceTree = ""; }; - 840116A7152CBBC900B07E4D /* quadric.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = quadric.h; path = ../src/quadric.h; sourceTree = ""; }; - 840116A8152CBBC900B07E4D /* render.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = render.h; path = ../src/render.h; sourceTree = ""; }; - 840116A9152CBBC900B07E4D /* ring.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ring.h; path = ../src/ring.h; sourceTree = ""; }; - 840116AA152CBBC900B07E4D /* shade.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = shade.h; path = ../src/shade.h; sourceTree = ""; }; - 840116AB152CBBC900B07E4D /* sphere.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sphere.h; path = ../src/sphere.h; sourceTree = ""; }; - 840116AC152CBBC900B07E4D /* tachyon_video.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = tachyon_video.h; path = ../src/tachyon_video.h; sourceTree = ""; }; - 840116AD152CBBC900B07E4D /* texture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = texture.h; path = ../src/texture.h; sourceTree = ""; }; - 840116AE152CBBC900B07E4D /* tgafile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = tgafile.h; path = ../src/tgafile.h; sourceTree = ""; }; - 840116AF152CBBC900B07E4D /* trace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = trace.h; path = ../src/trace.h; sourceTree = ""; }; - 840116B0152CBBC900B07E4D /* triangle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = triangle.h; path = ../src/triangle.h; sourceTree = ""; }; - 840116B1152CBBC900B07E4D /* types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = types.h; path = ../src/types.h; sourceTree = ""; }; - 840116B2152CBBC900B07E4D /* ui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ui.h; path = ../src/ui.h; sourceTree = ""; }; - 840116B3152CBBC900B07E4D /* util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = util.h; path = ../src/util.h; sourceTree = ""; }; - 840116B4152CBBC900B07E4D /* vector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vector.h; path = ../src/vector.h; sourceTree = ""; }; - 840116B5152CBBC900B07E4D /* vol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vol.h; path = ../src/vol.h; sourceTree = ""; }; - 840116B6152CBBF600B07E4D /* api.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = api.cpp; sourceTree = ""; }; - 840116B7152CBBF600B07E4D /* apigeom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = apigeom.cpp; sourceTree = ""; }; - 840116B8152CBBF600B07E4D /* apitrigeom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = apitrigeom.cpp; sourceTree = ""; }; - 840116B9152CBBF600B07E4D /* bndbox.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = bndbox.cpp; sourceTree = ""; }; - 840116BA152CBBF600B07E4D /* box.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = box.cpp; sourceTree = ""; }; - 840116BB152CBBF600B07E4D /* camera.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = camera.cpp; sourceTree = ""; }; - 840116BC152CBBF600B07E4D /* coordsys.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = coordsys.cpp; sourceTree = ""; }; - 840116BD152CBBF600B07E4D /* cylinder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cylinder.cpp; sourceTree = ""; }; - 840116BE152CBBF600B07E4D /* extvol.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = extvol.cpp; sourceTree = ""; }; - 840116BF152CBBF600B07E4D /* global.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = global.cpp; sourceTree = ""; }; - 840116C0152CBBF600B07E4D /* grid.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = grid.cpp; sourceTree = ""; }; - 840116C1152CBBF600B07E4D /* imageio.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = imageio.cpp; sourceTree = ""; }; - 840116C2152CBBF600B07E4D /* imap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = imap.cpp; sourceTree = ""; }; - 840116C3152CBBF600B07E4D /* intersect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = intersect.cpp; sourceTree = ""; }; - 840116C4152CBBF600B07E4D /* jpeg.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = jpeg.cpp; sourceTree = ""; }; - 840116C5152CBBF600B07E4D /* light.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = light.cpp; sourceTree = ""; }; - 840116C6152CBBF600B07E4D /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = ""; }; - 840116C7152CBBF600B07E4D /* objbound.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = objbound.cpp; sourceTree = ""; }; - 840116C8152CBBF600B07E4D /* parse.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = parse.cpp; sourceTree = ""; }; - 840116C9152CBBF600B07E4D /* plane.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = plane.cpp; sourceTree = ""; }; - 840116CA152CBBF600B07E4D /* ppm.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ppm.cpp; sourceTree = ""; }; - 840116CB152CBBF600B07E4D /* pthread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pthread.cpp; sourceTree = ""; }; - 840116CC152CBBF600B07E4D /* quadric.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = quadric.cpp; sourceTree = ""; }; - 840116CD152CBBF600B07E4D /* render.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = render.cpp; sourceTree = ""; }; - 840116CE152CBBF600B07E4D /* ring.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ring.cpp; sourceTree = ""; }; - 840116CF152CBBF600B07E4D /* shade.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = shade.cpp; sourceTree = ""; }; - 840116D0152CBBF600B07E4D /* sphere.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sphere.cpp; sourceTree = ""; }; - 840116D1152CBBF600B07E4D /* tachyon_video.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tachyon_video.cpp; sourceTree = ""; }; - 840116D2152CBBF600B07E4D /* texture.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = texture.cpp; sourceTree = ""; }; - 840116D3152CBBF600B07E4D /* tgafile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tgafile.cpp; sourceTree = ""; }; - 840116D4152CBBF600B07E4D /* trace_rest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = trace_rest.cpp; sourceTree = ""; }; - 840116DC152CBBF600B07E4D /* triangle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = triangle.cpp; sourceTree = ""; }; - 840116DD152CBBF600B07E4D /* ui.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ui.cpp; sourceTree = ""; }; - 840116DE152CBBF600B07E4D /* util.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = util.cpp; sourceTree = ""; }; - 840116DF152CBBF600B07E4D /* vector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vector.cpp; sourceTree = ""; }; - 840116E0152CBBF600B07E4D /* vol.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vol.cpp; sourceTree = ""; }; - 84011729152D6E3E00B07E4D /* trace.tbb.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = trace.tbb.cpp; sourceTree = ""; }; - 84011761152D6F6C00B07E4D /* tachyon.serial.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = tachyon.serial.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 8401179A152D6F8400B07E4D /* tachyon.tbb1d.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = tachyon.tbb1d.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 8401179D152D6FC600B07E4D /* trace.tbb1d.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = trace.tbb1d.cpp; sourceTree = ""; }; - 8401179F152D6FD100B07E4D /* trace.serial.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = trace.serial.cpp; sourceTree = ""; }; - 84B8DA13152C9AC600D59B95 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = ../../../../lib/libtbb.dylib; sourceTree = ""; }; - 84B8DA6F152CA90100D59B95 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = ../../../common/gui/xcode/tbbExample/main.m; sourceTree = ""; }; - 84B8DA70152CA90100D59B95 /* OpenGLView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OpenGLView.h; path = ../../../common/gui/xcode/tbbExample/OpenGLView.h; sourceTree = ""; }; - 84B8DA71152CA90100D59B95 /* OpenGLView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OpenGLView.m; path = ../../../common/gui/xcode/tbbExample/OpenGLView.m; sourceTree = ""; }; - 84B8DA72152CA90100D59B95 /* tbbAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = tbbAppDelegate.h; path = ../../../common/gui/xcode/tbbExample/tbbAppDelegate.h; sourceTree = ""; }; - 84B8DA73152CA90100D59B95 /* tbbAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = tbbAppDelegate.m; path = ../../../common/gui/xcode/tbbExample/tbbAppDelegate.m; sourceTree = ""; }; - 84B8DA75152CA90100D59B95 /* tbbExample-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "tbbExample-Prefix.pch"; path = "../../../common/gui/xcode/tbbExample/tbbExample-Prefix.pch"; sourceTree = ""; }; - 84B8DA7D152CA97B00D59B95 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = InfoPlist.strings; sourceTree = ""; }; - 84B8DA7F152CA97B00D59B95 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = MainMenu.xib; sourceTree = ""; }; - 84B8DA99152CADF400D59B95 /* macvideo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = macvideo.cpp; path = ../../../common/gui/macvideo.cpp; sourceTree = ""; }; - 84D017511527431F0008A4E0 /* tbbExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = tbbExample.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 84D017551527431F0008A4E0 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; - 84D017581527431F0008A4E0 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; - 84D017591527431F0008A4E0 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; }; - 84D0175A1527431F0008A4E0 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - 84D01775152744BD0008A4E0 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 84011756152D6F6C00B07E4D /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 84011757152D6F6C00B07E4D /* OpenGL.framework in Frameworks */, - 84011758152D6F6C00B07E4D /* Cocoa.framework in Frameworks */, - 84011759152D6F6C00B07E4D /* libtbb.dylib in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 8401178F152D6F8400B07E4D /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 84011790152D6F8400B07E4D /* OpenGL.framework in Frameworks */, - 84011791152D6F8400B07E4D /* Cocoa.framework in Frameworks */, - 84011792152D6F8400B07E4D /* libtbb.dylib in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 84D0174E1527431F0008A4E0 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 84D01776152744BD0008A4E0 /* OpenGL.framework in Frameworks */, - 84D017561527431F0008A4E0 /* Cocoa.framework in Frameworks */, - 84B8DA19152C9AC600D59B95 /* libtbb.dylib in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 8401160E152CB8A600B07E4D /* Sources */ = { - isa = PBXGroup; - children = ( - 8401179F152D6FD100B07E4D /* trace.serial.cpp */, - 8401179D152D6FC600B07E4D /* trace.tbb1d.cpp */, - 84011729152D6E3E00B07E4D /* trace.tbb.cpp */, - 840116B6152CBBF600B07E4D /* api.cpp */, - 840116B7152CBBF600B07E4D /* apigeom.cpp */, - 840116B8152CBBF600B07E4D /* apitrigeom.cpp */, - 840116B9152CBBF600B07E4D /* bndbox.cpp */, - 840116BA152CBBF600B07E4D /* box.cpp */, - 840116BB152CBBF600B07E4D /* camera.cpp */, - 840116BC152CBBF600B07E4D /* coordsys.cpp */, - 840116BD152CBBF600B07E4D /* cylinder.cpp */, - 840116BE152CBBF600B07E4D /* extvol.cpp */, - 840116BF152CBBF600B07E4D /* global.cpp */, - 840116C0152CBBF600B07E4D /* grid.cpp */, - 840116C1152CBBF600B07E4D /* imageio.cpp */, - 840116C2152CBBF600B07E4D /* imap.cpp */, - 840116C3152CBBF600B07E4D /* intersect.cpp */, - 840116C4152CBBF600B07E4D /* jpeg.cpp */, - 840116C5152CBBF600B07E4D /* light.cpp */, - 840116C6152CBBF600B07E4D /* main.cpp */, - 840116C7152CBBF600B07E4D /* objbound.cpp */, - 840116C8152CBBF600B07E4D /* parse.cpp */, - 840116C9152CBBF600B07E4D /* plane.cpp */, - 840116CA152CBBF600B07E4D /* ppm.cpp */, - 840116CB152CBBF600B07E4D /* pthread.cpp */, - 840116CC152CBBF600B07E4D /* quadric.cpp */, - 840116CD152CBBF600B07E4D /* render.cpp */, - 840116CE152CBBF600B07E4D /* ring.cpp */, - 840116CF152CBBF600B07E4D /* shade.cpp */, - 840116D0152CBBF600B07E4D /* sphere.cpp */, - 840116D1152CBBF600B07E4D /* tachyon_video.cpp */, - 840116D2152CBBF600B07E4D /* texture.cpp */, - 840116D3152CBBF600B07E4D /* tgafile.cpp */, - 840116D4152CBBF600B07E4D /* trace_rest.cpp */, - 840116DC152CBBF600B07E4D /* triangle.cpp */, - 840116DD152CBBF600B07E4D /* ui.cpp */, - 840116DE152CBBF600B07E4D /* util.cpp */, - 840116DF152CBBF600B07E4D /* vector.cpp */, - 840116E0152CBBF600B07E4D /* vol.cpp */, - ); - name = Sources; - path = ../src; - sourceTree = ""; - }; - 84011690152CBB3C00B07E4D /* Headers */ = { - isa = PBXGroup; - children = ( - 84011691152CBBC900B07E4D /* api.h */, - 84011692152CBBC900B07E4D /* apitrigeom.h */, - 84011693152CBBC900B07E4D /* bndbox.h */, - 84011694152CBBC900B07E4D /* box.h */, - 84011695152CBBC900B07E4D /* camera.h */, - 84011696152CBBC900B07E4D /* coordsys.h */, - 84011697152CBBC900B07E4D /* cylinder.h */, - 84011698152CBBC900B07E4D /* extvol.h */, - 84011699152CBBC900B07E4D /* global.h */, - 8401169A152CBBC900B07E4D /* grid.h */, - 8401169B152CBBC900B07E4D /* imageio.h */, - 8401169C152CBBC900B07E4D /* imap.h */, - 8401169D152CBBC900B07E4D /* intersect.h */, - 8401169E152CBBC900B07E4D /* jpeg.h */, - 8401169F152CBBC900B07E4D /* light.h */, - 840116A0152CBBC900B07E4D /* machine.h */, - 840116A1152CBBC900B07E4D /* macros.h */, - 840116A2152CBBC900B07E4D /* objbound.h */, - 840116A3152CBBC900B07E4D /* parse.h */, - 840116A4152CBBC900B07E4D /* plane.h */, - 840116A5152CBBC900B07E4D /* ppm.h */, - 840116A7152CBBC900B07E4D /* quadric.h */, - 840116A8152CBBC900B07E4D /* render.h */, - 840116A9152CBBC900B07E4D /* ring.h */, - 840116AA152CBBC900B07E4D /* shade.h */, - 840116AB152CBBC900B07E4D /* sphere.h */, - 840116AC152CBBC900B07E4D /* tachyon_video.h */, - 840116AD152CBBC900B07E4D /* texture.h */, - 840116AE152CBBC900B07E4D /* tgafile.h */, - 840116AF152CBBC900B07E4D /* trace.h */, - 840116B0152CBBC900B07E4D /* triangle.h */, - 840116B1152CBBC900B07E4D /* types.h */, - 840116B2152CBBC900B07E4D /* ui.h */, - 840116B3152CBBC900B07E4D /* util.h */, - 840116B4152CBBC900B07E4D /* vector.h */, - 840116B5152CBBC900B07E4D /* vol.h */, - ); - name = Headers; - sourceTree = ""; - }; - 84B8DA6C152CA8D900D59B95 /* tbbExample */ = { - isa = PBXGroup; - children = ( - 84011690152CBB3C00B07E4D /* Headers */, - 8401160E152CB8A600B07E4D /* Sources */, - 84B8DA98152CAD8600D59B95 /* Gui layer */, - 84B8DA7B152CA97B00D59B95 /* Resources */, - ); - name = tbbExample; - sourceTree = ""; - }; - 84B8DA7B152CA97B00D59B95 /* Resources */ = { - isa = PBXGroup; - children = ( - 84B8DA7C152CA97B00D59B95 /* InfoPlist.strings */, - 84B8DA7E152CA97B00D59B95 /* MainMenu.xib */, - ); - name = Resources; - path = ../../../common/gui/xcode/tbbExample/en.lproj; - sourceTree = ""; - }; - 84B8DA98152CAD8600D59B95 /* Gui layer */ = { - isa = PBXGroup; - children = ( - 84B8DA99152CADF400D59B95 /* macvideo.cpp */, - 84B8DA6F152CA90100D59B95 /* main.m */, - 84B8DA70152CA90100D59B95 /* OpenGLView.h */, - 84B8DA71152CA90100D59B95 /* OpenGLView.m */, - 84B8DA72152CA90100D59B95 /* tbbAppDelegate.h */, - 84B8DA73152CA90100D59B95 /* tbbAppDelegate.m */, - 84B8DA75152CA90100D59B95 /* tbbExample-Prefix.pch */, - ); - name = "Gui layer"; - sourceTree = ""; - }; - 84D017461527431F0008A4E0 = { - isa = PBXGroup; - children = ( - 84B8DA6C152CA8D900D59B95 /* tbbExample */, - 84D017541527431F0008A4E0 /* Frameworks */, - 84D017521527431F0008A4E0 /* Products */, - 84011763152D6F6D00B07E4D /* tbbExample copy-Info.plist */, - 8401179C152D6F8500B07E4D /* tbbExample copy copy-Info.plist */, - ); - sourceTree = ""; - }; - 84D017521527431F0008A4E0 /* Products */ = { - isa = PBXGroup; - children = ( - 84D017511527431F0008A4E0 /* tbbExample.app */, - 84011761152D6F6C00B07E4D /* tachyon.serial.app */, - 8401179A152D6F8400B07E4D /* tachyon.tbb1d.app */, - ); - name = Products; - sourceTree = ""; - }; - 84D017541527431F0008A4E0 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 84D01775152744BD0008A4E0 /* OpenGL.framework */, - 84D017551527431F0008A4E0 /* Cocoa.framework */, - 84D017571527431F0008A4E0 /* Other Frameworks */, - ); - name = Frameworks; - sourceTree = ""; - }; - 84D017571527431F0008A4E0 /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 84B8DA13152C9AC600D59B95 /* libtbb.dylib */, - 84D017581527431F0008A4E0 /* AppKit.framework */, - 84D017591527431F0008A4E0 /* CoreData.framework */, - 84D0175A1527431F0008A4E0 /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8401172B152D6F6C00B07E4D /* tachyon.serial */ = { - isa = PBXNativeTarget; - buildConfigurationList = 8401175E152D6F6C00B07E4D /* Build configuration list for PBXNativeTarget "tachyon.serial" */; - buildPhases = ( - 8401172C152D6F6C00B07E4D /* Sources */, - 84011756152D6F6C00B07E4D /* Frameworks */, - 8401175A152D6F6C00B07E4D /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = tachyon.serial; - productName = tbbExample; - productReference = 84011761152D6F6C00B07E4D /* tachyon.serial.app */; - productType = "com.apple.product-type.application"; - }; - 84011764152D6F8400B07E4D /* tachyon.tbb1d */ = { - isa = PBXNativeTarget; - buildConfigurationList = 84011797152D6F8400B07E4D /* Build configuration list for PBXNativeTarget "tachyon.tbb1d" */; - buildPhases = ( - 84011765152D6F8400B07E4D /* Sources */, - 8401178F152D6F8400B07E4D /* Frameworks */, - 84011793152D6F8400B07E4D /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = tachyon.tbb1d; - productName = tbbExample; - productReference = 8401179A152D6F8400B07E4D /* tachyon.tbb1d.app */; - productType = "com.apple.product-type.application"; - }; - 84D017501527431F0008A4E0 /* tachyon.tbb */ = { - isa = PBXNativeTarget; - buildConfigurationList = 84D01772152743200008A4E0 /* Build configuration list for PBXNativeTarget "tachyon.tbb" */; - buildPhases = ( - 84D0174D1527431F0008A4E0 /* Sources */, - 84D0174E1527431F0008A4E0 /* Frameworks */, - 84D0174F1527431F0008A4E0 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = tachyon.tbb; - productName = tbbExample; - productReference = 84D017511527431F0008A4E0 /* tbbExample.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 84D017481527431F0008A4E0 /* Project object */ = { - isa = PBXProject; - attributes = { - CLASSPREFIX = tbb; - LastUpgradeCheck = 0430; - }; - buildConfigurationList = 84D0174B1527431F0008A4E0 /* Build configuration list for PBXProject "tachyon" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = 84D017461527431F0008A4E0; - productRefGroup = 84D017521527431F0008A4E0 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 84D017501527431F0008A4E0 /* tachyon.tbb */, - 8401172B152D6F6C00B07E4D /* tachyon.serial */, - 84011764152D6F8400B07E4D /* tachyon.tbb1d */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 8401175A152D6F6C00B07E4D /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8401175B152D6F6C00B07E4D /* (null) in Resources */, - 8401175C152D6F6C00B07E4D /* InfoPlist.strings in Resources */, - 8401175D152D6F6C00B07E4D /* MainMenu.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 84011793152D6F8400B07E4D /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 84011794152D6F8400B07E4D /* (null) in Resources */, - 84011795152D6F8400B07E4D /* InfoPlist.strings in Resources */, - 84011796152D6F8400B07E4D /* MainMenu.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 84D0174F1527431F0008A4E0 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 84B8DA7A152CA90100D59B95 /* (null) in Resources */, - 84B8DA80152CA97B00D59B95 /* InfoPlist.strings in Resources */, - 84B8DA81152CA97B00D59B95 /* MainMenu.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8401172C152D6F6C00B07E4D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 840117A1152D6FF900B07E4D /* trace.serial.cpp in Sources */, - 8401172D152D6F6C00B07E4D /* main.m in Sources */, - 8401172E152D6F6C00B07E4D /* OpenGLView.m in Sources */, - 8401172F152D6F6C00B07E4D /* tbbAppDelegate.m in Sources */, - 84011730152D6F6C00B07E4D /* macvideo.cpp in Sources */, - 84011731152D6F6C00B07E4D /* api.cpp in Sources */, - 84011732152D6F6C00B07E4D /* apigeom.cpp in Sources */, - 84011733152D6F6C00B07E4D /* apitrigeom.cpp in Sources */, - 84011734152D6F6C00B07E4D /* bndbox.cpp in Sources */, - 84011735152D6F6C00B07E4D /* box.cpp in Sources */, - 84011736152D6F6C00B07E4D /* camera.cpp in Sources */, - 84011737152D6F6C00B07E4D /* coordsys.cpp in Sources */, - 84011738152D6F6C00B07E4D /* cylinder.cpp in Sources */, - 84011739152D6F6C00B07E4D /* extvol.cpp in Sources */, - 8401173A152D6F6C00B07E4D /* global.cpp in Sources */, - 8401173B152D6F6C00B07E4D /* grid.cpp in Sources */, - 8401173C152D6F6C00B07E4D /* imageio.cpp in Sources */, - 8401173D152D6F6C00B07E4D /* imap.cpp in Sources */, - 8401173E152D6F6C00B07E4D /* intersect.cpp in Sources */, - 8401173F152D6F6C00B07E4D /* jpeg.cpp in Sources */, - 84011740152D6F6C00B07E4D /* light.cpp in Sources */, - 84011741152D6F6C00B07E4D /* main.cpp in Sources */, - 84011742152D6F6C00B07E4D /* objbound.cpp in Sources */, - 84011743152D6F6C00B07E4D /* parse.cpp in Sources */, - 84011744152D6F6C00B07E4D /* plane.cpp in Sources */, - 84011745152D6F6C00B07E4D /* ppm.cpp in Sources */, - 84011746152D6F6C00B07E4D /* pthread.cpp in Sources */, - 84011747152D6F6C00B07E4D /* quadric.cpp in Sources */, - 84011748152D6F6C00B07E4D /* render.cpp in Sources */, - 84011749152D6F6C00B07E4D /* ring.cpp in Sources */, - 8401174A152D6F6C00B07E4D /* shade.cpp in Sources */, - 8401174B152D6F6C00B07E4D /* sphere.cpp in Sources */, - 8401174C152D6F6C00B07E4D /* tachyon_video.cpp in Sources */, - 8401174D152D6F6C00B07E4D /* texture.cpp in Sources */, - 8401174E152D6F6C00B07E4D /* tgafile.cpp in Sources */, - 8401174F152D6F6C00B07E4D /* trace_rest.cpp in Sources */, - 84011750152D6F6C00B07E4D /* triangle.cpp in Sources */, - 84011751152D6F6C00B07E4D /* ui.cpp in Sources */, - 84011752152D6F6C00B07E4D /* util.cpp in Sources */, - 84011753152D6F6C00B07E4D /* vector.cpp in Sources */, - 84011754152D6F6C00B07E4D /* vol.cpp in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 84011765152D6F8400B07E4D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 840117A2152D701A00B07E4D /* trace.tbb1d.cpp in Sources */, - 84011766152D6F8400B07E4D /* main.m in Sources */, - 84011767152D6F8400B07E4D /* OpenGLView.m in Sources */, - 84011768152D6F8400B07E4D /* tbbAppDelegate.m in Sources */, - 84011769152D6F8400B07E4D /* macvideo.cpp in Sources */, - 8401176A152D6F8400B07E4D /* api.cpp in Sources */, - 8401176B152D6F8400B07E4D /* apigeom.cpp in Sources */, - 8401176C152D6F8400B07E4D /* apitrigeom.cpp in Sources */, - 8401176D152D6F8400B07E4D /* bndbox.cpp in Sources */, - 8401176E152D6F8400B07E4D /* box.cpp in Sources */, - 8401176F152D6F8400B07E4D /* camera.cpp in Sources */, - 84011770152D6F8400B07E4D /* coordsys.cpp in Sources */, - 84011771152D6F8400B07E4D /* cylinder.cpp in Sources */, - 84011772152D6F8400B07E4D /* extvol.cpp in Sources */, - 84011773152D6F8400B07E4D /* global.cpp in Sources */, - 84011774152D6F8400B07E4D /* grid.cpp in Sources */, - 84011775152D6F8400B07E4D /* imageio.cpp in Sources */, - 84011776152D6F8400B07E4D /* imap.cpp in Sources */, - 84011777152D6F8400B07E4D /* intersect.cpp in Sources */, - 84011778152D6F8400B07E4D /* jpeg.cpp in Sources */, - 84011779152D6F8400B07E4D /* light.cpp in Sources */, - 8401177A152D6F8400B07E4D /* main.cpp in Sources */, - 8401177B152D6F8400B07E4D /* objbound.cpp in Sources */, - 8401177C152D6F8400B07E4D /* parse.cpp in Sources */, - 8401177D152D6F8400B07E4D /* plane.cpp in Sources */, - 8401177E152D6F8400B07E4D /* ppm.cpp in Sources */, - 8401177F152D6F8400B07E4D /* pthread.cpp in Sources */, - 84011780152D6F8400B07E4D /* quadric.cpp in Sources */, - 84011781152D6F8400B07E4D /* render.cpp in Sources */, - 84011782152D6F8400B07E4D /* ring.cpp in Sources */, - 84011783152D6F8400B07E4D /* shade.cpp in Sources */, - 84011784152D6F8400B07E4D /* sphere.cpp in Sources */, - 84011785152D6F8400B07E4D /* tachyon_video.cpp in Sources */, - 84011786152D6F8400B07E4D /* texture.cpp in Sources */, - 84011787152D6F8400B07E4D /* tgafile.cpp in Sources */, - 84011788152D6F8400B07E4D /* trace_rest.cpp in Sources */, - 84011789152D6F8400B07E4D /* triangle.cpp in Sources */, - 8401178A152D6F8400B07E4D /* ui.cpp in Sources */, - 8401178B152D6F8400B07E4D /* util.cpp in Sources */, - 8401178C152D6F8400B07E4D /* vector.cpp in Sources */, - 8401178D152D6F8400B07E4D /* vol.cpp in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 84D0174D1527431F0008A4E0 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 84B8DA77152CA90100D59B95 /* main.m in Sources */, - 84B8DA78152CA90100D59B95 /* OpenGLView.m in Sources */, - 84B8DA79152CA90100D59B95 /* tbbAppDelegate.m in Sources */, - 84B8DA9A152CADF400D59B95 /* macvideo.cpp in Sources */, - 840116E1152CBBF600B07E4D /* api.cpp in Sources */, - 840116E2152CBBF600B07E4D /* apigeom.cpp in Sources */, - 840116E3152CBBF600B07E4D /* apitrigeom.cpp in Sources */, - 840116E4152CBBF600B07E4D /* bndbox.cpp in Sources */, - 840116E5152CBBF600B07E4D /* box.cpp in Sources */, - 840116E6152CBBF600B07E4D /* camera.cpp in Sources */, - 840116E7152CBBF600B07E4D /* coordsys.cpp in Sources */, - 840116E8152CBBF600B07E4D /* cylinder.cpp in Sources */, - 840116E9152CBBF600B07E4D /* extvol.cpp in Sources */, - 840116EA152CBBF600B07E4D /* global.cpp in Sources */, - 840116EB152CBBF600B07E4D /* grid.cpp in Sources */, - 840116EC152CBBF600B07E4D /* imageio.cpp in Sources */, - 840116ED152CBBF600B07E4D /* imap.cpp in Sources */, - 840116EE152CBBF600B07E4D /* intersect.cpp in Sources */, - 840116EF152CBBF600B07E4D /* jpeg.cpp in Sources */, - 840116F0152CBBF600B07E4D /* light.cpp in Sources */, - 840116F1152CBBF600B07E4D /* main.cpp in Sources */, - 840116F2152CBBF600B07E4D /* objbound.cpp in Sources */, - 840116F3152CBBF600B07E4D /* parse.cpp in Sources */, - 840116F4152CBBF600B07E4D /* plane.cpp in Sources */, - 840116F5152CBBF600B07E4D /* ppm.cpp in Sources */, - 840116F6152CBBF600B07E4D /* pthread.cpp in Sources */, - 840116F7152CBBF600B07E4D /* quadric.cpp in Sources */, - 840116F8152CBBF600B07E4D /* render.cpp in Sources */, - 840116F9152CBBF600B07E4D /* ring.cpp in Sources */, - 840116FA152CBBF600B07E4D /* shade.cpp in Sources */, - 840116FB152CBBF600B07E4D /* sphere.cpp in Sources */, - 840116FC152CBBF600B07E4D /* tachyon_video.cpp in Sources */, - 840116FD152CBBF600B07E4D /* texture.cpp in Sources */, - 840116FE152CBBF600B07E4D /* tgafile.cpp in Sources */, - 840116FF152CBBF600B07E4D /* trace_rest.cpp in Sources */, - 84011707152CBBF600B07E4D /* triangle.cpp in Sources */, - 84011708152CBBF600B07E4D /* ui.cpp in Sources */, - 84011709152CBBF600B07E4D /* util.cpp in Sources */, - 8401170A152CBBF600B07E4D /* vector.cpp in Sources */, - 8401170B152CBBF600B07E4D /* vol.cpp in Sources */, - 8401172A152D6E3E00B07E4D /* trace.tbb.cpp in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 84B8DA7C152CA97B00D59B95 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 84B8DA7D152CA97B00D59B95 /* en */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; - 84B8DA7E152CA97B00D59B95 /* MainMenu.xib */ = { - isa = PBXVariantGroup; - children = ( - 84B8DA7F152CA97B00D59B95 /* en */, - ); - name = MainMenu.xib; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 8401175F152D6F6C00B07E4D /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "../../../common/gui/xcode/tbbExample/tbbExample-Prefix.pch"; - HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; - INFOPLIST_FILE = "../../../common/gui/xcode/tbbExample/tbbExample-Info.plist"; - LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../../lib\""; - MACOSX_DEPLOYMENT_TARGET = 10.7; - PRODUCT_NAME = tachyon.serial; - RUN_CLANG_STATIC_ANALYZER = YES; - USER_HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; - VERSION_INFO_BUILDER = "$(TARGET_NAME)"; - WRAPPER_EXTENSION = app; - }; - name = Debug; - }; - 84011760152D6F6C00B07E4D /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "../../../common/gui/xcode/tbbExample/tbbExample-Prefix.pch"; - HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; - INFOPLIST_FILE = "../../../common/gui/xcode/tbbExample/tbbExample-Info.plist"; - LIBRARY_SEARCH_PATHS = ( - "\"$(SRCROOT)/../../../../lib\"", - "\"$(SRCROOT)\"", - ); - MACOSX_DEPLOYMENT_TARGET = 10.7; - PRODUCT_NAME = tachyon.serial; - RUN_CLANG_STATIC_ANALYZER = YES; - USER_HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; - VERSION_INFO_BUILDER = "$(TARGET_NAME)"; - WRAPPER_EXTENSION = app; - }; - name = Release; - }; - 84011798152D6F8400B07E4D /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "../../../common/gui/xcode/tbbExample/tbbExample-Prefix.pch"; - HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; - INFOPLIST_FILE = "../../../common/gui/xcode/tbbExample/tbbExample-Info.plist"; - LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../../lib\""; - MACOSX_DEPLOYMENT_TARGET = 10.7; - PRODUCT_NAME = tachyon.tbb1d; - RUN_CLANG_STATIC_ANALYZER = YES; - USER_HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; - VERSION_INFO_BUILDER = "$(TARGET_NAME)"; - WRAPPER_EXTENSION = app; - }; - name = Debug; - }; - 84011799152D6F8400B07E4D /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "../../../common/gui/xcode/tbbExample/tbbExample-Prefix.pch"; - HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; - INFOPLIST_FILE = "../../../common/gui/xcode/tbbExample/tbbExample-Info.plist"; - LIBRARY_SEARCH_PATHS = ( - "\"$(SRCROOT)/../../../../lib\"", - "\"$(SRCROOT)\"", - ); - MACOSX_DEPLOYMENT_TARGET = 10.7; - PRODUCT_NAME = tachyon.tbb1d; - RUN_CLANG_STATIC_ANALYZER = YES; - USER_HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; - VERSION_INFO_BUILDER = "$(TARGET_NAME)"; - WRAPPER_EXTENSION = app; - }; - name = Release; - }; - 84D01770152743200008A4E0 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = YES; - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - CLANG_ENABLE_OBJC_ARC = YES; - COPY_PHASE_STRIP = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.7; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; - }; - name = Debug; - }; - 84D01771152743200008A4E0 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = YES; - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - CLANG_ENABLE_OBJC_ARC = YES; - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.7; - SDKROOT = macosx; - }; - name = Release; - }; - 84D01773152743200008A4E0 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "../../../common/gui/xcode/tbbExample/tbbExample-Prefix.pch"; - HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; - INFOPLIST_FILE = "../../../common/gui/xcode/tbbExample/tbbExample-Info.plist"; - LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../../lib\""; - MACOSX_DEPLOYMENT_TARGET = 10.7; - PRODUCT_NAME = "$(TARGET_NAME)"; - RUN_CLANG_STATIC_ANALYZER = YES; - USER_HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; - VERSION_INFO_BUILDER = "$(TARGET_NAME)"; - WRAPPER_EXTENSION = app; - }; - name = Debug; - }; - 84D01774152743200008A4E0 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "../../../common/gui/xcode/tbbExample/tbbExample-Prefix.pch"; - HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; - INFOPLIST_FILE = "../../../common/gui/xcode/tbbExample/tbbExample-Info.plist"; - LIBRARY_SEARCH_PATHS = ( - "\"$(SRCROOT)/../../../../lib\"", - "\"$(SRCROOT)\"", - ); - MACOSX_DEPLOYMENT_TARGET = 10.7; - PRODUCT_NAME = "$(TARGET_NAME)"; - RUN_CLANG_STATIC_ANALYZER = YES; - USER_HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; - VERSION_INFO_BUILDER = "$(TARGET_NAME)"; - WRAPPER_EXTENSION = app; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 8401175E152D6F6C00B07E4D /* Build configuration list for PBXNativeTarget "tachyon.serial" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 8401175F152D6F6C00B07E4D /* Debug */, - 84011760152D6F6C00B07E4D /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 84011797152D6F8400B07E4D /* Build configuration list for PBXNativeTarget "tachyon.tbb1d" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 84011798152D6F8400B07E4D /* Debug */, - 84011799152D6F8400B07E4D /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 84D0174B1527431F0008A4E0 /* Build configuration list for PBXProject "tachyon" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 84D01770152743200008A4E0 /* Debug */, - 84D01771152743200008A4E0 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 84D01772152743200008A4E0 /* Build configuration list for PBXNativeTarget "tachyon.tbb" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 84D01773152743200008A4E0 /* Debug */, - 84D01774152743200008A4E0 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 84D017481527431F0008A4E0 /* Project object */; -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/xcode/tachyon.xcodeproj/xcshareddata/xcschemes/tachyon.serial.xcscheme b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/xcode/tachyon.xcodeproj/xcshareddata/xcschemes/tachyon.serial.xcscheme deleted file mode 100644 index b1c85348f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/xcode/tachyon.xcodeproj/xcshareddata/xcschemes/tachyon.serial.xcscheme +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/xcode/tachyon.xcodeproj/xcshareddata/xcschemes/tachyon.tbb.xcscheme b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/xcode/tachyon.xcodeproj/xcshareddata/xcschemes/tachyon.tbb.xcscheme deleted file mode 100644 index ccd129c99..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/xcode/tachyon.xcodeproj/xcshareddata/xcschemes/tachyon.tbb.xcscheme +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/xcode/tachyon.xcodeproj/xcshareddata/xcschemes/tachyon.tbb1d.xcscheme b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/xcode/tachyon.xcodeproj/xcshareddata/xcschemes/tachyon.tbb1d.xcscheme deleted file mode 100644 index 4cb4aadcb..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_for/tachyon/xcode/tachyon.xcodeproj/xcshareddata/xcschemes/tachyon.tbb1d.xcscheme +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/convex_hull/Makefile b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/convex_hull/Makefile deleted file mode 100644 index 0d4111c1c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/convex_hull/Makefile +++ /dev/null @@ -1,63 +0,0 @@ -# Copyright 2005-2014 Intel Corporation. All Rights Reserved. -# -# This file is part of Threading Building Blocks. -# -# Threading Building Blocks is free software; you can redistribute it -# and/or modify it under the terms of the GNU General Public License -# version 2 as published by the Free Software Foundation. -# -# Threading Building Blocks is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied warranty -# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Threading Building Blocks; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# -# As a special exception, you may use this file as part of a free software -# library without restriction. Specifically, if other files instantiate -# templates or use macros or inline functions from this file, or you compile -# this file and link it with other files to produce an executable, this -# file does not by itself cause the resulting executable to be covered by -# the GNU General Public License. This exception does not however -# invalidate any other reasons why the executable file might be covered by -# the GNU General Public License. - -# Common Makefile that builds and runs example. -PROG=convex_hull_bench -ARGS= -PERF_RUN_ARGS = silent auto 40000000 -LIGHT_ARGS = 4 400 - -# Trying to find if icl.exe is set -CXX1 = $(TBB_CXX)- -CXX2 = $(CXX1:icl.exe-=icl.exe) -CXX = $(CXX2:-=cl.exe) - -# The C++ compiler options -MYCXXFLAGS = /TP /EHsc /W3 /nologo $(TBB_SECURITY_SWITCH) /D _CONSOLE /D _MBCS /D WIN32 /D _SCL_SECURE_NO_DEPRECATE /D _SECURE_SCL=0 $(CXXFLAGS) -MYLDFLAGS =/INCREMENTAL:NO /NOLOGO /DEBUG /FIXED:NO $(LDFLAGS) - -all: release test -release: compiler_check - $(CXX) convex_hull_sample.cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib $(LIBS) $(MYLDFLAGS) /OUT:convex_hull_sample.exe - $(CXX) convex_hull_bench.cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib $(LIBS) $(MYLDFLAGS) /OUT:convex_hull_bench.exe -debug: compiler_check - $(CXX) convex_hull_sample.cpp /MDd /Od /Zi /D TBB_USE_DEBUG /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib $(LIBS) $(MYLDFLAGS) /OUT:convex_hull_sample.exe - $(CXX) convex_hull_bench.cpp /MDd /Od /Zi /D TBB_USE_DEBUG /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib $(LIBS) $(MYLDFLAGS) /OUT:convex_hull_bench.exe -clean: - @cmd.exe /C del convex_hull*.exe *.obj *.?db *.manifest -test: - $(PROG) $(ARGS) -perf_build: release - -perf_run: - ./convex_hull_sample $(PERF_RUN_ARGS) - -light_test: - ./$(PROG) $(LIGHT_ARGS) - -compiler_check: - @echo compiler_test>compiler_test && @$(CXX) /E compiler_test >nul 2>&1 || echo "$(CXX) command not found. Check if CXX=$(CXX) is set properly" - @cmd.exe /C del compiler_test diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/convex_hull/convex_hull.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/convex_hull/convex_hull.h deleted file mode 100644 index 65fc449dd..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/convex_hull/convex_hull.h +++ /dev/null @@ -1,197 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __CONVEX_HULL_H__ -#define __CONVEX_HULL_H__ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "tbb/tick_count.h" -#include "tbb/task_scheduler_init.h" -#include "../../common/utility/utility.h" -#include "../../common/utility/fast_random.h" -#include "tbb/blocked_range.h" - -using namespace std; - -namespace cfg { - // convex hull problem user set parameters - long numberOfPoints = 5000000; // problem size - utility::thread_number_range threads(tbb::task_scheduler_init::default_num_threads); - - // convex hull grain sizes for 3 subproblems. Be sure 16*GS < 512Kb - const size_t generateGrainSize = 25000; - const size_t findExtremumGrainSize = 25000; - const size_t divideGrainSize = 25000; -}; - -namespace util { - bool silent = false; - bool verbose = false; - vector OUTPUT; - - // utility functionality - void ParseInputArgs(int argc, char* argv[]) { - utility::parse_cli_arguments( - argc,argv, - utility::cli_argument_pack() - //"-h" option for displaying help is present implicitly - .positional_arg(cfg::threads,"n-of-threads",utility::thread_number_range_desc) - .positional_arg(cfg::numberOfPoints,"n-of-points","number of points") - .arg(silent,"silent","no output except elapsed time") - .arg(verbose,"verbose","turns verbose ON") - ); - //disabling verbose if silent is specified - if (silent) verbose = false;; - } - - template - struct point { - T x; - T y; - //According to subparagraph 4 of paragraph 12.6.2 "Initializing bases and members" [class.base.init] - //of ANSI-ISO-IEC C++ 2003 standard, POD members will _not_ be initialized if they are not mentioned - //in the base-member initializer list. - - //For more details why this needed please see comment in FillRNDPointsVector_buf - point() {} - point(T _x, T _y) : x(_x), y(_y) {} - }; - - std::ostream& operator<< (std::ostream& o, point const& p) { - return o << "(" << p.x << "," << p.y << ")"; - } - - struct rng { - static const size_t max_rand = USHRT_MAX; - utility::FastRandom my_fast_random; - rng (size_t seed):my_fast_random(seed) {} - unsigned short operator()(){return my_fast_random.get();} - unsigned short operator()(size_t& seed){return my_fast_random.get(seed);} - }; - - - template < typename T ,typename rng_functor_type> - point GenerateRNDPoint(size_t& count, rng_functor_type random, size_t rand_max) { - /* generates random points on 2D plane so that the cluster - is somewhat circle shaped */ - const size_t maxsize=500; - T x = random()*2.0/(double)rand_max - 1; - T y = random()*2.0/(double)rand_max - 1; - T r = (x*x + y*y); - if(r>1) { - count++; - if(count>10) { - if (random()/(double)rand_max > 0.5) - x /= r; - if (random()/(double)rand_max > 0.5) - y /= r; - count = 0; - } - else { - x /= r; - y /= r; - } - } - - x = (x+1)*0.5*maxsize; - y = (y+1)*0.5*maxsize; - - return point(x,y); - } - - template - struct edge { - Index start; - Index end; - edge(Index _p1, Index _p2) : start(_p1), end(_p2) {}; - }; - - template - ostream& operator <<(ostream& _ostr, point _p) { - return _ostr << '(' << _p.x << ',' << _p.y << ')'; - } - - template - istream& operator >>(istream& _istr, point _p) { - return _istr >> _p.x >> _p.y; - } - - template - bool operator ==(point p1, point p2) { - return (p1.x == p2.x && p1.y == p2.y); - } - - template - bool operator !=(point p1, point p2) { - return !(p1 == p2); - } - - template - double cross_product(const point& start, const point& end1, const point& end2) { - return ((end1.x-start.x)*(end2.y-start.y)-(end2.x-start.x)*(end1.y-start.y)); - } - - // Timing functions are based on TBB to always obtain wall-clock time - typedef tbb::tick_count my_time_t; - - my_time_t gettime() { - return tbb::tick_count::now(); - } - - double time_diff(my_time_t start, my_time_t end) { - return (end-start).seconds(); - } - - void WriteResults(int nthreads, double initTime, double calcTime) { - if(verbose) { - cout << " Step by step hull construction:" << endl; - for(size_t i = 0; i < OUTPUT.size(); ++i) - cout << OUTPUT[i] << endl; - } - if (!silent){ - cout - << " Number of nodes:" << cfg::numberOfPoints - << " Number of threads:" << nthreads - << " Initialization time:" << setw(10) << setprecision(3) << initTime - << " Calculation time:" << setw(10) << setprecision(3) << calcTime - << endl; - } - } -}; - -#endif // __CONVEX_HULL_H__ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/convex_hull/convex_hull_bench.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/convex_hull/convex_hull_bench.cpp deleted file mode 100644 index c843cff1e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/convex_hull/convex_hull_bench.cpp +++ /dev/null @@ -1,644 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - This file contains a few implementations, so it may look overly complicated. - The most efficient implementation is also separated into convex_hull_sample.cpp -*/ -#include -#include "convex_hull.h" - -typedef util::point point_t; - -#ifndef USETBB - #define USETBB 1 -#endif -#ifndef USECONCVEC - #define USECONCVEC 1 -#endif - -#if !USETBB // Serial implementation of Quick Hull algorithm - -typedef std::vector< point_t > pointVec_t; - -void serial_initialize(pointVec_t &points); - -// C++ style serial code - -class FindXExtremum : public std::unary_function { -public: - typedef enum { - minX, maxX - } extremumType; - - FindXExtremum(const point_t& frstPoint, extremumType exType_) - : extrXPoint(frstPoint), exType(exType_) {} - - void operator()(const point_t& p) { - if(closerToExtremum(p)) - extrXPoint = p; - } - - operator point_t () { - return extrXPoint; - } - -private: - const extremumType exType; - point_t extrXPoint; - - bool closerToExtremum(const point_t &p) const { - switch(exType) { - case minX: - return p.xextrXPoint.x; break; - } - return false; // avoid warning - } -}; - -template -point_t extremum(const pointVec_t &points) { - assert(!points.empty()); - return std::for_each(points.begin(), points.end(), FindXExtremum(points[0], type)); -} - -class SplitByCP : public std::unary_function { - pointVec_t &reducedSet; - point_t p1, p2; - point_t farPoint; - double howFar; -public: - - SplitByCP( point_t _p1, point_t _p2, pointVec_t &_reducedSet) - : p1(_p1), p2(_p2), reducedSet(_reducedSet), howFar(0), farPoint(p1) {} - - void operator()(const point_t& p) { - double cp; - if( (p != p1) && (p != p2) ) { - cp = util::cross_product(p1, p2, p); - if(cp>0) { - reducedSet.push_back(p); - if(cp>howFar) { - farPoint = p; - howFar = cp; - } - } - } - } - - operator point_t (){ - return farPoint; - } -}; - -point_t divide(const pointVec_t &P, pointVec_t &P_reduced, const point_t &p1, const point_t &p2) { - SplitByCP splitByCP(p1, p2, P_reduced); - point_t farPoint = std::for_each(P.begin(), P.end(), splitByCP); - - if(util::verbose) { - std::stringstream ss; - ss << P.size() << " nodes in bucket"<< ", " - << "dividing by: [ " << p1 << ", " << p2 << " ], " - << "farthest node: " << farPoint; - util::OUTPUT.push_back(ss.str()); - } - - return farPoint; -} - -void divide_and_conquer(const pointVec_t &P, pointVec_t &H, point_t p1, point_t p2) { - assert(P.size() >= 2); - pointVec_t P_reduced; - pointVec_t H1, H2; - point_t p_far = divide(P, P_reduced, p1, p2); - if (P_reduced.size()<2) { - H.push_back(p1); - H.insert(H.end(), P_reduced.begin(), P_reduced.end()); - } - else { - divide_and_conquer(P_reduced, H1, p1, p_far); - divide_and_conquer(P_reduced, H2, p_far, p2); - - H.insert(H.end(), H1.begin(), H1.end()); - H.insert(H.end(), H2.begin(), H2.end()); - } -} - -void quickhull(const pointVec_t &points, pointVec_t &hull) { - if (points.size() < 2) { - hull.insert(hull.end(), points.begin(), points.end()); - return; - } - point_t p_maxx = extremum(points); - point_t p_minx = extremum(points); - - pointVec_t H; - - divide_and_conquer(points, hull, p_maxx, p_minx); - divide_and_conquer(points, H, p_minx, p_maxx); - hull.insert(hull.end(), H.begin(), H.end()); -} - - -int main(int argc, char* argv[]) { - util::ParseInputArgs(argc, argv); - - pointVec_t points; - pointVec_t hull; - util::my_time_t tm_init, tm_start, tm_end; - - std::cout << "Starting serial version of QUICK HULL algorithm" << std::endl; - - tm_init = util::gettime(); - serial_initialize(points); - tm_start = util::gettime(); - std::cout << "Init time: " << util::time_diff(tm_init, tm_start) << " Points in input: " << points.size() << "\n"; - tm_start = util::gettime(); - quickhull(points, hull); - tm_end = util::gettime(); - std::cout << "Serial time: " << util::time_diff(tm_start, tm_end) << " Points in hull: " << hull.size() << "\n"; -} - -#else // USETBB - parallel version of Quick Hull algorithm - -#include "tbb/task_scheduler_init.h" -#include "tbb/parallel_for.h" -#include "tbb/parallel_reduce.h" -#include "tbb/blocked_range.h" - -typedef tbb::blocked_range range_t; - -#if USECONCVEC -#include "tbb/concurrent_vector.h" - -typedef tbb::concurrent_vector pointVec_t; - -void appendVector(const point_t* src, size_t srcSize, pointVec_t& dest) { - std::copy(src, src + srcSize, dest.grow_by(srcSize)); -} - -void appendVector(const pointVec_t& src, pointVec_t& dest) { - std::copy(src.begin(), src.end(), dest.grow_by(src.size())); -} - -void grow_vector_to_at_least(pointVec_t& vect, size_t size) { - vect.grow_to_at_least(size); -} -#else // USE STD::VECTOR - include spin_mutex.h and lock vector operations -#include "tbb/spin_mutex.h" - -typedef tbb::spin_mutex mutex_t; -typedef std::vector pointVec_t; - -void appendVector(mutex_t& insertMutex, const pointVec_t& src, pointVec_t& dest) { - mutex_t::scoped_lock lock(insertMutex); - dest.insert(dest.end(), src.begin(), src.end()); -} - -void appendVector(mutex_t& insertMutex, const point_t* src, size_t srcSize, - pointVec_t& dest) { - mutex_t::scoped_lock lock(insertMutex); - dest.insert(dest.end(), src, src + srcSize); -} - -void grow_vector_to_at_least(mutex_t& mutex, pointVec_t& vect, size_t size) { - mutex_t::scoped_lock lock(mutex); - if (vect.size()< size){ - vect.resize(size); - } -} -#endif // USECONCVEC - -class FillRNDPointsVector { - pointVec_t &points; -public: - static const size_t grainSize = cfg::generateGrainSize; -#if !USECONCVEC - static mutex_t pushBackMutex; -#endif // USECONCVEC - - explicit FillRNDPointsVector(pointVec_t& _points) - : points(_points){} - - void operator()(const range_t& range) const { - util::rng the_rng(range.begin()); - const size_t i_end = range.end(); - size_t count = 0; -#if USECONCVEC - points.grow_to_at_least(i_end); -#else // Locked enlarge to a not thread-safe STD::VECTOR - grow_vector_to_at_least(pushBackMutex,points,i_end); -#endif // USECONCVEC - - for(size_t i = range.begin(); i != i_end; ++i) { - points[i]=util::GenerateRNDPoint(count,the_rng,util::rng::max_rand); - } - } -}; - -class FillRNDPointsVector_buf { - pointVec_t &points; -public: - static const size_t grainSize = cfg::generateGrainSize; -#if !USECONCVEC - static mutex_t insertMutex; -#endif // USECONCVEC - - explicit FillRNDPointsVector_buf(pointVec_t& _points) - : points(_points){} - - void operator()(const range_t& range) const { - util::rng the_rng(range.begin()); - const size_t i_end = range.end(); - size_t count = 0, j = 0; - point_t tmp_vec[grainSize]; - - for(size_t i=range.begin(); i!=i_end; ++i) { - tmp_vec[j++] = util::GenerateRNDPoint(count,the_rng,util::rng::max_rand); - } -#if USECONCVEC - grow_vector_to_at_least(points,range.end()); -#else // USE STD::VECTOR - grow_vector_to_at_least(insertMutex,points,range.end()); -#endif // USECONCVEC - std::copy(tmp_vec, tmp_vec+j,points.begin()+range.begin()); - } -}; - -#if !USECONCVEC -mutex_t FillRNDPointsVector::pushBackMutex = mutex_t(); -mutex_t FillRNDPointsVector_buf::insertMutex = mutex_t(); -#endif - -template -void initialize(pointVec_t &points) { - //This function generate the same series of point on every call. - //Reproducibility is needed for benchmarking to produce reliable results. - //It is achieved through the following points: - // - FillRNDPointsVector_buf instance has its own local instance - // of random number generator, which in turn does not use any global data - // - tbb::simple_partitioner produce the same set of ranges on every call to - // tbb::parallel_for - // - local RNG instances are seeded by the starting indexes of corresponding ranges - // - grow_to_at_least() enables putting points into the resulting vector in deterministic order - // (unlike concurrent push_back or grow_by). - - // In the buffered version, a temporary storage for as much as grainSize elements - // is allocated inside the body. Since auto_partitioner may increase effective - // range size which would cause a crash, simple partitioner has to be used. - - tbb::parallel_for(range_t(0, cfg::numberOfPoints, BodyType::grainSize), - BodyType(points), tbb::simple_partitioner()); -} - -class FindXExtremum { -public: - typedef enum { - minX, maxX - } extremumType; - - static const size_t grainSize = cfg::findExtremumGrainSize; - - FindXExtremum(const pointVec_t& points_, extremumType exType_) - : points(points_), exType(exType_), extrXPoint(points[0]) {} - - FindXExtremum(const FindXExtremum& fxex, tbb::split) - : points(fxex.points), exType(fxex.exType), extrXPoint(fxex.extrXPoint) {} - - void operator()(const range_t& range) { - const size_t i_end = range.end(); - if(!range.empty()) { - for(size_t i = range.begin(); i != i_end; ++i) { - if(closerToExtremum(points[i])) { - extrXPoint = points[i]; - } - } - } - } - - void join(const FindXExtremum &rhs) { - if(closerToExtremum(rhs.extrXPoint)) { - extrXPoint = rhs.extrXPoint; - } - } - - point_t extremeXPoint() { - return extrXPoint; - } - -private: - const pointVec_t &points; - const extremumType exType; - point_t extrXPoint; - bool closerToExtremum(const point_t &p) const { - switch(exType) { - case minX: - return p.xextrXPoint.x; break; - } - return false; // avoid warning - } -}; - -template -point_t extremum(const pointVec_t &P) { - FindXExtremum fxBody(P, type); - tbb::parallel_reduce(range_t(0, P.size(), FindXExtremum::grainSize), fxBody); - return fxBody.extremeXPoint(); -} - -class SplitByCP { - const pointVec_t &initialSet; - pointVec_t &reducedSet; - point_t p1, p2; - point_t farPoint; - double howFar; -public: - static const size_t grainSize = cfg::divideGrainSize; -#if !USECONCVEC - static mutex_t pushBackMutex; -#endif // USECONCVEC - - SplitByCP( point_t _p1, point_t _p2, - const pointVec_t &_initialSet, pointVec_t &_reducedSet) - : p1(_p1), p2(_p2), - initialSet(_initialSet), reducedSet(_reducedSet), - howFar(0), farPoint(p1) { - } - - SplitByCP( SplitByCP& sbcp, tbb::split ) - : p1(sbcp.p1), p2(sbcp.p2), - initialSet(sbcp.initialSet), reducedSet(sbcp.reducedSet), - howFar(0), farPoint(p1) {} - - void operator()( const range_t& range ) { - const size_t i_end = range.end(); - double cp; - for(size_t i=range.begin(); i!=i_end; ++i) { - if( (initialSet[i] != p1) && (initialSet[i] != p2) ) { - cp = util::cross_product(p1, p2, initialSet[i]); - if(cp>0) { -#if USECONCVEC - reducedSet.push_back(initialSet[i]); -#else // Locked push_back to a not thread-safe STD::VECTOR - { - mutex_t::scoped_lock lock(pushBackMutex); - reducedSet.push_back(initialSet[i]); - } -#endif // USECONCVEC - if(cp>howFar) { - farPoint = initialSet[i]; - howFar = cp; - } - } - } - } - } - - void join(const SplitByCP& rhs) { - if(rhs.howFar>howFar) { - howFar = rhs.howFar; - farPoint = rhs.farPoint; - } - } - - point_t farthestPoint() const { - return farPoint; - } -}; - -class SplitByCP_buf { - const pointVec_t &initialSet; - pointVec_t &reducedSet; - point_t p1, p2; - point_t farPoint; - double howFar; -public: - static const size_t grainSize = cfg::divideGrainSize; -#if !USECONCVEC - static mutex_t insertMutex; -#endif // USECONCVEC - - SplitByCP_buf( point_t _p1, point_t _p2, - const pointVec_t &_initialSet, pointVec_t &_reducedSet) - : p1(_p1), p2(_p2), - initialSet(_initialSet), reducedSet(_reducedSet), - howFar(0), farPoint(p1) {} - - SplitByCP_buf(SplitByCP_buf& sbcp, tbb::split) - : p1(sbcp.p1), p2(sbcp.p2), - initialSet(sbcp.initialSet), reducedSet(sbcp.reducedSet), - howFar(0), farPoint(p1) {} - - void operator()(const range_t& range) { - const size_t i_end = range.end(); - size_t j = 0; - double cp; - point_t tmp_vec[grainSize]; - for(size_t i = range.begin(); i != i_end; ++i) { - if( (initialSet[i] != p1) && (initialSet[i] != p2) ) { - cp = util::cross_product(p1, p2, initialSet[i]); - if(cp>0) { - tmp_vec[j++] = initialSet[i]; - if(cp>howFar) { - farPoint = initialSet[i]; - howFar = cp; - } - } - } - } - -#if USECONCVEC - appendVector(tmp_vec, j, reducedSet); -#else // USE STD::VECTOR - appendVector(insertMutex, tmp_vec, j, reducedSet); -#endif // USECONCVEC - } - - void join(const SplitByCP_buf& rhs) { - if(rhs.howFar>howFar) { - howFar = rhs.howFar; - farPoint = rhs.farPoint; - } - } - - point_t farthestPoint() const { - return farPoint; - } -}; - -#if !USECONCVEC -mutex_t SplitByCP::pushBackMutex = mutex_t(); -mutex_t SplitByCP_buf::insertMutex = mutex_t(); -#endif - -template -point_t divide(const pointVec_t &P, pointVec_t &P_reduced, - const point_t &p1, const point_t &p2) { - BodyType body(p1, p2, P, P_reduced); - // Must use simple_partitioner (see the comment in initialize() above) - tbb::parallel_reduce(range_t(0, P.size(), BodyType::grainSize), - body, tbb::simple_partitioner() ); - - if(util::verbose) { - std::stringstream ss; - ss << P.size() << " nodes in bucket"<< ", " - << "dividing by: [ " << p1 << ", " << p2 << " ], " - << "farthest node: " << body.farthestPoint(); - util::OUTPUT.push_back(ss.str()); - } - - return body.farthestPoint(); -} - -void divide_and_conquer(const pointVec_t &P, pointVec_t &H, - point_t p1, point_t p2, bool buffered) { - assert(P.size() >= 2); - pointVec_t P_reduced; - pointVec_t H1, H2; - point_t p_far; - - if(buffered) { - p_far = divide(P, P_reduced, p1, p2); - } else { - p_far = divide(P, P_reduced, p1, p2); - } - - if (P_reduced.size()<2) { - H.push_back(p1); -#if USECONCVEC - appendVector(P_reduced, H); -#else // insert into STD::VECTOR - H.insert(H.end(), P_reduced.begin(), P_reduced.end()); -#endif - } - else { - divide_and_conquer(P_reduced, H1, p1, p_far, buffered); - divide_and_conquer(P_reduced, H2, p_far, p2, buffered); - -#if USECONCVEC - appendVector(H1, H); - appendVector(H2, H); -#else // insert into STD::VECTOR - H.insert(H.end(), H1.begin(), H1.end()); - H.insert(H.end(), H2.begin(), H2.end()); -#endif - } -} - -void quickhull(const pointVec_t &points, pointVec_t &hull, bool buffered) { - if (points.size() < 2) { -#if USECONCVEC - appendVector(points, hull); -#else // STD::VECTOR - hull.insert(hull.end(), points.begin(), points.end()); -#endif // USECONCVEC - return; - } - - point_t p_maxx = extremum(points); - point_t p_minx = extremum(points); - - pointVec_t H; - - divide_and_conquer(points, hull, p_maxx, p_minx, buffered); - divide_and_conquer(points, H, p_minx, p_maxx, buffered); -#if USECONCVEC - appendVector(H, hull); -#else // STD::VECTOR - hull.insert(hull.end(), H.begin(), H.end()); -#endif // USECONCVEC -} - -int main(int argc, char* argv[]) { - util::ParseInputArgs(argc, argv); - - int nthreads; - util::my_time_t tm_init, tm_start, tm_end; - -#if USECONCVEC - std::cout << "Starting TBB unbuffered push_back version of QUICK HULL algorithm" << std::endl; -#else - std::cout << "Starting STL locked unbuffered push_back version of QUICK HULL algorithm" << std::endl; -#endif // USECONCVEC - - for(nthreads=cfg::threads.first; nthreads<=cfg::threads.last; nthreads=cfg::threads.step(nthreads)) { - pointVec_t points; - pointVec_t hull; - - tbb::task_scheduler_init init(nthreads); - tm_init = util::gettime(); - initialize(points); - tm_start = util::gettime(); - std::cout << "Parallel init time on " << nthreads << " threads: " << util::time_diff(tm_init, tm_start) << " Points in input: " << points.size() << "\n"; - - tm_start = util::gettime(); - quickhull(points, hull, false); - tm_end = util::gettime(); - std::cout << "Time on " << nthreads << " threads: " << util::time_diff(tm_start, tm_end) << " Points in hull: " << hull.size() << "\n"; - } - -#if USECONCVEC - std::cout << "Starting TBB buffered version of QUICK HULL algorithm" << std::endl; -#else - std::cout << "Starting STL locked buffered version of QUICK HULL algorithm" << std::endl; -#endif - - for(nthreads=cfg::threads.first; nthreads<=cfg::threads.last; nthreads=cfg::threads.step(nthreads)) { - pointVec_t points; - pointVec_t hull; - - tbb::task_scheduler_init init(nthreads); - - tm_init = util::gettime(); - initialize(points); - tm_start = util::gettime(); - std::cout << "Init time on " << nthreads << " threads: " << util::time_diff(tm_init, tm_start) << " Points in input: " << points.size() << "\n"; - - tm_start = util::gettime(); - quickhull(points, hull, true); - tm_end = util::gettime(); - std::cout << "Time on " << nthreads << " threads: " << util::time_diff(tm_start, tm_end) << " Points in hull: " << hull.size() << "\n"; - } - - return 0; -} - -#endif // USETBB - -void serial_initialize(pointVec_t &points) { - points.reserve(cfg::numberOfPoints); - - unsigned int rseed=1; - for(size_t i=0, count=0; long(i)(count,&std::rand,RAND_MAX )); - } -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/convex_hull/convex_hull_sample.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/convex_hull/convex_hull_sample.cpp deleted file mode 100644 index 0f888fb13..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/convex_hull/convex_hull_sample.cpp +++ /dev/null @@ -1,307 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - This file contains the TBB-based implementation of convex hull algortihm. - It corresponds to the following settings in convex_hull_bench.cpp: - - USETBB defined to 1 - - USECONCVEC defined to 1 - - INIT_ONCE defined to 0 - - only buffered version is used -*/ -#include -#include -#include "convex_hull.h" - -#include "tbb/task_scheduler_init.h" -#include "tbb/parallel_for.h" -#include "tbb/parallel_reduce.h" -#include "tbb/blocked_range.h" -#include "tbb/tick_count.h" -#include "tbb/concurrent_vector.h" - -typedef util::point point_t; -typedef tbb::concurrent_vector< point_t > pointVec_t; -typedef tbb::blocked_range range_t; - -void appendVector(const point_t* src, size_t srcSize, pointVec_t& dest) { - std::copy(src, src + srcSize, dest.grow_by(srcSize)); -} - -void appendVector(const pointVec_t& src, pointVec_t& dest) { - std::copy(src.begin(), src.end(), dest.grow_by(src.size())); -} -class FillRNDPointsVector_buf { - pointVec_t &points; -public: - static const size_t grainSize = cfg::generateGrainSize; - - explicit FillRNDPointsVector_buf(pointVec_t& _points) - : points(_points) {} - - void operator()(const range_t& range) const { - util::rng the_rng(range.begin()); - const size_t i_end = range.end(); - size_t count = 0, j = 0; - point_t tmp_vec[grainSize]; - - for(size_t i=range.begin(); i!=i_end; ++i) { - tmp_vec[j++] = util::GenerateRNDPoint(count, the_rng, util::rng::max_rand); - } - //Here we have race condition. Elements being written to may be still under construction. - //For C++ 2003 it is workarounded by vector element type which default constructor does not touch memory, - //it being constructed on. See comments near default ctor of point class for more details. - //Strictly speaking it is UB. - //TODO: need to find more reliable/correct way - points.grow_to_at_least(range.end()); - std::copy(tmp_vec, tmp_vec+j,points.begin()+range.begin()); - } -}; - -void initialize(pointVec_t &points) { - //This function generate the same series of point on every call. - //Reproducibility is needed for benchmarking to produce reliable results. - //It is achieved through the following points: - // - FillRNDPointsVector_buf instance has its own local instance - // of random number generator, which in turn does not use any global data - // - tbb::simple_partitioner produce the same set of ranges on every call to - // tbb::parallel_for - // - local RNG instances are seeded by the starting indexes of corresponding ranges - // - grow_to_at_least() enables putting points into the resulting vector in deterministic order - // (unlike concurrent push_back or grow_by). - - // In the buffered version, a temporary storage for as much as grainSize elements - // is allocated inside the body. Since auto_partitioner may increase effective - // range size which would cause a crash, simple partitioner has to be used. - tbb::parallel_for(range_t(0, cfg::numberOfPoints, FillRNDPointsVector_buf::grainSize), - FillRNDPointsVector_buf(points), tbb::simple_partitioner()); -} - -class FindXExtremum { -public: - typedef enum { - minX, maxX - } extremumType; - - static const size_t grainSize = cfg::findExtremumGrainSize; - - FindXExtremum(const pointVec_t& points_, extremumType exType_) - : points(points_), exType(exType_), extrXPoint(points[0]) {} - - FindXExtremum(const FindXExtremum& fxex, tbb::split) - // Can run in parallel with fxex.operator()() or fxex.join(). - // The data race reported by tools is harmless. - : points(fxex.points), exType(fxex.exType), extrXPoint(fxex.extrXPoint) {} - - void operator()(const range_t& range) { - const size_t i_end = range.end(); - if(!range.empty()) { - for(size_t i = range.begin(); i != i_end; ++i) { - if(closerToExtremum(points[i])) { - extrXPoint = points[i]; - } - } - } - } - - void join(const FindXExtremum &rhs) { - if(closerToExtremum(rhs.extrXPoint)) { - extrXPoint = rhs.extrXPoint; - } - } - - point_t extremeXPoint() { - return extrXPoint; - } - -private: - const pointVec_t &points; - const extremumType exType; - point_t extrXPoint; - bool closerToExtremum(const point_t &p) const { - switch(exType) { - case minX: - return p.xextrXPoint.x; break; - } - return false; // avoid warning - } -}; - -template -point_t extremum(const pointVec_t &P) { - FindXExtremum fxBody(P, type); - tbb::parallel_reduce(range_t(0, P.size(), FindXExtremum::grainSize), fxBody); - return fxBody.extremeXPoint(); -} - -class SplitByCP_buf { - const pointVec_t &initialSet; - pointVec_t &reducedSet; - point_t p1, p2; - point_t farPoint; - double howFar; -public: - static const size_t grainSize = cfg::divideGrainSize; - - SplitByCP_buf( point_t _p1, point_t _p2, - const pointVec_t &_initialSet, pointVec_t &_reducedSet) - : p1(_p1), p2(_p2), - initialSet(_initialSet), reducedSet(_reducedSet), - howFar(0), farPoint(p1) {} - - SplitByCP_buf(SplitByCP_buf& sbcp, tbb::split) - : p1(sbcp.p1), p2(sbcp.p2), - initialSet(sbcp.initialSet), reducedSet(sbcp.reducedSet), - howFar(0), farPoint(p1) {} - - void operator()(const range_t& range) { - const size_t i_end = range.end(); - size_t j = 0; - double cp; - point_t tmp_vec[grainSize]; - for(size_t i = range.begin(); i != i_end; ++i) { - if( (initialSet[i] != p1) && (initialSet[i] != p2) ) { - cp = util::cross_product(p1, p2, initialSet[i]); - if(cp>0) { - tmp_vec[j++] = initialSet[i]; - if(cp>howFar) { - farPoint = initialSet[i]; - howFar = cp; - } - } - } - } - - appendVector(tmp_vec, j, reducedSet); - } - - void join(const SplitByCP_buf& rhs) { - if(rhs.howFar>howFar) { - howFar = rhs.howFar; - farPoint = rhs.farPoint; - } - } - - point_t farthestPoint() const { - return farPoint; - } -}; - -point_t divide(const pointVec_t &P, pointVec_t &P_reduced, - const point_t &p1, const point_t &p2) { - SplitByCP_buf sbcpb(p1, p2, P, P_reduced); - // Must use simple_partitioner (see the comment in initialize() above) - tbb::parallel_reduce(range_t(0, P.size(), SplitByCP_buf::grainSize), - sbcpb, tbb::simple_partitioner()); - - if(util::verbose) { - std::stringstream ss; - ss << P.size() << " nodes in bucket"<< ", " - << "dividing by: [ " << p1 << ", " << p2 << " ], " - << "farthest node: " << sbcpb.farthestPoint(); - util::OUTPUT.push_back(ss.str()); - } - - return sbcpb.farthestPoint(); -} - -void divide_and_conquer(const pointVec_t &P, pointVec_t &H, - point_t p1, point_t p2) { - assert(P.size() >= 2); - pointVec_t P_reduced; - pointVec_t H1, H2; - point_t p_far = divide(P, P_reduced, p1, p2); - if (P_reduced.size()<2) { - H.push_back(p1); - appendVector(P_reduced, H); - } - else { - divide_and_conquer(P_reduced, H1, p1, p_far); - divide_and_conquer(P_reduced, H2, p_far, p2); - - appendVector(H1, H); - appendVector(H2, H); - } -} - -void quickhull(const pointVec_t &points, pointVec_t &hull) { - if (points.size() < 2) { - appendVector(points, hull); - return; - } - - point_t p_maxx = extremum(points); - point_t p_minx = extremum(points); - - pointVec_t H; - - divide_and_conquer(points, hull, p_maxx, p_minx); - divide_and_conquer(points, H, p_minx, p_maxx); - - appendVector(H, hull); -} - -int main(int argc, char* argv[]) { - util::my_time_t tm_main_begin = util::gettime(); - - util::ParseInputArgs(argc, argv); - - pointVec_t points; - pointVec_t hull; - int nthreads; - - points.reserve(cfg::numberOfPoints); - - if(!util::silent) { - std::cout << "Starting TBB-buffered version of QUICK HULL algorithm" << std::endl; - } - - for(nthreads=cfg::threads.first; nthreads<=cfg::threads.last; nthreads=cfg::threads.step(nthreads)) { - tbb::task_scheduler_init init(nthreads); - - points.clear(); - util::my_time_t tm_init = util::gettime(); - initialize(points); - util::my_time_t tm_start = util::gettime(); - if(!util::silent) { - std::cout <<"Init time on "< - - -

    Overview

    -Parallel version of convex hull algorithm (quick hull). - -

    Files

    -
    -
    convex_hull_sample.cpp -
    Source code for TBB version of example. -
    convex_hull_bench.cpp -
    Source code for version of example that compares serial and TBB buffered and unbuffered implementations. -
    convex_hull.h -
    Include file for example. -
    Makefile -
    Makefile for building example. -
    - -

    Directories

    -
    -
    msvs -
    Contains Microsoft* Visual Studio* 2005 workspace for building and running the - example (Windows* systems only).
    xcode -
    Contains Xcode* IDE workspace for building and running the example (OS X* - systems only).
    - -

    To Build

    -General build directions can be found here. - -

    Usage

    -
    -
    convex_hull_sample [S] [M[:N]] [-v] -
    S is the number of points (problem size). - M:N are a range of numbers of threads to be used. - Use the -v option to turn on verbose output. -
    To run a short version of this example, e.g., for use with Intel® Threading Tools: -
    Build a debug version of the example - (see the build directions). -
    Run it with a small problem size and the desired number of threads, e.g., convex_hull_sample 500000 4. -
    - -
    -Up to parent directory -

    -Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

    -Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

    -* Other names and brands may be claimed as the property of others. - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/convex_hull/msvs/convex_hull_benchmark.icproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/convex_hull/msvs/convex_hull_benchmark.icproj deleted file mode 100644 index bd78adc29..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/convex_hull/msvs/convex_hull_benchmark.icproj +++ /dev/null @@ -1,11 +0,0 @@ - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/convex_hull/msvs/convex_hull_benchmark.vcproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/convex_hull/msvs/convex_hull_benchmark.vcproj deleted file mode 100644 index 3aadbd484..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/convex_hull/msvs/convex_hull_benchmark.vcproj +++ /dev/null @@ -1,366 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/convex_hull/msvs/convex_hull_cl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/convex_hull/msvs/convex_hull_cl.sln deleted file mode 100644 index e5670817e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/convex_hull/msvs/convex_hull_cl.sln +++ /dev/null @@ -1,35 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "convex_hull_benchmark", "convex_hull_benchmark.vcproj", "{3AA40693-F93D-4D4B-B32E-068F511A252A}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "convex_hull_sample", "convex_hull_sample.vcproj", "{5F897A77-EBD9-4462-94D4-06E2ADE47F3B}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|Win32.ActiveCfg = Debug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|Win32.Build.0 = Debug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|x64.ActiveCfg = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|x64.Build.0 = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|Win32.ActiveCfg = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|Win32.Build.0 = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|x64.ActiveCfg = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|x64.Build.0 = Release|x64 - {5F897A77-EBD9-4462-94D4-06E2ADE47F3B}.Debug|Win32.ActiveCfg = Debug|Win32 - {5F897A77-EBD9-4462-94D4-06E2ADE47F3B}.Debug|Win32.Build.0 = Debug|Win32 - {5F897A77-EBD9-4462-94D4-06E2ADE47F3B}.Debug|x64.ActiveCfg = Debug|x64 - {5F897A77-EBD9-4462-94D4-06E2ADE47F3B}.Debug|x64.Build.0 = Debug|x64 - {5F897A77-EBD9-4462-94D4-06E2ADE47F3B}.Release|Win32.ActiveCfg = Release|Win32 - {5F897A77-EBD9-4462-94D4-06E2ADE47F3B}.Release|Win32.Build.0 = Release|Win32 - {5F897A77-EBD9-4462-94D4-06E2ADE47F3B}.Release|x64.ActiveCfg = Release|x64 - {5F897A77-EBD9-4462-94D4-06E2ADE47F3B}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/convex_hull/msvs/convex_hull_icl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/convex_hull/msvs/convex_hull_icl.sln deleted file mode 100644 index 356f196c4..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/convex_hull/msvs/convex_hull_icl.sln +++ /dev/null @@ -1,51 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{EAF909A5-FA59-4C3D-9431-0FCC20D5BCF9}") = "convex_hull_benchmark", "convex_hull_benchmark.icproj", "{347CD752-84DD-4E7C-9DB3-90B740C03E8E}" -EndProject -Project("{EAF909A5-FA59-4C3D-9431-0FCC20D5BCF9}") = "convex_hull_sample", "convex_hull_sample.icproj", "{B83E81E3-9EB0-4C22-B6CF-F2329A496EDA}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {347CD752-84DD-4E7C-9DB3-90B740C03E8E}.Debug|Win32.ActiveCfg = Debug|Win32 - {347CD752-84DD-4E7C-9DB3-90B740C03E8E}.Debug|Win32.Build.0 = Debug|Win32 - {347CD752-84DD-4E7C-9DB3-90B740C03E8E}.Debug|x64.ActiveCfg = Debug|x64 - {347CD752-84DD-4E7C-9DB3-90B740C03E8E}.Debug|x64.Build.0 = Debug|x64 - {347CD752-84DD-4E7C-9DB3-90B740C03E8E}.Release|Win32.ActiveCfg = Release|Win32 - {347CD752-84DD-4E7C-9DB3-90B740C03E8E}.Release|Win32.Build.0 = Release|Win32 - {347CD752-84DD-4E7C-9DB3-90B740C03E8E}.Release|x64.ActiveCfg = Release|x64 - {347CD752-84DD-4E7C-9DB3-90B740C03E8E}.Release|x64.Build.0 = Release|x64 - {B83E81E3-9EB0-4C22-B6CF-F2329A496EDA}.Debug|Win32.ActiveCfg = Debug|Win32 - {B83E81E3-9EB0-4C22-B6CF-F2329A496EDA}.Debug|Win32.Build.0 = Debug|Win32 - {B83E81E3-9EB0-4C22-B6CF-F2329A496EDA}.Debug|x64.ActiveCfg = Debug|x64 - {B83E81E3-9EB0-4C22-B6CF-F2329A496EDA}.Debug|x64.Build.0 = Debug|x64 - {B83E81E3-9EB0-4C22-B6CF-F2329A496EDA}.Release|Win32.ActiveCfg = Release|Win32 - {B83E81E3-9EB0-4C22-B6CF-F2329A496EDA}.Release|Win32.Build.0 = Release|Win32 - {B83E81E3-9EB0-4C22-B6CF-F2329A496EDA}.Release|x64.ActiveCfg = Release|x64 - {B83E81E3-9EB0-4C22-B6CF-F2329A496EDA}.Release|x64.Build.0 = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|x64.Build.0 = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|x64.ActiveCfg = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|Win32.Build.0 = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|Win32.ActiveCfg = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|x64.Build.0 = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|x64.ActiveCfg = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|Win32.Build.0 = Debug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|Win32.ActiveCfg = Debug|Win32 - {5F897A77-EBD9-4462-94D4-06E2ADE47F3B}.Release|x64.Build.0 = Release|x64 - {5F897A77-EBD9-4462-94D4-06E2ADE47F3B}.Release|x64.ActiveCfg = Release|x64 - {5F897A77-EBD9-4462-94D4-06E2ADE47F3B}.Release|Win32.Build.0 = Release|Win32 - {5F897A77-EBD9-4462-94D4-06E2ADE47F3B}.Release|Win32.ActiveCfg = Release|Win32 - {5F897A77-EBD9-4462-94D4-06E2ADE47F3B}.Debug|x64.Build.0 = Debug|x64 - {5F897A77-EBD9-4462-94D4-06E2ADE47F3B}.Debug|x64.ActiveCfg = Debug|x64 - {5F897A77-EBD9-4462-94D4-06E2ADE47F3B}.Debug|Win32.Build.0 = Debug|Win32 - {5F897A77-EBD9-4462-94D4-06E2ADE47F3B}.Debug|Win32.ActiveCfg = Debug|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/convex_hull/msvs/convex_hull_sample.icproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/convex_hull/msvs/convex_hull_sample.icproj deleted file mode 100644 index 076c2f7bf..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/convex_hull/msvs/convex_hull_sample.icproj +++ /dev/null @@ -1,11 +0,0 @@ - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/convex_hull/msvs/convex_hull_sample.vcproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/convex_hull/msvs/convex_hull_sample.vcproj deleted file mode 100644 index 075ad9a0b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/convex_hull/msvs/convex_hull_sample.vcproj +++ /dev/null @@ -1,364 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/convex_hull/xcode/convex_hull.xcodeproj/project.pbxproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/convex_hull/xcode/convex_hull.xcodeproj/project.pbxproj deleted file mode 100644 index 6b35ba136..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/convex_hull/xcode/convex_hull.xcodeproj/project.pbxproj +++ /dev/null @@ -1,441 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - A146114A0B94631F000C6B18 /* convex_hull_bench.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A14611490B94631F000C6B18 /* convex_hull_bench.cpp */; }; - A1F593A60B8F042A00073279 /* convex_hull_sample.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F593A50B8F042A00073279 /* convex_hull_sample.cpp */; }; - A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; }; - A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; }; - A1F594FC0B8F4F1000073279 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; }; - A1F594FD0B8F4F1800073279 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 8DD76F690486A84900D96B5E /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 12; - dstPath = ""; - dstSubfolderSpec = 16; - files = ( - A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A1F594F40B8F4E7700073279 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 16; - files = ( - A1F594FD0B8F4F1800073279 /* libtbb.dylib in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - A14611490B94631F000C6B18 /* convex_hull_bench.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = convex_hull_bench.cpp; path = ../convex_hull_bench.cpp; sourceTree = SOURCE_ROOT; }; - A146114C0B9463CB000C6B18 /* convex_hull.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = convex_hull.h; path = ../convex_hull.h; sourceTree = SOURCE_ROOT; }; - A1F593A50B8F042A00073279 /* convex_hull_sample.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = convex_hull_sample.cpp; path = ../convex_hull_sample.cpp; sourceTree = SOURCE_ROOT; }; - A1F593B30B8F06F900073279 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = ../../../../lib/libtbb.dylib; sourceTree = SOURCE_ROOT; }; - A1F594EB0B8F4B5600073279 /* convex_hull_bench */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = convex_hull_bench; sourceTree = BUILT_PRODUCTS_DIR; }; - A1F594FA0B8F4EE000073279 /* convex_hull_sample */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = convex_hull_sample; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8DD76F660486A84900D96B5E /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A1F594E90B8F4B5600073279 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - A1F594FC0B8F4F1000073279 /* libtbb.dylib in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 08FB7794FE84155DC02AAC07 /* convex_hull */ = { - isa = PBXGroup; - children = ( - 08FB7795FE84155DC02AAC07 /* Source */, - A1F593B20B8F06F900073279 /* External Frameworks and Libraries */, - 1AB674ADFE9D54B511CA2CBB /* Products */, - ); - name = convex_hull; - sourceTree = ""; - }; - 08FB7795FE84155DC02AAC07 /* Source */ = { - isa = PBXGroup; - children = ( - A146114C0B9463CB000C6B18 /* convex_hull.h */, - A14611490B94631F000C6B18 /* convex_hull_bench.cpp */, - A1F593A50B8F042A00073279 /* convex_hull_sample.cpp */, - ); - name = Source; - sourceTree = ""; - }; - 1AB674ADFE9D54B511CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - A1F594EB0B8F4B5600073279 /* convex_hull_bench */, - A1F594FA0B8F4EE000073279 /* convex_hull_sample */, - ); - name = Products; - sourceTree = ""; - }; - A1F593B20B8F06F900073279 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - A1F593B30B8F06F900073279 /* libtbb.dylib */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8DD76F620486A84900D96B5E /* convex_hull_sample */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "convex_hull_sample" */; - buildPhases = ( - 8DD76F640486A84900D96B5E /* Sources */, - 8DD76F660486A84900D96B5E /* Frameworks */, - 8DD76F690486A84900D96B5E /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = convex_hull_sample; - productInstallPath = "$(HOME)/bin"; - productName = convex_hull; - productReference = A1F594FA0B8F4EE000073279 /* convex_hull_sample */; - productType = "com.apple.product-type.tool"; - }; - A1F594EA0B8F4B5600073279 /* convex_hull_bench */ = { - isa = PBXNativeTarget; - buildConfigurationList = A1F594EE0B8F4B8200073279 /* Build configuration list for PBXNativeTarget "convex_hull_bench" */; - buildPhases = ( - A1F594E80B8F4B5600073279 /* Sources */, - A1F594E90B8F4B5600073279 /* Frameworks */, - A1F594F40B8F4E7700073279 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = convex_hull_bench; - productName = convex_hull_bench; - productReference = A1F594EB0B8F4B5600073279 /* convex_hull_bench */; - productType = "com.apple.product-type.tool"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 08FB7793FE84155DC02AAC07 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0410; - }; - buildConfigurationList = 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "convex_hull" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - en, - ); - mainGroup = 08FB7794FE84155DC02AAC07 /* convex_hull */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8DD76F620486A84900D96B5E /* convex_hull_sample */, - A1F594EA0B8F4B5600073279 /* convex_hull_bench */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXSourcesBuildPhase section */ - 8DD76F640486A84900D96B5E /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A1F593A60B8F042A00073279 /* convex_hull_sample.cpp in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A1F594E80B8F4B5600073279 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A146114A0B94631F000C6B18 /* convex_hull_bench.cpp in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 1DEB923208733DC60010E9CD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = convex_hull_sample; - ZERO_LINK = NO; - }; - name = Debug; - }; - 1DEB923308733DC60010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = convex_hull_sample; - ZERO_LINK = NO; - }; - name = Release; - }; - 1DEB923608733DC60010E9CD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Debug; - }; - 1DEB923708733DC60010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Release; - }; - A1F593C60B8F0E6E00073279 /* Debug64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = convex_hull_sample; - ZERO_LINK = NO; - }; - name = Debug64; - }; - A1F593C70B8F0E6E00073279 /* Release64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = convex_hull_sample; - ZERO_LINK = NO; - }; - name = Release64; - }; - A1F593C80B8F0E6E00073279 /* Debug64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "-m64", - ); - OTHER_LDFLAGS = "-m64"; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Debug64; - }; - A1F593C90B8F0E6E00073279 /* Release64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "-m64", - ); - OTHER_LDFLAGS = "-m64"; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Release64; - }; - A1F594EF0B8F4B8200073279 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = convex_hull_bench; - ZERO_LINK = NO; - }; - name = Debug; - }; - A1F594F00B8F4B8200073279 /* Debug64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = convex_hull_bench; - ZERO_LINK = NO; - }; - name = Debug64; - }; - A1F594F10B8F4B8200073279 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = YES; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = convex_hull_bench; - ZERO_LINK = NO; - }; - name = Release; - }; - A1F594F20B8F4B8200073279 /* Release64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = convex_hull_bench; - ZERO_LINK = NO; - }; - name = Release64; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "convex_hull_sample" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB923208733DC60010E9CD /* Debug */, - A1F593C60B8F0E6E00073279 /* Debug64 */, - 1DEB923308733DC60010E9CD /* Release */, - A1F593C70B8F0E6E00073279 /* Release64 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "convex_hull" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB923608733DC60010E9CD /* Debug */, - A1F593C80B8F0E6E00073279 /* Debug64 */, - 1DEB923708733DC60010E9CD /* Release */, - A1F593C90B8F0E6E00073279 /* Release64 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - A1F594EE0B8F4B8200073279 /* Build configuration list for PBXNativeTarget "convex_hull_bench" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A1F594EF0B8F4B8200073279 /* Debug */, - A1F594F00B8F4B8200073279 /* Debug64 */, - A1F594F10B8F4B8200073279 /* Release */, - A1F594F20B8F4B8200073279 /* Release64 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/index.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/index.html deleted file mode 100644 index bb00b0a82..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/index.html +++ /dev/null @@ -1,26 +0,0 @@ - - - -

    Overview

    -This directory has examples of the template parallel_reduce. - -

    Directories

    -
    -
    convex_hull -
    Parallel version of convex hull algorithm (quick hull). -
    primes -
    Parallel version of the Sieve of Eratosthenes. -
    - -
    -Up to parent directory -

    -Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

    -Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

    -* Other names and brands may be claimed as the property of others. - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/primes/Makefile b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/primes/Makefile deleted file mode 100644 index 16a387ce2..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/primes/Makefile +++ /dev/null @@ -1,60 +0,0 @@ -# Copyright 2005-2014 Intel Corporation. All Rights Reserved. -# -# This file is part of Threading Building Blocks. -# -# Threading Building Blocks is free software; you can redistribute it -# and/or modify it under the terms of the GNU General Public License -# version 2 as published by the Free Software Foundation. -# -# Threading Building Blocks is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied warranty -# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Threading Building Blocks; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# -# As a special exception, you may use this file as part of a free software -# library without restriction. Specifically, if other files instantiate -# templates or use macros or inline functions from this file, or you compile -# this file and link it with other files to produce an executable, this -# file does not by itself cause the resulting executable to be covered by -# the GNU General Public License. This exception does not however -# invalidate any other reasons why the executable file might be covered by -# the GNU General Public License. - -# Common Makefile that builds and runs example. - -# Just specify your program basename -PROG=Primes -ARGS=0:auto -PERF_RUN_ARGS=silent auto 1000000000 1000 20 - -# Trying to find if icl.exe is set -CXX1 = $(TBB_CXX)- -CXX2 = $(CXX1:icl.exe-=icl.exe) -CXX = $(CXX2:-=cl.exe) - -# The C++ compiler options -MYCXXFLAGS = /TP /EHsc /W3 /nologo /D _CONSOLE /D _MBCS /D WIN32 $(CXXFLAGS) -MYLDFLAGS =/INCREMENTAL:NO /NOLOGO /DEBUG /FIXED:NO $(LDFLAGS) - -all: release test -release: compiler_check - $(CXX) main.cpp primes.cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe -debug: compiler_check - $(CXX) main.cpp primes.cpp /MDd /Od /Zi /D TBB_USE_DEBUG /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe -clean: - @cmd.exe /C del $(PROG).exe *.obj *.?db *.manifest -test: - $(PROG) $(ARGS) - -perf_build: release - -perf_run: - ./$(PROG) $(PERF_RUN_ARGS) - -compiler_check: - @echo compiler_test>compiler_test && @$(CXX) /E compiler_test >nul 2>&1 || echo "$(CXX) command not found. Check if CXX=$(CXX) is set properly" - @cmd.exe /C del compiler_test diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/primes/index.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/primes/index.html deleted file mode 100644 index e110b3361..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/primes/index.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -

    Overview

    -
    -
    Parallel version of the Sieve of Eratosthenes. -
    The example can be built in the offload version to run on Intel® Many Integrated Core (Intel® MIC) Architecture based coprocessor (see build instructions). -
    - -

    Files

    -
    -
    main.cpp -
    Main program which parses command line options and runs the algorithm with different numbers of threads. -
    primes.h -
    The Sieve of Eratosthenes interface. -
    primes.cpp -
    The Sieve of Eratosthenes implementation. -
    Makefile -
    Makefile for building example. -
    - -

    Directories

    -
    -
    msvs -
    Contains Microsoft* Visual Studio* 2005 workspace for building and running the - example (Windows* systems only).
    xcode -
    Contains Xcode* IDE workspace for building and running the example (OS X* - systems only).
    - -

    To Build

    -General build directions can be found here. -here - -

    Usage

    -
    -
    primes -h -
    Prints the help for command line options -
    primes [n-of-threads=value] [number=value] [grain-size=value] [n-of-repeats=value] [silent] -
    primes [n-of-threads [number [grain-size [n-of-repeats]]]][silent] -
    n-of-threads is the number of threads to use; a range of the form low[:high], where low and optional high are non-negative integers or 'auto' for the TBB default.
    - number is an upper bound of range to search primes in, must be a positive integer.
    - grain-size is an optional grain size, must be a positive integer.
    - n-of-repeats is a number of the calculation repeats, must be a positive integer.
    - silent - no output except elapsed time.
    - -
    To run a short version of this example, e.g., for use with Intel® Parallel Inspector: -
    Build a debug version of the example - (see the build directions). -
    Run it with a small problem size and the desired number of threads, e.g., primes 4 100000. -
    - -
    -Up to parent directory -

    -Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

    -Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

    -* Other names and brands may be claimed as the property of others. - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/primes/main.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/primes/main.cpp deleted file mode 100644 index 1bfa1a5bd..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/primes/main.cpp +++ /dev/null @@ -1,132 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#include "primes.h" -#include -#include -#include -#include -#include -#include -#include -#include "tbb/tick_count.h" - -#include "../../common/utility/utility.h" - -struct RunOptions{ - //! NumberType of threads to use. - utility::thread_number_range threads; - //whether to suppress additional output - bool silentFlag; - // - NumberType n; - //! Grain size parameter - NumberType grainSize; - // number of time to repeat calculation - NumberType repeatNumber; - - RunOptions(utility::thread_number_range threads, NumberType grainSize, NumberType n, bool silentFlag, NumberType repeatNumber) - : threads(threads), grainSize(grainSize), n(n), silentFlag(silentFlag), repeatNumber(repeatNumber) - {} -}; - -int do_get_default_num_threads() { - int threads; - #if __TBB_MIC_OFFLOAD - #pragma offload target(mic) out(threads) - #endif // __TBB_MIC_OFFLOAD - threads = tbb::task_scheduler_init::default_num_threads(); - return threads; -} - -int get_default_num_threads() { - static int threads = do_get_default_num_threads(); - return threads; -} - -//! Parse the command line. -static RunOptions ParseCommandLine( int argc, const char* argv[] ) { - utility::thread_number_range threads( get_default_num_threads, 0, get_default_num_threads() ); - NumberType grainSize = 1000; - bool silent = false; - NumberType number = 100000000; - NumberType repeatNumber = 1; - - utility::parse_cli_arguments(argc,argv, - utility::cli_argument_pack() - //"-h" option for displaying help is present implicitly - .positional_arg(threads,"n-of-threads",utility::thread_number_range_desc) - .positional_arg(number,"number","upper bound of range to search primes in, must be a positive integer") - .positional_arg(grainSize,"grain-size","must be a positive integer") - .positional_arg(repeatNumber,"n-of-repeats","repeat the calculation this number of times, must be a positive integer") - .arg(silent,"silent","no output except elapsed time") - ); - - RunOptions options(threads,grainSize, number, silent, repeatNumber); - return options; -} - -int main( int argc, const char* argv[] ) { - tbb::tick_count mainBeginMark = tbb::tick_count::now(); - RunOptions options =ParseCommandLine(argc,argv); - - // Try different numbers of threads - for( int p=options.threads.first; p<=options.threads.last; p=options.threads.step(p) ) { - for (NumberType i=0; i - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/primes/msvs/primes.vcproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/primes/msvs/primes.vcproj deleted file mode 100644 index c98140ee8..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/primes/msvs/primes.vcproj +++ /dev/null @@ -1,364 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/primes/msvs/primes_cl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/primes/msvs/primes_cl.sln deleted file mode 100644 index 089aa4f75..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/primes/msvs/primes_cl.sln +++ /dev/null @@ -1,25 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "primes", "primes.vcproj", "{3AA40693-F93D-4D4B-B32E-068F511A252A}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|Win32.ActiveCfg = Debug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|Win32.Build.0 = Debug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|x64.ActiveCfg = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|x64.Build.0 = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|Win32.ActiveCfg = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|Win32.Build.0 = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|x64.ActiveCfg = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/primes/msvs/primes_icl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/primes/msvs/primes_icl.sln deleted file mode 100644 index 34482b04f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/primes/msvs/primes_icl.sln +++ /dev/null @@ -1,33 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{EAF909A5-FA59-4C3D-9431-0FCC20D5BCF9}") = "primes", "primes.icproj", "{D731702C-B704-468D-9497-A75EE0521C89}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D731702C-B704-468D-9497-A75EE0521C89}.Debug|Win32.ActiveCfg = Debug|Win32 - {D731702C-B704-468D-9497-A75EE0521C89}.Debug|Win32.Build.0 = Debug|Win32 - {D731702C-B704-468D-9497-A75EE0521C89}.Debug|x64.ActiveCfg = Debug|x64 - {D731702C-B704-468D-9497-A75EE0521C89}.Debug|x64.Build.0 = Debug|x64 - {D731702C-B704-468D-9497-A75EE0521C89}.Release|Win32.ActiveCfg = Release|Win32 - {D731702C-B704-468D-9497-A75EE0521C89}.Release|Win32.Build.0 = Release|Win32 - {D731702C-B704-468D-9497-A75EE0521C89}.Release|x64.ActiveCfg = Release|x64 - {D731702C-B704-468D-9497-A75EE0521C89}.Release|x64.Build.0 = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|x64.Build.0 = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|x64.ActiveCfg = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|Win32.Build.0 = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|Win32.ActiveCfg = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|x64.Build.0 = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|x64.ActiveCfg = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|Win32.Build.0 = Debug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|Win32.ActiveCfg = Debug|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/primes/primes.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/primes/primes.cpp deleted file mode 100644 index 9db5a8989..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/primes/primes.cpp +++ /dev/null @@ -1,317 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -// Example program that computes number of prime numbers up to n, -// where n is a command line argument. The algorithm here is a -// fairly efficient version of the sieve of Eratosthenes. -// The parallel version demonstrates how to use parallel_reduce, -// and in particular how to exploit lazy splitting. - -#include "primes.h" - -#if __TBB_MIC_OFFLOAD -#pragma offload_attribute (target(mic)) -#endif // __TBB_MIC_OFFLOAD -#include -#include -#include -#include -#include -#include -#include -#include "tbb/parallel_reduce.h" -#include "tbb/task_scheduler_init.h" - -using namespace std; - -//! If true, then print primes on stdout. -static bool printPrimes = false; - - -class Multiples { - inline NumberType strike( NumberType start, NumberType limit, NumberType stride ) { - // Hoist "my_is_composite" into register for sake of speed. - bool* is_composite = my_is_composite; - assert( stride>=2 ); - for( ;start=1 ); - my_is_composite = new bool[m/2]; - my_striker = new NumberType[m/2]; - for( size_t k=0; k=2; - if( n>=3 ) { - Multiples multiples(n); - count += multiples.n_factor; - if( printPrimes ) - printf("---\n"); - NumberType window_size = multiples.m; - for( NumberType j=multiples.m; j<=n; j+=window_size ) { - if( j+window_size>n+1 ) - window_size = n+1-j; - count += multiples.find_primes_in_window( j, window_size ); - } - } - return count; -} - -//! Range of a sieve window. -class SieveRange { - //! Width of full-size window into sieve. - const NumberType my_stride; - - //! Always multiple of my_stride - NumberType my_begin; - - //! One past last number in window. - NumberType my_end; - - //! Width above which it is worth forking. - const NumberType my_grainsize; - - bool assert_okay() const { - assert( my_begin%my_stride==0 ); - assert( my_begin<=my_end ); - assert( my_stride<=my_grainsize ); - return true; - } -public: - //------------------------------------------------------------------------ - // Begin signatures required by parallel_reduce - //------------------------------------------------------------------------ - bool is_divisible() const {return my_end-my_begin>my_grainsize;} - bool empty() const {return my_end<=my_begin;} - SieveRange( SieveRange& r, tbb::split ) : - my_stride(r.my_stride), - my_grainsize(r.my_grainsize), - my_end(r.my_end) - { - assert( r.is_divisible() ); - assert( r.assert_okay() ); - NumberType middle = r.my_begin + (r.my_end-r.my_begin+r.my_stride-1)/2; - middle = middle/my_stride*my_stride; - my_begin = middle; - r.my_end = middle; - assert( assert_okay() ); - assert( r.assert_okay() ); - } - //------------------------------------------------------------------------ - // End of signatures required by parallel_reduce - //------------------------------------------------------------------------ - NumberType begin() const {return my_begin;} - NumberType end() const {return my_end;} - SieveRange( NumberType begin, NumberType end, NumberType stride, NumberType grainsize ) : - my_begin(begin), - my_end(end), - my_stride(stride), - my_grainsize(grainsizer.end() ) - window_size = r.end()-j; - count += multiples.find_primes_in_window( j, window_size ); - } - } - void join( Sieve& other ) { - count += other.count; - // Final value of multiples needs to final value of other.mulitiples, - // so that *this can correcty process next window to right. - multiples.move( other.multiples ); - } - Sieve( Sieve& other, tbb::split ) : - multiples(other.multiples,tbb::split()), - count(0) - {} - //------------------------------------------------------------------------ - // End of signatures required by parallel_reduce - //------------------------------------------------------------------------ -}; - -//! Count number of primes between 0 and n -/** This is the parallel version. */ -NumberType ParallelCountPrimes( NumberType n , int number_of_threads, NumberType grain_size ) { - tbb::task_scheduler_init init(number_of_threads); - - // Two is special case - NumberType count = n>=2; - if( n>=3 ) { - Sieve s(n); - count += s.multiples.n_factor; - if( printPrimes ) - printf("---\n"); - using namespace tbb; - // Explicit grain size and simple_partitioner() used here instead of automatic grainsize - // determination becase we want SieveRange to be decomposed down to grainSize or smaller. - // Doing so improves odds that the working set fits in cache when evaluating Sieve::operator(). - parallel_reduce( SieveRange( s.multiples.m, n, s.multiples.m, grain_size ), s, simple_partitioner() ); - count += s.count; - } - return count; -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/primes/primes.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/primes/primes.h deleted file mode 100644 index 969feee98..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/primes/primes.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef PRIMES_H_ -#define PRIMES_H_ - -#if __TBB_MIC_OFFLOAD -#pragma offload_attribute (push,target(mic)) -#endif // __TBB_MIC_OFFLOAD - -#include "tbb/task_scheduler_init.h" -#include -typedef std::size_t NumberType; - -//! Count number of primes between 0 and n -/** This is the serial version. */ -NumberType SerialCountPrimes( NumberType n); - -//! Count number of primes between 0 and n -/** This is the parallel version. */ -NumberType ParallelCountPrimes( NumberType n, int numberOfThreads= tbb::task_scheduler_init::automatic, NumberType grainSize = 1000); - -#if __TBB_MIC_OFFLOAD -#pragma offload_attribute (pop) -#endif // __TBB_MIC_OFFLOAD - -#endif /* PRIMES_H_ */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/primes/xcode/primes.xcodeproj/project.pbxproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/primes/xcode/primes.xcodeproj/project.pbxproj deleted file mode 100644 index 2202d3115..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/parallel_reduce/primes/xcode/primes.xcodeproj/project.pbxproj +++ /dev/null @@ -1,311 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - A1F593A60B8F042A00073279 /* primes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F593A50B8F042A00073279 /* primes.cpp */; }; - A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; }; - A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; }; - EA8D882D1301731B00385DE1 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EA8D882C1301731B00385DE1 /* main.cpp */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 8DD76F690486A84900D96B5E /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 12; - dstPath = ""; - dstSubfolderSpec = 16; - files = ( - A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 8DD76F6C0486A84900D96B5E /* primes */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = primes; sourceTree = BUILT_PRODUCTS_DIR; }; - A1F593A50B8F042A00073279 /* primes.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = primes.cpp; path = ../primes.cpp; sourceTree = SOURCE_ROOT; }; - A1F593B30B8F06F900073279 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = ../../../../lib/libtbb.dylib; sourceTree = SOURCE_ROOT; }; - EA8D882B130172E400385DE1 /* primes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = primes.h; path = ../primes.h; sourceTree = SOURCE_ROOT; }; - EA8D882C1301731B00385DE1 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = ../main.cpp; sourceTree = SOURCE_ROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8DD76F660486A84900D96B5E /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 08FB7794FE84155DC02AAC07 /* primes */ = { - isa = PBXGroup; - children = ( - 08FB7795FE84155DC02AAC07 /* Source */, - A1F593B20B8F06F900073279 /* External Frameworks and Libraries */, - 1AB674ADFE9D54B511CA2CBB /* Products */, - ); - name = primes; - sourceTree = ""; - }; - 08FB7795FE84155DC02AAC07 /* Source */ = { - isa = PBXGroup; - children = ( - EA8D882C1301731B00385DE1 /* main.cpp */, - EA8D882B130172E400385DE1 /* primes.h */, - A1F593A50B8F042A00073279 /* primes.cpp */, - ); - name = Source; - sourceTree = ""; - }; - 1AB674ADFE9D54B511CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8DD76F6C0486A84900D96B5E /* primes */, - ); - name = Products; - sourceTree = ""; - }; - A1F593B20B8F06F900073279 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - A1F593B30B8F06F900073279 /* libtbb.dylib */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8DD76F620486A84900D96B5E /* primes */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "primes" */; - buildPhases = ( - 8DD76F640486A84900D96B5E /* Sources */, - 8DD76F660486A84900D96B5E /* Frameworks */, - 8DD76F690486A84900D96B5E /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = primes; - productInstallPath = "$(HOME)/bin"; - productName = primes; - productReference = 8DD76F6C0486A84900D96B5E /* primes */; - productType = "com.apple.product-type.tool"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 08FB7793FE84155DC02AAC07 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0410; - }; - buildConfigurationList = 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "primes" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - en, - ); - mainGroup = 08FB7794FE84155DC02AAC07 /* primes */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8DD76F620486A84900D96B5E /* primes */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXSourcesBuildPhase section */ - 8DD76F640486A84900D96B5E /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A1F593A60B8F042A00073279 /* primes.cpp in Sources */, - EA8D882D1301731B00385DE1 /* main.cpp in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 1DEB923208733DC60010E9CD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = primes; - ZERO_LINK = NO; - }; - name = Debug; - }; - 1DEB923308733DC60010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = primes; - ZERO_LINK = NO; - }; - name = Release; - }; - 1DEB923608733DC60010E9CD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Debug; - }; - 1DEB923708733DC60010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Release; - }; - A1F593C60B8F0E6E00073279 /* Debug64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = primes; - ZERO_LINK = NO; - }; - name = Debug64; - }; - A1F593C70B8F0E6E00073279 /* Release64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = primes; - ZERO_LINK = NO; - }; - name = Release64; - }; - A1F593C80B8F0E6E00073279 /* Debug64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "-m64", - ); - OTHER_LDFLAGS = "-m64"; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Debug64; - }; - A1F593C90B8F0E6E00073279 /* Release64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "-m64", - ); - OTHER_LDFLAGS = "-m64"; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Release64; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "primes" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB923208733DC60010E9CD /* Debug */, - A1F593C60B8F0E6E00073279 /* Debug64 */, - 1DEB923308733DC60010E9CD /* Release */, - A1F593C70B8F0E6E00073279 /* Release64 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "primes" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB923608733DC60010E9CD /* Debug */, - A1F593C80B8F0E6E00073279 /* Debug64 */, - 1DEB923708733DC60010E9CD /* Release */, - A1F593C90B8F0E6E00073279 /* Release64 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/pipeline/index.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/pipeline/index.html deleted file mode 100644 index 8a96b9507..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/pipeline/index.html +++ /dev/null @@ -1,24 +0,0 @@ - - - -

    Overview

    -This directory has examples of the template pipeline. - -

    Directories

    -
    -
    square -
    Another simple string transformation example that squares numbers read from a file. -
    - -
    -Up to parent directory -

    -Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

    -Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

    -* Other names and brands may be claimed as the property of others. - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/pipeline/square/Makefile b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/pipeline/square/Makefile deleted file mode 100644 index a61ab2b02..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/pipeline/square/Makefile +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright 2005-2014 Intel Corporation. All Rights Reserved. -# -# This file is part of Threading Building Blocks. -# -# Threading Building Blocks is free software; you can redistribute it -# and/or modify it under the terms of the GNU General Public License -# version 2 as published by the Free Software Foundation. -# -# Threading Building Blocks is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied warranty -# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Threading Building Blocks; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# -# As a special exception, you may use this file as part of a free software -# library without restriction. Specifically, if other files instantiate -# templates or use macros or inline functions from this file, or you compile -# this file and link it with other files to produce an executable, this -# file does not by itself cause the resulting executable to be covered by -# the GNU General Public License. This exception does not however -# invalidate any other reasons why the executable file might be covered by -# the GNU General Public License. - -# Common Makefile that builds and runs example. - -# Just specify your program basename -PROG=square -ARGS=0 input.txt output.txt -PERF_RUN_ARGS=auto input.txt output.txt silent - -# Trying to find if icl.exe is set -CXX1 = $(TBB_CXX)- -CXX2 = $(CXX1:icl.exe-=icl.exe) -CXX = $(CXX2:-=cl.exe) - -# The C++ compiler options -MYCXXFLAGS = /TP /EHsc /W3 /nologo /D _CONSOLE /D _MBCS /D WIN32 $(CXXFLAGS) /D _CRT_SECURE_NO_DEPRECATE /D _SECURE_SCL=0 /arch:sse2 -MYLDFLAGS =/INCREMENTAL:NO /NOLOGO /DEBUG /FIXED:NO $(LDFLAGS) -SOURCES = square.cpp gen_input.cpp - -all: release test -release: compiler_check - $(CXX) $(SOURCES) /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe -debug: compiler_check - $(CXX) $(SOURCES) /MDd /Od /Zi /D TBB_USE_DEBUG /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe -clean: - @cmd.exe /C del $(PROG).exe input.txt output.txt *.obj *.?db *.manifest gen_input.exe -test: - $(PROG) $(ARGS) -compiler_check: - @echo compiler_test>compiler_test && @$(CXX) /E compiler_test >nul 2>&1 || echo "$(CXX) command not found. Check if CXX=$(CXX) is set properly" - @cmd.exe /C del compiler_test -perf_build: release -perf_run: - $(PROG) $(PERF_RUN_ARGS) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/pipeline/square/gen_input.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/pipeline/square/gen_input.cpp deleted file mode 100644 index 9da29b4db..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/pipeline/square/gen_input.cpp +++ /dev/null @@ -1,70 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#include -#include -#include - -#if _WIN32 -#include -#ifndef F_OK -#define F_OK 0 -#endif -#define access _access -#else -#include -#endif - -const long INPUT_SIZE = 1000000; - -//! Generates sample input for square.cpp -void gen_input( const char *fname ) { - long num = INPUT_SIZE; - FILE *fptr = fopen(fname, "w"); - if(!fptr) { - throw std::runtime_error("Could not open file for generating input"); - } - - int a=0; - int b=1; - for( long j=0; j - - -

    Overview

    -Text filter that demonstrates class pipeline. Example program reads a file -containing decimal integers in text format, and changes each to its square. - -

    Files

    -
    -
    square.cpp -
    Source code for example. -
    gen_input.cpp -
    Source code for sample input generation. -
    Makefile -
    Makefile for building example. -
    - -

    Directories

    -
    -
    msvs -
    Contains Microsoft* Visual Studio* 2005 workspace for building and running the - example (Windows* systems only).
    xcode -
    Contains Xcode* IDE workspace for building and running the example (OS X* - systems only).
    - -

    To Build

    -General build directions can be found here. -

    -Two additional targets for this example: -
    -
    make gen_input -
    Create an input generator program that prints out a sequence of integers. -
    make input.txt -
    Create an input file for the example (with help of gen_input). -
    -

    - -

    Usage

    -
    -
    square -h -
    Prints the help for command line options -
    square [n-of-threads=value] [input-file=value] [output-file=value] [max-slice-size=value] [silent] -
    square [n-of-threads [input-file [output-file [max-slice-size]]]] [silent] -
    n-of-threads is the number of threads to use; a range of the form low[:high], where low and optional high are non-negative integers or 'auto' for the TBB default.
    - input-file is an input file name.
    - output-file is an output file name.
    - max-slice-size is the maximum number of characters in one slice.
    - silent - no output except elapsed time.
    -
    gen_input [LN] > inputfile -
    Generate a file named inputfile consisting of LN lines each containing one integer. - If not specified, LN is assumed to be 1000000. - -
    To run a short version of this example, e.g., for use with Intel® Parallel Inspector: -
    Build a debug version of the example - (see the build directions). -
    Prepare an inputfile with about 5,000 lines of text (see the instruction above). -
    Run it with this inputfile and the desired number of threads, - e.g., square 4 inputfile outputfile. -
    - -
    -Up to parent directory -

    -Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

    -Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

    -* Other names and brands may be claimed as the property of others. - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/pipeline/square/msvs/square.icproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/pipeline/square/msvs/square.icproj deleted file mode 100644 index ae974caee..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/pipeline/square/msvs/square.icproj +++ /dev/null @@ -1,11 +0,0 @@ - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/pipeline/square/msvs/square.vcproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/pipeline/square/msvs/square.vcproj deleted file mode 100644 index 5049c5ea5..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/pipeline/square/msvs/square.vcproj +++ /dev/null @@ -1,372 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/pipeline/square/msvs/square.vcproj.user b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/pipeline/square/msvs/square.vcproj.user deleted file mode 100644 index e7c2b92f3..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/pipeline/square/msvs/square.vcproj.user +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/pipeline/square/msvs/square_cl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/pipeline/square/msvs/square_cl.sln deleted file mode 100644 index fa7ed5ec9..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/pipeline/square/msvs/square_cl.sln +++ /dev/null @@ -1,25 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "square", "square.vcproj", "{A21C0AEE-ADDC-45F0-A668-58FF10351D23}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A21C0AEE-ADDC-45F0-A668-58FF10351D23}.Debug|Win32.ActiveCfg = Debug|Win32 - {A21C0AEE-ADDC-45F0-A668-58FF10351D23}.Debug|Win32.Build.0 = Debug|Win32 - {A21C0AEE-ADDC-45F0-A668-58FF10351D23}.Debug|x64.ActiveCfg = Debug|x64 - {A21C0AEE-ADDC-45F0-A668-58FF10351D23}.Debug|x64.Build.0 = Debug|x64 - {A21C0AEE-ADDC-45F0-A668-58FF10351D23}.Release|Win32.ActiveCfg = Release|Win32 - {A21C0AEE-ADDC-45F0-A668-58FF10351D23}.Release|Win32.Build.0 = Release|Win32 - {A21C0AEE-ADDC-45F0-A668-58FF10351D23}.Release|x64.ActiveCfg = Release|x64 - {A21C0AEE-ADDC-45F0-A668-58FF10351D23}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/pipeline/square/msvs/square_icl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/pipeline/square/msvs/square_icl.sln deleted file mode 100644 index 9b93397e8..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/pipeline/square/msvs/square_icl.sln +++ /dev/null @@ -1,54 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{EAF909A5-FA59-4C3D-9431-0FCC20D5BCF9}") = "square", "square.icproj", "{7462FB4A-C9BE-40D4-A568-5D08F507EEB1}" - ProjectSection(ProjectDependencies) = postProject - {18ECAB6C-2630-4F8F-BEF2-3DBDEF7355AA} = {18ECAB6C-2630-4F8F-BEF2-3DBDEF7355AA} - EndProjectSection -EndProject -Project("{EAF909A5-FA59-4C3D-9431-0FCC20D5BCF9}") = "gen_input", "gen_input.icproj", "{18ECAB6C-2630-4F8F-BEF2-3DBDEF7355AA}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7462FB4A-C9BE-40D4-A568-5D08F507EEB1}.Debug|Win32.ActiveCfg = Debug|Win32 - {7462FB4A-C9BE-40D4-A568-5D08F507EEB1}.Debug|Win32.Build.0 = Debug|Win32 - {7462FB4A-C9BE-40D4-A568-5D08F507EEB1}.Debug|x64.ActiveCfg = Debug|x64 - {7462FB4A-C9BE-40D4-A568-5D08F507EEB1}.Debug|x64.Build.0 = Debug|x64 - {7462FB4A-C9BE-40D4-A568-5D08F507EEB1}.Release|Win32.ActiveCfg = Release|Win32 - {7462FB4A-C9BE-40D4-A568-5D08F507EEB1}.Release|Win32.Build.0 = Release|Win32 - {7462FB4A-C9BE-40D4-A568-5D08F507EEB1}.Release|x64.ActiveCfg = Release|x64 - {7462FB4A-C9BE-40D4-A568-5D08F507EEB1}.Release|x64.Build.0 = Release|x64 - {18ECAB6C-2630-4F8F-BEF2-3DBDEF7355AA}.Debug|Win32.ActiveCfg = Debug|Win32 - {18ECAB6C-2630-4F8F-BEF2-3DBDEF7355AA}.Debug|Win32.Build.0 = Debug|Win32 - {18ECAB6C-2630-4F8F-BEF2-3DBDEF7355AA}.Debug|x64.ActiveCfg = Debug|x64 - {18ECAB6C-2630-4F8F-BEF2-3DBDEF7355AA}.Debug|x64.Build.0 = Debug|x64 - {18ECAB6C-2630-4F8F-BEF2-3DBDEF7355AA}.Release|Win32.ActiveCfg = Release|Win32 - {18ECAB6C-2630-4F8F-BEF2-3DBDEF7355AA}.Release|Win32.Build.0 = Release|Win32 - {18ECAB6C-2630-4F8F-BEF2-3DBDEF7355AA}.Release|x64.ActiveCfg = Release|x64 - {18ECAB6C-2630-4F8F-BEF2-3DBDEF7355AA}.Release|x64.Build.0 = Release|x64 - {A21C0AEE-ADDC-45F0-A668-58FF10351D23}.Release|x64.Build.0 = Release|x64 - {A21C0AEE-ADDC-45F0-A668-58FF10351D23}.Release|x64.ActiveCfg = Release|x64 - {A21C0AEE-ADDC-45F0-A668-58FF10351D23}.Release|Win32.Build.0 = Release|Win32 - {A21C0AEE-ADDC-45F0-A668-58FF10351D23}.Release|Win32.ActiveCfg = Release|Win32 - {A21C0AEE-ADDC-45F0-A668-58FF10351D23}.Debug|x64.Build.0 = Debug|x64 - {A21C0AEE-ADDC-45F0-A668-58FF10351D23}.Debug|x64.ActiveCfg = Debug|x64 - {A21C0AEE-ADDC-45F0-A668-58FF10351D23}.Debug|Win32.Build.0 = Debug|Win32 - {A21C0AEE-ADDC-45F0-A668-58FF10351D23}.Debug|Win32.ActiveCfg = Debug|Win32 - {25A46A49-406F-4681-8AC9-5FE46F38E5A7}.Release|x64.Build.0 = Release|x64 - {25A46A49-406F-4681-8AC9-5FE46F38E5A7}.Release|x64.ActiveCfg = Release|x64 - {25A46A49-406F-4681-8AC9-5FE46F38E5A7}.Release|Win32.Build.0 = Release|Win32 - {25A46A49-406F-4681-8AC9-5FE46F38E5A7}.Release|Win32.ActiveCfg = Release|Win32 - {25A46A49-406F-4681-8AC9-5FE46F38E5A7}.Debug|x64.Build.0 = Debug|x64 - {25A46A49-406F-4681-8AC9-5FE46F38E5A7}.Debug|x64.ActiveCfg = Debug|x64 - {25A46A49-406F-4681-8AC9-5FE46F38E5A7}.Debug|Win32.Build.0 = Debug|Win32 - {25A46A49-406F-4681-8AC9-5FE46F38E5A7}.Debug|Win32.ActiveCfg = Debug|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/pipeline/square/square.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/pipeline/square/square.cpp deleted file mode 100644 index 566a52c09..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/pipeline/square/square.cpp +++ /dev/null @@ -1,287 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -// -// Example program that reads a file of decimal integers in text format -// and changes each to its square. -// -#include "tbb/pipeline.h" -#include "tbb/tick_count.h" -#include "tbb/task_scheduler_init.h" -#include "tbb/tbb_allocator.h" -#include -#include -#include -#include -#include "../../common/utility/utility.h" - -extern void generate_if_needed(const char*); - -using namespace std; - -//! Holds a slice of text. -/** Instances *must* be allocated/freed using methods herein, because the C++ declaration - represents only the header of a much larger object in memory. */ -class TextSlice { - //! Pointer to one past last character in sequence - char* logical_end; - //! Pointer to one past last available byte in sequence. - char* physical_end; -public: - //! Allocate a TextSlice object that can hold up to max_size characters. - static TextSlice* allocate( size_t max_size ) { - // +1 leaves room for a terminating null character. - TextSlice* t = (TextSlice*)tbb::tbb_allocator().allocate( sizeof(TextSlice)+max_size+1 ); - t->logical_end = t->begin(); - t->physical_end = t->begin()+max_size; - return t; - } - //! Free a TextSlice object - void free() { - tbb::tbb_allocator().deallocate((char*)this,sizeof(TextSlice)+(physical_end-begin())+1); - } - //! Pointer to beginning of sequence - char* begin() {return (char*)(this+1);} - //! Pointer to one past last character in sequence - char* end() {return logical_end;} - //! Length of sequence - size_t size() const {return logical_end-(char*)(this+1);} - //! Maximum number of characters that can be appended to sequence - size_t avail() const {return physical_end-logical_end;} - //! Append sequence [first,last) to this sequence. - void append( char* first, char* last ) { - memcpy( logical_end, first, last-first ); - logical_end += last-first; - } - //! Set end() to given value. - void set_end( char* p ) {logical_end=p;} -}; - -size_t MAX_CHAR_PER_INPUT_SLICE = 4000; -string InputFileName = "input.txt"; -string OutputFileName = "output.txt"; - -class MyInputFilter: public tbb::filter { -public: - MyInputFilter( FILE* input_file_ ); - ~MyInputFilter(); -private: - FILE* input_file; - TextSlice* next_slice; - /*override*/ void* operator()(void*); -}; - -MyInputFilter::MyInputFilter( FILE* input_file_ ) : - filter(serial_in_order), - input_file(input_file_), - next_slice( TextSlice::allocate( MAX_CHAR_PER_INPUT_SLICE ) ) -{ -} - -MyInputFilter::~MyInputFilter() { - next_slice->free(); -} - -void* MyInputFilter::operator()(void*) { - // Read characters into space that is available in the next slice. - size_t m = next_slice->avail(); - size_t n = fread( next_slice->end(), 1, m, input_file ); - if( !n && next_slice->size()==0 ) { - // No more characters to process - return NULL; - } else { - // Have more characters to process. - TextSlice& t = *next_slice; - next_slice = TextSlice::allocate( MAX_CHAR_PER_INPUT_SLICE ); - char* p = t.end()+n; - if( n==m ) { - // Might have read partial number. If so, transfer characters of partial number to next slice. - while( p>t.begin() && isdigit(p[-1]) ) - --p; - next_slice->append( p, t.end()+n ); - } - t.set_end(p); - return &t; - } -} - -//! Filter that changes each decimal number to its square. -class MyTransformFilter: public tbb::filter { -public: - MyTransformFilter(); - /*override*/void* operator()( void* item ); -}; - -MyTransformFilter::MyTransformFilter() : - tbb::filter(parallel) -{} - -/*override*/void* MyTransformFilter::operator()( void* item ) { - TextSlice& input = *static_cast(item); - // Add terminating null so that strtol works right even if number is at end of the input. - *input.end() = '\0'; - char* p = input.begin(); - TextSlice& out = *TextSlice::allocate( 2*MAX_CHAR_PER_INPUT_SLICE ); - char* q = out.begin(); - for(;;) { - while( p(item); - size_t n = fwrite( out.begin(), 1, out.size(), my_output_file ); - if( n!=out.size() ) { - fprintf(stderr,"Can't write into file '%s'\n", OutputFileName.c_str()); - exit(1); - } - out.free(); - return NULL; -} - -bool silent = false; - -int run_pipeline( int nthreads ) -{ - FILE* input_file = fopen( InputFileName.c_str(), "r" ); - if( !input_file ) { - throw std::invalid_argument( ("Invalid input file name: "+InputFileName).c_str() ); - return 0; - } - FILE* output_file = fopen( OutputFileName.c_str(), "w" ); - if( !output_file ) { - throw std::invalid_argument( ("Invalid output file name: "+OutputFileName).c_str() ); - return 0; - } - - // Create the pipeline - tbb::pipeline pipeline; - - // Create file-reading writing stage and add it to the pipeline - MyInputFilter input_filter( input_file ); - pipeline.add_filter( input_filter ); - - // Create squaring stage and add it to the pipeline - MyTransformFilter transform_filter; - pipeline.add_filter( transform_filter ); - - // Create file-writing stage and add it to the pipeline - MyOutputFilter output_filter( output_file ); - pipeline.add_filter( output_filter ); - - // Run the pipeline - tbb::tick_count t0 = tbb::tick_count::now(); - // Need more than one token in flight per thread to keep all threads - // busy; 2-4 works - pipeline.run( nthreads*4 ); - tbb::tick_count t1 = tbb::tick_count::now(); - - fclose( output_file ); - fclose( input_file ); - - if ( !silent ) printf("time = %g\n", (t1-t0).seconds()); - - return 1; -} - -int main( int argc, char* argv[] ) { - try { - tbb::tick_count mainStartTime = tbb::tick_count::now(); - - // The 1st argument is the function to obtain 'auto' value; the 2nd is the default value - // The example interprets 0 threads as "run serially, then fully subscribed" - utility::thread_number_range threads( tbb::task_scheduler_init::default_num_threads, 0 ); - - utility::parse_cli_arguments(argc,argv, - utility::cli_argument_pack() - //"-h" option for displaying help is present implicitly - .positional_arg(threads,"n-of-threads",utility::thread_number_range_desc) - .positional_arg(InputFileName,"input-file","input file name") - .positional_arg(OutputFileName,"output-file","output file name") - .positional_arg(MAX_CHAR_PER_INPUT_SLICE, "max-slice-size","the maximum number of characters in one slice") - .arg(silent,"silent","no output except elapsed time") - ); - generate_if_needed( InputFileName.c_str() ); - - if ( threads.first ) { - for(int p = threads.first; p <= threads.last; p=threads.step(p) ) { - if ( !silent ) printf("threads = %d ", p); - tbb::task_scheduler_init init(p); - if(!run_pipeline (p)) - return 1; - } - } else { // Number of threads wasn't set explicitly. Run serial and parallel version - { // serial run - if ( !silent ) printf("serial run "); - tbb::task_scheduler_init init_serial(1); - if(!run_pipeline (1)) - return 1; - } - { // parallel run (number of threads is selected automatically) - if ( !silent ) printf("parallel run "); - tbb::task_scheduler_init init_parallel; - if(!run_pipeline (init_parallel.default_num_threads())) - return 1; - } - } - - utility::report_elapsed_time((tbb::tick_count::now() - mainStartTime).seconds()); - - return 0; - } catch(std::exception& e) { - std::cerr<<"error occurred. error text is :\"" < - - -

    Overview

    -This directory has examples of how to use the raw task scheduler. - -

    Directories

    -
    -
    tree_sum -
    Sum values in a tree. -
    - -
    -Up to parent directory -

    -Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

    -Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

    -* Other names and brands may be claimed as the property of others. - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/Makefile b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/Makefile deleted file mode 100644 index e56654774..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/Makefile +++ /dev/null @@ -1,60 +0,0 @@ -# Copyright 2005-2014 Intel Corporation. All Rights Reserved. -# -# This file is part of Threading Building Blocks. -# -# Threading Building Blocks is free software; you can redistribute it -# and/or modify it under the terms of the GNU General Public License -# version 2 as published by the Free Software Foundation. -# -# Threading Building Blocks is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied warranty -# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Threading Building Blocks; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# -# As a special exception, you may use this file as part of a free software -# library without restriction. Specifically, if other files instantiate -# templates or use macros or inline functions from this file, or you compile -# this file and link it with other files to produce an executable, this -# file does not by itself cause the resulting executable to be covered by -# the GNU General Public License. This exception does not however -# invalidate any other reasons why the executable file might be covered by -# the GNU General Public License. - -# Common Makefile that builds and runs example. - -# Just specify your program basename -PROG=Tree_sum -ARGS= -PERF_RUN_ARGS=auto 100000000 silent - -# Trying to find if icl.exe is set -CXX1 = $(TBB_CXX)- -CXX2 = $(CXX1:icl.exe-=icl.exe) -CXX = $(CXX2:-=cl.exe) - -# The C++ compiler options -MYCXXFLAGS = /TP /EHsc /W3 /nologo /D _CONSOLE /D _MBCS /D WIN32 $(CXXFLAGS) -MYLDFLAGS =/INCREMENTAL:NO /NOLOGO /DEBUG /FIXED:NO $(LDFLAGS) - -all: release test -release: compiler_check - $(CXX) *.cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbbmalloc.lib tbb.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe -debug: compiler_check - $(CXX) *.cpp /MDd /Od /Zi /D TBB_USE_DEBUG /D _DEBUG $(MYCXXFLAGS) /link tbbmalloc_debug.lib tbb_debug.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe -clean: - @cmd.exe /C del $(PROG).exe *.obj *.?db *.manifest -test: - $(PROG) $(ARGS) - $(PROG) stdmalloc $(ARGS) -perf_build: release - -perf_run: - $(PROG) $(PERF_RUN_ARGS) - -compiler_check: - @echo compiler_test>compiler_test && @$(CXX) /E compiler_test >nul 2>&1 || echo "$(CXX) command not found. Check if CXX=$(CXX) is set properly" - @cmd.exe /C del compiler_test diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/OptimizedParallelSumTree.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/OptimizedParallelSumTree.cpp deleted file mode 100644 index 8388642ce..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/OptimizedParallelSumTree.cpp +++ /dev/null @@ -1,77 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#include "common.h" -#include "tbb/task.h" - -class OptimizedSumTask: public tbb::task { - Value* const sum; - TreeNode* root; - bool is_continuation; - Value x, y; -public: - OptimizedSumTask( TreeNode* root_, Value* sum_ ) : root(root_), sum(sum_), is_continuation(false) { - } - tbb::task* execute() { - tbb::task* next = NULL; - if( !is_continuation ) { - if( root->node_count<1000 ) { - *sum = SerialSumTree(root); - } else { - // Create tasks before spawning any of them. - tbb::task* a = NULL; - tbb::task* b = NULL; - if( root->left ) - a = new( allocate_child() ) OptimizedSumTask(root->left,&x); - if( root->right ) - b = new( allocate_child() ) OptimizedSumTask(root->right,&y); - recycle_as_continuation(); - is_continuation = true; - set_ref_count( (a!=NULL)+(b!=NULL) ); - if( a ) { - if( b ) spawn(*b); - } else - a = b; - next = a; - } - } else { - *sum = root->value; - if( root->left ) *sum += x; - if( root->right ) *sum += y; - } - return next; - } -}; - -Value OptimizedParallelSumTree( TreeNode* root ) { - Value sum; - OptimizedSumTask& a = *new(tbb::task::allocate_root()) OptimizedSumTask(root,&sum); - tbb::task::spawn_root_and_wait(a); - return sum; -} - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/SerialSumTree.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/SerialSumTree.cpp deleted file mode 100644 index 83ef7865e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/SerialSumTree.cpp +++ /dev/null @@ -1,38 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#include "common.h" - -Value SerialSumTree( TreeNode* root ) { - Value result = root->value; - if( root->left ) - result += SerialSumTree(root->left); - if( root->right ) - result += SerialSumTree(root->right); - return result; -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/SimpleParallelSumTree.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/SimpleParallelSumTree.cpp deleted file mode 100644 index da6644a89..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/SimpleParallelSumTree.cpp +++ /dev/null @@ -1,70 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#include "common.h" -#include "tbb/task.h" - -class SimpleSumTask: public tbb::task { - Value* const sum; - TreeNode* root; -public: - SimpleSumTask( TreeNode* root_, Value* sum_ ) : root(root_), sum(sum_) {} - task* execute() { - if( root->node_count<1000 ) { - *sum = SerialSumTree(root); - } else { - Value x, y; - int count = 1; - tbb::task_list list; - if( root->left ) { - ++count; - list.push_back( *new( allocate_child() ) SimpleSumTask(root->left,&x) ); - } - if( root->right ) { - ++count; - list.push_back( *new( allocate_child() ) SimpleSumTask(root->right,&y) ); - } - // Argument to set_ref_count is one more than size of the list, - // because spawn_and_wait_for_all expects an augmented ref_count. - set_ref_count(count); - spawn_and_wait_for_all(list); - *sum = root->value; - if( root->left ) *sum += x; - if( root->right ) *sum += y; - } - return NULL; - } -}; - -Value SimpleParallelSumTree( TreeNode* root ) { - Value sum; - SimpleSumTask& a = *new(tbb::task::allocate_root()) SimpleSumTask(root,&sum); - tbb::task::spawn_root_and_wait(a); - return sum; -} - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/TreeMaker.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/TreeMaker.h deleted file mode 100644 index ba56aeec8..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/TreeMaker.h +++ /dev/null @@ -1,124 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef TREE_MAKER_H_ -#define TREE_MAKER_H_ - -#include "tbb/tick_count.h" -#include "tbb/task.h" - -static double Pi = 3.14159265358979; - -const bool tbbmalloc = true; -const bool stdmalloc = false; - -template -class TreeMaker { - - class SubTreeCreationTask: public tbb::task { - TreeNode*& my_root; - bool is_continuation; - typedef TreeMaker MyTreeMaker; - - public: - SubTreeCreationTask( TreeNode*& root, long number_of_nodes ) : my_root(root), is_continuation(false) { - my_root = MyTreeMaker::allocate_node(); - my_root->node_count = number_of_nodes; - my_root->value = Value(Pi*number_of_nodes); - } - - tbb::task* execute() { - tbb::task* next = NULL; - if( !is_continuation ) { - long subtree_size = my_root->node_count - 1; - if( subtree_size<1000 ) { /* grainsize */ - my_root->left = MyTreeMaker::do_in_one_thread(subtree_size/2); - my_root->right = MyTreeMaker::do_in_one_thread(subtree_size - subtree_size/2); - } else { - // Create tasks before spawning any of them. - tbb::task* a = new( allocate_child() ) SubTreeCreationTask(my_root->left,subtree_size/2); - tbb::task* b = new( allocate_child() ) SubTreeCreationTask(my_root->right,subtree_size - subtree_size/2); - recycle_as_continuation(); - is_continuation = true; - set_ref_count(2); - spawn(*b); - next = a; - } - } - return next; - } - }; - -public: - static TreeNode* allocate_node() { - return use_tbbmalloc? tbb::scalable_allocator().allocate(1) : new TreeNode; - } - - static TreeNode* do_in_one_thread( long number_of_nodes ) { - if( number_of_nodes==0 ) { - return NULL; - } else { - TreeNode* n = allocate_node(); - n->node_count = number_of_nodes; - n->value = Value(Pi*number_of_nodes); - --number_of_nodes; - n->left = do_in_one_thread( number_of_nodes/2 ); - n->right = do_in_one_thread( number_of_nodes - number_of_nodes/2 ); - return n; - } - } - - static TreeNode* do_in_parallel( long number_of_nodes ) { - TreeNode* root_node; - SubTreeCreationTask& a = *new(tbb::task::allocate_root()) SubTreeCreationTask(root_node, number_of_nodes); - tbb::task::spawn_root_and_wait(a); - return root_node; - } - - static TreeNode* create_and_time( long number_of_nodes, bool silent=false ) { - tbb::tick_count t0, t1; - TreeNode* root = allocate_node(); - root->node_count = number_of_nodes; - root->value = Value(Pi*number_of_nodes); - --number_of_nodes; - - t0 = tbb::tick_count::now(); - root->left = do_in_one_thread( number_of_nodes/2 ); - t1 = tbb::tick_count::now(); - if ( !silent ) printf ("%24s: time = %.1f msec\n", "half created serially", (t1-t0).seconds()*1000); - - t0 = tbb::tick_count::now(); - root->right = do_in_parallel( number_of_nodes - number_of_nodes/2 ); - t1 = tbb::tick_count::now(); - if ( !silent ) printf ("%24s: time = %.1f msec\n", "half done in parallel", (t1-t0).seconds()*1000); - - return root; - } -}; - -#endif // TREE_MAKER_H_ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/common.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/common.h deleted file mode 100644 index 6447db132..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/common.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -typedef float Value; - -struct TreeNode { - //! Pointer to left subtree - TreeNode* left; - //! Pointer to right subtree - TreeNode* right; - //! Number of nodes in this subtree, including this node. - long node_count; - //! Value associated with the node. - Value value; -}; - -Value SerialSumTree( TreeNode* root ); -Value SimpleParallelSumTree( TreeNode* root ); -Value OptimizedParallelSumTree( TreeNode* root ); diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/index.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/index.html deleted file mode 100644 index b692e1a4d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/index.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -

    Overview

    -This directory contains a simple example that sums values in a tree. -The example exhibits some speedup, but not a lot, because it quickly saturates -the system bus on a multiprocessor. For good speedup, there needs to be -more computation cycles per memory reference. The point of the example -is to teach how to use the raw task interface, so the computation is -deliberately trivial. -

    -The performance of this example is better when objects are allocated -by the scalable_allocator instead of -the default "operator new". The reason is that the scalable_allocator typically -packs small objects more tightly than the default "operator new", resulting in -a smaller memory footprint, and thus more efficient use of cache and virtual memory. -In addition, the scalable_allocator performs better for multi-threaded allocations. -

    -

    Files

    -
    -
    SerialSumTree.cpp -
    Sums sequentially. -
    SimpleParallelSumTree.cpp
    -
    Sums in parallel without any fancy tricks. -
    OptimizedParallelSumTree.cpp
    -
    Sums in parallel, using "recycling" and "continuation-passing" tricks. - In this case, it is only slightly faster than the simple version. -
    common.h -
    Shared declarations. -
    main.cpp -
    Main program which parses command line options and runs the algorithm. -
    Makefile -
    Makefile for building example. -
    - -

    Directories

    -
    -
    msvs -
    Contains Microsoft* Visual Studio* 2005 workspace for building and running the - example (Windows* systems only).
    xcode -
    Contains Xcode* IDE workspace for building and running the example (OS X* - systems only).
    - -

    To Build

    -General build directions can be found here. -

    - -

    Usage

    -
    -
    tree_sum -h -
    Prints the help for command line options -
    tree_sum [n-of-threads=value] [number-of-nodes=value] [silent] [stdmalloc] -
    tree_sum [n-of-threads [number-of-nodes]] [silent] [stdmalloc] -
    n-of-threads is the number of threads to use; a range of the form low[:high], where low and optional high are non-negative integers or 'auto' for the default.
    - number-of-nodes is the number of nodes in the tree.
    - silent - no output except elapsed time.
    - stdmalloc - causes the default "operator new" to be used for memory allocations instead of the scalable_allocator.
    - -
    To run a short version of this example, e.g., for use with Intel® Parallel Inspector: -
    Build a debug version of the example - (see the build directions). -
    Run it with a small problem size and the desired number of threads, e.g., tree_sum 4 100000. -
    - -
    -Up to parent directory -

    -Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

    -Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

    -* Other names and brands may be claimed as the property of others. - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/main.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/main.cpp deleted file mode 100644 index 34aa9abbf..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/main.cpp +++ /dev/null @@ -1,116 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#include "common.h" - -#include -#include -#include - -// The performance of this example can be significantly better when -// the objects are allocated by the scalable_allocator instead of the -// default "operator new". The reason is that the scalable_allocator -// typically packs small objects more tightly than the default "operator new", -// resulting in a smaller memory footprint, and thus more efficient use of -// cache and virtual memory. Also the scalable_allocator works faster for -// multi-threaded allocations. -// -// Pass stdmalloc as the 1st command line parameter to use the default "operator new" -// and see the performance difference. -#include "tbb/scalable_allocator.h" -#include "TreeMaker.h" -#include "tbb/tick_count.h" -#include "tbb/task_scheduler_init.h" - -#include "../../common/utility/utility.h" - -using namespace std; - -void Run( const char* which, Value(*SumTree)(TreeNode*), TreeNode* root, bool silent) { - tbb::tick_count t0; - if ( !silent ) t0 = tbb::tick_count::now(); - Value result = SumTree(root); - if ( !silent ) printf ("%24s: time = %.1f msec, sum=%g\n", which, (tbb::tick_count::now()-t0).seconds()*1000, result); -} - -int main( int argc, const char *argv[] ) { - try{ - tbb::tick_count mainStartTime = tbb::tick_count::now(); - - // The 1st argument is the function to obtain 'auto' value; the 2nd is the default value - // The example interprets 0 threads as "run serially, then fully subscribed" - utility::thread_number_range threads( tbb::task_scheduler_init::default_num_threads, 0 ); - long number_of_nodes = 10000000; - bool silent = false; - bool use_stdmalloc = false; - - utility::parse_cli_arguments(argc,argv, - utility::cli_argument_pack() - //"-h" option for displaying help is present implicitly - .positional_arg(threads,"n-of-threads",utility::thread_number_range_desc) - .positional_arg(number_of_nodes,"number-of-nodes","the number of nodes") - .arg(silent,"silent","no output except elapsed time") - .arg(use_stdmalloc,"stdmalloc","use standard allocator") - ); - - TreeNode* root; - { // In this scope, TBB will use default number of threads for tree creation - tbb::task_scheduler_init init; - - if( use_stdmalloc ) { - if ( !silent ) printf("Tree creation using standard operator new\n"); - root = TreeMaker::create_and_time( number_of_nodes, silent ); - } else { - if ( !silent ) printf("Tree creation using TBB scalable allocator\n"); - root = TreeMaker::create_and_time( number_of_nodes, silent ); - } - } - - // Warm up caches - SerialSumTree(root); - if ( !silent ) printf("Calculations:\n"); - if ( threads.first ) { - for(int p = threads.first; p <= threads.last; p = threads.step(p) ) { - if ( !silent ) printf("threads = %d\n", p ); - tbb::task_scheduler_init init( p ); - Run ( "SimpleParallelSumTree", SimpleParallelSumTree, root, silent ); - Run ( "OptimizedParallelSumTree", OptimizedParallelSumTree, root, silent ); - } - } else { // Number of threads wasn't set explicitly. Run serial and two parallel versions - Run ( "SerialSumTree", SerialSumTree, root, silent ); - tbb::task_scheduler_init init; - Run ( "SimpleParallelSumTree", SimpleParallelSumTree, root, silent ); - Run ( "OptimizedParallelSumTree", OptimizedParallelSumTree, root, silent ); - } - utility::report_elapsed_time((tbb::tick_count::now() - mainStartTime).seconds()); - return 0; - }catch(std::exception& e){ - std::cerr<<"error occurred. error text is :\"" < - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/msvs/tree_sum.vcproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/msvs/tree_sum.vcproj deleted file mode 100644 index baf16ab5b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/msvs/tree_sum.vcproj +++ /dev/null @@ -1,376 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/msvs/tree_sum_cl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/msvs/tree_sum_cl.sln deleted file mode 100644 index d417699e5..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/msvs/tree_sum_cl.sln +++ /dev/null @@ -1,25 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tree_sum", "tree_sum.vcproj", "{C931C7A2-074E-4150-9E7A-39A03250411E}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|Win32.ActiveCfg = Debug|Win32 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|Win32.Build.0 = Debug|Win32 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|x64.ActiveCfg = Debug|x64 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|x64.Build.0 = Debug|x64 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|Win32.ActiveCfg = Release|Win32 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|Win32.Build.0 = Release|Win32 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|x64.ActiveCfg = Release|x64 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/msvs/tree_sum_icl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/msvs/tree_sum_icl.sln deleted file mode 100644 index e146b8df7..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/msvs/tree_sum_icl.sln +++ /dev/null @@ -1,33 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{EAF909A5-FA59-4C3D-9431-0FCC20D5BCF9}") = "tree_sum", "tree_sum.icproj", "{CB292CD9-903E-464C-AAFE-E7A49003565C}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {CB292CD9-903E-464C-AAFE-E7A49003565C}.Debug|Win32.ActiveCfg = Debug|Win32 - {CB292CD9-903E-464C-AAFE-E7A49003565C}.Debug|Win32.Build.0 = Debug|Win32 - {CB292CD9-903E-464C-AAFE-E7A49003565C}.Debug|x64.ActiveCfg = Debug|x64 - {CB292CD9-903E-464C-AAFE-E7A49003565C}.Debug|x64.Build.0 = Debug|x64 - {CB292CD9-903E-464C-AAFE-E7A49003565C}.Release|Win32.ActiveCfg = Release|Win32 - {CB292CD9-903E-464C-AAFE-E7A49003565C}.Release|Win32.Build.0 = Release|Win32 - {CB292CD9-903E-464C-AAFE-E7A49003565C}.Release|x64.ActiveCfg = Release|x64 - {CB292CD9-903E-464C-AAFE-E7A49003565C}.Release|x64.Build.0 = Release|x64 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|x64.Build.0 = Release|x64 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|x64.ActiveCfg = Release|x64 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|Win32.Build.0 = Release|Win32 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|Win32.ActiveCfg = Release|Win32 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|x64.Build.0 = Debug|x64 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|x64.ActiveCfg = Debug|x64 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|Win32.Build.0 = Debug|Win32 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|Win32.ActiveCfg = Debug|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/xcode/tree_sum.xcodeproj/project.pbxproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/xcode/tree_sum.xcodeproj/project.pbxproj deleted file mode 100644 index 02843a4c0..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task/tree_sum/xcode/tree_sum.xcodeproj/project.pbxproj +++ /dev/null @@ -1,325 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 05593A110B8F4F4500DE73AB /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 05593A0C0B8F4F4500DE73AB /* main.cpp */; }; - 05593A120B8F4F4500DE73AB /* OptimizedParallelSumTree.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 05593A0D0B8F4F4500DE73AB /* OptimizedParallelSumTree.cpp */; }; - 05593A130B8F4F4500DE73AB /* SerialSumTree.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 05593A0E0B8F4F4500DE73AB /* SerialSumTree.cpp */; }; - 05593A140B8F4F4500DE73AB /* SimpleParallelSumTree.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 05593A0F0B8F4F4500DE73AB /* SimpleParallelSumTree.cpp */; }; - 05593A160B8F4F5D00DE73AB /* libtbbmalloc.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 05593A150B8F4F5D00DE73AB /* libtbbmalloc.dylib */; }; - 05593A170B8F4F6E00DE73AB /* libtbbmalloc.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 05593A150B8F4F5D00DE73AB /* libtbbmalloc.dylib */; }; - A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; }; - A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 8DD76F690486A84900D96B5E /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 12; - dstPath = ""; - dstSubfolderSpec = 16; - files = ( - A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */, - 05593A170B8F4F6E00DE73AB /* libtbbmalloc.dylib in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 05593A0B0B8F4F4500DE73AB /* common.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = common.h; path = ../common.h; sourceTree = SOURCE_ROOT; }; - 05593A0C0B8F4F4500DE73AB /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = ../main.cpp; sourceTree = SOURCE_ROOT; }; - 05593A0D0B8F4F4500DE73AB /* OptimizedParallelSumTree.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = OptimizedParallelSumTree.cpp; path = ../OptimizedParallelSumTree.cpp; sourceTree = SOURCE_ROOT; }; - 05593A0E0B8F4F4500DE73AB /* SerialSumTree.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SerialSumTree.cpp; path = ../SerialSumTree.cpp; sourceTree = SOURCE_ROOT; }; - 05593A0F0B8F4F4500DE73AB /* SimpleParallelSumTree.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SimpleParallelSumTree.cpp; path = ../SimpleParallelSumTree.cpp; sourceTree = SOURCE_ROOT; }; - 05593A150B8F4F5D00DE73AB /* libtbbmalloc.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbbmalloc.dylib; path = ../../../../lib/libtbbmalloc.dylib; sourceTree = SOURCE_ROOT; }; - 05593A4A0B8F51E000DE73AB /* tree_sum */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = tree_sum; sourceTree = BUILT_PRODUCTS_DIR; }; - A1F593B30B8F06F900073279 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = ../../../../lib/libtbb.dylib; sourceTree = SOURCE_ROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8DD76F660486A84900D96B5E /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */, - 05593A160B8F4F5D00DE73AB /* libtbbmalloc.dylib in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 08FB7794FE84155DC02AAC07 /* tree_sum */ = { - isa = PBXGroup; - children = ( - 08FB7795FE84155DC02AAC07 /* Source */, - A1F593B20B8F06F900073279 /* External Frameworks and Libraries */, - 1AB674ADFE9D54B511CA2CBB /* Products */, - ); - name = tree_sum; - sourceTree = ""; - }; - 08FB7795FE84155DC02AAC07 /* Source */ = { - isa = PBXGroup; - children = ( - 05593A0B0B8F4F4500DE73AB /* common.h */, - 05593A0C0B8F4F4500DE73AB /* main.cpp */, - 05593A0D0B8F4F4500DE73AB /* OptimizedParallelSumTree.cpp */, - 05593A0E0B8F4F4500DE73AB /* SerialSumTree.cpp */, - 05593A0F0B8F4F4500DE73AB /* SimpleParallelSumTree.cpp */, - ); - name = Source; - sourceTree = ""; - }; - 1AB674ADFE9D54B511CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 05593A4A0B8F51E000DE73AB /* tree_sum */, - ); - name = Products; - sourceTree = ""; - }; - A1F593B20B8F06F900073279 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - 05593A150B8F4F5D00DE73AB /* libtbbmalloc.dylib */, - A1F593B30B8F06F900073279 /* libtbb.dylib */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8DD76F620486A84900D96B5E /* tree_sum */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "tree_sum" */; - buildPhases = ( - 8DD76F640486A84900D96B5E /* Sources */, - 8DD76F660486A84900D96B5E /* Frameworks */, - 8DD76F690486A84900D96B5E /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = tree_sum; - productInstallPath = "$(HOME)/bin"; - productName = tree_sum; - productReference = 05593A4A0B8F51E000DE73AB /* tree_sum */; - productType = "com.apple.product-type.tool"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 08FB7793FE84155DC02AAC07 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0410; - }; - buildConfigurationList = 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "tree_sum" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - en, - ); - mainGroup = 08FB7794FE84155DC02AAC07 /* tree_sum */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8DD76F620486A84900D96B5E /* tree_sum */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXSourcesBuildPhase section */ - 8DD76F640486A84900D96B5E /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 05593A110B8F4F4500DE73AB /* main.cpp in Sources */, - 05593A120B8F4F4500DE73AB /* OptimizedParallelSumTree.cpp in Sources */, - 05593A130B8F4F4500DE73AB /* SerialSumTree.cpp in Sources */, - 05593A140B8F4F4500DE73AB /* SimpleParallelSumTree.cpp in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 1DEB923208733DC60010E9CD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = tree_sum; - ZERO_LINK = NO; - }; - name = Debug; - }; - 1DEB923308733DC60010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = tree_sum; - ZERO_LINK = NO; - }; - name = Release; - }; - 1DEB923608733DC60010E9CD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Debug; - }; - 1DEB923708733DC60010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Release; - }; - A1F593C60B8F0E6E00073279 /* Debug64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = tree_sum; - ZERO_LINK = NO; - }; - name = Debug64; - }; - A1F593C70B8F0E6E00073279 /* Release64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = tree_sum; - ZERO_LINK = NO; - }; - name = Release64; - }; - A1F593C80B8F0E6E00073279 /* Debug64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "-m64", - ); - OTHER_LDFLAGS = "-m64"; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Debug64; - }; - A1F593C90B8F0E6E00073279 /* Release64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "-m64", - ); - OTHER_LDFLAGS = "-m64"; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Release64; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "tree_sum" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB923208733DC60010E9CD /* Debug */, - A1F593C60B8F0E6E00073279 /* Debug64 */, - 1DEB923308733DC60010E9CD /* Release */, - A1F593C70B8F0E6E00073279 /* Release64 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "tree_sum" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB923608733DC60010E9CD /* Debug */, - A1F593C80B8F0E6E00073279 /* Debug64 */, - 1DEB923708733DC60010E9CD /* Release */, - A1F593C90B8F0E6E00073279 /* Release64 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/index.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/index.html deleted file mode 100644 index 711a0e610..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/index.html +++ /dev/null @@ -1,23 +0,0 @@ - - - -

    Overview

    -This directory has examples of how to use task_groups. - -

    Directories

    -
    -
    Sudoku -
    Compute all solutions for a Sudoku board. -
    - -
    -Up to parent directory -

    -Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

    -Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

    -* Other names and brands may be claimed as the property of others. - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/sudoku/Makefile b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/sudoku/Makefile deleted file mode 100644 index b60f1af84..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/sudoku/Makefile +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright 2005-2014 Intel Corporation. All Rights Reserved. -# -# This file is part of Threading Building Blocks. -# -# Threading Building Blocks is free software; you can redistribute it -# and/or modify it under the terms of the GNU General Public License -# version 2 as published by the Free Software Foundation. -# -# Threading Building Blocks is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied warranty -# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Threading Building Blocks; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# -# As a special exception, you may use this file as part of a free software -# library without restriction. Specifically, if other files instantiate -# templates or use macros or inline functions from this file, or you compile -# this file and link it with other files to produce an executable, this -# file does not by itself cause the resulting executable to be covered by -# the GNU General Public License. This exception does not however -# invalidate any other reasons why the executable file might be covered by -# the GNU General Public License. - -# Common Makefile that builds and runs example. - -# Just specify your program basename -PROG=sudoku -ARGS= 4 input1 verbose -PERF_RUN_ARGS=auto input1 silent - -# Trying to find if icl.exe is set -CXX1 = $(TBB_CXX)- -CXX2 = $(CXX1:icl.exe-=icl.exe) -CXX = $(CXX2:-=cl.exe) - -# The C++ compiler options -MYCXXFLAGS = /TP /EHsc /W3 /nologo /D _CONSOLE /D _MBCS /D WIN32 /D _CRT_SECURE_NO_DEPRECATE $(CXXFLAGS) -MYLDFLAGS =/INCREMENTAL:NO /NOLOGO /DEBUG /FIXED:NO $(LDFLAGS) - -all: release test -release: - $(CXX) *.cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe -debug: - $(CXX) *.cpp /MDd /Od /Zi /D TBB_USE_DEBUG /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe -clean: - @cmd.exe /C del $(PROG).exe *.obj *.?db *.manifest -test: - $(PROG) $(ARGS) -compiler_check: - @$(CXX) >nul 2>&1 || echo "$(CXX) command not found. Check if CXX=$(CXX) is set properly" - -perf_build: release - -perf_run: - $(PROG) $(PERF_RUN_ARGS) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/sudoku/index.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/sudoku/index.html deleted file mode 100644 index 539ecae29..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/sudoku/index.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -

    Overview

    -
    -
    This directory contains a simple example that finds all solutions to a -Sudoku board. It uses a straightforward state-space search algorithm -that exhibits OR-parallelism. It can be optionally run until it -obtains just the first solution. The point of the example is to teach -how to use the task_group interface. -
    The example can be built in the offload version to run on Intel® Many Integrated Core (Intel® MIC) Architecture based coprocessor (see build instructions). -
    - -

    Files

    -
    -
    sudoku.cpp -
    Driver. -
    input1 -
    Sample input file with modest number of solutions. - -
    input2 -
    Sample input file with small number of solutions. - -
    input3 -
    Sample input file with larger number of solutions. - -
    input4 -
    Sample input file with very large number of solutions. - -
    Makefile -
    Makefile for building example. - -
    - -

    Directories

    -
    -
    msvs -
    Contains Microsoft* Visual Studio* 2008 workspace for building and running the example with the Intel® C++ compiler (Windows* systems only). -
    xcode -
    Contains Xcode* IDE workspace for building and running the example (OS X* systems only). -
    - -

    To Build

    -General build directions can be found here. -

    - -

    Usage

    -
    - -
    sudoku -h -
    Prints the help for command line options -
    sudoku [n-of-threads=value] [filename=value] [verbose] [silent] [find-one] -
    sudoku [n-of-threads [filename]] [verbose] [silent] [find-one] -
    n-of-threads is the number of threads to use; a range of the form low[:high], where low and optional high are non-negative integers or 'auto' for the TBB default.
    - filename is an input filename.
    - verbose - prints the first solution.
    - silent - no output except elapsed time.
    - find-one - stops after finding first solution.
    - -
    To run a short version of this example, e.g., for use with Intel® Parallel Inspector: -
    Build a debug version of the example - (see the build directions). -
    Run it with a small problem size and the desired number of threads, e.g., sudoku 4 input2. -
    - -
    -Up to parent directory -

    -Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

    -Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

    -* Other names and brands may be claimed as the property of others. - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/sudoku/input1 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/sudoku/input1 deleted file mode 100644 index 659175205..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/sudoku/input1 +++ /dev/null @@ -1,19 +0,0 @@ -1 0 0 9 0 0 0 8 0 0 8 0 2 0 0 0 0 0 0 0 5 0 0 0 7 0 0 0 5 2 1 0 0 4 0 0 0 0 0 0 0 5 0 0 7 4 0 0 7 0 0 0 3 0 0 3 0 0 0 2 0 0 5 0 0 0 0 0 0 1 0 0 5 0 0 0 1 0 0 0 0 - - - - - - - -1 0 0 9 0 0 0 8 0 -0 8 0 2 0 0 0 0 0 -0 0 5 0 0 0 7 0 0 - -0 5 2 1 0 0 4 0 0 -0 0 0 0 0 5 0 0 7 -4 0 0 7 0 0 0 3 0 - -0 3 0 0 0 2 0 0 5 -0 0 0 0 0 0 1 0 0 -5 0 0 0 1 0 0 0 0 diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/sudoku/input2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/sudoku/input2 deleted file mode 100644 index 49514254e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/sudoku/input2 +++ /dev/null @@ -1,18 +0,0 @@ -2 0 1 0 0 0 0 8 0 0 8 0 2 1 9 6 0 0 0 0 5 0 0 0 7 0 0 0 5 2 1 0 0 4 0 0 0 0 0 0 0 5 0 0 7 4 0 0 7 0 0 0 3 0 0 3 0 0 0 2 0 0 5 0 0 0 0 3 0 1 0 0 5 0 0 0 8 0 0 0 6 - - - - - - -2 0 1 0 0 0 0 8 0 -0 8 0 2 1 9 6 0 0 -0 0 5 0 0 0 7 0 0 - -0 5 2 1 0 0 4 0 0 -0 0 0 0 0 5 0 0 7 -4 0 0 7 0 0 0 3 0 - -0 3 0 0 0 2 0 0 5 -0 0 0 0 3 0 1 0 0 -5 0 0 0 8 0 0 0 6 diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/sudoku/input3 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/sudoku/input3 deleted file mode 100644 index e6cbb094a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/sudoku/input3 +++ /dev/null @@ -1,19 +0,0 @@ -1 0 0 9 0 0 0 8 0 0 0 0 2 0 0 0 0 0 0 0 5 0 0 0 7 0 0 0 5 2 6 0 0 4 0 0 0 0 0 0 0 5 0 0 7 4 0 0 7 0 0 0 3 0 0 3 0 0 0 2 0 0 5 0 0 0 0 0 0 1 0 0 5 0 0 0 1 0 0 0 0 - - - - - - - -1 0 0 9 0 0 0 8 0 -0 0 0 2 0 0 0 0 0 -0 0 5 0 0 0 7 0 0 - -0 5 2 6 0 0 4 0 0 -0 0 0 0 0 5 0 0 7 -4 0 0 7 0 0 0 3 0 - -0 3 0 0 0 2 0 0 5 -0 0 0 0 0 0 1 0 0 -5 0 0 0 1 0 0 0 0 diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/sudoku/input4 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/sudoku/input4 deleted file mode 100644 index 9436cd77a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/sudoku/input4 +++ /dev/null @@ -1,19 +0,0 @@ -1 0 0 9 0 0 0 8 0 0 0 0 2 0 0 0 0 0 0 0 5 0 0 0 7 0 0 0 0 2 6 0 0 0 0 0 0 0 0 0 0 5 0 0 7 4 0 0 0 0 0 0 3 0 0 3 0 0 0 2 0 0 5 0 0 0 0 0 0 1 0 0 5 0 0 0 1 0 0 0 0 - - - - - - - -1 0 0 9 0 0 0 8 0 -0 0 0 2 0 0 0 0 0 -0 0 5 0 0 0 7 0 0 - -0 0 2 6 0 0 0 0 0 -0 0 0 0 0 5 0 0 7 -4 0 0 0 0 0 0 3 0 - -0 3 0 0 0 2 0 0 5 -0 0 0 0 0 0 1 0 0 -5 0 0 0 1 0 0 0 0 diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/sudoku/msvs/sudoku.icproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/sudoku/msvs/sudoku.icproj deleted file mode 100644 index 3f47128c5..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/sudoku/msvs/sudoku.icproj +++ /dev/null @@ -1,11 +0,0 @@ - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/sudoku/msvs/sudoku.vcproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/sudoku/msvs/sudoku.vcproj deleted file mode 100644 index 6e551dfd7..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/sudoku/msvs/sudoku.vcproj +++ /dev/null @@ -1,356 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/sudoku/msvs/sudoku_cl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/sudoku/msvs/sudoku_cl.sln deleted file mode 100644 index 8b5504a65..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/sudoku/msvs/sudoku_cl.sln +++ /dev/null @@ -1,25 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sudoku", "sudoku.vcproj", "{C931C7A2-074E-4150-9E7A-39A03250411E}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|Win32.ActiveCfg = Debug|Win32 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|Win32.Build.0 = Debug|Win32 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|x64.ActiveCfg = Debug|x64 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|x64.Build.0 = Debug|x64 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|Win32.ActiveCfg = Release|Win32 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|Win32.Build.0 = Release|Win32 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|x64.ActiveCfg = Release|x64 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/sudoku/msvs/sudoku_icl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/sudoku/msvs/sudoku_icl.sln deleted file mode 100644 index df00c6342..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/sudoku/msvs/sudoku_icl.sln +++ /dev/null @@ -1,33 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{EAF909A5-FA59-4C3D-9431-0FCC20D5BCF9}") = "sudoku", "sudoku.icproj", "{CB292CD9-903E-464C-AAFE-E7A49003565C}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {CB292CD9-903E-464C-AAFE-E7A49003565C}.Debug|Win32.ActiveCfg = Debug|Win32 - {CB292CD9-903E-464C-AAFE-E7A49003565C}.Debug|Win32.Build.0 = Debug|Win32 - {CB292CD9-903E-464C-AAFE-E7A49003565C}.Debug|x64.ActiveCfg = Debug|x64 - {CB292CD9-903E-464C-AAFE-E7A49003565C}.Debug|x64.Build.0 = Debug|x64 - {CB292CD9-903E-464C-AAFE-E7A49003565C}.Release|Win32.ActiveCfg = Release|Win32 - {CB292CD9-903E-464C-AAFE-E7A49003565C}.Release|Win32.Build.0 = Release|Win32 - {CB292CD9-903E-464C-AAFE-E7A49003565C}.Release|x64.ActiveCfg = Release|x64 - {CB292CD9-903E-464C-AAFE-E7A49003565C}.Release|x64.Build.0 = Release|x64 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|x64.Build.0 = Release|x64 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|x64.ActiveCfg = Release|x64 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|Win32.Build.0 = Release|Win32 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|Win32.ActiveCfg = Release|Win32 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|x64.Build.0 = Debug|x64 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|x64.ActiveCfg = Debug|x64 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|Win32.Build.0 = Debug|Win32 - {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|Win32.ActiveCfg = Debug|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/sudoku/sudoku.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/sudoku/sudoku.cpp deleted file mode 100644 index ff9a1a0fa..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_group/sudoku/sudoku.cpp +++ /dev/null @@ -1,353 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#if __TBB_MIC_OFFLOAD -#pragma offload_attribute (push,target(mic)) -#endif // __TBB_MIC_OFFLOAD - -// This header should come before any other one. -// For details, see Known Issues in the Release Notes. -#include "tbb/tbb_stddef.h" - -#include -#include -#include - -#include "tbb/atomic.h" -#include "tbb/tick_count.h" -#include "tbb/task_scheduler_init.h" -#include "tbb/task_group.h" - -#include "../../common/utility/utility.h" - -#pragma warning(disable: 4996) - -#if __INTEL_COMPILER -#define __TBB_LAMBDAS_PRESENT ( _TBB_CPP0X && __INTEL_COMPILER > 1100 ) -#elif __GNUC__ -#define __TBB_LAMBDAS_PRESENT ( _TBB_CPP0X && __TBB_GCC_VERSION >= 40500 ) -#elif _MSC_VER -#define __TBB_LAMBDAS_PRESENT ( _MSC_VER>=1600 ) -#endif - -const unsigned BOARD_SIZE=81; -const unsigned BOARD_DIM=9; - -using namespace tbb; -using namespace std; - -atomic nSols; -bool find_one = false; -bool verbose = false; -unsigned short init_values[BOARD_SIZE] = {1,0,0,9,0,0,0,8,0,0,8,0,2,0,0,0,0,0,0,0,5,0,0,0,7,0,0,0,5,2,1,0,0,4,0,0,0,0,0,0,0,5,0,0,7,4,0,0,7,0,0,0,3,0,0,3,0,0,0,2,0,0,5,0,0,0,0,0,0,1,0,0,5,0,0,0,1,0,0,0,0}; -task_group *g; -double solve_time; - -typedef struct { - unsigned short solved_element; - unsigned potential_set; -} board_element; - -void read_board(const char *filename) { - FILE *fp; - int input; - fp = fopen(filename, "r"); - if (!fp) { - fprintf(stderr, "sudoku: Could not open input file '%s'.\n", filename); - exit(1); - } - for (unsigned i=0; i=0; --i) - if (b[i].solved_element==0) return false; - return true; -} - -bool in_row(board_element *b, unsigned row, unsigned col, unsigned short p) { - for (unsigned c=0; ccancel(); - if (++nSols==1 && verbose) { - print_board(b); - } - free(b); - return; - } - calculate_potentials(b); - bool progress=true; - bool success = examine_potentials(b, &progress); - if (success && progress) { - partial_solve(b, first_potential_set); - } else if (success && !progress) { - board_element *new_board; - while (b[first_potential_set].solved_element!=0) ++first_potential_set; - for (unsigned short potential=1; potential<=BOARD_DIM; ++potential) { - if (1<<(potential-1) & b[first_potential_set].potential_set) { - new_board = (board_element *)malloc(BOARD_SIZE*sizeof(board_element)); - copy_board(b, new_board); - new_board[first_potential_set].solved_element = potential; -#if __TBB_LAMBDAS_PRESENT - g->run( [=]{ partial_solve(new_board, first_potential_set); } ); -#else - g->run(PartialSolveBoard(new_board, first_potential_set)); -#endif - } - } - free(b); - } - else { - free(b); - } -} - -unsigned solve(int p) { - task_scheduler_init init(p); - nSols = 0; - board_element *start_board = (board_element *)malloc(BOARD_SIZE*sizeof(board_element)); - init_board(start_board, init_values); - g = new task_group; - tick_count t0 = tick_count::now(); - partial_solve(start_board, 0); - g->wait(); - solve_time = (tick_count::now() - t0).seconds(); - delete g; - return nSols; -} - -#if __TBB_MIC_OFFLOAD -#pragma offload_attribute (pop) -#endif // __TBB_MIC_OFFLOAD - -int do_get_default_num_threads() { - int threads; - #if __TBB_MIC_OFFLOAD - #pragma offload target(mic) out(threads) - #endif // __TBB_MIC_OFFLOAD - threads = tbb::task_scheduler_init::default_num_threads(); - return threads; -} - -int get_default_num_threads() { - static int threads = do_get_default_num_threads(); - return threads; -} - -int main(int argc, char *argv[]) { - try { - tbb::tick_count mainStartTime = tbb::tick_count::now(); - - utility::thread_number_range threads(get_default_num_threads); - string filename = ""; - bool silent = false; - - utility::parse_cli_arguments(argc,argv, - utility::cli_argument_pack() - //"-h" option for displaying help is present implicitly - .positional_arg(threads,"n-of-threads",utility::thread_number_range_desc) - .positional_arg(filename,"filename","input filename") - - .arg(verbose,"verbose","prints the first solution") - .arg(silent,"silent","no output except elapsed time") - .arg(find_one,"find-one","stops after finding first solution\n") - ); - - if ( silent ) verbose = false; - - if ( !filename.empty() ) - read_board( filename.c_str() ); - // otherwise (if file name not specified), the default statically initialized board will be used. - for(int p = threads.first; p <= threads.last; p = threads.step(p) ) { - unsigned number; - #if __TBB_MIC_OFFLOAD - #pragma offload target(mic) in(init_values, p, verbose, find_one) out(number, solve_time) - { - #endif // __TBB_MIC_OFFLOAD - number = solve(p); - #if __TBB_MIC_OFFLOAD - } - #endif // __TBB_MIC_OFFLOAD - - if ( !silent ) { - if ( find_one ) { - printf("Sudoku: Time to find first solution on %d threads: %6.6f seconds.\n", p, solve_time); - } - else { - printf("Sudoku: Time to find all %u solutions on %d threads: %6.6f seconds.\n", number, p, solve_time); - } - } - } - - utility::report_elapsed_time((tbb::tick_count::now() - mainStartTime).seconds()); - - return 0; - } catch(std::exception& e) { - std::cerr<<"error occurred. error text is :\"" <compiler_test && @$(CXX) /E compiler_test >nul 2>&1 || echo "$(CXX) command not found. Check if CXX=$(CXX) is set properly" - @cmd.exe /C del compiler_test - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/fractal.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/fractal.cpp deleted file mode 100644 index fc881890a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/fractal.cpp +++ /dev/null @@ -1,277 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#include "fractal.h" - -#include "tbb/compat/thread" -#include "tbb/parallel_for.h" -#include "tbb/blocked_range2d.h" -#include "tbb/task_scheduler_init.h" -#include "tbb/tick_count.h" - -#include -#include - -video *v; -extern bool silent; -extern bool schedule_auto; -extern int grain_size; - -color_t fractal::calc_one_pixel(int x0, int y0) { - int iter; - double fx0, fy0, xtemp, x, y, mu; - - color_t color; - - fx0 = (double)x0 - (double) size_x / 2.0; - fy0 = (double)y0 - (double) size_y / 2.0; - fx0 = fx0 / magn + cx; - fy0 = fy0 / magn + cy; - - iter = 0; x = 0; y = 0; - - while (((x*x + y*y) <= 4) && (iter < max_iterations)) { - xtemp = x*x - y*y + fx0; - y = 2*x*y + fy0; - x = xtemp; - iter++; - } - - if (iter == max_iterations) { - // point corresponds to the mandelbrot set - color = v->get_color(255, 255, 255); - return color; - } - - // compute again but with exponent calculation at each iteration - // it's all for coloring point outside the mandelbrot set - iter = 0; x = 0; y = 0; - mu = 0; - while (((x*x + y*y) <= 4) && (iter < max_iterations)) { - xtemp = x*x - y*y + fx0; - y = 2*x*y + fy0; - x = xtemp; - mu += exp(-sqrt(x*x+y*y)); - iter++; - } - - int b = (int)(256*mu); - int g = (b/8); - int r = (g/16); - - b = b>255 ? 255 : b; - g = g>255 ? 255 : g; - r = r>255 ? 255 : r; - - color = v->get_color(r, g, b); - return color; -} - -void fractal::clear() { - drawing_area area( off_x, off_y, size_x, size_y, dm) ; - - // fill the rendering area with black color - for (int y=0; yget_color(0, 0, 0) ); - } - } -} - -void fractal::draw_border( bool is_active ) { - color_t color = is_active ? v->get_color(0, 255, 0) // green color - : v->get_color(96, 128, 96); // green-gray color - - // top border - drawing_area area0( off_x-1, off_y-1, size_x+2, 1, dm ); - for (int i=-1; i &r ) const { - if ( v->next_frame() ) - f.render_rect( r.cols().begin(), r.rows().begin(), r.cols().end(), r.rows().end() ); - } - - fractal_body( fractal &f ) : f(f) { - } -}; - -void fractal::render( tbb::task_group_context &context ) { - // run parallel_for that process the fractal area - if( schedule_auto ) - tbb::parallel_for( tbb::blocked_range2d(0, size_y, grain_size, 0, size_x, grain_size ), - fractal_body(*this), tbb::auto_partitioner(), context); - else - tbb::parallel_for( tbb::blocked_range2d(0, size_y, grain_size, 0, size_x, grain_size ), - fractal_body(*this), tbb::simple_partitioner(), context); -} - -void fractal::run( tbb::task_group_context &context ) { - clear(); - render( context ); -} - -bool fractal::check_point( int x, int y ) { - return x >= off_x && x <= off_x+size_x && - y >= off_y && y <= off_y+size_y; -} - -void fractal_group::calc_fractal( int num ) { - // calculate the fractal - fractal &f = num ? f1 : f0; - - tbb::tick_count t0 = tbb::tick_count::now(); - while ( v->next_frame() && num_frames[num] != 0 ) { - f.run( context[num] ); - if ( num_frames[num]>0 ) num_frames[num] -= 1; - } - tbb::tick_count t1 = tbb::tick_count::now(); - - if ( !silent ) { - printf(" %s fractal finished. Time: %g\n", num ? "Second" : "First", (t1-t0).seconds()); - } -} - -void fg_thread_func(fractal_group *fg) { - // initialize the task scheduler for the second thread - tbb::task_scheduler_init init( fg->get_num_threads() ); - // calculate the second fractal - fg->calc_fractal( 1 ); -} - -void fractal_group::set_priorities() { - // set the high priority for the active area and the normal priority for another area - context[active].set_priority( tbb::priority_high ); - context[active^1].set_priority( tbb::priority_normal ); -} - -void fractal_group::switch_priorities( int new_active ) { - if( new_active!=-1 ) active = new_active; - else active = 1-active; // assumes 'active' is only 0 or 1 - set_priorities(); - draw_borders(); -} - -void fractal_group::set_num_frames_at_least(int n) { - if ( num_frames[0]join(); - delete fg_thread; - } - - delete[] context; -} - -void fractal_group::draw_borders() { - f0.draw_border( active==0 ); - f1.draw_border( active==1 ); -} - -fractal_group::fractal_group( const drawing_memory &_dm, int _num_threads, int _max_iterations, int _num_frames ) : f0(_dm), f1(_dm), num_threads(_num_threads) { - // set rendering areas - f0.size_x = f1.size_x = _dm.sizex/2-4; - f0.size_y = f1.size_y = _dm.sizey-4; - f0.off_x = f0.off_y = f1.off_y = 2; - f1.off_x = f0.size_x+4+2; - - // set fractals parameters - f0.cx = -0.6f; f0.cy = 0.0f; f0.magn = 200.0f; - f1.cx = -0.6f; f1.cy = 0.0f; f1.magn = 200.0f; - f0.max_iterations = f1.max_iterations = _max_iterations; - - // initially the first fractal is active - active = 0; - - num_frames[0] = num_frames[1] = _num_frames; -} - -void fractal_group::mouse_click(int x, int y) { - // assumption that the point is not inside any fractal area - int new_active = -1; - - if ( f0.check_point( x, y ) ) { - // the point is inside the first fractal area - new_active = 0; - } else if ( f1.check_point( x, y ) ) { - // the point is inside the second fractal area - new_active = 1; - } - - if ( new_active != -1 && new_active != active ) { - switch_priorities( new_active ); - } -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/fractal.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/fractal.h deleted file mode 100644 index 0b6f38597..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/fractal.h +++ /dev/null @@ -1,122 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef FRACTAL_H_ -#define FRACTAL_H_ - -#include "../../common/gui/video.h" - -#include "tbb/task.h" -#include "tbb/task_scheduler_init.h" -#include "tbb/atomic.h" - -//! Fractal class -class fractal { - //! Left corner of the fractal area - int off_x, off_y; - //! Size of the fractal area - int size_x, size_y; - - //! Fractal properties - float cx, cy; - float magn; - int max_iterations; - - //! Drawing memory object for rendering - const drawing_memory &dm; - - //! One pixel calculation routine - color_t calc_one_pixel(int x, int y); - //! Clears the fractal area - void clear(); - //! Draws the border around the fractal area - void draw_border( bool is_active ); - //! Renders the fractal - void render( tbb::task_group_context &context ); - //! Check if the point is inside the fractal area - bool check_point( int x, int y); - -public: - //! Constructor - fractal( const drawing_memory &dm ) : dm(dm) { -#if _MSC_VER && _WIN64 && !__INTEL_COMPILER - // Workaround for MSVC x64 compiler issue - volatile int i=0; -#endif - } - //! Runs the fractal calculation - void run( tbb::task_group_context &context ); - //! Renders the fractal rectangular area - void render_rect(int x0, int y0, int x1, int y1); - - friend class fractal_group; -}; - -//! The group of fractals -class fractal_group { - //! Fractals defenition - fractal f0, f1; - //! Number of frames to calculate - tbb::atomic num_frames[2]; - //! Task group contexts to manage prioroties - tbb::task_group_context *context; - - //! Border type enumeration - enum BORDER_TYPE { - BORDER_INACTIVE = 0, - BORDER_ACTIVE - }; - - //! The number of the threads - int num_threads; - //! The active (high priority) fractal number - int active; - - //! Draws the borders around the fractals - void draw_borders(); - //! Sets priorities for fractals calculations - void set_priorities(); - -public: - //! Constructor - fractal_group( const drawing_memory &_dm, int num_threads = tbb::task_scheduler_init::automatic, int max_iterations = 100000, int num_frames = 1); - //! Run calculation - void run( bool create_second_fractal=true ); - //! Mouse event handler - void mouse_click(int x, int y); - //! Fractal calculation routine - void calc_fractal( int num ); - //! Get number of threads - int get_num_threads() const { return num_threads; } - //! Reset the number of frames to be not less than the given value - void set_num_frames_at_least(int n); - //! Switches the priorities of two fractals - void switch_priorities( int new_active=-1 ); -}; - -#endif /* FRACTAL_H_ */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/fractal_video.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/fractal_video.h deleted file mode 100644 index ed88ea48f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/fractal_video.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef FRACTAL_VIDEO_H_ -#define FRACTAL_VIDEO_H_ - -#include "../../common/gui/video.h" -#include "fractal.h" - -extern video *v; -extern bool single; - -class fractal_video : public video -{ - fractal_group *fg; - -private: - void on_mouse( int x, int y, int key ) { - if( key == 1 ) { - if ( fg ) { - fg->set_num_frames_at_least(20); - fg->mouse_click( x, y ); - } - } - } - - void on_key( int key ) { - switch ( key&0xff ) { - case 27: - running = false; break; - case ' ': // space - if( fg ) fg->switch_priorities(); - default: - if( fg ) fg->set_num_frames_at_least(20); - } - } - - void on_process() { - if ( fg ) { - fg->run( !single ); - } - } - -public: - fractal_video() :fg(0) { - title = "Dynamic Priorities in TBB: Fractal Example"; - v = this; - } - - void set_fractal_group( fractal_group &_fg ) { - fg = &_fg; - } -}; - -#endif /* FRACTAL_VIDEO_H_ */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/index.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/index.html deleted file mode 100644 index d87997c0e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/index.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -

    Overview

    -The example calculates two classical Mandelbrot fractals with different priorities. -The application window is divided into two areas where fractals are rendered. With mouse click on an area the user can change the priority of the calculating fractal. In the clicked area the fractal priority is changed to be "high" and the priority of the other fractal is changed to "normal". -The example also has the console mode but in this mode the priorities could not be changed during execution. - - -

    Files

    -
    -
    main.cpp -
    Main program which parses command line options and runs the fractals calculation in GUI or Console mode. -
    fractal.h -
    Interfaces of fractal and fractal_group classes. -
    fractal.cpp -
    Implementations of fractal and fractal_group classes. -
    fractal_video.h -
    GUI mode support interface. -
    Makefile -
    Makefile for building example. -
    - -

    Directories

    -
    -
    msvs -
    Contains Microsoft* Visual Studio* 2005 workspace for building and running the example (Windows* systems only). -
    xcode -
    Contains Xcode* IDE workspace for building and running the example (OS X* systems only). -
    - -

    To Build

    -General build directions can be found here. - -

    Usage

    -
    -
    fractal -h -
    Prints the help for command line options -
    fractal [n-of-threads=value] [n-of-frames=value] [max-of-iterations=value] [grain-size=value] [silent] [single] -
    fractal [n-of-threads [n-of-frames [max-of-iterations [grain-size]]]] [silent] [single] -
    n-of-threads is the number of threads to use; a range of the form low[:high], where low and optional high are non-negative integers or 'auto' for the TBB default.
    - n-of-frames is a number of frames the example processes internally.
    - max-of-iterations is a maximum number of the fractal iterations.
    - grain-size is an optional grain size, must be a positive integer.
    - use-auto-partitioner - use tbb::auto_partitioner.
    - silent - no output except elapsed time.
    - single - process only one fractal.
    - -
    To run a short version of this example, e.g., for use with Intel® Parallel Inspector: -
    Build a debug version of the example - (see the build directions). -
    Run it with a small fractal iterations number and the desired number of threads, e.g., fractal 4 1 10000. -
    - -
    -Up to parent directory -

    -Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

    -Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

    -* Other names and brands may be claimed as the property of others. - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/main.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/main.cpp deleted file mode 100644 index a0f579a6d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/main.cpp +++ /dev/null @@ -1,100 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#define VIDEO_WINMAIN_ARGS - -#include -#include - -#include "fractal.h" -#include "fractal_video.h" - -#include "tbb/tick_count.h" -#include "tbb/task_scheduler_init.h" - -#include "../../common/utility/utility.h" - -bool silent = false; -bool single = false; -bool schedule_auto = false; -int grain_size = 8; - -int main(int argc, char *argv[]) -{ - try{ - tbb::tick_count mainStartTime = tbb::tick_count::now(); - - // It is used for console mode for test with different number of threads and also has - // meaning for GUI: threads.first - use separate event/updating loop thread (>0) or not (0). - // threads.second - initialization value for scheduler - utility::thread_number_range threads( tbb::task_scheduler_init::default_num_threads ); - int num_frames = -1; - int max_iterations = 1000000; - - // command line parsing - utility::parse_cli_arguments(argc,argv, - utility::cli_argument_pack() - //"-h" option for displaying help is present implicitly - .positional_arg(threads,"n-of-threads",utility::thread_number_range_desc) - .positional_arg(num_frames,"n-of-frames","number of frames the example processes internally") - .positional_arg(max_iterations,"max-of-iterations","maximum number of the fractal iterations") - .positional_arg(grain_size,"grain-size","the grain size value") - .arg(schedule_auto, "use-auto-partitioner", "use tbb::auto_partitioner") - .arg(silent, "silent", "no output except elapsed time") - .arg(single, "single", "process only one fractal") - ); - - fractal_video video; - - // video layer init - if ( video.init_window(1024, 512) ) { - video.calc_fps = false; - video.threaded = threads.first > 0; - // initialize fractal group - fractal_group fg( video.get_drawing_memory(), threads.last, max_iterations, num_frames ); - video.set_fractal_group( fg ); - // main loop - video.main_loop(); - } - else if ( video.init_console() ) { - // in console mode we always have limited number of frames - num_frames = num_frames<0 ? 1 : num_frames; - for(int p = threads.first; p <= threads.last; p = threads.step(p) ) { - if ( !silent ) printf("Threads = %d\n", p); - fractal_group fg( video.get_drawing_memory(), p, max_iterations, num_frames ); - fg.run( !single ); - } - } - video.terminate(); - utility::report_elapsed_time((tbb::tick_count::now() - mainStartTime).seconds()); - return 0; - } catch ( std::exception& e ) { - std::cerr<<"error occurred. error text is :\"" < - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/msvs/fractal.vcproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/msvs/fractal.vcproj deleted file mode 100644 index 6de716d69..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/msvs/fractal.vcproj +++ /dev/null @@ -1,853 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/msvs/fractal_cl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/msvs/fractal_cl.sln deleted file mode 100644 index 9d180afd0..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/msvs/fractal_cl.sln +++ /dev/null @@ -1,35 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fractal", "fractal.vcproj", "{3AA40693-F93D-4D4B-B32E-068F511A2527}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - DD Debug|Win32 = DD Debug|Win32 - DD Debug|x64 = DD Debug|x64 - DD Release|Win32 = DD Release|Win32 - DD Release|x64 = DD Release|x64 - GDI Debug|Win32 = GDI Debug|Win32 - GDI Debug|x64 = GDI Debug|x64 - _GDI Release|Win32 = _GDI Release|Win32 - _GDI Release|x64 = _GDI Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Debug|Win32.ActiveCfg = DDDebug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Debug|Win32.Build.0 = DDDebug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Debug|x64.ActiveCfg = DDDebug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Debug|x64.Build.0 = DDDebug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Release|Win32.ActiveCfg = DDRelease|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Release|Win32.Build.0 = DDRelease|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Release|x64.ActiveCfg = DDRelease|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Release|x64.Build.0 = DDRelease|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.GDI Debug|Win32.ActiveCfg = GDIDebug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.GDI Debug|x64.ActiveCfg = GDIRelease|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.GDI Debug|x64.Build.0 = GDIRelease|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}._GDI Release|Win32.ActiveCfg = GDIRelease|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}._GDI Release|x64.ActiveCfg = GDIRelease|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}._GDI Release|x64.Build.0 = GDIRelease|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/msvs/fractal_icl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/msvs/fractal_icl.sln deleted file mode 100644 index f96b42f63..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/msvs/fractal_icl.sln +++ /dev/null @@ -1,49 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{EAF909A5-FA59-4C3D-9431-0FCC20D5BCF9}") = "fractal", "fractal.icproj", "{BF088DF5-BAEA-4EB2-8EA5-1E8DFBC75E5C}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - DD Debug|Win32 = DD Debug|Win32 - DD Debug|x64 = DD Debug|x64 - DD Release|Win32 = DD Release|Win32 - DD Release|x64 = DD Release|x64 - GDI Debug|Win32 = GDI Debug|Win32 - GDI Debug|x64 = GDI Debug|x64 - _GDI Release|Win32 = _GDI Release|Win32 - _GDI Release|x64 = _GDI Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {BF088DF5-BAEA-4EB2-8EA5-1E8DFBC75E5C}.DD Debug|Win32.ActiveCfg = DDDebug|Win32 - {BF088DF5-BAEA-4EB2-8EA5-1E8DFBC75E5C}.DD Debug|Win32.Build.0 = DDDebug|Win32 - {BF088DF5-BAEA-4EB2-8EA5-1E8DFBC75E5C}.DD Debug|x64.ActiveCfg = DDDebug|x64 - {BF088DF5-BAEA-4EB2-8EA5-1E8DFBC75E5C}.DD Debug|x64.Build.0 = DDDebug|x64 - {BF088DF5-BAEA-4EB2-8EA5-1E8DFBC75E5C}.DD Release|Win32.ActiveCfg = DDRelease|Win32 - {BF088DF5-BAEA-4EB2-8EA5-1E8DFBC75E5C}.DD Release|Win32.Build.0 = DDRelease|Win32 - {BF088DF5-BAEA-4EB2-8EA5-1E8DFBC75E5C}.DD Release|x64.ActiveCfg = DDRelease|x64 - {BF088DF5-BAEA-4EB2-8EA5-1E8DFBC75E5C}.DD Release|x64.Build.0 = DDRelease|x64 - {BF088DF5-BAEA-4EB2-8EA5-1E8DFBC75E5C}.GDI Debug|Win32.ActiveCfg = GDIDebug|x64 - {BF088DF5-BAEA-4EB2-8EA5-1E8DFBC75E5C}.GDI Debug|x64.ActiveCfg = GDIRelease|x64 - {BF088DF5-BAEA-4EB2-8EA5-1E8DFBC75E5C}.GDI Debug|x64.Build.0 = GDIRelease|x64 - {BF088DF5-BAEA-4EB2-8EA5-1E8DFBC75E5C}._GDI Release|Win32.ActiveCfg = GDIRelease|x64 - {BF088DF5-BAEA-4EB2-8EA5-1E8DFBC75E5C}._GDI Release|x64.ActiveCfg = GDIRelease|x64 - {BF088DF5-BAEA-4EB2-8EA5-1E8DFBC75E5C}._GDI Release|x64.Build.0 = GDIRelease|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}._GDI Release|x64.Build.0 = GDIRelease|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}._GDI Release|x64.ActiveCfg = GDIRelease|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}._GDI Release|Win32.ActiveCfg = GDIRelease|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.GDI Debug|x64.Build.0 = GDIRelease|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.GDI Debug|x64.ActiveCfg = GDIRelease|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.GDI Debug|Win32.ActiveCfg = GDIDebug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Release|x64.Build.0 = DDRelease|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Release|x64.ActiveCfg = DDRelease|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Release|Win32.Build.0 = DDRelease|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Release|Win32.ActiveCfg = DDRelease|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Debug|x64.Build.0 = DDDebug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Debug|x64.ActiveCfg = DDDebug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Debug|Win32.Build.0 = DDDebug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A2527}.DD Debug|Win32.ActiveCfg = DDDebug|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/msvs/gui.ico b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/msvs/gui.ico deleted file mode 100644 index d551aa3aa..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/msvs/gui.ico and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/msvs/gui.rc b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/msvs/gui.rc deleted file mode 100644 index 5a13d046b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/msvs/gui.rc +++ /dev/null @@ -1,90 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#define APSTUDIO_HIDDEN_SYMBOLS -#include "windows.h" -#undef APSTUDIO_HIDDEN_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDI_GUI ICON "gui.ico" -IDI_SMALL ICON "small.ico" - - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" - "#include ""windows.h""\r\n" - "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n" - "\0" -END - -3 TEXTINCLUDE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE -BEGIN - IDS_APP_TITLE "gui" - IDC_GUI "GUI" -END - -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/msvs/resource.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/msvs/resource.h deleted file mode 100644 index ef7ac1025..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/msvs/resource.h +++ /dev/null @@ -1,8 +0,0 @@ -#define IDC_MYICON 2 -#define IDD_GUI 102 -#define IDS_APP_TITLE 103 -#define IDI_GUI 107 -#define IDI_SMALL 108 -#define IDC_GUI 109 -#define IDR_MAINFRAME 128 -#define IDC_STATIC -1 diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/msvs/small.ico b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/msvs/small.ico deleted file mode 100644 index d551aa3aa..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/msvs/small.ico and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/xcode/fractal.xcodeproj/project.pbxproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/xcode/fractal.xcodeproj/project.pbxproj deleted file mode 100644 index df9408d12..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/xcode/fractal.xcodeproj/project.pbxproj +++ /dev/null @@ -1,349 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 84011722152D687A00B07E4D /* fractal.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84011720152D687A00B07E4D /* fractal.cpp */; }; - 84B8DA19152C9AC600D59B95 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 84B8DA13152C9AC600D59B95 /* libtbb.dylib */; }; - 84B8DA77152CA90100D59B95 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA6F152CA90100D59B95 /* main.m */; }; - 84B8DA78152CA90100D59B95 /* OpenGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA71152CA90100D59B95 /* OpenGLView.m */; }; - 84B8DA79152CA90100D59B95 /* tbbAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA73152CA90100D59B95 /* tbbAppDelegate.m */; }; - 84B8DA7A152CA90100D59B95 /* (null) in Resources */ = {isa = PBXBuildFile; }; - 84B8DA80152CA97B00D59B95 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 84B8DA7C152CA97B00D59B95 /* InfoPlist.strings */; }; - 84B8DA81152CA97B00D59B95 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 84B8DA7E152CA97B00D59B95 /* MainMenu.xib */; }; - 84B8DA87152CA99C00D59B95 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA82152CA99C00D59B95 /* main.cpp */; }; - 84B8DA9A152CADF400D59B95 /* macvideo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA99152CADF400D59B95 /* macvideo.cpp */; }; - 84D017561527431F0008A4E0 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84D017551527431F0008A4E0 /* Cocoa.framework */; }; - 84D01776152744BD0008A4E0 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84D01775152744BD0008A4E0 /* OpenGL.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 8401171F152D687A00B07E4D /* fractal_video.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fractal_video.h; path = ../fractal_video.h; sourceTree = ""; }; - 84011720152D687A00B07E4D /* fractal.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = fractal.cpp; path = ../fractal.cpp; sourceTree = ""; }; - 84011721152D687A00B07E4D /* fractal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fractal.h; path = ../fractal.h; sourceTree = ""; }; - 84B8DA13152C9AC600D59B95 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = ../../../../lib/libtbb.dylib; sourceTree = ""; }; - 84B8DA6F152CA90100D59B95 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = ../../../common/gui/xcode/tbbExample/main.m; sourceTree = ""; }; - 84B8DA70152CA90100D59B95 /* OpenGLView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OpenGLView.h; path = ../../../common/gui/xcode/tbbExample/OpenGLView.h; sourceTree = ""; }; - 84B8DA71152CA90100D59B95 /* OpenGLView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OpenGLView.m; path = ../../../common/gui/xcode/tbbExample/OpenGLView.m; sourceTree = ""; }; - 84B8DA72152CA90100D59B95 /* tbbAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = tbbAppDelegate.h; path = ../../../common/gui/xcode/tbbExample/tbbAppDelegate.h; sourceTree = ""; }; - 84B8DA73152CA90100D59B95 /* tbbAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = tbbAppDelegate.m; path = ../../../common/gui/xcode/tbbExample/tbbAppDelegate.m; sourceTree = ""; }; - 84B8DA75152CA90100D59B95 /* tbbExample-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "tbbExample-Prefix.pch"; path = "../../../common/gui/xcode/tbbExample/tbbExample-Prefix.pch"; sourceTree = ""; }; - 84B8DA7D152CA97B00D59B95 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = InfoPlist.strings; sourceTree = ""; }; - 84B8DA7F152CA97B00D59B95 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = MainMenu.xib; sourceTree = ""; }; - 84B8DA82152CA99C00D59B95 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = ../main.cpp; sourceTree = ""; }; - 84B8DA99152CADF400D59B95 /* macvideo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = macvideo.cpp; path = ../../../common/gui/macvideo.cpp; sourceTree = ""; }; - 84D017511527431F0008A4E0 /* tbbExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = tbbExample.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 84D017551527431F0008A4E0 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; - 84D017581527431F0008A4E0 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; - 84D017591527431F0008A4E0 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; }; - 84D0175A1527431F0008A4E0 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - 84D01775152744BD0008A4E0 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 84D0174E1527431F0008A4E0 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 84D01776152744BD0008A4E0 /* OpenGL.framework in Frameworks */, - 84D017561527431F0008A4E0 /* Cocoa.framework in Frameworks */, - 84B8DA19152C9AC600D59B95 /* libtbb.dylib in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 84011727152D68D200B07E4D /* Sources */ = { - isa = PBXGroup; - children = ( - 8401171F152D687A00B07E4D /* fractal_video.h */, - 84B8DA82152CA99C00D59B95 /* main.cpp */, - 84011720152D687A00B07E4D /* fractal.cpp */, - 84011721152D687A00B07E4D /* fractal.h */, - ); - name = Sources; - sourceTree = ""; - }; - 84B8DA6C152CA8D900D59B95 /* tbbExample */ = { - isa = PBXGroup; - children = ( - 84011727152D68D200B07E4D /* Sources */, - 84B8DA98152CAD8600D59B95 /* Gui layer */, - 84B8DA7B152CA97B00D59B95 /* Resources */, - ); - name = tbbExample; - sourceTree = ""; - }; - 84B8DA7B152CA97B00D59B95 /* Resources */ = { - isa = PBXGroup; - children = ( - 84B8DA7C152CA97B00D59B95 /* InfoPlist.strings */, - 84B8DA7E152CA97B00D59B95 /* MainMenu.xib */, - ); - name = Resources; - path = ../../../common/gui/xcode/tbbExample/en.lproj; - sourceTree = ""; - }; - 84B8DA98152CAD8600D59B95 /* Gui layer */ = { - isa = PBXGroup; - children = ( - 84B8DA99152CADF400D59B95 /* macvideo.cpp */, - 84B8DA6F152CA90100D59B95 /* main.m */, - 84B8DA70152CA90100D59B95 /* OpenGLView.h */, - 84B8DA71152CA90100D59B95 /* OpenGLView.m */, - 84B8DA72152CA90100D59B95 /* tbbAppDelegate.h */, - 84B8DA73152CA90100D59B95 /* tbbAppDelegate.m */, - 84B8DA75152CA90100D59B95 /* tbbExample-Prefix.pch */, - ); - name = "Gui layer"; - sourceTree = ""; - }; - 84D017461527431F0008A4E0 = { - isa = PBXGroup; - children = ( - 84B8DA6C152CA8D900D59B95 /* tbbExample */, - 84D017541527431F0008A4E0 /* Frameworks */, - 84D017521527431F0008A4E0 /* Products */, - ); - sourceTree = ""; - }; - 84D017521527431F0008A4E0 /* Products */ = { - isa = PBXGroup; - children = ( - 84D017511527431F0008A4E0 /* tbbExample.app */, - ); - name = Products; - sourceTree = ""; - }; - 84D017541527431F0008A4E0 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 84D01775152744BD0008A4E0 /* OpenGL.framework */, - 84D017551527431F0008A4E0 /* Cocoa.framework */, - 84D017571527431F0008A4E0 /* Other Frameworks */, - ); - name = Frameworks; - sourceTree = ""; - }; - 84D017571527431F0008A4E0 /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 84B8DA13152C9AC600D59B95 /* libtbb.dylib */, - 84D017581527431F0008A4E0 /* AppKit.framework */, - 84D017591527431F0008A4E0 /* CoreData.framework */, - 84D0175A1527431F0008A4E0 /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 84D017501527431F0008A4E0 /* tbbExample */ = { - isa = PBXNativeTarget; - buildConfigurationList = 84D01772152743200008A4E0 /* Build configuration list for PBXNativeTarget "tbbExample" */; - buildPhases = ( - 84D0174D1527431F0008A4E0 /* Sources */, - 84D0174E1527431F0008A4E0 /* Frameworks */, - 84D0174F1527431F0008A4E0 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = tbbExample; - productName = tbbExample; - productReference = 84D017511527431F0008A4E0 /* tbbExample.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 84D017481527431F0008A4E0 /* Project object */ = { - isa = PBXProject; - attributes = { - CLASSPREFIX = tbb; - LastUpgradeCheck = 0430; - }; - buildConfigurationList = 84D0174B1527431F0008A4E0 /* Build configuration list for PBXProject "fractal" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = 84D017461527431F0008A4E0; - productRefGroup = 84D017521527431F0008A4E0 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 84D017501527431F0008A4E0 /* tbbExample */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 84D0174F1527431F0008A4E0 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 84B8DA7A152CA90100D59B95 /* (null) in Resources */, - 84B8DA80152CA97B00D59B95 /* InfoPlist.strings in Resources */, - 84B8DA81152CA97B00D59B95 /* MainMenu.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 84D0174D1527431F0008A4E0 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 84B8DA77152CA90100D59B95 /* main.m in Sources */, - 84B8DA78152CA90100D59B95 /* OpenGLView.m in Sources */, - 84B8DA79152CA90100D59B95 /* tbbAppDelegate.m in Sources */, - 84B8DA87152CA99C00D59B95 /* main.cpp in Sources */, - 84B8DA9A152CADF400D59B95 /* macvideo.cpp in Sources */, - 84011722152D687A00B07E4D /* fractal.cpp in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 84B8DA7C152CA97B00D59B95 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 84B8DA7D152CA97B00D59B95 /* en */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; - 84B8DA7E152CA97B00D59B95 /* MainMenu.xib */ = { - isa = PBXVariantGroup; - children = ( - 84B8DA7F152CA97B00D59B95 /* en */, - ); - name = MainMenu.xib; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 84D01770152743200008A4E0 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = YES; - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_ARC = YES; - COPY_PHASE_STRIP = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.7; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; - }; - name = Debug; - }; - 84D01771152743200008A4E0 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = YES; - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_ARC = YES; - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.7; - SDKROOT = macosx; - }; - name = Release; - }; - 84D01773152743200008A4E0 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "../../../common/gui/xcode/tbbExample/tbbExample-Prefix.pch"; - HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; - INFOPLIST_FILE = "../../../common/gui/xcode/tbbExample/tbbExample-Info.plist"; - LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../../lib\""; - MACOSX_DEPLOYMENT_TARGET = 10.7; - PRODUCT_NAME = "$(TARGET_NAME)"; - RUN_CLANG_STATIC_ANALYZER = YES; - USER_HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; - VERSION_INFO_BUILDER = "$(TARGET_NAME)"; - WRAPPER_EXTENSION = app; - }; - name = Debug; - }; - 84D01774152743200008A4E0 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "../../../common/gui/xcode/tbbExample/tbbExample-Prefix.pch"; - HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; - INFOPLIST_FILE = "../../../common/gui/xcode/tbbExample/tbbExample-Info.plist"; - LIBRARY_SEARCH_PATHS = ( - "\"$(SRCROOT)/../../../../lib\"", - "\"$(SRCROOT)\"", - ); - MACOSX_DEPLOYMENT_TARGET = 10.7; - PRODUCT_NAME = "$(TARGET_NAME)"; - RUN_CLANG_STATIC_ANALYZER = YES; - USER_HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; - VERSION_INFO_BUILDER = "$(TARGET_NAME)"; - WRAPPER_EXTENSION = app; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 84D0174B1527431F0008A4E0 /* Build configuration list for PBXProject "fractal" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 84D01770152743200008A4E0 /* Debug */, - 84D01771152743200008A4E0 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 84D01772152743200008A4E0 /* Build configuration list for PBXNativeTarget "tbbExample" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 84D01773152743200008A4E0 /* Debug */, - 84D01774152743200008A4E0 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 84D017481527431F0008A4E0 /* Project object */; -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/xcode/fractal.xcodeproj/xcshareddata/xcschemes/tbbExample.xcscheme b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/xcode/fractal.xcodeproj/xcshareddata/xcschemes/tbbExample.xcscheme deleted file mode 100644 index 5939fe1d1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/fractal/xcode/fractal.xcodeproj/xcshareddata/xcschemes/tbbExample.xcscheme +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/index.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/index.html deleted file mode 100644 index 4667eddba..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/task_priority/index.html +++ /dev/null @@ -1,23 +0,0 @@ - - - -

    Overview

    -This directory has examples of how to use the task priority feature. - -

    Directories

    -
    -
    fractal -
    The example calculates two classical Mandelbrot fractals with different priorities. -
    - -
    -Up to parent directory -

    -Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

    -Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

    -* Other names and brands may be claimed as the property of others. - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/test_all/fibonacci/Fibonacci.cpp b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/test_all/fibonacci/Fibonacci.cpp deleted file mode 100644 index bbcbdac10..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/test_all/fibonacci/Fibonacci.cpp +++ /dev/null @@ -1,601 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* Example program that computes Fibonacci numbers in different ways. - Arguments are: [ Number [Threads [Repeats]]] - The defaults are Number=500 Threads=1:4 Repeats=1. - - The point of this program is to check that the library is working properly. - Most of the computations are deliberately silly and not expected to - show any speedup on multiprocessors. -*/ - -// enable assertions -#ifdef NDEBUG -#undef NDEBUG -#endif - -#include -#include -#include -#include -#include "tbb/task.h" -#include "tbb/task_scheduler_init.h" -#include "tbb/tick_count.h" -#include "tbb/blocked_range.h" -#include "tbb/concurrent_vector.h" -#include "tbb/concurrent_queue.h" -#include "tbb/concurrent_hash_map.h" -#include "tbb/parallel_while.h" -#include "tbb/parallel_for.h" -#include "tbb/parallel_reduce.h" -#include "tbb/parallel_scan.h" -#include "tbb/pipeline.h" -#include "tbb/atomic.h" -#include "tbb/mutex.h" -#include "tbb/spin_mutex.h" -#include "tbb/queuing_mutex.h" -#include "tbb/tbb_thread.h" - -using namespace std; -using namespace tbb; - -//! type used for Fibonacci number computations -typedef long long value; - -//! Matrix 2x2 class -struct Matrix2x2 -{ - //! Array of values - value v[2][2]; - Matrix2x2() {} - Matrix2x2(value v00, value v01, value v10, value v11) { - v[0][0] = v00; v[0][1] = v01; v[1][0] = v10; v[1][1] = v11; - } - Matrix2x2 operator * (const Matrix2x2 &to) const; //< Multiply two Matrices -}; -//! Default matrix to multiply -static const Matrix2x2 Matrix1110(1, 1, 1, 0); -//! Raw arrays matrices multiply -void Matrix2x2Multiply(const value a[2][2], const value b[2][2], value c[2][2]); - -/////////////////////// Serial methods //////////////////////// - -//! Plain serial sum -value SerialFib(int n) -{ - if(n < 2) - return n; - value a = 0, b = 1, sum; int i; - for( i = 2; i <= n; i++ ) - { // n is really index of Fibonacci number - sum = a + b; a = b; b = sum; - } - return sum; -} -//! Serial n-1 matrices multiplication -value SerialMatrixFib(int n) -{ - value c[2][2], a[2][2] = {{1, 1}, {1, 0}}, b[2][2] = {{1, 1}, {1, 0}}; int i; - for(i = 2; i < n; i++) - { // Using condition to prevent copying of values - if(i & 1) Matrix2x2Multiply(a, c, b); - else Matrix2x2Multiply(a, b, c); - } - return (i & 1) ? c[0][0] : b[0][0]; // get result from upper left cell -} -//! Recursive summing. Just for complete list of serial algorithms, not used -value SerialRecursiveFib(int n) -{ - value result; - if(n < 2) - result = n; - else - result = SerialRecursiveFib(n - 1) + SerialRecursiveFib(n - 2); - return result; -} -//! Introducing of queue method in serial -value SerialQueueFib(int n) -{ - concurrent_queue Q; - for(int i = 1; i < n; i++) - Q.push(Matrix1110); - Matrix2x2 A, B; - while(true) { - while( !Q.try_pop(A) ) this_tbb_thread::yield(); - if(Q.empty()) break; - while( !Q.try_pop(B) ) this_tbb_thread::yield(); - Q.push(A * B); - } - return A.v[0][0]; -} -//! Trying to use concurrent_vector -value SerialVectorFib(int n) -{ - concurrent_vector A; - A.grow_by(2); - A[0] = 0; A[1] = 1; - for( int i = 2; i <= n; i++) - { - A.grow_to_at_least(i+1); - A[i] = A[i-1] + A[i-2]; - } - return A[n]; -} - -///////////////////// Parallel methods //////////////////////// - -// *** Serial shared by mutexes *** // - -//! Shared glabals -value SharedA = 0, SharedB = 1; int SharedI = 1, SharedN; - -//! Template task class which computes Fibonacci numbers with shared globals -template -class SharedSerialFibBody { - M &mutex; -public: - SharedSerialFibBody( M &m ) : mutex( m ) {} - //! main loop - void operator()( const blocked_range& range ) const { - for(;;) { - typename M::scoped_lock lock( mutex ); - if(SharedI >= SharedN) break; - value sum = SharedA + SharedB; - SharedA = SharedB; SharedB = sum; - ++SharedI; - } - } -}; - -//! Root function -template -value SharedSerialFib(int n) -{ - SharedA = 0; SharedB = 1; SharedI = 1; SharedN = n; M mutex; - parallel_for( blocked_range(0,4,1), SharedSerialFibBody( mutex ) ); - return SharedB; -} - -// *** Serial shared by concurrent hash map *** // - -//! Hash comparer -struct IntHashCompare { - bool equal( const int j, const int k ) const { return j == k; } - unsigned long hash( const int k ) const { return (unsigned long)k; } -}; -//! NumbersTable type based on concurrent_hash_map -typedef concurrent_hash_map NumbersTable; -//! task for serial method using shared concurrent_hash_map -class ConcurrentHashSerialFibTask: public task { - NumbersTable &Fib; - int my_n; -public: - //! constructor - ConcurrentHashSerialFibTask( NumbersTable &cht, int n ) : Fib(cht), my_n(n) { } - //! executing task - /*override*/ task* execute() - { - for( int i = 2; i <= my_n; ++i ) { // there is no difference in to recycle or to make loop - NumbersTable::const_accessor f1, f2; // same as iterators - if( !Fib.find(f1, i-1) || !Fib.find(f2, i-2) ) { - // Something is seriously wrong, because i-1 and i-2 must have been inserted - // earlier by this thread or another thread. - assert(0); - } - value sum = f1->second + f2->second; - NumbersTable::const_accessor fsum; - Fib.insert(fsum, make_pair(i, sum)); // inserting - assert( fsum->second == sum ); // check value - } - return 0; - } -}; - -//! Root function -value ConcurrentHashSerialFib(int n) -{ - NumbersTable Fib; - bool okay; - okay = Fib.insert( make_pair(0, 0) ); assert(okay); // assign initial values - okay = Fib.insert( make_pair(1, 1) ); assert(okay); - - task_list list; - // allocate tasks - list.push_back(*new(task::allocate_root()) ConcurrentHashSerialFibTask(Fib, n)); - list.push_back(*new(task::allocate_root()) ConcurrentHashSerialFibTask(Fib, n)); - task::spawn_root_and_wait(list); - NumbersTable::const_accessor fresult; - okay = Fib.find( fresult, n ); - assert(okay); - return fresult->second; -} - -// *** Queue with parallel_for and parallel_while *** // - -//! Stream of matrices -struct QueueStream { - volatile bool producer_is_done; - concurrent_queue Queue; - //! Get pair of matricies if present - bool pop_if_present( pair &mm ) { - // get first matrix if present - if(!Queue.try_pop(mm.first)) return false; - // get second matrix if present - if(!Queue.try_pop(mm.second)) { - // if not, then push back first matrix - Queue.push(mm.first); return false; - } - return true; - } -}; - -//! Functor for parallel_for which fills the queue -struct parallel_forFibBody { - QueueStream &my_stream; - //! fill functor arguments - parallel_forFibBody(QueueStream &s) : my_stream(s) { } - //! iterate thorough range - void operator()( const blocked_range &range ) const { - int i_end = range.end(); - for( int i = range.begin(); i != i_end; ++i ) { - my_stream.Queue.push( Matrix1110 ); // push initial matrix - } - } -}; -//! Functor for parallel_while which process the queue -class parallel_whileFibBody -{ - QueueStream &my_stream; - parallel_while &my_while; -public: - typedef pair argument_type; - //! fill functor arguments - parallel_whileFibBody(parallel_while &w, QueueStream &s) - : my_while(w), my_stream(s) { } - //! process pair of matrices - void operator() (argument_type mm) const { - mm.first = mm.first * mm.second; - // note: it can run concurrently with QueueStream::pop_if_present() - if(my_stream.Queue.try_pop(mm.second)) - my_while.add( mm ); // now, two matrices available. Add next iteration. - else my_stream.Queue.push( mm.first ); // or push back calculated value if queue is empty - } -}; - -//! Parallel queue's filling task -struct QueueInsertTask: public task { - QueueStream &my_stream; - int my_n; - //! fill task arguments - QueueInsertTask( int n, QueueStream &s ) : my_n(n), my_stream(s) { } - //! executing task - /*override*/ task* execute() { - // Execute of parallel pushing of n-1 initial matrices - parallel_for( blocked_range( 1, my_n, 10 ), parallel_forFibBody(my_stream) ); - my_stream.producer_is_done = true; - return 0; - } -}; -//! Parallel queue's processing task -struct QueueProcessTask: public task { - QueueStream &my_stream; - //! fill task argument - QueueProcessTask( QueueStream &s ) : my_stream(s) { } - //! executing task - /*override*/ task* execute() { - while( !my_stream.producer_is_done || my_stream.Queue.unsafe_size()>1 ) { - parallel_while w; // run while loop in parallel - w.run( my_stream, parallel_whileFibBody( w, my_stream ) ); - } - return 0; - } -}; -//! Root function -value ParallelQueueFib(int n) -{ - QueueStream stream; - stream.producer_is_done = false; - task_list list; - list.push_back(*new(task::allocate_root()) QueueInsertTask( n, stream )); - list.push_back(*new(task::allocate_root()) QueueProcessTask( stream )); - // If there is only a single thread, the first task in the list runs to completion - // before the second task in the list starts. - task::spawn_root_and_wait(list); - assert(stream.Queue.unsafe_size() == 1); // it is easy to lose some work - Matrix2x2 M; - bool result = stream.Queue.try_pop( M ); // get last matrix - assert( result ); - return M.v[0][0]; // and result number -} - -// *** Queue with pipeline *** // - -//! filter to fills queue -class InputFilter: public filter { - atomic N; //< index of Fibonacci number minus 1 -public: - concurrent_queue Queue; - //! fill filter arguments - InputFilter( int n ) : filter(false /*is not serial*/) { N = n; } - //! executing filter - /*override*/ void* operator()(void*) - { - int n = --N; - if(n <= 0) return 0; - Queue.push( Matrix1110 ); - return &Queue; - } -}; -//! filter to process queue -class MultiplyFilter: public filter { -public: - MultiplyFilter( ) : filter(false /*is not serial*/) { } - //! executing filter - /*override*/ void* operator()(void*p) - { - concurrent_queue &Queue = *static_cast *>(p); - Matrix2x2 m1, m2; - // get two elements - while( !Queue.try_pop( m1 ) ) this_tbb_thread::yield(); - while( !Queue.try_pop( m2 ) ) this_tbb_thread::yield(); - m1 = m1 * m2; // process them - Queue.push( m1 ); // and push back - return this; // just nothing - } -}; -//! Root function -value ParallelPipeFib(int n) -{ - InputFilter input( n-1 ); - MultiplyFilter process; - // Create the pipeline - pipeline pipeline; - // add filters - pipeline.add_filter( input ); // first - pipeline.add_filter( process ); // second - - input.Queue.push( Matrix1110 ); - // Run the pipeline - pipeline.run( n ); // must be larger then max threads number - pipeline.clear(); // do not forget clear the pipeline - - assert( input.Queue.unsafe_size()==1 ); - Matrix2x2 M; - bool result = input.Queue.try_pop( M ); // get last element - assert( result ); - return M.v[0][0]; // get value -} - -// *** parallel_reduce *** // - -//! Functor for parallel_reduce -struct parallel_reduceFibBody { - Matrix2x2 sum; - int splitted; //< flag to make one less operation for splitted bodies - //! Constructor fills sum with initial matrix - parallel_reduceFibBody() : sum( Matrix1110 ), splitted(0) { } - //! Splitting constructor - parallel_reduceFibBody( parallel_reduceFibBody& other, split ) : sum( Matrix1110 ), splitted(1/*note that it is splitted*/) {} - //! Join point - void join( parallel_reduceFibBody &s ) { - sum = sum * s.sum; - } - //! Process multiplications - void operator()( const blocked_range &r ) { - for( int k = r.begin() + splitted; k < r.end(); ++k ) - sum = sum * Matrix1110; - splitted = 0; // reset flag, because this method can be reused for next range - } -}; -//! Root function -value parallel_reduceFib(int n) -{ - parallel_reduceFibBody b; - parallel_reduce(blocked_range(2, n, 3), b); // do parallel reduce on range [2, n) for b - return b.sum.v[0][0]; -} - -// *** parallel_scan *** // - -//! Functor for parallel_scan -struct parallel_scanFibBody { - Matrix2x2 sum; - int first; // flag to make one less operation for first range - //! Constructor fills sum with initial matrix - parallel_scanFibBody() : sum( Matrix1110 ), first(1) {} - //! Splitting constructor - parallel_scanFibBody( parallel_scanFibBody &b, split) : sum( Matrix1110 ), first(1) {} - //! Join point - void reverse_join( parallel_scanFibBody &a ) { - sum = sum * a.sum; - } - //! Assign point - void assign( parallel_scanFibBody &b ) { - sum = b.sum; - } - //! Process multiplications. For two tags - template - void operator()( const blocked_range &r, T) { - // see tag.is_final_scan() for what tag is used - for( int k = r.begin() + first; k < r.end(); ++k ) - sum = sum * Matrix1110; - first = 0; // reset flag, because this method can be reused for next range - } -}; -//! Root function -value parallel_scanFib(int n) -{ - parallel_scanFibBody b; - parallel_scan(blocked_range(1/*one less, because body skip first*/, n, 3), b); - return b.sum.v[0][0]; -} - -// *** Raw tasks *** // - -//! task class which computes Fibonacci numbers by Lucas formula -struct FibTask: public task { - const int n; - value& sum; - value x, y; - bool second_phase; //< flag of continuation - // task arguments - FibTask( int n_, value& sum_ ) : - n(n_), sum(sum_), second_phase(false) - {} - //! Execute task - /*override*/ task* execute() { - // Using Lucas' formula here - if( second_phase ) { // children finished - sum = n&1 ? x*x + y*y : x*x - y*y; - return NULL; - } - if( n <= 2 ) { - sum = n!=0; - return NULL; - } else { - recycle_as_continuation(); // repeat this task when children finish - second_phase = true; // mark second phase - FibTask& a = *new( allocate_child() ) FibTask( n/2 + 1, x ); - FibTask& b = *new( allocate_child() ) FibTask( n/2 - 1 + (n&1), y ); - set_ref_count(2); - spawn( a ); - return &b; - } - } -}; -//! Root function -value ParallelTaskFib(int n) { - value sum; - FibTask& a = *new(task::allocate_root()) FibTask(n, sum); - task::spawn_root_and_wait(a); - return sum; -} - -/////////////////////////// Main //////////////////////////////////////////////////// - -//! A closed range of int. -struct IntRange { - int low; - int high; - void set_from_string( const char* s ); - IntRange( int low_, int high_ ) : low(low_), high(high_) {} -}; - -void IntRange::set_from_string( const char* s ) { - char* end; - high = low = strtol(s,&end,0); - switch( *end ) { - case ':': - high = strtol(end+1,0,0); - break; - case '\0': - break; - default: - printf("unexpected character = %c\n",*end); - } -} - -//! Tick count for start -static tick_count t0; - -//! Verbose output flag -static bool Verbose = false; - -typedef value (*MeasureFunc)(int); -//! Measure ticks count in loop [2..n] -value Measure(const char *name, MeasureFunc func, int n) -{ - value result; - if(Verbose) printf("%s",name); - t0 = tick_count::now(); - for(int number = 2; number <= n; number++) - result = func(number); - if(Verbose) printf("\t- in %f msec\n", (tick_count::now() - t0).seconds()*1000); - return result; -} - -//! program entry -int main(int argc, char* argv[]) -{ - if(argc>1) Verbose = true; - int NumbersCount = argc>1 ? strtol(argv[1],0,0) : 500; - IntRange NThread(1,4);// Number of threads to use. - if(argc>2) NThread.set_from_string(argv[2]); - unsigned long ntrial = argc>3? (unsigned long)strtoul(argv[3],0,0) : 1; - value result, sum; - - if(Verbose) printf("Fibonacci numbers example. Generating %d numbers..\n", NumbersCount); - - result = Measure("Serial loop", SerialFib, NumbersCount); - sum = Measure("Serial matrix", SerialMatrixFib, NumbersCount); assert(result == sum); - sum = Measure("Serial vector", SerialVectorFib, NumbersCount); assert(result == sum); - sum = Measure("Serial queue", SerialQueueFib, NumbersCount); assert(result == sum); - // now in parallel - for( unsigned long i=0; i, NumbersCount); assert(result == sum); - sum = Measure("Shared serial (spin_mutex)", SharedSerialFib, NumbersCount); assert(result == sum); - sum = Measure("Shared serial (queuing_mutex)", SharedSerialFib, NumbersCount); assert(result == sum); - sum = Measure("Shared serial (Conc.HashTable)", ConcurrentHashSerialFib, NumbersCount); assert(result == sum); - sum = Measure("Parallel while+for/queue", ParallelQueueFib, NumbersCount); assert(result == sum); - sum = Measure("Parallel pipe/queue\t", ParallelPipeFib, NumbersCount); assert(result == sum); - sum = Measure("Parallel reduce\t\t", parallel_reduceFib, NumbersCount); assert(result == sum); - sum = Measure("Parallel scan\t\t", parallel_scanFib, NumbersCount); assert(result == sum); - sum = Measure("Parallel tasks\t\t", ParallelTaskFib, NumbersCount); assert(result == sum); - } - - #ifdef __GNUC__ - if(Verbose) printf("Fibonacci number #%d modulo 2^64 is %lld\n\n", NumbersCount, result); - #else - if(Verbose) printf("Fibonacci number #%d modulo 2^64 is %I64d\n\n", NumbersCount, result); - #endif - } - if(!Verbose) printf("TEST PASSED\n"); - return 0; -} - -// Utils - -void Matrix2x2Multiply(const value a[2][2], const value b[2][2], value c[2][2]) -{ - for( int i = 0; i <= 1; i++) - for( int j = 0; j <= 1; j++) - c[i][j] = a[i][0]*b[0][j] + a[i][1]*b[1][j]; -} - -Matrix2x2 Matrix2x2::operator *(const Matrix2x2 &to) const -{ - Matrix2x2 result; - Matrix2x2Multiply(v, to.v, result.v); - return result; -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/test_all/fibonacci/Makefile b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/test_all/fibonacci/Makefile deleted file mode 100644 index 8ace2f6cd..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/test_all/fibonacci/Makefile +++ /dev/null @@ -1,53 +0,0 @@ -# Copyright 2005-2014 Intel Corporation. All Rights Reserved. -# -# This file is part of Threading Building Blocks. -# -# Threading Building Blocks is free software; you can redistribute it -# and/or modify it under the terms of the GNU General Public License -# version 2 as published by the Free Software Foundation. -# -# Threading Building Blocks is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied warranty -# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Threading Building Blocks; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# -# As a special exception, you may use this file as part of a free software -# library without restriction. Specifically, if other files instantiate -# templates or use macros or inline functions from this file, or you compile -# this file and link it with other files to produce an executable, this -# file does not by itself cause the resulting executable to be covered by -# the GNU General Public License. This exception does not however -# invalidate any other reasons why the executable file might be covered by -# the GNU General Public License. - -# Common Makefile that builds and runs example. - -# Just specify your program basename -PROG=Fibonacci -ARGS= - -# Trying to find if icl.exe is set -CXX1 = $(TBB_CXX)- -CXX2 = $(CXX1:icl.exe-=icl.exe) -CXX = $(CXX2:-=cl.exe) - -# The C++ compiler options -MYCXXFLAGS = /TP /EHsc /W3 /nologo /D _CONSOLE /D _MBCS /D WIN32 /D _WIN32_WINNT=0x0501 $(CXXFLAGS) -MYLDFLAGS =/INCREMENTAL:NO /NOLOGO /DEBUG /FIXED:NO $(LDFLAGS) - -all: release test -release: compiler_check - $(CXX) *.cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe -debug: compiler_check - $(CXX) *.cpp /MDd /Od /Zi /D TBB_USE_DEBUG /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe -clean: - @cmd.exe /C del $(PROG).exe *.obj *.?db *.manifest -test: - $(PROG) $(ARGS) -compiler_check: - @echo compiler_test>compiler_test && @$(CXX) /E compiler_test >nul 2>&1 || echo "$(CXX) command not found. Check if CXX=$(CXX) is set properly" - @cmd.exe /C del compiler_test diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/test_all/fibonacci/index.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/test_all/fibonacci/index.html deleted file mode 100644 index fe370ab8a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/test_all/fibonacci/index.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -

    Overview

    -This directory contains an example that computes Fibonacci numbers in several -different ways. The purpose of the example is to exercise every include file -and class in Intel® Threading Building Blocks. -Most of the computations are deliberately silly and not expected to -show any speedup on multiprocessors. -

    Files

    -
    -
    Fibonacci.cpp -
    Source code for example. -
    Makefile -
    Makefile for building example. -
    - -

    Directories

    -
    -
    msvs -
    Contains Microsoft* Visual Studio* 2005 workspace for building and running the - example (Windows* systems only).
    xcode -
    Contains Xcode* IDE workspace for building and running the example (OS X* - systems only).
    - -

    To Build

    -General build directions can be found here. - -

    Usage

    -
    -
    fibonacci K [M[:N]] [R] -
    Calculates the K-th fibonacci number. - M and N are a range of numbers of threads to be used. - R is the number of times to repeat the calculation. -
    To run a short version of this example, e.g., for use with Intel® Threading Tools: -
    Build a debug version of the example - (see the build directions). -
    Run it with a small fibonacci number and the desired number of threads, e.g., fibonacci 100 4. -
    - -
    -Up to parent directory -

    -Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

    -Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

    -* Other names and brands may be claimed as the property of others. - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/test_all/fibonacci/msvs/fibonacci.icproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/test_all/fibonacci/msvs/fibonacci.icproj deleted file mode 100644 index c526a2391..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/test_all/fibonacci/msvs/fibonacci.icproj +++ /dev/null @@ -1,11 +0,0 @@ - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/test_all/fibonacci/msvs/fibonacci.vcproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/test_all/fibonacci/msvs/fibonacci.vcproj deleted file mode 100644 index 6933505cd..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/test_all/fibonacci/msvs/fibonacci.vcproj +++ /dev/null @@ -1,356 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/test_all/fibonacci/msvs/fibonacci_cl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/test_all/fibonacci/msvs/fibonacci_cl.sln deleted file mode 100644 index b2cb826a2..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/test_all/fibonacci/msvs/fibonacci_cl.sln +++ /dev/null @@ -1,25 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fibonacci", "fibonacci.vcproj", "{3AA40693-F93D-4D4B-B32E-068F511A252E}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3AA40693-F93D-4D4B-B32E-068F511A252E}.Debug|Win32.ActiveCfg = Debug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252E}.Debug|Win32.Build.0 = Debug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252E}.Debug|x64.ActiveCfg = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252E}.Debug|x64.Build.0 = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252E}.Release|Win32.ActiveCfg = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252E}.Release|Win32.Build.0 = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252E}.Release|x64.ActiveCfg = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252E}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/test_all/fibonacci/msvs/fibonacci_icl.sln b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/test_all/fibonacci/msvs/fibonacci_icl.sln deleted file mode 100644 index 3413de4e1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/test_all/fibonacci/msvs/fibonacci_icl.sln +++ /dev/null @@ -1,33 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{EAF909A5-FA59-4C3D-9431-0FCC20D5BCF9}") = "fibonacci", "fibonacci.icproj", "{123FDABA-4A55-4E79-AE28-58E90AA8256E}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {123FDABA-4A55-4E79-AE28-58E90AA8256E}.Debug|Win32.ActiveCfg = Debug|Win32 - {123FDABA-4A55-4E79-AE28-58E90AA8256E}.Debug|Win32.Build.0 = Debug|Win32 - {123FDABA-4A55-4E79-AE28-58E90AA8256E}.Debug|x64.ActiveCfg = Debug|x64 - {123FDABA-4A55-4E79-AE28-58E90AA8256E}.Debug|x64.Build.0 = Debug|x64 - {123FDABA-4A55-4E79-AE28-58E90AA8256E}.Release|Win32.ActiveCfg = Release|Win32 - {123FDABA-4A55-4E79-AE28-58E90AA8256E}.Release|Win32.Build.0 = Release|Win32 - {123FDABA-4A55-4E79-AE28-58E90AA8256E}.Release|x64.ActiveCfg = Release|x64 - {123FDABA-4A55-4E79-AE28-58E90AA8256E}.Release|x64.Build.0 = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252E}.Release|x64.Build.0 = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252E}.Release|x64.ActiveCfg = Release|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252E}.Release|Win32.Build.0 = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252E}.Release|Win32.ActiveCfg = Release|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252E}.Debug|x64.Build.0 = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252E}.Debug|x64.ActiveCfg = Debug|x64 - {3AA40693-F93D-4D4B-B32E-068F511A252E}.Debug|Win32.Build.0 = Debug|Win32 - {3AA40693-F93D-4D4B-B32E-068F511A252E}.Debug|Win32.ActiveCfg = Debug|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/test_all/fibonacci/xcode/fibonacci.xcodeproj/project.pbxproj b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/test_all/fibonacci/xcode/fibonacci.xcodeproj/project.pbxproj deleted file mode 100644 index 0a0861725..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/test_all/fibonacci/xcode/fibonacci.xcodeproj/project.pbxproj +++ /dev/null @@ -1,305 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - A1F593A60B8F042A00073279 /* Fibonacci.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F593A50B8F042A00073279 /* Fibonacci.cpp */; }; - A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; }; - A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 8DD76F690486A84900D96B5E /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 12; - dstPath = ""; - dstSubfolderSpec = 16; - files = ( - A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 8DD76F6C0486A84900D96B5E /* Fibonacci */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = Fibonacci; sourceTree = BUILT_PRODUCTS_DIR; }; - A1F593A50B8F042A00073279 /* Fibonacci.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Fibonacci.cpp; path = ../Fibonacci.cpp; sourceTree = SOURCE_ROOT; }; - A1F593B30B8F06F900073279 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = ../../../../lib/libtbb.dylib; sourceTree = SOURCE_ROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8DD76F660486A84900D96B5E /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 08FB7794FE84155DC02AAC07 /* Fibonacci */ = { - isa = PBXGroup; - children = ( - 08FB7795FE84155DC02AAC07 /* Source */, - A1F593B20B8F06F900073279 /* External Frameworks and Libraries */, - 1AB674ADFE9D54B511CA2CBB /* Products */, - ); - name = Fibonacci; - sourceTree = ""; - }; - 08FB7795FE84155DC02AAC07 /* Source */ = { - isa = PBXGroup; - children = ( - A1F593A50B8F042A00073279 /* Fibonacci.cpp */, - ); - name = Source; - sourceTree = ""; - }; - 1AB674ADFE9D54B511CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8DD76F6C0486A84900D96B5E /* Fibonacci */, - ); - name = Products; - sourceTree = ""; - }; - A1F593B20B8F06F900073279 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - A1F593B30B8F06F900073279 /* libtbb.dylib */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8DD76F620486A84900D96B5E /* Fibonacci */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "Fibonacci" */; - buildPhases = ( - 8DD76F640486A84900D96B5E /* Sources */, - 8DD76F660486A84900D96B5E /* Frameworks */, - 8DD76F690486A84900D96B5E /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Fibonacci; - productInstallPath = "$(HOME)/bin"; - productName = Fibonacci; - productReference = 8DD76F6C0486A84900D96B5E /* Fibonacci */; - productType = "com.apple.product-type.tool"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 08FB7793FE84155DC02AAC07 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0410; - }; - buildConfigurationList = 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "fibonacci" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - en, - ); - mainGroup = 08FB7794FE84155DC02AAC07 /* Fibonacci */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8DD76F620486A84900D96B5E /* Fibonacci */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXSourcesBuildPhase section */ - 8DD76F640486A84900D96B5E /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A1F593A60B8F042A00073279 /* Fibonacci.cpp in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 1DEB923208733DC60010E9CD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_VERSION = ""; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = Fibonacci; - ZERO_LINK = NO; - }; - name = Debug; - }; - 1DEB923308733DC60010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_VERSION = ""; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = Fibonacci; - ZERO_LINK = NO; - }; - name = Release; - }; - 1DEB923608733DC60010E9CD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Debug; - }; - 1DEB923708733DC60010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Release; - }; - A1F593C60B8F0E6E00073279 /* Debug64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_VERSION = ""; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = Fibonacci; - ZERO_LINK = NO; - }; - name = Debug64; - }; - A1F593C70B8F0E6E00073279 /* Release64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_VERSION = ""; - HEADER_SEARCH_PATHS = ../../../../include; - INSTALL_PATH = "$(HOME)/bin"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - ../../../../lib, - ); - PRODUCT_NAME = Fibonacci; - ZERO_LINK = NO; - }; - name = Release64; - }; - A1F593C80B8F0E6E00073279 /* Debug64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "-m64", - ); - OTHER_LDFLAGS = "-m64"; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Debug64; - }; - A1F593C90B8F0E6E00073279 /* Release64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = i386; - GCC_ENABLE_CPP_RTTI = YES; - GCC_MODEL_TUNING = ""; - GCC_VERSION = 4.0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "-m64", - ); - OTHER_LDFLAGS = "-m64"; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - SYMROOT = "/tmp/tbb-$(USER)"; - }; - name = Release64; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "Fibonacci" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB923208733DC60010E9CD /* Debug */, - A1F593C60B8F0E6E00073279 /* Debug64 */, - 1DEB923308733DC60010E9CD /* Release */, - A1F593C70B8F0E6E00073279 /* Release64 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "fibonacci" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB923608733DC60010E9CD /* Debug */, - A1F593C80B8F0E6E00073279 /* Debug64 */, - 1DEB923708733DC60010E9CD /* Release */, - A1F593C90B8F0E6E00073279 /* Release64 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; -} diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/test_all/index.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/test_all/index.html deleted file mode 100644 index 7850f4a54..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/examples/test_all/index.html +++ /dev/null @@ -1,24 +0,0 @@ - - - -

    Overview

    -This directory contains programs that exercise all the components of Intel® Threading Building Blocks. - -

    Directories

    -
    -
    fibonacci -
    Compute Fibonacci numbers in different ways. -
    - -
    -Up to parent directory -

    -Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

    -Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

    -* Other names and brands may be claimed as the property of others. - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/index.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/index.html deleted file mode 100644 index 0c85b47f8..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/index.html +++ /dev/null @@ -1,23 +0,0 @@ - - - -

    Overview

    -Include files for Intel® Threading Building Blocks (Intel® TBB). - -

    Directories

    -
    -
    tbb -
    Include files for Intel TBB classes and functions. -
    - -
    -Up to parent directory -

    -Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

    -Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

    -* Other names and brands may be claimed as the property of others. - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/serial/tbb/parallel_for.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/serial/tbb/parallel_for.h deleted file mode 100644 index f84f681b4..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/serial/tbb/parallel_for.h +++ /dev/null @@ -1,209 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_SERIAL_parallel_for_H -#define __TBB_SERIAL_parallel_for_H - -#if !TBB_USE_EXCEPTIONS && _MSC_VER - // Suppress "C++ exception handler used, but unwind semantics are not enabled" warning in STL headers - #pragma warning (push) - #pragma warning (disable: 4530) -#endif - -#include -#include // required to construct std exception classes - -#if !TBB_USE_EXCEPTIONS && _MSC_VER - #pragma warning (pop) -#endif - -#include "tbb_annotate.h" - -#ifndef __TBB_NORMAL_EXECUTION -#include "tbb/blocked_range.h" -#include "tbb/partitioner.h" -#endif - -namespace tbb { -namespace serial { -namespace interface6 { - -// parallel_for serial annotated implementation - -template< typename Range, typename Body, typename Partitioner > -class start_for : tbb::internal::no_copy { - Range my_range; - const Body my_body; - typename Partitioner::task_partition_type my_partition; - void execute(); - - //! Constructor for root task. - start_for( const Range& range, const Body& body, Partitioner& partitioner ) : - my_range( range ), - my_body( body ), - my_partition( partitioner ) - { - } - - //! Splitting constructor used to generate children. - /** this becomes left child. Newly constructed object is right child. */ - start_for( start_for& parent_, split ) : - my_range( parent_.my_range, split() ), - my_body( parent_.my_body ), - my_partition( parent_.my_partition, split() ) - { - } - -public: - static void run( const Range& range, const Body& body, Partitioner& partitioner ) { - if( !range.empty() ) { - ANNOTATE_SITE_BEGIN( tbb_parallel_for ); - { - start_for a( range, body, partitioner ); - a.execute(); - } - ANNOTATE_SITE_END( tbb_parallel_for ); - } - } -}; - -template< typename Range, typename Body, typename Partitioner > -void start_for< Range, Body, Partitioner >::execute() { - if( !my_range.is_divisible() || !my_partition.is_divisible() ) { - ANNOTATE_TASK_BEGIN( tbb_parallel_for_range ); - { - my_body( my_range ); - } - ANNOTATE_TASK_END( tbb_parallel_for_range ); - } else { - start_for b( *this, split() ); - this->execute(); // Execute the left interval first to keep the serial order. - b.execute(); // Execute the right interval then. - } -} - -//! Parallel iteration over range with default partitioner. -/** @ingroup algorithms **/ -template -void parallel_for( const Range& range, const Body& body ) { - serial::interface6::start_for::run(range,body,__TBB_DEFAULT_PARTITIONER()); -} - -//! Parallel iteration over range with simple partitioner. -/** @ingroup algorithms **/ -template -void parallel_for( const Range& range, const Body& body, const simple_partitioner& partitioner ) { - serial::interface6::start_for::run(range,body,partitioner); -} - -//! Parallel iteration over range with auto_partitioner. -/** @ingroup algorithms **/ -template -void parallel_for( const Range& range, const Body& body, const auto_partitioner& partitioner ) { - serial::interface6::start_for::run(range,body,partitioner); -} - -//! Parallel iteration over range with affinity_partitioner. -/** @ingroup algorithms **/ -template -void parallel_for( const Range& range, const Body& body, affinity_partitioner& partitioner ) { - serial::interface6::start_for::run(range,body,partitioner); -} - -//! Implementation of parallel iteration over stepped range of integers with explicit step and partitioner (ignored) -template -void parallel_for_impl(Index first, Index last, Index step, const Function& f, Partitioner& ) { - if (step <= 0 ) - throw std::invalid_argument( "nonpositive_step" ); - else if (last > first) { - // Above "else" avoids "potential divide by zero" warning on some platforms - ANNOTATE_SITE_BEGIN( tbb_parallel_for ); - for( Index i = first; i < last; i = i + step ) { - ANNOTATE_TASK_BEGIN( tbb_parallel_for_iteration ); - { f( i ); } - ANNOTATE_TASK_END( tbb_parallel_for_iteration ); - } - ANNOTATE_SITE_END( tbb_parallel_for ); - } -} - -//! Parallel iteration over a range of integers with explicit step and default partitioner -template -void parallel_for(Index first, Index last, Index step, const Function& f) { - parallel_for_impl(first, last, step, f, auto_partitioner()); -} -//! Parallel iteration over a range of integers with explicit step and simple partitioner -template -void parallel_for(Index first, Index last, Index step, const Function& f, const simple_partitioner& p) { - parallel_for_impl(first, last, step, f, p); -} -//! Parallel iteration over a range of integers with explicit step and auto partitioner -template -void parallel_for(Index first, Index last, Index step, const Function& f, const auto_partitioner& p) { - parallel_for_impl(first, last, step, f, p); -} -//! Parallel iteration over a range of integers with explicit step and affinity partitioner -template -void parallel_for(Index first, Index last, Index step, const Function& f, affinity_partitioner& p) { - parallel_for_impl(first, last, step, f, p); -} - -//! Parallel iteration over a range of integers with default step and default partitioner -template -void parallel_for(Index first, Index last, const Function& f) { - parallel_for_impl(first, last, static_cast(1), f, auto_partitioner()); -} -//! Parallel iteration over a range of integers with default step and simple partitioner -template -void parallel_for(Index first, Index last, const Function& f, const simple_partitioner& p) { - parallel_for_impl(first, last, static_cast(1), f, p); -} -//! Parallel iteration over a range of integers with default step and auto partitioner -template - void parallel_for(Index first, Index last, const Function& f, const auto_partitioner& p) { - parallel_for_impl(first, last, static_cast(1), f, p); -} -//! Parallel iteration over a range of integers with default step and affinity_partitioner -template -void parallel_for(Index first, Index last, const Function& f, affinity_partitioner& p) { - parallel_for_impl(first, last, static_cast(1), f, p); -} - -} // namespace interface6 - -using interface6::parallel_for; - -} // namespace serial - -#ifndef __TBB_NORMAL_EXECUTION -using serial::interface6::parallel_for; -#endif - -} // namespace tbb - -#endif /* __TBB_SERIAL_parallel_for_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/serial/tbb/tbb_annotate.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/serial/tbb/tbb_annotate.h deleted file mode 100644 index e2582a819..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/serial/tbb/tbb_annotate.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_annotate_H -#define __TBB_annotate_H - -// Macros used by the Intel(R) Parallel Advisor. -#ifdef __TBB_NORMAL_EXECUTION - #define ANNOTATE_SITE_BEGIN( site ) - #define ANNOTATE_SITE_END( site ) - #define ANNOTATE_TASK_BEGIN( task ) - #define ANNOTATE_TASK_END( task ) - #define ANNOTATE_LOCK_ACQUIRE( lock ) - #define ANNOTATE_LOCK_RELEASE( lock ) -#else - #include -#endif - -#endif /* __TBB_annotate_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/aggregator.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/aggregator.h deleted file mode 100644 index f69743d97..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/aggregator.h +++ /dev/null @@ -1,210 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB__aggregator_H -#define __TBB__aggregator_H - -#if !TBB_PREVIEW_AGGREGATOR -#error Set TBB_PREVIEW_AGGREGATOR before including aggregator.h -#endif - -#include "atomic.h" -#include "tbb_profiling.h" - -namespace tbb { -namespace interface6 { - -using namespace tbb::internal; - -class aggregator_operation { - template friend class aggregator_ext; - uintptr_t status; - aggregator_operation* my_next; -public: - enum aggregator_operation_status { agg_waiting=0, agg_finished }; - aggregator_operation() : status(agg_waiting), my_next(NULL) {} - /// Call start before handling this operation - void start() { call_itt_notify(acquired, &status); } - /// Call finish when done handling this operation - /** The operation will be released to its originating thread, and possibly deleted. */ - void finish() { itt_store_word_with_release(status, uintptr_t(agg_finished)); } - aggregator_operation* next() { return itt_hide_load_word(my_next);} - void set_next(aggregator_operation* n) { itt_hide_store_word(my_next, n); } -}; - -namespace internal { - -class basic_operation_base : public aggregator_operation { - friend class basic_handler; - virtual void apply_body() = 0; -public: - basic_operation_base() : aggregator_operation() {} - virtual ~basic_operation_base() {} -}; - -template -class basic_operation : public basic_operation_base, no_assign { - const Body& my_body; - /*override*/ void apply_body() { my_body(); } -public: - basic_operation(const Body& b) : basic_operation_base(), my_body(b) {} -}; - -class basic_handler { -public: - basic_handler() {} - void operator()(aggregator_operation* op_list) const { - while (op_list) { - // ITT note: &(op_list->status) tag is used to cover accesses to the operation data. - // The executing thread "acquires" the tag (see start()) and then performs - // the associated operation w/o triggering a race condition diagnostics. - // A thread that created the operation is waiting for its status (see execute_impl()), - // so when this thread is done with the operation, it will "release" the tag - // and update the status (see finish()) to give control back to the waiting thread. - basic_operation_base& request = static_cast(*op_list); - // IMPORTANT: need to advance op_list to op_list->next() before calling request.finish() - op_list = op_list->next(); - request.start(); - request.apply_body(); - request.finish(); - } - } -}; - -} // namespace internal - -//! Aggregator base class and expert interface -/** An aggregator for collecting operations coming from multiple sources and executing - them serially on a single thread. */ -template -class aggregator_ext : tbb::internal::no_copy { -public: - aggregator_ext(const handler_type& h) : handler_busy(0), handle_operations(h) { mailbox = NULL; } - - //! EXPERT INTERFACE: Enter a user-made operation into the aggregator's mailbox. - /** Details of user-made operations must be handled by user-provided handler */ - void process(aggregator_operation *op) { execute_impl(*op); } - - protected: - /** Place operation in mailbox, then either handle mailbox or wait for the operation - to be completed by a different thread. */ - void execute_impl(aggregator_operation& op) { - aggregator_operation* res; - - // ITT note: &(op.status) tag is used to cover accesses to this operation. This - // thread has created the operation, and now releases it so that the handler - // thread may handle the associated operation w/o triggering a race condition; - // thus this tag will be acquired just before the operation is handled in the - // handle_operations functor. - call_itt_notify(releasing, &(op.status)); - // insert the operation in the queue - do { - // ITT may flag the following line as a race; it is a false positive: - // This is an atomic read; we don't provide itt_hide_load_word for atomics - op.my_next = res = mailbox; // NOT A RACE - } while (mailbox.compare_and_swap(&op, res) != res); - if (!res) { // first in the list; handle the operations - // ITT note: &mailbox tag covers access to the handler_busy flag, which this - // waiting handler thread will try to set before entering handle_operations. - call_itt_notify(acquired, &mailbox); - start_handle_operations(); - __TBB_ASSERT(op.status, NULL); - } - else { // not first; wait for op to be ready - call_itt_notify(prepare, &(op.status)); - spin_wait_while_eq(op.status, uintptr_t(aggregator_operation::agg_waiting)); - itt_load_word_with_acquire(op.status); - } - } - - - private: - //! An atomically updated list (aka mailbox) of aggregator_operations - atomic mailbox; - - //! Controls thread access to handle_operations - /** Behaves as boolean flag where 0=false, 1=true */ - uintptr_t handler_busy; - - handler_type handle_operations; - - //! Trigger the handling of operations when the handler is free - void start_handle_operations() { - aggregator_operation *pending_operations; - - // ITT note: &handler_busy tag covers access to mailbox as it is passed - // between active and waiting handlers. Below, the waiting handler waits until - // the active handler releases, and the waiting handler acquires &handler_busy as - // it becomes the active_handler. The release point is at the end of this - // function, when all operations in mailbox have been handled by the - // owner of this aggregator. - call_itt_notify(prepare, &handler_busy); - // get handler_busy: only one thread can possibly spin here at a time - spin_wait_until_eq(handler_busy, uintptr_t(0)); - call_itt_notify(acquired, &handler_busy); - // acquire fence not necessary here due to causality rule and surrounding atomics - __TBB_store_with_release(handler_busy, uintptr_t(1)); - - // ITT note: &mailbox tag covers access to the handler_busy flag itself. - // Capturing the state of the mailbox signifies that handler_busy has been - // set and a new active handler will now process that list's operations. - call_itt_notify(releasing, &mailbox); - // grab pending_operations - pending_operations = mailbox.fetch_and_store(NULL); - - // handle all the operations - handle_operations(pending_operations); - - // release the handler - itt_store_word_with_release(handler_busy, uintptr_t(0)); - } -}; - -//! Basic aggregator interface -class aggregator : private aggregator_ext { -public: - aggregator() : aggregator_ext(internal::basic_handler()) {} - //! BASIC INTERFACE: Enter a function for exclusvie execution by the aggregator. - /** The calling thread stores the function object in a basic_operation and - places the operation in the aggregator's mailbox */ - template - void execute(const Body& b) { - internal::basic_operation op(b); - this->execute_impl(op); - } -}; - -} // namespace interface6 - -using interface6::aggregator; -using interface6::aggregator_ext; -using interface6::aggregator_operation; - -} // namespace tbb - -#endif // __TBB__aggregator_H diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/aligned_space.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/aligned_space.h deleted file mode 100644 index e6107c60d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/aligned_space.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_aligned_space_H -#define __TBB_aligned_space_H - -#include "tbb_stddef.h" -#include "tbb_machine.h" - -namespace tbb { - -//! Block of space aligned sufficiently to construct an array T with N elements. -/** The elements are not constructed or destroyed by this class. - @ingroup memory_allocation */ -template -class aligned_space { -private: - typedef __TBB_TypeWithAlignmentAtLeastAsStrict(T) element_type; - element_type array[(sizeof(T)*N+sizeof(element_type)-1)/sizeof(element_type)]; -public: - //! Pointer to beginning of array - T* begin() {return internal::punned_cast(this);} - - //! Pointer to one past last element in array. - T* end() {return begin()+N;} -}; - -} // namespace tbb - -#endif /* __TBB_aligned_space_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/atomic.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/atomic.h deleted file mode 100644 index 014ad0014..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/atomic.h +++ /dev/null @@ -1,558 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_atomic_H -#define __TBB_atomic_H - -#include - -#if _MSC_VER -#define __TBB_LONG_LONG __int64 -#else -#define __TBB_LONG_LONG long long -#endif /* _MSC_VER */ - -#include "tbb_machine.h" - -#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) - // Workaround for overzealous compiler warnings - #pragma warning (push) - #pragma warning (disable: 4244 4267 4512) -#endif - -namespace tbb { - -//! Specifies memory semantics. -enum memory_semantics { - //! Sequential consistency - full_fence, - //! Acquire - acquire, - //! Release - release, - //! No ordering - relaxed -}; - -//! @cond INTERNAL -namespace internal { - -#if __TBB_ATTRIBUTE_ALIGNED_PRESENT - #define __TBB_DECL_ATOMIC_FIELD(t,f,a) t f __attribute__ ((aligned(a))); -#elif __TBB_DECLSPEC_ALIGN_PRESENT - #define __TBB_DECL_ATOMIC_FIELD(t,f,a) __declspec(align(a)) t f; -#else - #error Do not know syntax for forcing alignment. -#endif - -template -struct atomic_rep; // Primary template declared, but never defined. - -template<> -struct atomic_rep<1> { // Specialization - typedef int8_t word; -}; -template<> -struct atomic_rep<2> { // Specialization - typedef int16_t word; -}; -template<> -struct atomic_rep<4> { // Specialization -#if _MSC_VER && !_WIN64 - // Work-around that avoids spurious /Wp64 warnings - typedef intptr_t word; -#else - typedef int32_t word; -#endif -}; -#if __TBB_64BIT_ATOMICS -template<> -struct atomic_rep<8> { // Specialization - typedef int64_t word; -}; -#endif - -template -struct aligned_storage; - -//the specializations are needed to please MSVC syntax of __declspec(align()) which accept _literal_ constants only -#if __TBB_ATOMIC_CTORS - #define ATOMIC_STORAGE_PARTIAL_SPECIALIZATION(S) \ - template \ - struct aligned_storage { \ - __TBB_DECL_ATOMIC_FIELD(value_type,my_value,S) \ - aligned_storage() = default ; \ - constexpr aligned_storage(value_type value):my_value(value){} \ - }; \ - -#else - #define ATOMIC_STORAGE_PARTIAL_SPECIALIZATION(S) \ - template \ - struct aligned_storage { \ - __TBB_DECL_ATOMIC_FIELD(value_type,my_value,S) \ - }; \ - -#endif - -template -struct aligned_storage { - value_type my_value; -#if __TBB_ATOMIC_CTORS - aligned_storage() = default ; - constexpr aligned_storage(value_type value):my_value(value){} -#endif -}; - -ATOMIC_STORAGE_PARTIAL_SPECIALIZATION(2) -ATOMIC_STORAGE_PARTIAL_SPECIALIZATION(4) -#if __TBB_64BIT_ATOMICS -ATOMIC_STORAGE_PARTIAL_SPECIALIZATION(8) -#endif - -template -struct atomic_traits; // Primary template declared, but not defined. - -#define __TBB_DECL_FENCED_ATOMIC_PRIMITIVES(S,M) \ - template<> struct atomic_traits { \ - typedef atomic_rep::word word; \ - inline static word compare_and_swap( volatile void* location, word new_value, word comparand ) { \ - return __TBB_machine_cmpswp##S##M(location,new_value,comparand); \ - } \ - inline static word fetch_and_add( volatile void* location, word addend ) { \ - return __TBB_machine_fetchadd##S##M(location,addend); \ - } \ - inline static word fetch_and_store( volatile void* location, word value ) { \ - return __TBB_machine_fetchstore##S##M(location,value); \ - } \ - }; - -#define __TBB_DECL_ATOMIC_PRIMITIVES(S) \ - template \ - struct atomic_traits { \ - typedef atomic_rep::word word; \ - inline static word compare_and_swap( volatile void* location, word new_value, word comparand ) { \ - return __TBB_machine_cmpswp##S(location,new_value,comparand); \ - } \ - inline static word fetch_and_add( volatile void* location, word addend ) { \ - return __TBB_machine_fetchadd##S(location,addend); \ - } \ - inline static word fetch_and_store( volatile void* location, word value ) { \ - return __TBB_machine_fetchstore##S(location,value); \ - } \ - }; - -template -struct atomic_load_store_traits; // Primary template declaration - -#define __TBB_DECL_ATOMIC_LOAD_STORE_PRIMITIVES(M) \ - template<> struct atomic_load_store_traits { \ - template \ - inline static T load( const volatile T& location ) { \ - return __TBB_load_##M( location ); \ - } \ - template \ - inline static void store( volatile T& location, T value ) { \ - __TBB_store_##M( location, value ); \ - } \ - } - -#if __TBB_USE_FENCED_ATOMICS -__TBB_DECL_FENCED_ATOMIC_PRIMITIVES(1,full_fence) -__TBB_DECL_FENCED_ATOMIC_PRIMITIVES(2,full_fence) -__TBB_DECL_FENCED_ATOMIC_PRIMITIVES(4,full_fence) -__TBB_DECL_FENCED_ATOMIC_PRIMITIVES(1,acquire) -__TBB_DECL_FENCED_ATOMIC_PRIMITIVES(2,acquire) -__TBB_DECL_FENCED_ATOMIC_PRIMITIVES(4,acquire) -__TBB_DECL_FENCED_ATOMIC_PRIMITIVES(1,release) -__TBB_DECL_FENCED_ATOMIC_PRIMITIVES(2,release) -__TBB_DECL_FENCED_ATOMIC_PRIMITIVES(4,release) -__TBB_DECL_FENCED_ATOMIC_PRIMITIVES(1,relaxed) -__TBB_DECL_FENCED_ATOMIC_PRIMITIVES(2,relaxed) -__TBB_DECL_FENCED_ATOMIC_PRIMITIVES(4,relaxed) -#if __TBB_64BIT_ATOMICS -__TBB_DECL_FENCED_ATOMIC_PRIMITIVES(8,full_fence) -__TBB_DECL_FENCED_ATOMIC_PRIMITIVES(8,acquire) -__TBB_DECL_FENCED_ATOMIC_PRIMITIVES(8,release) -__TBB_DECL_FENCED_ATOMIC_PRIMITIVES(8,relaxed) -#endif -#else /* !__TBB_USE_FENCED_ATOMICS */ -__TBB_DECL_ATOMIC_PRIMITIVES(1) -__TBB_DECL_ATOMIC_PRIMITIVES(2) -__TBB_DECL_ATOMIC_PRIMITIVES(4) -#if __TBB_64BIT_ATOMICS -__TBB_DECL_ATOMIC_PRIMITIVES(8) -#endif -#endif /* !__TBB_USE_FENCED_ATOMICS */ - -__TBB_DECL_ATOMIC_LOAD_STORE_PRIMITIVES(full_fence); -__TBB_DECL_ATOMIC_LOAD_STORE_PRIMITIVES(acquire); -__TBB_DECL_ATOMIC_LOAD_STORE_PRIMITIVES(release); -__TBB_DECL_ATOMIC_LOAD_STORE_PRIMITIVES(relaxed); - -//! Additive inverse of 1 for type T. -/** Various compilers issue various warnings if -1 is used with various integer types. - The baroque expression below avoids all the warnings (we hope). */ -#define __TBB_MINUS_ONE(T) (T(T(0)-T(1))) - -//! Base class that provides basic functionality for atomic without fetch_and_add. -/** Works for any type T that has the same size as an integral type, has a trivial constructor/destructor, - and can be copied/compared by memcpy/memcmp. */ -template -struct atomic_impl { -protected: - aligned_storage my_storage; -private: - //TODO: rechecks on recent versions of gcc if union is still the _only_ way to do a conversion without warnings - //! Union type used to convert type T to underlying integral type. - template - union converter { - typedef typename atomic_rep::word bits_type; - converter(){} - converter(value_type a_value) : value(a_value) {} - value_type value; - bits_type bits; - }; - - template - static typename converter::bits_type to_bits(value_t value){ - return converter(value).bits; - } - template - static value_t to_value(typename converter::bits_type bits){ - converter u; - u.bits = bits; - return u.value; - } - - template - union ptr_converter; //Primary template declared, but never defined. - - template - union ptr_converter { - ptr_converter(){} - ptr_converter(value_t* a_value) : value(a_value) {} - value_t* value; - uintptr_t bits; - }; - //TODO: check if making to_bits accepting reference (thus unifying it with to_bits_ref) - //does not hurt performance - template - static typename converter::bits_type & to_bits_ref(value_t& value){ - //TODO: this #ifdef is temporary workaround, as union conversion seems to fail - //on suncc for 64 bit types for 32 bit target - #if !__SUNPRO_CC - return *(typename converter::bits_type*)ptr_converter(&value).bits; - #else - return *(typename converter::bits_type*)(&value); - #endif - } - - -public: - typedef T value_type; - -#if __TBB_ATOMIC_CTORS - atomic_impl() = default ; - constexpr atomic_impl(value_type value):my_storage(value){} -#endif - template - value_type fetch_and_store( value_type value ) { - return to_value( - internal::atomic_traits::fetch_and_store( &my_storage.my_value, to_bits(value) ) - ); - } - - value_type fetch_and_store( value_type value ) { - return fetch_and_store(value); - } - - template - value_type compare_and_swap( value_type value, value_type comparand ) { - return to_value( - internal::atomic_traits::compare_and_swap( &my_storage.my_value, to_bits(value), to_bits(comparand) ) - ); - } - - value_type compare_and_swap( value_type value, value_type comparand ) { - return compare_and_swap(value,comparand); - } - - operator value_type() const volatile { // volatile qualifier here for backwards compatibility - return to_value( - __TBB_load_with_acquire( to_bits_ref(my_storage.my_value) ) - ); - } - - template - value_type load () const { - return to_value( - internal::atomic_load_store_traits::load( to_bits_ref(my_storage.my_value) ) - ); - } - - value_type load () const { - return load(); - } - - template - void store ( value_type value ) { - internal::atomic_load_store_traits::store( to_bits_ref(my_storage.my_value), to_bits(value)); - } - - void store ( value_type value ) { - store( value ); - } - -protected: - value_type store_with_release( value_type rhs ) { - //TODO: unify with store - __TBB_store_with_release( to_bits_ref(my_storage.my_value), to_bits(rhs) ); - return rhs; - } -}; - -//! Base class that provides basic functionality for atomic with fetch_and_add. -/** I is the underlying type. - D is the difference type. - StepType should be char if I is an integral type, and T if I is a T*. */ -template -struct atomic_impl_with_arithmetic: atomic_impl { -public: - typedef I value_type; -#if __TBB_ATOMIC_CTORS - atomic_impl_with_arithmetic() = default ; - constexpr atomic_impl_with_arithmetic(value_type value): atomic_impl(value){} -#endif - template - value_type fetch_and_add( D addend ) { - return value_type(internal::atomic_traits::fetch_and_add( &this->my_storage.my_value, addend*sizeof(StepType) )); - } - - value_type fetch_and_add( D addend ) { - return fetch_and_add(addend); - } - - template - value_type fetch_and_increment() { - return fetch_and_add(1); - } - - value_type fetch_and_increment() { - return fetch_and_add(1); - } - - template - value_type fetch_and_decrement() { - return fetch_and_add(__TBB_MINUS_ONE(D)); - } - - value_type fetch_and_decrement() { - return fetch_and_add(__TBB_MINUS_ONE(D)); - } - -public: - value_type operator+=( D value ) { - return fetch_and_add(value)+value; - } - - value_type operator-=( D value ) { - // Additive inverse of value computed using binary minus, - // instead of unary minus, for sake of avoiding compiler warnings. - return operator+=(D(0)-value); - } - - value_type operator++() { - return fetch_and_add(1)+1; - } - - value_type operator--() { - return fetch_and_add(__TBB_MINUS_ONE(D))-1; - } - - value_type operator++(int) { - return fetch_and_add(1); - } - - value_type operator--(int) { - return fetch_and_add(__TBB_MINUS_ONE(D)); - } -}; - -} /* Internal */ -//! @endcond - -//! Primary template for atomic. -/** See the Reference for details. - @ingroup synchronization */ -template -struct atomic: internal::atomic_impl { -#if __TBB_ATOMIC_CTORS - atomic() = default; - constexpr atomic(T arg): internal::atomic_impl(arg) {} -#endif - T operator=( T rhs ) { - // "this" required here in strict ISO C++ because store_with_release is a dependent name - return this->store_with_release(rhs); - } - atomic& operator=( const atomic& rhs ) {this->store_with_release(rhs); return *this;} -}; - -#if __TBB_ATOMIC_CTORS - #define __TBB_DECL_ATOMIC(T) \ - template<> struct atomic: internal::atomic_impl_with_arithmetic { \ - atomic() = default; \ - constexpr atomic(T arg): internal::atomic_impl_with_arithmetic(arg) {} \ - \ - T operator=( T rhs ) {return store_with_release(rhs);} \ - atomic& operator=( const atomic& rhs ) {store_with_release(rhs); return *this;} \ - }; -#else - #define __TBB_DECL_ATOMIC(T) \ - template<> struct atomic: internal::atomic_impl_with_arithmetic { \ - T operator=( T rhs ) {return store_with_release(rhs);} \ - atomic& operator=( const atomic& rhs ) {store_with_release(rhs); return *this;} \ - }; -#endif - -#if __TBB_64BIT_ATOMICS -//TODO: consider adding non-default (and atomic) copy constructor for 32bit platform -__TBB_DECL_ATOMIC(__TBB_LONG_LONG) -__TBB_DECL_ATOMIC(unsigned __TBB_LONG_LONG) -#else -// test_atomic will verify that sizeof(long long)==8 -#endif -__TBB_DECL_ATOMIC(long) -__TBB_DECL_ATOMIC(unsigned long) - -#if _MSC_VER && !_WIN64 -#if __TBB_ATOMIC_CTORS -/* Special version of __TBB_DECL_ATOMIC that avoids gratuitous warnings from cl /Wp64 option. - It is identical to __TBB_DECL_ATOMIC(unsigned) except that it replaces operator=(T) - with an operator=(U) that explicitly converts the U to a T. Types T and U should be - type synonyms on the platform. Type U should be the wider variant of T from the - perspective of /Wp64. */ -#define __TBB_DECL_ATOMIC_ALT(T,U) \ - template<> struct atomic: internal::atomic_impl_with_arithmetic { \ - atomic() = default ; \ - constexpr atomic(T arg): internal::atomic_impl_with_arithmetic(arg) {} \ - T operator=( U rhs ) {return store_with_release(T(rhs));} \ - atomic& operator=( const atomic& rhs ) {store_with_release(rhs); return *this;} \ - }; -#else -#define __TBB_DECL_ATOMIC_ALT(T,U) \ - template<> struct atomic: internal::atomic_impl_with_arithmetic { \ - T operator=( U rhs ) {return store_with_release(T(rhs));} \ - atomic& operator=( const atomic& rhs ) {store_with_release(rhs); return *this;} \ - }; -#endif -__TBB_DECL_ATOMIC_ALT(unsigned,size_t) -__TBB_DECL_ATOMIC_ALT(int,ptrdiff_t) -#else -__TBB_DECL_ATOMIC(unsigned) -__TBB_DECL_ATOMIC(int) -#endif /* _MSC_VER && !_WIN64 */ - -__TBB_DECL_ATOMIC(unsigned short) -__TBB_DECL_ATOMIC(short) -__TBB_DECL_ATOMIC(char) -__TBB_DECL_ATOMIC(signed char) -__TBB_DECL_ATOMIC(unsigned char) - -#if !_MSC_VER || defined(_NATIVE_WCHAR_T_DEFINED) -__TBB_DECL_ATOMIC(wchar_t) -#endif /* _MSC_VER||!defined(_NATIVE_WCHAR_T_DEFINED) */ - -//! Specialization for atomic with arithmetic and operator->. -template struct atomic: internal::atomic_impl_with_arithmetic { -#if __TBB_ATOMIC_CTORS - atomic() = default ; - constexpr atomic(T* arg): internal::atomic_impl_with_arithmetic(arg) {} -#endif - T* operator=( T* rhs ) { - // "this" required here in strict ISO C++ because store_with_release is a dependent name - return this->store_with_release(rhs); - } - atomic& operator=( const atomic& rhs ) { - this->store_with_release(rhs); return *this; - } - T* operator->() const { - return (*this); - } -}; - -//! Specialization for atomic, for sake of not allowing arithmetic or operator->. -template<> struct atomic: internal::atomic_impl { -#if __TBB_ATOMIC_CTORS - atomic() = default ; - constexpr atomic(void* arg): internal::atomic_impl(arg) {} -#endif - void* operator=( void* rhs ) { - // "this" required here in strict ISO C++ because store_with_release is a dependent name - return this->store_with_release(rhs); - } - atomic& operator=( const atomic& rhs ) { - this->store_with_release(rhs); return *this; - } -}; - -// Helpers to workaround ugly syntax of calling template member function of a -// template class with template argument dependent on template parameters. - -template -T load ( const atomic& a ) { return a.template load(); } - -template -void store ( atomic& a, T value ) { return a.template store(value); } - -namespace interface6{ -//! Make an atomic for use in an initialization (list), as an alternative to zero-initializaton or normal assignment. -template -atomic make_atomic(T t) { - atomic a; - store(a,t); - return a; -} -} -using interface6::make_atomic; - -namespace internal { - -// only to aid in the gradual conversion of ordinary variables to proper atomics -template -inline atomic& as_atomic( T& t ) { - return (atomic&)t; -} -} // namespace tbb::internal - -} // namespace tbb - -#if _MSC_VER && !__INTEL_COMPILER - #pragma warning (pop) -#endif // warnings 4244, 4267 are back - -#endif /* __TBB_atomic_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/blocked_range.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/blocked_range.h deleted file mode 100644 index f2a069d72..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/blocked_range.h +++ /dev/null @@ -1,129 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_blocked_range_H -#define __TBB_blocked_range_H - -#include "tbb_stddef.h" - -namespace tbb { - -/** \page range_req Requirements on range concept - Class \c R implementing the concept of range must define: - - \code R::R( const R& ); \endcode Copy constructor - - \code R::~R(); \endcode Destructor - - \code bool R::is_divisible() const; \endcode True if range can be partitioned into two subranges - - \code bool R::empty() const; \endcode True if range is empty - - \code R::R( R& r, split ); \endcode Split range \c r into two subranges. -**/ - -//! A range over which to iterate. -/** @ingroup algorithms */ -template -class blocked_range { -public: - //! Type of a value - /** Called a const_iterator for sake of algorithms that need to treat a blocked_range - as an STL container. */ - typedef Value const_iterator; - - //! Type for size of a range - typedef std::size_t size_type; - - //! Construct range with default-constructed values for begin and end. - /** Requires that Value have a default constructor. */ - blocked_range() : my_end(), my_begin() {} - - //! Construct range over half-open interval [begin,end), with the given grainsize. - blocked_range( Value begin_, Value end_, size_type grainsize_=1 ) : - my_end(end_), my_begin(begin_), my_grainsize(grainsize_) - { - __TBB_ASSERT( my_grainsize>0, "grainsize must be positive" ); - } - - //! Beginning of range. - const_iterator begin() const {return my_begin;} - - //! One past last value in range. - const_iterator end() const {return my_end;} - - //! Size of the range - /** Unspecified if end() - friend class blocked_range2d; - - template - friend class blocked_range3d; -}; - -} // namespace tbb - -#endif /* __TBB_blocked_range_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/blocked_range2d.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/blocked_range2d.h deleted file mode 100644 index 0738b7e9d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/blocked_range2d.h +++ /dev/null @@ -1,97 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_blocked_range2d_H -#define __TBB_blocked_range2d_H - -#include "tbb_stddef.h" -#include "blocked_range.h" - -namespace tbb { - -//! A 2-dimensional range that models the Range concept. -/** @ingroup algorithms */ -template -class blocked_range2d { -public: - //! Type for size of an iteration range - typedef blocked_range row_range_type; - typedef blocked_range col_range_type; - -private: - row_range_type my_rows; - col_range_type my_cols; - -public: - - blocked_range2d( RowValue row_begin, RowValue row_end, typename row_range_type::size_type row_grainsize, - ColValue col_begin, ColValue col_end, typename col_range_type::size_type col_grainsize ) : - my_rows(row_begin,row_end,row_grainsize), - my_cols(col_begin,col_end,col_grainsize) - { - } - - blocked_range2d( RowValue row_begin, RowValue row_end, - ColValue col_begin, ColValue col_end ) : - my_rows(row_begin,row_end), - my_cols(col_begin,col_end) - { - } - - //! True if range is empty - bool empty() const { - // Yes, it is a logical OR here, not AND. - return my_rows.empty() || my_cols.empty(); - } - - //! True if range is divisible into two pieces. - bool is_divisible() const { - return my_rows.is_divisible() || my_cols.is_divisible(); - } - - blocked_range2d( blocked_range2d& r, split ) : - my_rows(r.my_rows), - my_cols(r.my_cols) - { - if( my_rows.size()*double(my_cols.grainsize()) < my_cols.size()*double(my_rows.grainsize()) ) { - my_cols.my_begin = col_range_type::do_split(r.my_cols); - } else { - my_rows.my_begin = row_range_type::do_split(r.my_rows); - } - } - - //! The rows of the iteration space - const row_range_type& rows() const {return my_rows;} - - //! The columns of the iteration space - const col_range_type& cols() const {return my_cols;} -}; - -} // namespace tbb - -#endif /* __TBB_blocked_range2d_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/blocked_range3d.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/blocked_range3d.h deleted file mode 100644 index e26946763..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/blocked_range3d.h +++ /dev/null @@ -1,116 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_blocked_range3d_H -#define __TBB_blocked_range3d_H - -#include "tbb_stddef.h" -#include "blocked_range.h" - -namespace tbb { - -//! A 3-dimensional range that models the Range concept. -/** @ingroup algorithms */ -template -class blocked_range3d { -public: - //! Type for size of an iteration range - typedef blocked_range page_range_type; - typedef blocked_range row_range_type; - typedef blocked_range col_range_type; - -private: - page_range_type my_pages; - row_range_type my_rows; - col_range_type my_cols; - -public: - - blocked_range3d( PageValue page_begin, PageValue page_end, - RowValue row_begin, RowValue row_end, - ColValue col_begin, ColValue col_end ) : - my_pages(page_begin,page_end), - my_rows(row_begin,row_end), - my_cols(col_begin,col_end) - { - } - - blocked_range3d( PageValue page_begin, PageValue page_end, typename page_range_type::size_type page_grainsize, - RowValue row_begin, RowValue row_end, typename row_range_type::size_type row_grainsize, - ColValue col_begin, ColValue col_end, typename col_range_type::size_type col_grainsize ) : - my_pages(page_begin,page_end,page_grainsize), - my_rows(row_begin,row_end,row_grainsize), - my_cols(col_begin,col_end,col_grainsize) - { - } - - //! True if range is empty - bool empty() const { - // Yes, it is a logical OR here, not AND. - return my_pages.empty() || my_rows.empty() || my_cols.empty(); - } - - //! True if range is divisible into two pieces. - bool is_divisible() const { - return my_pages.is_divisible() || my_rows.is_divisible() || my_cols.is_divisible(); - } - - blocked_range3d( blocked_range3d& r, split ) : - my_pages(r.my_pages), - my_rows(r.my_rows), - my_cols(r.my_cols) - { - if( my_pages.size()*double(my_rows.grainsize()) < my_rows.size()*double(my_pages.grainsize()) ) { - if ( my_rows.size()*double(my_cols.grainsize()) < my_cols.size()*double(my_rows.grainsize()) ) { - my_cols.my_begin = col_range_type::do_split(r.my_cols); - } else { - my_rows.my_begin = row_range_type::do_split(r.my_rows); - } - } else { - if ( my_pages.size()*double(my_cols.grainsize()) < my_cols.size()*double(my_pages.grainsize()) ) { - my_cols.my_begin = col_range_type::do_split(r.my_cols); - } else { - my_pages.my_begin = page_range_type::do_split(r.my_pages); - } - } - } - - //! The pages of the iteration space - const page_range_type& pages() const {return my_pages;} - - //! The rows of the iteration space - const row_range_type& rows() const {return my_rows;} - - //! The columns of the iteration space - const col_range_type& cols() const {return my_cols;} - -}; - -} // namespace tbb - -#endif /* __TBB_blocked_range3d_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/cache_aligned_allocator.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/cache_aligned_allocator.h deleted file mode 100644 index b9fa58d5b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/cache_aligned_allocator.h +++ /dev/null @@ -1,146 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_cache_aligned_allocator_H -#define __TBB_cache_aligned_allocator_H - -#include -#include "tbb_stddef.h" -#if __TBB_CPP11_RVALUE_REF_PRESENT && !__TBB_CPP11_STD_FORWARD_BROKEN - #include // std::forward -#endif - -namespace tbb { - -//! @cond INTERNAL -namespace internal { - //! Cache/sector line size. - /** @ingroup memory_allocation */ - size_t __TBB_EXPORTED_FUNC NFS_GetLineSize(); - - //! Allocate memory on cache/sector line boundary. - /** @ingroup memory_allocation */ - void* __TBB_EXPORTED_FUNC NFS_Allocate( size_t n_element, size_t element_size, void* hint ); - - //! Free memory allocated by NFS_Allocate. - /** Freeing a NULL pointer is allowed, but has no effect. - @ingroup memory_allocation */ - void __TBB_EXPORTED_FUNC NFS_Free( void* ); -} -//! @endcond - -#if _MSC_VER && !defined(__INTEL_COMPILER) - // Workaround for erroneous "unreferenced parameter" warning in method destroy. - #pragma warning (push) - #pragma warning (disable: 4100) -#endif - -//! Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5 -/** The members are ordered the same way they are in section 20.4.1 - of the ISO C++ standard. - @ingroup memory_allocation */ -template -class cache_aligned_allocator { -public: - typedef typename internal::allocator_type::value_type value_type; - typedef value_type* pointer; - typedef const value_type* const_pointer; - typedef value_type& reference; - typedef const value_type& const_reference; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - template struct rebind { - typedef cache_aligned_allocator other; - }; - - cache_aligned_allocator() throw() {} - cache_aligned_allocator( const cache_aligned_allocator& ) throw() {} - template cache_aligned_allocator(const cache_aligned_allocator&) throw() {} - - pointer address(reference x) const {return &x;} - const_pointer address(const_reference x) const {return &x;} - - //! Allocate space for n objects, starting on a cache/sector line. - pointer allocate( size_type n, const void* hint=0 ) { - // The "hint" argument is always ignored in NFS_Allocate thus const_cast shouldn't hurt - return pointer(internal::NFS_Allocate( n, sizeof(value_type), const_cast(hint) )); - } - - //! Free block of memory that starts on a cache line - void deallocate( pointer p, size_type ) { - internal::NFS_Free(p); - } - - //! Largest value for which method allocate might succeed. - size_type max_size() const throw() { - return (~size_t(0)-internal::NFS_MaxLineSize)/sizeof(value_type); - } - - //! Copy-construct value at location pointed to by p. -#if __TBB_ALLOCATOR_CONSTRUCT_VARIADIC - template - void construct(U *p, Args&&... args) - #if __TBB_CPP11_STD_FORWARD_BROKEN - { ::new((void *)p) U((args)...); } - #else - { ::new((void *)p) U(std::forward(args)...); } - #endif -#else // __TBB_ALLOCATOR_CONSTRUCT_VARIADIC - void construct( pointer p, const value_type& value ) {::new((void*)(p)) value_type(value);} -#endif // __TBB_ALLOCATOR_CONSTRUCT_VARIADIC - - //! Destroy value at location pointed to by p. - void destroy( pointer p ) {p->~value_type();} -}; - -#if _MSC_VER && !defined(__INTEL_COMPILER) - #pragma warning (pop) -#endif // warning 4100 is back - -//! Analogous to std::allocator, as defined in ISO C++ Standard, Section 20.4.1 -/** @ingroup memory_allocation */ -template<> -class cache_aligned_allocator { -public: - typedef void* pointer; - typedef const void* const_pointer; - typedef void value_type; - template struct rebind { - typedef cache_aligned_allocator other; - }; -}; - -template -inline bool operator==( const cache_aligned_allocator&, const cache_aligned_allocator& ) {return true;} - -template -inline bool operator!=( const cache_aligned_allocator&, const cache_aligned_allocator& ) {return false;} - -} // namespace tbb - -#endif /* __TBB_cache_aligned_allocator_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/combinable.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/combinable.h deleted file mode 100644 index 31efa7e6d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/combinable.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_combinable_H -#define __TBB_combinable_H - -#include "enumerable_thread_specific.h" -#include "cache_aligned_allocator.h" - -namespace tbb { -/** \name combinable - **/ -//@{ -//! Thread-local storage with optional reduction -/** @ingroup containers */ - template - class combinable { - private: - typedef typename tbb::cache_aligned_allocator my_alloc; - - typedef typename tbb::enumerable_thread_specific my_ets_type; - my_ets_type my_ets; - - public: - - combinable() { } - - template - combinable( finit _finit) : my_ets(_finit) { } - - //! destructor - ~combinable() { - } - - combinable(const combinable& other) : my_ets(other.my_ets) { } - - combinable & operator=( const combinable & other) { my_ets = other.my_ets; return *this; } - - void clear() { my_ets.clear(); } - - T& local() { return my_ets.local(); } - - T& local(bool & exists) { return my_ets.local(exists); } - - // combine_func_t has signature T(T,T) or T(const T&, const T&) - template - T combine(combine_func_t f_combine) { return my_ets.combine(f_combine); } - - // combine_func_t has signature void(T) or void(const T&) - template - void combine_each(combine_func_t f_combine) { my_ets.combine_each(f_combine); } - - }; -} // namespace tbb -#endif /* __TBB_combinable_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/compat/condition_variable b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/compat/condition_variable deleted file mode 100644 index 4727c4935..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/compat/condition_variable +++ /dev/null @@ -1,465 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_condition_variable_H -#define __TBB_condition_variable_H - -#if _WIN32||_WIN64 -#include "../machine/windows_api.h" - -namespace tbb { -namespace interface5 { -namespace internal { -struct condition_variable_using_event -{ - //! Event for blocking waiting threads. - HANDLE event; - //! Protects invariants involving n_waiters, release_count, and epoch. - CRITICAL_SECTION mutex; - //! Number of threads waiting on this condition variable - int n_waiters; - //! Number of threads remaining that should no longer wait on this condition variable. - int release_count; - //! To keep threads from waking up prematurely with earlier signals. - unsigned epoch; -}; -}}} // namespace tbb::interface5::internal - -#ifndef CONDITION_VARIABLE_INIT -typedef void* CONDITION_VARIABLE; -typedef CONDITION_VARIABLE* PCONDITION_VARIABLE; -#endif - -#else /* if not _WIN32||_WIN64 */ -#include // some systems need it for ETIMEDOUT -#include -#if __linux__ -#include -#else /* generic Unix */ -#include -#endif -#endif /* _WIN32||_WIN64 */ - -#include "../tbb_stddef.h" -#include "../mutex.h" -#include "../tbb_thread.h" -#include "../tbb_exception.h" -#include "../tbb_profiling.h" - -namespace tbb { - -namespace interface5 { - -// C++0x standard working draft 30.4.3 -// Lock tag types -struct defer_lock_t { }; //! do not acquire ownership of the mutex -struct try_to_lock_t { }; //! try to acquire ownership of the mutex without blocking -struct adopt_lock_t { }; //! assume the calling thread has already -const defer_lock_t defer_lock = {}; -const try_to_lock_t try_to_lock = {}; -const adopt_lock_t adopt_lock = {}; - -// C++0x standard working draft 30.4.3.1 -//! lock_guard -template -class lock_guard : tbb::internal::no_copy { -public: - //! mutex type - typedef M mutex_type; - - //! Constructor - /** precondition: If mutex_type is not a recursive mutex, the calling thread - does not own the mutex m. */ - explicit lock_guard(mutex_type& m) : pm(m) {m.lock();} - - //! Adopt_lock constructor - /** precondition: the calling thread owns the mutex m. */ - lock_guard(mutex_type& m, adopt_lock_t) : pm(m) {} - - //! Destructor - ~lock_guard() { pm.unlock(); } -private: - mutex_type& pm; -}; - -// C++0x standard working draft 30.4.3.2 -//! unique_lock -template -class unique_lock : tbb::internal::no_copy { - friend class condition_variable; -public: - typedef M mutex_type; - - // 30.4.3.2.1 construct/copy/destroy - // NB: Without constructors that take an r-value reference to a unique_lock, the following constructor is of little use. - //! Constructor - /** postcondition: pm==0 && owns==false */ - unique_lock() : pm(NULL), owns(false) {} - - //! Constructor - /** precondition: if mutex_type is not a recursive mutex, the calling thread - does not own the mutex m. If the precondition is not met, a deadlock occurs. - postcondition: pm==&m and owns==true */ - explicit unique_lock(mutex_type& m) : pm(&m) {m.lock(); owns=true;} - - //! Defer_lock constructor - /** postcondition: pm==&m and owns==false */ - unique_lock(mutex_type& m, defer_lock_t) : pm(&m), owns(false) {} - - //! Try_to_lock constructor - /** precondition: if mutex_type is not a recursive mutex, the calling thread - does not own the mutex m. If the precondition is not met, a deadlock occurs. - postcondition: pm==&m and owns==res where res is the value returned by - the call to m.try_lock(). */ - unique_lock(mutex_type& m, try_to_lock_t) : pm(&m) {owns = m.try_lock();} - - //! Adopt_lock constructor - /** precondition: the calling thread owns the mutex. If it does not, mutex->unlock() would fail. - postcondition: pm==&m and owns==true */ - unique_lock(mutex_type& m, adopt_lock_t) : pm(&m), owns(true) {} - - //! Timed unique_lock acquisition. - /** To avoid requiring support for namespace chrono, this method deviates from the working draft in that - it uses tbb::tick_count::interval_t to specify the time duration. */ - unique_lock(mutex_type& m, const tick_count::interval_t &i) : pm(&m) {owns = try_lock_for( i );} - - //! Destructor - ~unique_lock() { if( owns ) pm->unlock(); } - - // 30.4.3.2.2 locking - //! Lock the mutex and own it. - void lock() { - if( pm ) { - if( !owns ) { - pm->lock(); - owns = true; - } else - throw_exception_v4( tbb::internal::eid_possible_deadlock ); - } else - throw_exception_v4( tbb::internal::eid_operation_not_permitted ); - __TBB_ASSERT( owns, NULL ); - } - - //! Try to lock the mutex. - /** If successful, note that this lock owns it. Otherwise, set it false. */ - bool try_lock() { - if( pm ) { - if( !owns ) - owns = pm->try_lock(); - else - throw_exception_v4( tbb::internal::eid_possible_deadlock ); - } else - throw_exception_v4( tbb::internal::eid_operation_not_permitted ); - return owns; - } - - //! Try to lock the mutex. - bool try_lock_for( const tick_count::interval_t &i ); - - //! Unlock the mutex - /** And note that this lock no longer owns it. */ - void unlock() { - if( owns ) { - pm->unlock(); - owns = false; - } else - throw_exception_v4( tbb::internal::eid_operation_not_permitted ); - __TBB_ASSERT( !owns, NULL ); - } - - // 30.4.3.2.3 modifiers - //! Swap the two unique locks - void swap(unique_lock& u) { - mutex_type* t_pm = u.pm; u.pm = pm; pm = t_pm; - bool t_owns = u.owns; u.owns = owns; owns = t_owns; - } - - //! Release control over the mutex. - mutex_type* release() { - mutex_type* o_pm = pm; - pm = NULL; - owns = false; - return o_pm; - } - - // 30.4.3.2.4 observers - //! Does this lock own the mutex? - bool owns_lock() const { return owns; } - - // TODO: Un-comment 'explicit' when the last non-C++0x compiler support is dropped - //! Does this lock own the mutex? - /*explicit*/ operator bool() const { return owns; } - - //! Return the mutex that this lock currently has. - mutex_type* mutex() const { return pm; } - -private: - mutex_type* pm; - bool owns; -}; - -template -bool unique_lock::try_lock_for( const tick_count::interval_t &i) -{ - const int unique_lock_tick = 100; /* microseconds; 0.1 milliseconds */ - // the smallest wait-time is 0.1 milliseconds. - bool res = pm->try_lock(); - int duration_in_micro; - if( !res && (duration_in_micro=int(i.seconds()*1e6))>unique_lock_tick ) { - tick_count::interval_t i_100( double(unique_lock_tick)/1e6 /* seconds */); // 100 microseconds = 0.1*10E-3 - do { - this_tbb_thread::sleep(i_100); // sleep for 100 micro seconds - duration_in_micro -= unique_lock_tick; - res = pm->try_lock(); - } while( !res && duration_in_micro>unique_lock_tick ); - } - return (owns=res); -} - -//! Swap the two unique locks that have the mutexes of same type -template -void swap(unique_lock& x, unique_lock& y) { x.swap( y ); } - -namespace internal { - -#if _WIN32||_WIN64 -union condvar_impl_t { - condition_variable_using_event cv_event; - CONDITION_VARIABLE cv_native; -}; -void __TBB_EXPORTED_FUNC internal_initialize_condition_variable( condvar_impl_t& cv ); -void __TBB_EXPORTED_FUNC internal_destroy_condition_variable( condvar_impl_t& cv ); -void __TBB_EXPORTED_FUNC internal_condition_variable_notify_one( condvar_impl_t& cv ); -void __TBB_EXPORTED_FUNC internal_condition_variable_notify_all( condvar_impl_t& cv ); -bool __TBB_EXPORTED_FUNC internal_condition_variable_wait( condvar_impl_t& cv, mutex* mtx, const tick_count::interval_t* i = NULL ); - -#else /* if !(_WIN32||_WIN64), i.e., POSIX threads */ -typedef pthread_cond_t condvar_impl_t; -#endif - -} // namespace internal - -//! cv_status -/** C++0x standard working draft 30.5 */ -enum cv_status { no_timeout, timeout }; - -//! condition variable -/** C++0x standard working draft 30.5.1 - @ingroup synchronization */ -class condition_variable : tbb::internal::no_copy { -public: - //! Constructor - condition_variable() { -#if _WIN32||_WIN64 - internal_initialize_condition_variable( my_cv ); -#else - pthread_cond_init( &my_cv, NULL ); -#endif - } - - //! Destructor - ~condition_variable() { - //precondition: There shall be no thread blocked on *this. -#if _WIN32||_WIN64 - internal_destroy_condition_variable( my_cv ); -#else - pthread_cond_destroy( &my_cv ); -#endif - } - - //! Notify one thread and wake it up - void notify_one() { -#if _WIN32||_WIN64 - internal_condition_variable_notify_one( my_cv ); -#else - pthread_cond_signal( &my_cv ); -#endif - } - - //! Notify all threads - void notify_all() { -#if _WIN32||_WIN64 - internal_condition_variable_notify_all( my_cv ); -#else - pthread_cond_broadcast( &my_cv ); -#endif - } - - //! Release the mutex associated with the lock and wait on this condition variable - void wait(unique_lock& lock); - - //! Wait on this condition variable while pred is false - template - void wait(unique_lock& lock, Predicate pred) { - while( !pred() ) - wait( lock ); - } - - //! Timed version of wait() - cv_status wait_for(unique_lock& lock, const tick_count::interval_t &i ); - - //! Timed version of the predicated wait - /** The loop terminates when pred() returns true or when the time duration specified by rel_time (i) has elapsed. */ - template - bool wait_for(unique_lock& lock, const tick_count::interval_t &i, Predicate pred) - { - while( !pred() ) { - cv_status st = wait_for( lock, i ); - if( st==timeout ) - return pred(); - } - return true; - } - - // C++0x standard working draft. 30.2.3 - typedef internal::condvar_impl_t* native_handle_type; - - native_handle_type native_handle() { return (native_handle_type) &my_cv; } - -private: - internal::condvar_impl_t my_cv; -}; - - -#if _WIN32||_WIN64 -inline void condition_variable::wait( unique_lock& lock ) -{ - __TBB_ASSERT( lock.owns, NULL ); - lock.owns = false; - if( !internal_condition_variable_wait( my_cv, lock.mutex() ) ) { - int ec = GetLastError(); - // on Windows 7, SleepConditionVariableCS() may return ERROR_TIMEOUT while the doc says it returns WAIT_TIMEOUT - __TBB_ASSERT_EX( ec!=WAIT_TIMEOUT&&ec!=ERROR_TIMEOUT, NULL ); - lock.owns = true; - throw_exception_v4( tbb::internal::eid_condvar_wait_failed ); - } - lock.owns = true; -} - -inline cv_status condition_variable::wait_for( unique_lock& lock, const tick_count::interval_t& i ) -{ - cv_status rc = no_timeout; - __TBB_ASSERT( lock.owns, NULL ); - lock.owns = false; - // condvar_wait could be SleepConditionVariableCS (or SleepConditionVariableSRW) or our own pre-vista cond_var_wait() - if( !internal_condition_variable_wait( my_cv, lock.mutex(), &i ) ) { - int ec = GetLastError(); - if( ec==WAIT_TIMEOUT || ec==ERROR_TIMEOUT ) - rc = timeout; - else { - lock.owns = true; - throw_exception_v4( tbb::internal::eid_condvar_wait_failed ); - } - } - lock.owns = true; - return rc; -} - -#else /* !(_WIN32||_WIN64) */ -inline void condition_variable::wait( unique_lock& lock ) -{ - __TBB_ASSERT( lock.owns, NULL ); - lock.owns = false; - if( pthread_cond_wait( &my_cv, lock.mutex()->native_handle() ) ) { - lock.owns = true; - throw_exception_v4( tbb::internal::eid_condvar_wait_failed ); - } - // upon successful return, the mutex has been locked and is owned by the calling thread. - lock.owns = true; -} - -inline cv_status condition_variable::wait_for( unique_lock& lock, const tick_count::interval_t& i ) -{ -#if __linux__ - struct timespec req; - double sec = i.seconds(); - clock_gettime( CLOCK_REALTIME, &req ); - req.tv_sec += static_cast(sec); - req.tv_nsec += static_cast( (sec - static_cast(sec))*1e9 ); -#else /* generic Unix */ - struct timeval tv; - struct timespec req; - double sec = i.seconds(); - int status = gettimeofday(&tv, NULL); - __TBB_ASSERT_EX( status==0, "gettimeofday failed" ); - req.tv_sec = tv.tv_sec + static_cast(sec); - req.tv_nsec = tv.tv_usec*1000 + static_cast( (sec - static_cast(sec))*1e9 ); -#endif /*(choice of OS) */ - if( req.tv_nsec>=1e9 ) { - req.tv_sec += 1; - req.tv_nsec -= static_cast(1e9); - } - __TBB_ASSERT( 0<=req.tv_nsec && req.tv_nsec<1e9, NULL ); - - int ec; - cv_status rc = no_timeout; - __TBB_ASSERT( lock.owns, NULL ); - lock.owns = false; - if( ( ec=pthread_cond_timedwait( &my_cv, lock.mutex()->native_handle(), &req ) ) ) { - if( ec==ETIMEDOUT ) - rc = timeout; - else { - __TBB_ASSERT( lock.try_lock()==false, NULL ); - lock.owns = true; - throw_exception_v4( tbb::internal::eid_condvar_wait_failed ); - } - } - lock.owns = true; - return rc; -} -#endif /* !(_WIN32||_WIN64) */ - -} // namespace interface5 - -__TBB_DEFINE_PROFILING_SET_NAME(interface5::condition_variable) - -} // namespace tbb - -#if TBB_IMPLEMENT_CPP0X - -namespace std { - -using tbb::interface5::defer_lock_t; -using tbb::interface5::try_to_lock_t; -using tbb::interface5::adopt_lock_t; -using tbb::interface5::defer_lock; -using tbb::interface5::try_to_lock; -using tbb::interface5::adopt_lock; -using tbb::interface5::lock_guard; -using tbb::interface5::unique_lock; -using tbb::interface5::swap; /* this is for void std::swap(unique_lock&,unique_lock&) */ -using tbb::interface5::condition_variable; -using tbb::interface5::cv_status; -using tbb::interface5::timeout; -using tbb::interface5::no_timeout; - -} // namespace std - -#endif /* TBB_IMPLEMENT_CPP0X */ - -#endif /* __TBB_condition_variable_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/compat/ppl.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/compat/ppl.h deleted file mode 100644 index d01783c15..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/compat/ppl.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_compat_ppl_H -#define __TBB_compat_ppl_H - -#include "../task_group.h" -#include "../parallel_invoke.h" -#include "../parallel_for_each.h" -#include "../parallel_for.h" -#include "../tbb_exception.h" -#include "../critical_section.h" -#include "../reader_writer_lock.h" -#include "../combinable.h" - -namespace Concurrency { - -#if __TBB_TASK_GROUP_CONTEXT - using tbb::task_handle; - using tbb::task_group_status; - using tbb::task_group; - using tbb::structured_task_group; - using tbb::invalid_multiple_scheduling; - using tbb::missing_wait; - using tbb::make_task; - - using tbb::not_complete; - using tbb::complete; - using tbb::canceled; - - using tbb::is_current_task_group_canceling; -#endif /* __TBB_TASK_GROUP_CONTEXT */ - - using tbb::parallel_invoke; - using tbb::strict_ppl::parallel_for; - using tbb::parallel_for_each; - using tbb::critical_section; - using tbb::reader_writer_lock; - using tbb::combinable; - - using tbb::improper_lock; - -} // namespace Concurrency - -#endif /* __TBB_compat_ppl_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/compat/thread b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/compat/thread deleted file mode 100644 index 04cfda451..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/compat/thread +++ /dev/null @@ -1,54 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_thread_H -#define __TBB_thread_H - -#include "../tbb_thread.h" - -#if TBB_IMPLEMENT_CPP0X - -namespace std { - -typedef tbb::tbb_thread thread; - -namespace this_thread { - using tbb::this_tbb_thread::get_id; - using tbb::this_tbb_thread::yield; - - inline void sleep_for(const tbb::tick_count::interval_t& rel_time) { - tbb::internal::thread_sleep_v3( rel_time ); - } - -} - -} - -#endif /* TBB_IMPLEMENT_CPP0X */ - -#endif /* __TBB_thread_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/compat/tuple b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/compat/tuple deleted file mode 100644 index 30b708531..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/compat/tuple +++ /dev/null @@ -1,496 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_tuple_H -#define __TBB_tuple_H - -#include -#include "../tbb_stddef.h" - -// build preprocessor variables for varying number of arguments -// Need the leading comma so the empty __TBB_T_PACK will not cause a syntax error. -#if __TBB_VARIADIC_MAX <= 5 -#define __TBB_T_PACK -#define __TBB_U_PACK -#define __TBB_TYPENAME_T_PACK -#define __TBB_TYPENAME_U_PACK -#define __TBB_NULL_TYPE_PACK -#define __TBB_REF_T_PARAM_PACK -#define __TBB_CONST_REF_T_PARAM_PACK -#define __TBB_T_PARAM_LIST_PACK -#define __TBB_CONST_NULL_REF_PACK -// -#elif __TBB_VARIADIC_MAX == 6 -#define __TBB_T_PACK ,__T5 -#define __TBB_U_PACK ,__U5 -#define __TBB_TYPENAME_T_PACK , typename __T5 -#define __TBB_TYPENAME_U_PACK , typename __U5 -#define __TBB_NULL_TYPE_PACK , null_type -#define __TBB_REF_T_PARAM_PACK ,__T5& t5 -#define __TBB_CONST_REF_T_PARAM_PACK ,const __T5& t5 -#define __TBB_T_PARAM_LIST_PACK ,t5 -#define __TBB_CONST_NULL_REF_PACK , const null_type& -// -#elif __TBB_VARIADIC_MAX == 7 -#define __TBB_T_PACK ,__T5, __T6 -#define __TBB_U_PACK ,__U5, __U6 -#define __TBB_TYPENAME_T_PACK , typename __T5 , typename __T6 -#define __TBB_TYPENAME_U_PACK , typename __U5 , typename __U6 -#define __TBB_NULL_TYPE_PACK , null_type, null_type -#define __TBB_REF_T_PARAM_PACK ,__T5& t5, __T6& t6 -#define __TBB_CONST_REF_T_PARAM_PACK ,const __T5& t5, const __T6& t6 -#define __TBB_T_PARAM_LIST_PACK ,t5 ,t6 -#define __TBB_CONST_NULL_REF_PACK , const null_type&, const null_type& -// -#elif __TBB_VARIADIC_MAX == 8 -#define __TBB_T_PACK ,__T5, __T6, __T7 -#define __TBB_U_PACK ,__U5, __U6, __U7 -#define __TBB_TYPENAME_T_PACK , typename __T5 , typename __T6, typename __T7 -#define __TBB_TYPENAME_U_PACK , typename __U5 , typename __U6, typename __U7 -#define __TBB_NULL_TYPE_PACK , null_type, null_type, null_type -#define __TBB_REF_T_PARAM_PACK ,__T5& t5, __T6& t6, __T7& t7 -#define __TBB_CONST_REF_T_PARAM_PACK , const __T5& t5, const __T6& t6, const __T7& t7 -#define __TBB_T_PARAM_LIST_PACK ,t5 ,t6 ,t7 -#define __TBB_CONST_NULL_REF_PACK , const null_type&, const null_type&, const null_type& -// -#elif __TBB_VARIADIC_MAX == 9 -#define __TBB_T_PACK ,__T5, __T6, __T7, __T8 -#define __TBB_U_PACK ,__U5, __U6, __U7, __U8 -#define __TBB_TYPENAME_T_PACK , typename __T5, typename __T6, typename __T7, typename __T8 -#define __TBB_TYPENAME_U_PACK , typename __U5, typename __U6, typename __U7, typename __U8 -#define __TBB_NULL_TYPE_PACK , null_type, null_type, null_type, null_type -#define __TBB_REF_T_PARAM_PACK ,__T5& t5, __T6& t6, __T7& t7, __T8& t8 -#define __TBB_CONST_REF_T_PARAM_PACK , const __T5& t5, const __T6& t6, const __T7& t7, const __T8& t8 -#define __TBB_T_PARAM_LIST_PACK ,t5 ,t6 ,t7 ,t8 -#define __TBB_CONST_NULL_REF_PACK , const null_type&, const null_type&, const null_type&, const null_type& -// -#elif __TBB_VARIADIC_MAX >= 10 -#define __TBB_T_PACK ,__T5, __T6, __T7, __T8, __T9 -#define __TBB_U_PACK ,__U5, __U6, __U7, __U8, __U9 -#define __TBB_TYPENAME_T_PACK , typename __T5, typename __T6, typename __T7, typename __T8, typename __T9 -#define __TBB_TYPENAME_U_PACK , typename __U5, typename __U6, typename __U7, typename __U8, typename __U9 -#define __TBB_NULL_TYPE_PACK , null_type, null_type, null_type, null_type, null_type -#define __TBB_REF_T_PARAM_PACK ,__T5& t5, __T6& t6, __T7& t7, __T8& t8, __T9& t9 -#define __TBB_CONST_REF_T_PARAM_PACK , const __T5& t5, const __T6& t6, const __T7& t7, const __T8& t8, const __T9& t9 -#define __TBB_T_PARAM_LIST_PACK ,t5 ,t6 ,t7 ,t8 ,t9 -#define __TBB_CONST_NULL_REF_PACK , const null_type&, const null_type&, const null_type&, const null_type&, const null_type& -#endif - - - -namespace tbb { -namespace interface5 { - -namespace internal { -struct null_type { }; -} -using internal::null_type; - -// tuple forward declaration -template = 6 -, typename __T5=null_type -#if __TBB_VARIADIC_MAX >= 7 -, typename __T6=null_type -#if __TBB_VARIADIC_MAX >= 8 -, typename __T7=null_type -#if __TBB_VARIADIC_MAX >= 9 -, typename __T8=null_type -#if __TBB_VARIADIC_MAX >= 10 -, typename __T9=null_type -#endif -#endif -#endif -#endif -#endif -> -class tuple; - -namespace internal { - -// const null_type temp -inline const null_type cnull() { return null_type(); } - -// cons forward declaration -template struct cons; - -// type of a component of the cons -template -struct component { - typedef typename __T::tail_type next; - typedef typename component<__N-1,next>::type type; -}; - -template -struct component<0,__T> { - typedef typename __T::head_type type; -}; - -template<> -struct component<0,null_type> { - typedef null_type type; -}; - -// const version of component - -template -struct component<__N, const __T> -{ - typedef typename __T::tail_type next; - typedef const typename component<__N-1,next>::type type; -}; - -template -struct component<0, const __T> -{ - typedef const typename __T::head_type type; -}; - - -// helper class for getting components of cons -template< int __N> -struct get_helper { -template -inline static typename component<__N, cons<__HT,__TT> >::type& get(cons<__HT,__TT>& ti) { - return get_helper<__N-1>::get(ti.tail); -} -template -inline static typename component<__N, cons<__HT,__TT> >::type const& get(const cons<__HT,__TT>& ti) { - return get_helper<__N-1>::get(ti.tail); -} -}; - -template<> -struct get_helper<0> { -template -inline static typename component<0, cons<__HT,__TT> >::type& get(cons<__HT,__TT>& ti) { - return ti.head; -} -template -inline static typename component<0, cons<__HT,__TT> >::type const& get(const cons<__HT,__TT>& ti) { - return ti.head; -} -}; - -// traits adaptor -template -struct tuple_traits { - typedef cons <__T0, typename tuple_traits<__T1, __T2, __T3, __T4 __TBB_T_PACK , null_type>::U > U; -}; - -template -struct tuple_traits<__T0, null_type, null_type, null_type, null_type __TBB_NULL_TYPE_PACK > { - typedef cons<__T0, null_type> U; -}; - -template<> -struct tuple_traits { - typedef null_type U; -}; - - -// core cons defs -template -struct cons{ - - typedef __HT head_type; - typedef __TT tail_type; - - head_type head; - tail_type tail; - - static const int length = 1 + tail_type::length; - - // default constructors - explicit cons() : head(), tail() { } - - // non-default constructors - cons(head_type& h, const tail_type& t) : head(h), tail(t) { } - - template - cons(const __T0& t0, const __T1& t1, const __T2& t2, const __T3& t3, const __T4& t4 __TBB_CONST_REF_T_PARAM_PACK) : - head(t0), tail(t1, t2, t3, t4 __TBB_T_PARAM_LIST_PACK, cnull()) { } - - template - cons(__T0& t0, __T1& t1, __T2& t2, __T3& t3, __T4& t4 __TBB_REF_T_PARAM_PACK) : - head(t0), tail(t1, t2, t3, t4 __TBB_T_PARAM_LIST_PACK , cnull()) { } - - template - cons(const cons<__HT1,__TT1>& other) : head(other.head), tail(other.tail) { } - - cons& operator=(const cons& other) { head = other.head; tail = other.tail; return *this; } - - friend bool operator==(const cons& me, const cons& other) { - return me.head == other.head && me.tail == other.tail; - } - friend bool operator<(const cons& me, const cons& other) { - return me.head < other.head || (!(other.head < me.head) && me.tail < other.tail); - } - friend bool operator>(const cons& me, const cons& other) { return other=(const cons& me, const cons& other) { return !(meother); } - - template - friend bool operator==(const cons<__HT,__TT>& me, const cons<__HT1,__TT1>& other) { - return me.head == other.head && me.tail == other.tail; - } - - template - friend bool operator<(const cons<__HT,__TT>& me, const cons<__HT1,__TT1>& other) { - return me.head < other.head || (!(other.head < me.head) && me.tail < other.tail); - } - - template - friend bool operator>(const cons<__HT,__TT>& me, const cons<__HT1,__TT1>& other) { return other - friend bool operator!=(const cons<__HT,__TT>& me, const cons<__HT1,__TT1>& other) { return !(me==other); } - - template - friend bool operator>=(const cons<__HT,__TT>& me, const cons<__HT1,__TT1>& other) { return !(me - friend bool operator<=(const cons<__HT,__TT>& me, const cons<__HT1,__TT1>& other) { return !(me>other); } - - -}; // cons - - -template -struct cons<__HT,null_type> { - - typedef __HT head_type; - typedef null_type tail_type; - - head_type head; - - static const int length = 1; - - // default constructor - cons() : head() { /*std::cout << "default constructor 1\n";*/ } - - cons(const null_type&, const null_type&, const null_type&, const null_type&, const null_type& __TBB_CONST_NULL_REF_PACK) : head() { /*std::cout << "default constructor 2\n";*/ } - - // non-default constructor - template - cons(__T1& t1, const null_type&, const null_type&, const null_type&, const null_type& __TBB_CONST_NULL_REF_PACK) : head(t1) { /*std::cout << "non-default a1, t1== " << t1 << "\n";*/} - - cons(head_type& h, const null_type& = null_type() ) : head(h) { } - cons(const head_type& t0, const null_type&, const null_type&, const null_type&, const null_type& __TBB_CONST_NULL_REF_PACK) : head(t0) { } - - // converting constructor - template - cons(__HT1 h1, const null_type&, const null_type&, const null_type&, const null_type& __TBB_CONST_NULL_REF_PACK) : head(h1) { } - - // copy constructor - template - cons( const cons<__HT1, null_type>& other) : head(other.head) { } - - // assignment operator - cons& operator=(const cons& other) { head = other.head; return *this; } - - friend bool operator==(const cons& me, const cons& other) { return me.head == other.head; } - friend bool operator<(const cons& me, const cons& other) { return me.head < other.head; } - friend bool operator>(const cons& me, const cons& other) { return otherother); } - friend bool operator>=(const cons& me, const cons& other) {return !(me - friend bool operator==(const cons<__HT,null_type>& me, const cons<__HT1,null_type>& other) { - return me.head == other.head; - } - - template - friend bool operator<(const cons<__HT,null_type>& me, const cons<__HT1,null_type>& other) { - return me.head < other.head; - } - - template - friend bool operator>(const cons<__HT,null_type>& me, const cons<__HT1,null_type>& other) { return other - friend bool operator!=(const cons<__HT,null_type>& me, const cons<__HT1,null_type>& other) { return !(me==other); } - - template - friend bool operator<=(const cons<__HT,null_type>& me, const cons<__HT1,null_type>& other) { return !(me>other); } - - template - friend bool operator>=(const cons<__HT,null_type>& me, const cons<__HT1,null_type>& other) { return !(me -struct cons { typedef null_type tail_type; static const int length = 0; }; - -// wrapper for default constructor -template -inline const __T wrap_dcons(__T*) { return __T(); } - -} // namespace internal - -// tuple definition -template -class tuple : public internal::tuple_traits<__T0, __T1, __T2, __T3, __T4 __TBB_T_PACK >::U { - // friends - template friend class tuple_size; - template friend struct tuple_element; - - // stl components - typedef tuple<__T0,__T1,__T2,__T3,__T4 __TBB_T_PACK > value_type; - typedef value_type *pointer; - typedef const value_type *const_pointer; - typedef value_type &reference; - typedef const value_type &const_reference; - typedef size_t size_type; - - typedef typename internal::tuple_traits<__T0,__T1,__T2,__T3, __T4 __TBB_T_PACK >::U my_cons; - -public: - tuple(const __T0& t0=internal::wrap_dcons((__T0*)NULL) - ,const __T1& t1=internal::wrap_dcons((__T1*)NULL) - ,const __T2& t2=internal::wrap_dcons((__T2*)NULL) - ,const __T3& t3=internal::wrap_dcons((__T3*)NULL) - ,const __T4& t4=internal::wrap_dcons((__T4*)NULL) -#if __TBB_VARIADIC_MAX >= 6 - ,const __T5& t5=internal::wrap_dcons((__T5*)NULL) -#if __TBB_VARIADIC_MAX >= 7 - ,const __T6& t6=internal::wrap_dcons((__T6*)NULL) -#if __TBB_VARIADIC_MAX >= 8 - ,const __T7& t7=internal::wrap_dcons((__T7*)NULL) -#if __TBB_VARIADIC_MAX >= 9 - ,const __T8& t8=internal::wrap_dcons((__T8*)NULL) -#if __TBB_VARIADIC_MAX >= 10 - ,const __T9& t9=internal::wrap_dcons((__T9*)NULL) -#endif -#endif -#endif -#endif -#endif - ) : - my_cons(t0,t1,t2,t3,t4 __TBB_T_PARAM_LIST_PACK) { } - - template - struct internal_tuple_element { - typedef typename internal::component<__N,my_cons>::type type; - }; - - template - typename internal_tuple_element<__N>::type& get() { return internal::get_helper<__N>::get(*this); } - - template - typename internal_tuple_element<__N>::type const& get() const { return internal::get_helper<__N>::get(*this); } - - template - tuple& operator=(const internal::cons<__U1,__U2>& other) { - my_cons::operator=(other); - return *this; - } - - template - tuple& operator=(const std::pair<__U1,__U2>& other) { - // __TBB_ASSERT(tuple_size::value == 2, "Invalid size for pair to tuple assignment"); - this->head = other.first; - this->tail.head = other.second; - return *this; - } - - friend bool operator==(const tuple& me, const tuple& other) {return static_cast(me)==(other);} - friend bool operator<(const tuple& me, const tuple& other) {return static_cast(me)<(other);} - friend bool operator>(const tuple& me, const tuple& other) {return static_cast(me)>(other);} - friend bool operator!=(const tuple& me, const tuple& other) {return static_cast(me)!=(other);} - friend bool operator>=(const tuple& me, const tuple& other) {return static_cast(me)>=(other);} - friend bool operator<=(const tuple& me, const tuple& other) {return static_cast(me)<=(other);} - -}; // tuple - -// empty tuple -template<> -class tuple : public null_type { -}; - -// helper classes - -template < typename __T> -class tuple_size { -public: - static const size_t value = 1 + tuple_size::value; -}; - -template <> -class tuple_size > { -public: - static const size_t value = 0; -}; - -template <> -class tuple_size { -public: - static const size_t value = 0; -}; - -template -struct tuple_element { - typedef typename internal::component<__N, typename __T::my_cons>::type type; -}; - -template -inline static typename tuple_element<__N,tuple<__T0,__T1,__T2,__T3,__T4 __TBB_T_PACK > >::type& - get(tuple<__T0,__T1,__T2,__T3,__T4 __TBB_T_PACK >& t) { return internal::get_helper<__N>::get(t); } - -template -inline static typename tuple_element<__N,tuple<__T0,__T1,__T2,__T3,__T4 __TBB_T_PACK > >::type const& - get(const tuple<__T0,__T1,__T2,__T3,__T4 __TBB_T_PACK >& t) { return internal::get_helper<__N>::get(t); } - -} // interface5 -} // tbb - -#if !__TBB_CPP11_TUPLE_PRESENT -namespace tbb { - namespace flow { - using tbb::interface5::tuple; - using tbb::interface5::tuple_size; - using tbb::interface5::tuple_element; - using tbb::interface5::get; - } -} -#endif - -#undef __TBB_T_PACK -#undef __TBB_U_PACK -#undef __TBB_TYPENAME_T_PACK -#undef __TBB_TYPENAME_U_PACK -#undef __TBB_NULL_TYPE_PACK -#undef __TBB_REF_T_PARAM_PACK -#undef __TBB_CONST_REF_T_PARAM_PACK -#undef __TBB_T_PARAM_LIST_PACK -#undef __TBB_CONST_NULL_REF_PACK - -#endif /* __TBB_tuple_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/concurrent_hash_map.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/concurrent_hash_map.h deleted file mode 100644 index eb4586177..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/concurrent_hash_map.h +++ /dev/null @@ -1,1363 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_concurrent_hash_map_H -#define __TBB_concurrent_hash_map_H - -#include "tbb_stddef.h" - -#if !TBB_USE_EXCEPTIONS && _MSC_VER - // Suppress "C++ exception handler used, but unwind semantics are not enabled" warning in STL headers - #pragma warning (push) - #pragma warning (disable: 4530) -#endif - -#include -#include // Need std::pair -#include // Need std::memset - -#if !TBB_USE_EXCEPTIONS && _MSC_VER - #pragma warning (pop) -#endif - -#include "cache_aligned_allocator.h" -#include "tbb_allocator.h" -#include "spin_rw_mutex.h" -#include "atomic.h" -#include "aligned_space.h" -#include "tbb_exception.h" -#include "tbb_profiling.h" -#include "internal/_concurrent_unordered_impl.h" // Need tbb_hasher -#if __TBB_INITIALIZER_LISTS_PRESENT -#include -#endif -#if TBB_USE_PERFORMANCE_WARNINGS || __TBB_STATISTICS -#include -#endif -#if __TBB_STATISTICS -#include -#endif - -namespace tbb { - -//! hash_compare that is default argument for concurrent_hash_map -template -struct tbb_hash_compare { - static size_t hash( const Key& a ) { return tbb_hasher(a); } - static bool equal( const Key& a, const Key& b ) { return a == b; } -}; - -namespace interface5 { - - template, typename A = tbb_allocator > > - class concurrent_hash_map; - - //! @cond INTERNAL - namespace internal { - using namespace tbb::internal; - - - //! Type of a hash code. - typedef size_t hashcode_t; - //! Node base type - struct hash_map_node_base : tbb::internal::no_copy { - //! Mutex type - typedef spin_rw_mutex mutex_t; - //! Scoped lock type for mutex - typedef mutex_t::scoped_lock scoped_t; - //! Next node in chain - hash_map_node_base *next; - mutex_t mutex; - }; - //! Incompleteness flag value - static hash_map_node_base *const rehash_req = reinterpret_cast(size_t(3)); - //! Rehashed empty bucket flag - static hash_map_node_base *const empty_rehashed = reinterpret_cast(size_t(0)); - //! base class of concurrent_hash_map - class hash_map_base { - public: - //! Size type - typedef size_t size_type; - //! Type of a hash code. - typedef size_t hashcode_t; - //! Segment index type - typedef size_t segment_index_t; - //! Node base type - typedef hash_map_node_base node_base; - //! Bucket type - struct bucket : tbb::internal::no_copy { - //! Mutex type for buckets - typedef spin_rw_mutex mutex_t; - //! Scoped lock type for mutex - typedef mutex_t::scoped_lock scoped_t; - mutex_t mutex; - node_base *node_list; - }; - //! Count of segments in the first block - static size_type const embedded_block = 1; - //! Count of segments in the first block - static size_type const embedded_buckets = 1< my_mask; - //! Segment pointers table. Also prevents false sharing between my_mask and my_size - segments_table_t my_table; - //! Size of container in stored items - atomic my_size; // It must be in separate cache line from my_mask due to performance effects - //! Zero segment - bucket my_embedded_segment[embedded_buckets]; -#if __TBB_STATISTICS - atomic my_info_resizes; // concurrent ones - mutable atomic my_info_restarts; // race collisions - atomic my_info_rehashes; // invocations of rehash_bucket -#endif - //! Constructor - hash_map_base() { - std::memset( this, 0, pointers_per_table*sizeof(segment_ptr_t) // 32*4=128 or 64*8=512 - + sizeof(my_size) + sizeof(my_mask) // 4+4 or 8+8 - + embedded_buckets*sizeof(bucket) ); // n*8 or n*16 - for( size_type i = 0; i < embedded_block; i++ ) // fill the table - my_table[i] = my_embedded_segment + segment_base(i); - my_mask = embedded_buckets - 1; - __TBB_ASSERT( embedded_block <= first_block, "The first block number must include embedded blocks"); -#if __TBB_STATISTICS - my_info_resizes = 0; // concurrent ones - my_info_restarts = 0; // race collisions - my_info_rehashes = 0; // invocations of rehash_bucket -#endif - } - - //! @return segment index of given index in the array - static segment_index_t segment_index_of( size_type index ) { - return segment_index_t( __TBB_Log2( index|1 ) ); - } - - //! @return the first array index of given segment - static segment_index_t segment_base( segment_index_t k ) { - return (segment_index_t(1)<(ptr) > uintptr_t(63); - } - - //! Initialize buckets - static void init_buckets( segment_ptr_t ptr, size_type sz, bool is_initial ) { - if( is_initial ) std::memset(ptr, 0, sz*sizeof(bucket) ); - else for(size_type i = 0; i < sz; i++, ptr++) { - *reinterpret_cast(&ptr->mutex) = 0; - ptr->node_list = rehash_req; - } - } - - //! Add node @arg n to bucket @arg b - static void add_to_bucket( bucket *b, node_base *n ) { - __TBB_ASSERT(b->node_list != rehash_req, NULL); - n->next = b->node_list; - b->node_list = n; // its under lock and flag is set - } - - //! Exception safety helper - struct enable_segment_failsafe : tbb::internal::no_copy { - segment_ptr_t *my_segment_ptr; - enable_segment_failsafe(segments_table_t &table, segment_index_t k) : my_segment_ptr(&table[k]) {} - ~enable_segment_failsafe() { - if( my_segment_ptr ) *my_segment_ptr = 0; // indicate no allocation in progress - } - }; - - //! Enable segment - void enable_segment( segment_index_t k, bool is_initial = false ) { - __TBB_ASSERT( k, "Zero segment must be embedded" ); - enable_segment_failsafe watchdog( my_table, k ); - cache_aligned_allocator alloc; - size_type sz; - __TBB_ASSERT( !is_valid(my_table[k]), "Wrong concurrent assignment"); - if( k >= first_block ) { - sz = segment_size( k ); - segment_ptr_t ptr = alloc.allocate( sz ); - init_buckets( ptr, sz, is_initial ); - itt_hide_store_word( my_table[k], ptr ); - sz <<= 1;// double it to get entire capacity of the container - } else { // the first block - __TBB_ASSERT( k == embedded_block, "Wrong segment index" ); - sz = segment_size( first_block ); - segment_ptr_t ptr = alloc.allocate( sz - embedded_buckets ); - init_buckets( ptr, sz - embedded_buckets, is_initial ); - ptr -= segment_base(embedded_block); - for(segment_index_t i = embedded_block; i < first_block; i++) // calc the offsets - itt_hide_store_word( my_table[i], ptr + segment_base(i) ); - } - itt_store_word_with_release( my_mask, sz-1 ); - watchdog.my_segment_ptr = 0; - } - - //! Get bucket by (masked) hashcode - bucket *get_bucket( hashcode_t h ) const throw() { // TODO: add throw() everywhere? - segment_index_t s = segment_index_of( h ); - h -= segment_base(s); - segment_ptr_t seg = my_table[s]; - __TBB_ASSERT( is_valid(seg), "hashcode must be cut by valid mask for allocated segments" ); - return &seg[h]; - } - - // internal serial rehashing helper - void mark_rehashed_levels( hashcode_t h ) throw () { - segment_index_t s = segment_index_of( h ); - while( segment_ptr_t seg = my_table[++s] ) - if( seg[h].node_list == rehash_req ) { - seg[h].node_list = empty_rehashed; - mark_rehashed_levels( h + ((hashcode_t)1<node_list) != rehash_req ) - { -#if __TBB_STATISTICS - my_info_restarts++; // race collisions -#endif - return true; - } - } - return false; - } - - //! Insert a node and check for load factor. @return segment index to enable. - segment_index_t insert_new_node( bucket *b, node_base *n, hashcode_t mask ) { - size_type sz = ++my_size; // prefix form is to enforce allocation after the first item inserted - add_to_bucket( b, n ); - // check load factor - if( sz >= mask ) { // TODO: add custom load_factor - segment_index_t new_seg = __TBB_Log2( mask+1 ); //optimized segment_index_of - __TBB_ASSERT( is_valid(my_table[new_seg-1]), "new allocations must not publish new mask until segment has allocated"); - static const segment_ptr_t is_allocating = (segment_ptr_t)2; - if( !itt_hide_load_word(my_table[new_seg]) - && as_atomic(my_table[new_seg]).compare_and_swap(is_allocating, NULL) == NULL ) - return new_seg; // The value must be processed - } - return 0; - } - - //! Prepare enough segments for number of buckets - void reserve(size_type buckets) { - if( !buckets-- ) return; - bool is_initial = !my_size; - for( size_type m = my_mask; buckets > m; m = my_mask ) - enable_segment( segment_index_of( m+1 ), is_initial ); - } - //! Swap hash_map_bases - void internal_swap(hash_map_base &table) { - using std::swap; - swap(this->my_mask, table.my_mask); - swap(this->my_size, table.my_size); - for(size_type i = 0; i < embedded_buckets; i++) - swap(this->my_embedded_segment[i].node_list, table.my_embedded_segment[i].node_list); - for(size_type i = embedded_block; i < pointers_per_table; i++) - swap(this->my_table[i], table.my_table[i]); - } - }; - - template - class hash_map_range; - - //! Meets requirements of a forward iterator for STL */ - /** Value is either the T or const T type of the container. - @ingroup containers */ - template - class hash_map_iterator - : public std::iterator - { - typedef Container map_type; - typedef typename Container::node node; - typedef hash_map_base::node_base node_base; - typedef hash_map_base::bucket bucket; - - template - friend bool operator==( const hash_map_iterator& i, const hash_map_iterator& j ); - - template - friend bool operator!=( const hash_map_iterator& i, const hash_map_iterator& j ); - - template - friend ptrdiff_t operator-( const hash_map_iterator& i, const hash_map_iterator& j ); - - template - friend class hash_map_iterator; - - template - friend class hash_map_range; - - void advance_to_next_bucket() { // TODO?: refactor to iterator_base class - size_t k = my_index+1; - while( my_bucket && k <= my_map->my_mask ) { - // Following test uses 2's-complement wizardry - if( k& (k-2) ) // not the beginning of a segment - ++my_bucket; - else my_bucket = my_map->get_bucket( k ); - my_node = static_cast( my_bucket->node_list ); - if( hash_map_base::is_valid(my_node) ) { - my_index = k; return; - } - ++k; - } - my_bucket = 0; my_node = 0; my_index = k; // the end - } -#if !defined(_MSC_VER) || defined(__INTEL_COMPILER) - template - friend class interface5::concurrent_hash_map; -#else - public: // workaround -#endif - //! concurrent_hash_map over which we are iterating. - const Container *my_map; - - //! Index in hash table for current item - size_t my_index; - - //! Pointer to bucket - const bucket *my_bucket; - - //! Pointer to node that has current item - node *my_node; - - hash_map_iterator( const Container &map, size_t index, const bucket *b, node_base *n ); - - public: - //! Construct undefined iterator - hash_map_iterator() {} - hash_map_iterator( const hash_map_iterator &other ) : - my_map(other.my_map), - my_index(other.my_index), - my_bucket(other.my_bucket), - my_node(other.my_node) - {} - Value& operator*() const { - __TBB_ASSERT( hash_map_base::is_valid(my_node), "iterator uninitialized or at end of container?" ); - return my_node->item; - } - Value* operator->() const {return &operator*();} - hash_map_iterator& operator++(); - - //! Post increment - hash_map_iterator operator++(int) { - hash_map_iterator old(*this); - operator++(); - return old; - } - }; - - template - hash_map_iterator::hash_map_iterator( const Container &map, size_t index, const bucket *b, node_base *n ) : - my_map(&map), - my_index(index), - my_bucket(b), - my_node( static_cast(n) ) - { - if( b && !hash_map_base::is_valid(n) ) - advance_to_next_bucket(); - } - - template - hash_map_iterator& hash_map_iterator::operator++() { - my_node = static_cast( my_node->next ); - if( !my_node ) advance_to_next_bucket(); - return *this; - } - - template - bool operator==( const hash_map_iterator& i, const hash_map_iterator& j ) { - return i.my_node == j.my_node && i.my_map == j.my_map; - } - - template - bool operator!=( const hash_map_iterator& i, const hash_map_iterator& j ) { - return i.my_node != j.my_node || i.my_map != j.my_map; - } - - //! Range class used with concurrent_hash_map - /** @ingroup containers */ - template - class hash_map_range { - typedef typename Iterator::map_type map_type; - Iterator my_begin; - Iterator my_end; - mutable Iterator my_midpoint; - size_t my_grainsize; - //! Set my_midpoint to point approximately half way between my_begin and my_end. - void set_midpoint() const; - template friend class hash_map_range; - public: - //! Type for size of a range - typedef std::size_t size_type; - typedef typename Iterator::value_type value_type; - typedef typename Iterator::reference reference; - typedef typename Iterator::difference_type difference_type; - typedef Iterator iterator; - - //! True if range is empty. - bool empty() const {return my_begin==my_end;} - - //! True if range can be partitioned into two subranges. - bool is_divisible() const { - return my_midpoint!=my_end; - } - //! Split range. - hash_map_range( hash_map_range& r, split ) : - my_end(r.my_end), - my_grainsize(r.my_grainsize) - { - r.my_end = my_begin = r.my_midpoint; - __TBB_ASSERT( !empty(), "Splitting despite the range is not divisible" ); - __TBB_ASSERT( !r.empty(), "Splitting despite the range is not divisible" ); - set_midpoint(); - r.set_midpoint(); - } - //! type conversion - template - hash_map_range( hash_map_range& r) : - my_begin(r.my_begin), - my_end(r.my_end), - my_midpoint(r.my_midpoint), - my_grainsize(r.my_grainsize) - {} -#if TBB_DEPRECATED - //! Init range with iterators and grainsize specified - hash_map_range( const Iterator& begin_, const Iterator& end_, size_type grainsize_ = 1 ) : - my_begin(begin_), - my_end(end_), - my_grainsize(grainsize_) - { - if(!my_end.my_index && !my_end.my_bucket) // end - my_end.my_index = my_end.my_map->my_mask + 1; - set_midpoint(); - __TBB_ASSERT( grainsize_>0, "grainsize must be positive" ); - } -#endif - //! Init range with container and grainsize specified - hash_map_range( const map_type &map, size_type grainsize_ = 1 ) : - my_begin( Iterator( map, 0, map.my_embedded_segment, map.my_embedded_segment->node_list ) ), - my_end( Iterator( map, map.my_mask + 1, 0, 0 ) ), - my_grainsize( grainsize_ ) - { - __TBB_ASSERT( grainsize_>0, "grainsize must be positive" ); - set_midpoint(); - } - const Iterator& begin() const {return my_begin;} - const Iterator& end() const {return my_end;} - //! The grain size for this range. - size_type grainsize() const {return my_grainsize;} - }; - - template - void hash_map_range::set_midpoint() const { - // Split by groups of nodes - size_t m = my_end.my_index-my_begin.my_index; - if( m > my_grainsize ) { - m = my_begin.my_index + m/2u; - hash_map_base::bucket *b = my_begin.my_map->get_bucket(m); - my_midpoint = Iterator(*my_begin.my_map,m,b,b->node_list); - } else { - my_midpoint = my_end; - } - __TBB_ASSERT( my_begin.my_index <= my_midpoint.my_index, - "my_begin is after my_midpoint" ); - __TBB_ASSERT( my_midpoint.my_index <= my_end.my_index, - "my_midpoint is after my_end" ); - __TBB_ASSERT( my_begin != my_midpoint || my_begin == my_end, - "[my_begin, my_midpoint) range should not be empty" ); - } - - } // internal -//! @endcond - -//! Unordered map from Key to T. -/** concurrent_hash_map is associative container with concurrent access. - -@par Compatibility - The class meets all Container Requirements from C++ Standard (See ISO/IEC 14882:2003(E), clause 23.1). - -@par Exception Safety - - Hash function is not permitted to throw an exception. User-defined types Key and T are forbidden from throwing an exception in destructors. - - If exception happens during insert() operations, it has no effect (unless exception raised by HashCompare::hash() function during grow_segment). - - If exception happens during operator=() operation, the container can have a part of source items, and methods size() and empty() can return wrong results. - -@par Changes since TBB 2.1 - - Replaced internal algorithm and data structure. Patent is pending. - - Added buckets number argument for constructor - -@par Changes since TBB 2.0 - - Fixed exception-safety - - Added template argument for allocator - - Added allocator argument in constructors - - Added constructor from a range of iterators - - Added several new overloaded insert() methods - - Added get_allocator() - - Added swap() - - Added count() - - Added overloaded erase(accessor &) and erase(const_accessor&) - - Added equal_range() [const] - - Added [const_]pointer, [const_]reference, and allocator_type types - - Added global functions: operator==(), operator!=(), and swap() - - @ingroup containers */ -template -class concurrent_hash_map : protected internal::hash_map_base { - template - friend class internal::hash_map_iterator; - - template - friend class internal::hash_map_range; - -public: - typedef Key key_type; - typedef T mapped_type; - typedef std::pair value_type; - typedef hash_map_base::size_type size_type; - typedef ptrdiff_t difference_type; - typedef value_type *pointer; - typedef const value_type *const_pointer; - typedef value_type &reference; - typedef const value_type &const_reference; - typedef internal::hash_map_iterator iterator; - typedef internal::hash_map_iterator const_iterator; - typedef internal::hash_map_range range_type; - typedef internal::hash_map_range const_range_type; - typedef Allocator allocator_type; - -protected: - friend class const_accessor; - struct node; - typedef typename Allocator::template rebind::other node_allocator_type; - node_allocator_type my_allocator; - HashCompare my_hash_compare; - - struct node : public node_base { - value_type item; - node( const Key &key ) : item(key, T()) {} - node( const Key &key, const T &t ) : item(key, t) {} - // exception-safe allocation, see C++ Standard 2003, clause 5.3.4p17 - void *operator new( size_t /*size*/, node_allocator_type &a ) { - void *ptr = a.allocate(1); - if(!ptr) - tbb::internal::throw_exception(tbb::internal::eid_bad_alloc); - return ptr; - } - // match placement-new form above to be called if exception thrown in constructor - void operator delete( void *ptr, node_allocator_type &a ) { a.deallocate(static_cast(ptr),1); } - }; - - void delete_node( node_base *n ) { - my_allocator.destroy( static_cast(n) ); - my_allocator.deallocate( static_cast(n), 1); - } - - node *search_bucket( const key_type &key, bucket *b ) const { - node *n = static_cast( b->node_list ); - while( is_valid(n) && !my_hash_compare.equal(key, n->item.first) ) - n = static_cast( n->next ); - __TBB_ASSERT(n != internal::rehash_req, "Search can be executed only for rehashed bucket"); - return n; - } - - //! bucket accessor is to find, rehash, acquire a lock, and access a bucket - class bucket_accessor : public bucket::scoped_t { - bucket *my_b; - public: - bucket_accessor( concurrent_hash_map *base, const hashcode_t h, bool writer = false ) { acquire( base, h, writer ); } - //! find a bucket by masked hashcode, optionally rehash, and acquire the lock - inline void acquire( concurrent_hash_map *base, const hashcode_t h, bool writer = false ) { - my_b = base->get_bucket( h ); - // TODO: actually, notification is unnecessary here, just hiding double-check - if( itt_load_word_with_acquire(my_b->node_list) == internal::rehash_req - && try_acquire( my_b->mutex, /*write=*/true ) ) - { - if( my_b->node_list == internal::rehash_req ) base->rehash_bucket( my_b, h ); //recursive rehashing - } - else bucket::scoped_t::acquire( my_b->mutex, writer ); - __TBB_ASSERT( my_b->node_list != internal::rehash_req, NULL); - } - //! check whether bucket is locked for write - bool is_writer() { return bucket::scoped_t::is_writer; } - //! get bucket pointer - bucket *operator() () { return my_b; } - }; - - // TODO refactor to hash_base - void rehash_bucket( bucket *b_new, const hashcode_t h ) { - __TBB_ASSERT( *(intptr_t*)(&b_new->mutex), "b_new must be locked (for write)"); - __TBB_ASSERT( h > 1, "The lowermost buckets can't be rehashed" ); - __TBB_store_with_release(b_new->node_list, internal::empty_rehashed); // mark rehashed - hashcode_t mask = ( 1u<<__TBB_Log2( h ) ) - 1; // get parent mask from the topmost bit -#if __TBB_STATISTICS - my_info_rehashes++; // invocations of rehash_bucket -#endif - - bucket_accessor b_old( this, h & mask ); - - mask = (mask<<1) | 1; // get full mask for new bucket - __TBB_ASSERT( (mask&(mask+1))==0 && (h & mask) == h, NULL ); - restart: - for( node_base **p = &b_old()->node_list, *n = __TBB_load_with_acquire(*p); is_valid(n); n = *p ) { - hashcode_t c = my_hash_compare.hash( static_cast(n)->item.first ); -#if TBB_USE_ASSERT - hashcode_t bmask = h & (mask>>1); - bmask = bmask==0? 1 : ( 1u<<(__TBB_Log2( bmask )+1 ) ) - 1; // minimal mask of parent bucket - __TBB_ASSERT( (c & bmask) == (h & bmask), "hash() function changed for key in table" ); -#endif - if( (c & mask) == h ) { - if( !b_old.is_writer() ) - if( !b_old.upgrade_to_writer() ) { - goto restart; // node ptr can be invalid due to concurrent erase - } - *p = n->next; // exclude from b_old - add_to_bucket( b_new, n ); - } else p = &n->next; // iterate to next item - } - } - -public: - - class accessor; - //! Combines data access, locking, and garbage collection. - class const_accessor : private node::scoped_t /*which derived from no_copy*/ { - friend class concurrent_hash_map; - friend class accessor; - public: - //! Type of value - typedef const typename concurrent_hash_map::value_type value_type; - - //! True if result is empty. - bool empty() const {return !my_node;} - - //! Set to null - void release() { - if( my_node ) { - node::scoped_t::release(); - my_node = 0; - } - } - - //! Return reference to associated value in hash table. - const_reference operator*() const { - __TBB_ASSERT( my_node, "attempt to dereference empty accessor" ); - return my_node->item; - } - - //! Return pointer to associated value in hash table. - const_pointer operator->() const { - return &operator*(); - } - - //! Create empty result - const_accessor() : my_node(NULL) {} - - //! Destroy result after releasing the underlying reference. - ~const_accessor() { - my_node = NULL; // scoped lock's release() is called in its destructor - } - protected: - bool is_writer() { return node::scoped_t::is_writer; } - node *my_node; - hashcode_t my_hash; - }; - - //! Allows write access to elements and combines data access, locking, and garbage collection. - class accessor: public const_accessor { - public: - //! Type of value - typedef typename concurrent_hash_map::value_type value_type; - - //! Return reference to associated value in hash table. - reference operator*() const { - __TBB_ASSERT( this->my_node, "attempt to dereference empty accessor" ); - return this->my_node->item; - } - - //! Return pointer to associated value in hash table. - pointer operator->() const { - return &operator*(); - } - }; - - //! Construct empty table. - concurrent_hash_map(const allocator_type &a = allocator_type()) - : internal::hash_map_base(), my_allocator(a) - {} - - //! Construct empty table with n preallocated buckets. This number serves also as initial concurrency level. - concurrent_hash_map(size_type n, const allocator_type &a = allocator_type()) - : my_allocator(a) - { - reserve( n ); - } - - //! Copy constructor - concurrent_hash_map( const concurrent_hash_map& table, const allocator_type &a = allocator_type()) - : internal::hash_map_base(), my_allocator(a) - { - internal_copy(table); - } - - //! Construction with copying iteration range and given allocator instance - template - concurrent_hash_map(I first, I last, const allocator_type &a = allocator_type()) - : my_allocator(a) - { - reserve( std::distance(first, last) ); // TODO: load_factor? - internal_copy(first, last); - } - -#if __TBB_INITIALIZER_LISTS_PRESENT - //! Construct empty table with n preallocated buckets. This number serves also as initial concurrency level. - concurrent_hash_map(const std::initializer_list &il, const allocator_type &a = allocator_type()) - : my_allocator(a) - { - reserve(il.size()); - internal_copy(il.begin(), il.end()); - } - -#endif //__TBB_INITIALIZER_LISTS_PRESENT - - //! Assignment - concurrent_hash_map& operator=( const concurrent_hash_map& table ) { - if( this!=&table ) { - clear(); - internal_copy(table); - } - return *this; - } - -#if __TBB_INITIALIZER_LISTS_PRESENT - //! Assignment - concurrent_hash_map& operator=( const std::initializer_list &il ) { - clear(); - reserve(il.size()); - internal_copy(il.begin(), il.end()); - return *this; - } -#endif //__TBB_INITIALIZER_LISTS_PRESENT - - - //! Rehashes and optionally resizes the whole table. - /** Useful to optimize performance before or after concurrent operations. - Also enables using of find() and count() concurrent methods in serial context. */ - void rehash(size_type n = 0); - - //! Clear table - void clear(); - - //! Clear table and destroy it. - ~concurrent_hash_map() { clear(); } - - //------------------------------------------------------------------------ - // Parallel algorithm support - //------------------------------------------------------------------------ - range_type range( size_type grainsize=1 ) { - return range_type( *this, grainsize ); - } - const_range_type range( size_type grainsize=1 ) const { - return const_range_type( *this, grainsize ); - } - - //------------------------------------------------------------------------ - // STL support - not thread-safe methods - //------------------------------------------------------------------------ - iterator begin() {return iterator(*this,0,my_embedded_segment,my_embedded_segment->node_list);} - iterator end() {return iterator(*this,0,0,0);} - const_iterator begin() const {return const_iterator(*this,0,my_embedded_segment,my_embedded_segment->node_list);} - const_iterator end() const {return const_iterator(*this,0,0,0);} - std::pair equal_range( const Key& key ) { return internal_equal_range(key, end()); } - std::pair equal_range( const Key& key ) const { return internal_equal_range(key, end()); } - - //! Number of items in table. - size_type size() const { return my_size; } - - //! True if size()==0. - bool empty() const { return my_size == 0; } - - //! Upper bound on size. - size_type max_size() const {return (~size_type(0))/sizeof(node);} - - //! Returns the current number of buckets - size_type bucket_count() const { return my_mask+1; } - - //! return allocator object - allocator_type get_allocator() const { return this->my_allocator; } - - //! swap two instances. Iterators are invalidated - void swap(concurrent_hash_map &table); - - //------------------------------------------------------------------------ - // concurrent map operations - //------------------------------------------------------------------------ - - //! Return count of items (0 or 1) - size_type count( const Key &key ) const { - return const_cast(this)->lookup(/*insert*/false, key, NULL, NULL, /*write=*/false ); - } - - //! Find item and acquire a read lock on the item. - /** Return true if item is found, false otherwise. */ - bool find( const_accessor &result, const Key &key ) const { - result.release(); - return const_cast(this)->lookup(/*insert*/false, key, NULL, &result, /*write=*/false ); - } - - //! Find item and acquire a write lock on the item. - /** Return true if item is found, false otherwise. */ - bool find( accessor &result, const Key &key ) { - result.release(); - return lookup(/*insert*/false, key, NULL, &result, /*write=*/true ); - } - - //! Insert item (if not already present) and acquire a read lock on the item. - /** Returns true if item is new. */ - bool insert( const_accessor &result, const Key &key ) { - result.release(); - return lookup(/*insert*/true, key, NULL, &result, /*write=*/false ); - } - - //! Insert item (if not already present) and acquire a write lock on the item. - /** Returns true if item is new. */ - bool insert( accessor &result, const Key &key ) { - result.release(); - return lookup(/*insert*/true, key, NULL, &result, /*write=*/true ); - } - - //! Insert item by copying if there is no such key present already and acquire a read lock on the item. - /** Returns true if item is new. */ - bool insert( const_accessor &result, const value_type &value ) { - result.release(); - return lookup(/*insert*/true, value.first, &value.second, &result, /*write=*/false ); - } - - //! Insert item by copying if there is no such key present already and acquire a write lock on the item. - /** Returns true if item is new. */ - bool insert( accessor &result, const value_type &value ) { - result.release(); - return lookup(/*insert*/true, value.first, &value.second, &result, /*write=*/true ); - } - - //! Insert item by copying if there is no such key present already - /** Returns true if item is inserted. */ - bool insert( const value_type &value ) { - return lookup(/*insert*/true, value.first, &value.second, NULL, /*write=*/false ); - } - - //! Insert range [first, last) - template - void insert(I first, I last) { - for(; first != last; ++first) - insert( *first ); - } - - //! Erase item. - /** Return true if item was erased by particularly this call. */ - bool erase( const Key& key ); - - //! Erase item by const_accessor. - /** Return true if item was erased by particularly this call. */ - bool erase( const_accessor& item_accessor ) { - return exclude( item_accessor ); - } - - //! Erase item by accessor. - /** Return true if item was erased by particularly this call. */ - bool erase( accessor& item_accessor ) { - return exclude( item_accessor ); - } - -protected: - //! Insert or find item and optionally acquire a lock on the item. - bool lookup( bool op_insert, const Key &key, const T *t, const_accessor *result, bool write ); - - //! delete item by accessor - bool exclude( const_accessor &item_accessor ); - - //! Returns an iterator for an item defined by the key, or for the next item after it (if upper==true) - template - std::pair internal_equal_range( const Key& key, I end ) const; - - //! Copy "source" to *this, where *this must start out empty. - void internal_copy( const concurrent_hash_map& source ); - - template - void internal_copy(I first, I last); - - //! Fast find when no concurrent erasure is used. For internal use inside TBB only! - /** Return pointer to item with given key, or NULL if no such item exists. - Must not be called concurrently with erasure operations. */ - const_pointer internal_fast_find( const Key& key ) const { - hashcode_t h = my_hash_compare.hash( key ); - hashcode_t m = (hashcode_t) itt_load_word_with_acquire( my_mask ); - node *n; - restart: - __TBB_ASSERT((m&(m+1))==0, "data structure is invalid"); - bucket *b = get_bucket( h & m ); - // TODO: actually, notification is unnecessary here, just hiding double-check - if( itt_load_word_with_acquire(b->node_list) == internal::rehash_req ) - { - bucket::scoped_t lock; - if( lock.try_acquire( b->mutex, /*write=*/true ) ) { - if( b->node_list == internal::rehash_req) - const_cast(this)->rehash_bucket( b, h & m ); //recursive rehashing - } - else lock.acquire( b->mutex, /*write=*/false ); - __TBB_ASSERT(b->node_list!=internal::rehash_req,NULL); - } - n = search_bucket( key, b ); - if( n ) - return &n->item; - else if( check_mask_race( h, m ) ) - goto restart; - return 0; - } -}; - -#if _MSC_VER && !defined(__INTEL_COMPILER) - // Suppress "conditional expression is constant" warning. - #pragma warning( push ) - #pragma warning( disable: 4127 ) -#endif - -template -bool concurrent_hash_map::lookup( bool op_insert, const Key &key, const T *t, const_accessor *result, bool write ) { - __TBB_ASSERT( !result || !result->my_node, NULL ); - bool return_value; - hashcode_t const h = my_hash_compare.hash( key ); - hashcode_t m = (hashcode_t) itt_load_word_with_acquire( my_mask ); - segment_index_t grow_segment = 0; - node *n, *tmp_n = 0; - restart: - {//lock scope - __TBB_ASSERT((m&(m+1))==0, "data structure is invalid"); - return_value = false; - // get bucket - bucket_accessor b( this, h & m ); - - // find a node - n = search_bucket( key, b() ); - if( op_insert ) { - // [opt] insert a key - if( !n ) { - if( !tmp_n ) { - if(t) tmp_n = new( my_allocator ) node(key, *t); - else tmp_n = new( my_allocator ) node(key); - } - if( !b.is_writer() && !b.upgrade_to_writer() ) { // TODO: improved insertion - // Rerun search_list, in case another thread inserted the item during the upgrade. - n = search_bucket( key, b() ); - if( is_valid(n) ) { // unfortunately, it did - b.downgrade_to_reader(); - goto exists; - } - } - if( check_mask_race(h, m) ) - goto restart; // b.release() is done in ~b(). - // insert and set flag to grow the container - grow_segment = insert_new_node( b(), n = tmp_n, m ); - tmp_n = 0; - return_value = true; - } - } else { // find or count - if( !n ) { - if( check_mask_race( h, m ) ) - goto restart; // b.release() is done in ~b(). TODO: replace by continue - return false; - } - return_value = true; - } - exists: - if( !result ) goto check_growth; - // TODO: the following seems as generic/regular operation - // acquire the item - if( !result->try_acquire( n->mutex, write ) ) { - for( tbb::internal::atomic_backoff backoff(true);; ) { - if( result->try_acquire( n->mutex, write ) ) break; - if( !backoff.bounded_pause() ) { - // the wait takes really long, restart the operation - b.release(); - __TBB_ASSERT( !op_insert || !return_value, "Can't acquire new item in locked bucket?" ); - __TBB_Yield(); - m = (hashcode_t) itt_load_word_with_acquire( my_mask ); - goto restart; - } - } - } - }//lock scope - result->my_node = n; - result->my_hash = h; -check_growth: - // [opt] grow the container - if( grow_segment ) { -#if __TBB_STATISTICS - my_info_resizes++; // concurrent ones -#endif - enable_segment( grow_segment ); - } - if( tmp_n ) // if op_insert only - delete_node( tmp_n ); - return return_value; -} - -template -template -std::pair concurrent_hash_map::internal_equal_range( const Key& key, I end_ ) const { - hashcode_t h = my_hash_compare.hash( key ); - hashcode_t m = my_mask; - __TBB_ASSERT((m&(m+1))==0, "data structure is invalid"); - h &= m; - bucket *b = get_bucket( h ); - while( b->node_list == internal::rehash_req ) { - m = ( 1u<<__TBB_Log2( h ) ) - 1; // get parent mask from the topmost bit - b = get_bucket( h &= m ); - } - node *n = search_bucket( key, b ); - if( !n ) - return std::make_pair(end_, end_); - iterator lower(*this, h, b, n), upper(lower); - return std::make_pair(lower, ++upper); -} - -template -bool concurrent_hash_map::exclude( const_accessor &item_accessor ) { - __TBB_ASSERT( item_accessor.my_node, NULL ); - node_base *const n = item_accessor.my_node; - hashcode_t const h = item_accessor.my_hash; - hashcode_t m = (hashcode_t) itt_load_word_with_acquire( my_mask ); - do { - // get bucket - bucket_accessor b( this, h & m, /*writer=*/true ); - node_base **p = &b()->node_list; - while( *p && *p != n ) - p = &(*p)->next; - if( !*p ) { // someone else was first - if( check_mask_race( h, m ) ) - continue; - item_accessor.release(); - return false; - } - __TBB_ASSERT( *p == n, NULL ); - *p = n->next; // remove from container - my_size--; - break; - } while(true); - if( !item_accessor.is_writer() ) // need to get exclusive lock - item_accessor.upgrade_to_writer(); // return value means nothing here - item_accessor.release(); - delete_node( n ); // Only one thread can delete it - return true; -} - -template -bool concurrent_hash_map::erase( const Key &key ) { - node_base *n; - hashcode_t const h = my_hash_compare.hash( key ); - hashcode_t m = (hashcode_t) itt_load_word_with_acquire( my_mask ); -restart: - {//lock scope - // get bucket - bucket_accessor b( this, h & m ); - search: - node_base **p = &b()->node_list; - n = *p; - while( is_valid(n) && !my_hash_compare.equal(key, static_cast(n)->item.first ) ) { - p = &n->next; - n = *p; - } - if( !n ) { // not found, but mask could be changed - if( check_mask_race( h, m ) ) - goto restart; - return false; - } - else if( !b.is_writer() && !b.upgrade_to_writer() ) { - if( check_mask_race( h, m ) ) // contended upgrade, check mask - goto restart; - goto search; - } - *p = n->next; - my_size--; - } - { - typename node::scoped_t item_locker( n->mutex, /*write=*/true ); - } - // note: there should be no threads pretending to acquire this mutex again, do not try to upgrade const_accessor! - delete_node( n ); // Only one thread can delete it due to write lock on the bucket - return true; -} - -template -void concurrent_hash_map::swap(concurrent_hash_map &table) { - using std::swap; - swap(this->my_allocator, table.my_allocator); - swap(this->my_hash_compare, table.my_hash_compare); - internal_swap(table); -} - -template -void concurrent_hash_map::rehash(size_type sz) { - reserve( sz ); // TODO: add reduction of number of buckets as well - hashcode_t mask = my_mask; - hashcode_t b = (mask+1)>>1; // size or first index of the last segment - __TBB_ASSERT((b&(b-1))==0, NULL); // zero or power of 2 - bucket *bp = get_bucket( b ); // only the last segment should be scanned for rehashing - for(; b <= mask; b++, bp++ ) { - node_base *n = bp->node_list; - __TBB_ASSERT( is_valid(n) || n == internal::empty_rehashed || n == internal::rehash_req, "Broken internal structure" ); - __TBB_ASSERT( *reinterpret_cast(&bp->mutex) == 0, "concurrent or unexpectedly terminated operation during rehash() execution" ); - if( n == internal::rehash_req ) { // rehash bucket, conditional because rehashing of a previous bucket may affect this one - hashcode_t h = b; bucket *b_old = bp; - do { - __TBB_ASSERT( h > 1, "The lowermost buckets can't be rehashed" ); - hashcode_t m = ( 1u<<__TBB_Log2( h ) ) - 1; // get parent mask from the topmost bit - b_old = get_bucket( h &= m ); - } while( b_old->node_list == internal::rehash_req ); - // now h - is index of the root rehashed bucket b_old - mark_rehashed_levels( h ); // mark all non-rehashed children recursively across all segments - for( node_base **p = &b_old->node_list, *q = *p; is_valid(q); q = *p ) { - hashcode_t c = my_hash_compare.hash( static_cast(q)->item.first ); - if( (c & mask) != h ) { // should be rehashed - *p = q->next; // exclude from b_old - bucket *b_new = get_bucket( c & mask ); - __TBB_ASSERT( b_new->node_list != internal::rehash_req, "hash() function changed for key in table or internal error" ); - add_to_bucket( b_new, q ); - } else p = &q->next; // iterate to next item - } - } - } -#if TBB_USE_PERFORMANCE_WARNINGS - int current_size = int(my_size), buckets = int(mask)+1, empty_buckets = 0, overpopulated_buckets = 0; // usage statistics - static bool reported = false; -#endif -#if TBB_USE_ASSERT || TBB_USE_PERFORMANCE_WARNINGS - for( b = 0; b <= mask; b++ ) {// only last segment should be scanned for rehashing - if( b & (b-2) ) ++bp; // not the beginning of a segment - else bp = get_bucket( b ); - node_base *n = bp->node_list; - __TBB_ASSERT( *reinterpret_cast(&bp->mutex) == 0, "concurrent or unexpectedly terminated operation during rehash() execution" ); - __TBB_ASSERT( is_valid(n) || n == internal::empty_rehashed, "Broken internal structure" ); -#if TBB_USE_PERFORMANCE_WARNINGS - if( n == internal::empty_rehashed ) empty_buckets++; - else if( n->next ) overpopulated_buckets++; -#endif -#if TBB_USE_ASSERT - for( ; is_valid(n); n = n->next ) { - hashcode_t h = my_hash_compare.hash( static_cast(n)->item.first ) & mask; - __TBB_ASSERT( h == b, "hash() function changed for key in table or internal error" ); - } -#endif - } -#endif // TBB_USE_ASSERT || TBB_USE_PERFORMANCE_WARNINGS -#if TBB_USE_PERFORMANCE_WARNINGS - if( buckets > current_size) empty_buckets -= buckets - current_size; - else overpopulated_buckets -= current_size - buckets; // TODO: load_factor? - if( !reported && buckets >= 512 && ( 2*empty_buckets > current_size || 2*overpopulated_buckets > current_size ) ) { - tbb::internal::runtime_warning( - "Performance is not optimal because the hash function produces bad randomness in lower bits in %s.\nSize: %d Empties: %d Overlaps: %d", - typeid(*this).name(), current_size, empty_buckets, overpopulated_buckets ); - reported = true; - } -#endif -} - -template -void concurrent_hash_map::clear() { - hashcode_t m = my_mask; - __TBB_ASSERT((m&(m+1))==0, "data structure is invalid"); -#if TBB_USE_ASSERT || TBB_USE_PERFORMANCE_WARNINGS || __TBB_STATISTICS -#if TBB_USE_PERFORMANCE_WARNINGS || __TBB_STATISTICS - int current_size = int(my_size), buckets = int(m)+1, empty_buckets = 0, overpopulated_buckets = 0; // usage statistics - static bool reported = false; -#endif - bucket *bp = 0; - // check consistency - for( segment_index_t b = 0; b <= m; b++ ) { - if( b & (b-2) ) ++bp; // not the beginning of a segment - else bp = get_bucket( b ); - node_base *n = bp->node_list; - __TBB_ASSERT( is_valid(n) || n == internal::empty_rehashed || n == internal::rehash_req, "Broken internal structure" ); - __TBB_ASSERT( *reinterpret_cast(&bp->mutex) == 0, "concurrent or unexpectedly terminated operation during clear() execution" ); -#if TBB_USE_PERFORMANCE_WARNINGS || __TBB_STATISTICS - if( n == internal::empty_rehashed ) empty_buckets++; - else if( n == internal::rehash_req ) buckets--; - else if( n->next ) overpopulated_buckets++; -#endif -#if __TBB_EXTRA_DEBUG - for(; is_valid(n); n = n->next ) { - hashcode_t h = my_hash_compare.hash( static_cast(n)->item.first ); - h &= m; - __TBB_ASSERT( h == b || get_bucket(h)->node_list == internal::rehash_req, "hash() function changed for key in table or internal error" ); - } -#endif - } -#if TBB_USE_PERFORMANCE_WARNINGS || __TBB_STATISTICS -#if __TBB_STATISTICS - printf( "items=%d buckets: capacity=%d rehashed=%d empty=%d overpopulated=%d" - " concurrent: resizes=%u rehashes=%u restarts=%u\n", - current_size, int(m+1), buckets, empty_buckets, overpopulated_buckets, - unsigned(my_info_resizes), unsigned(my_info_rehashes), unsigned(my_info_restarts) ); - my_info_resizes = 0; // concurrent ones - my_info_restarts = 0; // race collisions - my_info_rehashes = 0; // invocations of rehash_bucket -#endif - if( buckets > current_size) empty_buckets -= buckets - current_size; - else overpopulated_buckets -= current_size - buckets; // TODO: load_factor? - if( !reported && buckets >= 512 && ( 2*empty_buckets > current_size || 2*overpopulated_buckets > current_size ) ) { - tbb::internal::runtime_warning( - "Performance is not optimal because the hash function produces bad randomness in lower bits in %s.\nSize: %d Empties: %d Overlaps: %d", - typeid(*this).name(), current_size, empty_buckets, overpopulated_buckets ); - reported = true; - } -#endif -#endif//TBB_USE_ASSERT || TBB_USE_PERFORMANCE_WARNINGS || __TBB_STATISTICS - my_size = 0; - segment_index_t s = segment_index_of( m ); - __TBB_ASSERT( s+1 == pointers_per_table || !my_table[s+1], "wrong mask or concurrent grow" ); - cache_aligned_allocator alloc; - do { - __TBB_ASSERT( is_valid( my_table[s] ), "wrong mask or concurrent grow" ); - segment_ptr_t buckets_ptr = my_table[s]; - size_type sz = segment_size( s ? s : 1 ); - for( segment_index_t i = 0; i < sz; i++ ) - for( node_base *n = buckets_ptr[i].node_list; is_valid(n); n = buckets_ptr[i].node_list ) { - buckets_ptr[i].node_list = n->next; - delete_node( n ); - } - if( s >= first_block) // the first segment or the next - alloc.deallocate( buckets_ptr, sz ); - else if( s == embedded_block && embedded_block != first_block ) - alloc.deallocate( buckets_ptr, segment_size(first_block)-embedded_buckets ); - if( s >= embedded_block ) my_table[s] = 0; - } while(s-- > 0); - my_mask = embedded_buckets - 1; -} - -template -void concurrent_hash_map::internal_copy( const concurrent_hash_map& source ) { - reserve( source.my_size ); // TODO: load_factor? - hashcode_t mask = source.my_mask; - if( my_mask == mask ) { // optimized version - bucket *dst = 0, *src = 0; - bool rehash_required = false; - for( hashcode_t k = 0; k <= mask; k++ ) { - if( k & (k-2) ) ++dst,src++; // not the beginning of a segment - else { dst = get_bucket( k ); src = source.get_bucket( k ); } - __TBB_ASSERT( dst->node_list != internal::rehash_req, "Invalid bucket in destination table"); - node *n = static_cast( src->node_list ); - if( n == internal::rehash_req ) { // source is not rehashed, items are in previous buckets - rehash_required = true; - dst->node_list = internal::rehash_req; - } else for(; n; n = static_cast( n->next ) ) { - add_to_bucket( dst, new( my_allocator ) node(n->item.first, n->item.second) ); - ++my_size; // TODO: replace by non-atomic op - } - } - if( rehash_required ) rehash(); - } else internal_copy( source.begin(), source.end() ); -} - -template -template -void concurrent_hash_map::internal_copy(I first, I last) { - hashcode_t m = my_mask; - for(; first != last; ++first) { - hashcode_t h = my_hash_compare.hash( first->first ); - bucket *b = get_bucket( h & m ); - __TBB_ASSERT( b->node_list != internal::rehash_req, "Invalid bucket in destination table"); - node *n = new( my_allocator ) node(first->first, first->second); - add_to_bucket( b, n ); - ++my_size; // TODO: replace by non-atomic op - } -} - -} // namespace interface5 - -using interface5::concurrent_hash_map; - - -template -inline bool operator==(const concurrent_hash_map &a, const concurrent_hash_map &b) { - if(a.size() != b.size()) return false; - typename concurrent_hash_map::const_iterator i(a.begin()), i_end(a.end()); - typename concurrent_hash_map::const_iterator j, j_end(b.end()); - for(; i != i_end; ++i) { - j = b.equal_range(i->first).first; - if( j == j_end || !(i->second == j->second) ) return false; - } - return true; -} - -template -inline bool operator!=(const concurrent_hash_map &a, const concurrent_hash_map &b) -{ return !(a == b); } - -template -inline void swap(concurrent_hash_map &a, concurrent_hash_map &b) -{ a.swap( b ); } - -#if _MSC_VER && !defined(__INTEL_COMPILER) - #pragma warning( pop ) -#endif // warning 4127 is back - -} // namespace tbb - -#endif /* __TBB_concurrent_hash_map_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/concurrent_lru_cache.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/concurrent_lru_cache.h deleted file mode 100644 index 25d1c11f5..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/concurrent_lru_cache.h +++ /dev/null @@ -1,243 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_concurrent_lru_cache_H -#define __TBB_concurrent_lru_cache_H - -#if ! TBB_PREVIEW_CONCURRENT_LRU_CACHE - #error Set TBB_PREVIEW_CONCURRENT_LRU_CACHE to include concurrent_lru_cache.h -#endif - -#include -#include - -#include "tbb_stddef.h" -#include "atomic.h" -#include "internal/_aggregator_impl.h" - -namespace tbb{ -namespace interface6 { - - -template -class concurrent_lru_cache : internal::no_assign{ -private: - typedef concurrent_lru_cache self_type; - typedef value_functor_type value_function_type; - typedef std::size_t ref_counter_type; - struct map_value_type; - typedef std::map map_storage_type; - typedef std::list lru_list_type; - struct map_value_type { - value_type my_value; - ref_counter_type my_ref_counter; - typename lru_list_type::iterator my_lru_list_iterator; - bool my_is_ready; - - map_value_type (value_type const& a_value, ref_counter_type a_ref_counter, typename lru_list_type::iterator a_lru_list_iterator, bool a_is_ready) - : my_value(a_value), my_ref_counter(a_ref_counter), my_lru_list_iterator (a_lru_list_iterator), my_is_ready(a_is_ready) - {} - }; - - class handle_object; - - struct aggregator_operation; - typedef aggregator_operation aggregated_operation_type; - typedef tbb::internal::aggregating_functor aggregator_function_type; - friend class tbb::internal::aggregating_functor; - typedef tbb::internal::aggregator aggregator_type; - -private: - value_function_type my_value_function; - std::size_t const my_number_of_lru_history_items; - map_storage_type my_map_storage; - lru_list_type my_lru_list; - aggregator_type my_aggregator; - -public: - typedef handle_object handle; - -public: - concurrent_lru_cache(value_function_type f, std::size_t number_of_lru_history_items) - : my_value_function(f),my_number_of_lru_history_items(number_of_lru_history_items) - { - my_aggregator.initialize_handler(aggregator_function_type(this)); - } - - handle_object operator[](key_type k){ - retrieve_aggregator_operation op(k); - my_aggregator.execute(&op); - if (op.is_new_value_needed()){ - op.result().second.my_value = my_value_function(k); - __TBB_store_with_release(op.result().second.my_is_ready, true); - }else{ - tbb::internal::spin_wait_while_eq(op.result().second.my_is_ready,false); - } - return handle_object(*this,op.result()); - } -private: - void signal_end_of_usage(typename map_storage_type::reference value_ref){ - signal_end_of_usage_aggregator_operation op(value_ref); - my_aggregator.execute(&op); - } - -private: - struct handle_move_t:no_assign{ - concurrent_lru_cache & my_cache_ref; - typename map_storage_type::reference my_map_record_ref; - handle_move_t(concurrent_lru_cache & cache_ref, typename map_storage_type::reference value_ref):my_cache_ref(cache_ref),my_map_record_ref(value_ref) {}; - }; - class handle_object { - concurrent_lru_cache * my_cache_pointer; - typename map_storage_type::reference my_map_record_ref; - public: - handle_object(concurrent_lru_cache & cache_ref, typename map_storage_type::reference value_ref):my_cache_pointer(&cache_ref), my_map_record_ref(value_ref) {} - handle_object(handle_move_t m):my_cache_pointer(&m.my_cache_ref), my_map_record_ref(m.my_map_record_ref){} - operator handle_move_t(){ return move(*this);} - value_type& value(){ - __TBB_ASSERT(my_cache_pointer,"get value from moved from object?"); - return my_map_record_ref.second.my_value; - } - ~handle_object(){ - if (my_cache_pointer){ - my_cache_pointer->signal_end_of_usage(my_map_record_ref); - } - } - private: - friend handle_move_t move(handle_object& h){ - return handle_object::move(h); - } - static handle_move_t move(handle_object& h){ - __TBB_ASSERT(h.my_cache_pointer,"move from the same object twice ?"); - concurrent_lru_cache * cache_pointer = NULL; - std::swap(cache_pointer,h.my_cache_pointer); - return handle_move_t(*cache_pointer,h.my_map_record_ref); - } - private: - void operator=(handle_object&); -#if __SUNPRO_CC - // Presumably due to a compiler error, private copy constructor - // breaks expressions like handle h = cache[key]; - public: -#endif - handle_object(handle_object &); - }; -private: - //TODO: looks like aggregator_operation is a perfect match for statically typed variant type - struct aggregator_operation : tbb::internal::aggregated_operation{ - enum e_op_type {op_retive, op_signal_end_of_usage}; - //TODO: try to use pointer to function apply_visitor here - //TODO: try virtual functions and measure the difference - e_op_type my_operation_type; - aggregator_operation(e_op_type operation_type): my_operation_type(operation_type) {} - void cast_and_handle(self_type& container ){ - if (my_operation_type==op_retive){ - static_cast(this)->handle(container); - }else{ - static_cast(this)->handle(container); - } - } - }; - struct retrieve_aggregator_operation : aggregator_operation, private internal::no_assign { - key_type my_key; - typename map_storage_type::pointer my_result_map_record_pointer; - bool my_is_new_value_needed; - retrieve_aggregator_operation(key_type key):aggregator_operation(aggregator_operation::op_retive),my_key(key),my_is_new_value_needed(false){} - void handle(self_type& container ){ - my_result_map_record_pointer = & container.retrieve_serial(my_key,my_is_new_value_needed); - } - typename map_storage_type::reference result(){ return * my_result_map_record_pointer; } - bool is_new_value_needed(){return my_is_new_value_needed;} - }; - struct signal_end_of_usage_aggregator_operation : aggregator_operation, private internal::no_assign { - typename map_storage_type::reference my_map_record_ref; - signal_end_of_usage_aggregator_operation(typename map_storage_type::reference map_record_ref):aggregator_operation(aggregator_operation::op_signal_end_of_usage),my_map_record_ref(map_record_ref){} - void handle(self_type& container ){ - container.signal_end_of_usage_serial(my_map_record_ref); - } - }; - -private: - void handle_operations(aggregator_operation* op_list){ - while(op_list){ - op_list->cast_and_handle(*this); - aggregator_operation* tmp = op_list; - op_list=op_list->next; - tbb::internal::itt_store_word_with_release(tmp->status, uintptr_t(1)); - } - } - -private: - typename map_storage_type::reference retrieve_serial(key_type k, bool& is_new_value_needed){ - typename map_storage_type::iterator it = my_map_storage.find(k); - if (it == my_map_storage.end()){ - it = my_map_storage.insert(it,std::make_pair(k,map_value_type(value_type(),0,my_lru_list.end(),false))); - is_new_value_needed = true; - }else { - typename lru_list_type::iterator list_it = it->second.my_lru_list_iterator; - if (list_it!=my_lru_list.end()) { - __TBB_ASSERT(!it->second.my_ref_counter,"item to be evicted should not have a live references"); - //item is going to be used. Therefore it is not a subject for eviction - //so - remove it from LRU history. - my_lru_list.erase(list_it); - it->second.my_lru_list_iterator= my_lru_list.end(); - } - } - ++(it->second.my_ref_counter); - return *it; - } - - void signal_end_of_usage_serial(typename map_storage_type::reference map_record_ref){ - typename map_storage_type::iterator it = my_map_storage.find(map_record_ref.first); - __TBB_ASSERT(it!=my_map_storage.end(),"cache should not return past-end iterators to outer world"); - __TBB_ASSERT(&(*it) == &map_record_ref,"dangling reference has been returned to outside world? data race ?"); - __TBB_ASSERT( my_lru_list.end()== std::find(my_lru_list.begin(),my_lru_list.end(),it), - "object in use should not be in list of unused objects "); - if (! --(it->second.my_ref_counter)){ - //it was the last reference so put it to the LRU history - if (my_lru_list.size()>=my_number_of_lru_history_items){ - //evict items in order to get a space - size_t number_of_elements_to_evict = 1 + my_lru_list.size() - my_number_of_lru_history_items; - for (size_t i=0; isecond.my_ref_counter,"item to be evicted should not have a live references"); - my_lru_list.pop_back(); - my_map_storage.erase(it_to_evict); - } - } - my_lru_list.push_front(it); - it->second.my_lru_list_iterator = my_lru_list.begin(); - } - } -}; -} // namespace interface6 - -using interface6::concurrent_lru_cache; - -} // namespace tbb -#endif //__TBB_concurrent_lru_cache_H diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/concurrent_priority_queue.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/concurrent_priority_queue.h deleted file mode 100644 index 79611615a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/concurrent_priority_queue.h +++ /dev/null @@ -1,388 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_concurrent_priority_queue_H -#define __TBB_concurrent_priority_queue_H - -#include "atomic.h" -#include "cache_aligned_allocator.h" -#include "tbb_exception.h" -#include "tbb_stddef.h" -#include "tbb_profiling.h" -#include "internal/_aggregator_impl.h" -#include -#include -#include - -#if __TBB_INITIALIZER_LISTS_PRESENT - #include -#endif - -namespace tbb { -namespace interface5 { - -using namespace tbb::internal; - -//! Concurrent priority queue -template , typename A=cache_aligned_allocator > -class concurrent_priority_queue { - public: - //! Element type in the queue. - typedef T value_type; - - //! Reference type - typedef T& reference; - - //! Const reference type - typedef const T& const_reference; - - //! Integral type for representing size of the queue. - typedef size_t size_type; - - //! Difference type for iterator - typedef ptrdiff_t difference_type; - - //! Allocator type - typedef A allocator_type; - - //! Constructs a new concurrent_priority_queue with default capacity - explicit concurrent_priority_queue(const allocator_type& a = allocator_type()) : mark(0), my_size(0), data(a) - { - my_aggregator.initialize_handler(my_functor_t(this)); - } - - //! Constructs a new concurrent_priority_queue with init_sz capacity - explicit concurrent_priority_queue(size_type init_capacity, const allocator_type& a = allocator_type()) : - mark(0), my_size(0), data(a) - { - data.reserve(init_capacity); - my_aggregator.initialize_handler(my_functor_t(this)); - } - - //! [begin,end) constructor - template - concurrent_priority_queue(InputIterator begin, InputIterator end, const allocator_type& a = allocator_type()) : - mark(0), data(begin, end, a) - { - my_aggregator.initialize_handler(my_functor_t(this)); - heapify(); - my_size = data.size(); - } - -#if __TBB_INITIALIZER_LISTS_PRESENT - //! Constructor from std::initializer_list - concurrent_priority_queue(std::initializer_list const& init_list, const allocator_type &a = allocator_type()) : - mark(0),data(init_list.begin(), init_list.end(), a) - { - my_aggregator.initialize_handler(my_functor_t(this)); - heapify(); - my_size = data.size(); - } -#endif //# __TBB_INITIALIZER_LISTS_PRESENT - - //! Copy constructor - /** This operation is unsafe if there are pending concurrent operations on the src queue. */ - explicit concurrent_priority_queue(const concurrent_priority_queue& src) : mark(src.mark), - my_size(src.my_size), data(src.data.begin(), src.data.end(), src.data.get_allocator()) - { - my_aggregator.initialize_handler(my_functor_t(this)); - heapify(); - } - - //! Copy constructor with specific allocator - /** This operation is unsafe if there are pending concurrent operations on the src queue. */ - concurrent_priority_queue(const concurrent_priority_queue& src, const allocator_type& a) : mark(src.mark), - my_size(src.my_size), data(src.data.begin(), src.data.end(), a) - { - my_aggregator.initialize_handler(my_functor_t(this)); - heapify(); - } - - //! Assignment operator - /** This operation is unsafe if there are pending concurrent operations on the src queue. */ - concurrent_priority_queue& operator=(const concurrent_priority_queue& src) { - if (this != &src) { - std::vector(src.data.begin(), src.data.end(), src.data.get_allocator()).swap(data); - mark = src.mark; - my_size = src.my_size; - } - return *this; - } - - //! Assign the queue from [begin,end) range, not thread-safe - template - void assign(InputIterator begin, InputIterator end) { - std::vector(begin, end, data.get_allocator()).swap(data); - mark = 0; - my_size = data.size(); - heapify(); - } - -#if __TBB_INITIALIZER_LISTS_PRESENT - //! Assign the queue from std::initializer_list, not thread-safe - void assign(std::initializer_list const& il) { this->assign(il.begin(), il.end()); } - - //! Assign from std::initializer_list, not thread-safe - concurrent_priority_queue& operator=(std::initializer_list const& il) { - this->assign(il.begin(), il.end()); - return *this; - } -#endif //# __TBB_INITIALIZER_LISTS_PRESENT - - //! Returns true if empty, false otherwise - /** Returned value may not reflect results of pending operations. - This operation reads shared data and will trigger a race condition. */ - bool empty() const { return size()==0; } - - //! Returns the current number of elements contained in the queue - /** Returned value may not reflect results of pending operations. - This operation reads shared data and will trigger a race condition. */ - size_type size() const { return __TBB_load_with_acquire(my_size); } - - //! Pushes elem onto the queue, increasing capacity of queue if necessary - /** This operation can be safely used concurrently with other push, try_pop or reserve operations. */ - void push(const_reference elem) { - cpq_operation op_data(elem, PUSH_OP); - my_aggregator.execute(&op_data); - if (op_data.status == FAILED) // exception thrown - throw_exception(eid_bad_alloc); - } - - //! Gets a reference to and removes highest priority element - /** If a highest priority element was found, sets elem and returns true, - otherwise returns false. - This operation can be safely used concurrently with other push, try_pop or reserve operations. */ - bool try_pop(reference elem) { - cpq_operation op_data(POP_OP); - op_data.elem = &elem; - my_aggregator.execute(&op_data); - return op_data.status==SUCCEEDED; - } - - //! Clear the queue; not thread-safe - /** This operation is unsafe if there are pending concurrent operations on the queue. - Resets size, effectively emptying queue; does not free space. - May not clear elements added in pending operations. */ - void clear() { - data.clear(); - mark = 0; - my_size = 0; - } - - //! Swap this queue with another; not thread-safe - /** This operation is unsafe if there are pending concurrent operations on the queue. */ - void swap(concurrent_priority_queue& q) { - using std::swap; - data.swap(q.data); - swap(mark, q.mark); - swap(my_size, q.my_size); - } - - //! Return allocator object - allocator_type get_allocator() const { return data.get_allocator(); } - - private: - enum operation_type {INVALID_OP, PUSH_OP, POP_OP}; - enum operation_status { WAIT=0, SUCCEEDED, FAILED }; - - class cpq_operation : public aggregated_operation { - public: - operation_type type; - union { - value_type *elem; - size_type sz; - }; - cpq_operation(const_reference e, operation_type t) : - type(t), elem(const_cast(&e)) {} - cpq_operation(operation_type t) : type(t) {} - }; - - class my_functor_t { - concurrent_priority_queue *cpq; - public: - my_functor_t() {} - my_functor_t(concurrent_priority_queue *cpq_) : cpq(cpq_) {} - void operator()(cpq_operation* op_list) { - cpq->handle_operations(op_list); - } - }; - - aggregator< my_functor_t, cpq_operation> my_aggregator; - //! Padding added to avoid false sharing - char padding1[NFS_MaxLineSize - sizeof(aggregator< my_functor_t, cpq_operation >)]; - //! The point at which unsorted elements begin - size_type mark; - __TBB_atomic size_type my_size; - Compare compare; - //! Padding added to avoid false sharing - char padding2[NFS_MaxLineSize - (2*sizeof(size_type)) - sizeof(Compare)]; - //! Storage for the heap of elements in queue, plus unheapified elements - /** data has the following structure: - - binary unheapified - heap elements - ____|_______|____ - | | | - v v v - [_|...|_|_|...|_| |...| ] - 0 ^ ^ ^ - | | |__capacity - | |__my_size - |__mark - - Thus, data stores the binary heap starting at position 0 through - mark-1 (it may be empty). Then there are 0 or more elements - that have not yet been inserted into the heap, in positions - mark through my_size-1. */ - std::vector data; - - void handle_operations(cpq_operation *op_list) { - cpq_operation *tmp, *pop_list=NULL; - - __TBB_ASSERT(mark == data.size(), NULL); - - // First pass processes all constant (amortized; reallocation may happen) time pushes and pops. - while (op_list) { - // ITT note: &(op_list->status) tag is used to cover accesses to op_list - // node. This thread is going to handle the operation, and so will acquire it - // and perform the associated operation w/o triggering a race condition; the - // thread that created the operation is waiting on the status field, so when - // this thread is done with the operation, it will perform a - // store_with_release to give control back to the waiting thread in - // aggregator::insert_operation. - call_itt_notify(acquired, &(op_list->status)); - __TBB_ASSERT(op_list->type != INVALID_OP, NULL); - tmp = op_list; - op_list = itt_hide_load_word(op_list->next); - if (tmp->type == PUSH_OP) { - __TBB_TRY { - data.push_back(*(tmp->elem)); - __TBB_store_with_release(my_size, my_size+1); - itt_store_word_with_release(tmp->status, uintptr_t(SUCCEEDED)); - } __TBB_CATCH(...) { - itt_store_word_with_release(tmp->status, uintptr_t(FAILED)); - } - } - else { // tmp->type == POP_OP - __TBB_ASSERT(tmp->type == POP_OP, NULL); - if (mark < data.size() && - compare(data[0], data[data.size()-1])) { - // there are newly pushed elems and the last one - // is higher than top - *(tmp->elem) = data[data.size()-1]; // copy the data - __TBB_store_with_release(my_size, my_size-1); - itt_store_word_with_release(tmp->status, uintptr_t(SUCCEEDED)); - data.pop_back(); - __TBB_ASSERT(mark<=data.size(), NULL); - } - else { // no convenient item to pop; postpone - itt_hide_store_word(tmp->next, pop_list); - pop_list = tmp; - } - } - } - - // second pass processes pop operations - while (pop_list) { - tmp = pop_list; - pop_list = itt_hide_load_word(pop_list->next); - __TBB_ASSERT(tmp->type == POP_OP, NULL); - if (data.empty()) { - itt_store_word_with_release(tmp->status, uintptr_t(FAILED)); - } - else { - __TBB_ASSERT(mark<=data.size(), NULL); - if (mark < data.size() && - compare(data[0], data[data.size()-1])) { - // there are newly pushed elems and the last one is - // higher than top - *(tmp->elem) = data[data.size()-1]; // copy the data - __TBB_store_with_release(my_size, my_size-1); - itt_store_word_with_release(tmp->status, uintptr_t(SUCCEEDED)); - data.pop_back(); - } - else { // extract top and push last element down heap - *(tmp->elem) = data[0]; // copy the data - __TBB_store_with_release(my_size, my_size-1); - itt_store_word_with_release(tmp->status, uintptr_t(SUCCEEDED)); - reheap(); - } - } - } - - // heapify any leftover pushed elements before doing the next - // batch of operations - if (mark0) mark = 1; - for (; mark>1; - if (!compare(data[parent], to_place)) break; - data[cur_pos] = data[parent]; - cur_pos = parent; - } while( cur_pos ); - data[cur_pos] = to_place; - } - } - - //! Re-heapify after an extraction - /** Re-heapify by pushing last element down the heap from the root. */ - void reheap() { - size_type cur_pos=0, child=1; - - while (child < mark) { - size_type target = child; - if (child+1 < mark && compare(data[child], data[child+1])) - ++target; - // target now has the higher priority child - if (compare(data[target], data[data.size()-1])) break; - data[cur_pos] = data[target]; - cur_pos = target; - child = (cur_pos<<1)+1; - } - data[cur_pos] = data[data.size()-1]; - data.pop_back(); - if (mark > data.size()) mark = data.size(); - } -}; - -} // namespace interface5 - -using interface5::concurrent_priority_queue; - -} // namespace tbb - -#endif /* __TBB_concurrent_priority_queue_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/concurrent_queue.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/concurrent_queue.h deleted file mode 100644 index ebd11c219..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/concurrent_queue.h +++ /dev/null @@ -1,420 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_concurrent_queue_H -#define __TBB_concurrent_queue_H - -#include "internal/_concurrent_queue_impl.h" - -namespace tbb { - -namespace strict_ppl { - -//! A high-performance thread-safe non-blocking concurrent queue. -/** Multiple threads may each push and pop concurrently. - Assignment construction is not allowed. - @ingroup containers */ -template > -class concurrent_queue: public internal::concurrent_queue_base_v3 { - template friend class internal::concurrent_queue_iterator; - - //! Allocator type - typedef typename A::template rebind::other page_allocator_type; - page_allocator_type my_allocator; - - //! Allocates a block of size n (bytes) - /*override*/ virtual void *allocate_block( size_t n ) { - void *b = reinterpret_cast(my_allocator.allocate( n )); - if( !b ) - internal::throw_exception(internal::eid_bad_alloc); - return b; - } - - //! Deallocates block created by allocate_block. - /*override*/ virtual void deallocate_block( void *b, size_t n ) { - my_allocator.deallocate( reinterpret_cast(b), n ); - } - -public: - //! Element type in the queue. - typedef T value_type; - - //! Reference type - typedef T& reference; - - //! Const reference type - typedef const T& const_reference; - - //! Integral type for representing size of the queue. - typedef size_t size_type; - - //! Difference type for iterator - typedef ptrdiff_t difference_type; - - //! Allocator type - typedef A allocator_type; - - //! Construct empty queue - explicit concurrent_queue(const allocator_type& a = allocator_type()) : - my_allocator( a ) - { - } - - //! [begin,end) constructor - template - concurrent_queue( InputIterator begin, InputIterator end, const allocator_type& a = allocator_type()) : - my_allocator( a ) - { - for( ; begin != end; ++begin ) - this->internal_push(&*begin); - } - - //! Copy constructor - concurrent_queue( const concurrent_queue& src, const allocator_type& a = allocator_type()) : - internal::concurrent_queue_base_v3(), my_allocator( a ) - { - this->assign( src ); - } - - //! Destroy queue - ~concurrent_queue(); - - //! Enqueue an item at tail of queue. - void push( const T& source ) { - this->internal_push( &source ); - } - - //! Attempt to dequeue an item from head of queue. - /** Does not wait for item to become available. - Returns true if successful; false otherwise. */ - bool try_pop( T& result ) { - return this->internal_try_pop( &result ); - } - - //! Return the number of items in the queue; thread unsafe - size_type unsafe_size() const {return this->internal_size();} - - //! Equivalent to size()==0. - bool empty() const {return this->internal_empty();} - - //! Clear the queue. not thread-safe. - void clear() ; - - //! Return allocator object - allocator_type get_allocator() const { return this->my_allocator; } - - typedef internal::concurrent_queue_iterator iterator; - typedef internal::concurrent_queue_iterator const_iterator; - - //------------------------------------------------------------------------ - // The iterators are intended only for debugging. They are slow and not thread safe. - //------------------------------------------------------------------------ - iterator unsafe_begin() {return iterator(*this);} - iterator unsafe_end() {return iterator();} - const_iterator unsafe_begin() const {return const_iterator(*this);} - const_iterator unsafe_end() const {return const_iterator();} -} ; - -template -concurrent_queue::~concurrent_queue() { - clear(); - this->internal_finish_clear(); -} - -template -void concurrent_queue::clear() { - while( !empty() ) { - T value; - this->internal_try_pop(&value); - } -} - -} // namespace strict_ppl - -//! A high-performance thread-safe blocking concurrent bounded queue. -/** This is the pre-PPL TBB concurrent queue which supports boundedness and blocking semantics. - Note that method names agree with the PPL-style concurrent queue. - Multiple threads may each push and pop concurrently. - Assignment construction is not allowed. - @ingroup containers */ -template > -class concurrent_bounded_queue: public internal::concurrent_queue_base_v3 { - template friend class internal::concurrent_queue_iterator; - - //! Allocator type - typedef typename A::template rebind::other page_allocator_type; - page_allocator_type my_allocator; - - typedef typename concurrent_queue_base_v3::padded_page padded_page; - - //! Class used to ensure exception-safety of method "pop" - class destroyer: internal::no_copy { - T& my_value; - public: - destroyer( T& value ) : my_value(value) {} - ~destroyer() {my_value.~T();} - }; - - T& get_ref( page& p, size_t index ) { - __TBB_ASSERT( index(static_cast(&p))->last)[index]; - } - - /*override*/ virtual void copy_item( page& dst, size_t index, const void* src ) { - new( &get_ref(dst,index) ) T(*static_cast(src)); - } - - /*override*/ virtual void copy_page_item( page& dst, size_t dindex, const page& src, size_t sindex ) { - new( &get_ref(dst,dindex) ) T( get_ref( const_cast(src), sindex ) ); - } - - /*override*/ virtual void assign_and_destroy_item( void* dst, page& src, size_t index ) { - T& from = get_ref(src,index); - destroyer d(from); - *static_cast(dst) = from; - } - - /*override*/ virtual page *allocate_page() { - size_t n = sizeof(padded_page) + (items_per_page-1)*sizeof(T); - page *p = reinterpret_cast(my_allocator.allocate( n )); - if( !p ) - internal::throw_exception(internal::eid_bad_alloc); - return p; - } - - /*override*/ virtual void deallocate_page( page *p ) { - size_t n = sizeof(padded_page) + (items_per_page-1)*sizeof(T); - my_allocator.deallocate( reinterpret_cast(p), n ); - } - -public: - //! Element type in the queue. - typedef T value_type; - - //! Allocator type - typedef A allocator_type; - - //! Reference type - typedef T& reference; - - //! Const reference type - typedef const T& const_reference; - - //! Integral type for representing size of the queue. - /** Note that the size_type is a signed integral type. - This is because the size can be negative if there are pending pops without corresponding pushes. */ - typedef std::ptrdiff_t size_type; - - //! Difference type for iterator - typedef std::ptrdiff_t difference_type; - - //! Construct empty queue - explicit concurrent_bounded_queue(const allocator_type& a = allocator_type()) : - concurrent_queue_base_v3( sizeof(T) ), my_allocator( a ) - { - } - - //! Copy constructor - concurrent_bounded_queue( const concurrent_bounded_queue& src, const allocator_type& a = allocator_type()) : - concurrent_queue_base_v3( sizeof(T) ), my_allocator( a ) - { - assign( src ); - } - - //! [begin,end) constructor - template - concurrent_bounded_queue( InputIterator begin, InputIterator end, const allocator_type& a = allocator_type()) : - concurrent_queue_base_v3( sizeof(T) ), my_allocator( a ) - { - for( ; begin != end; ++begin ) - internal_push_if_not_full(&*begin); - } - - //! Destroy queue - ~concurrent_bounded_queue(); - - //! Enqueue an item at tail of queue. - void push( const T& source ) { - internal_push( &source ); - } - - //! Dequeue item from head of queue. - /** Block until an item becomes available, and then dequeue it. */ - void pop( T& destination ) { - internal_pop( &destination ); - } - -#if TBB_USE_EXCEPTIONS - //! Abort all pending queue operations - void abort() { - internal_abort(); - } -#endif - - //! Enqueue an item at tail of queue if queue is not already full. - /** Does not wait for queue to become not full. - Returns true if item is pushed; false if queue was already full. */ - bool try_push( const T& source ) { - return internal_push_if_not_full( &source ); - } - - //! Attempt to dequeue an item from head of queue. - /** Does not wait for item to become available. - Returns true if successful; false otherwise. */ - bool try_pop( T& destination ) { - return internal_pop_if_present( &destination ); - } - - //! Return number of pushes minus number of pops. - /** Note that the result can be negative if there are pops waiting for the - corresponding pushes. The result can also exceed capacity() if there - are push operations in flight. */ - size_type size() const {return internal_size();} - - //! Equivalent to size()<=0. - bool empty() const {return internal_empty();} - - //! Maximum number of allowed elements - size_type capacity() const { - return my_capacity; - } - - //! Set the capacity - /** Setting the capacity to 0 causes subsequent try_push operations to always fail, - and subsequent push operations to block forever. */ - void set_capacity( size_type new_capacity ) { - internal_set_capacity( new_capacity, sizeof(T) ); - } - - //! return allocator object - allocator_type get_allocator() const { return this->my_allocator; } - - //! clear the queue. not thread-safe. - void clear() ; - - typedef internal::concurrent_queue_iterator iterator; - typedef internal::concurrent_queue_iterator const_iterator; - - //------------------------------------------------------------------------ - // The iterators are intended only for debugging. They are slow and not thread safe. - //------------------------------------------------------------------------ - iterator unsafe_begin() {return iterator(*this);} - iterator unsafe_end() {return iterator();} - const_iterator unsafe_begin() const {return const_iterator(*this);} - const_iterator unsafe_end() const {return const_iterator();} - -}; - -template -concurrent_bounded_queue::~concurrent_bounded_queue() { - clear(); - internal_finish_clear(); -} - -template -void concurrent_bounded_queue::clear() { - while( !empty() ) { - T value; - internal_pop_if_present(&value); - } -} - -namespace deprecated { - -//! A high-performance thread-safe blocking concurrent bounded queue. -/** This is the pre-PPL TBB concurrent queue which support boundedness and blocking semantics. - Note that method names agree with the PPL-style concurrent queue. - Multiple threads may each push and pop concurrently. - Assignment construction is not allowed. - @ingroup containers */ -template > -class concurrent_queue: public concurrent_bounded_queue { -#if !__TBB_TEMPLATE_FRIENDS_BROKEN - template friend class internal::concurrent_queue_iterator; -#endif - -public: - //! Construct empty queue - explicit concurrent_queue(const A& a = A()) : - concurrent_bounded_queue( a ) - { - } - - //! Copy constructor - concurrent_queue( const concurrent_queue& src, const A& a = A()) : - concurrent_bounded_queue( src, a ) - { - } - - //! [begin,end) constructor - template - concurrent_queue( InputIterator b /*begin*/, InputIterator e /*end*/, const A& a = A()) : - concurrent_bounded_queue( b, e, a ) - { - } - - //! Enqueue an item at tail of queue if queue is not already full. - /** Does not wait for queue to become not full. - Returns true if item is pushed; false if queue was already full. */ - bool push_if_not_full( const T& source ) { - return this->try_push( source ); - } - - //! Attempt to dequeue an item from head of queue. - /** Does not wait for item to become available. - Returns true if successful; false otherwise. - @deprecated Use try_pop() - */ - bool pop_if_present( T& destination ) { - return this->try_pop( destination ); - } - - typedef typename concurrent_bounded_queue::iterator iterator; - typedef typename concurrent_bounded_queue::const_iterator const_iterator; - // - //------------------------------------------------------------------------ - // The iterators are intended only for debugging. They are slow and not thread safe. - //------------------------------------------------------------------------ - iterator begin() {return this->unsafe_begin();} - iterator end() {return this->unsafe_end();} - const_iterator begin() const {return this->unsafe_begin();} - const_iterator end() const {return this->unsafe_end();} -}; - -} - - -#if TBB_DEPRECATED -using deprecated::concurrent_queue; -#else -using strict_ppl::concurrent_queue; -#endif - -} // namespace tbb - -#endif /* __TBB_concurrent_queue_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/concurrent_unordered_map.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/concurrent_unordered_map.h deleted file mode 100644 index 06bfa09e0..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/concurrent_unordered_map.h +++ /dev/null @@ -1,384 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* Container implementations in this header are based on PPL implementations - provided by Microsoft. */ - -#ifndef __TBB_concurrent_unordered_map_H -#define __TBB_concurrent_unordered_map_H - -#include "internal/_concurrent_unordered_impl.h" - -namespace tbb -{ - -namespace interface5 { - -// Template class for hash map traits -template -class concurrent_unordered_map_traits -{ -protected: - typedef std::pair value_type; - typedef Key key_type; - typedef Hash_compare hash_compare; - typedef typename Allocator::template rebind::other allocator_type; - enum { allow_multimapping = Allow_multimapping }; - - concurrent_unordered_map_traits() : my_hash_compare() {} - concurrent_unordered_map_traits(const hash_compare& hc) : my_hash_compare(hc) {} - - class value_compare : public std::binary_function - { - friend class concurrent_unordered_map_traits; - - public: - bool operator()(const value_type& left, const value_type& right) const - { - return (my_hash_compare(left.first, right.first)); - } - - value_compare(const hash_compare& comparator) : my_hash_compare(comparator) {} - - protected: - hash_compare my_hash_compare; // the comparator predicate for keys - }; - - template - static const Key& get_key(const std::pair& value) { - return (value.first); - } - - hash_compare my_hash_compare; // the comparator predicate for keys -}; - -template , typename Key_equality = std::equal_to, - typename Allocator = tbb::tbb_allocator > > -class concurrent_unordered_map : - public internal::concurrent_unordered_base< concurrent_unordered_map_traits, Allocator, false> > -{ - // Base type definitions - typedef internal::hash_compare hash_compare; - typedef concurrent_unordered_map_traits traits_type; - typedef internal::concurrent_unordered_base< traits_type > base_type; - using traits_type::my_hash_compare; -#if __TBB_EXTRA_DEBUG -public: -#endif - using traits_type::allow_multimapping; -public: - using base_type::end; - using base_type::find; - using base_type::insert; - - // Type definitions - typedef Key key_type; - typedef typename base_type::value_type value_type; - typedef T mapped_type; - typedef Hasher hasher; - typedef Key_equality key_equal; - typedef hash_compare key_compare; - - typedef typename base_type::allocator_type allocator_type; - typedef typename base_type::pointer pointer; - typedef typename base_type::const_pointer const_pointer; - typedef typename base_type::reference reference; - typedef typename base_type::const_reference const_reference; - - typedef typename base_type::size_type size_type; - typedef typename base_type::difference_type difference_type; - - typedef typename base_type::iterator iterator; - typedef typename base_type::const_iterator const_iterator; - typedef typename base_type::iterator local_iterator; - typedef typename base_type::const_iterator const_local_iterator; - - // Construction/destruction/copying - explicit concurrent_unordered_map(size_type n_of_buckets = 8, - const hasher& _Hasher = hasher(), const key_equal& _Key_equality = key_equal(), - const allocator_type& a = allocator_type()) - : base_type(n_of_buckets, key_compare(_Hasher, _Key_equality), a) - { - } - - concurrent_unordered_map(const Allocator& a) : base_type(8, key_compare(), a) - { - } - - template - concurrent_unordered_map(Iterator first, Iterator last, size_type n_of_buckets = 8, - const hasher& _Hasher = hasher(), const key_equal& _Key_equality = key_equal(), - const allocator_type& a = allocator_type()) - : base_type(n_of_buckets, key_compare(_Hasher, _Key_equality), a) - { - for (; first != last; ++first) - base_type::insert(*first); - } - -#if __TBB_INITIALIZER_LISTS_PRESENT - //! Constructor from initializer_list - concurrent_unordered_map(std::initializer_list const& il, size_type n_of_buckets = 8, - const hasher& _Hasher = hasher(), const key_equal& _Key_equality = key_equal(), - const allocator_type& a = allocator_type()) - : base_type(n_of_buckets, key_compare(_Hasher, _Key_equality), a) - { - this->insert(il.begin(),il.end()); - } -#endif //# __TBB_INITIALIZER_LISTS_PRESENT - - concurrent_unordered_map(const concurrent_unordered_map& table) : base_type(table) - { - } - - concurrent_unordered_map(const concurrent_unordered_map& table, const Allocator& a) - : base_type(table, a) - { - } - - concurrent_unordered_map& operator=(const concurrent_unordered_map& table) - { - base_type::operator=(table); - return (*this); - } - -#if __TBB_INITIALIZER_LISTS_PRESENT - //! assignment operator from initializer_list - concurrent_unordered_map& operator=(std::initializer_list const& il) - { - base_type::operator=(il); - return (*this); - } -#endif //# __TBB_INITIALIZER_LISTS_PRESENT - - iterator unsafe_erase(const_iterator where) - { - return base_type::unsafe_erase(where); - } - - size_type unsafe_erase(const key_type& key) - { - return base_type::unsafe_erase(key); - } - - iterator unsafe_erase(const_iterator first, const_iterator last) - { - return base_type::unsafe_erase(first, last); - } - - void swap(concurrent_unordered_map& table) - { - base_type::swap(table); - } - - // Observers - hasher hash_function() const - { - return my_hash_compare.my_hash_object; - } - - key_equal key_eq() const - { - return my_hash_compare.my_key_compare_object; - } - - mapped_type& operator[](const key_type& key) - { - iterator where = find(key); - - if (where == end()) - { - where = insert(std::pair(key, mapped_type())).first; - } - - return ((*where).second); - } - - mapped_type& at(const key_type& key) - { - iterator where = find(key); - - if (where == end()) - { - tbb::internal::throw_exception(tbb::internal::eid_invalid_key); - } - - return ((*where).second); - } - - const mapped_type& at(const key_type& key) const - { - const_iterator where = find(key); - - if (where == end()) - { - tbb::internal::throw_exception(tbb::internal::eid_invalid_key); - } - - return ((*where).second); - } -}; - -template < typename Key, typename T, typename Hasher = tbb::tbb_hash, typename Key_equality = std::equal_to, - typename Allocator = tbb::tbb_allocator > > -class concurrent_unordered_multimap : - public internal::concurrent_unordered_base< concurrent_unordered_map_traits< Key, T, - internal::hash_compare, Allocator, true> > -{ - // Base type definitions - typedef internal::hash_compare hash_compare; - typedef concurrent_unordered_map_traits traits_type; - typedef internal::concurrent_unordered_base< traits_type > base_type; - using traits_type::my_hash_compare; -#if __TBB_EXTRA_DEBUG -public: -#endif - using traits_type::allow_multimapping; -public: - using base_type::end; - using base_type::find; - using base_type::insert; - - // Type definitions - typedef Key key_type; - typedef typename base_type::value_type value_type; - typedef T mapped_type; - typedef Hasher hasher; - typedef Key_equality key_equal; - typedef hash_compare key_compare; - - typedef typename base_type::allocator_type allocator_type; - typedef typename base_type::pointer pointer; - typedef typename base_type::const_pointer const_pointer; - typedef typename base_type::reference reference; - typedef typename base_type::const_reference const_reference; - - typedef typename base_type::size_type size_type; - typedef typename base_type::difference_type difference_type; - - typedef typename base_type::iterator iterator; - typedef typename base_type::const_iterator const_iterator; - typedef typename base_type::iterator local_iterator; - typedef typename base_type::const_iterator const_local_iterator; - - // Construction/destruction/copying - explicit concurrent_unordered_multimap(size_type n_of_buckets = 8, - const hasher& _Hasher = hasher(), const key_equal& _Key_equality = key_equal(), - const allocator_type& a = allocator_type()) - : base_type(n_of_buckets, key_compare(_Hasher, _Key_equality), a) - { - } - - concurrent_unordered_multimap(const Allocator& a) : base_type(8, key_compare(), a) - { - } - - template - concurrent_unordered_multimap(Iterator first, Iterator last, size_type n_of_buckets = 8, - const hasher& _Hasher = hasher(), const key_equal& _Key_equality = key_equal(), - const allocator_type& a = allocator_type()) - : base_type(n_of_buckets,key_compare(_Hasher,_Key_equality), a) - { - for (; first != last; ++first) - base_type::insert(*first); - } - -#if __TBB_INITIALIZER_LISTS_PRESENT - //! Constructor from initializer_list - concurrent_unordered_multimap(std::initializer_list const& il, size_type n_of_buckets = 8, - const hasher& _Hasher = hasher(), const key_equal& _Key_equality = key_equal(), - const allocator_type& a = allocator_type()) - : base_type(n_of_buckets, key_compare(_Hasher, _Key_equality), a) - { - this->insert(il.begin(),il.end()); - } -#endif //# __TBB_INITIALIZER_LISTS_PRESENT - - concurrent_unordered_multimap(const concurrent_unordered_multimap& table) : base_type(table) - { - } - - concurrent_unordered_multimap(const concurrent_unordered_multimap& table, const Allocator& a) - : base_type(table, a) - { - } - - concurrent_unordered_multimap& operator=(const concurrent_unordered_multimap& table) - { - base_type::operator=(table); - return (*this); - } - -#if __TBB_INITIALIZER_LISTS_PRESENT - //! assignment operator from initializer_list - concurrent_unordered_multimap& operator=(std::initializer_list const& il) - { - base_type::operator=(il); - return (*this); - } -#endif //# __TBB_INITIALIZER_LISTS_PRESENT - - iterator unsafe_erase(const_iterator where) - { - return base_type::unsafe_erase(where); - } - - size_type unsafe_erase(const key_type& key) - { - return base_type::unsafe_erase(key); - } - - iterator unsafe_erase(const_iterator first, const_iterator last) - { - return base_type::unsafe_erase(first, last); - } - - void swap(concurrent_unordered_multimap& table) - { - base_type::swap(table); - } - - // Observers - hasher hash_function() const - { - return my_hash_compare.my_hash_object; - } - - key_equal key_eq() const - { - return my_hash_compare.my_key_compare_object; - } -}; -} // namespace interface5 - -using interface5::concurrent_unordered_map; -using interface5::concurrent_unordered_multimap; - -} // namespace tbb - -#endif// __TBB_concurrent_unordered_map_H diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/concurrent_unordered_set.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/concurrent_unordered_set.h deleted file mode 100644 index 15ca9fa40..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/concurrent_unordered_set.h +++ /dev/null @@ -1,338 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* Container implementations in this header are based on PPL implementations - provided by Microsoft. */ - -#ifndef __TBB_concurrent_unordered_set_H -#define __TBB_concurrent_unordered_set_H - -#include "internal/_concurrent_unordered_impl.h" - -namespace tbb -{ - -namespace interface5 { - -// Template class for hash set traits -template -class concurrent_unordered_set_traits -{ -protected: - typedef Key value_type; - typedef Key key_type; - typedef Hash_compare hash_compare; - typedef typename Allocator::template rebind::other allocator_type; - enum { allow_multimapping = Allow_multimapping }; - - concurrent_unordered_set_traits() : my_hash_compare() {} - concurrent_unordered_set_traits(const hash_compare& hc) : my_hash_compare(hc) {} - - typedef hash_compare value_compare; - - static const Key& get_key(const value_type& value) { - return value; - } - - hash_compare my_hash_compare; // the comparator predicate for keys -}; - -template , typename Key_equality = std::equal_to, typename Allocator = tbb::tbb_allocator > -class concurrent_unordered_set : public internal::concurrent_unordered_base< concurrent_unordered_set_traits, Allocator, false> > -{ - // Base type definitions - typedef internal::hash_compare hash_compare; - typedef internal::concurrent_unordered_base< concurrent_unordered_set_traits > base_type; - typedef concurrent_unordered_set_traits, Allocator, false> traits_type; - using traits_type::my_hash_compare; -#if __TBB_EXTRA_DEBUG -public: -#endif - using traits_type::allow_multimapping; -public: - using base_type::end; - using base_type::find; - using base_type::insert; - - // Type definitions - typedef Key key_type; - typedef typename base_type::value_type value_type; - typedef Key mapped_type; - typedef Hasher hasher; - typedef Key_equality key_equal; - typedef hash_compare key_compare; - - typedef typename base_type::allocator_type allocator_type; - typedef typename base_type::pointer pointer; - typedef typename base_type::const_pointer const_pointer; - typedef typename base_type::reference reference; - typedef typename base_type::const_reference const_reference; - - typedef typename base_type::size_type size_type; - typedef typename base_type::difference_type difference_type; - - typedef typename base_type::iterator iterator; - typedef typename base_type::const_iterator const_iterator; - typedef typename base_type::iterator local_iterator; - typedef typename base_type::const_iterator const_local_iterator; - - // Construction/destruction/copying - explicit concurrent_unordered_set(size_type n_of_buckets = 8, const hasher& a_hasher = hasher(), - const key_equal& a_keyeq = key_equal(), const allocator_type& a = allocator_type()) - : base_type(n_of_buckets, key_compare(a_hasher, a_keyeq), a) - { - } - - concurrent_unordered_set(const Allocator& a) : base_type(8, key_compare(), a) - { - } - - template - concurrent_unordered_set(Iterator first, Iterator last, size_type n_of_buckets = 8, const hasher& a_hasher = hasher(), - const key_equal& a_keyeq = key_equal(), const allocator_type& a = allocator_type()) - : base_type(n_of_buckets, key_compare(a_hasher, a_keyeq), a) - { - for (; first != last; ++first) - base_type::insert(*first); - } - -#if __TBB_INITIALIZER_LISTS_PRESENT - //! Constructor from initializer_list - concurrent_unordered_set(std::initializer_list const& il, size_type n_of_buckets = 8, const hasher& a_hasher = hasher(), - const key_equal& a_keyeq = key_equal(), const allocator_type& a = allocator_type()) - : base_type(n_of_buckets, key_compare(a_hasher, a_keyeq), a) - { - this->insert(il.begin(),il.end()); - } -#endif //# __TBB_INITIALIZER_LISTS_PRESENT - - concurrent_unordered_set(const concurrent_unordered_set& table) : base_type(table) - { - } - - concurrent_unordered_set(const concurrent_unordered_set& table, const Allocator& a) - : base_type(table, a) - { - } - - concurrent_unordered_set& operator=(const concurrent_unordered_set& table) - { - base_type::operator=(table); - return (*this); - } - -#if __TBB_INITIALIZER_LISTS_PRESENT - //! assignment operator from initializer_list - concurrent_unordered_set& operator=(std::initializer_list const& il) - { - base_type::operator=(il); - return (*this); - } -#endif //# __TBB_INITIALIZER_LISTS_PRESENT - - iterator unsafe_erase(const_iterator where) - { - return base_type::unsafe_erase(where); - } - - size_type unsafe_erase(const key_type& key) - { - return base_type::unsafe_erase(key); - } - - iterator unsafe_erase(const_iterator first, const_iterator last) - { - return base_type::unsafe_erase(first, last); - } - - void swap(concurrent_unordered_set& table) - { - base_type::swap(table); - } - - // Observers - hasher hash_function() const - { - return my_hash_compare.my_hash_object; - } - - key_equal key_eq() const - { - return my_hash_compare.my_key_compare_object; - } -}; - -template , typename Key_equality = std::equal_to, - typename Allocator = tbb::tbb_allocator > -class concurrent_unordered_multiset : - public internal::concurrent_unordered_base< concurrent_unordered_set_traits, Allocator, true> > -{ -public: - // Base type definitions - typedef internal::hash_compare hash_compare; - typedef concurrent_unordered_set_traits traits_type; - typedef internal::concurrent_unordered_base< traits_type > base_type; - using traits_type::allow_multimapping; - using traits_type::my_hash_compare; - - // Type definitions - typedef Key key_type; - typedef typename base_type::value_type value_type; - typedef Key mapped_type; - typedef Hasher hasher; - typedef Key_equality key_equal; - typedef hash_compare key_compare; - - typedef typename base_type::allocator_type allocator_type; - typedef typename base_type::pointer pointer; - typedef typename base_type::const_pointer const_pointer; - typedef typename base_type::reference reference; - typedef typename base_type::const_reference const_reference; - - typedef typename base_type::size_type size_type; - typedef typename base_type::difference_type difference_type; - - typedef typename base_type::iterator iterator; - typedef typename base_type::const_iterator const_iterator; - typedef typename base_type::iterator local_iterator; - typedef typename base_type::const_iterator const_local_iterator; - - // Construction/destruction/copying - explicit concurrent_unordered_multiset(size_type n_of_buckets = 8, - const hasher& _Hasher = hasher(), const key_equal& _Key_equality = key_equal(), - const allocator_type& a = allocator_type()) - : base_type(n_of_buckets, key_compare(_Hasher, _Key_equality), a) - { - } - - concurrent_unordered_multiset(const Allocator& a) : base_type(8, key_compare(), a) - { - } - - template - concurrent_unordered_multiset(Iterator first, Iterator last, size_type n_of_buckets = 8, - const hasher& _Hasher = hasher(), const key_equal& _Key_equality = key_equal(), - const allocator_type& a = allocator_type()) - : base_type(n_of_buckets, key_compare(_Hasher, _Key_equality), a) - { - for (; first != last; ++first) - { - base_type::insert(*first); - } - } - -#if __TBB_INITIALIZER_LISTS_PRESENT - //! Constructor from initializer_list - concurrent_unordered_multiset(std::initializer_list const& il, size_type n_of_buckets = 8, const hasher& a_hasher = hasher(), - const key_equal& a_keyeq = key_equal(), const allocator_type& a = allocator_type()) - : base_type(n_of_buckets, key_compare(a_hasher, a_keyeq), a) - { - this->insert(il.begin(),il.end()); - } -#endif //# __TBB_INITIALIZER_LISTS_PRESENT - - concurrent_unordered_multiset(const concurrent_unordered_multiset& table) : base_type(table) - { - } - - concurrent_unordered_multiset(const concurrent_unordered_multiset& table, const Allocator& a) : base_type(table, a) - { - } - - concurrent_unordered_multiset& operator=(const concurrent_unordered_multiset& table) - { - base_type::operator=(table); - return (*this); - } - -#if __TBB_INITIALIZER_LISTS_PRESENT - //! assignment operator from initializer_list - concurrent_unordered_multiset& operator=(std::initializer_list const& il) - { - base_type::operator=(il); - return (*this); - } -#endif //# __TBB_INITIALIZER_LISTS_PRESENT - - // Modifiers - std::pair insert(const value_type& value) - { - return base_type::insert(value); - } - - iterator insert(const_iterator where, const value_type& value) - { - return base_type::insert(where, value); - } - - template - void insert(Iterator first, Iterator last) - { - base_type::insert(first, last); - } - - iterator unsafe_erase(const_iterator where) - { - return base_type::unsafe_erase(where); - } - - size_type unsafe_erase(const key_type& key) - { - return base_type::unsafe_erase(key); - } - - iterator unsafe_erase(const_iterator first, const_iterator last) - { - return base_type::unsafe_erase(first, last); - } - - void swap(concurrent_unordered_multiset& table) - { - base_type::swap(table); - } - - // Observers - hasher hash_function() const - { - return my_hash_compare.my_hash_object; - } - - key_equal key_eq() const - { - return my_hash_compare.my_key_compare_object; - } -}; -} // namespace interface5 - -using interface5::concurrent_unordered_set; -using interface5::concurrent_unordered_multiset; - -} // namespace tbb - -#endif// __TBB_concurrent_unordered_set_H diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/concurrent_vector.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/concurrent_vector.h deleted file mode 100644 index 29dbbfba9..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/concurrent_vector.h +++ /dev/null @@ -1,1128 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_concurrent_vector_H -#define __TBB_concurrent_vector_H - -#include "tbb_stddef.h" -#include "tbb_exception.h" -#include "atomic.h" -#include "cache_aligned_allocator.h" -#include "blocked_range.h" -#include "tbb_machine.h" -#include "tbb_profiling.h" -#include -#include // for memset() - -#if !TBB_USE_EXCEPTIONS && _MSC_VER - // Suppress "C++ exception handler used, but unwind semantics are not enabled" warning in STL headers - #pragma warning (push) - #pragma warning (disable: 4530) -#endif - -#include -#include - -#if !TBB_USE_EXCEPTIONS && _MSC_VER - #pragma warning (pop) -#endif - -#if _MSC_VER==1500 && !__INTEL_COMPILER - // VS2008/VC9 seems to have an issue; limits pull in math.h - #pragma warning( push ) - #pragma warning( disable: 4985 ) -#endif -#include /* std::numeric_limits */ -#if _MSC_VER==1500 && !__INTEL_COMPILER - #pragma warning( pop ) -#endif - -#if __TBB_INITIALIZER_LISTS_PRESENT - #include -#endif - -#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) && defined(_Wp64) - // Workaround for overzealous compiler warnings in /Wp64 mode - #pragma warning (push) - #pragma warning (disable: 4267) -#endif - -namespace tbb { - -template > -class concurrent_vector; - -template -class vector_iterator; - -//! @cond INTERNAL -namespace internal { - - //! Bad allocation marker - static void *const vector_allocation_error_flag = reinterpret_cast(size_t(63)); - - //! Base class of concurrent vector implementation. - /** @ingroup containers */ - class concurrent_vector_base_v3 { - protected: - - // Basic types declarations - typedef size_t segment_index_t; - typedef size_t size_type; - - // Using enumerations due to Mac linking problems of static const variables - enum { - // Size constants - default_initial_segments = 1, // 2 initial items - //! Number of slots for segment's pointers inside the class - pointers_per_short_table = 3, // to fit into 8 words of entire structure - pointers_per_long_table = sizeof(segment_index_t) * 8 // one segment per bit - }; - - // Segment pointer. Can be zero-initialized - struct segment_t { - void* array; -#if TBB_USE_ASSERT - ~segment_t() { - __TBB_ASSERT( array <= internal::vector_allocation_error_flag, "should have been freed by clear" ); - } -#endif /* TBB_USE_ASSERT */ - }; - - // Data fields - - //! allocator function pointer - void* (*vector_allocator_ptr)(concurrent_vector_base_v3 &, size_t); - - //! count of segments in the first block - atomic my_first_block; - - //! Requested size of vector - atomic my_early_size; - - //! Pointer to the segments table - atomic my_segment; - - //! embedded storage of segment pointers - segment_t my_storage[pointers_per_short_table]; - - // Methods - - concurrent_vector_base_v3() { - my_early_size = 0; - my_first_block = 0; // here is not default_initial_segments - for( segment_index_t i = 0; i < pointers_per_short_table; i++) - my_storage[i].array = NULL; - my_segment = my_storage; - } - __TBB_EXPORTED_METHOD ~concurrent_vector_base_v3(); - - //these helpers methods use the fact that segments are allocated so - //that every segment size is a (increasing) power of 2. - //with one exception 0 segment has size of 2 as well segment 1; - //e.g. size of segment with index of 3 is 2^3=8; - static segment_index_t segment_index_of( size_type index ) { - return segment_index_t( __TBB_Log2( index|1 ) ); - } - - static segment_index_t segment_base( segment_index_t k ) { - return (segment_index_t(1)< - friend class vector_iterator; - - }; - - typedef concurrent_vector_base_v3 concurrent_vector_base; - - //! Meets requirements of a forward iterator for STL and a Value for a blocked_range.*/ - /** Value is either the T or const T type of the container. - @ingroup containers */ - template - class vector_iterator - { - //! concurrent_vector over which we are iterating. - Container* my_vector; - - //! Index into the vector - size_t my_index; - - //! Caches my_vector->internal_subscript(my_index) - /** NULL if cached value is not available */ - mutable Value* my_item; - - template - friend vector_iterator operator+( ptrdiff_t offset, const vector_iterator& v ); - - template - friend bool operator==( const vector_iterator& i, const vector_iterator& j ); - - template - friend bool operator<( const vector_iterator& i, const vector_iterator& j ); - - template - friend ptrdiff_t operator-( const vector_iterator& i, const vector_iterator& j ); - - template - friend class internal::vector_iterator; - -#if !defined(_MSC_VER) || defined(__INTEL_COMPILER) - template - friend class tbb::concurrent_vector; -#else -public: // workaround for MSVC -#endif - - vector_iterator( const Container& vector, size_t index, void *ptr = 0 ) : - my_vector(const_cast(&vector)), - my_index(index), - my_item(static_cast(ptr)) - {} - - public: - //! Default constructor - vector_iterator() : my_vector(NULL), my_index(~size_t(0)), my_item(NULL) {} - - vector_iterator( const vector_iterator& other ) : - my_vector(other.my_vector), - my_index(other.my_index), - my_item(other.my_item) - {} - - vector_iterator operator+( ptrdiff_t offset ) const { - return vector_iterator( *my_vector, my_index+offset ); - } - vector_iterator &operator+=( ptrdiff_t offset ) { - my_index+=offset; - my_item = NULL; - return *this; - } - vector_iterator operator-( ptrdiff_t offset ) const { - return vector_iterator( *my_vector, my_index-offset ); - } - vector_iterator &operator-=( ptrdiff_t offset ) { - my_index-=offset; - my_item = NULL; - return *this; - } - Value& operator*() const { - Value* item = my_item; - if( !item ) { - item = my_item = &my_vector->internal_subscript(my_index); - } - __TBB_ASSERT( item==&my_vector->internal_subscript(my_index), "corrupt cache" ); - return *item; - } - Value& operator[]( ptrdiff_t k ) const { - return my_vector->internal_subscript(my_index+k); - } - Value* operator->() const {return &operator*();} - - //! Pre increment - vector_iterator& operator++() { - size_t element_index = ++my_index; - if( my_item ) { - //TODO: consider using of knowledge about "first_block optimization" here as well? - if( concurrent_vector_base::is_first_element_in_segment(element_index)) { - //if the iterator crosses a segment boundary, the pointer become invalid - //as possibly next segment is in another memory location - my_item= NULL; - } else { - ++my_item; - } - } - return *this; - } - - //! Pre decrement - vector_iterator& operator--() { - __TBB_ASSERT( my_index>0, "operator--() applied to iterator already at beginning of concurrent_vector" ); - size_t element_index = my_index--; - if( my_item ) { - if(concurrent_vector_base::is_first_element_in_segment(element_index)) { - //if the iterator crosses a segment boundary, the pointer become invalid - //as possibly next segment is in another memory location - my_item= NULL; - } else { - --my_item; - } - } - return *this; - } - - //! Post increment - vector_iterator operator++(int) { - vector_iterator result = *this; - operator++(); - return result; - } - - //! Post decrement - vector_iterator operator--(int) { - vector_iterator result = *this; - operator--(); - return result; - } - - // STL support - - typedef ptrdiff_t difference_type; - typedef Value value_type; - typedef Value* pointer; - typedef Value& reference; - typedef std::random_access_iterator_tag iterator_category; - }; - - template - vector_iterator operator+( ptrdiff_t offset, const vector_iterator& v ) { - return vector_iterator( *v.my_vector, v.my_index+offset ); - } - - template - bool operator==( const vector_iterator& i, const vector_iterator& j ) { - return i.my_index==j.my_index && i.my_vector == j.my_vector; - } - - template - bool operator!=( const vector_iterator& i, const vector_iterator& j ) { - return !(i==j); - } - - template - bool operator<( const vector_iterator& i, const vector_iterator& j ) { - return i.my_index - bool operator>( const vector_iterator& i, const vector_iterator& j ) { - return j - bool operator>=( const vector_iterator& i, const vector_iterator& j ) { - return !(i - bool operator<=( const vector_iterator& i, const vector_iterator& j ) { - return !(j - ptrdiff_t operator-( const vector_iterator& i, const vector_iterator& j ) { - return ptrdiff_t(i.my_index)-ptrdiff_t(j.my_index); - } - - template - class allocator_base { - public: - typedef typename A::template - rebind::other allocator_type; - allocator_type my_allocator; - - allocator_base(const allocator_type &a = allocator_type() ) : my_allocator(a) {} - }; - -} // namespace internal -//! @endcond - -//! Concurrent vector container -/** concurrent_vector is a container having the following main properties: - - It provides random indexed access to its elements. The index of the first element is 0. - - It ensures safe concurrent growing its size (different threads can safely append new elements). - - Adding new elements does not invalidate existing iterators and does not change indices of existing items. - -@par Compatibility - The class meets all Container Requirements and Reversible Container Requirements from - C++ Standard (See ISO/IEC 14882:2003(E), clause 23.1). But it doesn't meet - Sequence Requirements due to absence of insert() and erase() methods. - -@par Exception Safety - Methods working with memory allocation and/or new elements construction can throw an - exception if allocator fails to allocate memory or element's default constructor throws one. - Concurrent vector's element of type T must conform to the following requirements: - - Throwing an exception is forbidden for destructor of T. - - Default constructor of T must not throw an exception OR its non-virtual destructor must safely work when its object memory is zero-initialized. - . - Otherwise, the program's behavior is undefined. -@par - If an exception happens inside growth or assignment operation, an instance of the vector becomes invalid unless it is stated otherwise in the method documentation. - Invalid state means: - - There are no guarantees that all items were initialized by a constructor. The rest of items is zero-filled, including item where exception happens. - - An invalid vector instance cannot be repaired; it is unable to grow anymore. - - Size and capacity reported by the vector are incorrect, and calculated as if the failed operation were successful. - - Attempt to access not allocated elements using operator[] or iterators results in access violation or segmentation fault exception, and in case of using at() method a C++ exception is thrown. - . - If a concurrent grow operation successfully completes, all the elements it has added to the vector will remain valid and accessible even if one of subsequent grow operations fails. - -@par Fragmentation - Unlike an STL vector, a concurrent_vector does not move existing elements if it needs - to allocate more memory. The container is divided into a series of contiguous arrays of - elements. The first reservation, growth, or assignment operation determines the size of - the first array. Using small number of elements as initial size incurs fragmentation that - may increase element access time. Internal layout can be optimized by method compact() that - merges several smaller arrays into one solid. - -@par Changes since TBB 2.1 - - Fixed guarantees of concurrent_vector::size() and grow_to_at_least() methods to assure elements are allocated. - - Methods end()/rbegin()/back() are partly thread-safe since they use size() to get the end of vector - - Added resize() methods (not thread-safe) - - Added cbegin/cend/crbegin/crend methods - - Changed return type of methods grow* and push_back to iterator - -@par Changes since TBB 2.0 - - Implemented exception-safety guarantees - - Added template argument for allocator - - Added allocator argument in constructors - - Faster index calculation - - First growth call specifies a number of segments to be merged in the first allocation. - - Fixed memory blow up for swarm of vector's instances of small size - - Added grow_by(size_type n, const_reference t) growth using copying constructor to init new items. - - Added STL-like constructors. - - Added operators ==, < and derivatives - - Added at() method, approved for using after an exception was thrown inside the vector - - Added get_allocator() method. - - Added assign() methods - - Added compact() method to defragment first segments - - Added swap() method - - range() defaults on grainsize = 1 supporting auto grainsize algorithms. - - @ingroup containers */ -template -class concurrent_vector: protected internal::allocator_base, - private internal::concurrent_vector_base { -private: - template - class generic_range_type: public blocked_range { - public: - typedef T value_type; - typedef T& reference; - typedef const T& const_reference; - typedef I iterator; - typedef ptrdiff_t difference_type; - generic_range_type( I begin_, I end_, size_t grainsize_ = 1) : blocked_range(begin_,end_,grainsize_) {} - template - generic_range_type( const generic_range_type& r) : blocked_range(r.begin(),r.end(),r.grainsize()) {} - generic_range_type( generic_range_type& r, split ) : blocked_range(r,split()) {} - }; - - template - friend class internal::vector_iterator; -public: - //------------------------------------------------------------------------ - // STL compatible types - //------------------------------------------------------------------------ - typedef internal::concurrent_vector_base_v3::size_type size_type; - typedef typename internal::allocator_base::allocator_type allocator_type; - - typedef T value_type; - typedef ptrdiff_t difference_type; - typedef T& reference; - typedef const T& const_reference; - typedef T *pointer; - typedef const T *const_pointer; - - typedef internal::vector_iterator iterator; - typedef internal::vector_iterator const_iterator; - -#if !defined(_MSC_VER) || _CPPLIB_VER>=300 - // Assume ISO standard definition of std::reverse_iterator - typedef std::reverse_iterator reverse_iterator; - typedef std::reverse_iterator const_reverse_iterator; -#else - // Use non-standard std::reverse_iterator - typedef std::reverse_iterator reverse_iterator; - typedef std::reverse_iterator const_reverse_iterator; -#endif /* defined(_MSC_VER) && (_MSC_VER<1300) */ - - //------------------------------------------------------------------------ - // Parallel algorithm support - //------------------------------------------------------------------------ - typedef generic_range_type range_type; - typedef generic_range_type const_range_type; - - //------------------------------------------------------------------------ - // STL compatible constructors & destructors - //------------------------------------------------------------------------ - - //! Construct empty vector. - explicit concurrent_vector(const allocator_type &a = allocator_type()) - : internal::allocator_base(a), internal::concurrent_vector_base() - { - vector_allocator_ptr = &internal_allocator; - } - -#if __TBB_INITIALIZER_LISTS_PRESENT - //! Constructor from initializer_list - concurrent_vector(std::initializer_list init_list, const allocator_type &a = allocator_type()) - : internal::allocator_base(a), internal::concurrent_vector_base() - { - vector_allocator_ptr = &internal_allocator; - __TBB_TRY { - internal_assign_iterators(init_list.begin(), init_list.end()); - } __TBB_CATCH(...) { - segment_t *table = my_segment; - internal_free_segments( reinterpret_cast(table), internal_clear(&destroy_array), my_first_block ); - __TBB_RETHROW(); - } - - } -#endif //# __TBB_INITIALIZER_LISTS_PRESENT - - //! Copying constructor - concurrent_vector( const concurrent_vector& vector, const allocator_type& a = allocator_type() ) - : internal::allocator_base(a), internal::concurrent_vector_base() - { - vector_allocator_ptr = &internal_allocator; - __TBB_TRY { - internal_copy(vector, sizeof(T), ©_array); - } __TBB_CATCH(...) { - segment_t *table = my_segment; - internal_free_segments( reinterpret_cast(table), internal_clear(&destroy_array), my_first_block ); - __TBB_RETHROW(); - } - } - - //! Copying constructor for vector with different allocator type - template - concurrent_vector( const concurrent_vector& vector, const allocator_type& a = allocator_type() ) - : internal::allocator_base(a), internal::concurrent_vector_base() - { - vector_allocator_ptr = &internal_allocator; - __TBB_TRY { - internal_copy(vector.internal_vector_base(), sizeof(T), ©_array); - } __TBB_CATCH(...) { - segment_t *table = my_segment; - internal_free_segments( reinterpret_cast(table), internal_clear(&destroy_array), my_first_block ); - __TBB_RETHROW(); - } - } - - //! Construction with initial size specified by argument n - explicit concurrent_vector(size_type n) - { - vector_allocator_ptr = &internal_allocator; - __TBB_TRY { - internal_resize( n, sizeof(T), max_size(), NULL, &destroy_array, &initialize_array ); - } __TBB_CATCH(...) { - segment_t *table = my_segment; - internal_free_segments( reinterpret_cast(table), internal_clear(&destroy_array), my_first_block ); - __TBB_RETHROW(); - } - } - - //! Construction with initial size specified by argument n, initialization by copying of t, and given allocator instance - concurrent_vector(size_type n, const_reference t, const allocator_type& a = allocator_type()) - : internal::allocator_base(a) - { - vector_allocator_ptr = &internal_allocator; - __TBB_TRY { - internal_resize( n, sizeof(T), max_size(), static_cast(&t), &destroy_array, &initialize_array_by ); - } __TBB_CATCH(...) { - segment_t *table = my_segment; - internal_free_segments( reinterpret_cast(table), internal_clear(&destroy_array), my_first_block ); - __TBB_RETHROW(); - } - } - - //! Construction with copying iteration range and given allocator instance - template - concurrent_vector(I first, I last, const allocator_type &a = allocator_type()) - : internal::allocator_base(a) - { - vector_allocator_ptr = &internal_allocator; - __TBB_TRY { - internal_assign_range(first, last, static_cast::is_integer> *>(0) ); - } __TBB_CATCH(...) { - segment_t *table = my_segment; - internal_free_segments( reinterpret_cast(table), internal_clear(&destroy_array), my_first_block ); - __TBB_RETHROW(); - } - } - - //! Assignment - concurrent_vector& operator=( const concurrent_vector& vector ) { - if( this != &vector ) - internal_assign(vector, sizeof(T), &destroy_array, &assign_array, ©_array); - return *this; - } - - //TODO: add an template assignment operator? (i.e. with different element type) - - //! Assignment for vector with different allocator type - template - concurrent_vector& operator=( const concurrent_vector& vector ) { - if( static_cast( this ) != static_cast( &vector ) ) - internal_assign(vector.internal_vector_base(), - sizeof(T), &destroy_array, &assign_array, ©_array); - return *this; - } - -#if __TBB_INITIALIZER_LISTS_PRESENT - //! Assignment for initializer_list - concurrent_vector& operator=( const std::initializer_list & init_list) { - internal_clear(&destroy_array); - internal_assign_iterators(init_list.begin(), init_list.end()); - return *this; - } -#endif //#if __TBB_INITIALIZER_LISTS_PRESENT - - //------------------------------------------------------------------------ - // Concurrent operations - //------------------------------------------------------------------------ - //TODO: consider adding overload of grow_by accepting range of iterators: grow_by(iterator,iterator) - //TODO: consider adding overload of grow_by accepting initializer_list: grow_by(std::initializer_list), as a analogy to std::vector::insert(initializer_list) - //! Grow by "delta" elements. -#if TBB_DEPRECATED - /** Returns old size. */ - size_type grow_by( size_type delta ) { - return delta ? internal_grow_by( delta, sizeof(T), &initialize_array, NULL ) : my_early_size.load(); - } -#else - /** Returns iterator pointing to the first new element. */ - iterator grow_by( size_type delta ) { - return iterator(*this, delta ? internal_grow_by( delta, sizeof(T), &initialize_array, NULL ) : my_early_size.load()); - } -#endif - - //! Grow by "delta" elements using copying constructor. -#if TBB_DEPRECATED - /** Returns old size. */ - size_type grow_by( size_type delta, const_reference t ) { - return delta ? internal_grow_by( delta, sizeof(T), &initialize_array_by, static_cast(&t) ) : my_early_size.load(); - } -#else - /** Returns iterator pointing to the first new element. */ - iterator grow_by( size_type delta, const_reference t ) { - return iterator(*this, delta ? internal_grow_by( delta, sizeof(T), &initialize_array_by, static_cast(&t) ) : my_early_size.load()); - } -#endif - - //! Append minimal sequence of elements such that size()>=n. -#if TBB_DEPRECATED - /** The new elements are default constructed. Blocks until all elements in range [0..n) are allocated. - May return while other elements are being constructed by other threads. */ - void grow_to_at_least( size_type n ) { - if( n ) internal_grow_to_at_least_with_result( n, sizeof(T), &initialize_array, NULL ); - }; -#else - /** The new elements are default constructed. Blocks until all elements in range [0..n) are allocated. - May return while other elements are being constructed by other threads. - Returns iterator that points to beginning of appended sequence. - If no elements were appended, returns iterator pointing to nth element. */ - iterator grow_to_at_least( size_type n ) { - size_type m=0; - if( n ) { - m = internal_grow_to_at_least_with_result( n, sizeof(T), &initialize_array, NULL ); - if( m>n ) m=n; - } - return iterator(*this, m); - }; -#endif - - //! Push item -#if TBB_DEPRECATED - size_type push_back( const_reference item ) -#else - /** Returns iterator pointing to the new element. */ - iterator push_back( const_reference item ) -#endif - { - size_type k; - void *ptr = internal_push_back(sizeof(T),k); - internal_loop_guide loop(1, ptr); - loop.init(&item); -#if TBB_DEPRECATED - return k; -#else - return iterator(*this, k, ptr); -#endif - } - - //! Get reference to element at given index. - /** This method is thread-safe for concurrent reads, and also while growing the vector, - as long as the calling thread has checked that index<size(). */ - reference operator[]( size_type index ) { - return internal_subscript(index); - } - - //! Get const reference to element at given index. - const_reference operator[]( size_type index ) const { - return internal_subscript(index); - } - - //! Get reference to element at given index. Throws exceptions on errors. - reference at( size_type index ) { - return internal_subscript_with_exceptions(index); - } - - //! Get const reference to element at given index. Throws exceptions on errors. - const_reference at( size_type index ) const { - return internal_subscript_with_exceptions(index); - } - - //! Get range for iterating with parallel algorithms - range_type range( size_t grainsize = 1 ) { - return range_type( begin(), end(), grainsize ); - } - - //! Get const range for iterating with parallel algorithms - const_range_type range( size_t grainsize = 1 ) const { - return const_range_type( begin(), end(), grainsize ); - } - - //------------------------------------------------------------------------ - // Capacity - //------------------------------------------------------------------------ - //! Return size of vector. It may include elements under construction - size_type size() const { - size_type sz = my_early_size, cp = internal_capacity(); - return cp < sz ? cp : sz; - } - - //! Return false if vector is not empty or has elements under construction at least. - bool empty() const {return !my_early_size;} - - //! Maximum size to which array can grow without allocating more memory. Concurrent allocations are not included in the value. - size_type capacity() const {return internal_capacity();} - - //! Allocate enough space to grow to size n without having to allocate more memory later. - /** Like most of the methods provided for STL compatibility, this method is *not* thread safe. - The capacity afterwards may be bigger than the requested reservation. */ - void reserve( size_type n ) { - if( n ) - internal_reserve(n, sizeof(T), max_size()); - } - - //! Resize the vector. Not thread-safe. - void resize( size_type n ) { - internal_resize( n, sizeof(T), max_size(), NULL, &destroy_array, &initialize_array ); - } - - //! Resize the vector, copy t for new elements. Not thread-safe. - void resize( size_type n, const_reference t ) { - internal_resize( n, sizeof(T), max_size(), static_cast(&t), &destroy_array, &initialize_array_by ); - } - -#if TBB_DEPRECATED - //! An alias for shrink_to_fit() - void compact() {shrink_to_fit();} -#endif /* TBB_DEPRECATED */ - - //! Optimize memory usage and fragmentation. - void shrink_to_fit(); - - //! Upper bound on argument to reserve. - size_type max_size() const {return (~size_type(0))/sizeof(T);} - - //------------------------------------------------------------------------ - // STL support - //------------------------------------------------------------------------ - - //! start iterator - iterator begin() {return iterator(*this,0);} - //! end iterator - iterator end() {return iterator(*this,size());} - //! start const iterator - const_iterator begin() const {return const_iterator(*this,0);} - //! end const iterator - const_iterator end() const {return const_iterator(*this,size());} - //! start const iterator - const_iterator cbegin() const {return const_iterator(*this,0);} - //! end const iterator - const_iterator cend() const {return const_iterator(*this,size());} - //! reverse start iterator - reverse_iterator rbegin() {return reverse_iterator(end());} - //! reverse end iterator - reverse_iterator rend() {return reverse_iterator(begin());} - //! reverse start const iterator - const_reverse_iterator rbegin() const {return const_reverse_iterator(end());} - //! reverse end const iterator - const_reverse_iterator rend() const {return const_reverse_iterator(begin());} - //! reverse start const iterator - const_reverse_iterator crbegin() const {return const_reverse_iterator(end());} - //! reverse end const iterator - const_reverse_iterator crend() const {return const_reverse_iterator(begin());} - //! the first item - reference front() { - __TBB_ASSERT( size()>0, NULL); - return static_cast(my_segment[0].array)[0]; - } - //! the first item const - const_reference front() const { - __TBB_ASSERT( size()>0, NULL); - return static_cast(my_segment[0].array)[0]; - } - //! the last item - reference back() { - __TBB_ASSERT( size()>0, NULL); - return internal_subscript( size()-1 ); - } - //! the last item const - const_reference back() const { - __TBB_ASSERT( size()>0, NULL); - return internal_subscript( size()-1 ); - } - //! return allocator object - allocator_type get_allocator() const { return this->my_allocator; } - - //! assign n items by copying t item - void assign(size_type n, const_reference t) { - clear(); - internal_resize( n, sizeof(T), max_size(), static_cast(&t), &destroy_array, &initialize_array_by ); - } - - //! assign range [first, last) - template - void assign(I first, I last) { - clear(); internal_assign_range( first, last, static_cast::is_integer> *>(0) ); - } - -#if __TBB_INITIALIZER_LISTS_PRESENT - //! assigns an initializer list - void assign(std::initializer_list init_list) { - clear(); internal_assign_iterators( init_list.begin(), init_list.end()); - } -#endif //# __TBB_INITIALIZER_LISTS_PRESENT - - //! swap two instances - void swap(concurrent_vector &vector) { - using std::swap; - if( this != &vector ) { - concurrent_vector_base_v3::internal_swap(static_cast(vector)); - swap(this->my_allocator, vector.my_allocator); - } - } - - //! Clear container while keeping memory allocated. - /** To free up the memory, use in conjunction with method compact(). Not thread safe **/ - void clear() { - internal_clear(&destroy_array); - } - - //! Clear and destroy vector. - ~concurrent_vector() { - segment_t *table = my_segment; - internal_free_segments( reinterpret_cast(table), internal_clear(&destroy_array), my_first_block ); - // base class destructor call should be then - } - - const internal::concurrent_vector_base_v3 &internal_vector_base() const { return *this; } -private: - //! Allocate k items - static void *internal_allocator(internal::concurrent_vector_base_v3 &vb, size_t k) { - return static_cast&>(vb).my_allocator.allocate(k); - } - //! Free k segments from table - void internal_free_segments(void *table[], segment_index_t k, segment_index_t first_block); - - //! Get reference to element at given index. - T& internal_subscript( size_type index ) const; - - //! Get reference to element at given index with errors checks - T& internal_subscript_with_exceptions( size_type index ) const; - - //! assign n items by copying t - void internal_assign_n(size_type n, const_pointer p) { - internal_resize( n, sizeof(T), max_size(), static_cast(p), &destroy_array, p? &initialize_array_by : &initialize_array ); - } - - //! helper class - template class is_integer_tag; - - //! assign integer items by copying when arguments are treated as iterators. See C++ Standard 2003 23.1.1p9 - template - void internal_assign_range(I first, I last, is_integer_tag *) { - internal_assign_n(static_cast(first), &static_cast(last)); - } - //! inline proxy assign by iterators - template - void internal_assign_range(I first, I last, is_integer_tag *) { - internal_assign_iterators(first, last); - } - //! assign by iterators - template - void internal_assign_iterators(I first, I last); - - //! Construct n instances of T, starting at "begin". - static void __TBB_EXPORTED_FUNC initialize_array( void* begin, const void*, size_type n ); - - //! Construct n instances of T, starting at "begin". - static void __TBB_EXPORTED_FUNC initialize_array_by( void* begin, const void* src, size_type n ); - - //! Construct n instances of T, starting at "begin". - static void __TBB_EXPORTED_FUNC copy_array( void* dst, const void* src, size_type n ); - - //! Assign n instances of T, starting at "begin". - static void __TBB_EXPORTED_FUNC assign_array( void* dst, const void* src, size_type n ); - - //! Destroy n instances of T, starting at "begin". - static void __TBB_EXPORTED_FUNC destroy_array( void* begin, size_type n ); - - //! Exception-aware helper class for filling a segment by exception-danger operators of user class - class internal_loop_guide : internal::no_copy { - public: - const pointer array; - const size_type n; - size_type i; - internal_loop_guide(size_type ntrials, void *ptr) - : array(static_cast(ptr)), n(ntrials), i(0) {} - void init() { for(; i < n; ++i) new( &array[i] ) T(); } - void init(const void *src) { for(; i < n; ++i) new( &array[i] ) T(*static_cast(src)); } - void copy(const void *src) { for(; i < n; ++i) new( &array[i] ) T(static_cast(src)[i]); } - void assign(const void *src) { for(; i < n; ++i) array[i] = static_cast(src)[i]; } - //TODO: rename to construct_range - template void iterate(I &src) { for(; i < n; ++i, ++src) new( &array[i] ) T( *src ); } - ~internal_loop_guide() { - if(i < n) // if exception raised, do zeroing on the rest of items - std::memset(array+i, 0, (n-i)*sizeof(value_type)); - } - }; -}; - -#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) -#pragma warning (push) -#pragma warning (disable: 4701) // potentially uninitialized local variable "old" -#endif -template -void concurrent_vector::shrink_to_fit() { - internal_segments_table old; - __TBB_TRY { - if( internal_compact( sizeof(T), &old, &destroy_array, ©_array ) ) - internal_free_segments( old.table, pointers_per_long_table, old.first_block ); // free joined and unnecessary segments - } __TBB_CATCH(...) { - if( old.first_block ) // free segment allocated for compacting. Only for support of exceptions in ctor of user T[ype] - internal_free_segments( old.table, 1, old.first_block ); - __TBB_RETHROW(); - } -} -#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) -#pragma warning (pop) -#endif // warning 4701 is back - -template -void concurrent_vector::internal_free_segments(void *table[], segment_index_t k, segment_index_t first_block) { - // Free the arrays - while( k > first_block ) { - --k; - T* array = static_cast(table[k]); - table[k] = NULL; - if( array > internal::vector_allocation_error_flag ) // check for correct segment pointer - this->my_allocator.deallocate( array, segment_size(k) ); - } - T* array = static_cast(table[0]); - if( array > internal::vector_allocation_error_flag ) { - __TBB_ASSERT( first_block > 0, NULL ); - while(k > 0) table[--k] = NULL; - this->my_allocator.deallocate( array, segment_size(first_block) ); - } -} - -template -T& concurrent_vector::internal_subscript( size_type index ) const { - __TBB_ASSERT( index < my_early_size, "index out of bounds" ); - size_type j = index; - segment_index_t k = segment_base_index_of( j ); - __TBB_ASSERT( (segment_t*)my_segment != my_storage || k < pointers_per_short_table, "index is being allocated" ); - // no need in __TBB_load_with_acquire since thread works in own space or gets - T* array = static_cast( tbb::internal::itt_hide_load_word(my_segment[k].array)); - __TBB_ASSERT( array != internal::vector_allocation_error_flag, "the instance is broken by bad allocation. Use at() instead" ); - __TBB_ASSERT( array, "index is being allocated" ); - return array[j]; -} - -template -T& concurrent_vector::internal_subscript_with_exceptions( size_type index ) const { - if( index >= my_early_size ) - internal::throw_exception(internal::eid_out_of_range); // throw std::out_of_range - size_type j = index; - segment_index_t k = segment_base_index_of( j ); - if( (segment_t*)my_segment == my_storage && k >= pointers_per_short_table ) - internal::throw_exception(internal::eid_segment_range_error); // throw std::range_error - void *array = my_segment[k].array; // no need in __TBB_load_with_acquire - if( array <= internal::vector_allocation_error_flag ) // check for correct segment pointer - internal::throw_exception(internal::eid_index_range_error); // throw std::range_error - return static_cast(array)[j]; -} - -template template -void concurrent_vector::internal_assign_iterators(I first, I last) { - __TBB_ASSERT(my_early_size == 0, NULL); - size_type n = std::distance(first, last); - if( !n ) return; - internal_reserve(n, sizeof(T), max_size()); - my_early_size = n; - segment_index_t k = 0; - size_type sz = segment_size( my_first_block ); - while( sz < n ) { - internal_loop_guide loop(sz, my_segment[k].array); - loop.iterate(first); - n -= sz; - if( !k ) k = my_first_block; - else { ++k; sz <<= 1; } - } - internal_loop_guide loop(n, my_segment[k].array); - loop.iterate(first); -} - -template -void concurrent_vector::initialize_array( void* begin, const void *, size_type n ) { - internal_loop_guide loop(n, begin); loop.init(); -} - -template -void concurrent_vector::initialize_array_by( void* begin, const void *src, size_type n ) { - internal_loop_guide loop(n, begin); loop.init(src); -} - -template -void concurrent_vector::copy_array( void* dst, const void* src, size_type n ) { - internal_loop_guide loop(n, dst); loop.copy(src); -} - -template -void concurrent_vector::assign_array( void* dst, const void* src, size_type n ) { - internal_loop_guide loop(n, dst); loop.assign(src); -} - -#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) - // Workaround for overzealous compiler warning - #pragma warning (push) - #pragma warning (disable: 4189) -#endif -template -void concurrent_vector::destroy_array( void* begin, size_type n ) { - T* array = static_cast(begin); - for( size_type j=n; j>0; --j ) - array[j-1].~T(); // destructors are supposed to not throw any exceptions -} -#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) - #pragma warning (pop) -#endif // warning 4189 is back - -// concurrent_vector's template functions -template -inline bool operator==(const concurrent_vector &a, const concurrent_vector &b) { - // Simply: return a.size() == b.size() && std::equal(a.begin(), a.end(), b.begin()); - if(a.size() != b.size()) return false; - typename concurrent_vector::const_iterator i(a.begin()); - typename concurrent_vector::const_iterator j(b.begin()); - for(; i != a.end(); ++i, ++j) - if( !(*i == *j) ) return false; - return true; -} - -template -inline bool operator!=(const concurrent_vector &a, const concurrent_vector &b) -{ return !(a == b); } - -template -inline bool operator<(const concurrent_vector &a, const concurrent_vector &b) -{ return (std::lexicographical_compare(a.begin(), a.end(), b.begin(), b.end())); } - -template -inline bool operator>(const concurrent_vector &a, const concurrent_vector &b) -{ return b < a; } - -template -inline bool operator<=(const concurrent_vector &a, const concurrent_vector &b) -{ return !(b < a); } - -template -inline bool operator>=(const concurrent_vector &a, const concurrent_vector &b) -{ return !(a < b); } - -template -inline void swap(concurrent_vector &a, concurrent_vector &b) -{ a.swap( b ); } - -} // namespace tbb - -#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) && defined(_Wp64) - #pragma warning (pop) -#endif // warning 4267 is back - -#endif /* __TBB_concurrent_vector_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/critical_section.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/critical_section.h deleted file mode 100644 index 45b2a5cf9..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/critical_section.h +++ /dev/null @@ -1,141 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef _TBB_CRITICAL_SECTION_H_ -#define _TBB_CRITICAL_SECTION_H_ - -#if _WIN32||_WIN64 -#include "machine/windows_api.h" -#else -#include -#include -#endif // _WIN32||WIN64 - -#include "tbb_stddef.h" -#include "tbb_thread.h" -#include "tbb_exception.h" - -#include "tbb_profiling.h" - -namespace tbb { - - namespace internal { -class critical_section_v4 : internal::no_copy { -#if _WIN32||_WIN64 - CRITICAL_SECTION my_impl; -#else - pthread_mutex_t my_impl; -#endif - tbb_thread::id my_tid; -public: - - void __TBB_EXPORTED_METHOD internal_construct(); - - critical_section_v4() { -#if _WIN32||_WIN64 - InitializeCriticalSectionEx( &my_impl, 4000, 0 ); -#else - pthread_mutex_init(&my_impl, NULL); -#endif - internal_construct(); - } - - ~critical_section_v4() { - __TBB_ASSERT(my_tid == tbb_thread::id(), "Destroying a still-held critical section"); -#if _WIN32||_WIN64 - DeleteCriticalSection(&my_impl); -#else - pthread_mutex_destroy(&my_impl); -#endif - } - - class scoped_lock : internal::no_copy { - private: - critical_section_v4 &my_crit; - public: - scoped_lock( critical_section_v4& lock_me) :my_crit(lock_me) { - my_crit.lock(); - } - - ~scoped_lock() { - my_crit.unlock(); - } - }; - - void lock() { - tbb_thread::id local_tid = this_tbb_thread::get_id(); - if(local_tid == my_tid) throw_exception( eid_improper_lock ); -#if _WIN32||_WIN64 - EnterCriticalSection( &my_impl ); -#else - int rval = pthread_mutex_lock(&my_impl); - __TBB_ASSERT_EX(!rval, "critical_section::lock: pthread_mutex_lock failed"); -#endif - __TBB_ASSERT(my_tid == tbb_thread::id(), NULL); - my_tid = local_tid; - } - - bool try_lock() { - bool gotlock; - tbb_thread::id local_tid = this_tbb_thread::get_id(); - if(local_tid == my_tid) return false; -#if _WIN32||_WIN64 - gotlock = TryEnterCriticalSection( &my_impl ) != 0; -#else - int rval = pthread_mutex_trylock(&my_impl); - // valid returns are 0 (locked) and [EBUSY] - __TBB_ASSERT(rval == 0 || rval == EBUSY, "critical_section::trylock: pthread_mutex_trylock failed"); - gotlock = rval == 0; -#endif - if(gotlock) { - my_tid = local_tid; - } - return gotlock; - } - - void unlock() { - __TBB_ASSERT(this_tbb_thread::get_id() == my_tid, "thread unlocking critical_section is not thread that locked it"); - my_tid = tbb_thread::id(); -#if _WIN32||_WIN64 - LeaveCriticalSection( &my_impl ); -#else - int rval = pthread_mutex_unlock(&my_impl); - __TBB_ASSERT_EX(!rval, "critical_section::unlock: pthread_mutex_unlock failed"); -#endif - } - - static const bool is_rw_mutex = false; - static const bool is_recursive_mutex = false; - static const bool is_fair_mutex = true; -}; // critical_section_v4 -} // namespace internal -typedef internal::critical_section_v4 critical_section; - -__TBB_DEFINE_PROFILING_SET_NAME(critical_section) -} // namespace tbb -#endif // _TBB_CRITICAL_SECTION_H_ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/enumerable_thread_specific.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/enumerable_thread_specific.h deleted file mode 100644 index bbf782768..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/enumerable_thread_specific.h +++ /dev/null @@ -1,1017 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_enumerable_thread_specific_H -#define __TBB_enumerable_thread_specific_H - -#include "concurrent_vector.h" -#include "tbb_thread.h" -#include "tbb_allocator.h" -#include "tbb_profiling.h" -#include "cache_aligned_allocator.h" -#include "aligned_space.h" -#include // for memcpy - -#if _WIN32||_WIN64 -#include "machine/windows_api.h" -#else -#include -#endif - -namespace tbb { - -//! enum for selecting between single key and key-per-instance versions -enum ets_key_usage_type { ets_key_per_instance, ets_no_key }; - -namespace interface6 { - - //! @cond - namespace internal { - - using namespace tbb::internal; - - template - class ets_base: tbb::internal::no_copy { - protected: -#if _WIN32||_WIN64 - typedef DWORD key_type; -#else - typedef pthread_t key_type; -#endif -#if __TBB_PROTECTED_NESTED_CLASS_BROKEN - public: -#endif - struct slot; - - struct array { - array* next; - size_t lg_size; - slot& at( size_t k ) { - return ((slot*)(void*)(this+1))[k]; - } - size_t size() const {return (size_t)1<>(8*sizeof(size_t)-lg_size); - } - }; - struct slot { - key_type key; - void* ptr; - bool empty() const {return !key;} - bool match( key_type k ) const {return key==k;} - bool claim( key_type k ) { - __TBB_ASSERT(sizeof(tbb::atomic)==sizeof(key_type), NULL); - return tbb::internal::punned_cast*>(&key)->compare_and_swap(k,0)==0; - } - }; -#if __TBB_PROTECTED_NESTED_CLASS_BROKEN - protected: -#endif - - static key_type key_of_current_thread() { - tbb::tbb_thread::id id = tbb::this_tbb_thread::get_id(); - key_type k; - memcpy( &k, &id, sizeof(k) ); - return k; - } - - //! Root of linked list of arrays of decreasing size. - /** NULL if and only if my_count==0. - Each array in the list is half the size of its predecessor. */ - atomic my_root; - atomic my_count; - virtual void* create_local() = 0; - virtual void* create_array(size_t _size) = 0; // _size in bytes - virtual void free_array(void* ptr, size_t _size) = 0; // _size in bytes - array* allocate( size_t lg_size ) { - size_t n = 1<(create_array( sizeof(array)+n*sizeof(slot) )); - a->lg_size = lg_size; - std::memset( a+1, 0, n*sizeof(slot) ); - return a; - } - void free(array* a) { - size_t n = 1<<(a->lg_size); - free_array( (void *)a, size_t(sizeof(array)+n*sizeof(slot)) ); - } - static size_t hash( key_type k ) { - // Multiplicative hashing. Client should use *upper* bits. - // casts required for Mac gcc4.* compiler - return uintptr_t(k)*tbb::internal::select_size_t_constant<0x9E3779B9,0x9E3779B97F4A7C15ULL>::value; - } - - ets_base() {my_root=NULL; my_count=0;} - virtual ~ets_base(); // g++ complains if this is not virtual... - void* table_lookup( bool& exists ); - void table_clear(); - // table_find is used in copying ETS, so is not used in concurrent context. So - // we don't need itt annotations for it. - slot& table_find( key_type k ) { - size_t h = hash(k); - array* r = my_root; - size_t mask = r->mask(); - for(size_t i = r->start(h);;i=(i+1)&mask) { - slot& s = r->at(i); - if( s.empty() || s.match(k) ) - return s; - } - } - void table_reserve_for_copy( const ets_base& other ) { - __TBB_ASSERT(!my_root,NULL); - __TBB_ASSERT(!my_count,NULL); - if( other.my_root ) { - array* a = allocate(other.my_root->lg_size); - a->next = NULL; - my_root = a; - my_count = other.my_count; - } - } - }; - - template - ets_base::~ets_base() { - __TBB_ASSERT(!my_root, NULL); - } - - template - void ets_base::table_clear() { - while( array* r = my_root ) { - my_root = r->next; - free(r); - } - my_count = 0; - } - - template - void* ets_base::table_lookup( bool& exists ) { - const key_type k = key_of_current_thread(); - - __TBB_ASSERT(k!=0,NULL); - void* found; - size_t h = hash(k); - for( array* r=my_root; r; r=r->next ) { - call_itt_notify(acquired,r); - size_t mask=r->mask(); - for(size_t i = r->start(h); ;i=(i+1)&mask) { - slot& s = r->at(i); - if( s.empty() ) break; - if( s.match(k) ) { - if( r==my_root ) { - // Success at top level - exists = true; - return s.ptr; - } else { - // Success at some other level. Need to insert at top level. - exists = true; - found = s.ptr; - goto insert; - } - } - } - } - // Key does not yet exist. The density of slots in the table does not exceed 0.5, - // for if this will occur a new table is allocated with double the current table - // size, which is swapped in as the new root table. So an empty slot is guaranteed. - exists = false; - found = create_local(); - { - size_t c = ++my_count; - array* r = my_root; - call_itt_notify(acquired,r); - if( !r || c>r->size()/2 ) { - size_t s = r ? r->lg_size : 2; - while( c>size_t(1)<<(s-1) ) ++s; - array* a = allocate(s); - for(;;) { - a->next = r; - call_itt_notify(releasing,a); - array* new_r = my_root.compare_and_swap(a,r); - if( new_r==r ) break; - call_itt_notify(acquired, new_r); - if( new_r->lg_size>=s ) { - // Another thread inserted an equal or bigger array, so our array is superfluous. - free(a); - break; - } - r = new_r; - } - } - } - insert: - // Whether a slot has been found in an older table, or if it has been inserted at this level, - // it has already been accounted for in the total. Guaranteed to be room for it, and it is - // not present, so search for empty slot and use it. - array* ir = my_root; - call_itt_notify(acquired, ir); - size_t mask = ir->mask(); - for(size_t i = ir->start(h);;i=(i+1)&mask) { - slot& s = ir->at(i); - if( s.empty() ) { - if( s.claim(k) ) { - s.ptr = found; - return found; - } - } - } - } - - //! Specialization that exploits native TLS - template <> - class ets_base: protected ets_base { - typedef ets_base super; -#if _WIN32||_WIN64 -#if __TBB_WIN8UI_SUPPORT - typedef DWORD tls_key_t; - void create_key() { my_key = FlsAlloc(NULL); } - void destroy_key() { FlsFree(my_key); } - void set_tls(void * value) { FlsSetValue(my_key, (LPVOID)value); } - void* get_tls() { return (void *)FlsGetValue(my_key); } -#else - typedef DWORD tls_key_t; - void create_key() { my_key = TlsAlloc(); } - void destroy_key() { TlsFree(my_key); } - void set_tls(void * value) { TlsSetValue(my_key, (LPVOID)value); } - void* get_tls() { return (void *)TlsGetValue(my_key); } -#endif -#else - typedef pthread_key_t tls_key_t; - void create_key() { pthread_key_create(&my_key, NULL); } - void destroy_key() { pthread_key_delete(my_key); } - void set_tls( void * value ) const { pthread_setspecific(my_key, value); } - void* get_tls() const { return pthread_getspecific(my_key); } -#endif - tls_key_t my_key; - virtual void* create_local() = 0; - virtual void* create_array(size_t _size) = 0; // _size in bytes - virtual void free_array(void* ptr, size_t _size) = 0; // size in bytes - public: - ets_base() {create_key();} - ~ets_base() {destroy_key();} - void* table_lookup( bool& exists ) { - void* found = get_tls(); - if( found ) { - exists=true; - } else { - found = super::table_lookup(exists); - set_tls(found); - } - return found; - } - void table_clear() { - destroy_key(); - create_key(); - super::table_clear(); - } - }; - - //! Random access iterator for traversing the thread local copies. - template< typename Container, typename Value > - class enumerable_thread_specific_iterator -#if defined(_WIN64) && defined(_MSC_VER) - // Ensure that Microsoft's internal template function _Val_type works correctly. - : public std::iterator -#endif /* defined(_WIN64) && defined(_MSC_VER) */ - { - //! current position in the concurrent_vector - - Container *my_container; - typename Container::size_type my_index; - mutable Value *my_value; - - template - friend enumerable_thread_specific_iterator operator+( ptrdiff_t offset, - const enumerable_thread_specific_iterator& v ); - - template - friend bool operator==( const enumerable_thread_specific_iterator& i, - const enumerable_thread_specific_iterator& j ); - - template - friend bool operator<( const enumerable_thread_specific_iterator& i, - const enumerable_thread_specific_iterator& j ); - - template - friend ptrdiff_t operator-( const enumerable_thread_specific_iterator& i, const enumerable_thread_specific_iterator& j ); - - template - friend class enumerable_thread_specific_iterator; - - public: - - enumerable_thread_specific_iterator( const Container &container, typename Container::size_type index ) : - my_container(&const_cast(container)), my_index(index), my_value(NULL) {} - - //! Default constructor - enumerable_thread_specific_iterator() : my_container(NULL), my_index(0), my_value(NULL) {} - - template - enumerable_thread_specific_iterator( const enumerable_thread_specific_iterator& other ) : - my_container( other.my_container ), my_index( other.my_index), my_value( const_cast(other.my_value) ) {} - - enumerable_thread_specific_iterator operator+( ptrdiff_t offset ) const { - return enumerable_thread_specific_iterator(*my_container, my_index + offset); - } - - enumerable_thread_specific_iterator &operator+=( ptrdiff_t offset ) { - my_index += offset; - my_value = NULL; - return *this; - } - - enumerable_thread_specific_iterator operator-( ptrdiff_t offset ) const { - return enumerable_thread_specific_iterator( *my_container, my_index-offset ); - } - - enumerable_thread_specific_iterator &operator-=( ptrdiff_t offset ) { - my_index -= offset; - my_value = NULL; - return *this; - } - - Value& operator*() const { - Value* value = my_value; - if( !value ) { - value = my_value = reinterpret_cast(&(*my_container)[my_index].value); - } - __TBB_ASSERT( value==reinterpret_cast(&(*my_container)[my_index].value), "corrupt cache" ); - return *value; - } - - Value& operator[]( ptrdiff_t k ) const { - return (*my_container)[my_index + k].value; - } - - Value* operator->() const {return &operator*();} - - enumerable_thread_specific_iterator& operator++() { - ++my_index; - my_value = NULL; - return *this; - } - - enumerable_thread_specific_iterator& operator--() { - --my_index; - my_value = NULL; - return *this; - } - - //! Post increment - enumerable_thread_specific_iterator operator++(int) { - enumerable_thread_specific_iterator result = *this; - ++my_index; - my_value = NULL; - return result; - } - - //! Post decrement - enumerable_thread_specific_iterator operator--(int) { - enumerable_thread_specific_iterator result = *this; - --my_index; - my_value = NULL; - return result; - } - - // STL support - typedef ptrdiff_t difference_type; - typedef Value value_type; - typedef Value* pointer; - typedef Value& reference; - typedef std::random_access_iterator_tag iterator_category; - }; - - template - enumerable_thread_specific_iterator operator+( ptrdiff_t offset, - const enumerable_thread_specific_iterator& v ) { - return enumerable_thread_specific_iterator( v.my_container, v.my_index + offset ); - } - - template - bool operator==( const enumerable_thread_specific_iterator& i, - const enumerable_thread_specific_iterator& j ) { - return i.my_index==j.my_index && i.my_container == j.my_container; - } - - template - bool operator!=( const enumerable_thread_specific_iterator& i, - const enumerable_thread_specific_iterator& j ) { - return !(i==j); - } - - template - bool operator<( const enumerable_thread_specific_iterator& i, - const enumerable_thread_specific_iterator& j ) { - return i.my_index - bool operator>( const enumerable_thread_specific_iterator& i, - const enumerable_thread_specific_iterator& j ) { - return j - bool operator>=( const enumerable_thread_specific_iterator& i, - const enumerable_thread_specific_iterator& j ) { - return !(i - bool operator<=( const enumerable_thread_specific_iterator& i, - const enumerable_thread_specific_iterator& j ) { - return !(j - ptrdiff_t operator-( const enumerable_thread_specific_iterator& i, - const enumerable_thread_specific_iterator& j ) { - return i.my_index-j.my_index; - } - - template - class segmented_iterator -#if defined(_WIN64) && defined(_MSC_VER) - : public std::iterator -#endif - { - template - friend bool operator==(const segmented_iterator& i, const segmented_iterator& j); - - template - friend bool operator!=(const segmented_iterator& i, const segmented_iterator& j); - - template - friend class segmented_iterator; - - public: - - segmented_iterator() {my_segcont = NULL;} - - segmented_iterator( const SegmentedContainer& _segmented_container ) : - my_segcont(const_cast(&_segmented_container)), - outer_iter(my_segcont->end()) { } - - ~segmented_iterator() {} - - typedef typename SegmentedContainer::iterator outer_iterator; - typedef typename SegmentedContainer::value_type InnerContainer; - typedef typename InnerContainer::iterator inner_iterator; - - // STL support - typedef ptrdiff_t difference_type; - typedef Value value_type; - typedef typename SegmentedContainer::size_type size_type; - typedef Value* pointer; - typedef Value& reference; - typedef std::input_iterator_tag iterator_category; - - // Copy Constructor - template - segmented_iterator(const segmented_iterator& other) : - my_segcont(other.my_segcont), - outer_iter(other.outer_iter), - // can we assign a default-constructed iterator to inner if we're at the end? - inner_iter(other.inner_iter) - {} - - // assignment - template - segmented_iterator& operator=( const segmented_iterator& other) { - if(this != &other) { - my_segcont = other.my_segcont; - outer_iter = other.outer_iter; - if(outer_iter != my_segcont->end()) inner_iter = other.inner_iter; - } - return *this; - } - - // allow assignment of outer iterator to segmented iterator. Once it is - // assigned, move forward until a non-empty inner container is found or - // the end of the outer container is reached. - segmented_iterator& operator=(const outer_iterator& new_outer_iter) { - __TBB_ASSERT(my_segcont != NULL, NULL); - // check that this iterator points to something inside the segmented container - for(outer_iter = new_outer_iter ;outer_iter!=my_segcont->end(); ++outer_iter) { - if( !outer_iter->empty() ) { - inner_iter = outer_iter->begin(); - break; - } - } - return *this; - } - - // pre-increment - segmented_iterator& operator++() { - advance_me(); - return *this; - } - - // post-increment - segmented_iterator operator++(int) { - segmented_iterator tmp = *this; - operator++(); - return tmp; - } - - bool operator==(const outer_iterator& other_outer) const { - __TBB_ASSERT(my_segcont != NULL, NULL); - return (outer_iter == other_outer && - (outer_iter == my_segcont->end() || inner_iter == outer_iter->begin())); - } - - bool operator!=(const outer_iterator& other_outer) const { - return !operator==(other_outer); - - } - - // (i)* RHS - reference operator*() const { - __TBB_ASSERT(my_segcont != NULL, NULL); - __TBB_ASSERT(outer_iter != my_segcont->end(), "Dereferencing a pointer at end of container"); - __TBB_ASSERT(inner_iter != outer_iter->end(), NULL); // should never happen - return *inner_iter; - } - - // i-> - pointer operator->() const { return &operator*();} - - private: - SegmentedContainer* my_segcont; - outer_iterator outer_iter; - inner_iterator inner_iter; - - void advance_me() { - __TBB_ASSERT(my_segcont != NULL, NULL); - __TBB_ASSERT(outer_iter != my_segcont->end(), NULL); // not true if there are no inner containers - __TBB_ASSERT(inner_iter != outer_iter->end(), NULL); // not true if the inner containers are all empty. - ++inner_iter; - while(inner_iter == outer_iter->end() && ++outer_iter != my_segcont->end()) { - inner_iter = outer_iter->begin(); - } - } - }; // segmented_iterator - - template - bool operator==( const segmented_iterator& i, - const segmented_iterator& j ) { - if(i.my_segcont != j.my_segcont) return false; - if(i.my_segcont == NULL) return true; - if(i.outer_iter != j.outer_iter) return false; - if(i.outer_iter == i.my_segcont->end()) return true; - return i.inner_iter == j.inner_iter; - } - - // != - template - bool operator!=( const segmented_iterator& i, - const segmented_iterator& j ) { - return !(i==j); - } - - template - struct destruct_only: tbb::internal::no_copy { - tbb::aligned_space value; - ~destruct_only() {value.begin()[0].~T();} - }; - - template - struct construct_by_default: tbb::internal::no_assign { - void construct(void*where) {new(where) T();} // C++ note: the () in T() ensure zero initialization. - construct_by_default( int ) {} - }; - - template - struct construct_by_exemplar: tbb::internal::no_assign { - const T exemplar; - void construct(void*where) {new(where) T(exemplar);} - construct_by_exemplar( const T& t ) : exemplar(t) {} - }; - - template - struct construct_by_finit: tbb::internal::no_assign { - Finit f; - void construct(void* where) {new(where) T(f());} - construct_by_finit( const Finit& f_ ) : f(f_) {} - }; - - // storage for initialization function pointer - template - class callback_base { - public: - // Clone *this - virtual callback_base* clone() = 0; - // Destruct and free *this - virtual void destroy() = 0; - // Need virtual destructor to satisfy GCC compiler warning - virtual ~callback_base() { } - // Construct T at where - virtual void construct(void* where) = 0; - }; - - template - class callback_leaf: public callback_base, Constructor { - template callback_leaf( const X& x ) : Constructor(x) {} - - typedef typename tbb::tbb_allocator my_allocator_type; - - /*override*/ callback_base* clone() { - void* where = my_allocator_type().allocate(1); - return new(where) callback_leaf(*this); - } - - /*override*/ void destroy() { - my_allocator_type().destroy(this); - my_allocator_type().deallocate(this,1); - } - - /*override*/ void construct(void* where) { - Constructor::construct(where); - } - public: - template - static callback_base* make( const X& x ) { - void* where = my_allocator_type().allocate(1); - return new(where) callback_leaf(x); - } - }; - - //! Template for adding padding in order to avoid false sharing - /** ModularSize should be sizeof(U) modulo the cache line size. - All maintenance of the space will be done explicitly on push_back, - and all thread local copies must be destroyed before the concurrent - vector is deleted. - */ - template - struct ets_element { - char value[ModularSize==0 ? sizeof(U) : sizeof(U)+(tbb::internal::NFS_MaxLineSize-ModularSize)]; - void unconstruct() { - tbb::internal::punned_cast(&value)->~U(); - } - }; - - } // namespace internal - //! @endcond - - //! The enumerable_thread_specific container - /** enumerable_thread_specific has the following properties: - - thread-local copies are lazily created, with default, exemplar or function initialization. - - thread-local copies do not move (during lifetime, and excepting clear()) so the address of a copy is invariant. - - the contained objects need not have operator=() defined if combine is not used. - - enumerable_thread_specific containers may be copy-constructed or assigned. - - thread-local copies can be managed by hash-table, or can be accessed via TLS storage for speed. - - outside of parallel contexts, the contents of all thread-local copies are accessible by iterator or using combine or combine_each methods - - @par Segmented iterator - When the thread-local objects are containers with input_iterators defined, a segmented iterator may - be used to iterate over all the elements of all thread-local copies. - - @par combine and combine_each - - Both methods are defined for enumerable_thread_specific. - - combine() requires the the type T have operator=() defined. - - neither method modifies the contents of the object (though there is no guarantee that the applied methods do not modify the object.) - - Both are evaluated in serial context (the methods are assumed to be non-benign.) - - @ingroup containers */ - template , - ets_key_usage_type ETS_key_type=ets_no_key > - class enumerable_thread_specific: internal::ets_base { - - template friend class enumerable_thread_specific; - - typedef internal::ets_element padded_element; - - //! A generic range, used to create range objects from the iterators - template - class generic_range_type: public blocked_range { - public: - typedef T value_type; - typedef T& reference; - typedef const T& const_reference; - typedef I iterator; - typedef ptrdiff_t difference_type; - generic_range_type( I begin_, I end_, size_t grainsize_ = 1) : blocked_range(begin_,end_,grainsize_) {} - template - generic_range_type( const generic_range_type& r) : blocked_range(r.begin(),r.end(),r.grainsize()) {} - generic_range_type( generic_range_type& r, split ) : blocked_range(r,split()) {} - }; - - typedef typename Allocator::template rebind< padded_element >::other padded_allocator_type; - typedef tbb::concurrent_vector< padded_element, padded_allocator_type > internal_collection_type; - - internal::callback_base *my_construct_callback; - - internal_collection_type my_locals; - - /*override*/ void* create_local() { -#if TBB_DEPRECATED - void* lref = &my_locals[my_locals.push_back(padded_element())]; -#else - void* lref = &*my_locals.push_back(padded_element()); -#endif - my_construct_callback->construct(lref); - return lref; - } - - void unconstruct_locals() { - for(typename internal_collection_type::iterator cvi = my_locals.begin(); cvi != my_locals.end(); ++cvi) { - cvi->unconstruct(); - } - } - - typedef typename Allocator::template rebind< uintptr_t >::other array_allocator_type; - - // _size is in bytes - /*override*/ void* create_array(size_t _size) { - size_t nelements = (_size + sizeof(uintptr_t) -1) / sizeof(uintptr_t); - return array_allocator_type().allocate(nelements); - } - - /*override*/ void free_array( void* _ptr, size_t _size) { - size_t nelements = (_size + sizeof(uintptr_t) -1) / sizeof(uintptr_t); - array_allocator_type().deallocate( reinterpret_cast(_ptr),nelements); - } - - public: - - //! Basic types - typedef Allocator allocator_type; - typedef T value_type; - typedef T& reference; - typedef const T& const_reference; - typedef T* pointer; - typedef const T* const_pointer; - typedef typename internal_collection_type::size_type size_type; - typedef typename internal_collection_type::difference_type difference_type; - - // Iterator types - typedef typename internal::enumerable_thread_specific_iterator< internal_collection_type, value_type > iterator; - typedef typename internal::enumerable_thread_specific_iterator< internal_collection_type, const value_type > const_iterator; - - // Parallel range types - typedef generic_range_type< iterator > range_type; - typedef generic_range_type< const_iterator > const_range_type; - - //! Default constructor. Each local instance of T is default constructed. - enumerable_thread_specific() : - my_construct_callback( internal::callback_leaf >::make(/*dummy argument*/0) ) - {} - - //! Constructor with initializer functor. Each local instance of T is constructed by T(finit()). - template - enumerable_thread_specific( Finit finit ) : - my_construct_callback( internal::callback_leaf >::make( finit ) ) - {} - - //! Constructor with exemplar. Each local instance of T is copied-constructed from the exemplar. - enumerable_thread_specific(const T& exemplar) : - my_construct_callback( internal::callback_leaf >::make( exemplar ) ) - {} - - //! Destructor - ~enumerable_thread_specific() { - my_construct_callback->destroy(); - this->clear(); // deallocation before the derived class is finished destructing - // So free(array *) is still accessible - } - - //! returns reference to local, discarding exists - reference local() { - bool exists; - return local(exists); - } - - //! Returns reference to calling thread's local copy, creating one if necessary - reference local(bool& exists) { - void* ptr = this->table_lookup(exists); - return *(T*)ptr; - } - - //! Get the number of local copies - size_type size() const { return my_locals.size(); } - - //! true if there have been no local copies created - bool empty() const { return my_locals.empty(); } - - //! begin iterator - iterator begin() { return iterator( my_locals, 0 ); } - //! end iterator - iterator end() { return iterator(my_locals, my_locals.size() ); } - - //! begin const iterator - const_iterator begin() const { return const_iterator(my_locals, 0); } - - //! end const iterator - const_iterator end() const { return const_iterator(my_locals, my_locals.size()); } - - //! Get range for parallel algorithms - range_type range( size_t grainsize=1 ) { return range_type( begin(), end(), grainsize ); } - - //! Get const range for parallel algorithms - const_range_type range( size_t grainsize=1 ) const { return const_range_type( begin(), end(), grainsize ); } - - //! Destroys local copies - void clear() { - unconstruct_locals(); - my_locals.clear(); - this->table_clear(); - // callback is not destroyed - // exemplar is not destroyed - } - - private: - - template - void internal_copy( const enumerable_thread_specific& other); - - public: - - template - enumerable_thread_specific( const enumerable_thread_specific& other ) : internal::ets_base () - { - internal_copy(other); - } - - enumerable_thread_specific( const enumerable_thread_specific& other ) : internal::ets_base () - { - internal_copy(other); - } - - private: - - template - enumerable_thread_specific & - internal_assign(const enumerable_thread_specific& other) { - if(static_cast( this ) != static_cast( &other )) { - this->clear(); - my_construct_callback->destroy(); - my_construct_callback = 0; - internal_copy( other ); - } - return *this; - } - - public: - - // assignment - enumerable_thread_specific& operator=(const enumerable_thread_specific& other) { - return internal_assign(other); - } - - template - enumerable_thread_specific& operator=(const enumerable_thread_specific& other) - { - return internal_assign(other); - } - - // combine_func_t has signature T(T,T) or T(const T&, const T&) - template - T combine(combine_func_t f_combine) { - if(begin() == end()) { - internal::destruct_only location; - my_construct_callback->construct(location.value.begin()); - return *location.value.begin(); - } - const_iterator ci = begin(); - T my_result = *ci; - while(++ci != end()) - my_result = f_combine( my_result, *ci ); - return my_result; - } - - // combine_func_t has signature void(T) or void(const T&) - template - void combine_each(combine_func_t f_combine) { - for(const_iterator ci = begin(); ci != end(); ++ci) { - f_combine( *ci ); - } - } - - }; // enumerable_thread_specific - - template - template - void enumerable_thread_specific::internal_copy( const enumerable_thread_specific& other) { - // Initialize my_construct_callback first, so that it is valid even if rest of this routine throws an exception. - my_construct_callback = other.my_construct_callback->clone(); - - typedef internal::ets_base base; - __TBB_ASSERT(my_locals.size()==0,NULL); - this->table_reserve_for_copy( other ); - for( base::array* r=other.my_root; r; r=r->next ) { - for( size_t i=0; isize(); ++i ) { - base::slot& s1 = r->at(i); - if( !s1.empty() ) { - base::slot& s2 = this->table_find(s1.key); - if( s2.empty() ) { -#if TBB_DEPRECATED - void* lref = &my_locals[my_locals.push_back(padded_element())]; -#else - void* lref = &*my_locals.push_back(padded_element()); -#endif - s2.ptr = new(lref) T(*(U*)s1.ptr); - s2.key = s1.key; - } else { - // Skip the duplicate - } - } - } - } - } - - template< typename Container > - class flattened2d { - - // This intermediate typedef is to address issues with VC7.1 compilers - typedef typename Container::value_type conval_type; - - public: - - //! Basic types - typedef typename conval_type::size_type size_type; - typedef typename conval_type::difference_type difference_type; - typedef typename conval_type::allocator_type allocator_type; - typedef typename conval_type::value_type value_type; - typedef typename conval_type::reference reference; - typedef typename conval_type::const_reference const_reference; - typedef typename conval_type::pointer pointer; - typedef typename conval_type::const_pointer const_pointer; - - typedef typename internal::segmented_iterator iterator; - typedef typename internal::segmented_iterator const_iterator; - - flattened2d( const Container &c, typename Container::const_iterator b, typename Container::const_iterator e ) : - my_container(const_cast(&c)), my_begin(b), my_end(e) { } - - flattened2d( const Container &c ) : - my_container(const_cast(&c)), my_begin(c.begin()), my_end(c.end()) { } - - iterator begin() { return iterator(*my_container) = my_begin; } - iterator end() { return iterator(*my_container) = my_end; } - const_iterator begin() const { return const_iterator(*my_container) = my_begin; } - const_iterator end() const { return const_iterator(*my_container) = my_end; } - - size_type size() const { - size_type tot_size = 0; - for(typename Container::const_iterator i = my_begin; i != my_end; ++i) { - tot_size += i->size(); - } - return tot_size; - } - - private: - - Container *my_container; - typename Container::const_iterator my_begin; - typename Container::const_iterator my_end; - - }; - - template - flattened2d flatten2d(const Container &c, const typename Container::const_iterator b, const typename Container::const_iterator e) { - return flattened2d(c, b, e); - } - - template - flattened2d flatten2d(const Container &c) { - return flattened2d(c); - } - -} // interface6 - -namespace internal { -using interface6::internal::segmented_iterator; -} - -using interface6::enumerable_thread_specific; -using interface6::flattened2d; -using interface6::flatten2d; - -} // namespace tbb - -#endif diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/flow_graph.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/flow_graph.h deleted file mode 100644 index cbe2bbc6d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/flow_graph.h +++ /dev/null @@ -1,2432 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_flow_graph_H -#define __TBB_flow_graph_H - -#include "tbb_stddef.h" -#include "atomic.h" -#include "spin_mutex.h" -#include "null_mutex.h" -#include "spin_rw_mutex.h" -#include "null_rw_mutex.h" -#include "task.h" -#include "concurrent_vector.h" -#include "internal/_aggregator_impl.h" -#include "tbb_profiling.h" - -#if TBB_DEPRECATED_FLOW_ENQUEUE -#define FLOW_SPAWN(a) tbb::task::enqueue((a)) -#else -#define FLOW_SPAWN(a) tbb::task::spawn((a)) -#endif - -// use the VC10 or gcc version of tuple if it is available. -#if __TBB_CPP11_TUPLE_PRESENT - #include -namespace tbb { - namespace flow { - using std::tuple; - using std::tuple_size; - using std::tuple_element; - using std::get; - } -} -#else - #include "compat/tuple" -#endif - -#include -#include - -/** @file - \brief The graph related classes and functions - - There are some applications that best express dependencies as messages - passed between nodes in a graph. These messages may contain data or - simply act as signals that a predecessors has completed. The graph - class and its associated node classes can be used to express such - applcations. -*/ - -namespace tbb { -namespace flow { - -//! An enumeration the provides the two most common concurrency levels: unlimited and serial -enum concurrency { unlimited = 0, serial = 1 }; - -namespace interface7 { - -namespace internal { - template class successor_cache; - template class broadcast_cache; - template class round_robin_cache; -} - -//! An empty class used for messages that mean "I'm done" -class continue_msg {}; - -template< typename T > class sender; -template< typename T > class receiver; -class continue_receiver; - -//! Pure virtual template class that defines a sender of messages of type T -template< typename T > -class sender { -public: - //! The output type of this sender - typedef T output_type; - - //! The successor type for this node - typedef receiver successor_type; - - virtual ~sender() {} - - //! Add a new successor to this node - virtual bool register_successor( successor_type &r ) = 0; - - //! Removes a successor from this node - virtual bool remove_successor( successor_type &r ) = 0; - - //! Request an item from the sender - virtual bool try_get( T & ) { return false; } - - //! Reserves an item in the sender - virtual bool try_reserve( T & ) { return false; } - - //! Releases the reserved item - virtual bool try_release( ) { return false; } - - //! Consumes the reserved item - virtual bool try_consume( ) { return false; } -}; - -template< typename T > class limiter_node; // needed for resetting decrementer -template< typename R, typename B > class run_and_put_task; - -static tbb::task * const SUCCESSFULLY_ENQUEUED = (task *)-1; - -// enqueue left task if necessary. Returns the non-enqueued task if there is one. -static inline tbb::task *combine_tasks( tbb::task * left, tbb::task * right) { - // if no RHS task, don't change left. - if(right == NULL) return left; - // right != NULL - if(left == NULL) return right; - if(left == SUCCESSFULLY_ENQUEUED) return right; - // left contains a task - if(right != SUCCESSFULLY_ENQUEUED) { - // both are valid tasks - FLOW_SPAWN(*left); - return right; - } - return left; -} - -//! Pure virtual template class that defines a receiver of messages of type T -template< typename T > -class receiver { -public: - //! The input type of this receiver - typedef T input_type; - - //! The predecessor type for this node - typedef sender predecessor_type; - - //! Destructor - virtual ~receiver() {} - - //! Put an item to the receiver - bool try_put( const T& t ) { - task *res = try_put_task(t); - if(!res) return false; - if (res != SUCCESSFULLY_ENQUEUED) FLOW_SPAWN(*res); - return true; - } - - //! put item to successor; return task to run the successor if possible. -protected: - template< typename R, typename B > friend class run_and_put_task; - template friend class internal::broadcast_cache; - template friend class internal::round_robin_cache; - virtual task *try_put_task(const T& t) = 0; -public: - - //! Add a predecessor to the node - virtual bool register_predecessor( predecessor_type & ) { return false; } - - //! Remove a predecessor from the node - virtual bool remove_predecessor( predecessor_type & ) { return false; } - -protected: - //! put receiver back in initial state - template friend class limiter_node; - virtual void reset_receiver() = 0; - - template - friend class internal::successor_cache; - virtual bool is_continue_receiver() { return false; } -}; - -//! Base class for receivers of completion messages -/** These receivers automatically reset, but cannot be explicitly waited on */ -class continue_receiver : public receiver< continue_msg > { -public: - - //! The input type - typedef continue_msg input_type; - - //! The predecessor type for this node - typedef sender< continue_msg > predecessor_type; - - //! Constructor - continue_receiver( int number_of_predecessors = 0 ) { - my_predecessor_count = my_initial_predecessor_count = number_of_predecessors; - my_current_count = 0; - } - - //! Copy constructor - continue_receiver( const continue_receiver& src ) : receiver() { - my_predecessor_count = my_initial_predecessor_count = src.my_initial_predecessor_count; - my_current_count = 0; - } - - //! Destructor - virtual ~continue_receiver() { } - - //! Increments the trigger threshold - /* override */ bool register_predecessor( predecessor_type & ) { - spin_mutex::scoped_lock l(my_mutex); - ++my_predecessor_count; - return true; - } - - //! Decrements the trigger threshold - /** Does not check to see if the removal of the predecessor now makes the current count - exceed the new threshold. So removing a predecessor while the graph is active can cause - unexpected results. */ - /* override */ bool remove_predecessor( predecessor_type & ) { - spin_mutex::scoped_lock l(my_mutex); - --my_predecessor_count; - return true; - } - -protected: - template< typename R, typename B > friend class run_and_put_task; - template friend class internal::broadcast_cache; - template friend class internal::round_robin_cache; - // execute body is supposed to be too small to create a task for. - /* override */ task *try_put_task( const input_type & ) { - { - spin_mutex::scoped_lock l(my_mutex); - if ( ++my_current_count < my_predecessor_count ) - return SUCCESSFULLY_ENQUEUED; - else - my_current_count = 0; - } - task * res = execute(); - if(!res) return SUCCESSFULLY_ENQUEUED; - return res; - } - - spin_mutex my_mutex; - int my_predecessor_count; - int my_current_count; - int my_initial_predecessor_count; - // the friend declaration in the base class did not eliminate the "protected class" - // error in gcc 4.1.2 - template friend class limiter_node; - /*override*/void reset_receiver() { - my_current_count = 0; - } - - //! Does whatever should happen when the threshold is reached - /** This should be very fast or else spawn a task. This is - called while the sender is blocked in the try_put(). */ - virtual task * execute() = 0; - template - friend class internal::successor_cache; - /*override*/ bool is_continue_receiver() { return true; } -}; -} // interface7 -} // flow -} // tbb - -#include "internal/_flow_graph_trace_impl.h" - -namespace tbb { -namespace flow { -namespace interface7 { - -#include "internal/_flow_graph_impl.h" -using namespace internal::graph_policy_namespace; - -class graph; -class graph_node; - -template -class graph_iterator { - friend class graph; - friend class graph_node; -public: - typedef size_t size_type; - typedef GraphNodeType value_type; - typedef GraphNodeType* pointer; - typedef GraphNodeType& reference; - typedef const GraphNodeType& const_reference; - typedef std::forward_iterator_tag iterator_category; - - //! Default constructor - graph_iterator() : my_graph(NULL), current_node(NULL) {} - - //! Copy constructor - graph_iterator(const graph_iterator& other) : - my_graph(other.my_graph), current_node(other.current_node) - {} - - //! Assignment - graph_iterator& operator=(const graph_iterator& other) { - if (this != &other) { - my_graph = other.my_graph; - current_node = other.current_node; - } - return *this; - } - - //! Dereference - reference operator*() const; - - //! Dereference - pointer operator->() const; - - //! Equality - bool operator==(const graph_iterator& other) const { - return ((my_graph == other.my_graph) && (current_node == other.current_node)); - } - - //! Inequality - bool operator!=(const graph_iterator& other) const { return !(operator==(other)); } - - //! Pre-increment - graph_iterator& operator++() { - internal_forward(); - return *this; - } - - //! Post-increment - graph_iterator operator++(int) { - graph_iterator result = *this; - operator++(); - return result; - } - -private: - // the graph over which we are iterating - GraphContainerType *my_graph; - // pointer into my_graph's my_nodes list - pointer current_node; - - //! Private initializing constructor for begin() and end() iterators - graph_iterator(GraphContainerType *g, bool begin); - void internal_forward(); -}; - -//! The graph class -/** This class serves as a handle to the graph */ -class graph : tbb::internal::no_copy { - friend class graph_node; - - template< typename Body > - class run_task : public task { - public: - run_task( Body& body ) : my_body(body) {} - task *execute() { - my_body(); - return NULL; - } - private: - Body my_body; - }; - - template< typename Receiver, typename Body > - class run_and_put_task : public task { - public: - run_and_put_task( Receiver &r, Body& body ) : my_receiver(r), my_body(body) {} - task *execute() { - task *res = my_receiver.try_put_task( my_body() ); - if(res == SUCCESSFULLY_ENQUEUED) res = NULL; - return res; - } - private: - Receiver &my_receiver; - Body my_body; - }; - -public: - //! Constructs a graph with isolated task_group_context - explicit graph() : my_nodes(NULL), my_nodes_last(NULL) - { - own_context = true; - cancelled = false; - caught_exception = false; - my_context = new task_group_context(); - my_root_task = ( new ( task::allocate_root(*my_context) ) empty_task ); - my_root_task->set_ref_count(1); - tbb::internal::fgt_graph( this ); - } - - //! Constructs a graph with use_this_context as context - explicit graph(task_group_context& use_this_context) : - my_context(&use_this_context), my_nodes(NULL), my_nodes_last(NULL) - { - own_context = false; - my_root_task = ( new ( task::allocate_root(*my_context) ) empty_task ); - my_root_task->set_ref_count(1); - tbb::internal::fgt_graph( this ); - } - - //! Destroys the graph. - /** Calls wait_for_all, then destroys the root task and context. */ - ~graph() { - wait_for_all(); - my_root_task->set_ref_count(0); - task::destroy( *my_root_task ); - if (own_context) delete my_context; - } - -#if TBB_PREVIEW_FLOW_GRAPH_TRACE - void set_name( const char *name ) { - tbb::internal::fgt_graph_desc( this, name ); - } -#endif - - //! Used to register that an external entity may still interact with the graph. - /** The graph will not return from wait_for_all until a matching number of decrement_wait_count calls - is made. */ - void increment_wait_count() { - if (my_root_task) - my_root_task->increment_ref_count(); - } - - //! Deregisters an external entity that may have interacted with the graph. - /** The graph will not return from wait_for_all until all the number of decrement_wait_count calls - matches the number of increment_wait_count calls. */ - void decrement_wait_count() { - if (my_root_task) - my_root_task->decrement_ref_count(); - } - - //! Spawns a task that runs a body and puts its output to a specific receiver - /** The task is spawned as a child of the graph. This is useful for running tasks - that need to block a wait_for_all() on the graph. For example a one-off source. */ - template< typename Receiver, typename Body > - void run( Receiver &r, Body body ) { - FLOW_SPAWN( (* new ( task::allocate_additional_child_of( *my_root_task ) ) - run_and_put_task< Receiver, Body >( r, body )) ); - } - - //! Spawns a task that runs a function object - /** The task is spawned as a child of the graph. This is useful for running tasks - that need to block a wait_for_all() on the graph. For example a one-off source. */ - template< typename Body > - void run( Body body ) { - FLOW_SPAWN( * new ( task::allocate_additional_child_of( *my_root_task ) ) run_task< Body >( body ) ); - } - - //! Wait until graph is idle and decrement_wait_count calls equals increment_wait_count calls. - /** The waiting thread will go off and steal work while it is block in the wait_for_all. */ - void wait_for_all() { - cancelled = false; - caught_exception = false; - if (my_root_task) { -#if TBB_USE_EXCEPTIONS - try { -#endif - my_root_task->wait_for_all(); - cancelled = my_context->is_group_execution_cancelled(); -#if TBB_USE_EXCEPTIONS - } - catch(...) { - my_root_task->set_ref_count(1); - my_context->reset(); - caught_exception = true; - cancelled = true; - throw; - } -#endif - my_context->reset(); // consistent with behavior in catch() - my_root_task->set_ref_count(1); - } - } - - //! Returns the root task of the graph - task * root_task() { - return my_root_task; - } - - // ITERATORS - template - friend class graph_iterator; - - // Graph iterator typedefs - typedef graph_iterator iterator; - typedef graph_iterator const_iterator; - - // Graph iterator constructors - //! start iterator - iterator begin() { return iterator(this, true); } - //! end iterator - iterator end() { return iterator(this, false); } - //! start const iterator - const_iterator begin() const { return const_iterator(this, true); } - //! end const iterator - const_iterator end() const { return const_iterator(this, false); } - //! start const iterator - const_iterator cbegin() const { return const_iterator(this, true); } - //! end const iterator - const_iterator cend() const { return const_iterator(this, false); } - - //! return status of graph execution - bool is_cancelled() { return cancelled; } - bool exception_thrown() { return caught_exception; } - - // un-thread-safe state reset. - void reset(); - -private: - task *my_root_task; - task_group_context *my_context; - bool own_context; - bool cancelled; - bool caught_exception; - - graph_node *my_nodes, *my_nodes_last; - - spin_mutex nodelist_mutex; - void register_node(graph_node *n); - void remove_node(graph_node *n); - -}; // class graph - -template -graph_iterator::graph_iterator(C *g, bool begin) : my_graph(g), current_node(NULL) -{ - if (begin) current_node = my_graph->my_nodes; - //else it is an end iterator by default -} - -template -typename graph_iterator::reference graph_iterator::operator*() const { - __TBB_ASSERT(current_node, "graph_iterator at end"); - return *operator->(); -} - -template -typename graph_iterator::pointer graph_iterator::operator->() const { - return current_node; -} - - -template -void graph_iterator::internal_forward() { - if (current_node) current_node = current_node->next; -} - -//! The base of all graph nodes. -class graph_node : tbb::internal::no_assign { - friend class graph; - template - friend class graph_iterator; -protected: - graph& my_graph; - graph_node *next, *prev; -public: - graph_node(graph& g) : my_graph(g) { - my_graph.register_node(this); - } - virtual ~graph_node() { - my_graph.remove_node(this); - } - -#if TBB_PREVIEW_FLOW_GRAPH_TRACE - virtual void set_name( const char *name ) = 0; -#endif - -protected: - virtual void reset() = 0; -}; - -inline void graph::register_node(graph_node *n) { - n->next = NULL; - { - spin_mutex::scoped_lock lock(nodelist_mutex); - n->prev = my_nodes_last; - if (my_nodes_last) my_nodes_last->next = n; - my_nodes_last = n; - if (!my_nodes) my_nodes = n; - } -} - -inline void graph::remove_node(graph_node *n) { - { - spin_mutex::scoped_lock lock(nodelist_mutex); - __TBB_ASSERT(my_nodes && my_nodes_last, "graph::remove_node: Error: no registered nodes"); - if (n->prev) n->prev->next = n->next; - if (n->next) n->next->prev = n->prev; - if (my_nodes_last == n) my_nodes_last = n->prev; - if (my_nodes == n) my_nodes = n->next; - } - n->prev = n->next = NULL; -} - -inline void graph::reset() { - // reset context - task *saved_my_root_task = my_root_task; - my_root_task = NULL; - if(my_context) my_context->reset(); - cancelled = false; - caught_exception = false; - // reset all the nodes comprising the graph - for(iterator ii = begin(); ii != end(); ++ii) { - graph_node *my_p = &(*ii); - my_p->reset(); - } - my_root_task = saved_my_root_task; -} - - -#include "internal/_flow_graph_node_impl.h" - -//! An executable node that acts as a source, i.e. it has no predecessors -template < typename Output > -class source_node : public graph_node, public sender< Output > { -protected: - using graph_node::my_graph; -public: - //! The type of the output message, which is complete - typedef Output output_type; - - //! The type of successors of this node - typedef receiver< Output > successor_type; - - //! Constructor for a node with a successor - template< typename Body > - source_node( graph &g, Body body, bool is_active = true ) - : graph_node(g), my_active(is_active), init_my_active(is_active), - my_body( new internal::source_body_leaf< output_type, Body>(body) ), - my_reserved(false), my_has_cached_item(false) - { - my_successors.set_owner(this); - tbb::internal::fgt_node_with_body( tbb::internal::FLOW_SOURCE_NODE, &this->my_graph, - static_cast *>(this), this->my_body ); - } - - //! Copy constructor - source_node( const source_node& src ) : - graph_node(src.my_graph), sender(), - my_active(src.init_my_active), - init_my_active(src.init_my_active), my_body( src.my_body->clone() ), - my_reserved(false), my_has_cached_item(false) - { - my_successors.set_owner(this); - tbb::internal::fgt_node_with_body( tbb::internal::FLOW_SOURCE_NODE, &this->my_graph, - static_cast *>(this), this->my_body ); - } - - //! The destructor - ~source_node() { delete my_body; } - -#if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { - tbb::internal::fgt_node_desc( this, name ); - } -#endif - - //! Add a new successor to this node - /* override */ bool register_successor( receiver &r ) { - spin_mutex::scoped_lock lock(my_mutex); - my_successors.register_successor(r); - if ( my_active ) - spawn_put(); - return true; - } - - //! Removes a successor from this node - /* override */ bool remove_successor( receiver &r ) { - spin_mutex::scoped_lock lock(my_mutex); - my_successors.remove_successor(r); - return true; - } - - //! Request an item from the node - /*override */ bool try_get( output_type &v ) { - spin_mutex::scoped_lock lock(my_mutex); - if ( my_reserved ) - return false; - - if ( my_has_cached_item ) { - v = my_cached_item; - my_has_cached_item = false; - return true; - } - // we've been asked to provide an item, but we have none. enqueue a task to - // provide one. - spawn_put(); - return false; - } - - //! Reserves an item. - /* override */ bool try_reserve( output_type &v ) { - spin_mutex::scoped_lock lock(my_mutex); - if ( my_reserved ) { - return false; - } - - if ( my_has_cached_item ) { - v = my_cached_item; - my_reserved = true; - return true; - } else { - return false; - } - } - - //! Release a reserved item. - /** true = item has been released and so remains in sender, dest must request or reserve future items */ - /* override */ bool try_release( ) { - spin_mutex::scoped_lock lock(my_mutex); - __TBB_ASSERT( my_reserved && my_has_cached_item, "releasing non-existent reservation" ); - my_reserved = false; - if(!my_successors.empty()) - spawn_put(); - return true; - } - - //! Consumes a reserved item - /* override */ bool try_consume( ) { - spin_mutex::scoped_lock lock(my_mutex); - __TBB_ASSERT( my_reserved && my_has_cached_item, "consuming non-existent reservation" ); - my_reserved = false; - my_has_cached_item = false; - if ( !my_successors.empty() ) { - spawn_put(); - } - return true; - } - - //! Activates a node that was created in the inactive state - void activate() { - spin_mutex::scoped_lock lock(my_mutex); - my_active = true; - if ( !my_successors.empty() ) - spawn_put(); - } - - template - Body copy_function_object() { - internal::source_body &body_ref = *this->my_body; - return dynamic_cast< internal::source_body_leaf & >(body_ref).get_body(); - } - -protected: - - //! resets the node to its initial state - void reset() { - my_active = init_my_active; - my_reserved =false; - if(my_has_cached_item) { - my_has_cached_item = false; - } - } - -private: - spin_mutex my_mutex; - bool my_active; - bool init_my_active; - internal::source_body *my_body; - internal::broadcast_cache< output_type > my_successors; - bool my_reserved; - bool my_has_cached_item; - output_type my_cached_item; - - // used by apply_body, can invoke body of node. - bool try_reserve_apply_body(output_type &v) { - spin_mutex::scoped_lock lock(my_mutex); - if ( my_reserved ) { - return false; - } - if ( !my_has_cached_item ) { - tbb::internal::fgt_begin_body( my_body ); - bool r = (*my_body)(my_cached_item); - tbb::internal::fgt_end_body( my_body ); - if (r) { - my_has_cached_item = true; - } - } - if ( my_has_cached_item ) { - v = my_cached_item; - my_reserved = true; - return true; - } else { - return false; - } - } - - //! Spawns a task that applies the body - /* override */ void spawn_put( ) { - task* tp = this->my_graph.root_task(); - if(tp) { - FLOW_SPAWN( (* new ( task::allocate_additional_child_of( *tp ) ) - internal:: source_task_bypass < source_node< output_type > >( *this ) ) ); - } - } - - friend class internal::source_task_bypass< source_node< output_type > >; - //! Applies the body. Returning SUCCESSFULLY_ENQUEUED okay; forward_task_bypass will handle it. - /* override */ task * apply_body_bypass( ) { - output_type v; - if ( !try_reserve_apply_body(v) ) - return NULL; - - task *last_task = my_successors.try_put_task(v); - if ( last_task ) - try_consume(); - else - try_release(); - return last_task; - } -}; // source_node - -//! Implements a function node that supports Input -> Output -template < typename Input, typename Output = continue_msg, graph_buffer_policy = queueing, typename Allocator=cache_aligned_allocator > -class function_node : public graph_node, public internal::function_input, public internal::function_output { -protected: - using graph_node::my_graph; -public: - typedef Input input_type; - typedef Output output_type; - typedef sender< input_type > predecessor_type; - typedef receiver< output_type > successor_type; - typedef internal::function_input fInput_type; - typedef internal::function_output fOutput_type; - - //! Constructor - template< typename Body > - function_node( graph &g, size_t concurrency, Body body ) : - graph_node(g), internal::function_input(g, concurrency, body) { - tbb::internal::fgt_node_with_body( tbb::internal::FLOW_FUNCTION_NODE, &this->graph_node::my_graph, static_cast *>(this), - static_cast *>(this), this->my_body ); - } - - //! Copy constructor - function_node( const function_node& src ) : - graph_node(src.my_graph), internal::function_input( src ), - fOutput_type() { - tbb::internal::fgt_node_with_body( tbb::internal::FLOW_FUNCTION_NODE, &this->my_graph, static_cast *>(this), - static_cast *>(this), this->my_body ); - } - -#if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { - tbb::internal::fgt_node_desc( this, name ); - } -#endif - -protected: - template< typename R, typename B > friend class run_and_put_task; - template friend class internal::broadcast_cache; - template friend class internal::round_robin_cache; - using fInput_type::try_put_task; - - // override of graph_node's reset. - /*override*/void reset() {fInput_type::reset_function_input(); } - - /* override */ internal::broadcast_cache &successors () { return fOutput_type::my_successors; } -}; - -//! Implements a function node that supports Input -> Output -template < typename Input, typename Output, typename Allocator > -class function_node : public graph_node, public internal::function_input, public internal::function_output { -protected: - using graph_node::my_graph; -public: - typedef Input input_type; - typedef Output output_type; - typedef sender< input_type > predecessor_type; - typedef receiver< output_type > successor_type; - typedef internal::function_input fInput_type; - typedef internal::function_input_queue queue_type; - typedef internal::function_output fOutput_type; - - //! Constructor - template< typename Body > - function_node( graph &g, size_t concurrency, Body body ) : - graph_node(g), fInput_type( g, concurrency, body, new queue_type() ) { - tbb::internal::fgt_node_with_body( tbb::internal::FLOW_FUNCTION_NODE, &this->graph_node::my_graph, static_cast *>(this), - static_cast *>(this), this->my_body ); - } - - //! Copy constructor - function_node( const function_node& src ) : - graph_node(src.graph_node::my_graph), fInput_type( src, new queue_type() ), fOutput_type() { - tbb::internal::fgt_node_with_body( tbb::internal::FLOW_FUNCTION_NODE, &this->graph_node::my_graph, static_cast *>(this), - static_cast *>(this), this->my_body ); - } - -#if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { - tbb::internal::fgt_node_desc( this, name ); - } -#endif - -protected: - template< typename R, typename B > friend class run_and_put_task; - template friend class internal::broadcast_cache; - template friend class internal::round_robin_cache; - using fInput_type::try_put_task; - - /*override*/void reset() { fInput_type::reset_function_input(); } - - /* override */ internal::broadcast_cache &successors () { return fOutput_type::my_successors; } -}; - -#include "tbb/internal/_flow_graph_types_impl.h" - -//! implements a function node that supports Input -> (set of outputs) -// Output is a tuple of output types. -template < typename Input, typename Output, graph_buffer_policy = queueing, typename Allocator=cache_aligned_allocator > -class multifunction_node : - public graph_node, - public internal::multifunction_input - < - Input, - typename internal::wrap_tuple_elements< - tbb::flow::tuple_size::value, // #elements in tuple - internal::multifunction_output, // wrap this around each element - Output // the tuple providing the types - >::type, - Allocator - > { -protected: - using graph_node::my_graph; -private: - static const int N = tbb::flow::tuple_size::value; -public: - typedef Input input_type; - typedef typename internal::wrap_tuple_elements::type output_ports_type; -private: - typedef typename internal::multifunction_input base_type; - typedef typename internal::function_input_queue queue_type; -public: - template - multifunction_node( graph &g, size_t concurrency, Body body ) : - graph_node(g), base_type(g,concurrency, body) { - tbb::internal::fgt_multioutput_node_with_body( tbb::internal::FLOW_MULTIFUNCTION_NODE, - &this->graph_node::my_graph, static_cast *>(this), - this->output_ports(), this->my_body ); - } - - multifunction_node( const multifunction_node &other) : - graph_node(other.graph_node::my_graph), base_type(other) { - tbb::internal::fgt_multioutput_node_with_body( tbb::internal::FLOW_MULTIFUNCTION_NODE, - &this->graph_node::my_graph, static_cast *>(this), - this->output_ports(), this->my_body ); - } - -#if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { - tbb::internal::fgt_multioutput_node_desc( this, name ); - } -#endif - - // all the guts are in multifunction_input... -protected: - /*override*/void reset() { base_type::reset(); } -}; // multifunction_node - -template < typename Input, typename Output, typename Allocator > -class multifunction_node : public graph_node, public internal::multifunction_input::value, internal::multifunction_output, Output>::type, Allocator> { -protected: - using graph_node::my_graph; - static const int N = tbb::flow::tuple_size::value; -public: - typedef Input input_type; - typedef typename internal::wrap_tuple_elements::type output_ports_type; -private: - typedef typename internal::multifunction_input base_type; - typedef typename internal::function_input_queue queue_type; -public: - template - multifunction_node( graph &g, size_t concurrency, Body body) : - graph_node(g), base_type(g,concurrency, body, new queue_type()) { - tbb::internal::fgt_multioutput_node_with_body( tbb::internal::FLOW_MULTIFUNCTION_NODE, - &this->graph_node::my_graph, static_cast *>(this), - this->output_ports(), this->my_body ); - } - - multifunction_node( const multifunction_node &other) : - graph_node(other.graph_node::my_graph), base_type(other, new queue_type()) { - tbb::internal::fgt_multioutput_node_with_body( tbb::internal::FLOW_MULTIFUNCTION_NODE, - &this->graph_node::my_graph, static_cast *>(this), - this->output_ports(), this->my_body ); - } - -#if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { - tbb::internal::fgt_multioutput_node_desc( this, name ); - } -#endif - - // all the guts are in multifunction_input... -protected: - /*override*/void reset() { base_type::reset(); } -}; // multifunction_node - -//! split_node: accepts a tuple as input, forwards each element of the tuple to its -// successors. The node has unlimited concurrency, so though it is marked as -// "rejecting" it does not reject inputs. -template > -class split_node : public multifunction_node { - static const int N = tbb::flow::tuple_size::value; - typedef multifunction_node base_type; -public: - typedef typename base_type::output_ports_type output_ports_type; -private: - struct splitting_body { - void operator()(const TupleType& t, output_ports_type &p) { - internal::emit_element::emit_this(t, p); - } - }; -public: - typedef TupleType input_type; - typedef Allocator allocator_type; - split_node(graph &g) : base_type(g, unlimited, splitting_body()) { - tbb::internal::fgt_multioutput_node( tbb::internal::FLOW_SPLIT_NODE, &this->graph_node::my_graph, - static_cast *>(this), this->output_ports() ); - } - - split_node( const split_node & other) : base_type(other) { - tbb::internal::fgt_multioutput_node( tbb::internal::FLOW_SPLIT_NODE, &this->graph_node::my_graph, - static_cast *>(this), this->output_ports() ); - } - -#if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { - tbb::internal::fgt_multioutput_node_desc( this, name ); - } -#endif - -}; - -//! Implements an executable node that supports continue_msg -> Output -template -class continue_node : public graph_node, public internal::continue_input, public internal::function_output { -protected: - using graph_node::my_graph; -public: - typedef continue_msg input_type; - typedef Output output_type; - typedef sender< input_type > predecessor_type; - typedef receiver< output_type > successor_type; - typedef internal::continue_input fInput_type; - typedef internal::function_output fOutput_type; - - //! Constructor for executable node with continue_msg -> Output - template - continue_node( graph &g, Body body ) : - graph_node(g), internal::continue_input( g, body ) { - tbb::internal::fgt_node_with_body( tbb::internal::FLOW_CONTINUE_NODE, &this->my_graph, - static_cast *>(this), - static_cast *>(this), this->my_body ); - } - - - //! Constructor for executable node with continue_msg -> Output - template - continue_node( graph &g, int number_of_predecessors, Body body ) : - graph_node(g), internal::continue_input( g, number_of_predecessors, body ) { - tbb::internal::fgt_node_with_body( tbb::internal::FLOW_CONTINUE_NODE, &this->my_graph, - static_cast *>(this), - static_cast *>(this), this->my_body ); - } - - //! Copy constructor - continue_node( const continue_node& src ) : - graph_node(src.graph_node::my_graph), internal::continue_input(src), - internal::function_output() { - tbb::internal::fgt_node_with_body( tbb::internal::FLOW_CONTINUE_NODE, &this->my_graph, - static_cast *>(this), - static_cast *>(this), this->my_body ); - } - -#if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { - tbb::internal::fgt_node_desc( this, name ); - } -#endif - -protected: - template< typename R, typename B > friend class run_and_put_task; - template friend class internal::broadcast_cache; - template friend class internal::round_robin_cache; - using fInput_type::try_put_task; - - /*override*/void reset() { internal::continue_input::reset_receiver(); } - - /* override */ internal::broadcast_cache &successors () { return fOutput_type::my_successors; } -}; // continue_node - -template< typename T > -class overwrite_node : public graph_node, public receiver, public sender { -protected: - using graph_node::my_graph; -public: - typedef T input_type; - typedef T output_type; - typedef sender< input_type > predecessor_type; - typedef receiver< output_type > successor_type; - - overwrite_node(graph &g) : graph_node(g), my_buffer_is_valid(false) { - my_successors.set_owner( this ); - tbb::internal::fgt_node( tbb::internal::FLOW_OVERWRITE_NODE, &this->my_graph, - static_cast *>(this), static_cast *>(this) ); - } - - // Copy constructor; doesn't take anything from src; default won't work - overwrite_node( const overwrite_node& src ) : - graph_node(src.my_graph), receiver(), sender(), my_buffer_is_valid(false) - { - my_successors.set_owner( this ); - tbb::internal::fgt_node( tbb::internal::FLOW_OVERWRITE_NODE, &this->my_graph, - static_cast *>(this), static_cast *>(this) ); - } - - ~overwrite_node() {} - -#if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { - tbb::internal::fgt_node_desc( this, name ); - } -#endif - - /* override */ bool register_successor( successor_type &s ) { - spin_mutex::scoped_lock l( my_mutex ); - if ( my_buffer_is_valid ) { - // We have a valid value that must be forwarded immediately. - if ( s.try_put( my_buffer ) || !s.register_predecessor( *this ) ) { - // We add the successor: it accepted our put or it rejected it but won't let us become a predecessor - my_successors.register_successor( s ); - return true; - } else { - // We don't add the successor: it rejected our put and we became its predecessor instead - return false; - } - } else { - // No valid value yet, just add as successor - my_successors.register_successor( s ); - return true; - } - } - - /* override */ bool remove_successor( successor_type &s ) { - spin_mutex::scoped_lock l( my_mutex ); - my_successors.remove_successor(s); - return true; - } - - /* override */ bool try_get( T &v ) { - spin_mutex::scoped_lock l( my_mutex ); - if ( my_buffer_is_valid ) { - v = my_buffer; - return true; - } else { - return false; - } - } - - bool is_valid() { - spin_mutex::scoped_lock l( my_mutex ); - return my_buffer_is_valid; - } - - void clear() { - spin_mutex::scoped_lock l( my_mutex ); - my_buffer_is_valid = false; - } - -protected: - template< typename R, typename B > friend class run_and_put_task; - template friend class internal::broadcast_cache; - template friend class internal::round_robin_cache; - /* override */ task * try_put_task( const T &v ) { - spin_mutex::scoped_lock l( my_mutex ); - my_buffer = v; - my_buffer_is_valid = true; - task * rtask = my_successors.try_put_task(v); - if(!rtask) rtask = SUCCESSFULLY_ENQUEUED; - return rtask; - } - - /*override*/void reset() { my_buffer_is_valid = false; } - - spin_mutex my_mutex; - internal::broadcast_cache< T, null_rw_mutex > my_successors; - T my_buffer; - bool my_buffer_is_valid; - /*override*/void reset_receiver() {} -}; - -template< typename T > -class write_once_node : public overwrite_node { -public: - typedef T input_type; - typedef T output_type; - typedef sender< input_type > predecessor_type; - typedef receiver< output_type > successor_type; - - //! Constructor - write_once_node(graph& g) : overwrite_node(g) { - tbb::internal::fgt_node( tbb::internal::FLOW_WRITE_ONCE_NODE, &(this->my_graph), - static_cast *>(this), - static_cast *>(this) ); - } - - //! Copy constructor: call base class copy constructor - write_once_node( const write_once_node& src ) : overwrite_node(src) { - tbb::internal::fgt_node( tbb::internal::FLOW_WRITE_ONCE_NODE, &(this->my_graph), - static_cast *>(this), - static_cast *>(this) ); - } - -#if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { - tbb::internal::fgt_node_desc( this, name ); - } -#endif - -protected: - template< typename R, typename B > friend class run_and_put_task; - template friend class internal::broadcast_cache; - template friend class internal::round_robin_cache; - /* override */ task *try_put_task( const T &v ) { - spin_mutex::scoped_lock l( this->my_mutex ); - if ( this->my_buffer_is_valid ) { - return NULL; - } else { - this->my_buffer = v; - this->my_buffer_is_valid = true; - task *res = this->my_successors.try_put_task(v); - if(!res) res = SUCCESSFULLY_ENQUEUED; - return res; - } - } -}; - -//! Forwards messages of type T to all successors -template -class broadcast_node : public graph_node, public receiver, public sender { -protected: - using graph_node::my_graph; -private: - internal::broadcast_cache my_successors; -public: - typedef T input_type; - typedef T output_type; - typedef sender< input_type > predecessor_type; - typedef receiver< output_type > successor_type; - - broadcast_node(graph& g) : graph_node(g) { - my_successors.set_owner( this ); - tbb::internal::fgt_node( tbb::internal::FLOW_BROADCAST_NODE, &this->my_graph, - static_cast *>(this), static_cast *>(this) ); - } - - // Copy constructor - broadcast_node( const broadcast_node& src ) : - graph_node(src.my_graph), receiver(), sender() - { - my_successors.set_owner( this ); - tbb::internal::fgt_node( tbb::internal::FLOW_BROADCAST_NODE, &this->my_graph, - static_cast *>(this), static_cast *>(this) ); - } - -#if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { - tbb::internal::fgt_node_desc( this, name ); - } -#endif - - //! Adds a successor - virtual bool register_successor( receiver &r ) { - my_successors.register_successor( r ); - return true; - } - - //! Removes s as a successor - virtual bool remove_successor( receiver &r ) { - my_successors.remove_successor( r ); - return true; - } - -protected: - template< typename R, typename B > friend class run_and_put_task; - template friend class internal::broadcast_cache; - template friend class internal::round_robin_cache; - //! build a task to run the successor if possible. Default is old behavior. - /*override*/ task *try_put_task(const T& t) { - task *new_task = my_successors.try_put_task(t); - if(!new_task) new_task = SUCCESSFULLY_ENQUEUED; - return new_task; - } - - /*override*/void reset() {} - /*override*/void reset_receiver() {} -}; // broadcast_node - -#include "internal/_flow_graph_item_buffer_impl.h" - -//! Forwards messages in arbitrary order -template > -class buffer_node : public graph_node, public reservable_item_buffer, public receiver, public sender { -protected: - using graph_node::my_graph; -public: - typedef T input_type; - typedef T output_type; - typedef sender< input_type > predecessor_type; - typedef receiver< output_type > successor_type; - typedef buffer_node my_class; -protected: - typedef size_t size_type; - internal::round_robin_cache< T, null_rw_mutex > my_successors; - - friend class internal::forward_task_bypass< buffer_node< T, A > >; - - enum op_type {reg_succ, rem_succ, req_item, res_item, rel_res, con_res, put_item, try_fwd_task }; - enum op_stat {WAIT=0, SUCCEEDED, FAILED}; - - // implements the aggregator_operation concept - class buffer_operation : public internal::aggregated_operation< buffer_operation > { - public: - char type; - T *elem; - task * ltask; - successor_type *r; - buffer_operation(const T& e, op_type t) : type(char(t)), elem(const_cast(&e)) , ltask(NULL) , r(NULL) {} - buffer_operation(op_type t) : type(char(t)) , ltask(NULL) , r(NULL) {} - }; - - bool forwarder_busy; - typedef internal::aggregating_functor my_handler; - friend class internal::aggregating_functor; - internal::aggregator< my_handler, buffer_operation> my_aggregator; - - virtual void handle_operations(buffer_operation *op_list) { - buffer_operation *tmp = NULL; - bool try_forwarding=false; - while (op_list) { - tmp = op_list; - op_list = op_list->next; - switch (tmp->type) { - case reg_succ: internal_reg_succ(tmp); try_forwarding = true; break; - case rem_succ: internal_rem_succ(tmp); break; - case req_item: internal_pop(tmp); break; - case res_item: internal_reserve(tmp); break; - case rel_res: internal_release(tmp); try_forwarding = true; break; - case con_res: internal_consume(tmp); try_forwarding = true; break; - case put_item: internal_push(tmp); try_forwarding = true; break; - case try_fwd_task: internal_forward_task(tmp); break; - } - } - if (try_forwarding && !forwarder_busy) { - task* tp = this->my_graph.root_task(); - if(tp) { - forwarder_busy = true; - task *new_task = new(task::allocate_additional_child_of(*tp)) internal:: - forward_task_bypass - < buffer_node >(*this); - // tmp should point to the last item handled by the aggregator. This is the operation - // the handling thread enqueued. So modifying that record will be okay. - tbb::task *z = tmp->ltask; - tmp->ltask = combine_tasks(z, new_task); // in case the op generated a task - } - } - } - - inline task *grab_forwarding_task( buffer_operation &op_data) { - return op_data.ltask; - } - - inline bool enqueue_forwarding_task(buffer_operation &op_data) { - task *ft = grab_forwarding_task(op_data); - if(ft) { - FLOW_SPAWN(*ft); - return true; - } - return false; - } - - //! This is executed by an enqueued task, the "forwarder" - virtual task *forward_task() { - buffer_operation op_data(try_fwd_task); - task *last_task = NULL; - do { - op_data.status = WAIT; - op_data.ltask = NULL; - my_aggregator.execute(&op_data); - tbb::task *xtask = op_data.ltask; - last_task = combine_tasks(last_task, xtask); - } while (op_data.status == SUCCEEDED); - return last_task; - } - - //! Register successor - virtual void internal_reg_succ(buffer_operation *op) { - my_successors.register_successor(*(op->r)); - __TBB_store_with_release(op->status, SUCCEEDED); - } - - //! Remove successor - virtual void internal_rem_succ(buffer_operation *op) { - my_successors.remove_successor(*(op->r)); - __TBB_store_with_release(op->status, SUCCEEDED); - } - - //! Tries to forward valid items to successors - virtual void internal_forward_task(buffer_operation *op) { - if (this->my_reserved || !this->item_valid(this->my_tail-1)) { - __TBB_store_with_release(op->status, FAILED); - this->forwarder_busy = false; - return; - } - T i_copy; - task * last_task = NULL; - size_type counter = my_successors.size(); - // Try forwarding, giving each successor a chance - while (counter>0 && !this->buffer_empty() && this->item_valid(this->my_tail-1)) { - this->fetch_back(i_copy); - task *new_task = my_successors.try_put_task(i_copy); - last_task = combine_tasks(last_task, new_task); - if(new_task) { - this->invalidate_back(); - --(this->my_tail); - } - --counter; - } - op->ltask = last_task; // return task - if (last_task && !counter) { - __TBB_store_with_release(op->status, SUCCEEDED); - } - else { - __TBB_store_with_release(op->status, FAILED); - forwarder_busy = false; - } - } - - virtual void internal_push(buffer_operation *op) { - this->push_back(*(op->elem)); - __TBB_store_with_release(op->status, SUCCEEDED); - } - - virtual void internal_pop(buffer_operation *op) { - if(this->pop_back(*(op->elem))) { - __TBB_store_with_release(op->status, SUCCEEDED); - } - else { - __TBB_store_with_release(op->status, FAILED); - } - } - - virtual void internal_reserve(buffer_operation *op) { - if(this->reserve_front(*(op->elem))) { - __TBB_store_with_release(op->status, SUCCEEDED); - } - else { - __TBB_store_with_release(op->status, FAILED); - } - } - - virtual void internal_consume(buffer_operation *op) { - this->consume_front(); - __TBB_store_with_release(op->status, SUCCEEDED); - } - - virtual void internal_release(buffer_operation *op) { - this->release_front(); - __TBB_store_with_release(op->status, SUCCEEDED); - } - -public: - //! Constructor - buffer_node( graph &g ) : graph_node(g), reservable_item_buffer(), - forwarder_busy(false) { - my_successors.set_owner(this); - my_aggregator.initialize_handler(my_handler(this)); - tbb::internal::fgt_node( tbb::internal::FLOW_BUFFER_NODE, &this->my_graph, - static_cast *>(this), static_cast *>(this) ); - } - - //! Copy constructor - buffer_node( const buffer_node& src ) : graph_node(src.my_graph), - reservable_item_buffer(), receiver(), sender() { - forwarder_busy = false; - my_successors.set_owner(this); - my_aggregator.initialize_handler(my_handler(this)); - tbb::internal::fgt_node( tbb::internal::FLOW_BUFFER_NODE, &this->my_graph, - static_cast *>(this), static_cast *>(this) ); - } - - virtual ~buffer_node() {} - -#if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { - tbb::internal::fgt_node_desc( this, name ); - } -#endif - - // - // message sender implementation - // - - //! Adds a new successor. - /** Adds successor r to the list of successors; may forward tasks. */ - /* override */ bool register_successor( receiver &r ) { - buffer_operation op_data(reg_succ); - op_data.r = &r; - my_aggregator.execute(&op_data); - (void)enqueue_forwarding_task(op_data); - return true; - } - - //! Removes a successor. - /** Removes successor r from the list of successors. - It also calls r.remove_predecessor(*this) to remove this node as a predecessor. */ - /* override */ bool remove_successor( receiver &r ) { - r.remove_predecessor(*this); - buffer_operation op_data(rem_succ); - op_data.r = &r; - my_aggregator.execute(&op_data); - // even though this operation does not cause a forward, if we are the handler, and - // a forward is scheduled, we may be the first to reach this point after the aggregator, - // and so should check for the task. - (void)enqueue_forwarding_task(op_data); - return true; - } - - //! Request an item from the buffer_node - /** true = v contains the returned item
    - false = no item has been returned */ - /* override */ bool try_get( T &v ) { - buffer_operation op_data(req_item); - op_data.elem = &v; - my_aggregator.execute(&op_data); - (void)enqueue_forwarding_task(op_data); - return (op_data.status==SUCCEEDED); - } - - //! Reserves an item. - /** false = no item can be reserved
    - true = an item is reserved */ - /* override */ bool try_reserve( T &v ) { - buffer_operation op_data(res_item); - op_data.elem = &v; - my_aggregator.execute(&op_data); - (void)enqueue_forwarding_task(op_data); - return (op_data.status==SUCCEEDED); - } - - //! Release a reserved item. - /** true = item has been released and so remains in sender */ - /* override */ bool try_release() { - buffer_operation op_data(rel_res); - my_aggregator.execute(&op_data); - (void)enqueue_forwarding_task(op_data); - return true; - } - - //! Consumes a reserved item. - /** true = item is removed from sender and reservation removed */ - /* override */ bool try_consume() { - buffer_operation op_data(con_res); - my_aggregator.execute(&op_data); - (void)enqueue_forwarding_task(op_data); - return true; - } - -protected: - - template< typename R, typename B > friend class run_and_put_task; - template friend class internal::broadcast_cache; - template friend class internal::round_robin_cache; - //! receive an item, return a task *if possible - /* override */ task *try_put_task(const T &t) { - buffer_operation op_data(t, put_item); - my_aggregator.execute(&op_data); - task *ft = grab_forwarding_task(op_data); - if(!ft) { - ft = SUCCESSFULLY_ENQUEUED; - } - return ft; - } - - /*override*/void reset() { - reservable_item_buffer::reset(); - forwarder_busy = false; - } - - /*override*/void reset_receiver() { - // nothing to do; no predecesor_cache - } - -}; // buffer_node - -//! Forwards messages in FIFO order -template > -class queue_node : public buffer_node { -protected: - typedef typename buffer_node::size_type size_type; - typedef typename buffer_node::buffer_operation queue_operation; - - enum op_stat {WAIT=0, SUCCEEDED, FAILED}; - - /* override */ void internal_forward_task(queue_operation *op) { - if (this->my_reserved || !this->item_valid(this->my_head)) { - __TBB_store_with_release(op->status, FAILED); - this->forwarder_busy = false; - return; - } - T i_copy; - task *last_task = NULL; - size_type counter = this->my_successors.size(); - // Keep trying to send items while there is at least one accepting successor - while (counter>0 && this->item_valid(this->my_head)) { - this->fetch_front(i_copy); - task *new_task = this->my_successors.try_put_task(i_copy); - if(new_task) { - this->invalidate_front(); - ++(this->my_head); - last_task = combine_tasks(last_task, new_task); - } - --counter; - } - op->ltask = last_task; - if (last_task && !counter) - __TBB_store_with_release(op->status, SUCCEEDED); - else { - __TBB_store_with_release(op->status, FAILED); - this->forwarder_busy = false; - } - } - - /* override */ void internal_pop(queue_operation *op) { - if ( this->my_reserved || !this->item_valid(this->my_head)){ - __TBB_store_with_release(op->status, FAILED); - } - else { - this->pop_front(*(op->elem)); - __TBB_store_with_release(op->status, SUCCEEDED); - } - } - /* override */ void internal_reserve(queue_operation *op) { - if (this->my_reserved || !this->item_valid(this->my_head)) { - __TBB_store_with_release(op->status, FAILED); - } - else { - this->my_reserved = true; - this->fetch_front(*(op->elem)); - this->invalidate_front(); - __TBB_store_with_release(op->status, SUCCEEDED); - } - } - /* override */ void internal_consume(queue_operation *op) { - this->consume_front(); - __TBB_store_with_release(op->status, SUCCEEDED); - } - -public: - typedef T input_type; - typedef T output_type; - typedef sender< input_type > predecessor_type; - typedef receiver< output_type > successor_type; - - //! Constructor - queue_node( graph &g ) : buffer_node(g) { - tbb::internal::fgt_node( tbb::internal::FLOW_QUEUE_NODE, &(this->my_graph), - static_cast *>(this), - static_cast *>(this) ); - } - - //! Copy constructor - queue_node( const queue_node& src) : buffer_node(src) { - tbb::internal::fgt_node( tbb::internal::FLOW_QUEUE_NODE, &(this->my_graph), - static_cast *>(this), - static_cast *>(this) ); - } - -#if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { - tbb::internal::fgt_node_desc( this, name ); - } -#endif - -}; - -//! Forwards messages in sequence order -template< typename T, typename A=cache_aligned_allocator > -class sequencer_node : public queue_node { - internal::function_body< T, size_t > *my_sequencer; -public: - typedef T input_type; - typedef T output_type; - typedef sender< input_type > predecessor_type; - typedef receiver< output_type > successor_type; - - //! Constructor - template< typename Sequencer > - sequencer_node( graph &g, const Sequencer& s ) : queue_node(g), - my_sequencer(new internal::function_body_leaf< T, size_t, Sequencer>(s) ) { - tbb::internal::fgt_node( tbb::internal::FLOW_SEQUENCER_NODE, &(this->my_graph), - static_cast *>(this), - static_cast *>(this) ); - } - - //! Copy constructor - sequencer_node( const sequencer_node& src ) : queue_node(src), - my_sequencer( src.my_sequencer->clone() ) { - tbb::internal::fgt_node( tbb::internal::FLOW_SEQUENCER_NODE, &(this->my_graph), - static_cast *>(this), - static_cast *>(this) ); - } - - //! Destructor - ~sequencer_node() { delete my_sequencer; } - -#if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { - tbb::internal::fgt_node_desc( this, name ); - } -#endif - -protected: - typedef typename buffer_node::size_type size_type; - typedef typename buffer_node::buffer_operation sequencer_operation; - - enum op_stat {WAIT=0, SUCCEEDED, FAILED}; - -private: - /* override */ void internal_push(sequencer_operation *op) { - size_type tag = (*my_sequencer)(*(op->elem)); - - this->my_tail = (tag+1 > this->my_tail) ? tag+1 : this->my_tail; - - if(this->size() > this->capacity()) - this->grow_my_array(this->size()); // tail already has 1 added to it - this->item(tag) = std::make_pair( *(op->elem), true ); - __TBB_store_with_release(op->status, SUCCEEDED); - } -}; - -//! Forwards messages in priority order -template< typename T, typename Compare = std::less, typename A=cache_aligned_allocator > -class priority_queue_node : public buffer_node { -public: - typedef T input_type; - typedef T output_type; - typedef buffer_node base_type; - typedef sender< input_type > predecessor_type; - typedef receiver< output_type > successor_type; - - //! Constructor - priority_queue_node( graph &g ) : buffer_node(g), mark(0) { - tbb::internal::fgt_node( tbb::internal::FLOW_PRIORITY_QUEUE_NODE, &(this->my_graph), - static_cast *>(this), - static_cast *>(this) ); - } - - //! Copy constructor - priority_queue_node( const priority_queue_node &src ) : buffer_node(src), mark(0) { - tbb::internal::fgt_node( tbb::internal::FLOW_PRIORITY_QUEUE_NODE, &(this->my_graph), - static_cast *>(this), - static_cast *>(this) ); - } - -#if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { - tbb::internal::fgt_node_desc( this, name ); - } -#endif - - -protected: - - /*override*/void reset() { - mark = 0; - base_type::reset(); - } - - typedef typename buffer_node::size_type size_type; - typedef typename buffer_node::item_type item_type; - typedef typename buffer_node::buffer_operation prio_operation; - - enum op_stat {WAIT=0, SUCCEEDED, FAILED}; - - /* override */ void handle_operations(prio_operation *op_list) { - prio_operation *tmp = op_list /*, *pop_list*/ ; - bool try_forwarding=false; - while (op_list) { - tmp = op_list; - op_list = op_list->next; - switch (tmp->type) { - case buffer_node::reg_succ: this->internal_reg_succ(tmp); try_forwarding = true; break; - case buffer_node::rem_succ: this->internal_rem_succ(tmp); break; - case buffer_node::put_item: internal_push(tmp); try_forwarding = true; break; - case buffer_node::try_fwd_task: internal_forward_task(tmp); break; - case buffer_node::rel_res: internal_release(tmp); try_forwarding = true; break; - case buffer_node::con_res: internal_consume(tmp); try_forwarding = true; break; - case buffer_node::req_item: internal_pop(tmp); break; - case buffer_node::res_item: internal_reserve(tmp); break; - } - } - // process pops! for now, no special pop processing - if (markmy_tail) heapify(); - if (try_forwarding && !this->forwarder_busy) { - task* tp = this->my_graph.root_task(); - if(tp) { - this->forwarder_busy = true; - task *new_task = new(task::allocate_additional_child_of(*tp)) internal:: - forward_task_bypass - < buffer_node >(*this); - // tmp should point to the last item handled by the aggregator. This is the operation - // the handling thread enqueued. So modifying that record will be okay. - tbb::task *tmp1 = tmp->ltask; - tmp->ltask = combine_tasks(tmp1, new_task); - } - } - } - - //! Tries to forward valid items to successors - /* override */ void internal_forward_task(prio_operation *op) { - T i_copy; - task * last_task = NULL; // flagged when a successor accepts - size_type counter = this->my_successors.size(); - - if (this->my_reserved || this->my_tail == 0) { - __TBB_store_with_release(op->status, FAILED); - this->forwarder_busy = false; - return; - } - // Keep trying to send while there exists an accepting successor - while (counter>0 && this->my_tail > 0) { - i_copy = this->my_array[0].first; - task * new_task = this->my_successors.try_put_task(i_copy); - last_task = combine_tasks(last_task, new_task); - if ( new_task ) { - if (mark == this->my_tail) --mark; - --(this->my_tail); - this->my_array[0].first=this->my_array[this->my_tail].first; - if (this->my_tail > 1) // don't reheap for heap of size 1 - reheap(); - } - --counter; - } - op->ltask = last_task; - if (last_task && !counter) - __TBB_store_with_release(op->status, SUCCEEDED); - else { - __TBB_store_with_release(op->status, FAILED); - this->forwarder_busy = false; - } - } - - /* override */ void internal_push(prio_operation *op) { - if ( this->my_tail >= this->my_array_size ) - this->grow_my_array( this->my_tail + 1 ); - this->my_array[this->my_tail] = std::make_pair( *(op->elem), true ); - ++(this->my_tail); - __TBB_store_with_release(op->status, SUCCEEDED); - } - - /* override */ void internal_pop(prio_operation *op) { - if ( this->my_reserved == true || this->my_tail == 0 ) { - __TBB_store_with_release(op->status, FAILED); - } - else { - if (markmy_tail && - compare(this->my_array[0].first, - this->my_array[this->my_tail-1].first)) { - // there are newly pushed elems; last one higher than top - // copy the data - *(op->elem) = this->my_array[this->my_tail-1].first; - --(this->my_tail); - __TBB_store_with_release(op->status, SUCCEEDED); - } - else { // extract and push the last element down heap - *(op->elem) = this->my_array[0].first; // copy the data - if (mark == this->my_tail) --mark; - --(this->my_tail); - __TBB_store_with_release(op->status, SUCCEEDED); - this->my_array[0].first=this->my_array[this->my_tail].first; - if (this->my_tail > 1) // don't reheap for heap of size 1 - reheap(); - } - } - } - /* override */ void internal_reserve(prio_operation *op) { - if (this->my_reserved == true || this->my_tail == 0) { - __TBB_store_with_release(op->status, FAILED); - } - else { - this->my_reserved = true; - *(op->elem) = reserved_item = this->my_array[0].first; - if (mark == this->my_tail) --mark; - --(this->my_tail); - __TBB_store_with_release(op->status, SUCCEEDED); - this->my_array[0].first = this->my_array[this->my_tail].first; - if (this->my_tail > 1) // don't reheap for heap of size 1 - reheap(); - } - } - /* override */ void internal_consume(prio_operation *op) { - this->my_reserved = false; - __TBB_store_with_release(op->status, SUCCEEDED); - } - /* override */ void internal_release(prio_operation *op) { - if (this->my_tail >= this->my_array_size) - this->grow_my_array( this->my_tail + 1 ); - this->my_array[this->my_tail] = std::make_pair(reserved_item, true); - ++(this->my_tail); - this->my_reserved = false; - __TBB_store_with_release(op->status, SUCCEEDED); - heapify(); - } -private: - Compare compare; - size_type mark; - input_type reserved_item; - - void heapify() { - if (!mark) mark = 1; - for (; markmy_tail; ++mark) { // for each unheaped element - size_type cur_pos = mark; - input_type to_place = this->my_array[mark].first; - do { // push to_place up the heap - size_type parent = (cur_pos-1)>>1; - if (!compare(this->my_array[parent].first, to_place)) - break; - this->my_array[cur_pos].first = this->my_array[parent].first; - cur_pos = parent; - } while( cur_pos ); - this->my_array[cur_pos].first = to_place; - } - } - - void reheap() { - size_type cur_pos=0, child=1; - while (child < mark) { - size_type target = child; - if (child+1my_array[child].first, - this->my_array[child+1].first)) - ++target; - // target now has the higher priority child - if (compare(this->my_array[target].first, - this->my_array[this->my_tail].first)) - break; - this->my_array[cur_pos].first = this->my_array[target].first; - cur_pos = target; - child = (cur_pos<<1)+1; - } - this->my_array[cur_pos].first = this->my_array[this->my_tail].first; - } -}; - -//! Forwards messages only if the threshold has not been reached -/** This node forwards items until its threshold is reached. - It contains no buffering. If the downstream node rejects, the - message is dropped. */ -template< typename T > -class limiter_node : public graph_node, public receiver< T >, public sender< T > { -protected: - using graph_node::my_graph; -public: - typedef T input_type; - typedef T output_type; - typedef sender< input_type > predecessor_type; - typedef receiver< output_type > successor_type; - -private: - size_t my_threshold; - size_t my_count; //number of successful puts - size_t my_tries; //number of active put attempts - internal::reservable_predecessor_cache< T > my_predecessors; - spin_mutex my_mutex; - internal::broadcast_cache< T > my_successors; - int init_decrement_predecessors; - - friend class internal::forward_task_bypass< limiter_node >; - - // Let decrementer call decrement_counter() - friend class internal::decrementer< limiter_node >; - - bool check_conditions() { - return ( my_count + my_tries < my_threshold && !my_predecessors.empty() && !my_successors.empty() ); - } - - // only returns a valid task pointer or NULL, never SUCCESSFULLY_ENQUEUED - task *forward_task() { - input_type v; - task *rval = NULL; - bool reserved = false; - { - spin_mutex::scoped_lock lock(my_mutex); - if ( check_conditions() ) - ++my_tries; - else - return NULL; - } - - //SUCCESS - // if we can reserve and can put, we consume the reservation - // we increment the count and decrement the tries - if ( (my_predecessors.try_reserve(v)) == true ){ - reserved=true; - if ( (rval = my_successors.try_put_task(v)) != NULL ){ - { - spin_mutex::scoped_lock lock(my_mutex); - ++my_count; - --my_tries; - my_predecessors.try_consume(); - if ( check_conditions() ) { - task* tp = this->my_graph.root_task(); - if ( tp ) { - task *rtask = new ( task::allocate_additional_child_of( *tp ) ) - internal::forward_task_bypass< limiter_node >( *this ); - FLOW_SPAWN (*rtask); - } - } - } - return rval; - } - } - //FAILURE - //if we can't reserve, we decrement the tries - //if we can reserve but can't put, we decrement the tries and release the reservation - { - spin_mutex::scoped_lock lock(my_mutex); - --my_tries; - if (reserved) my_predecessors.try_release(); - if ( check_conditions() ) { - task* tp = this->my_graph.root_task(); - if ( tp ) { - task *rtask = new ( task::allocate_additional_child_of( *tp ) ) - internal::forward_task_bypass< limiter_node >( *this ); - __TBB_ASSERT(!rval, "Have two tasks to handle"); - return rtask; - } - } - return rval; - } - } - - void forward() { - __TBB_ASSERT(false, "Should never be called"); - return; - } - - task * decrement_counter() { - { - spin_mutex::scoped_lock lock(my_mutex); - if(my_count) --my_count; - } - return forward_task(); - } - -public: - //! The internal receiver< continue_msg > that decrements the count - internal::decrementer< limiter_node > decrement; - - //! Constructor - limiter_node(graph &g, size_t threshold, int num_decrement_predecessors=0) : - graph_node(g), my_threshold(threshold), my_count(0), my_tries(0), - init_decrement_predecessors(num_decrement_predecessors), - decrement(num_decrement_predecessors) - { - my_predecessors.set_owner(this); - my_successors.set_owner(this); - decrement.set_owner(this); - tbb::internal::fgt_node( tbb::internal::FLOW_LIMITER_NODE, &this->my_graph, - static_cast *>(this), static_cast *>(&decrement), - static_cast *>(this) ); - } - - //! Copy constructor - limiter_node( const limiter_node& src ) : - graph_node(src.my_graph), receiver(), sender(), - my_threshold(src.my_threshold), my_count(0), my_tries(0), - init_decrement_predecessors(src.init_decrement_predecessors), - decrement(src.init_decrement_predecessors) - { - my_predecessors.set_owner(this); - my_successors.set_owner(this); - decrement.set_owner(this); - tbb::internal::fgt_node( tbb::internal::FLOW_LIMITER_NODE, &this->my_graph, - static_cast *>(this), static_cast *>(&decrement), - static_cast *>(this) ); - } - -#if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { - tbb::internal::fgt_node_desc( this, name ); - } -#endif - - //! Replace the current successor with this new successor - /* override */ bool register_successor( receiver &r ) { - spin_mutex::scoped_lock lock(my_mutex); - bool was_empty = my_successors.empty(); - my_successors.register_successor(r); - //spawn a forward task if this is the only successor - if ( was_empty && !my_predecessors.empty() && my_count + my_tries < my_threshold ) { - task* tp = this->my_graph.root_task(); - if ( tp ) { - FLOW_SPAWN( (* new ( task::allocate_additional_child_of( *tp ) ) - internal::forward_task_bypass < limiter_node >( *this ) ) ); - } - } - return true; - } - - //! Removes a successor from this node - /** r.remove_predecessor(*this) is also called. */ - /* override */ bool remove_successor( receiver &r ) { - r.remove_predecessor(*this); - my_successors.remove_successor(r); - return true; - } - - //! Adds src to the list of cached predecessors. - /* override */ bool register_predecessor( predecessor_type &src ) { - spin_mutex::scoped_lock lock(my_mutex); - my_predecessors.add( src ); - task* tp = this->my_graph.root_task(); - if ( my_count + my_tries < my_threshold && !my_successors.empty() && tp ) { - FLOW_SPAWN( (* new ( task::allocate_additional_child_of( *tp ) ) - internal::forward_task_bypass < limiter_node >( *this ) ) ); - } - return true; - } - - //! Removes src from the list of cached predecessors. - /* override */ bool remove_predecessor( predecessor_type &src ) { - my_predecessors.remove( src ); - return true; - } - -protected: - - template< typename R, typename B > friend class run_and_put_task; - template friend class internal::broadcast_cache; - template friend class internal::round_robin_cache; - //! Puts an item to this receiver - /* override */ task *try_put_task( const T &t ) { - { - spin_mutex::scoped_lock lock(my_mutex); - if ( my_count + my_tries >= my_threshold ) - return NULL; - else - ++my_tries; - } - - task * rtask = my_successors.try_put_task(t); - - if ( !rtask ) { // try_put_task failed. - spin_mutex::scoped_lock lock(my_mutex); - --my_tries; - task* tp = this->my_graph.root_task(); - if ( check_conditions() && tp ) { - rtask = new ( task::allocate_additional_child_of( *tp ) ) - internal::forward_task_bypass< limiter_node >( *this ); - } - } - else { - spin_mutex::scoped_lock lock(my_mutex); - ++my_count; - --my_tries; - } - return rtask; - } - - /*override*/void reset() { - my_count = 0; - my_predecessors.reset(); - decrement.reset_receiver(); - } - - /*override*/void reset_receiver() { my_predecessors.reset(); } -}; // limiter_node - -#include "internal/_flow_graph_join_impl.h" - -using internal::reserving_port; -using internal::queueing_port; -using internal::tag_matching_port; -using internal::input_port; -using internal::tag_value; -using internal::NO_TAG; - -template class join_node; - -template -class join_node: public internal::unfolded_join_node::value, reserving_port, OutputTuple, reserving> { -private: - static const int N = tbb::flow::tuple_size::value; - typedef typename internal::unfolded_join_node unfolded_type; -public: - typedef OutputTuple output_type; - typedef typename unfolded_type::input_ports_type input_ports_type; - join_node(graph &g) : unfolded_type(g) { - tbb::internal::fgt_multiinput_node( tbb::internal::FLOW_JOIN_NODE_RESERVING, &this->my_graph, - this->input_ports(), static_cast< sender< output_type > *>(this) ); - } - join_node(const join_node &other) : unfolded_type(other) { - tbb::internal::fgt_multiinput_node( tbb::internal::FLOW_JOIN_NODE_RESERVING, &this->my_graph, - this->input_ports(), static_cast< sender< output_type > *>(this) ); - } - -#if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { - tbb::internal::fgt_node_desc( this, name ); - } -#endif - -}; - -template -class join_node: public internal::unfolded_join_node::value, queueing_port, OutputTuple, queueing> { -private: - static const int N = tbb::flow::tuple_size::value; - typedef typename internal::unfolded_join_node unfolded_type; -public: - typedef OutputTuple output_type; - typedef typename unfolded_type::input_ports_type input_ports_type; - join_node(graph &g) : unfolded_type(g) { - tbb::internal::fgt_multiinput_node( tbb::internal::FLOW_JOIN_NODE_QUEUEING, &this->my_graph, - this->input_ports(), static_cast< sender< output_type > *>(this) ); - } - join_node(const join_node &other) : unfolded_type(other) { - tbb::internal::fgt_multiinput_node( tbb::internal::FLOW_JOIN_NODE_QUEUEING, &this->my_graph, - this->input_ports(), static_cast< sender< output_type > *>(this) ); - } - -#if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { - tbb::internal::fgt_node_desc( this, name ); - } -#endif - -}; - -// template for tag_matching join_node -template -class join_node : public internal::unfolded_join_node::value, - tag_matching_port, OutputTuple, tag_matching> { -private: - static const int N = tbb::flow::tuple_size::value; - typedef typename internal::unfolded_join_node unfolded_type; -public: - typedef OutputTuple output_type; - typedef typename unfolded_type::input_ports_type input_ports_type; - - template - join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1) : unfolded_type(g, b0, b1) { - tbb::internal::fgt_multiinput_node( tbb::internal::FLOW_JOIN_NODE_TAG_MATCHING, &this->my_graph, - this->input_ports(), static_cast< sender< output_type > *>(this) ); - } - template - join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2) : unfolded_type(g, b0, b1, b2) { - tbb::internal::fgt_multiinput_node( tbb::internal::FLOW_JOIN_NODE_TAG_MATCHING, &this->my_graph, - this->input_ports(), static_cast< sender< output_type > *>(this) ); - } - template - join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3) : unfolded_type(g, b0, b1, b2, b3) { - tbb::internal::fgt_multiinput_node( tbb::internal::FLOW_JOIN_NODE_TAG_MATCHING, &this->my_graph, - this->input_ports(), static_cast< sender< output_type > *>(this) ); - } - template - join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4) : - unfolded_type(g, b0, b1, b2, b3, b4) { - tbb::internal::fgt_multiinput_node( tbb::internal::FLOW_JOIN_NODE_TAG_MATCHING, &this->my_graph, - this->input_ports(), static_cast< sender< output_type > *>(this) ); - } -#if __TBB_VARIADIC_MAX >= 6 - template - join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5) : - unfolded_type(g, b0, b1, b2, b3, b4, b5) { - tbb::internal::fgt_multiinput_node( tbb::internal::FLOW_JOIN_NODE_TAG_MATCHING, &this->my_graph, - this->input_ports(), static_cast< sender< output_type > *>(this) ); - } -#endif -#if __TBB_VARIADIC_MAX >= 7 - template - join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6) : - unfolded_type(g, b0, b1, b2, b3, b4, b5, b6) { - tbb::internal::fgt_multiinput_node( tbb::internal::FLOW_JOIN_NODE_TAG_MATCHING, &this->my_graph, - this->input_ports(), static_cast< sender< output_type > *>(this) ); - } -#endif -#if __TBB_VARIADIC_MAX >= 8 - template - join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6, - __TBB_B7 b7) : unfolded_type(g, b0, b1, b2, b3, b4, b5, b6, b7) { - tbb::internal::fgt_multiinput_node( tbb::internal::FLOW_JOIN_NODE_TAG_MATCHING, &this->my_graph, - this->input_ports(), static_cast< sender< output_type > *>(this) ); - } -#endif -#if __TBB_VARIADIC_MAX >= 9 - template - join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6, - __TBB_B7 b7, __TBB_B8 b8) : unfolded_type(g, b0, b1, b2, b3, b4, b5, b6, b7, b8) { - tbb::internal::fgt_multiinput_node( tbb::internal::FLOW_JOIN_NODE_TAG_MATCHING, &this->my_graph, - this->input_ports(), static_cast< sender< output_type > *>(this) ); - } -#endif -#if __TBB_VARIADIC_MAX >= 10 - template - join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6, - __TBB_B7 b7, __TBB_B8 b8, __TBB_B9 b9) : unfolded_type(g, b0, b1, b2, b3, b4, b5, b6, b7, b8, b9) { - tbb::internal::fgt_multiinput_node( tbb::internal::FLOW_JOIN_NODE_TAG_MATCHING, &this->my_graph, - this->input_ports(), static_cast< sender< output_type > *>(this) ); - } -#endif - join_node(const join_node &other) : unfolded_type(other) { - tbb::internal::fgt_multiinput_node( tbb::internal::FLOW_JOIN_NODE_TAG_MATCHING, &this->my_graph, - this->input_ports(), static_cast< sender< output_type > *>(this) ); - } - -#if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { - tbb::internal::fgt_node_desc( this, name ); - } -#endif - -}; - -#if TBB_PREVIEW_GRAPH_NODES -// or node -#include "internal/_flow_graph_or_impl.h" - -template -class or_node : public internal::unfolded_or_node { -private: - static const int N = tbb::flow::tuple_size::value; -public: - typedef typename internal::or_output_type::type output_type; - typedef typename internal::unfolded_or_node unfolded_type; - or_node(graph& g) : unfolded_type(g) { - tbb::internal::fgt_multiinput_node( tbb::internal::FLOW_OR_NODE, &this->my_graph, - this->input_ports(), static_cast< sender< output_type > *>(this) ); - } - // Copy constructor - or_node( const or_node& other ) : unfolded_type(other) { - tbb::internal::fgt_multiinput_node( tbb::internal::FLOW_OR_NODE, &this->my_graph, - this->input_ports(), static_cast< sender< output_type > *>(this) ); - } - -#if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { - tbb::internal::fgt_node_desc( this, name ); - } -#endif - -}; -#endif // TBB_PREVIEW_GRAPH_NODES - -//! Makes an edge between a single predecessor and a single successor -template< typename T > -inline void make_edge( sender &p, receiver &s ) { - p.register_successor( s ); - tbb::internal::fgt_make_edge( &p, &s ); -} - -//! Makes an edge between a single predecessor and a single successor -template< typename T > -inline void remove_edge( sender &p, receiver &s ) { - p.remove_successor( s ); - tbb::internal::fgt_remove_edge( &p, &s ); -} - -//! Returns a copy of the body from a function or continue node -template< typename Body, typename Node > -Body copy_body( Node &n ) { - return n.template copy_function_object(); -} - -} // interface7 - - using interface7::graph; - using interface7::graph_node; - using interface7::continue_msg; - using interface7::sender; - using interface7::receiver; - using interface7::continue_receiver; - - using interface7::source_node; - using interface7::function_node; - using interface7::multifunction_node; - using interface7::split_node; - using interface7::internal::output_port; -#if TBB_PREVIEW_GRAPH_NODES - using interface7::or_node; -#endif - using interface7::continue_node; - using interface7::overwrite_node; - using interface7::write_once_node; - using interface7::broadcast_node; - using interface7::buffer_node; - using interface7::queue_node; - using interface7::sequencer_node; - using interface7::priority_queue_node; - using interface7::limiter_node; - using namespace interface7::internal::graph_policy_namespace; - using interface7::join_node; - using interface7::input_port; - using interface7::copy_body; - using interface7::make_edge; - using interface7::remove_edge; - using interface7::internal::NO_TAG; - using interface7::internal::tag_value; - -} // flow -} // tbb - -#endif // __TBB_flow_graph_H diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/index.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/index.html deleted file mode 100644 index 6ceb5da61..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/index.html +++ /dev/null @@ -1,29 +0,0 @@ - - - -

    Overview

    -Include files for Intel® Threading Building Blocks classes and functions. - -
    Click here to see all files in the directory. - -

    Directories

    -
    -
    compat -
    Include files for source level compatibility with other frameworks. -
    internal -
    Include files with implementation details; not for direct use. -
    machine -
    Include files for low-level architecture specific functionality; not for direct use. -
    - -
    -Up to parent directory -

    -Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

    -Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

    -* Other names and brands may be claimed as the property of others. - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_aggregator_impl.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_aggregator_impl.h deleted file mode 100644 index 102d625fc..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_aggregator_impl.h +++ /dev/null @@ -1,162 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB__aggregator_impl_H -#define __TBB__aggregator_impl_H - -#include "../atomic.h" -#include "../tbb_profiling.h" - -namespace tbb { -namespace interface6 { -namespace internal { - -using namespace tbb::internal; - -//! aggregated_operation base class -template -class aggregated_operation { - public: - uintptr_t status; - Derived *next; - aggregated_operation() : status(0), next(NULL) {} -}; - -//! Aggregator base class -/** An aggregator for collecting operations coming from multiple sources and executing - them serially on a single thread. operation_type must be derived from - aggregated_operation. The parameter handler_type is a functor that will be passed the - list of operations and is expected to handle each operation appropriately, setting the - status of each operation to non-zero.*/ -template < typename handler_type, typename operation_type > -class aggregator { - public: - aggregator() : handler_busy(false) { pending_operations = NULL; } - explicit aggregator(handler_type h) : handler_busy(false), handle_operations(h) { - pending_operations = NULL; - } - - void initialize_handler(handler_type h) { handle_operations = h; } - - //! Place operation in list - /** Place operation in list and either handle list or wait for operation to - complete. */ - void execute(operation_type *op) { - operation_type *res; - - // ITT note: &(op->status) tag is used to cover accesses to this op node. This - // thread has created the operation, and now releases it so that the handler - // thread may handle the associated operation w/o triggering a race condition; - // thus this tag will be acquired just before the operation is handled in the - // handle_operations functor. - call_itt_notify(releasing, &(op->status)); - // insert the operation in the queue - do { - // ITT may flag the following line as a race; it is a false positive: - // This is an atomic read; we don't provide itt_hide_load_word for atomics - op->next = res = pending_operations; // NOT A RACE - } while (pending_operations.compare_and_swap(op, res) != res); - if (!res) { // first in the list; handle the operations - // ITT note: &pending_operations tag covers access to the handler_busy flag, - // which this waiting handler thread will try to set before entering - // handle_operations. - call_itt_notify(acquired, &pending_operations); - start_handle_operations(); - __TBB_ASSERT(op->status, NULL); - } - else { // not first; wait for op to be ready - call_itt_notify(prepare, &(op->status)); - spin_wait_while_eq(op->status, uintptr_t(0)); - itt_load_word_with_acquire(op->status); - } - } - - private: - //! An atomically updated list (aka mailbox) of pending operations - atomic pending_operations; - //! Controls thread access to handle_operations - uintptr_t handler_busy; - handler_type handle_operations; - - //! Trigger the handling of operations when the handler is free - void start_handle_operations() { - operation_type *op_list; - - // ITT note: &handler_busy tag covers access to pending_operations as it is passed - // between active and waiting handlers. Below, the waiting handler waits until - // the active handler releases, and the waiting handler acquires &handler_busy as - // it becomes the active_handler. The release point is at the end of this - // function, when all operations in pending_operations have been handled by the - // owner of this aggregator. - call_itt_notify(prepare, &handler_busy); - // get the handler_busy: - // only one thread can possibly spin here at a time - spin_wait_until_eq(handler_busy, uintptr_t(0)); - call_itt_notify(acquired, &handler_busy); - // acquire fence not necessary here due to causality rule and surrounding atomics - __TBB_store_with_release(handler_busy, uintptr_t(1)); - - // ITT note: &pending_operations tag covers access to the handler_busy flag - // itself. Capturing the state of the pending_operations signifies that - // handler_busy has been set and a new active handler will now process that list's - // operations. - call_itt_notify(releasing, &pending_operations); - // grab pending_operations - op_list = pending_operations.fetch_and_store(NULL); - - // handle all the operations - handle_operations(op_list); - - // release the handler - itt_store_word_with_release(handler_busy, uintptr_t(0)); - } -}; - -// the most-compatible friend declaration (vs, gcc, icc) is -// template friend class aggregating_functor; -template -class aggregating_functor { - aggregating_class *fi; -public: - aggregating_functor() {} - aggregating_functor(aggregating_class *fi_) : fi(fi_) {} - void operator()(operation_list* op_list) { fi->handle_operations(op_list); } -}; - -} // namespace internal -} // namespace interface6 - -namespace internal { - using interface6::internal::aggregated_operation; - using interface6::internal::aggregator; - using interface6::internal::aggregating_functor; -} // namespace internal - -} // namespace tbb - -#endif // __TBB__aggregator_impl_H diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_concurrent_queue_impl.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_concurrent_queue_impl.h deleted file mode 100644 index 15d9ab566..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_concurrent_queue_impl.h +++ /dev/null @@ -1,1026 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB__concurrent_queue_impl_H -#define __TBB__concurrent_queue_impl_H - -#ifndef __TBB_concurrent_queue_H -#error Do not #include this internal file directly; use public TBB headers instead. -#endif - -#include "../tbb_stddef.h" -#include "../tbb_machine.h" -#include "../atomic.h" -#include "../spin_mutex.h" -#include "../cache_aligned_allocator.h" -#include "../tbb_exception.h" -#include "../tbb_profiling.h" -#include - -#if !TBB_USE_EXCEPTIONS && _MSC_VER - // Suppress "C++ exception handler used, but unwind semantics are not enabled" warning in STL headers - #pragma warning (push) - #pragma warning (disable: 4530) -#endif - -#include - -#if !TBB_USE_EXCEPTIONS && _MSC_VER - #pragma warning (pop) -#endif - -namespace tbb { - -#if !__TBB_TEMPLATE_FRIENDS_BROKEN - -// forward declaration -namespace strict_ppl { -template class concurrent_queue; -} - -template class concurrent_bounded_queue; - -namespace deprecated { -template class concurrent_queue; -} -#endif - -//! For internal use only. -namespace strict_ppl { - -//! @cond INTERNAL -namespace internal { - -using namespace tbb::internal; - -typedef size_t ticket; - -template class micro_queue ; -template class micro_queue_pop_finalizer ; -template class concurrent_queue_base_v3; - -//! parts of concurrent_queue_rep that do not have references to micro_queue -/** - * For internal use only. - */ -struct concurrent_queue_rep_base : no_copy { - template friend class micro_queue; - template friend class concurrent_queue_base_v3; - -protected: - //! Approximately n_queue/golden ratio - static const size_t phi = 3; - -public: - // must be power of 2 - static const size_t n_queue = 8; - - //! Prefix on a page - struct page { - page* next; - uintptr_t mask; - }; - - atomic head_counter; - char pad1[NFS_MaxLineSize-sizeof(atomic)]; - atomic tail_counter; - char pad2[NFS_MaxLineSize-sizeof(atomic)]; - - //! Always a power of 2 - size_t items_per_page; - - //! Size of an item - size_t item_size; - - //! number of invalid entries in the queue - atomic n_invalid_entries; - - char pad3[NFS_MaxLineSize-sizeof(size_t)-sizeof(size_t)-sizeof(atomic)]; -} ; - -inline bool is_valid_page(const concurrent_queue_rep_base::page* p) { - return uintptr_t(p)>1; -} - -//! Abstract class to define interface for page allocation/deallocation -/** - * For internal use only. - */ -class concurrent_queue_page_allocator -{ - template friend class micro_queue ; - template friend class micro_queue_pop_finalizer ; -protected: - virtual ~concurrent_queue_page_allocator() {} -private: - virtual concurrent_queue_rep_base::page* allocate_page() = 0; - virtual void deallocate_page( concurrent_queue_rep_base::page* p ) = 0; -} ; - -#if _MSC_VER && !defined(__INTEL_COMPILER) -// unary minus operator applied to unsigned type, result still unsigned -#pragma warning( push ) -#pragma warning( disable: 4146 ) -#endif - -//! A queue using simple locking. -/** For efficiency, this class has no constructor. - The caller is expected to zero-initialize it. */ -template -class micro_queue : no_copy { - typedef concurrent_queue_rep_base::page page; - - //! Class used to ensure exception-safety of method "pop" - class destroyer: no_copy { - T& my_value; - public: - destroyer( T& value ) : my_value(value) {} - ~destroyer() {my_value.~T();} - }; - - void copy_item( page& dst, size_t index, const void* src ) { - new( &get_ref(dst,index) ) T(*static_cast(src)); - } - - void copy_item( page& dst, size_t dindex, const page& src, size_t sindex ) { - new( &get_ref(dst,dindex) ) T( get_ref(const_cast(src),sindex) ); - } - - void assign_and_destroy_item( void* dst, page& src, size_t index ) { - T& from = get_ref(src,index); - destroyer d(from); - *static_cast(dst) = from; - } - - void spin_wait_until_my_turn( atomic& counter, ticket k, concurrent_queue_rep_base& rb ) const ; - -public: - friend class micro_queue_pop_finalizer; - - struct padded_page: page { - //! Not defined anywhere - exists to quiet warnings. - padded_page(); - //! Not defined anywhere - exists to quiet warnings. - void operator=( const padded_page& ); - //! Must be last field. - T last; - }; - - static T& get_ref( page& p, size_t index ) { - return (&static_cast(static_cast(&p))->last)[index]; - } - - atomic head_page; - atomic head_counter; - - atomic tail_page; - atomic tail_counter; - - spin_mutex page_mutex; - - void push( const void* item, ticket k, concurrent_queue_base_v3& base ) ; - - bool pop( void* dst, ticket k, concurrent_queue_base_v3& base ) ; - - micro_queue& assign( const micro_queue& src, concurrent_queue_base_v3& base ) ; - - page* make_copy( concurrent_queue_base_v3& base, const page* src_page, size_t begin_in_page, size_t end_in_page, ticket& g_index ) ; - - void invalidate_page_and_rethrow( ticket k ) ; -}; - -template -void micro_queue::spin_wait_until_my_turn( atomic& counter, ticket k, concurrent_queue_rep_base& rb ) const { - for( atomic_backoff b(true);;b.pause() ) { - ticket c = counter; - if( c==k ) return; - else if( c&1 ) { - ++rb.n_invalid_entries; - throw_exception( eid_bad_last_alloc ); - } - } -} - -template -void micro_queue::push( const void* item, ticket k, concurrent_queue_base_v3& base ) { - k &= -concurrent_queue_rep_base::n_queue; - page* p = NULL; - size_t index = modulo_power_of_two( k/concurrent_queue_rep_base::n_queue, base.my_rep->items_per_page); - if( !index ) { - __TBB_TRY { - concurrent_queue_page_allocator& pa = base; - p = pa.allocate_page(); - } __TBB_CATCH (...) { - ++base.my_rep->n_invalid_entries; - invalidate_page_and_rethrow( k ); - } - p->mask = 0; - p->next = NULL; - } - - if( tail_counter!=k ) spin_wait_until_my_turn( tail_counter, k, *base.my_rep ); - call_itt_notify(acquired, &tail_counter); - - if( p ) { - spin_mutex::scoped_lock lock( page_mutex ); - page* q = tail_page; - if( is_valid_page(q) ) - q->next = p; - else - head_page = p; - tail_page = p; - } else { - p = tail_page; - } - __TBB_TRY { - copy_item( *p, index, item ); - // If no exception was thrown, mark item as present. - itt_hide_store_word(p->mask, p->mask | uintptr_t(1)<n_invalid_entries; - call_itt_notify(releasing, &tail_counter); - tail_counter += concurrent_queue_rep_base::n_queue; - __TBB_RETHROW(); - } -} - -template -bool micro_queue::pop( void* dst, ticket k, concurrent_queue_base_v3& base ) { - k &= -concurrent_queue_rep_base::n_queue; - if( head_counter!=k ) spin_wait_until_eq( head_counter, k ); - call_itt_notify(acquired, &head_counter); - if( tail_counter==k ) spin_wait_while_eq( tail_counter, k ); - call_itt_notify(acquired, &tail_counter); - page& p = *head_page; - __TBB_ASSERT( &p, NULL ); - size_t index = modulo_power_of_two( k/concurrent_queue_rep_base::n_queue, base.my_rep->items_per_page ); - bool success = false; - { - micro_queue_pop_finalizer finalizer( *this, base, k+concurrent_queue_rep_base::n_queue, index==base.my_rep->items_per_page-1 ? &p : NULL ); - if( p.mask & uintptr_t(1)<n_invalid_entries; - } - } - return success; -} - -template -micro_queue& micro_queue::assign( const micro_queue& src, concurrent_queue_base_v3& base ) { - head_counter = src.head_counter; - tail_counter = src.tail_counter; - page_mutex = src.page_mutex; - - const page* srcp = src.head_page; - if( is_valid_page(srcp) ) { - ticket g_index = head_counter; - __TBB_TRY { - size_t n_items = (tail_counter-head_counter)/concurrent_queue_rep_base::n_queue; - size_t index = modulo_power_of_two( head_counter/concurrent_queue_rep_base::n_queue, base.my_rep->items_per_page ); - size_t end_in_first_page = (index+n_itemsitems_per_page)?(index+n_items):base.my_rep->items_per_page; - - head_page = make_copy( base, srcp, index, end_in_first_page, g_index ); - page* cur_page = head_page; - - if( srcp != src.tail_page ) { - for( srcp = srcp->next; srcp!=src.tail_page; srcp=srcp->next ) { - cur_page->next = make_copy( base, srcp, 0, base.my_rep->items_per_page, g_index ); - cur_page = cur_page->next; - } - - __TBB_ASSERT( srcp==src.tail_page, NULL ); - size_t last_index = modulo_power_of_two( tail_counter/concurrent_queue_rep_base::n_queue, base.my_rep->items_per_page ); - if( last_index==0 ) last_index = base.my_rep->items_per_page; - - cur_page->next = make_copy( base, srcp, 0, last_index, g_index ); - cur_page = cur_page->next; - } - tail_page = cur_page; - } __TBB_CATCH (...) { - invalidate_page_and_rethrow( g_index ); - } - } else { - head_page = tail_page = NULL; - } - return *this; -} - -template -void micro_queue::invalidate_page_and_rethrow( ticket k ) { - // Append an invalid page at address 1 so that no more pushes are allowed. - page* invalid_page = (page*)uintptr_t(1); - { - spin_mutex::scoped_lock lock( page_mutex ); - itt_store_word_with_release(tail_counter, k+concurrent_queue_rep_base::n_queue+1); - page* q = tail_page; - if( is_valid_page(q) ) - q->next = invalid_page; - else - head_page = invalid_page; - tail_page = invalid_page; - } - __TBB_RETHROW(); -} - -template -concurrent_queue_rep_base::page* micro_queue::make_copy( concurrent_queue_base_v3& base, const concurrent_queue_rep_base::page* src_page, size_t begin_in_page, size_t end_in_page, ticket& g_index ) { - concurrent_queue_page_allocator& pa = base; - page* new_page = pa.allocate_page(); - new_page->next = NULL; - new_page->mask = src_page->mask; - for( ; begin_in_page!=end_in_page; ++begin_in_page, ++g_index ) - if( new_page->mask & uintptr_t(1)< -class micro_queue_pop_finalizer: no_copy { - typedef concurrent_queue_rep_base::page page; - ticket my_ticket; - micro_queue& my_queue; - page* my_page; - concurrent_queue_page_allocator& allocator; -public: - micro_queue_pop_finalizer( micro_queue& queue, concurrent_queue_base_v3& b, ticket k, page* p ) : - my_ticket(k), my_queue(queue), my_page(p), allocator(b) - {} - ~micro_queue_pop_finalizer() ; -}; - -template -micro_queue_pop_finalizer::~micro_queue_pop_finalizer() { - page* p = my_page; - if( is_valid_page(p) ) { - spin_mutex::scoped_lock lock( my_queue.page_mutex ); - page* q = p->next; - my_queue.head_page = q; - if( !is_valid_page(q) ) { - my_queue.tail_page = NULL; - } - } - itt_store_word_with_release(my_queue.head_counter, my_ticket); - if( is_valid_page(p) ) { - allocator.deallocate_page( p ); - } -} - -#if _MSC_VER && !defined(__INTEL_COMPILER) -#pragma warning( pop ) -#endif // warning 4146 is back - -template class concurrent_queue_iterator_rep ; -template class concurrent_queue_iterator_base_v3; - -//! representation of concurrent_queue_base -/** - * the class inherits from concurrent_queue_rep_base and defines an array of micro_queue's - */ -template -struct concurrent_queue_rep : public concurrent_queue_rep_base { - micro_queue array[n_queue]; - - //! Map ticket to an array index - static size_t index( ticket k ) { - return k*phi%n_queue; - } - - micro_queue& choose( ticket k ) { - // The formula here approximates LRU in a cache-oblivious way. - return array[index(k)]; - } -}; - -//! base class of concurrent_queue -/** - * The class implements the interface defined by concurrent_queue_page_allocator - * and has a pointer to an instance of concurrent_queue_rep. - */ -template -class concurrent_queue_base_v3: public concurrent_queue_page_allocator { - //! Internal representation - concurrent_queue_rep* my_rep; - - friend struct concurrent_queue_rep; - friend class micro_queue; - friend class concurrent_queue_iterator_rep; - friend class concurrent_queue_iterator_base_v3; - -protected: - typedef typename concurrent_queue_rep::page page; - -private: - typedef typename micro_queue::padded_page padded_page; - - /* override */ virtual page *allocate_page() { - concurrent_queue_rep& r = *my_rep; - size_t n = sizeof(padded_page) + (r.items_per_page-1)*sizeof(T); - return reinterpret_cast(allocate_block ( n )); - } - - /* override */ virtual void deallocate_page( concurrent_queue_rep_base::page *p ) { - concurrent_queue_rep& r = *my_rep; - size_t n = sizeof(padded_page) + (r.items_per_page-1)*sizeof(T); - deallocate_block( reinterpret_cast(p), n ); - } - - //! custom allocator - virtual void *allocate_block( size_t n ) = 0; - - //! custom de-allocator - virtual void deallocate_block( void *p, size_t n ) = 0; - -protected: - concurrent_queue_base_v3(); - - /* override */ virtual ~concurrent_queue_base_v3() { -#if TBB_USE_ASSERT - size_t nq = my_rep->n_queue; - for( size_t i=0; iarray[i].tail_page==NULL, "pages were not freed properly" ); -#endif /* TBB_USE_ASSERT */ - cache_aligned_allocator >().deallocate(my_rep,1); - } - - //! Enqueue item at tail of queue - void internal_push( const void* src ) { - concurrent_queue_rep& r = *my_rep; - ticket k = r.tail_counter++; - r.choose(k).push( src, k, *this ); - } - - //! Attempt to dequeue item from queue. - /** NULL if there was no item to dequeue. */ - bool internal_try_pop( void* dst ) ; - - //! Get size of queue; result may be invalid if queue is modified concurrently - size_t internal_size() const ; - - //! check if the queue is empty; thread safe - bool internal_empty() const ; - - //! free any remaining pages - /* note that the name may be misleading, but it remains so due to a historical accident. */ - void internal_finish_clear() ; - - //! Obsolete - void internal_throw_exception() const { - throw_exception( eid_bad_alloc ); - } - - //! copy internal representation - void assign( const concurrent_queue_base_v3& src ) ; -}; - -template -concurrent_queue_base_v3::concurrent_queue_base_v3() { - const size_t item_size = sizeof(T); - my_rep = cache_aligned_allocator >().allocate(1); - __TBB_ASSERT( (size_t)my_rep % NFS_GetLineSize()==0, "alignment error" ); - __TBB_ASSERT( (size_t)&my_rep->head_counter % NFS_GetLineSize()==0, "alignment error" ); - __TBB_ASSERT( (size_t)&my_rep->tail_counter % NFS_GetLineSize()==0, "alignment error" ); - __TBB_ASSERT( (size_t)&my_rep->array % NFS_GetLineSize()==0, "alignment error" ); - memset(my_rep,0,sizeof(concurrent_queue_rep)); - my_rep->item_size = item_size; - my_rep->items_per_page = item_size<= 8 ? 32 : - item_size<= 16 ? 16 : - item_size<= 32 ? 8 : - item_size<= 64 ? 4 : - item_size<=128 ? 2 : - 1; -} - -template -bool concurrent_queue_base_v3::internal_try_pop( void* dst ) { - concurrent_queue_rep& r = *my_rep; - ticket k; - do { - k = r.head_counter; - for(;;) { - if( (ptrdiff_t)(r.tail_counter-k)<=0 ) { - // Queue is empty - return false; - } - // Queue had item with ticket k when we looked. Attempt to get that item. - ticket tk=k; -#if defined(_MSC_VER) && defined(_Wp64) - #pragma warning (push) - #pragma warning (disable: 4267) -#endif - k = r.head_counter.compare_and_swap( tk+1, tk ); -#if defined(_MSC_VER) && defined(_Wp64) - #pragma warning (pop) -#endif - if( k==tk ) - break; - // Another thread snatched the item, retry. - } - } while( !r.choose( k ).pop( dst, k, *this ) ); - return true; -} - -template -size_t concurrent_queue_base_v3::internal_size() const { - concurrent_queue_rep& r = *my_rep; - __TBB_ASSERT( sizeof(ptrdiff_t)<=sizeof(size_t), NULL ); - ticket hc = r.head_counter; - size_t nie = r.n_invalid_entries; - ticket tc = r.tail_counter; - __TBB_ASSERT( hc!=tc || !nie, NULL ); - ptrdiff_t sz = tc-hc-nie; - return sz<0 ? 0 : size_t(sz); -} - -template -bool concurrent_queue_base_v3::internal_empty() const { - concurrent_queue_rep& r = *my_rep; - ticket tc = r.tail_counter; - ticket hc = r.head_counter; - // if tc!=r.tail_counter, the queue was not empty at some point between the two reads. - return tc==r.tail_counter && tc==hc+r.n_invalid_entries ; -} - -template -void concurrent_queue_base_v3::internal_finish_clear() { - concurrent_queue_rep& r = *my_rep; - size_t nq = r.n_queue; - for( size_t i=0; i -void concurrent_queue_base_v3::assign( const concurrent_queue_base_v3& src ) { - concurrent_queue_rep& r = *my_rep; - r.items_per_page = src.my_rep->items_per_page; - - // copy concurrent_queue_rep. - r.head_counter = src.my_rep->head_counter; - r.tail_counter = src.my_rep->tail_counter; - r.n_invalid_entries = src.my_rep->n_invalid_entries; - - // copy micro_queues - for( size_t i = 0; iarray[i], *this); - - __TBB_ASSERT( r.head_counter==src.my_rep->head_counter && r.tail_counter==src.my_rep->tail_counter, - "the source concurrent queue should not be concurrently modified." ); -} - -template class concurrent_queue_iterator; - -template -class concurrent_queue_iterator_rep: no_assign { - typedef typename micro_queue::padded_page padded_page; -public: - ticket head_counter; - const concurrent_queue_base_v3& my_queue; - typename concurrent_queue_base_v3::page* array[concurrent_queue_rep::n_queue]; - concurrent_queue_iterator_rep( const concurrent_queue_base_v3& queue ) : - head_counter(queue.my_rep->head_counter), - my_queue(queue) - { - for( size_t k=0; k::n_queue; ++k ) - array[k] = queue.my_rep->array[k].head_page; - } - - //! Set item to point to kth element. Return true if at end of queue or item is marked valid; false otherwise. - bool get_item( T*& item, size_t k ) ; -}; - -template -bool concurrent_queue_iterator_rep::get_item( T*& item, size_t k ) { - if( k==my_queue.my_rep->tail_counter ) { - item = NULL; - return true; - } else { - typename concurrent_queue_base_v3::page* p = array[concurrent_queue_rep::index(k)]; - __TBB_ASSERT(p,NULL); - size_t i = modulo_power_of_two( k/concurrent_queue_rep::n_queue, my_queue.my_rep->items_per_page ); - item = µ_queue::get_ref(*p,i); - return (p->mask & uintptr_t(1)< -class concurrent_queue_iterator_base_v3 : no_assign { - //! Represents concurrent_queue over which we are iterating. - /** NULL if one past last element in queue. */ - concurrent_queue_iterator_rep* my_rep; - - template - friend bool operator==( const concurrent_queue_iterator& i, const concurrent_queue_iterator& j ); - - template - friend bool operator!=( const concurrent_queue_iterator& i, const concurrent_queue_iterator& j ); -protected: - //! Pointer to current item - Value* my_item; - - //! Default constructor - concurrent_queue_iterator_base_v3() : my_rep(NULL), my_item(NULL) { -#if __TBB_GCC_OPTIMIZER_ORDERING_BROKEN - __TBB_compiler_fence(); -#endif - } - - //! Copy constructor - concurrent_queue_iterator_base_v3( const concurrent_queue_iterator_base_v3& i ) - : no_assign(), my_rep(NULL), my_item(NULL) { - assign(i); - } - - //! Construct iterator pointing to head of queue. - concurrent_queue_iterator_base_v3( const concurrent_queue_base_v3& queue ) ; - - //! Assignment - void assign( const concurrent_queue_iterator_base_v3& other ) ; - - //! Advance iterator one step towards tail of queue. - void advance() ; - - //! Destructor - ~concurrent_queue_iterator_base_v3() { - cache_aligned_allocator >().deallocate(my_rep, 1); - my_rep = NULL; - } -}; - -template -concurrent_queue_iterator_base_v3::concurrent_queue_iterator_base_v3( const concurrent_queue_base_v3& queue ) { - my_rep = cache_aligned_allocator >().allocate(1); - new( my_rep ) concurrent_queue_iterator_rep(queue); - size_t k = my_rep->head_counter; - if( !my_rep->get_item(my_item, k) ) advance(); -} - -template -void concurrent_queue_iterator_base_v3::assign( const concurrent_queue_iterator_base_v3& other ) { - if( my_rep!=other.my_rep ) { - if( my_rep ) { - cache_aligned_allocator >().deallocate(my_rep, 1); - my_rep = NULL; - } - if( other.my_rep ) { - my_rep = cache_aligned_allocator >().allocate(1); - new( my_rep ) concurrent_queue_iterator_rep( *other.my_rep ); - } - } - my_item = other.my_item; -} - -template -void concurrent_queue_iterator_base_v3::advance() { - __TBB_ASSERT( my_item, "attempt to increment iterator past end of queue" ); - size_t k = my_rep->head_counter; - const concurrent_queue_base_v3& queue = my_rep->my_queue; -#if TBB_USE_ASSERT - Value* tmp; - my_rep->get_item(tmp,k); - __TBB_ASSERT( my_item==tmp, NULL ); -#endif /* TBB_USE_ASSERT */ - size_t i = modulo_power_of_two( k/concurrent_queue_rep::n_queue, queue.my_rep->items_per_page ); - if( i==queue.my_rep->items_per_page-1 ) { - typename concurrent_queue_base_v3::page*& root = my_rep->array[concurrent_queue_rep::index(k)]; - root = root->next; - } - // advance k - my_rep->head_counter = ++k; - if( !my_rep->get_item(my_item, k) ) advance(); -} - -//! Similar to C++0x std::remove_cv -/** "tbb_" prefix added to avoid overload confusion with C++0x implementations. */ -template struct tbb_remove_cv {typedef T type;}; -template struct tbb_remove_cv {typedef T type;}; -template struct tbb_remove_cv {typedef T type;}; -template struct tbb_remove_cv {typedef T type;}; - -//! Meets requirements of a forward iterator for STL. -/** Value is either the T or const T type of the container. - @ingroup containers */ -template -class concurrent_queue_iterator: public concurrent_queue_iterator_base_v3::type>, - public std::iterator { -#if !__TBB_TEMPLATE_FRIENDS_BROKEN - template - friend class ::tbb::strict_ppl::concurrent_queue; -#else -public: // workaround for MSVC -#endif - //! Construct iterator pointing to head of queue. - concurrent_queue_iterator( const concurrent_queue_base_v3& queue ) : - concurrent_queue_iterator_base_v3::type>(queue) - { - } - -public: - concurrent_queue_iterator() {} - - concurrent_queue_iterator( const concurrent_queue_iterator& other ) : - concurrent_queue_iterator_base_v3::type>(other) - {} - - //! Iterator assignment - concurrent_queue_iterator& operator=( const concurrent_queue_iterator& other ) { - this->assign(other); - return *this; - } - - //! Reference to current item - Value& operator*() const { - return *static_cast(this->my_item); - } - - Value* operator->() const {return &operator*();} - - //! Advance to next item in queue - concurrent_queue_iterator& operator++() { - this->advance(); - return *this; - } - - //! Post increment - Value* operator++(int) { - Value* result = &operator*(); - operator++(); - return result; - } -}; // concurrent_queue_iterator - - -template -bool operator==( const concurrent_queue_iterator& i, const concurrent_queue_iterator& j ) { - return i.my_item==j.my_item; -} - -template -bool operator!=( const concurrent_queue_iterator& i, const concurrent_queue_iterator& j ) { - return i.my_item!=j.my_item; -} - -} // namespace internal - -//! @endcond - -} // namespace strict_ppl - -//! @cond INTERNAL -namespace internal { - -class concurrent_queue_rep; -class concurrent_queue_iterator_rep; -class concurrent_queue_iterator_base_v3; -template class concurrent_queue_iterator; - -//! For internal use only. -/** Type-independent portion of concurrent_queue. - @ingroup containers */ -class concurrent_queue_base_v3: no_copy { - //! Internal representation - concurrent_queue_rep* my_rep; - - friend class concurrent_queue_rep; - friend struct micro_queue; - friend class micro_queue_pop_finalizer; - friend class concurrent_queue_iterator_rep; - friend class concurrent_queue_iterator_base_v3; -protected: - //! Prefix on a page - struct page { - page* next; - uintptr_t mask; - }; - - //! Capacity of the queue - ptrdiff_t my_capacity; - - //! Always a power of 2 - size_t items_per_page; - - //! Size of an item - size_t item_size; - -#if __TBB_PROTECTED_NESTED_CLASS_BROKEN -public: -#endif - template - struct padded_page: page { - //! Not defined anywhere - exists to quiet warnings. - padded_page(); - //! Not defined anywhere - exists to quiet warnings. - void operator=( const padded_page& ); - //! Must be last field. - T last; - }; - -private: - virtual void copy_item( page& dst, size_t index, const void* src ) = 0; - virtual void assign_and_destroy_item( void* dst, page& src, size_t index ) = 0; -protected: - __TBB_EXPORTED_METHOD concurrent_queue_base_v3( size_t item_size ); - virtual __TBB_EXPORTED_METHOD ~concurrent_queue_base_v3(); - - //! Enqueue item at tail of queue - void __TBB_EXPORTED_METHOD internal_push( const void* src ); - - //! Dequeue item from head of queue - void __TBB_EXPORTED_METHOD internal_pop( void* dst ); - - //! Abort all pending queue operations - void __TBB_EXPORTED_METHOD internal_abort(); - - //! Attempt to enqueue item onto queue. - bool __TBB_EXPORTED_METHOD internal_push_if_not_full( const void* src ); - - //! Attempt to dequeue item from queue. - /** NULL if there was no item to dequeue. */ - bool __TBB_EXPORTED_METHOD internal_pop_if_present( void* dst ); - - //! Get size of queue - ptrdiff_t __TBB_EXPORTED_METHOD internal_size() const; - - //! Check if the queue is emtpy - bool __TBB_EXPORTED_METHOD internal_empty() const; - - //! Set the queue capacity - void __TBB_EXPORTED_METHOD internal_set_capacity( ptrdiff_t capacity, size_t element_size ); - - //! custom allocator - virtual page *allocate_page() = 0; - - //! custom de-allocator - virtual void deallocate_page( page *p ) = 0; - - //! free any remaining pages - /* note that the name may be misleading, but it remains so due to a historical accident. */ - void __TBB_EXPORTED_METHOD internal_finish_clear() ; - - //! throw an exception - void __TBB_EXPORTED_METHOD internal_throw_exception() const; - - //! copy internal representation - void __TBB_EXPORTED_METHOD assign( const concurrent_queue_base_v3& src ) ; - -private: - virtual void copy_page_item( page& dst, size_t dindex, const page& src, size_t sindex ) = 0; -}; - -//! Type-independent portion of concurrent_queue_iterator. -/** @ingroup containers */ -class concurrent_queue_iterator_base_v3 { - //! concurrent_queue over which we are iterating. - /** NULL if one past last element in queue. */ - concurrent_queue_iterator_rep* my_rep; - - template - friend bool operator==( const concurrent_queue_iterator& i, const concurrent_queue_iterator& j ); - - template - friend bool operator!=( const concurrent_queue_iterator& i, const concurrent_queue_iterator& j ); - - void initialize( const concurrent_queue_base_v3& queue, size_t offset_of_data ); -protected: - //! Pointer to current item - void* my_item; - - //! Default constructor - concurrent_queue_iterator_base_v3() : my_rep(NULL), my_item(NULL) {} - - //! Copy constructor - concurrent_queue_iterator_base_v3( const concurrent_queue_iterator_base_v3& i ) : my_rep(NULL), my_item(NULL) { - assign(i); - } - - //! Obsolete entry point for constructing iterator pointing to head of queue. - /** Does not work correctly for SSE types. */ - __TBB_EXPORTED_METHOD concurrent_queue_iterator_base_v3( const concurrent_queue_base_v3& queue ); - - //! Construct iterator pointing to head of queue. - __TBB_EXPORTED_METHOD concurrent_queue_iterator_base_v3( const concurrent_queue_base_v3& queue, size_t offset_of_data ); - - //! Assignment - void __TBB_EXPORTED_METHOD assign( const concurrent_queue_iterator_base_v3& i ); - - //! Advance iterator one step towards tail of queue. - void __TBB_EXPORTED_METHOD advance(); - - //! Destructor - __TBB_EXPORTED_METHOD ~concurrent_queue_iterator_base_v3(); -}; - -typedef concurrent_queue_iterator_base_v3 concurrent_queue_iterator_base; - -//! Meets requirements of a forward iterator for STL. -/** Value is either the T or const T type of the container. - @ingroup containers */ -template -class concurrent_queue_iterator: public concurrent_queue_iterator_base, - public std::iterator { - -#if !defined(_MSC_VER) || defined(__INTEL_COMPILER) - template - friend class ::tbb::concurrent_bounded_queue; - - template - friend class ::tbb::deprecated::concurrent_queue; -#else -public: // workaround for MSVC -#endif - //! Construct iterator pointing to head of queue. - concurrent_queue_iterator( const concurrent_queue_base_v3& queue ) : - concurrent_queue_iterator_base_v3(queue,__TBB_offsetof(concurrent_queue_base_v3::padded_page,last)) - { - } - -public: - concurrent_queue_iterator() {} - - /** If Value==Container::value_type, then this routine is the copy constructor. - If Value==const Container::value_type, then this routine is a conversion constructor. */ - concurrent_queue_iterator( const concurrent_queue_iterator& other ) : - concurrent_queue_iterator_base_v3(other) - {} - - //! Iterator assignment - concurrent_queue_iterator& operator=( const concurrent_queue_iterator& other ) { - assign(other); - return *this; - } - - //! Reference to current item - Value& operator*() const { - return *static_cast(my_item); - } - - Value* operator->() const {return &operator*();} - - //! Advance to next item in queue - concurrent_queue_iterator& operator++() { - advance(); - return *this; - } - - //! Post increment - Value* operator++(int) { - Value* result = &operator*(); - operator++(); - return result; - } -}; // concurrent_queue_iterator - - -template -bool operator==( const concurrent_queue_iterator& i, const concurrent_queue_iterator& j ) { - return i.my_item==j.my_item; -} - -template -bool operator!=( const concurrent_queue_iterator& i, const concurrent_queue_iterator& j ) { - return i.my_item!=j.my_item; -} - -} // namespace internal; - -//! @endcond - -} // namespace tbb - -#endif /* __TBB__concurrent_queue_impl_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_concurrent_unordered_impl.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_concurrent_unordered_impl.h deleted file mode 100644 index 08415a103..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_concurrent_unordered_impl.h +++ /dev/null @@ -1,1447 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* Container implementations in this header are based on PPL implementations - provided by Microsoft. */ - -#ifndef __TBB__concurrent_unordered_impl_H -#define __TBB__concurrent_unordered_impl_H -#if !defined(__TBB_concurrent_unordered_map_H) && !defined(__TBB_concurrent_unordered_set_H) && !defined(__TBB_concurrent_hash_map_H) -#error Do not #include this internal file directly; use public TBB headers instead. -#endif - -#include "../tbb_stddef.h" - -#if !TBB_USE_EXCEPTIONS && _MSC_VER - // Suppress "C++ exception handler used, but unwind semantics are not enabled" warning in STL headers - #pragma warning (push) - #pragma warning (disable: 4530) -#endif - -#include -#include // Need std::pair -#include // Need std::equal_to (in ../concurrent_unordered_*.h) -#include // For tbb_hasher -#include // Need std::memset - -#if !TBB_USE_EXCEPTIONS && _MSC_VER - #pragma warning (pop) -#endif - -#include "../atomic.h" -#include "../tbb_exception.h" -#include "../tbb_allocator.h" -#include "tbb/atomic.h" - -#if __TBB_INITIALIZER_LISTS_PRESENT - #include -#endif - -namespace tbb { -namespace interface5 { -//! @cond INTERNAL -namespace internal { - -template -class split_ordered_list; -template -class concurrent_unordered_base; - -// Forward list iterators (without skipping dummy elements) -template -class flist_iterator : public std::iterator -{ - template - friend class split_ordered_list; - template - friend class concurrent_unordered_base; - template - friend class flist_iterator; - - typedef typename Solist::nodeptr_t nodeptr_t; -public: - typedef typename Solist::value_type value_type; - typedef typename Solist::difference_type difference_type; - typedef typename Solist::pointer pointer; - typedef typename Solist::reference reference; - - flist_iterator() : my_node_ptr(0) {} - flist_iterator( const flist_iterator &other ) - : my_node_ptr(other.my_node_ptr) {} - - reference operator*() const { return my_node_ptr->my_element; } - pointer operator->() const { return &**this; } - - flist_iterator& operator++() { - my_node_ptr = my_node_ptr->my_next; - return *this; - } - - flist_iterator operator++(int) { - flist_iterator tmp = *this; - ++*this; - return tmp; - } - -protected: - flist_iterator(nodeptr_t pnode) : my_node_ptr(pnode) {} - nodeptr_t get_node_ptr() const { return my_node_ptr; } - - nodeptr_t my_node_ptr; - - template - friend bool operator==( const flist_iterator &i, const flist_iterator &j ); - template - friend bool operator!=( const flist_iterator& i, const flist_iterator& j ); -}; - -template -bool operator==( const flist_iterator &i, const flist_iterator &j ) { - return i.my_node_ptr == j.my_node_ptr; -} -template -bool operator!=( const flist_iterator& i, const flist_iterator& j ) { - return i.my_node_ptr != j.my_node_ptr; -} - -// Split-order list iterators, needed to skip dummy elements -template -class solist_iterator : public flist_iterator -{ - typedef flist_iterator base_type; - typedef typename Solist::nodeptr_t nodeptr_t; - using base_type::get_node_ptr; - template - friend class split_ordered_list; - template - friend class solist_iterator; - template - friend bool operator==( const solist_iterator &i, const solist_iterator &j ); - template - friend bool operator!=( const solist_iterator& i, const solist_iterator& j ); - - const Solist *my_list_ptr; - solist_iterator(nodeptr_t pnode, const Solist *plist) : base_type(pnode), my_list_ptr(plist) {} - -public: - typedef typename Solist::value_type value_type; - typedef typename Solist::difference_type difference_type; - typedef typename Solist::pointer pointer; - typedef typename Solist::reference reference; - - solist_iterator() {} - solist_iterator(const solist_iterator &other ) - : base_type(other), my_list_ptr(other.my_list_ptr) {} - - reference operator*() const { - return this->base_type::operator*(); - } - - pointer operator->() const { - return (&**this); - } - - solist_iterator& operator++() { - do ++(*(base_type *)this); - while (get_node_ptr() != NULL && get_node_ptr()->is_dummy()); - - return (*this); - } - - solist_iterator operator++(int) { - solist_iterator tmp = *this; - do ++*this; - while (get_node_ptr() != NULL && get_node_ptr()->is_dummy()); - - return (tmp); - } -}; - -template -bool operator==( const solist_iterator &i, const solist_iterator &j ) { - return i.my_node_ptr == j.my_node_ptr && i.my_list_ptr == j.my_list_ptr; -} -template -bool operator!=( const solist_iterator& i, const solist_iterator& j ) { - return i.my_node_ptr != j.my_node_ptr || i.my_list_ptr != j.my_list_ptr; -} - -// Forward type and class definitions -typedef size_t sokey_t; - - -// Forward list in which elements are sorted in a split-order -template -class split_ordered_list -{ -public: - typedef split_ordered_list self_type; - typedef typename Allocator::template rebind::other allocator_type; - struct node; - typedef node *nodeptr_t; - - typedef typename allocator_type::size_type size_type; - typedef typename allocator_type::difference_type difference_type; - typedef typename allocator_type::pointer pointer; - typedef typename allocator_type::const_pointer const_pointer; - typedef typename allocator_type::reference reference; - typedef typename allocator_type::const_reference const_reference; - typedef typename allocator_type::value_type value_type; - - typedef solist_iterator const_iterator; - typedef solist_iterator iterator; - typedef flist_iterator raw_const_iterator; - typedef flist_iterator raw_iterator; - - // Node that holds the element in a split-ordered list - struct node : tbb::internal::no_assign - { - private: - // for compilers that try to generate default constructors though they are not needed. - node(); // VS 2008, 2010, 2012 - public: - // Initialize the node with the given order key - void init(sokey_t order_key) { - my_order_key = order_key; - my_next = NULL; - } - - // Return the order key (needed for hashing) - sokey_t get_order_key() const { // TODO: remove - return my_order_key; - } - - // Inserts the new element in the list in an atomic fashion - nodeptr_t atomic_set_next(nodeptr_t new_node, nodeptr_t current_node) - { - // Try to change the next pointer on the current element to a new element, only if it still points to the cached next - nodeptr_t exchange_node = tbb::internal::as_atomic(my_next).compare_and_swap(new_node, current_node); - - if (exchange_node == current_node) // TODO: why this branch? - { - // Operation succeeded, return the new node - return new_node; - } - else - { - // Operation failed, return the "interfering" node - return exchange_node; - } - } - - // Checks if this element in the list is a dummy, order enforcing node. Dummy nodes are used by buckets - // in the hash table to quickly index into the right subsection of the split-ordered list. - bool is_dummy() const { - return (my_order_key & 0x1) == 0; - } - - - nodeptr_t my_next; // Next element in the list - value_type my_element; // Element storage - sokey_t my_order_key; // Order key for this element - }; - - // Allocate a new node with the given order key and value - nodeptr_t create_node(sokey_t order_key, const T &value) { - nodeptr_t pnode = my_node_allocator.allocate(1); - - __TBB_TRY { - new(static_cast(&pnode->my_element)) T(value); - pnode->init(order_key); - } __TBB_CATCH(...) { - my_node_allocator.deallocate(pnode, 1); - __TBB_RETHROW(); - } - - return (pnode); - } - - // Allocate a new node with the given order key; used to allocate dummy nodes - nodeptr_t create_node(sokey_t order_key) { - nodeptr_t pnode = my_node_allocator.allocate(1); - pnode->init(order_key); - return (pnode); - } - - split_ordered_list(allocator_type a = allocator_type()) - : my_node_allocator(a), my_element_count(0) - { - // Immediately allocate a dummy node with order key of 0. This node - // will always be the head of the list. - my_head = create_node(0); - } - - ~split_ordered_list() - { - // Clear the list - clear(); - - // Remove the head element which is not cleared by clear() - nodeptr_t pnode = my_head; - my_head = NULL; - - __TBB_ASSERT(pnode != NULL && pnode->my_next == NULL, "Invalid head list node"); - - destroy_node(pnode); - } - - // Common forward list functions - - allocator_type get_allocator() const { - return (my_node_allocator); - } - - void clear() { - nodeptr_t pnext; - nodeptr_t pnode = my_head; - - __TBB_ASSERT(my_head != NULL, "Invalid head list node"); - pnext = pnode->my_next; - pnode->my_next = NULL; - pnode = pnext; - - while (pnode != NULL) - { - pnext = pnode->my_next; - destroy_node(pnode); - pnode = pnext; - } - - my_element_count = 0; - } - - // Returns a first non-dummy element in the SOL - iterator begin() { - return first_real_iterator(raw_begin()); - } - - // Returns a first non-dummy element in the SOL - const_iterator begin() const { - return first_real_iterator(raw_begin()); - } - - iterator end() { - return (iterator(0, this)); - } - - const_iterator end() const { - return (const_iterator(0, this)); - } - - const_iterator cbegin() const { - return (((const self_type *)this)->begin()); - } - - const_iterator cend() const { - return (((const self_type *)this)->end()); - } - - // Checks if the number of elements (non-dummy) is 0 - bool empty() const { - return (my_element_count == 0); - } - - // Returns the number of non-dummy elements in the list - size_type size() const { - return my_element_count; - } - - // Returns the maximum size of the list, determined by the allocator - size_type max_size() const { - return my_node_allocator.max_size(); - } - - // Swaps 'this' list with the passed in one - void swap(self_type& other) - { - if (this == &other) - { - // Nothing to do - return; - } - - std::swap(my_element_count, other.my_element_count); - std::swap(my_head, other.my_head); - } - - // Split-order list functions - - // Returns a first element in the SOL, which is always a dummy - raw_iterator raw_begin() { - return raw_iterator(my_head); - } - - // Returns a first element in the SOL, which is always a dummy - raw_const_iterator raw_begin() const { - return raw_const_iterator(my_head); - } - - raw_iterator raw_end() { - return raw_iterator(0); - } - - raw_const_iterator raw_end() const { - return raw_const_iterator(0); - } - - static sokey_t get_order_key(const raw_const_iterator& it) { - return it.get_node_ptr()->get_order_key(); - } - - static sokey_t get_safe_order_key(const raw_const_iterator& it) { - if( !it.get_node_ptr() ) return ~sokey_t(0); - return it.get_node_ptr()->get_order_key(); - } - - // Returns a public iterator version of the internal iterator. Public iterator must not - // be a dummy private iterator. - iterator get_iterator(raw_iterator it) { - __TBB_ASSERT(it.get_node_ptr() == NULL || !it.get_node_ptr()->is_dummy(), "Invalid user node (dummy)"); - return iterator(it.get_node_ptr(), this); - } - - // Returns a public iterator version of the internal iterator. Public iterator must not - // be a dummy private iterator. - const_iterator get_iterator(raw_const_iterator it) const { - __TBB_ASSERT(it.get_node_ptr() == NULL || !it.get_node_ptr()->is_dummy(), "Invalid user node (dummy)"); - return const_iterator(it.get_node_ptr(), this); - } - - // Returns a non-const version of the raw_iterator - raw_iterator get_iterator(raw_const_iterator it) { - return raw_iterator(it.get_node_ptr()); - } - - // Returns a non-const version of the iterator - static iterator get_iterator(const_iterator it) { - return iterator(it.my_node_ptr, it.my_list_ptr); - } - - // Returns a public iterator version of a first non-dummy internal iterator at or after - // the passed in internal iterator. - iterator first_real_iterator(raw_iterator it) - { - // Skip all dummy, internal only iterators - while (it != raw_end() && it.get_node_ptr()->is_dummy()) - ++it; - - return iterator(it.get_node_ptr(), this); - } - - // Returns a public iterator version of a first non-dummy internal iterator at or after - // the passed in internal iterator. - const_iterator first_real_iterator(raw_const_iterator it) const - { - // Skip all dummy, internal only iterators - while (it != raw_end() && it.get_node_ptr()->is_dummy()) - ++it; - - return const_iterator(it.get_node_ptr(), this); - } - - // Erase an element using the allocator - void destroy_node(nodeptr_t pnode) { - if (!pnode->is_dummy()) my_node_allocator.destroy(pnode); - my_node_allocator.deallocate(pnode, 1); - } - - // Try to insert a new element in the list. If insert fails, return the node that - // was inserted instead. - nodeptr_t try_insert(nodeptr_t previous, nodeptr_t new_node, nodeptr_t current_node) { - new_node->my_next = current_node; - return previous->atomic_set_next(new_node, current_node); - } - - // Insert a new element between passed in iterators - std::pair try_insert(raw_iterator it, raw_iterator next, const value_type &value, sokey_t order_key, size_type *new_count) - { - nodeptr_t pnode = create_node(order_key, value); - nodeptr_t inserted_node = try_insert(it.get_node_ptr(), pnode, next.get_node_ptr()); - - if (inserted_node == pnode) - { - // If the insert succeeded, check that the order is correct and increment the element count - check_range(); - *new_count = __TBB_FetchAndAddW((uintptr_t*)&my_element_count, uintptr_t(1)); - return std::pair(iterator(pnode, this), true); - } - else - { - // If the insert failed (element already there), then delete the new one - destroy_node(pnode); - return std::pair(end(), false); - } - } - - // Insert a new dummy element, starting search at a parent dummy element - raw_iterator insert_dummy(raw_iterator it, sokey_t order_key) - { - raw_iterator last = raw_end(); - raw_iterator where = it; - - __TBB_ASSERT(where != last, "Invalid head node"); - - ++where; - - // Create a dummy element up front, even though it may be discarded (due to concurrent insertion) - nodeptr_t dummy_node = create_node(order_key); - - for (;;) - { - __TBB_ASSERT(it != last, "Invalid head list node"); - - // If the head iterator is at the end of the list, or past the point where this dummy - // node needs to be inserted, then try to insert it. - if (where == last || get_order_key(where) > order_key) - { - __TBB_ASSERT(get_order_key(it) < order_key, "Invalid node order in the list"); - - // Try to insert it in the right place - nodeptr_t inserted_node = try_insert(it.get_node_ptr(), dummy_node, where.get_node_ptr()); - - if (inserted_node == dummy_node) - { - // Insertion succeeded, check the list for order violations - check_range(); - return raw_iterator(dummy_node); - } - else - { - // Insertion failed: either dummy node was inserted by another thread, or - // a real element was inserted at exactly the same place as dummy node. - // Proceed with the search from the previous location where order key was - // known to be larger (note: this is legal only because there is no safe - // concurrent erase operation supported). - where = it; - ++where; - continue; - } - } - else if (get_order_key(where) == order_key) - { - // Another dummy node with the same value found, discard the new one. - destroy_node(dummy_node); - return where; - } - - // Move the iterator forward - it = where; - ++where; - } - - } - - // This erase function can handle both real and dummy nodes - void erase_node(raw_iterator previous, raw_const_iterator& where) - { - nodeptr_t pnode = (where++).get_node_ptr(); - nodeptr_t prevnode = previous.get_node_ptr(); - __TBB_ASSERT(prevnode->my_next == pnode, "Erase must take consecutive iterators"); - prevnode->my_next = pnode->my_next; - - destroy_node(pnode); - } - - // Erase the element (previous node needs to be passed because this is a forward only list) - iterator erase_node(raw_iterator previous, const_iterator where) - { - raw_const_iterator it = where; - erase_node(previous, it); - my_element_count--; - - return get_iterator(first_real_iterator(it)); - } - - // Move all elements from the passed in split-ordered list to this one - void move_all(self_type& source) - { - raw_const_iterator first = source.raw_begin(); - raw_const_iterator last = source.raw_end(); - - if (first == last) - return; - - nodeptr_t previous_node = my_head; - raw_const_iterator begin_iterator = first++; - - // Move all elements one by one, including dummy ones - for (raw_const_iterator it = first; it != last;) - { - nodeptr_t pnode = it.get_node_ptr(); - - nodeptr_t dummy_node = pnode->is_dummy() ? create_node(pnode->get_order_key()) : create_node(pnode->get_order_key(), pnode->my_element); - previous_node = try_insert(previous_node, dummy_node, NULL); - __TBB_ASSERT(previous_node != NULL, "Insertion must succeed"); - raw_const_iterator where = it++; - source.erase_node(get_iterator(begin_iterator), where); - } - check_range(); - } - - -private: - - // Check the list for order violations - void check_range() - { -#if TBB_USE_ASSERT - for (raw_iterator it = raw_begin(); it != raw_end(); ++it) - { - raw_iterator next_iterator = it; - ++next_iterator; - - __TBB_ASSERT(next_iterator == end() || next_iterator.get_node_ptr()->get_order_key() >= it.get_node_ptr()->get_order_key(), "!!! List order inconsistency !!!"); - } -#endif - } - - typename allocator_type::template rebind::other my_node_allocator; // allocator object for nodes - size_type my_element_count; // Total item count, not counting dummy nodes - nodeptr_t my_head; // pointer to head node -}; - -// Template class for hash compare -template -class hash_compare -{ -public: - hash_compare() {} - - hash_compare(Hasher a_hasher) : my_hash_object(a_hasher) {} - - hash_compare(Hasher a_hasher, Key_equality a_keyeq) : my_hash_object(a_hasher), my_key_compare_object(a_keyeq) {} - - size_t operator()(const Key& key) const { - return ((size_t)my_hash_object(key)); - } - - bool operator()(const Key& key1, const Key& key2) const { - return (!my_key_compare_object(key1, key2)); - } - - Hasher my_hash_object; // The hash object - Key_equality my_key_compare_object; // The equality comparator object -}; - -#if _MSC_VER -#pragma warning(push) -#pragma warning(disable: 4127) // warning 4127 -- while (true) has a constant expression in it (for allow_multimapping) -#endif - -template -class concurrent_unordered_base : public Traits -{ -protected: - // Type definitions - typedef concurrent_unordered_base self_type; - typedef typename Traits::value_type value_type; - typedef typename Traits::key_type key_type; - typedef typename Traits::hash_compare hash_compare; - typedef typename Traits::value_compare value_compare; - typedef typename Traits::allocator_type allocator_type; - typedef typename allocator_type::pointer pointer; - typedef typename allocator_type::const_pointer const_pointer; - typedef typename allocator_type::reference reference; - typedef typename allocator_type::const_reference const_reference; - typedef typename allocator_type::size_type size_type; - typedef typename allocator_type::difference_type difference_type; - typedef split_ordered_list solist_t; - typedef typename solist_t::nodeptr_t nodeptr_t; - // Iterators that walk the entire split-order list, including dummy nodes - typedef typename solist_t::raw_iterator raw_iterator; - typedef typename solist_t::raw_const_iterator raw_const_iterator; - typedef typename solist_t::iterator iterator; // TODO: restore const iterator for unordered_sets - typedef typename solist_t::const_iterator const_iterator; - typedef iterator local_iterator; - typedef const_iterator const_local_iterator; - using Traits::my_hash_compare; - using Traits::get_key; - using Traits::allow_multimapping; - -private: - typedef std::pair pairii_t; - typedef std::pair paircc_t; - - static size_type const pointers_per_table = sizeof(size_type) * 8; // One bucket segment per bit - static const size_type initial_bucket_number = 8; // Initial number of buckets - static const size_type initial_bucket_load = 4; // Initial maximum number of elements per bucket - -protected: - // Constructors/Destructors - concurrent_unordered_base(size_type n_of_buckets = initial_bucket_number, - const hash_compare& hc = hash_compare(), const allocator_type& a = allocator_type()) - : Traits(hc), my_solist(a), - my_allocator(a), my_maximum_bucket_size((float) initial_bucket_load) - { - if( n_of_buckets == 0) ++n_of_buckets; - my_number_of_buckets = 1<<__TBB_Log2((uintptr_t)n_of_buckets*2-1); // round up to power of 2 - internal_init(); - } - - concurrent_unordered_base(const concurrent_unordered_base& right, const allocator_type& a) - : Traits(right.my_hash_compare), my_solist(a), my_allocator(a) - { - internal_init(); - internal_copy(right); - } - - concurrent_unordered_base(const concurrent_unordered_base& right) - : Traits(right.my_hash_compare), my_solist(right.get_allocator()), my_allocator(right.get_allocator()) - { - internal_init(); - internal_copy(right); - } - - concurrent_unordered_base& operator=(const concurrent_unordered_base& right) { - if (this != &right) - internal_copy(right); - return (*this); - } - -#if __TBB_INITIALIZER_LISTS_PRESENT - //! assignment operator from initializer_list - concurrent_unordered_base& operator=(std::initializer_list const& il) - { - this->clear(); - this->insert(il.begin(),il.end()); - return (*this); - } -#endif //# __TBB_INITIALIZER_LISTS_PRESENT - - - ~concurrent_unordered_base() { - // Delete all node segments - internal_clear(); - } - -public: - allocator_type get_allocator() const { - return my_solist.get_allocator(); - } - - // Size and capacity function - bool empty() const { - return my_solist.empty(); - } - - size_type size() const { - return my_solist.size(); - } - - size_type max_size() const { - return my_solist.max_size(); - } - - // Iterators - iterator begin() { - return my_solist.begin(); - } - - const_iterator begin() const { - return my_solist.begin(); - } - - iterator end() { - return my_solist.end(); - } - - const_iterator end() const { - return my_solist.end(); - } - - const_iterator cbegin() const { - return my_solist.cbegin(); - } - - const_iterator cend() const { - return my_solist.cend(); - } - - // Parallel traversal support - class const_range_type : tbb::internal::no_assign { - const concurrent_unordered_base &my_table; - raw_const_iterator my_begin_node; - raw_const_iterator my_end_node; - mutable raw_const_iterator my_midpoint_node; - public: - //! Type for size of a range - typedef typename concurrent_unordered_base::size_type size_type; - typedef typename concurrent_unordered_base::value_type value_type; - typedef typename concurrent_unordered_base::reference reference; - typedef typename concurrent_unordered_base::difference_type difference_type; - typedef typename concurrent_unordered_base::const_iterator iterator; - - //! True if range is empty. - bool empty() const {return my_begin_node == my_end_node;} - - //! True if range can be partitioned into two subranges. - bool is_divisible() const { - return my_midpoint_node != my_end_node; - } - //! Split range. - const_range_type( const_range_type &r, split ) : - my_table(r.my_table), my_end_node(r.my_end_node) - { - r.my_end_node = my_begin_node = r.my_midpoint_node; - __TBB_ASSERT( !empty(), "Splitting despite the range is not divisible" ); - __TBB_ASSERT( !r.empty(), "Splitting despite the range is not divisible" ); - set_midpoint(); - r.set_midpoint(); - } - //! Init range with container and grainsize specified - const_range_type( const concurrent_unordered_base &a_table ) : - my_table(a_table), my_begin_node(a_table.my_solist.begin()), - my_end_node(a_table.my_solist.end()) - { - set_midpoint(); - } - iterator begin() const { return my_table.my_solist.get_iterator(my_begin_node); } - iterator end() const { return my_table.my_solist.get_iterator(my_end_node); } - //! The grain size for this range. - size_type grainsize() const { return 1; } - - //! Set my_midpoint_node to point approximately half way between my_begin_node and my_end_node. - void set_midpoint() const { - if( my_begin_node == my_end_node ) // not divisible - my_midpoint_node = my_end_node; - else { - sokey_t begin_key = solist_t::get_safe_order_key(my_begin_node); - sokey_t end_key = solist_t::get_safe_order_key(my_end_node); - size_t mid_bucket = __TBB_ReverseBits( begin_key + (end_key-begin_key)/2 ) % my_table.my_number_of_buckets; - while ( !my_table.is_initialized(mid_bucket) ) mid_bucket = my_table.get_parent(mid_bucket); - if(__TBB_ReverseBits(mid_bucket) > begin_key) { - // found a dummy_node between begin and end - my_midpoint_node = my_table.my_solist.first_real_iterator(my_table.get_bucket( mid_bucket )); - } - else { - // didn't find a dummy node between begin and end. - my_midpoint_node = my_end_node; - } -#if TBB_USE_ASSERT - { - sokey_t mid_key = solist_t::get_safe_order_key(my_midpoint_node); - __TBB_ASSERT( begin_key < mid_key, "my_begin_node is after my_midpoint_node" ); - __TBB_ASSERT( mid_key <= end_key, "my_midpoint_node is after my_end_node" ); - } -#endif // TBB_USE_ASSERT - } - } - }; - - class range_type : public const_range_type { - public: - typedef typename concurrent_unordered_base::iterator iterator; - //! Split range. - range_type( range_type &r, split ) : const_range_type( r, split() ) {} - //! Init range with container and grainsize specified - range_type( const concurrent_unordered_base &a_table ) : const_range_type(a_table) {} - - iterator begin() const { return solist_t::get_iterator( const_range_type::begin() ); } - iterator end() const { return solist_t::get_iterator( const_range_type::end() ); } - }; - - range_type range() { - return range_type( *this ); - } - - const_range_type range() const { - return const_range_type( *this ); - } - - // Modifiers - std::pair insert(const value_type& value) { - return internal_insert(value); - } - - iterator insert(const_iterator, const value_type& value) { - // Ignore hint - return insert(value).first; - } - - template - void insert(Iterator first, Iterator last) { - for (Iterator it = first; it != last; ++it) - insert(*it); - } - - iterator unsafe_erase(const_iterator where) { - return internal_erase(where); - } - - iterator unsafe_erase(const_iterator first, const_iterator last) { - while (first != last) - unsafe_erase(first++); - return my_solist.get_iterator(first); - } - - size_type unsafe_erase(const key_type& key) { - pairii_t where = equal_range(key); - size_type item_count = internal_distance(where.first, where.second); - unsafe_erase(where.first, where.second); - return item_count; - } - - void swap(concurrent_unordered_base& right) { - if (this != &right) { - std::swap(my_hash_compare, right.my_hash_compare); // TODO: check what ADL meant here - my_solist.swap(right.my_solist); - internal_swap_buckets(right); - std::swap(my_number_of_buckets, right.my_number_of_buckets); - std::swap(my_maximum_bucket_size, right.my_maximum_bucket_size); - } - } - - // Observers - void clear() { - // Clear list - my_solist.clear(); - - // Clear buckets - internal_clear(); - - // Initialize bucket 0 - __TBB_ASSERT(my_buckets[0] == NULL, NULL); - raw_iterator dummy_node = my_solist.raw_begin(); - set_bucket(0, dummy_node); - } - - // Lookup - iterator find(const key_type& key) { - return internal_find(key); - } - - const_iterator find(const key_type& key) const { - return const_cast(this)->internal_find(key); - } - - size_type count(const key_type& key) const { - if(allow_multimapping) { - paircc_t answer = equal_range(key); - size_type item_count = internal_distance(answer.first, answer.second); - return item_count; - } else { - return const_cast(this)->internal_find(key) == end()?0:1; - } - } - - std::pair equal_range(const key_type& key) { - return internal_equal_range(key); - } - - std::pair equal_range(const key_type& key) const { - return const_cast(this)->internal_equal_range(key); - } - - // Bucket interface - for debugging - size_type unsafe_bucket_count() const { - return my_number_of_buckets; - } - - size_type unsafe_max_bucket_count() const { - return segment_size(pointers_per_table-1); - } - - size_type unsafe_bucket_size(size_type bucket) { - size_type item_count = 0; - if (is_initialized(bucket)) { - raw_iterator it = get_bucket(bucket); - ++it; - for (; it != my_solist.raw_end() && !it.get_node_ptr()->is_dummy(); ++it) - ++item_count; - } - return item_count; - } - - size_type unsafe_bucket(const key_type& key) const { - sokey_t order_key = (sokey_t) my_hash_compare(key); - size_type bucket = order_key % my_number_of_buckets; - return bucket; - } - - // If the bucket is initialized, return a first non-dummy element in it - local_iterator unsafe_begin(size_type bucket) { - if (!is_initialized(bucket)) - return end(); - - raw_iterator it = get_bucket(bucket); - return my_solist.first_real_iterator(it); - } - - // If the bucket is initialized, return a first non-dummy element in it - const_local_iterator unsafe_begin(size_type bucket) const - { - if (!is_initialized(bucket)) - return end(); - - raw_const_iterator it = get_bucket(bucket); - return my_solist.first_real_iterator(it); - } - - // @REVIEW: Takes O(n) - // Returns the iterator after the last non-dummy element in the bucket - local_iterator unsafe_end(size_type bucket) - { - if (!is_initialized(bucket)) - return end(); - - raw_iterator it = get_bucket(bucket); - - // Find the end of the bucket, denoted by the dummy element - do ++it; - while(it != my_solist.raw_end() && !it.get_node_ptr()->is_dummy()); - - // Return the first real element past the end of the bucket - return my_solist.first_real_iterator(it); - } - - // @REVIEW: Takes O(n) - // Returns the iterator after the last non-dummy element in the bucket - const_local_iterator unsafe_end(size_type bucket) const - { - if (!is_initialized(bucket)) - return end(); - - raw_const_iterator it = get_bucket(bucket); - - // Find the end of the bucket, denoted by the dummy element - do ++it; - while(it != my_solist.raw_end() && !it.get_node_ptr()->is_dummy()); - - // Return the first real element past the end of the bucket - return my_solist.first_real_iterator(it); - } - - const_local_iterator unsafe_cbegin(size_type /*bucket*/) const { - return ((const self_type *) this)->begin(); - } - - const_local_iterator unsafe_cend(size_type /*bucket*/) const { - return ((const self_type *) this)->end(); - } - - // Hash policy - float load_factor() const { - return (float) size() / (float) unsafe_bucket_count(); - } - - float max_load_factor() const { - return my_maximum_bucket_size; - } - - void max_load_factor(float newmax) { - if (newmax != newmax || newmax < 0) - tbb::internal::throw_exception(tbb::internal::eid_invalid_load_factor); - my_maximum_bucket_size = newmax; - } - - // This function is a noop, because the underlying split-ordered list - // is already sorted, so an increase in the bucket number will be - // reflected next time this bucket is touched. - void rehash(size_type buckets) { - size_type current_buckets = my_number_of_buckets; - if (current_buckets >= buckets) - return; - my_number_of_buckets = 1<<__TBB_Log2((uintptr_t)buckets*2-1); // round up to power of 2 - } - -private: - - // Initialize the hash and keep the first bucket open - void internal_init() { - // Allocate an array of segment pointers - memset(my_buckets, 0, pointers_per_table * sizeof(void *)); - - // Initialize bucket 0 - raw_iterator dummy_node = my_solist.raw_begin(); - set_bucket(0, dummy_node); - } - - void internal_clear() { - for (size_type index = 0; index < pointers_per_table; ++index) { - if (my_buckets[index] != NULL) { - size_type sz = segment_size(index); - for (size_type index2 = 0; index2 < sz; ++index2) - my_allocator.destroy(&my_buckets[index][index2]); - my_allocator.deallocate(my_buckets[index], sz); - my_buckets[index] = 0; - } - } - } - - void internal_copy(const self_type& right) { - clear(); - - my_maximum_bucket_size = right.my_maximum_bucket_size; - my_number_of_buckets = right.my_number_of_buckets; - - __TBB_TRY { - insert(right.begin(), right.end()); - my_hash_compare = right.my_hash_compare; - } __TBB_CATCH(...) { - my_solist.clear(); - __TBB_RETHROW(); - } - } - - void internal_swap_buckets(concurrent_unordered_base& right) - { - // Swap all node segments - for (size_type index = 0; index < pointers_per_table; ++index) - { - raw_iterator * iterator_pointer = my_buckets[index]; - my_buckets[index] = right.my_buckets[index]; - right.my_buckets[index] = iterator_pointer; - } - } - - // Hash APIs - size_type internal_distance(const_iterator first, const_iterator last) const - { - size_type num = 0; - - for (const_iterator it = first; it != last; ++it) - ++num; - - return num; - } - - // Insert an element in the hash given its value - std::pair internal_insert(const value_type& value) - { - sokey_t order_key = (sokey_t) my_hash_compare(get_key(value)); - size_type bucket = order_key % my_number_of_buckets; - - // If bucket is empty, initialize it first - if (!is_initialized(bucket)) - init_bucket(bucket); - - size_type new_count = 0; - order_key = split_order_key_regular(order_key); - raw_iterator it = get_bucket(bucket); - raw_iterator last = my_solist.raw_end(); - raw_iterator where = it; - - __TBB_ASSERT(where != last, "Invalid head node"); - - // First node is a dummy node - ++where; - - for (;;) - { - if (where == last || solist_t::get_order_key(where) > order_key) - { - // Try to insert it in the right place - std::pair result = my_solist.try_insert(it, where, value, order_key, &new_count); - - if (result.second) - { - // Insertion succeeded, adjust the table size, if needed - adjust_table_size(new_count, my_number_of_buckets); - return result; - } - else - { - // Insertion failed: either the same node was inserted by another thread, or - // another element was inserted at exactly the same place as this node. - // Proceed with the search from the previous location where order key was - // known to be larger (note: this is legal only because there is no safe - // concurrent erase operation supported). - where = it; - ++where; - continue; - } - } - else if (!allow_multimapping && solist_t::get_order_key(where) == order_key && my_hash_compare(get_key(*where), get_key(value)) == 0) - { - // Element already in the list, return it - return std::pair(my_solist.get_iterator(where), false); - } - - // Move the iterator forward - it = where; - ++where; - } - } - - // Find the element in the split-ordered list - iterator internal_find(const key_type& key) - { - sokey_t order_key = (sokey_t) my_hash_compare(key); - size_type bucket = order_key % my_number_of_buckets; - - // If bucket is empty, initialize it first - if (!is_initialized(bucket)) - init_bucket(bucket); - - order_key = split_order_key_regular(order_key); - raw_iterator last = my_solist.raw_end(); - - for (raw_iterator it = get_bucket(bucket); it != last; ++it) - { - if (solist_t::get_order_key(it) > order_key) - { - // If the order key is smaller than the current order key, the element - // is not in the hash. - return end(); - } - else if (solist_t::get_order_key(it) == order_key) - { - // The fact that order keys match does not mean that the element is found. - // Key function comparison has to be performed to check whether this is the - // right element. If not, keep searching while order key is the same. - if (!my_hash_compare(get_key(*it), key)) - return my_solist.get_iterator(it); - } - } - - return end(); - } - - // Erase an element from the list. This is not a concurrency safe function. - iterator internal_erase(const_iterator it) - { - key_type key = get_key(*it); - sokey_t order_key = (sokey_t) my_hash_compare(key); - size_type bucket = order_key % my_number_of_buckets; - - // If bucket is empty, initialize it first - if (!is_initialized(bucket)) - init_bucket(bucket); - - order_key = split_order_key_regular(order_key); - - raw_iterator previous = get_bucket(bucket); - raw_iterator last = my_solist.raw_end(); - raw_iterator where = previous; - - __TBB_ASSERT(where != last, "Invalid head node"); - - // First node is a dummy node - ++where; - - for (;;) { - if (where == last) - return end(); - else if (my_solist.get_iterator(where) == it) - return my_solist.erase_node(previous, it); - - // Move the iterator forward - previous = where; - ++where; - } - } - - // Return the [begin, end) pair of iterators with the same key values. - // This operation makes sense only if mapping is many-to-one. - pairii_t internal_equal_range(const key_type& key) - { - sokey_t order_key = (sokey_t) my_hash_compare(key); - size_type bucket = order_key % my_number_of_buckets; - - // If bucket is empty, initialize it first - if (!is_initialized(bucket)) - init_bucket(bucket); - - order_key = split_order_key_regular(order_key); - raw_iterator end_it = my_solist.raw_end(); - - for (raw_iterator it = get_bucket(bucket); it != end_it; ++it) - { - if (solist_t::get_order_key(it) > order_key) - { - // There is no element with the given key - return pairii_t(end(), end()); - } - else if (solist_t::get_order_key(it) == order_key && !my_hash_compare(get_key(*it), key)) - { - iterator first = my_solist.get_iterator(it); - iterator last = first; - do ++last; while( allow_multimapping && last != end() && !my_hash_compare(get_key(*last), key) ); - return pairii_t(first, last); - } - } - - return pairii_t(end(), end()); - } - - // Bucket APIs - void init_bucket(size_type bucket) - { - // Bucket 0 has no parent. - __TBB_ASSERT( bucket != 0, "The first bucket must always be initialized"); - - size_type parent_bucket = get_parent(bucket); - - // All parent_bucket buckets have to be initialized before this bucket is - if (!is_initialized(parent_bucket)) - init_bucket(parent_bucket); - - raw_iterator parent = get_bucket(parent_bucket); - - // Create a dummy first node in this bucket - raw_iterator dummy_node = my_solist.insert_dummy(parent, split_order_key_dummy(bucket)); - set_bucket(bucket, dummy_node); - } - - void adjust_table_size(size_type total_elements, size_type current_size) - { - // Grow the table by a factor of 2 if possible and needed - if ( ((float) total_elements / (float) current_size) > my_maximum_bucket_size ) - { - // Double the size of the hash only if size has not changed in between loads - my_number_of_buckets.compare_and_swap(2u*current_size, current_size); - //Simple "my_number_of_buckets.compare_and_swap( current_size<<1, current_size );" does not work for VC8 - //due to overzealous compiler warnings in /Wp64 mode - } - } - - size_type get_parent(size_type bucket) const - { - // Unsets bucket's most significant turned-on bit - size_type msb = __TBB_Log2((uintptr_t)bucket); - return bucket & ~(size_type(1) << msb); - } - - - // Dynamic sized array (segments) - //! @return segment index of given index in the array - static size_type segment_index_of( size_type index ) { - return size_type( __TBB_Log2( uintptr_t(index|1) ) ); - } - - //! @return the first array index of given segment - static size_type segment_base( size_type k ) { - return (size_type(1)< my_number_of_buckets; // Current table size - solist_t my_solist; // List where all the elements are kept - typename allocator_type::template rebind::other my_allocator; // Allocator object for segments - float my_maximum_bucket_size; // Maximum size of the bucket - atomic my_buckets[pointers_per_table]; // The segment table -}; -#if _MSC_VER -#pragma warning(pop) // warning 4127 -- while (true) has a constant expression in it -#endif - -//! Hash multiplier -static const size_t hash_multiplier = tbb::internal::select_size_t_constant<2654435769U, 11400714819323198485ULL>::value; -} // namespace internal -//! @endcond -//! Hasher functions -template -inline size_t tbb_hasher( const T& t ) { - return static_cast( t ) * internal::hash_multiplier; -} -template -inline size_t tbb_hasher( P* ptr ) { - size_t const h = reinterpret_cast( ptr ); - return (h >> 3) ^ h; -} -template -inline size_t tbb_hasher( const std::basic_string& s ) { - size_t h = 0; - for( const E* c = s.c_str(); *c; ++c ) - h = static_cast(*c) ^ (h * internal::hash_multiplier); - return h; -} -template -inline size_t tbb_hasher( const std::pair& p ) { - return tbb_hasher(p.first) ^ tbb_hasher(p.second); -} -} // namespace interface5 -using interface5::tbb_hasher; - - -// Template class for hash compare -template -class tbb_hash -{ -public: - tbb_hash() {} - - size_t operator()(const Key& key) const - { - return tbb_hasher(key); - } -}; - -} // namespace tbb -#endif// __TBB__concurrent_unordered_impl_H diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_flow_graph_impl.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_flow_graph_impl.h deleted file mode 100644 index 26bfa30f3..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_flow_graph_impl.h +++ /dev/null @@ -1,615 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB__flow_graph_impl_H -#define __TBB__flow_graph_impl_H - -#ifndef __TBB_flow_graph_H -#error Do not #include this internal file directly; use public TBB headers instead. -#endif - -namespace internal { - - namespace graph_policy_namespace { - enum graph_buffer_policy { rejecting, reserving, queueing, tag_matching }; - } - -// -------------- function_body containers ---------------------- - - //! A functor that takes no input and generates a value of type Output - template< typename Output > - class source_body : tbb::internal::no_assign { - public: - virtual ~source_body() {} - virtual bool operator()(Output &output) = 0; - virtual source_body* clone() = 0; - }; - - //! The leaf for source_body - template< typename Output, typename Body> - class source_body_leaf : public source_body { - public: - source_body_leaf( const Body &_body ) : body(_body), init_body(_body) { } - /*override*/ bool operator()(Output &output) { return body( output ); } - /*override*/ source_body_leaf* clone() { - return new source_body_leaf< Output, Body >(init_body); - } - Body get_body() { return body; } - private: - Body body; - Body init_body; - }; - - //! A functor that takes an Input and generates an Output - template< typename Input, typename Output > - class function_body : tbb::internal::no_assign { - public: - virtual ~function_body() {} - virtual Output operator()(const Input &input) = 0; - virtual function_body* clone() = 0; - }; - - //! the leaf for function_body - template - class function_body_leaf : public function_body< Input, Output > { - public: - function_body_leaf( const B &_body ) : body(_body), init_body(_body) { } - Output operator()(const Input &i) { return body(i); } - B get_body() { return body; } - /*override*/ function_body_leaf* clone() { - return new function_body_leaf< Input, Output, B >(init_body); - } - private: - B body; - B init_body; - }; - - //! the leaf for function_body specialized for Input and output of continue_msg - template - class function_body_leaf< continue_msg, continue_msg, B> : public function_body< continue_msg, continue_msg > { - public: - function_body_leaf( const B &_body ) : body(_body), init_body(_body) { } - continue_msg operator()( const continue_msg &i ) { - body(i); - return i; - } - B get_body() { return body; } - /*override*/ function_body_leaf* clone() { - return new function_body_leaf< continue_msg, continue_msg, B >(init_body); - } - private: - B body; - B init_body; - }; - - //! the leaf for function_body specialized for Output of continue_msg - template - class function_body_leaf< Input, continue_msg, B> : public function_body< Input, continue_msg > { - public: - function_body_leaf( const B &_body ) : body(_body), init_body(_body) { } - continue_msg operator()(const Input &i) { - body(i); - return continue_msg(); - } - B get_body() { return body; } - /*override*/ function_body_leaf* clone() { - return new function_body_leaf< Input, continue_msg, B >(init_body); - } - private: - B body; - B init_body; - }; - - //! the leaf for function_body specialized for Input of continue_msg - template - class function_body_leaf< continue_msg, Output, B > : public function_body< continue_msg, Output > { - public: - function_body_leaf( const B &_body ) : body(_body), init_body(_body) { } - Output operator()(const continue_msg &i) { - return body(i); - } - B get_body() { return body; } - /*override*/ function_body_leaf* clone() { - return new function_body_leaf< continue_msg, Output, B >(init_body); - } - private: - B body; - B init_body; - }; - - //! function_body that takes an Input and a set of output ports - template - class multifunction_body { - public: - virtual ~multifunction_body () {} - virtual void operator()(const Input &/* input*/, OutputSet &/*oset*/) = 0; - virtual multifunction_body* clone() = 0; - }; - - //! leaf for multifunction. OutputSet can be a std::tuple or a vector. - template - class multifunction_body_leaf : public multifunction_body { - public: - multifunction_body_leaf(const B &_body) : body(_body), init_body(_body) { } - void operator()(const Input &input, OutputSet &oset) { - body(input, oset); // body may explicitly put() to one or more of oset. - } - B get_body() { return body; } - /*override*/ multifunction_body_leaf* clone() { - return new multifunction_body_leaf(init_body); - } - private: - B body; - B init_body; - }; - -// --------------------------- end of function_body containers ------------------------ - -// --------------------------- node task bodies --------------------------------------- - - //! A task that calls a node's forward_task function - template< typename NodeType > - class forward_task_bypass : public task { - - NodeType &my_node; - - public: - - forward_task_bypass( NodeType &n ) : my_node(n) {} - - task *execute() { - task * new_task = my_node.forward_task(); - if (new_task == SUCCESSFULLY_ENQUEUED) new_task = NULL; - return new_task; - } - }; - - //! A task that calls a node's apply_body_bypass function, passing in an input of type Input - // return the task* unless it is SUCCESSFULLY_ENQUEUED, in which case return NULL - template< typename NodeType, typename Input > - class apply_body_task_bypass : public task { - - NodeType &my_node; - Input my_input; - - public: - - apply_body_task_bypass( NodeType &n, const Input &i ) : my_node(n), my_input(i) {} - - task *execute() { - task * next_task = my_node.apply_body_bypass( my_input ); - if(next_task == SUCCESSFULLY_ENQUEUED) next_task = NULL; - return next_task; - } - }; - - //! A task that calls a node's apply_body function with no input - template< typename NodeType > - class source_task_bypass : public task { - - NodeType &my_node; - - public: - - source_task_bypass( NodeType &n ) : my_node(n) {} - - task *execute() { - task *new_task = my_node.apply_body_bypass( ); - if(new_task == SUCCESSFULLY_ENQUEUED) return NULL; - return new_task; - } - }; - -// ------------------------ end of node task bodies ----------------------------------- - - //! An empty functor that takes an Input and returns a default constructed Output - template< typename Input, typename Output > - struct empty_body { - Output operator()( const Input & ) const { return Output(); } - }; - - //! A node_cache maintains a std::queue of elements of type T. Each operation is protected by a lock. - template< typename T, typename M=spin_mutex > - class node_cache { - public: - - typedef size_t size_type; - - bool empty() { - typename my_mutex_type::scoped_lock lock( my_mutex ); - return internal_empty(); - } - - void add( T &n ) { - typename my_mutex_type::scoped_lock lock( my_mutex ); - internal_push(n); - } - - void remove( T &n ) { - typename my_mutex_type::scoped_lock lock( my_mutex ); - for ( size_t i = internal_size(); i != 0; --i ) { - T &s = internal_pop(); - if ( &s != &n ) { - internal_push(s); - } - } - } - - protected: - - typedef M my_mutex_type; - my_mutex_type my_mutex; - std::queue< T * > my_q; - - // Assumes lock is held - inline bool internal_empty( ) { - return my_q.empty(); - } - - // Assumes lock is held - inline size_type internal_size( ) { - return my_q.size(); - } - - // Assumes lock is held - inline void internal_push( T &n ) { - my_q.push(&n); - } - - // Assumes lock is held - inline T &internal_pop() { - T *v = my_q.front(); - my_q.pop(); - return *v; - } - - }; - - //! A cache of predecessors that only supports try_get - template< typename T, typename M=spin_mutex > - class predecessor_cache : public node_cache< sender, M > { - public: - typedef M my_mutex_type; - typedef T output_type; - typedef sender predecessor_type; - typedef receiver successor_type; - - predecessor_cache( ) : my_owner( NULL ) { } - - void set_owner( successor_type *owner ) { my_owner = owner; } - - bool get_item( output_type &v ) { - - bool msg = false; - - do { - predecessor_type *src; - { - typename my_mutex_type::scoped_lock lock(this->my_mutex); - if ( this->internal_empty() ) { - break; - } - src = &this->internal_pop(); - } - - // Try to get from this sender - msg = src->try_get( v ); - - if (msg == false) { - // Relinquish ownership of the edge - if ( my_owner) - src->register_successor( *my_owner ); - } else { - // Retain ownership of the edge - this->add(*src); - } - } while ( msg == false ); - return msg; - } - - void reset() { - if(!my_owner) { - return; // retain ownership of edges - } - for(;;) { - predecessor_type *src; - { - typename my_mutex_type::scoped_lock lock(this->my_mutex); - if(this->internal_empty()) break; - src = &this->internal_pop(); - } - src->register_successor( *my_owner); - } - } - - protected: - - successor_type *my_owner; - }; - - //! An cache of predecessors that supports requests and reservations - template< typename T, typename M=spin_mutex > - class reservable_predecessor_cache : public predecessor_cache< T, M > { - public: - typedef M my_mutex_type; - typedef T output_type; - typedef sender predecessor_type; - typedef receiver successor_type; - - reservable_predecessor_cache( ) : reserved_src(NULL) { } - - bool - try_reserve( output_type &v ) { - bool msg = false; - - do { - { - typename my_mutex_type::scoped_lock lock(this->my_mutex); - if ( reserved_src || this->internal_empty() ) - return false; - - reserved_src = &this->internal_pop(); - } - - // Try to get from this sender - msg = reserved_src->try_reserve( v ); - - if (msg == false) { - typename my_mutex_type::scoped_lock lock(this->my_mutex); - // Relinquish ownership of the edge - reserved_src->register_successor( *this->my_owner ); - reserved_src = NULL; - } else { - // Retain ownership of the edge - this->add( *reserved_src ); - } - } while ( msg == false ); - - return msg; - } - - bool - try_release( ) { - reserved_src->try_release( ); - reserved_src = NULL; - return true; - } - - bool - try_consume( ) { - reserved_src->try_consume( ); - reserved_src = NULL; - return true; - } - - void reset() { - reserved_src = NULL; - predecessor_cache::reset(); - } - - private: - predecessor_type *reserved_src; - }; - - - //! An abstract cache of successors - template - class successor_cache : tbb::internal::no_copy { - protected: - - typedef M my_mutex_type; - my_mutex_type my_mutex; - - typedef std::list< receiver * > my_successors_type; - my_successors_type my_successors; - - sender *my_owner; - - public: - - successor_cache( ) : my_owner(NULL) {} - - void set_owner( sender *owner ) { my_owner = owner; } - - virtual ~successor_cache() {} - - void register_successor( receiver &r ) { - typename my_mutex_type::scoped_lock l(my_mutex, true); - my_successors.push_back( &r ); - } - - void remove_successor( receiver &r ) { - typename my_mutex_type::scoped_lock l(my_mutex, true); - for ( typename my_successors_type::iterator i = my_successors.begin(); - i != my_successors.end(); ++i ) { - if ( *i == & r ) { - my_successors.erase(i); - break; - } - } - } - - bool empty() { - typename my_mutex_type::scoped_lock l(my_mutex, false); - return my_successors.empty(); - } - - virtual task * try_put_task( const T &t ) = 0; - }; - - //! An abstract cache of succesors, specialized to continue_msg - template<> - class successor_cache< continue_msg > : tbb::internal::no_copy { - protected: - - typedef spin_rw_mutex my_mutex_type; - my_mutex_type my_mutex; - - typedef std::list< receiver * > my_successors_type; - my_successors_type my_successors; - - sender *my_owner; - - public: - - successor_cache( ) : my_owner(NULL) {} - - void set_owner( sender *owner ) { my_owner = owner; } - - virtual ~successor_cache() {} - - void register_successor( receiver &r ) { - my_mutex_type::scoped_lock l(my_mutex, true); - my_successors.push_back( &r ); - if ( my_owner && r.is_continue_receiver() ) { - r.register_predecessor( *my_owner ); - } - } - - void remove_successor( receiver &r ) { - my_mutex_type::scoped_lock l(my_mutex, true); - for ( my_successors_type::iterator i = my_successors.begin(); - i != my_successors.end(); ++i ) { - if ( *i == & r ) { - if ( my_owner ) - r.remove_predecessor( *my_owner ); - my_successors.erase(i); - break; - } - } - } - - bool empty() { - my_mutex_type::scoped_lock l(my_mutex, false); - return my_successors.empty(); - } - - virtual task * try_put_task( const continue_msg &t ) = 0; - - }; - - //! A cache of successors that are broadcast to - template - class broadcast_cache : public successor_cache { - typedef M my_mutex_type; - typedef std::list< receiver * > my_successors_type; - - public: - - broadcast_cache( ) {} - - // as above, but call try_put_task instead, and return the last task we received (if any) - /*override*/ task * try_put_task( const T &t ) { - task * last_task = NULL; - bool upgraded = true; - typename my_mutex_type::scoped_lock l(this->my_mutex, upgraded); - typename my_successors_type::iterator i = this->my_successors.begin(); - while ( i != this->my_successors.end() ) { - task *new_task = (*i)->try_put_task(t); - last_task = combine_tasks(last_task, new_task); // enqueue if necessary - if(new_task) { - ++i; - } - else { // failed - if ( (*i)->register_predecessor(*this->my_owner) ) { - if (!upgraded) { - l.upgrade_to_writer(); - upgraded = true; - } - i = this->my_successors.erase(i); - } else { - ++i; - } - } - } - return last_task; - } - }; - - //! A cache of successors that are put in a round-robin fashion - template - class round_robin_cache : public successor_cache { - typedef size_t size_type; - typedef M my_mutex_type; - typedef std::list< receiver * > my_successors_type; - - public: - - round_robin_cache( ) {} - - size_type size() { - typename my_mutex_type::scoped_lock l(this->my_mutex, false); - return this->my_successors.size(); - } - - /*override*/task *try_put_task( const T &t ) { - bool upgraded = true; - typename my_mutex_type::scoped_lock l(this->my_mutex, upgraded); - typename my_successors_type::iterator i = this->my_successors.begin(); - while ( i != this->my_successors.end() ) { - task *new_task = (*i)->try_put_task(t); - if ( new_task ) { - return new_task; - } else { - if ( (*i)->register_predecessor(*this->my_owner) ) { - if (!upgraded) { - l.upgrade_to_writer(); - upgraded = true; - } - i = this->my_successors.erase(i); - } - else { - ++i; - } - } - } - return NULL; - } - }; - - template - class decrementer : public continue_receiver, tbb::internal::no_copy { - - T *my_node; - - task *execute() { - return my_node->decrement_counter(); - } - - public: - - typedef continue_msg input_type; - typedef continue_msg output_type; - decrementer( int number_of_predecessors = 0 ) : continue_receiver( number_of_predecessors ) { } - void set_owner( T *node ) { my_node = node; } - }; - -} - -#endif // __TBB__flow_graph_impl_H - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_flow_graph_item_buffer_impl.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_flow_graph_item_buffer_impl.h deleted file mode 100644 index 07621f282..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_flow_graph_item_buffer_impl.h +++ /dev/null @@ -1,199 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB__flow_graph_item_buffer_impl_H -#define __TBB__flow_graph_item_buffer_impl_H - -#ifndef __TBB_flow_graph_H -#error Do not #include this internal file directly; use public TBB headers instead. -#endif - - //! Expandable buffer of items. The possible operations are push, pop, - //* tests for empty and so forth. No mutual exclusion is built in. - template > - class item_buffer { - public: - typedef T input_type; - typedef T output_type; - protected: - typedef size_t size_type; - typedef std::pair< T, bool > item_type; - typedef typename A::template rebind::other allocator_type; - - item_type *my_array; - size_type my_array_size; - static const size_type initial_buffer_size = 4; - size_type my_head; - size_type my_tail; - - bool buffer_empty() { return my_head == my_tail; } - - item_type &item(size_type i) { return my_array[i & (my_array_size - 1) ]; } // may not be marked valid - - bool item_valid(size_type i) { return item(i).second; } - - void fetch_front(T &v) { __TBB_ASSERT(item_valid(my_head), "front not valid"); v = item(my_head).first; } - void fetch_back(T &v) { __TBB_ASSERT(item_valid(my_tail-1), "back not valid"); v = item(my_tail-1).first; } - - void invalidate(size_type i) { __TBB_ASSERT(item_valid(i), "Item not valid"); item(i).second = false; } - void validate(size_type i) { __TBB_ASSERT(!item_valid(i), "Item already valid"); item(i).second = true; } - - void invalidate_front() { invalidate(my_head); } - void validate_front() { validate(my_head); } - void invalidate_back() { invalidate(my_tail-1); } - - size_type size() { return my_tail - my_head; } - size_type capacity() { return my_array_size; } - bool buffer_full() { return size() == capacity(); } - - //! Grows the internal array. - void grow_my_array( size_t minimum_size ) { - size_type old_size = my_array_size; - size_type new_size = old_size ? 2*old_size : initial_buffer_size; - while( new_size > - class reservable_item_buffer : public item_buffer { - protected: - using item_buffer::buffer_empty; - using item_buffer::fetch_front; - using item_buffer::invalidate_front; - using item_buffer::validate_front; - using item_buffer::item_valid; - using item_buffer::my_head; - - public: - reservable_item_buffer() : item_buffer(), my_reserved(false) {} - void reset() {my_reserved = false; item_buffer::reset(); } - protected: - - bool reserve_front(T &v) { - if(my_reserved || !item_valid(my_head)) return false; - my_reserved = true; - // reserving the head - fetch_front(v); - // invalidate the head, but don't commit until consume is called - invalidate_front(); - return true; - } - - void consume_front() { - __TBB_ASSERT(my_reserved, "Attempt to consume a non-reserved item"); - ++my_head; - my_reserved = false; - } - - void release_front() { - __TBB_ASSERT(my_reserved, "Attempt to release a non-reserved item"); - validate_front(); - my_reserved = false; - } - - bool my_reserved; - }; - -#endif // __TBB__flow_graph_item_buffer_impl_H diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_flow_graph_join_impl.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_flow_graph_join_impl.h deleted file mode 100644 index 388cc0554..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_flow_graph_join_impl.h +++ /dev/null @@ -1,1528 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB__flow_graph_join_impl_H -#define __TBB__flow_graph_join_impl_H - -#ifndef __TBB_flow_graph_H -#error Do not #include this internal file directly; use public TBB headers instead. -#endif - -#include "tbb/internal/_flow_graph_types_impl.h" - -namespace internal { - - typedef size_t tag_value; - static const tag_value NO_TAG = tag_value(-1); - - struct forwarding_base { - forwarding_base(graph &g) : my_graph_ptr(&g), current_tag(NO_TAG) {} - virtual ~forwarding_base() {} - // decrement_port_count may create a forwarding task. If we cannot handle the task - // ourselves, ask decrement_port_count to deal with it. - virtual task * decrement_port_count(bool handle_task) = 0; - virtual void increment_port_count() = 0; - virtual task * increment_tag_count(tag_value /*t*/, bool /*handle_task*/) {return NULL;} - // moved here so input ports can queue tasks - graph* my_graph_ptr; - tag_value current_tag; // so ports can refer to FE's desired items - }; - - template< int N > - struct join_helper { - - template< typename TupleType, typename PortType > - static inline void set_join_node_pointer(TupleType &my_input, PortType *port) { - tbb::flow::get( my_input ).set_join_node_pointer(port); - join_helper::set_join_node_pointer( my_input, port ); - } - template< typename TupleType > - static inline void consume_reservations( TupleType &my_input ) { - tbb::flow::get( my_input ).consume(); - join_helper::consume_reservations( my_input ); - } - - template< typename TupleType > - static inline void release_my_reservation( TupleType &my_input ) { - tbb::flow::get( my_input ).release(); - } - - template - static inline void release_reservations( TupleType &my_input) { - join_helper::release_reservations(my_input); - release_my_reservation(my_input); - } - - template< typename InputTuple, typename OutputTuple > - static inline bool reserve( InputTuple &my_input, OutputTuple &out) { - if ( !tbb::flow::get( my_input ).reserve( tbb::flow::get( out ) ) ) return false; - if ( !join_helper::reserve( my_input, out ) ) { - release_my_reservation( my_input ); - return false; - } - return true; - } - - template - static inline bool get_my_item( InputTuple &my_input, OutputTuple &out) { - bool res = tbb::flow::get(my_input).get_item(tbb::flow::get(out) ); // may fail - return join_helper::get_my_item(my_input, out) && res; // do get on other inputs before returning - } - - template - static inline bool get_items(InputTuple &my_input, OutputTuple &out) { - return get_my_item(my_input, out); - } - - template - static inline void reset_my_port(InputTuple &my_input) { - join_helper::reset_my_port(my_input); - tbb::flow::get(my_input).reset_port(); - } - - template - static inline void reset_ports(InputTuple& my_input) { - reset_my_port(my_input); - } - - template - static inline void set_tag_func(InputTuple &my_input, TagFuncTuple &my_tag_funcs) { - tbb::flow::get(my_input).set_my_original_tag_func(tbb::flow::get(my_tag_funcs)); - tbb::flow::get(my_input).set_my_tag_func(tbb::flow::get(my_input).my_original_func()->clone()); - tbb::flow::get(my_tag_funcs) = NULL; - join_helper::set_tag_func(my_input, my_tag_funcs); - } - - template< typename TagFuncTuple1, typename TagFuncTuple2> - static inline void copy_tag_functors(TagFuncTuple1 &my_inputs, TagFuncTuple2 &other_inputs) { - if(tbb::flow::get(other_inputs).my_original_func()) { - tbb::flow::get(my_inputs).set_my_tag_func(tbb::flow::get(other_inputs).my_original_func()->clone()); - tbb::flow::get(my_inputs).set_my_original_tag_func(tbb::flow::get(other_inputs).my_original_func()->clone()); - } - join_helper::copy_tag_functors(my_inputs, other_inputs); - } - - template - static inline void reset_inputs(InputTuple &my_input) { - join_helper::reset_inputs(my_input); - tbb::flow::get(my_input).reinitialize_port(); - } - }; - - template< > - struct join_helper<1> { - - template< typename TupleType, typename PortType > - static inline void set_join_node_pointer(TupleType &my_input, PortType *port) { - tbb::flow::get<0>( my_input ).set_join_node_pointer(port); - } - - template< typename TupleType > - static inline void consume_reservations( TupleType &my_input ) { - tbb::flow::get<0>( my_input ).consume(); - } - - template< typename TupleType > - static inline void release_my_reservation( TupleType &my_input ) { - tbb::flow::get<0>( my_input ).release(); - } - - template - static inline void release_reservations( TupleType &my_input) { - release_my_reservation(my_input); - } - - template< typename InputTuple, typename OutputTuple > - static inline bool reserve( InputTuple &my_input, OutputTuple &out) { - return tbb::flow::get<0>( my_input ).reserve( tbb::flow::get<0>( out ) ); - } - - template - static inline bool get_my_item( InputTuple &my_input, OutputTuple &out) { - return tbb::flow::get<0>(my_input).get_item(tbb::flow::get<0>(out)); - } - - template - static inline bool get_items(InputTuple &my_input, OutputTuple &out) { - return get_my_item(my_input, out); - } - - template - static inline void reset_my_port(InputTuple &my_input) { - tbb::flow::get<0>(my_input).reset_port(); - } - - template - static inline void reset_ports(InputTuple& my_input) { - reset_my_port(my_input); - } - - template - static inline void set_tag_func(InputTuple &my_input, TagFuncTuple &my_tag_funcs) { - tbb::flow::get<0>(my_input).set_my_original_tag_func(tbb::flow::get<0>(my_tag_funcs)); - tbb::flow::get<0>(my_input).set_my_tag_func(tbb::flow::get<0>(my_input).my_original_func()->clone()); - tbb::flow::get<0>(my_tag_funcs) = NULL; - } - - template< typename TagFuncTuple1, typename TagFuncTuple2> - static inline void copy_tag_functors(TagFuncTuple1 &my_inputs, TagFuncTuple2 &other_inputs) { - if(tbb::flow::get<0>(other_inputs).my_original_func()) { - tbb::flow::get<0>(my_inputs).set_my_tag_func(tbb::flow::get<0>(other_inputs).my_original_func()->clone()); - tbb::flow::get<0>(my_inputs).set_my_original_tag_func(tbb::flow::get<0>(other_inputs).my_original_func()->clone()); - } - } - template - static inline void reset_inputs(InputTuple &my_input) { - tbb::flow::get<0>(my_input).reinitialize_port(); - } - }; - - //! The two-phase join port - template< typename T > - class reserving_port : public receiver { - public: - typedef T input_type; - typedef sender predecessor_type; - private: - // ----------- Aggregator ------------ - enum op_type { reg_pred, rem_pred, res_item, rel_res, con_res }; - enum op_stat {WAIT=0, SUCCEEDED, FAILED}; - typedef reserving_port my_class; - - class reserving_port_operation : public aggregated_operation { - public: - char type; - union { - T *my_arg; - predecessor_type *my_pred; - }; - reserving_port_operation(const T& e, op_type t) : - type(char(t)), my_arg(const_cast(&e)) {} - reserving_port_operation(const predecessor_type &s, op_type t) : type(char(t)), - my_pred(const_cast(&s)) {} - reserving_port_operation(op_type t) : type(char(t)) {} - }; - - typedef internal::aggregating_functor my_handler; - friend class internal::aggregating_functor; - aggregator my_aggregator; - - void handle_operations(reserving_port_operation* op_list) { - reserving_port_operation *current; - bool no_predecessors; - while(op_list) { - current = op_list; - op_list = op_list->next; - switch(current->type) { - case reg_pred: - no_predecessors = my_predecessors.empty(); - my_predecessors.add(*(current->my_pred)); - if ( no_predecessors ) { - (void) my_join->decrement_port_count(true); // may try to forward - } - __TBB_store_with_release(current->status, SUCCEEDED); - break; - case rem_pred: - my_predecessors.remove(*(current->my_pred)); - if(my_predecessors.empty()) my_join->increment_port_count(); - __TBB_store_with_release(current->status, SUCCEEDED); - break; - case res_item: - if ( reserved ) { - __TBB_store_with_release(current->status, FAILED); - } - else if ( my_predecessors.try_reserve( *(current->my_arg) ) ) { - reserved = true; - __TBB_store_with_release(current->status, SUCCEEDED); - } else { - if ( my_predecessors.empty() ) { - my_join->increment_port_count(); - } - __TBB_store_with_release(current->status, FAILED); - } - break; - case rel_res: - reserved = false; - my_predecessors.try_release( ); - __TBB_store_with_release(current->status, SUCCEEDED); - break; - case con_res: - reserved = false; - my_predecessors.try_consume( ); - __TBB_store_with_release(current->status, SUCCEEDED); - break; - } - } - } - - protected: - template< typename R, typename B > friend class run_and_put_task; - template friend class internal::broadcast_cache; - template friend class internal::round_robin_cache; - task *try_put_task( const T & ) { - return NULL; - } - - public: - - //! Constructor - reserving_port() : reserved(false) { - my_join = NULL; - my_predecessors.set_owner( this ); - my_aggregator.initialize_handler(my_handler(this)); - } - - // copy constructor - reserving_port(const reserving_port& /* other */) : receiver() { - reserved = false; - my_join = NULL; - my_predecessors.set_owner( this ); - my_aggregator.initialize_handler(my_handler(this)); - } - - void set_join_node_pointer(forwarding_base *join) { - my_join = join; - } - - //! Add a predecessor - bool register_predecessor( sender &src ) { - reserving_port_operation op_data(src, reg_pred); - my_aggregator.execute(&op_data); - return op_data.status == SUCCEEDED; - } - - //! Remove a predecessor - bool remove_predecessor( sender &src ) { - reserving_port_operation op_data(src, rem_pred); - my_aggregator.execute(&op_data); - return op_data.status == SUCCEEDED; - } - - //! Reserve an item from the port - bool reserve( T &v ) { - reserving_port_operation op_data(v, res_item); - my_aggregator.execute(&op_data); - return op_data.status == SUCCEEDED; - } - - //! Release the port - void release( ) { - reserving_port_operation op_data(rel_res); - my_aggregator.execute(&op_data); - } - - //! Complete use of the port - void consume( ) { - reserving_port_operation op_data(con_res); - my_aggregator.execute(&op_data); - } - - void reinitialize_port() { - my_predecessors.reset(); - reserved = false; - } - - protected: - - /*override*/void reset_receiver() { - my_predecessors.reset(); - } - - private: - forwarding_base *my_join; - reservable_predecessor_cache< T, null_mutex > my_predecessors; - bool reserved; - }; - - //! queueing join_port - template - class queueing_port : public receiver, public item_buffer { - public: - typedef T input_type; - typedef sender predecessor_type; - typedef queueing_port my_node_type; - - // ----------- Aggregator ------------ - private: - enum op_type { get__item, res_port, try__put_task }; - enum op_stat {WAIT=0, SUCCEEDED, FAILED}; - typedef queueing_port my_class; - - class queueing_port_operation : public aggregated_operation { - public: - char type; - T my_val; - T *my_arg; - task * bypass_t; - // constructor for value parameter - queueing_port_operation(const T& e, op_type t) : - type(char(t)), my_val(e) - , bypass_t(NULL) - {} - // constructor for pointer parameter - queueing_port_operation(const T* p, op_type t) : - type(char(t)), my_arg(const_cast(p)) - , bypass_t(NULL) - {} - // constructor with no parameter - queueing_port_operation(op_type t) : type(char(t)) - , bypass_t(NULL) - {} - }; - - typedef internal::aggregating_functor my_handler; - friend class internal::aggregating_functor; - aggregator my_aggregator; - - void handle_operations(queueing_port_operation* op_list) { - queueing_port_operation *current; - bool was_empty; - while(op_list) { - current = op_list; - op_list = op_list->next; - switch(current->type) { - case try__put_task: { - task *rtask = NULL; - was_empty = this->buffer_empty(); - this->push_back(current->my_val); - if (was_empty) rtask = my_join->decrement_port_count(false); - else - rtask = SUCCESSFULLY_ENQUEUED; - current->bypass_t = rtask; - __TBB_store_with_release(current->status, SUCCEEDED); - } - break; - case get__item: - if(!this->buffer_empty()) { - this->fetch_front(*(current->my_arg)); - __TBB_store_with_release(current->status, SUCCEEDED); - } - else { - __TBB_store_with_release(current->status, FAILED); - } - break; - case res_port: - __TBB_ASSERT(this->item_valid(this->my_head), "No item to reset"); - this->invalidate_front(); ++(this->my_head); - if(this->item_valid(this->my_head)) { - (void)my_join->decrement_port_count(true); - } - __TBB_store_with_release(current->status, SUCCEEDED); - break; - } - } - } - // ------------ End Aggregator --------------- - - protected: - template< typename R, typename B > friend class run_and_put_task; - template friend class internal::broadcast_cache; - template friend class internal::round_robin_cache; - /*override*/task *try_put_task(const T &v) { - queueing_port_operation op_data(v, try__put_task); - my_aggregator.execute(&op_data); - __TBB_ASSERT(op_data.status == SUCCEEDED || !op_data.bypass_t, "inconsistent return from aggregator"); - if(!op_data.bypass_t) return SUCCESSFULLY_ENQUEUED; - return op_data.bypass_t; - } - - public: - - //! Constructor - queueing_port() : item_buffer() { - my_join = NULL; - my_aggregator.initialize_handler(my_handler(this)); - } - - //! copy constructor - queueing_port(const queueing_port& /* other */) : receiver(), item_buffer() { - my_join = NULL; - my_aggregator.initialize_handler(my_handler(this)); - } - - //! record parent for tallying available items - void set_join_node_pointer(forwarding_base *join) { - my_join = join; - } - - bool get_item( T &v ) { - queueing_port_operation op_data(&v, get__item); - my_aggregator.execute(&op_data); - return op_data.status == SUCCEEDED; - } - - // reset_port is called when item is accepted by successor, but - // is initiated by join_node. - void reset_port() { - queueing_port_operation op_data(res_port); - my_aggregator.execute(&op_data); - return; - } - - void reinitialize_port() { - item_buffer::reset(); - } - - protected: - - /*override*/void reset_receiver() { - // nothing to do. We queue, so no predecessor cache - } - - private: - forwarding_base *my_join; - }; - -#include "_flow_graph_tagged_buffer_impl.h" - - template< typename T > - class tag_matching_port : public receiver, public tagged_buffer< tag_value, T, NO_TAG > { - public: - typedef T input_type; - typedef sender predecessor_type; - typedef tag_matching_port my_node_type; // for forwarding, if needed - typedef function_body my_tag_func_type; - typedef tagged_buffer my_buffer_type; - private: -// ----------- Aggregator ------------ - private: - enum op_type { try__put, get__item, res_port }; - enum op_stat {WAIT=0, SUCCEEDED, FAILED}; - typedef tag_matching_port my_class; - - class tag_matching_port_operation : public aggregated_operation { - public: - char type; - T my_val; - T *my_arg; - tag_value my_tag_value; - // constructor for value parameter - tag_matching_port_operation(const T& e, op_type t) : - type(char(t)), my_val(e) {} - // constructor for pointer parameter - tag_matching_port_operation(const T* p, op_type t) : - type(char(t)), my_arg(const_cast(p)) {} - // constructor with no parameter - tag_matching_port_operation(op_type t) : type(char(t)) {} - }; - - typedef internal::aggregating_functor my_handler; - friend class internal::aggregating_functor; - aggregator my_aggregator; - - void handle_operations(tag_matching_port_operation* op_list) { - tag_matching_port_operation *current; - while(op_list) { - current = op_list; - op_list = op_list->next; - switch(current->type) { - case try__put: { - bool was_inserted = this->tagged_insert(current->my_tag_value, current->my_val); - // return failure if a duplicate insertion occurs - __TBB_store_with_release(current->status, was_inserted ? SUCCEEDED : FAILED); - } - break; - case get__item: - // use current_tag from FE for item - if(!this->tagged_find(my_join->current_tag, *(current->my_arg))) { - __TBB_ASSERT(false, "Failed to find item corresponding to current_tag."); - } - __TBB_store_with_release(current->status, SUCCEEDED); - break; - case res_port: - // use current_tag from FE for item - this->tagged_delete(my_join->current_tag); - __TBB_store_with_release(current->status, SUCCEEDED); - break; - } - } - } -// ------------ End Aggregator --------------- - protected: - template< typename R, typename B > friend class run_and_put_task; - template friend class internal::broadcast_cache; - template friend class internal::round_robin_cache; - /*override*/task *try_put_task(const T& v) { - tag_matching_port_operation op_data(v, try__put); - op_data.my_tag_value = (*my_tag_func)(v); - task *rtask = NULL; - my_aggregator.execute(&op_data); - if(op_data.status == SUCCEEDED) { - rtask = my_join->increment_tag_count(op_data.my_tag_value, false); // may spawn - // rtask has to reflect the return status of the try_put - if(!rtask) rtask = SUCCESSFULLY_ENQUEUED; - } - return rtask; - } - - public: - - tag_matching_port() : receiver(), tagged_buffer() { - my_join = NULL; - my_tag_func = NULL; - my_original_tag_func = NULL; - my_aggregator.initialize_handler(my_handler(this)); - } - - // copy constructor - tag_matching_port(const tag_matching_port& /*other*/) : receiver(), tagged_buffer() { - my_join = NULL; - // setting the tag methods is done in the copy-constructor for the front-end. - my_tag_func = NULL; - my_original_tag_func = NULL; - my_aggregator.initialize_handler(my_handler(this)); - } - - ~tag_matching_port() { - if (my_tag_func) delete my_tag_func; - if (my_original_tag_func) delete my_original_tag_func; - } - - void set_join_node_pointer(forwarding_base *join) { - my_join = join; - } - - void set_my_original_tag_func(my_tag_func_type *f) { - my_original_tag_func = f; - } - - void set_my_tag_func(my_tag_func_type *f) { - my_tag_func = f; - } - - bool get_item( T &v ) { - tag_matching_port_operation op_data(&v, get__item); - my_aggregator.execute(&op_data); - return op_data.status == SUCCEEDED; - } - - // reset_port is called when item is accepted by successor, but - // is initiated by join_node. - void reset_port() { - tag_matching_port_operation op_data(res_port); - my_aggregator.execute(&op_data); - return; - } - - my_tag_func_type *my_func() { return my_tag_func; } - my_tag_func_type *my_original_func() { return my_original_tag_func; } - - void reinitialize_port() { - my_buffer_type::reset(); - } - - protected: - - /*override*/void reset_receiver() { - // nothing to do. We queue, so no predecessor cache - } - - private: - // need map of tags to values - forwarding_base *my_join; - my_tag_func_type *my_tag_func; - my_tag_func_type *my_original_tag_func; - }; // tag_matching_port - - using namespace graph_policy_namespace; - - template - class join_node_base; - - //! join_node_FE : implements input port policy - template - class join_node_FE; - - template - class join_node_FE : public forwarding_base { - public: - static const int N = tbb::flow::tuple_size::value; - typedef OutputTuple output_type; - typedef InputTuple input_type; - typedef join_node_base my_node_type; // for forwarding - - join_node_FE(graph &g) : forwarding_base(g), my_node(NULL) { - ports_with_no_inputs = N; - join_helper::set_join_node_pointer(my_inputs, this); - } - - join_node_FE(const join_node_FE& other) : forwarding_base(*(other.forwarding_base::my_graph_ptr)), my_node(NULL) { - ports_with_no_inputs = N; - join_helper::set_join_node_pointer(my_inputs, this); - } - - void set_my_node(my_node_type *new_my_node) { my_node = new_my_node; } - - void increment_port_count() { - ++ports_with_no_inputs; - } - - // if all input_ports have predecessors, spawn forward to try and consume tuples - task * decrement_port_count(bool handle_task) { - if(ports_with_no_inputs.fetch_and_decrement() == 1) { - task* tp = this->my_graph_ptr->root_task(); - if(tp) { - task *rtask = new ( task::allocate_additional_child_of( *tp ) ) - forward_task_bypass(*my_node); - if(!handle_task) return rtask; - FLOW_SPAWN(*rtask); - } - } - return NULL; - } - - input_type &input_ports() { return my_inputs; } - - protected: - - void reset() { - // called outside of parallel contexts - ports_with_no_inputs = N; - join_helper::reset_inputs(my_inputs); - } - - // all methods on input ports should be called under mutual exclusion from join_node_base. - - bool tuple_build_may_succeed() { - return !ports_with_no_inputs; - } - - bool try_to_make_tuple(output_type &out) { - if(ports_with_no_inputs) return false; - return join_helper::reserve(my_inputs, out); - } - - void tuple_accepted() { - join_helper::consume_reservations(my_inputs); - } - void tuple_rejected() { - join_helper::release_reservations(my_inputs); - } - - input_type my_inputs; - my_node_type *my_node; - atomic ports_with_no_inputs; - }; - - template - class join_node_FE : public forwarding_base { - public: - static const int N = tbb::flow::tuple_size::value; - typedef OutputTuple output_type; - typedef InputTuple input_type; - typedef join_node_base my_node_type; // for forwarding - - join_node_FE(graph &g) : forwarding_base(g), my_node(NULL) { - ports_with_no_items = N; - join_helper::set_join_node_pointer(my_inputs, this); - } - - join_node_FE(const join_node_FE& other) : forwarding_base(*(other.forwarding_base::my_graph_ptr)), my_node(NULL) { - ports_with_no_items = N; - join_helper::set_join_node_pointer(my_inputs, this); - } - - // needed for forwarding - void set_my_node(my_node_type *new_my_node) { my_node = new_my_node; } - - void reset_port_count() { - ports_with_no_items = N; - } - - // if all input_ports have items, spawn forward to try and consume tuples - task * decrement_port_count(bool handle_task) - { - if(ports_with_no_items.fetch_and_decrement() == 1) { - task* tp = this->my_graph_ptr->root_task(); - if(tp) { - task *rtask = new ( task::allocate_additional_child_of( *tp ) ) - forward_task_bypass (*my_node); - if(!handle_task) return rtask; - FLOW_SPAWN( *rtask); - } - } - return NULL; - } - - void increment_port_count() { __TBB_ASSERT(false, NULL); } // should never be called - - input_type &input_ports() { return my_inputs; } - - protected: - - void reset() { - reset_port_count(); - join_helper::reset_inputs(my_inputs); - } - - // all methods on input ports should be called under mutual exclusion from join_node_base. - - bool tuple_build_may_succeed() { - return !ports_with_no_items; - } - - bool try_to_make_tuple(output_type &out) { - if(ports_with_no_items) return false; - return join_helper::get_items(my_inputs, out); - } - - void tuple_accepted() { - reset_port_count(); - join_helper::reset_ports(my_inputs); - } - void tuple_rejected() { - // nothing to do. - } - - input_type my_inputs; - my_node_type *my_node; - atomic ports_with_no_items; - }; - - // tag_matching join input port. - template - class join_node_FE : public forwarding_base, - // buffer of tag value counts buffer of output items - public tagged_buffer, public item_buffer { - public: - static const int N = tbb::flow::tuple_size::value; - typedef OutputTuple output_type; - typedef InputTuple input_type; - typedef tagged_buffer my_tag_buffer; - typedef item_buffer output_buffer_type; - typedef join_node_base my_node_type; // for forwarding - -// ----------- Aggregator ------------ - // the aggregator is only needed to serialize the access to the hash table. - // and the output_buffer_type base class - private: - enum op_type { res_count, inc_count, may_succeed, try_make }; - enum op_stat {WAIT=0, SUCCEEDED, FAILED}; - typedef join_node_FE my_class; - - class tag_matching_FE_operation : public aggregated_operation { - public: - char type; - union { - tag_value my_val; - output_type* my_output; - }; - task *bypass_t; - bool enqueue_task; - // constructor for value parameter - tag_matching_FE_operation(const tag_value& e , bool q_task , op_type t) : type(char(t)), my_val(e), - bypass_t(NULL), enqueue_task(q_task) {} - tag_matching_FE_operation(output_type *p, op_type t) : type(char(t)), my_output(p), bypass_t(NULL), - enqueue_task(true) {} - // constructor with no parameter - tag_matching_FE_operation(op_type t) : type(char(t)), bypass_t(NULL), enqueue_task(true) {} - }; - - typedef internal::aggregating_functor my_handler; - friend class internal::aggregating_functor; - aggregator my_aggregator; - - // called from aggregator, so serialized - // construct as many output objects as possible. - // returns a task pointer if the a task would have been enqueued but we asked that - // it be returned. Otherwise returns NULL. - task * fill_output_buffer(tag_value t, bool should_enqueue, bool handle_task) { - output_type l_out; - task *rtask = NULL; - task* tp = this->my_graph_ptr->root_task(); - bool do_fwd = should_enqueue && this->buffer_empty() && tp; - this->current_tag = t; - this->tagged_delete(this->current_tag); // remove the tag - if(join_helper::get_items(my_inputs, l_out)) { // <== call back - this->push_back(l_out); - if(do_fwd) { // we enqueue if receiving an item from predecessor, not if successor asks for item - rtask = new ( task::allocate_additional_child_of( *tp ) ) - forward_task_bypass(*my_node); - if(handle_task) { - FLOW_SPAWN(*rtask); - rtask = NULL; - } - do_fwd = false; - } - // retire the input values - join_helper::reset_ports(my_inputs); // <== call back - this->current_tag = NO_TAG; - } - else { - __TBB_ASSERT(false, "should have had something to push"); - } - return rtask; - } - - void handle_operations(tag_matching_FE_operation* op_list) { - tag_matching_FE_operation *current; - while(op_list) { - current = op_list; - op_list = op_list->next; - switch(current->type) { - case res_count: // called from BE - { - output_type l_out; - this->pop_front(l_out); // don't care about returned value. - __TBB_store_with_release(current->status, SUCCEEDED); - } - break; - case inc_count: { // called from input ports - size_t *p = 0; - tag_value t = current->my_val; - bool do_enqueue = current->enqueue_task; - if(!(this->tagged_find_ref(t,p))) { - this->tagged_insert(t, 0); - if(!(this->tagged_find_ref(t,p))) { - __TBB_ASSERT(false, "should find tag after inserting it"); - } - } - if(++(*p) == size_t(N)) { - task *rtask = fill_output_buffer(t, true, do_enqueue); - __TBB_ASSERT(!rtask || !do_enqueue, "task should not be returned"); - current->bypass_t = rtask; - } - } - __TBB_store_with_release(current->status, SUCCEEDED); - break; - case may_succeed: // called from BE - __TBB_store_with_release(current->status, this->buffer_empty() ? FAILED : SUCCEEDED); - break; - case try_make: // called from BE - if(this->buffer_empty()) { - __TBB_store_with_release(current->status, FAILED); - } - else { - this->fetch_front(*(current->my_output)); - __TBB_store_with_release(current->status, SUCCEEDED); - } - break; - } - } - } -// ------------ End Aggregator --------------- - - public: - template - join_node_FE(graph &g, FunctionTuple tag_funcs) : forwarding_base(g), my_node(NULL) { - join_helper::set_join_node_pointer(my_inputs, this); - join_helper::set_tag_func(my_inputs, tag_funcs); - my_aggregator.initialize_handler(my_handler(this)); - } - - join_node_FE(const join_node_FE& other) : forwarding_base(*(other.forwarding_base::my_graph_ptr)), my_tag_buffer(), - output_buffer_type() { - my_node = NULL; - join_helper::set_join_node_pointer(my_inputs, this); - join_helper::copy_tag_functors(my_inputs, const_cast(other.my_inputs)); - my_aggregator.initialize_handler(my_handler(this)); - } - - // needed for forwarding - void set_my_node(my_node_type *new_my_node) { my_node = new_my_node; } - - void reset_port_count() { // called from BE - tag_matching_FE_operation op_data(res_count); - my_aggregator.execute(&op_data); - return; - } - - // if all input_ports have items, spawn forward to try and consume tuples - // return a task if we are asked and did create one. - task *increment_tag_count(tag_value t, bool handle_task) { // called from input_ports - tag_matching_FE_operation op_data(t, handle_task, inc_count); - my_aggregator.execute(&op_data); - return op_data.bypass_t; - } - - /*override*/ task *decrement_port_count(bool /*handle_task*/) { __TBB_ASSERT(false, NULL); return NULL; } - - void increment_port_count() { __TBB_ASSERT(false, NULL); } // should never be called - - input_type &input_ports() { return my_inputs; } - - protected: - - void reset() { - // called outside of parallel contexts - join_helper::reset_inputs(my_inputs); - - my_tag_buffer::reset(); // have to reset the tag counts - output_buffer_type::reset(); // also the queue of outputs - my_node->current_tag = NO_TAG; - } - - // all methods on input ports should be called under mutual exclusion from join_node_base. - - bool tuple_build_may_succeed() { // called from back-end - tag_matching_FE_operation op_data(may_succeed); - my_aggregator.execute(&op_data); - return op_data.status == SUCCEEDED; - } - - // cannot lock while calling back to input_ports. current_tag will only be set - // and reset under the aggregator, so it will remain consistent. - bool try_to_make_tuple(output_type &out) { - tag_matching_FE_operation op_data(&out,try_make); - my_aggregator.execute(&op_data); - return op_data.status == SUCCEEDED; - } - - void tuple_accepted() { - reset_port_count(); // reset current_tag after ports reset. - } - - void tuple_rejected() { - // nothing to do. - } - - input_type my_inputs; // input ports - my_node_type *my_node; - }; // join_node_FE - - //! join_node_base - template - class join_node_base : public graph_node, public join_node_FE, - public sender { - protected: - using graph_node::my_graph; - public: - typedef OutputTuple output_type; - - typedef receiver successor_type; - typedef join_node_FE input_ports_type; - using input_ports_type::tuple_build_may_succeed; - using input_ports_type::try_to_make_tuple; - using input_ports_type::tuple_accepted; - using input_ports_type::tuple_rejected; - - private: - // ----------- Aggregator ------------ - enum op_type { reg_succ, rem_succ, try__get, do_fwrd, do_fwrd_bypass }; - enum op_stat {WAIT=0, SUCCEEDED, FAILED}; - typedef join_node_base my_class; - - class join_node_base_operation : public aggregated_operation { - public: - char type; - union { - output_type *my_arg; - successor_type *my_succ; - }; - task *bypass_t; - join_node_base_operation(const output_type& e, op_type t) : type(char(t)), - my_arg(const_cast(&e)), bypass_t(NULL) {} - join_node_base_operation(const successor_type &s, op_type t) : type(char(t)), - my_succ(const_cast(&s)), bypass_t(NULL) {} - join_node_base_operation(op_type t) : type(char(t)), bypass_t(NULL) {} - }; - - typedef internal::aggregating_functor my_handler; - friend class internal::aggregating_functor; - bool forwarder_busy; - aggregator my_aggregator; - - void handle_operations(join_node_base_operation* op_list) { - join_node_base_operation *current; - while(op_list) { - current = op_list; - op_list = op_list->next; - switch(current->type) { - case reg_succ: { - my_successors.register_successor(*(current->my_succ)); - task* tp = this->graph_node::my_graph.root_task(); - if(tuple_build_may_succeed() && !forwarder_busy && tp) { - task *rtask = new ( task::allocate_additional_child_of(*tp) ) - forward_task_bypass - >(*this); - FLOW_SPAWN(*rtask); - forwarder_busy = true; - } - __TBB_store_with_release(current->status, SUCCEEDED); - } - break; - case rem_succ: - my_successors.remove_successor(*(current->my_succ)); - __TBB_store_with_release(current->status, SUCCEEDED); - break; - case try__get: - if(tuple_build_may_succeed()) { - if(try_to_make_tuple(*(current->my_arg))) { - tuple_accepted(); - __TBB_store_with_release(current->status, SUCCEEDED); - } - else __TBB_store_with_release(current->status, FAILED); - } - else __TBB_store_with_release(current->status, FAILED); - break; - case do_fwrd_bypass: { - bool build_succeeded; - task *last_task = NULL; - output_type out; - if(tuple_build_may_succeed()) { - do { - build_succeeded = try_to_make_tuple(out); - if(build_succeeded) { - task *new_task = my_successors.try_put_task(out); - last_task = combine_tasks(last_task, new_task); - if(new_task) { - tuple_accepted(); - } - else { - tuple_rejected(); - build_succeeded = false; - } - } - } while(build_succeeded); - } - current->bypass_t = last_task; - __TBB_store_with_release(current->status, SUCCEEDED); - forwarder_busy = false; - } - break; - } - } - } - // ---------- end aggregator ----------- - public: - join_node_base(graph &g) : graph_node(g), input_ports_type(g), forwarder_busy(false) { - my_successors.set_owner(this); - input_ports_type::set_my_node(this); - my_aggregator.initialize_handler(my_handler(this)); - } - - join_node_base(const join_node_base& other) : - graph_node(other.graph_node::my_graph), input_ports_type(other), - sender(), forwarder_busy(false), my_successors() { - my_successors.set_owner(this); - input_ports_type::set_my_node(this); - my_aggregator.initialize_handler(my_handler(this)); - } - - template - join_node_base(graph &g, FunctionTuple f) : graph_node(g), input_ports_type(g, f), forwarder_busy(false) { - my_successors.set_owner(this); - input_ports_type::set_my_node(this); - my_aggregator.initialize_handler(my_handler(this)); - } - - bool register_successor(successor_type &r) { - join_node_base_operation op_data(r, reg_succ); - my_aggregator.execute(&op_data); - return op_data.status == SUCCEEDED; - } - - bool remove_successor( successor_type &r) { - join_node_base_operation op_data(r, rem_succ); - my_aggregator.execute(&op_data); - return op_data.status == SUCCEEDED; - } - - bool try_get( output_type &v) { - join_node_base_operation op_data(v, try__get); - my_aggregator.execute(&op_data); - return op_data.status == SUCCEEDED; - } - - protected: - - /*override*/void reset() { - input_ports_type::reset(); - } - - private: - broadcast_cache my_successors; - - friend class forward_task_bypass< join_node_base >; - task *forward_task() { - join_node_base_operation op_data(do_fwrd_bypass); - my_aggregator.execute(&op_data); - return op_data.bypass_t; - } - - }; - - // join base class type generator - template class PT, typename OutputTuple, graph_buffer_policy JP> - struct join_base { - typedef typename internal::join_node_base::type, OutputTuple> type; - }; - - //! unfolded_join_node : passes input_ports_type to join_node_base. We build the input port type - // using tuple_element. The class PT is the port type (reserving_port, queueing_port, tag_matching_port) - // and should match the graph_buffer_policy. - - template class PT, typename OutputTuple, graph_buffer_policy JP> - class unfolded_join_node : public join_base::type { - public: - typedef typename wrap_tuple_elements::type input_ports_type; - typedef OutputTuple output_type; - private: - typedef join_node_base base_type; - public: - unfolded_join_node(graph &g) : base_type(g) {} - unfolded_join_node(const unfolded_join_node &other) : base_type(other) {} - }; - - // tag_matching unfolded_join_node. This must be a separate specialization because the constructors - // differ. - - template - class unfolded_join_node<2,tag_matching_port,OutputTuple,tag_matching> : public - join_base<2,tag_matching_port,OutputTuple,tag_matching>::type { - typedef typename tbb::flow::tuple_element<0, OutputTuple>::type T0; - typedef typename tbb::flow::tuple_element<1, OutputTuple>::type T1; - public: - typedef typename wrap_tuple_elements<2,tag_matching_port,OutputTuple>::type input_ports_type; - typedef OutputTuple output_type; - private: - typedef join_node_base base_type; - typedef typename internal::function_body *f0_p; - typedef typename internal::function_body *f1_p; - typedef typename tbb::flow::tuple< f0_p, f1_p > func_initializer_type; - public: - template - unfolded_join_node(graph &g, B0 b0, B1 b1) : base_type(g, - func_initializer_type( - new internal::function_body_leaf(b0), - new internal::function_body_leaf(b1) - ) ) {} - unfolded_join_node(const unfolded_join_node &other) : base_type(other) {} - }; - - template - class unfolded_join_node<3,tag_matching_port,OutputTuple,tag_matching> : public - join_base<3,tag_matching_port,OutputTuple,tag_matching>::type { - typedef typename tbb::flow::tuple_element<0, OutputTuple>::type T0; - typedef typename tbb::flow::tuple_element<1, OutputTuple>::type T1; - typedef typename tbb::flow::tuple_element<2, OutputTuple>::type T2; - public: - typedef typename wrap_tuple_elements<3, tag_matching_port, OutputTuple>::type input_ports_type; - typedef OutputTuple output_type; - private: - typedef join_node_base base_type; - typedef typename internal::function_body *f0_p; - typedef typename internal::function_body *f1_p; - typedef typename internal::function_body *f2_p; - typedef typename tbb::flow::tuple< f0_p, f1_p, f2_p > func_initializer_type; - public: - template - unfolded_join_node(graph &g, B0 b0, B1 b1, B2 b2) : base_type(g, - func_initializer_type( - new internal::function_body_leaf(b0), - new internal::function_body_leaf(b1), - new internal::function_body_leaf(b2) - ) ) {} - unfolded_join_node(const unfolded_join_node &other) : base_type(other) {} - }; - - template - class unfolded_join_node<4,tag_matching_port,OutputTuple,tag_matching> : public - join_base<4,tag_matching_port,OutputTuple,tag_matching>::type { - typedef typename tbb::flow::tuple_element<0, OutputTuple>::type T0; - typedef typename tbb::flow::tuple_element<1, OutputTuple>::type T1; - typedef typename tbb::flow::tuple_element<2, OutputTuple>::type T2; - typedef typename tbb::flow::tuple_element<3, OutputTuple>::type T3; - public: - typedef typename wrap_tuple_elements<4, tag_matching_port, OutputTuple>::type input_ports_type; - typedef OutputTuple output_type; - private: - typedef join_node_base base_type; - typedef typename internal::function_body *f0_p; - typedef typename internal::function_body *f1_p; - typedef typename internal::function_body *f2_p; - typedef typename internal::function_body *f3_p; - typedef typename tbb::flow::tuple< f0_p, f1_p, f2_p, f3_p > func_initializer_type; - public: - template - unfolded_join_node(graph &g, B0 b0, B1 b1, B2 b2, B3 b3) : base_type(g, - func_initializer_type( - new internal::function_body_leaf(b0), - new internal::function_body_leaf(b1), - new internal::function_body_leaf(b2), - new internal::function_body_leaf(b3) - ) ) {} - unfolded_join_node(const unfolded_join_node &other) : base_type(other) {} - }; - - template - class unfolded_join_node<5,tag_matching_port,OutputTuple,tag_matching> : public - join_base<5,tag_matching_port,OutputTuple,tag_matching>::type { - typedef typename tbb::flow::tuple_element<0, OutputTuple>::type T0; - typedef typename tbb::flow::tuple_element<1, OutputTuple>::type T1; - typedef typename tbb::flow::tuple_element<2, OutputTuple>::type T2; - typedef typename tbb::flow::tuple_element<3, OutputTuple>::type T3; - typedef typename tbb::flow::tuple_element<4, OutputTuple>::type T4; - public: - typedef typename wrap_tuple_elements<5, tag_matching_port, OutputTuple>::type input_ports_type; - typedef OutputTuple output_type; - private: - typedef join_node_base base_type; - typedef typename internal::function_body *f0_p; - typedef typename internal::function_body *f1_p; - typedef typename internal::function_body *f2_p; - typedef typename internal::function_body *f3_p; - typedef typename internal::function_body *f4_p; - typedef typename tbb::flow::tuple< f0_p, f1_p, f2_p, f3_p, f4_p > func_initializer_type; - public: - template - unfolded_join_node(graph &g, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4) : base_type(g, - func_initializer_type( - new internal::function_body_leaf(b0), - new internal::function_body_leaf(b1), - new internal::function_body_leaf(b2), - new internal::function_body_leaf(b3), - new internal::function_body_leaf(b4) - ) ) {} - unfolded_join_node(const unfolded_join_node &other) : base_type(other) {} - }; - -#if __TBB_VARIADIC_MAX >= 6 - template - class unfolded_join_node<6,tag_matching_port,OutputTuple,tag_matching> : public - join_base<6,tag_matching_port,OutputTuple,tag_matching>::type { - typedef typename tbb::flow::tuple_element<0, OutputTuple>::type T0; - typedef typename tbb::flow::tuple_element<1, OutputTuple>::type T1; - typedef typename tbb::flow::tuple_element<2, OutputTuple>::type T2; - typedef typename tbb::flow::tuple_element<3, OutputTuple>::type T3; - typedef typename tbb::flow::tuple_element<4, OutputTuple>::type T4; - typedef typename tbb::flow::tuple_element<5, OutputTuple>::type T5; - public: - typedef typename wrap_tuple_elements<6, tag_matching_port, OutputTuple>::type input_ports_type; - typedef OutputTuple output_type; - private: - typedef join_node_base base_type; - typedef typename internal::function_body *f0_p; - typedef typename internal::function_body *f1_p; - typedef typename internal::function_body *f2_p; - typedef typename internal::function_body *f3_p; - typedef typename internal::function_body *f4_p; - typedef typename internal::function_body *f5_p; - typedef typename tbb::flow::tuple< f0_p, f1_p, f2_p, f3_p, f4_p, f5_p > func_initializer_type; - public: - template - unfolded_join_node(graph &g, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4, B5 b5) : base_type(g, - func_initializer_type( - new internal::function_body_leaf(b0), - new internal::function_body_leaf(b1), - new internal::function_body_leaf(b2), - new internal::function_body_leaf(b3), - new internal::function_body_leaf(b4), - new internal::function_body_leaf(b5) - ) ) {} - unfolded_join_node(const unfolded_join_node &other) : base_type(other) {} - }; -#endif - -#if __TBB_VARIADIC_MAX >= 7 - template - class unfolded_join_node<7,tag_matching_port,OutputTuple,tag_matching> : public - join_base<7,tag_matching_port,OutputTuple,tag_matching>::type { - typedef typename tbb::flow::tuple_element<0, OutputTuple>::type T0; - typedef typename tbb::flow::tuple_element<1, OutputTuple>::type T1; - typedef typename tbb::flow::tuple_element<2, OutputTuple>::type T2; - typedef typename tbb::flow::tuple_element<3, OutputTuple>::type T3; - typedef typename tbb::flow::tuple_element<4, OutputTuple>::type T4; - typedef typename tbb::flow::tuple_element<5, OutputTuple>::type T5; - typedef typename tbb::flow::tuple_element<6, OutputTuple>::type T6; - public: - typedef typename wrap_tuple_elements<7, tag_matching_port, OutputTuple>::type input_ports_type; - typedef OutputTuple output_type; - private: - typedef join_node_base base_type; - typedef typename internal::function_body *f0_p; - typedef typename internal::function_body *f1_p; - typedef typename internal::function_body *f2_p; - typedef typename internal::function_body *f3_p; - typedef typename internal::function_body *f4_p; - typedef typename internal::function_body *f5_p; - typedef typename internal::function_body *f6_p; - typedef typename tbb::flow::tuple< f0_p, f1_p, f2_p, f3_p, f4_p, f5_p, f6_p > func_initializer_type; - public: - template - unfolded_join_node(graph &g, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4, B5 b5, B6 b6) : base_type(g, - func_initializer_type( - new internal::function_body_leaf(b0), - new internal::function_body_leaf(b1), - new internal::function_body_leaf(b2), - new internal::function_body_leaf(b3), - new internal::function_body_leaf(b4), - new internal::function_body_leaf(b5), - new internal::function_body_leaf(b6) - ) ) {} - unfolded_join_node(const unfolded_join_node &other) : base_type(other) {} - }; -#endif - -#if __TBB_VARIADIC_MAX >= 8 - template - class unfolded_join_node<8,tag_matching_port,OutputTuple,tag_matching> : public - join_base<8,tag_matching_port,OutputTuple,tag_matching>::type { - typedef typename tbb::flow::tuple_element<0, OutputTuple>::type T0; - typedef typename tbb::flow::tuple_element<1, OutputTuple>::type T1; - typedef typename tbb::flow::tuple_element<2, OutputTuple>::type T2; - typedef typename tbb::flow::tuple_element<3, OutputTuple>::type T3; - typedef typename tbb::flow::tuple_element<4, OutputTuple>::type T4; - typedef typename tbb::flow::tuple_element<5, OutputTuple>::type T5; - typedef typename tbb::flow::tuple_element<6, OutputTuple>::type T6; - typedef typename tbb::flow::tuple_element<7, OutputTuple>::type T7; - public: - typedef typename wrap_tuple_elements<8, tag_matching_port, OutputTuple>::type input_ports_type; - typedef OutputTuple output_type; - private: - typedef join_node_base base_type; - typedef typename internal::function_body *f0_p; - typedef typename internal::function_body *f1_p; - typedef typename internal::function_body *f2_p; - typedef typename internal::function_body *f3_p; - typedef typename internal::function_body *f4_p; - typedef typename internal::function_body *f5_p; - typedef typename internal::function_body *f6_p; - typedef typename internal::function_body *f7_p; - typedef typename tbb::flow::tuple< f0_p, f1_p, f2_p, f3_p, f4_p, f5_p, f6_p, f7_p > func_initializer_type; - public: - template - unfolded_join_node(graph &g, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4, B5 b5, B6 b6, B7 b7) : base_type(g, - func_initializer_type( - new internal::function_body_leaf(b0), - new internal::function_body_leaf(b1), - new internal::function_body_leaf(b2), - new internal::function_body_leaf(b3), - new internal::function_body_leaf(b4), - new internal::function_body_leaf(b5), - new internal::function_body_leaf(b6), - new internal::function_body_leaf(b7) - ) ) {} - unfolded_join_node(const unfolded_join_node &other) : base_type(other) {} - }; -#endif - -#if __TBB_VARIADIC_MAX >= 9 - template - class unfolded_join_node<9,tag_matching_port,OutputTuple,tag_matching> : public - join_base<9,tag_matching_port,OutputTuple,tag_matching>::type { - typedef typename tbb::flow::tuple_element<0, OutputTuple>::type T0; - typedef typename tbb::flow::tuple_element<1, OutputTuple>::type T1; - typedef typename tbb::flow::tuple_element<2, OutputTuple>::type T2; - typedef typename tbb::flow::tuple_element<3, OutputTuple>::type T3; - typedef typename tbb::flow::tuple_element<4, OutputTuple>::type T4; - typedef typename tbb::flow::tuple_element<5, OutputTuple>::type T5; - typedef typename tbb::flow::tuple_element<6, OutputTuple>::type T6; - typedef typename tbb::flow::tuple_element<7, OutputTuple>::type T7; - typedef typename tbb::flow::tuple_element<8, OutputTuple>::type T8; - public: - typedef typename wrap_tuple_elements<9, tag_matching_port, OutputTuple>::type input_ports_type; - typedef OutputTuple output_type; - private: - typedef join_node_base base_type; - typedef typename internal::function_body *f0_p; - typedef typename internal::function_body *f1_p; - typedef typename internal::function_body *f2_p; - typedef typename internal::function_body *f3_p; - typedef typename internal::function_body *f4_p; - typedef typename internal::function_body *f5_p; - typedef typename internal::function_body *f6_p; - typedef typename internal::function_body *f7_p; - typedef typename internal::function_body *f8_p; - typedef typename tbb::flow::tuple< f0_p, f1_p, f2_p, f3_p, f4_p, f5_p, f6_p, f7_p, f8_p > func_initializer_type; - public: - template - unfolded_join_node(graph &g, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4, B5 b5, B6 b6, B7 b7, B8 b8) : base_type(g, - func_initializer_type( - new internal::function_body_leaf(b0), - new internal::function_body_leaf(b1), - new internal::function_body_leaf(b2), - new internal::function_body_leaf(b3), - new internal::function_body_leaf(b4), - new internal::function_body_leaf(b5), - new internal::function_body_leaf(b6), - new internal::function_body_leaf(b7), - new internal::function_body_leaf(b8) - ) ) {} - unfolded_join_node(const unfolded_join_node &other) : base_type(other) {} - }; -#endif - -#if __TBB_VARIADIC_MAX >= 10 - template - class unfolded_join_node<10,tag_matching_port,OutputTuple,tag_matching> : public - join_base<10,tag_matching_port,OutputTuple,tag_matching>::type { - typedef typename tbb::flow::tuple_element<0, OutputTuple>::type T0; - typedef typename tbb::flow::tuple_element<1, OutputTuple>::type T1; - typedef typename tbb::flow::tuple_element<2, OutputTuple>::type T2; - typedef typename tbb::flow::tuple_element<3, OutputTuple>::type T3; - typedef typename tbb::flow::tuple_element<4, OutputTuple>::type T4; - typedef typename tbb::flow::tuple_element<5, OutputTuple>::type T5; - typedef typename tbb::flow::tuple_element<6, OutputTuple>::type T6; - typedef typename tbb::flow::tuple_element<7, OutputTuple>::type T7; - typedef typename tbb::flow::tuple_element<8, OutputTuple>::type T8; - typedef typename tbb::flow::tuple_element<9, OutputTuple>::type T9; - public: - typedef typename wrap_tuple_elements<10, tag_matching_port, OutputTuple>::type input_ports_type; - typedef OutputTuple output_type; - private: - typedef join_node_base base_type; - typedef typename internal::function_body *f0_p; - typedef typename internal::function_body *f1_p; - typedef typename internal::function_body *f2_p; - typedef typename internal::function_body *f3_p; - typedef typename internal::function_body *f4_p; - typedef typename internal::function_body *f5_p; - typedef typename internal::function_body *f6_p; - typedef typename internal::function_body *f7_p; - typedef typename internal::function_body *f8_p; - typedef typename internal::function_body *f9_p; - typedef typename tbb::flow::tuple< f0_p, f1_p, f2_p, f3_p, f4_p, f5_p, f6_p, f7_p, f8_p, f9_p > func_initializer_type; - public: - template - unfolded_join_node(graph &g, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4, B5 b5, B6 b6, B7 b7, B8 b8, B9 b9) : base_type(g, - func_initializer_type( - new internal::function_body_leaf(b0), - new internal::function_body_leaf(b1), - new internal::function_body_leaf(b2), - new internal::function_body_leaf(b3), - new internal::function_body_leaf(b4), - new internal::function_body_leaf(b5), - new internal::function_body_leaf(b6), - new internal::function_body_leaf(b7), - new internal::function_body_leaf(b8), - new internal::function_body_leaf(b9) - ) ) {} - unfolded_join_node(const unfolded_join_node &other) : base_type(other) {} - }; -#endif - - //! templated function to refer to input ports of the join node - template - typename tbb::flow::tuple_element::type &input_port(JNT &jn) { - return tbb::flow::get(jn.input_ports()); - } - -} -#endif // __TBB__flow_graph_join_impl_H - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_flow_graph_node_impl.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_flow_graph_node_impl.h deleted file mode 100644 index a387648c9..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_flow_graph_node_impl.h +++ /dev/null @@ -1,614 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB__flow_graph_node_impl_H -#define __TBB__flow_graph_node_impl_H - -#ifndef __TBB_flow_graph_H -#error Do not #include this internal file directly; use public TBB headers instead. -#endif - -#include "_flow_graph_item_buffer_impl.h" - -//! @cond INTERNAL -namespace internal { - - using tbb::internal::aggregated_operation; - using tbb::internal::aggregating_functor; - using tbb::internal::aggregator; - - template< typename T, typename A > - class function_input_queue : public item_buffer { - public: - bool pop( T& t ) { - return this->pop_front( t ); - } - - bool push( T& t ) { - return this->push_back( t ); - } - }; - - //! Input and scheduling for a function node that takes a type Input as input - // The only up-ref is apply_body_impl, which should implement the function - // call and any handling of the result. - template< typename Input, typename A, typename ImplType > - class function_input_base : public receiver, tbb::internal::no_assign { - typedef sender predecessor_type; - enum op_stat {WAIT=0, SUCCEEDED, FAILED}; - enum op_type {reg_pred, rem_pred, app_body, try_fwd, tryput_bypass, app_body_bypass }; - typedef function_input_base my_class; - - public: - - //! The input type of this receiver - typedef Input input_type; - - //! Constructor for function_input_base - function_input_base( graph &g, size_t max_concurrency, function_input_queue *q = NULL ) - : my_graph(g), my_max_concurrency(max_concurrency), my_concurrency(0), - my_queue(q), forwarder_busy(false) { - my_predecessors.set_owner(this); - my_aggregator.initialize_handler(my_handler(this)); - } - - //! Copy constructor - function_input_base( const function_input_base& src, function_input_queue *q = NULL ) : - receiver(), tbb::internal::no_assign(), - my_graph(src.my_graph), my_max_concurrency(src.my_max_concurrency), - my_concurrency(0), my_queue(q), forwarder_busy(false) - { - my_predecessors.set_owner(this); - my_aggregator.initialize_handler(my_handler(this)); - } - - //! Destructor - virtual ~function_input_base() { - if ( my_queue ) delete my_queue; - } - - //! Put to the node, returning a task if available - virtual task * try_put_task( const input_type &t ) { - if ( my_max_concurrency == 0 ) { - return create_body_task( t ); - } else { - my_operation op_data(t, tryput_bypass); - my_aggregator.execute(&op_data); - if(op_data.status == SUCCEEDED ) { - return op_data.bypass_t; - } - return NULL; - } - } - - //! Adds src to the list of cached predecessors. - /* override */ bool register_predecessor( predecessor_type &src ) { - my_operation op_data(reg_pred); - op_data.r = &src; - my_aggregator.execute(&op_data); - return true; - } - - //! Removes src from the list of cached predecessors. - /* override */ bool remove_predecessor( predecessor_type &src ) { - my_operation op_data(rem_pred); - op_data.r = &src; - my_aggregator.execute(&op_data); - return true; - } - - protected: - - void reset_function_input_base() { - my_concurrency = 0; - if(my_queue) { - my_queue->reset(); - } - my_predecessors.reset(); - forwarder_busy = false; - } - - graph& my_graph; - const size_t my_max_concurrency; - size_t my_concurrency; - function_input_queue *my_queue; - predecessor_cache my_predecessors; - - /*override*/void reset_receiver() { - my_predecessors.reset(); - } - - private: - - friend class apply_body_task_bypass< my_class, input_type >; - friend class forward_task_bypass< my_class >; - - class my_operation : public aggregated_operation< my_operation > { - public: - char type; - union { - input_type *elem; - predecessor_type *r; - }; - tbb::task *bypass_t; - my_operation(const input_type& e, op_type t) : - type(char(t)), elem(const_cast(&e)) {} - my_operation(op_type t) : type(char(t)), r(NULL) {} - }; - - bool forwarder_busy; - typedef internal::aggregating_functor my_handler; - friend class internal::aggregating_functor; - aggregator< my_handler, my_operation > my_aggregator; - - void handle_operations(my_operation *op_list) { - my_operation *tmp; - while (op_list) { - tmp = op_list; - op_list = op_list->next; - switch (tmp->type) { - case reg_pred: - my_predecessors.add(*(tmp->r)); - __TBB_store_with_release(tmp->status, SUCCEEDED); - if (!forwarder_busy) { - forwarder_busy = true; - spawn_forward_task(); - } - break; - case rem_pred: - my_predecessors.remove(*(tmp->r)); - __TBB_store_with_release(tmp->status, SUCCEEDED); - break; - case app_body: - __TBB_ASSERT(my_max_concurrency != 0, NULL); - --my_concurrency; - __TBB_store_with_release(tmp->status, SUCCEEDED); - if (my_concurrencypop(i); - else - item_was_retrieved = my_predecessors.get_item(i); - if (item_was_retrieved) { - ++my_concurrency; - spawn_body_task(i); - } - } - break; - case app_body_bypass: { - task * new_task = NULL; - __TBB_ASSERT(my_max_concurrency != 0, NULL); - --my_concurrency; - if (my_concurrencypop(i); - else - item_was_retrieved = my_predecessors.get_item(i); - if (item_was_retrieved) { - ++my_concurrency; - new_task = create_body_task(i); - } - } - tmp->bypass_t = new_task; - __TBB_store_with_release(tmp->status, SUCCEEDED); - } - break; - case tryput_bypass: internal_try_put_task(tmp); break; - case try_fwd: internal_forward(tmp); break; - } - } - } - - //! Put to the node, but return the task instead of enqueueing it - void internal_try_put_task(my_operation *op) { - __TBB_ASSERT(my_max_concurrency != 0, NULL); - if (my_concurrency < my_max_concurrency) { - ++my_concurrency; - task * new_task = create_body_task(*(op->elem)); - op->bypass_t = new_task; - __TBB_store_with_release(op->status, SUCCEEDED); - } else if ( my_queue && my_queue->push(*(op->elem)) ) { - op->bypass_t = SUCCESSFULLY_ENQUEUED; - __TBB_store_with_release(op->status, SUCCEEDED); - } else { - op->bypass_t = NULL; - __TBB_store_with_release(op->status, FAILED); - } - } - - //! Tries to spawn bodies if available and if concurrency allows - void internal_forward(my_operation *op) { - op->bypass_t = NULL; - if (my_concurrencypop(i); - else - item_was_retrieved = my_predecessors.get_item(i); - if (item_was_retrieved) { - ++my_concurrency; - op->bypass_t = create_body_task(i); - __TBB_store_with_release(op->status, SUCCEEDED); - return; - } - } - __TBB_store_with_release(op->status, FAILED); - forwarder_busy = false; - } - - //! Applies the body to the provided input - // then decides if more work is available - void apply_body( input_type &i ) { - task *new_task = apply_body_bypass(i); - if(!new_task) return; - if(new_task == SUCCESSFULLY_ENQUEUED) return; - FLOW_SPAWN(*new_task); - return; - } - - //! Applies the body to the provided input - // then decides if more work is available - task * apply_body_bypass( input_type &i ) { - task * new_task = static_cast(this)->apply_body_impl_bypass(i); - if ( my_max_concurrency != 0 ) { - my_operation op_data(app_body_bypass); // tries to pop an item or get_item, enqueues another apply_body - my_aggregator.execute(&op_data); - tbb::task *ttask = op_data.bypass_t; - new_task = combine_tasks(new_task, ttask); - } - return new_task; - } - - //! allocates a task to call apply_body( input ) - inline task * create_body_task( const input_type &input ) { - - task* tp = my_graph.root_task(); - return (tp) ? - new(task::allocate_additional_child_of(*tp)) - apply_body_task_bypass < my_class, input_type >(*this, input) : - NULL; - } - - //! Spawns a task that calls apply_body( input ) - inline void spawn_body_task( const input_type &input ) { - task* tp = create_body_task(input); - // tp == NULL => g.reset(), which shouldn't occur in concurrent context - if(tp) { - FLOW_SPAWN(*tp); - } - } - - //! This is executed by an enqueued task, the "forwarder" - task *forward_task() { - my_operation op_data(try_fwd); - task *rval = NULL; - do { - op_data.status = WAIT; - my_aggregator.execute(&op_data); - if(op_data.status == SUCCEEDED) { - tbb::task *ttask = op_data.bypass_t; - rval = combine_tasks(rval, ttask); - } - } while (op_data.status == SUCCEEDED); - return rval; - } - - inline task *create_forward_task() { - task* tp = my_graph.root_task(); - return (tp) ? - new(task::allocate_additional_child_of(*tp)) forward_task_bypass< my_class >(*this) : - NULL; - } - - //! Spawns a task that calls forward() - inline void spawn_forward_task() { - task* tp = create_forward_task(); - if(tp) { - FLOW_SPAWN(*tp); - } - } - }; // function_input_base - - //! Implements methods for a function node that takes a type Input as input and sends - // a type Output to its successors. - template< typename Input, typename Output, typename A> - class function_input : public function_input_base > { - public: - typedef Input input_type; - typedef Output output_type; - typedef function_input my_class; - typedef function_input_base base_type; - typedef function_input_queue input_queue_type; - - - // constructor - template - function_input( graph &g, size_t max_concurrency, Body& body, function_input_queue *q = NULL ) : - base_type(g, max_concurrency, q), - my_body( new internal::function_body_leaf< input_type, output_type, Body>(body) ) { - } - - //! Copy constructor - function_input( const function_input& src, input_queue_type *q = NULL ) : - base_type(src, q), - my_body( src.my_body->clone() ) { - } - - ~function_input() { - delete my_body; - } - - template< typename Body > - Body copy_function_object() { - internal::function_body &body_ref = *this->my_body; - return dynamic_cast< internal::function_body_leaf & >(body_ref).get_body(); - } - - task * apply_body_impl_bypass( const input_type &i) { -#if TBB_PREVIEW_FLOW_GRAPH_TRACE - // There is an extra copied needed to capture the - // body execution without the try_put - tbb::internal::fgt_begin_body( my_body ); - output_type v = (*my_body)(i); - tbb::internal::fgt_end_body( my_body ); - task * new_task = successors().try_put_task( v ); -#else - task * new_task = successors().try_put_task( (*my_body)(i) ); -#endif - return new_task; - } - - protected: - - void reset_function_input() { - base_type::reset_function_input_base(); - } - - function_body *my_body; - virtual broadcast_cache &successors() = 0; - - }; // function_input - - //! Implements methods for a function node that takes a type Input as input - // and has a tuple of output ports specified. - template< typename Input, typename OutputPortSet, typename A> - class multifunction_input : public function_input_base > { - public: - typedef Input input_type; - typedef OutputPortSet output_ports_type; - typedef multifunction_input my_class; - typedef function_input_base base_type; - typedef function_input_queue input_queue_type; - - - // constructor - template - multifunction_input( - graph &g, - size_t max_concurrency, - Body& body, - function_input_queue *q = NULL ) : - base_type(g, max_concurrency, q), - my_body( new internal::multifunction_body_leaf(body) ) { - } - - //! Copy constructor - multifunction_input( const multifunction_input& src, input_queue_type *q = NULL ) : - base_type(src, q), - my_body( src.my_body->clone() ) { - } - - ~multifunction_input() { - delete my_body; - } - - template< typename Body > - Body copy_function_object() { - internal::multifunction_body &body_ref = *this->my_body; - return dynamic_cast< internal::multifunction_body_leaf & >(body_ref).get_body(); - } - - // for multifunction nodes we do not have a single successor as such. So we just tell - // the task we were successful. - task * apply_body_impl_bypass( const input_type &i) { - tbb::internal::fgt_begin_body( my_body ); - (*my_body)(i, my_output_ports); - tbb::internal::fgt_end_body( my_body ); - task * new_task = SUCCESSFULLY_ENQUEUED; - return new_task; - } - - output_ports_type &output_ports(){ return my_output_ports; } - - protected: - - void reset() { - base_type::reset_function_input_base(); - } - - multifunction_body *my_body; - output_ports_type my_output_ports; - - }; // multifunction_input - - // template to refer to an output port of a multifunction_node - template - typename tbb::flow::tuple_element::type &output_port(MOP &op) { - return tbb::flow::get(op.output_ports()); - } - -// helper structs for split_node - template - struct emit_element { - template - static void emit_this(const T &t, P &p) { - (void)tbb::flow::get(p).try_put(tbb::flow::get(t)); - emit_element::emit_this(t,p); - } - }; - - template<> - struct emit_element<1> { - template - static void emit_this(const T &t, P &p) { - (void)tbb::flow::get<0>(p).try_put(tbb::flow::get<0>(t)); - } - }; - - //! Implements methods for an executable node that takes continue_msg as input - template< typename Output > - class continue_input : public continue_receiver { - public: - - //! The input type of this receiver - typedef continue_msg input_type; - - //! The output type of this receiver - typedef Output output_type; - - template< typename Body > - continue_input( graph &g, Body& body ) - : my_graph_ptr(&g), - my_body( new internal::function_body_leaf< input_type, output_type, Body>(body) ) { } - - template< typename Body > - continue_input( graph &g, int number_of_predecessors, Body& body ) - : continue_receiver( number_of_predecessors ), my_graph_ptr(&g), - my_body( new internal::function_body_leaf< input_type, output_type, Body>(body) ) { } - - continue_input( const continue_input& src ) : continue_receiver(src), - my_graph_ptr(src.my_graph_ptr), my_body( src.my_body->clone() ) {} - - ~continue_input() { - delete my_body; - } - - template< typename Body > - Body copy_function_object() { - internal::function_body &body_ref = *my_body; - return dynamic_cast< internal::function_body_leaf & >(body_ref).get_body(); - } - - protected: - - graph* my_graph_ptr; - function_body *my_body; - - virtual broadcast_cache &successors() = 0; - - friend class apply_body_task_bypass< continue_input< Output >, continue_msg >; - - //! Applies the body to the provided input - /* override */ task *apply_body_bypass( input_type ) { -#if TBB_PREVIEW_FLOW_GRAPH_TRACE - // There is an extra copied needed to capture the - // body execution without the try_put - tbb::internal::fgt_begin_body( my_body ); - output_type v = (*my_body)( continue_msg() ); - tbb::internal::fgt_end_body( my_body ); - return successors().try_put_task( v ); -#else - return successors().try_put_task( (*my_body)( continue_msg() ) ); -#endif - } - - //! Spawns a task that applies the body - /* override */ task *execute( ) { - task* tp = my_graph_ptr->root_task(); - return (tp) ? - new ( task::allocate_additional_child_of( *tp ) ) - apply_body_task_bypass< continue_input< Output >, continue_msg >( *this, continue_msg() ) : - NULL; - } - - }; // continue_input - - //! Implements methods for both executable and function nodes that puts Output to its successors - template< typename Output > - class function_output : public sender { - public: - - typedef Output output_type; - - function_output() { my_successors.set_owner(this); } - function_output(const function_output & /*other*/) : sender() { - my_successors.set_owner(this); - } - - //! Adds a new successor to this node - /* override */ bool register_successor( receiver &r ) { - successors().register_successor( r ); - return true; - } - - //! Removes a successor from this node - /* override */ bool remove_successor( receiver &r ) { - successors().remove_successor( r ); - return true; - } - - // for multifunction_node. The function_body that implements - // the node will have an input and an output tuple of ports. To put - // an item to a successor, the body should - // - // get(output_ports).try_put(output_value); - // - // return value will be bool returned from successors.try_put. - task *try_put_task(const output_type &i) { return my_successors.try_put_task(i); } - - protected: - broadcast_cache my_successors; - broadcast_cache &successors() { return my_successors; } - - }; // function_output - - template< typename Output > - class multifunction_output : public function_output { - public: - typedef Output output_type; - typedef function_output base_type; - using base_type::my_successors; - - multifunction_output() : base_type() {my_successors.set_owner(this);} - multifunction_output( const multifunction_output &/*other*/) : base_type() { my_successors.set_owner(this); } - - bool try_put(const output_type &i) { - task *res = my_successors.try_put_task(i); - if(!res) return false; - if(res != SUCCESSFULLY_ENQUEUED) FLOW_SPAWN(*res); - return true; - } - }; // multifunction_output - -} // internal - -#endif // __TBB__flow_graph_node_impl_H diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_flow_graph_or_impl.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_flow_graph_or_impl.h deleted file mode 100644 index 395c2fc87..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_flow_graph_or_impl.h +++ /dev/null @@ -1,295 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB__flow_graph_or_impl_H -#define __TBB__flow_graph_or_impl_H - -#ifndef __TBB_flow_graph_H -#error Do not #include this internal file directly; use public TBB headers instead. -#endif - -#if TBB_PREVIEW_GRAPH_NODES -#include "tbb/internal/_flow_graph_types_impl.h" - -namespace internal { - - // Output of the or_node is a struct containing a tbb::flow::tuple, and will be of - // the form - // - // struct { - // size_t indx; - // tuple_types result; - // }; - // - // where the value of indx will indicate which result was put to the - // successor. So if oval is the output to the successor, indx == 0 - // means tbb::flow::get<0>(oval.result) is the output, and so on. - // - // tuple_types is the tuple that specified the possible outputs (and - // the corresponding inputs to the or_node.) - // - // the types of each element are represented by tuple_types, a typedef - // in the or_node. So the 2nd type in the union that is the - // output type for an or_node OrType is - // - // tbb::flow::tuple_element<1,OrType::tuple_types>::type - - // the struct has an OutputTuple default constructed, with element index assigned - // the actual output value. - template - struct or_output_type { - typedef OutputTuple tuple_types; - struct type { - size_t indx; - OutputTuple result; - -// The LLVM libc++ that ships with OS X* 10.7 has a bug in tuple that disables -// the copy assignment operator (LLVM bug #11921). -//TODO: introduce according broken macro. -//it can not be done right now, as tbb_config.h does not allowed to include other headers, -//and without this it is not possible to detect libc++ version, as compiler version for clang -//is vendor specific -#ifdef _LIBCPP_TUPLE - type &operator=(type const &x) { - indx = x.indx; - result = const_cast(x.result); - return *this; - } -#endif - }; - }; - - template - struct or_item_helper { - template - static inline void create_output_value(OutputType &o, void *v) { - o.indx = N; - tbb::flow::get(o.result) = *(reinterpret_cast::type *>(v)); - } - }; - - template - struct or_helper { - template - static inline void create_output(OutputType &o, size_t i, void* v) { - if(i == N-1) { - or_item_helper::create_output_value(o,v); - } - else - or_helper::create_output(o,i,v); - } - template - static inline void set_or_node_pointer(PortTuple &my_input, PutBase *p) { - tbb::flow::get(my_input).set_up(p, N-1); - or_helper::set_or_node_pointer(my_input, p); - } - }; - - template - struct or_helper { - template - static inline void create_output(OutputType &o, size_t i, void* v) { - if(i == 0) { - or_item_helper::create_output_value(o,v); - } - } - template - static inline void set_or_node_pointer(PortTuple &my_input, PutBase *p) { - tbb::flow::get<0>(my_input).set_up(p, 0); - } - }; - - struct put_base { - // virtual bool try_put_with_index(size_t index, void *v) = 0; - virtual task * try_put_task_with_index(size_t index, void *v) = 0; - virtual ~put_base() { } - }; - - template - class or_input_port : public receiver { - private: - size_t my_index; - put_base *my_or_node; - public: - void set_up(put_base *p, size_t i) { my_index = i; my_or_node = p; } - protected: - template< typename R, typename B > friend class run_and_put_task; - template friend class internal::broadcast_cache; - template friend class internal::round_robin_cache; - task *try_put_task(const T &v) { - return my_or_node->try_put_task_with_index(my_index, reinterpret_cast(const_cast(&v))); - } - /*override*/void reset_receiver() {} - }; - - template - class or_node_FE : public put_base { - public: - static const int N = tbb::flow::tuple_size::value; - typedef OutputType output_type; - typedef InputTuple input_type; - - or_node_FE( ) { - or_helper::set_or_node_pointer(my_inputs, this); - } - - input_type &input_ports() { return my_inputs; } - protected: - input_type my_inputs; - }; - - //! or_node_base - template - class or_node_base : public graph_node, public or_node_FE, - public sender { - protected: - using graph_node::my_graph; - public: - static const size_t N = tbb::flow::tuple_size::value; - typedef OutputType output_type; - typedef StructTypes tuple_types; - typedef receiver successor_type; - typedef or_node_FE input_ports_type; - - private: - // ----------- Aggregator ------------ - enum op_type { reg_succ, rem_succ, try__put_task }; - enum op_stat {WAIT=0, SUCCEEDED, FAILED}; - typedef or_node_base my_class; - - class or_node_base_operation : public aggregated_operation { - public: - char type; - size_t indx; - union { - void *my_arg; - successor_type *my_succ; - task *bypass_t; - }; - or_node_base_operation(size_t i, const void* e, op_type t) : - type(char(t)), indx(i), my_arg(const_cast(e)) {} - or_node_base_operation(const successor_type &s, op_type t) : type(char(t)), - my_succ(const_cast(&s)) {} - or_node_base_operation(op_type t) : type(char(t)) {} - }; - - typedef internal::aggregating_functor my_handler; - friend class internal::aggregating_functor; - aggregator my_aggregator; - - void handle_operations(or_node_base_operation* op_list) { - or_node_base_operation *current; - while(op_list) { - current = op_list; - op_list = op_list->next; - switch(current->type) { - - case reg_succ: - my_successors.register_successor(*(current->my_succ)); - __TBB_store_with_release(current->status, SUCCEEDED); - break; - - case rem_succ: - my_successors.remove_successor(*(current->my_succ)); - __TBB_store_with_release(current->status, SUCCEEDED); - break; - case try__put_task: { - output_type oo; - or_helper::create_output(oo, current->indx, current->my_arg); - current->bypass_t = my_successors.try_put_task(oo); - __TBB_store_with_release(current->status, SUCCEEDED); // return of try_put_task actual return value - } - break; - } - } - } - // ---------- end aggregator ----------- - public: - or_node_base(graph& g) : graph_node(g), input_ports_type() { - my_successors.set_owner(this); - my_aggregator.initialize_handler(my_handler(this)); - } - - or_node_base(const or_node_base& other) : graph_node(other.my_graph), input_ports_type(), sender() { - my_successors.set_owner(this); - my_aggregator.initialize_handler(my_handler(this)); - } - - bool register_successor(successor_type &r) { - or_node_base_operation op_data(r, reg_succ); - my_aggregator.execute(&op_data); - return op_data.status == SUCCEEDED; - } - - bool remove_successor( successor_type &r) { - or_node_base_operation op_data(r, rem_succ); - my_aggregator.execute(&op_data); - return op_data.status == SUCCEEDED; - } - - task * try_put_task_with_index(size_t indx, void *v) { - or_node_base_operation op_data(indx, v, try__put_task); - my_aggregator.execute(&op_data); - return op_data.bypass_t; - } - - protected: - /*override*/void reset() {} - - private: - broadcast_cache my_successors; - }; - - // type generators - template - struct or_types { - static const int N = tbb::flow::tuple_size::value; - typedef typename wrap_tuple_elements::type input_ports_type; - typedef typename or_output_type::type output_type; - typedef internal::or_node_FE or_FE_type; - typedef internal::or_node_base or_base_type; - }; - - template - class unfolded_or_node : public or_types::or_base_type { - public: - typedef typename or_types::input_ports_type input_ports_type; - typedef OutputTuple tuple_types; - typedef typename or_types::output_type output_type; - private: - typedef typename or_types::or_base_type base_type; - public: - unfolded_or_node(graph& g) : base_type(g) {} - unfolded_or_node(const unfolded_or_node &other) : base_type(other) {} - }; - - -} /* namespace internal */ -#endif // TBB_PREVIEW_GRAPH_NODES - -#endif /* __TBB__flow_graph_or_impl_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_flow_graph_tagged_buffer_impl.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_flow_graph_tagged_buffer_impl.h deleted file mode 100644 index 748f63714..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_flow_graph_tagged_buffer_impl.h +++ /dev/null @@ -1,220 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -// tagged buffer that can expand, and can support as many deletions as additions -// list-based, with elements of list held in std::vector (for destruction management), -// multiplicative hashing (like ets). No synchronization built-in. -// - -#ifndef __TBB__flow_graph_tagged_buffer_impl_H -#define __TBB__flow_graph_tagged_buffer_impl_H - -#ifndef __TBB_flow_graph_H -#error Do not #include this internal file directly; use public TBB headers instead. -#endif - -template -struct buffer_element { - TagType t; - ValueType v; - buffer_element *next; - buffer_element() : t(NoTagMark), next(NULL) {} -}; - -template - < - typename TagType, - typename ValueType, - size_t NoTagMark = 0, - typename Allocator=tbb::cache_aligned_allocator< buffer_element > - > -class tagged_buffer { -public: - static const size_t INITIAL_SIZE = 8; // initial size of the hash pointer table - static const TagType NO_TAG = TagType(NoTagMark); - typedef ValueType value_type; - typedef buffer_element element_type; - typedef value_type *pointer_type; - typedef std::vector list_array_type; - typedef typename Allocator::template rebind::other pointer_array_allocator_type; - typedef typename Allocator::template rebind::other list_array_allocator; -private: - - size_t my_size; - size_t nelements; - element_type** array; - std::vector *lists; - element_type* free_list; - - size_t mask() { return my_size - 1; } - - static size_t hash(TagType t) { - return uintptr_t(t)*tbb::internal::select_size_t_constant<0x9E3779B9,0x9E3779B97F4A7C15ULL>::value; - } - - void set_up_free_list( element_type **p_free_list, list_array_type *la, size_t sz) { - for(size_t i=0; i < sz - 1; ++i ) { // construct free list - (*la)[i].next = &((*la)[i+1]); - (*la)[i].t = NO_TAG; - } - (*la)[sz-1].next = NULL; - *p_free_list = &((*la)[0]); - } - - void grow_array() { - // make the pointer array larger - element_type **new_array; - element_type **old_array = array; - size_t old_size = my_size; - my_size *=2; - new_array = pointer_array_allocator_type().allocate(my_size); - for(size_t i=0; i < my_size; ++i) new_array[i] = NULL; - list_array_type *new_list_array = new list_array_type(old_size, element_type(), Allocator()); - set_up_free_list(&free_list, new_list_array, old_size ); - - for(size_t i=0; i < old_size; ++i) { - for( element_type* op = old_array[i]; op; op = op->next) { - internal_tagged_insert(new_array, my_size, op->t, op->v); - } - } - pointer_array_allocator_type().deallocate(old_array, old_size); - - delete lists; // destroy and deallocate instead - array = new_array; - lists = new_list_array; - } - - void internal_tagged_insert( element_type **ar, size_t sz, TagType t, value_type v) { - size_t l_mask = sz-1; - size_t h = hash(t) & l_mask; - __TBB_ASSERT(free_list, "Error: free list not set up."); - element_type* my_elem = free_list; free_list = free_list->next; - my_elem->t = t; - my_elem->v = v; - my_elem->next = ar[h]; - ar[h] = my_elem; - } - - void internal_initialize_buffer() { - array = pointer_array_allocator_type().allocate(my_size); - for(size_t i = 0; i < my_size; ++i) array[i] = NULL; - lists = new list_array_type(INITIAL_SIZE/2, element_type(), Allocator()); - set_up_free_list(&free_list, lists, INITIAL_SIZE/2); - } - - void internal_free_buffer() { - if(array) { - pointer_array_allocator_type().deallocate(array, my_size); - array = NULL; - } - if(lists) { - delete lists; - lists = NULL; - } - my_size = INITIAL_SIZE; - nelements = 0; - } - -public: - tagged_buffer() : my_size(INITIAL_SIZE), nelements(0) { - internal_initialize_buffer(); - } - - ~tagged_buffer() { - internal_free_buffer(); - } - - void reset() { - internal_free_buffer(); - internal_initialize_buffer(); - } - - bool tagged_insert(TagType t, value_type v) { - pointer_type p; - if(tagged_find_ref(t, p)) { - *p = v; // replace the value - return false; - } - ++nelements; - if(nelements*2 > my_size) grow_array(); - internal_tagged_insert(array, my_size, t, v); - return true; - } - - // returns reference to array element.v - bool tagged_find_ref(TagType t, pointer_type &v) { - size_t i = hash(t) & mask(); - for(element_type* p = array[i]; p; p = p->next) { - if(p->t == t) { - v = &(p->v); - return true; - } - } - return false; - } - - bool tagged_find( TagType t, value_type &v) { - value_type *p; - if(tagged_find_ref(t, p)) { - v = *p; - return true; - } - else - return false; - } - - void tagged_delete(TagType t) { - size_t h = hash(t) & mask(); - element_type* prev = NULL; - for(element_type* p = array[h]; p; prev = p, p = p->next) { - if(p->t == t) { - p->t = NO_TAG; - if(prev) prev->next = p->next; - else array[h] = p->next; - p->next = free_list; - free_list = p; - --nelements; - return; - } - } - __TBB_ASSERT(false, "tag not found for delete"); - } - - // search for v in the array; if found {set t, return true} else return false - // we use this in join_node_FE to find if a tag's items are all available. - bool find_value_tag( TagType &t, value_type v) { - for(size_t i= 0; i < my_size / 2; ++i) { // remember the vector is half the size of the hash array - if( (*lists)[i].t != NO_TAG && (*lists)[i].v == v) { - t = (*lists)[i].t; - return true; - } - } - return false; - } -}; -#endif // __TBB__flow_graph_tagged_buffer_impl_H diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_flow_graph_trace_impl.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_flow_graph_trace_impl.h deleted file mode 100644 index 3453c7a46..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_flow_graph_trace_impl.h +++ /dev/null @@ -1,213 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef _FGT_GRAPH_TRACE_IMPL_H -#define _FGT_GRAPH_TRACE_IMPL_H - -#include "tbb/tbb_profiling.h" - -namespace tbb { - namespace internal { - -#if TBB_PREVIEW_FLOW_GRAPH_TRACE - -static inline void fgt_internal_create_input_port( void *node, void *p, string_index name_index ) { - itt_make_task_group( ITT_DOMAIN_FLOW, p, FLOW_INPUT_PORT, node, FLOW_NODE, name_index ); -} - -static inline void fgt_internal_create_output_port( void *node, void *p, string_index name_index ) { - itt_make_task_group( ITT_DOMAIN_FLOW, p, FLOW_OUTPUT_PORT, node, FLOW_NODE, name_index ); -} - -template < typename TypesTuple, typename PortsTuple, int N > -struct fgt_internal_input_helper { - static void register_port( void *node, PortsTuple &ports ) { - fgt_internal_create_input_port( node, (void*)static_cast< tbb::flow::interface7::receiver< typename tbb::flow::tuple_element::type > * >(&(tbb::flow::get(ports))), - static_cast(FLOW_INPUT_PORT_0 + N - 1) ); - fgt_internal_input_helper::register_port( node, ports ); - } -}; - -template < typename TypesTuple, typename PortsTuple > -struct fgt_internal_input_helper { - static void register_port( void *node, PortsTuple &ports ) { - fgt_internal_create_input_port( node, (void*)static_cast< tbb::flow::interface7::receiver< typename tbb::flow::tuple_element<0,TypesTuple>::type > * >(&(tbb::flow::get<0>(ports))), - FLOW_INPUT_PORT_0 ); - } -}; - -template < typename TypesTuple, typename PortsTuple, int N > -struct fgt_internal_output_helper { - static void register_port( void *node, PortsTuple &ports ) { - fgt_internal_create_output_port( node, (void*)static_cast< tbb::flow::interface7::sender< typename tbb::flow::tuple_element::type > * >(&(tbb::flow::get(ports))), - static_cast(FLOW_OUTPUT_PORT_0 + N - 1) ); - fgt_internal_output_helper::register_port( node, ports ); - } -}; - -template < typename TypesTuple, typename PortsTuple > -struct fgt_internal_output_helper { - static void register_port( void *node, PortsTuple &ports ) { - fgt_internal_create_output_port( node, (void*)static_cast< tbb::flow::interface7::sender< typename tbb::flow::tuple_element<0,TypesTuple>::type > * >(&(tbb::flow::get<0>(ports))), - FLOW_OUTPUT_PORT_0 ); - } -}; - -template< typename NodeType > -void fgt_multioutput_node_desc( const NodeType *node, const char *desc ) { - void *addr = (void *)( static_cast< tbb::flow::interface7::receiver< typename NodeType::input_type > * >(const_cast< NodeType *>(node)) ); - itt_metadata_str_add( ITT_DOMAIN_FLOW, addr, FLOW_NODE, FLOW_OBJECT_NAME, desc ); -} - -template< typename NodeType > -static inline void fgt_node_desc( const NodeType *node, const char *desc ) { - void *addr = (void *)( static_cast< tbb::flow::interface7::sender< typename NodeType::output_type > * >(const_cast< NodeType *>(node)) ); - itt_metadata_str_add( ITT_DOMAIN_FLOW, addr, FLOW_NODE, FLOW_OBJECT_NAME, desc ); -} - -static inline void fgt_graph_desc( void *g, const char *desc ) { - itt_metadata_str_add( ITT_DOMAIN_FLOW, g, FLOW_GRAPH, FLOW_OBJECT_NAME, desc ); -} - -static inline void fgt_body( void *node, void *body ) { - itt_relation_add( ITT_DOMAIN_FLOW, body, FLOW_BODY, __itt_relation_is_child_of, node, FLOW_NODE ); -} - -template< typename OutputTuple, int N, typename PortsTuple > -static inline void fgt_multioutput_node( string_index t, void *g, void *input_port, PortsTuple &ports ) { - itt_make_task_group( ITT_DOMAIN_FLOW, input_port, FLOW_NODE, g, FLOW_GRAPH, t ); - fgt_internal_create_input_port( input_port, input_port, FLOW_INPUT_PORT_0 ); - fgt_internal_output_helper::register_port( input_port, ports ); -} - -template< typename OutputTuple, int N, typename PortsTuple > -static inline void fgt_multioutput_node_with_body( string_index t, void *g, void *input_port, PortsTuple &ports, void *body ) { - itt_make_task_group( ITT_DOMAIN_FLOW, input_port, FLOW_NODE, g, FLOW_GRAPH, t ); - fgt_internal_create_input_port( input_port, input_port, FLOW_INPUT_PORT_0 ); - fgt_internal_output_helper::register_port( input_port, ports ); - fgt_body( input_port, body ); -} - - -template< typename InputTuple, int N, typename PortsTuple > -static inline void fgt_multiinput_node( string_index t, void *g, PortsTuple &ports, void *output_port) { - itt_make_task_group( ITT_DOMAIN_FLOW, output_port, FLOW_NODE, g, FLOW_GRAPH, t ); - fgt_internal_create_output_port( output_port, output_port, FLOW_OUTPUT_PORT_0 ); - fgt_internal_input_helper::register_port( output_port, ports ); -} - -static inline void fgt_node( string_index t, void *g, void *output_port ) { - itt_make_task_group( ITT_DOMAIN_FLOW, output_port, FLOW_NODE, g, FLOW_GRAPH, t ); - fgt_internal_create_output_port( output_port, output_port, FLOW_OUTPUT_PORT_0 ); -} - -static inline void fgt_node_with_body( string_index t, void *g, void *output_port, void *body ) { - itt_make_task_group( ITT_DOMAIN_FLOW, output_port, FLOW_NODE, g, FLOW_GRAPH, t ); - fgt_internal_create_output_port( output_port, output_port, FLOW_OUTPUT_PORT_0 ); - fgt_body( output_port, body ); -} - - -static inline void fgt_node( string_index t, void *g, void *input_port, void *output_port ) { - fgt_node( t, g, output_port ); - fgt_internal_create_input_port( output_port, input_port, FLOW_INPUT_PORT_0 ); -} - -static inline void fgt_node_with_body( string_index t, void *g, void *input_port, void *output_port, void *body ) { - fgt_node_with_body( t, g, output_port, body ); - fgt_internal_create_input_port( output_port, input_port, FLOW_INPUT_PORT_0 ); -} - - -static inline void fgt_node( string_index t, void *g, void *input_port, void *decrement_port, void *output_port ) { - fgt_node( t, g, input_port, output_port ); - fgt_internal_create_input_port( output_port, decrement_port, FLOW_INPUT_PORT_1 ); -} - -static inline void fgt_make_edge( void *output_port, void *input_port ) { - itt_relation_add( ITT_DOMAIN_FLOW, output_port, FLOW_OUTPUT_PORT, __itt_relation_is_predecessor_to, input_port, FLOW_INPUT_PORT); -} - -static inline void fgt_remove_edge( void *output_port, void *input_port ) { - itt_relation_add( ITT_DOMAIN_FLOW, output_port, FLOW_OUTPUT_PORT, __itt_relation_is_sibling_of, input_port, FLOW_INPUT_PORT); -} - -static inline void fgt_graph( void *g ) { - itt_make_task_group( ITT_DOMAIN_FLOW, g, FLOW_GRAPH, NULL, FLOW_NULL, FLOW_GRAPH ); -} - -static inline void fgt_begin_body( void *body ) { - itt_task_begin( ITT_DOMAIN_FLOW, body, FLOW_BODY, NULL, FLOW_NULL, FLOW_NULL ); -} - -static inline void fgt_end_body( void * ) { - itt_task_end( ITT_DOMAIN_FLOW ); -} - -#else // TBB_PREVIEW_FLOW_GRAPH_TRACE - -static inline void fgt_graph( void * /*g*/ ) { } - -template< typename NodeType > -static inline void fgt_multioutput_node_desc( const NodeType * /*node*/, const char * /*desc*/ ) { } - -template< typename NodeType > -static inline void fgt_node_desc( const NodeType * /*node*/, const char * /*desc*/ ) { } - -static inline void fgt_graph_desc( void * /*g*/, const char * /*desc*/ ) { } - -static inline void fgt_body( void * /*node*/, void * /*body*/ ) { } - -template< typename OutputTuple, int N, typename PortsTuple > -static inline void fgt_multioutput_node( string_index /*t*/, void * /*g*/, void * /*input_port*/, PortsTuple & /*ports*/ ) { } - -template< typename OutputTuple, int N, typename PortsTuple > -static inline void fgt_multioutput_node_with_body( string_index /*t*/, void * /*g*/, void * /*input_port*/, PortsTuple & /*ports*/, void * /*body*/ ) { } - -template< typename InputTuple, int N, typename PortsTuple > -static inline void fgt_multiinput_node( string_index /*t*/, void * /*g*/, PortsTuple & /*ports*/, void * /*output_port*/ ) { } - -static inline void fgt_node( string_index /*t*/, void * /*g*/, void * /*output_port*/ ) { } -static inline void fgt_node( string_index /*t*/, void * /*g*/, void * /*input_port*/, void * /*output_port*/ ) { } -static inline void fgt_node( string_index /*t*/, void * /*g*/, void * /*input_port*/, void * /*decrement_port*/, void * /*output_port*/ ) { } - -static inline void fgt_node_with_body( string_index /*t*/, void * /*g*/, void * /*output_port*/, void * /*body*/ ) { } -static inline void fgt_node_with_body( string_index /*t*/, void * /*g*/, void * /*input_port*/, void * /*output_port*/, void * /*body*/ ) { } - -static inline void fgt_make_edge( void * /*output_port*/, void * /*input_port*/ ) { } -static inline void fgt_remove_edge( void * /*output_port*/, void * /*input_port*/ ) { } - -static inline void fgt_begin_body( void * /*body*/ ) { } -static inline void fgt_end_body( void * /*body*/) { } - -#endif // TBB_PREVIEW_FLOW_GRAPH_TRACE - - } // namespace internal -} // namespace tbb - -#endif diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_flow_graph_types_impl.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_flow_graph_types_impl.h deleted file mode 100644 index 8a03f0852..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_flow_graph_types_impl.h +++ /dev/null @@ -1,168 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB__flow_graph_types_impl_H -#define __TBB__flow_graph_types_impl_H - -#ifndef __TBB_flow_graph_H -#error Do not #include this internal file directly; use public TBB headers instead. -#endif - -namespace internal { -// wrap each element of a tuple in a template, and make a tuple of the result. - - template class PT, typename TypeTuple> - struct wrap_tuple_elements; - - template class PT, typename TypeTuple> - struct wrap_tuple_elements<1, PT, TypeTuple> { - typedef typename tbb::flow::tuple< - PT::type> > - type; - }; - - template class PT, typename TypeTuple> - struct wrap_tuple_elements<2, PT, TypeTuple> { - typedef typename tbb::flow::tuple< - PT::type>, - PT::type> > - type; - }; - - template class PT, typename TypeTuple> - struct wrap_tuple_elements<3, PT, TypeTuple> { - typedef typename tbb::flow::tuple< - PT::type>, - PT::type>, - PT::type> > - type; - }; - - template class PT, typename TypeTuple> - struct wrap_tuple_elements<4, PT, TypeTuple> { - typedef typename tbb::flow::tuple< - PT::type>, - PT::type>, - PT::type>, - PT::type> > - type; - }; - - template class PT, typename TypeTuple> - struct wrap_tuple_elements<5, PT, TypeTuple> { - typedef typename tbb::flow::tuple< - PT::type>, - PT::type>, - PT::type>, - PT::type>, - PT::type> > - type; - }; - -#if __TBB_VARIADIC_MAX >= 6 - template class PT, typename TypeTuple> - struct wrap_tuple_elements<6, PT, TypeTuple> { - typedef typename tbb::flow::tuple< - PT::type>, - PT::type>, - PT::type>, - PT::type>, - PT::type>, - PT::type> > - type; - }; -#endif - -#if __TBB_VARIADIC_MAX >= 7 - template class PT, typename TypeTuple> - struct wrap_tuple_elements<7, PT, TypeTuple> { - typedef typename tbb::flow::tuple< - PT::type>, - PT::type>, - PT::type>, - PT::type>, - PT::type>, - PT::type>, - PT::type> > - type; - }; -#endif - -#if __TBB_VARIADIC_MAX >= 8 - template class PT, typename TypeTuple> - struct wrap_tuple_elements<8, PT, TypeTuple> { - typedef typename tbb::flow::tuple< - PT::type>, - PT::type>, - PT::type>, - PT::type>, - PT::type>, - PT::type>, - PT::type>, - PT::type> > - type; - }; -#endif - -#if __TBB_VARIADIC_MAX >= 9 - template class PT, typename TypeTuple> - struct wrap_tuple_elements<9, PT, TypeTuple> { - typedef typename tbb::flow::tuple< - PT::type>, - PT::type>, - PT::type>, - PT::type>, - PT::type>, - PT::type>, - PT::type>, - PT::type>, - PT::type> > - type; - }; -#endif - -#if __TBB_VARIADIC_MAX >= 10 - template class PT, typename TypeTuple> - struct wrap_tuple_elements<10, PT, TypeTuple> { - typedef typename tbb::flow::tuple< - PT::type>, - PT::type>, - PT::type>, - PT::type>, - PT::type>, - PT::type>, - PT::type>, - PT::type>, - PT::type>, - PT::type> > - type; - }; -#endif - -} // namespace internal -#endif /* __TBB__flow_graph_types_impl_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_mutex_padding.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_mutex_padding.h deleted file mode 100644 index d6427ffd0..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_mutex_padding.h +++ /dev/null @@ -1,110 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_mutex_padding_H -#define __TBB_mutex_padding_H - -// wrapper for padding mutexes to be alone on a cache line, without requiring they be allocated -// from a pool. Because we allow them to be defined anywhere they must be two cache lines in size. - - -namespace tbb { -namespace interface7 { -namespace internal { - -static const size_t cache_line_size = 64; - -// Pad a mutex to occupy a number of full cache lines sufficient to avoid false sharing -// with other data; space overhead is up to 2*cache_line_size-1. -template class padded_mutex; - -template -class padded_mutex { - typedef long pad_type; - pad_type my_pad[((sizeof(Mutex)+cache_line_size-1)/cache_line_size+1)*cache_line_size/sizeof(pad_type)]; - - Mutex *impl() { return (Mutex *)((uintptr_t(this)|(cache_line_size-1))+1);} - -public: - static const bool is_rw_mutex = Mutex::is_rw_mutex; - static const bool is_recursive_mutex = Mutex::is_recursive_mutex; - static const bool is_fair_mutex = Mutex::is_fair_mutex; - - padded_mutex() { new(impl()) Mutex(); } - ~padded_mutex() { impl()->~Mutex(); } - - //! Represents acquisition of a mutex. - class scoped_lock : tbb::internal::no_copy { - typename Mutex::scoped_lock my_scoped_lock; - public: - scoped_lock() : my_scoped_lock() {} - scoped_lock( padded_mutex& m ) : my_scoped_lock(*m.impl()) { } - ~scoped_lock() { } - - void acquire( padded_mutex& m ) { my_scoped_lock.acquire(*m.impl()); } - bool try_acquire( padded_mutex& m ) { return my_scoped_lock.try_acquire(*m.impl()); } - void release() { my_scoped_lock.release(); } - }; -}; - -template -class padded_mutex { - typedef long pad_type; - pad_type my_pad[((sizeof(Mutex)+cache_line_size-1)/cache_line_size+1)*cache_line_size/sizeof(pad_type)]; - - Mutex *impl() { return (Mutex *)((uintptr_t(this)|(cache_line_size-1))+1);} - -public: - static const bool is_rw_mutex = Mutex::is_rw_mutex; - static const bool is_recursive_mutex = Mutex::is_recursive_mutex; - static const bool is_fair_mutex = Mutex::is_fair_mutex; - - padded_mutex() { new(impl()) Mutex(); } - ~padded_mutex() { impl()->~Mutex(); } - - //! Represents acquisition of a mutex. - class scoped_lock : tbb::internal::no_copy { - typename Mutex::scoped_lock my_scoped_lock; - public: - scoped_lock() : my_scoped_lock() {} - scoped_lock( padded_mutex& m, bool write = true ) : my_scoped_lock(*m.impl(),write) { } - ~scoped_lock() { } - - void acquire( padded_mutex& m, bool write = true ) { my_scoped_lock.acquire(*m.impl(),write); } - bool try_acquire( padded_mutex& m, bool write = true ) { return my_scoped_lock.try_acquire(*m.impl(),write); } - bool upgrade_to_writer() { return my_scoped_lock.upgrade_to_writer(); } - bool downgrade_to_reader() { return my_scoped_lock.downgrade_to_reader(); } - void release() { my_scoped_lock.release(); } - }; -}; - -} // namespace internal -} // namespace interface7 -} // namespace tbb - -#endif /* __TBB_mutex_padding_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_tbb_strings.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_tbb_strings.h deleted file mode 100644 index 9c75c813d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_tbb_strings.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -TBB_STRING_RESOURCE(FLOW_BROADCAST_NODE, "broadcast_node") -TBB_STRING_RESOURCE(FLOW_BUFFER_NODE, "buffer_node") -TBB_STRING_RESOURCE(FLOW_CONTINUE_NODE, "continue_node") -TBB_STRING_RESOURCE(FLOW_FUNCTION_NODE, "function_node") -TBB_STRING_RESOURCE(FLOW_JOIN_NODE_QUEUEING, "join_node (queueing)") -TBB_STRING_RESOURCE(FLOW_JOIN_NODE_RESERVING, "join_node (reserving)") -TBB_STRING_RESOURCE(FLOW_JOIN_NODE_TAG_MATCHING, "join_node (tag_matching)") -TBB_STRING_RESOURCE(FLOW_LIMITER_NODE, "limiter_node") -TBB_STRING_RESOURCE(FLOW_MULTIFUNCTION_NODE, "multifunction_node") -TBB_STRING_RESOURCE(FLOW_OR_NODE, "or_node") -TBB_STRING_RESOURCE(FLOW_OVERWRITE_NODE, "overwrite_node") -TBB_STRING_RESOURCE(FLOW_PRIORITY_QUEUE_NODE, "priority_queue_node") -TBB_STRING_RESOURCE(FLOW_QUEUE_NODE, "queue_node") -TBB_STRING_RESOURCE(FLOW_SEQUENCER_NODE, "sequencer_node") -TBB_STRING_RESOURCE(FLOW_SOURCE_NODE, "source_node") -TBB_STRING_RESOURCE(FLOW_SPLIT_NODE, "split_node") -TBB_STRING_RESOURCE(FLOW_WRITE_ONCE_NODE, "write_once_node") -TBB_STRING_RESOURCE(FLOW_BODY, "body") -TBB_STRING_RESOURCE(FLOW_GRAPH, "graph") -TBB_STRING_RESOURCE(FLOW_NODE, "node") -TBB_STRING_RESOURCE(FLOW_INPUT_PORT, "input_port") -TBB_STRING_RESOURCE(FLOW_INPUT_PORT_0, "input_port_0") -TBB_STRING_RESOURCE(FLOW_INPUT_PORT_1, "input_port_1") -TBB_STRING_RESOURCE(FLOW_INPUT_PORT_2, "input_port_2") -TBB_STRING_RESOURCE(FLOW_INPUT_PORT_3, "input_port_3") -TBB_STRING_RESOURCE(FLOW_INPUT_PORT_4, "input_port_4") -TBB_STRING_RESOURCE(FLOW_INPUT_PORT_5, "input_port_5") -TBB_STRING_RESOURCE(FLOW_INPUT_PORT_6, "input_port_6") -TBB_STRING_RESOURCE(FLOW_INPUT_PORT_7, "input_port_7") -TBB_STRING_RESOURCE(FLOW_INPUT_PORT_8, "input_port_8") -TBB_STRING_RESOURCE(FLOW_INPUT_PORT_9, "input_port_9") -TBB_STRING_RESOURCE(FLOW_OUTPUT_PORT, "output_port") -TBB_STRING_RESOURCE(FLOW_OUTPUT_PORT_0, "output_port_0") -TBB_STRING_RESOURCE(FLOW_OUTPUT_PORT_1, "output_port_1") -TBB_STRING_RESOURCE(FLOW_OUTPUT_PORT_2, "output_port_2") -TBB_STRING_RESOURCE(FLOW_OUTPUT_PORT_3, "output_port_3") -TBB_STRING_RESOURCE(FLOW_OUTPUT_PORT_4, "output_port_4") -TBB_STRING_RESOURCE(FLOW_OUTPUT_PORT_5, "output_port_5") -TBB_STRING_RESOURCE(FLOW_OUTPUT_PORT_6, "output_port_6") -TBB_STRING_RESOURCE(FLOW_OUTPUT_PORT_7, "output_port_7") -TBB_STRING_RESOURCE(FLOW_OUTPUT_PORT_8, "output_port_8") -TBB_STRING_RESOURCE(FLOW_OUTPUT_PORT_9, "output_port_9") -TBB_STRING_RESOURCE(FLOW_OBJECT_NAME, "object_name") -TBB_STRING_RESOURCE(FLOW_NULL, "null") diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_tbb_windef.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_tbb_windef.h deleted file mode 100644 index 487a4ec82..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_tbb_windef.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_tbb_windef_H -#error Do not #include this internal file directly; use public TBB headers instead. -#endif /* __TBB_tbb_windef_H */ - -// Check that the target Windows version has all API calls requried for TBB. -// Do not increase the version in condition beyond 0x0500 without prior discussion! -#if defined(_WIN32_WINNT) && _WIN32_WINNT<0x0501 -#error TBB is unable to run on old Windows versions; _WIN32_WINNT must be 0x0501 or greater. -#endif - -#if !defined(_MT) -#error TBB requires linkage with multithreaded C/C++ runtime library. \ - Choose multithreaded DLL runtime in project settings, or use /MD[d] compiler switch. -#endif - -// Workaround for the problem with MVSC headers failing to define namespace std -namespace std { - using ::size_t; using ::ptrdiff_t; -} - -#define __TBB_STRING_AUX(x) #x -#define __TBB_STRING(x) __TBB_STRING_AUX(x) - -// Default setting of TBB_USE_DEBUG -#ifdef TBB_USE_DEBUG -# if TBB_USE_DEBUG -# if !defined(_DEBUG) -# pragma message(__FILE__ "(" __TBB_STRING(__LINE__) ") : Warning: Recommend using /MDd if compiling with TBB_USE_DEBUG!=0") -# endif -# else -# if defined(_DEBUG) -# pragma message(__FILE__ "(" __TBB_STRING(__LINE__) ") : Warning: Recommend using /MD if compiling with TBB_USE_DEBUG==0") -# endif -# endif -#endif - -#if (__TBB_BUILD || __TBBMALLOC_BUILD) && !defined(__TBB_NO_IMPLICIT_LINKAGE) -#define __TBB_NO_IMPLICIT_LINKAGE 1 -#endif - -#if _MSC_VER - #if !__TBB_NO_IMPLICIT_LINKAGE - #ifdef __TBB_LIB_NAME - #pragma comment(lib, __TBB_STRING(__TBB_LIB_NAME)) - #else - #ifdef _DEBUG - #pragma comment(lib, "tbb_debug.lib") - #else - #pragma comment(lib, "tbb.lib") - #endif - #endif - #endif -#endif diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_x86_eliding_mutex_impl.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_x86_eliding_mutex_impl.h deleted file mode 100644 index 058a7d0f4..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_x86_eliding_mutex_impl.h +++ /dev/null @@ -1,157 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB__x86_eliding_mutex_impl_H -#define __TBB__x86_eliding_mutex_impl_H - -#ifndef __TBB_spin_mutex_H -#error Do not #include this internal file directly; use public TBB headers instead. -#endif - -#if ( __TBB_x86_32 || __TBB_x86_64 ) - -namespace tbb { -namespace interface7 { -namespace internal { - -template -class padded_mutex; - -//! An eliding lock that occupies a single byte. -/** A x86_eliding_mutex is an HLE-enabled spin mutex. It is recommended to - put the mutex on a cache line that is not shared by the data it protects. - It should be used for locking short critical sections where the lock is - contended but the data it protects are not. If zero-initialized, the - mutex is considered unheld. - @ingroup synchronization */ -class x86_eliding_mutex { - - //! 0 if lock is released, 1 if lock is acquired. - __TBB_atomic_flag flag; - - friend class padded_mutex; - -public: - //! Construct unacquired lock. - /** Equivalent to zero-initialization of *this. */ - x86_eliding_mutex() : flag(0) {} - -// bug in gcc 3.x.x causes syntax error in spite of the friend declaration above. -// Make the scoped_lock public in that case. -#if __TBB_USE_X86_ELIDING_MUTEX || __TBB_GCC_VERSION < 40000 -#else - // by default we will not provide the scoped_lock interface. The user - // should use the padded version of the mutex. scoped_lock is used in - // padded_mutex template. -private: -#endif - // scoped_lock in padded_mutex<> is the interface to use. - //! Represents acquisition of a mutex. - class scoped_lock : tbb::internal::no_copy { - private: - //! Points to currently held mutex, or NULL if no lock is held. - x86_eliding_mutex* my_mutex; - - public: - //! Construct without acquiring a mutex. - scoped_lock() : my_mutex(NULL) {} - - //! Construct and acquire lock on a mutex. - scoped_lock( x86_eliding_mutex& m ) : my_mutex(NULL) { acquire(m); } - - //! Acquire lock. - void acquire( x86_eliding_mutex& m ) { - __TBB_ASSERT( !my_mutex, "already holding a lock" ); - - my_mutex=&m; - my_mutex->lock(); - } - - //! Try acquiring lock (non-blocking) - /** Return true if lock acquired; false otherwise. */ - bool try_acquire( x86_eliding_mutex& m ) { - __TBB_ASSERT( !my_mutex, "already holding a lock" ); - - bool result = m.try_lock(); - if( result ) { - my_mutex = &m; - } - return result; - } - - //! Release lock - void release() { - __TBB_ASSERT( my_mutex, "release on scoped_lock that is not holding a lock" ); - - my_mutex->unlock(); - my_mutex = NULL; - } - - //! Destroy lock. If holding a lock, releases the lock first. - ~scoped_lock() { - if( my_mutex ) { - release(); - } - } - }; -#if __TBB_USE_X86_ELIDING_MUTEX || __TBB_GCC_VERSION < 40000 -#else -public: -#endif /* __TBB_USE_X86_ELIDING_MUTEX */ - - // Mutex traits - static const bool is_rw_mutex = false; - static const bool is_recursive_mutex = false; - static const bool is_fair_mutex = false; - - // ISO C++0x compatibility methods - - //! Acquire lock - void lock() { - __TBB_LockByteElided(flag); - } - - //! Try acquiring lock (non-blocking) - /** Return true if lock acquired; false otherwise. */ - bool try_lock() { - return __TBB_TryLockByteElided(flag); - } - - //! Release lock - void unlock() { - __TBB_UnlockByteElided( flag ); - } -}; // end of x86_eliding_mutex - -} // namespace internal -} // namespace interface7 -} // namespace tbb - -#endif /* ( __TBB_x86_32 || __TBB_x86_64 ) */ - -#endif /* __TBB__x86_eliding_mutex_impl_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_x86_rtm_rw_mutex_impl.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_x86_rtm_rw_mutex_impl.h deleted file mode 100644 index 83853df56..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/internal/_x86_rtm_rw_mutex_impl.h +++ /dev/null @@ -1,219 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB__x86_rtm_rw_mutex_impl_H -#define __TBB__x86_rtm_rw_mutex_impl_H - -#ifndef __TBB_spin_rw_mutex_H -#error Do not #include this internal file directly; use public TBB headers instead. -#endif - -#if TBB_PREVIEW_SPECULATIVE_SPIN_RW_MUTEX -#if __TBB_TSX_AVAILABLE - -#include "tbb/tbb_stddef.h" -#include "tbb/tbb_machine.h" -#include "tbb/tbb_profiling.h" -#include "tbb/spin_rw_mutex.h" - -namespace tbb { -namespace interface7 { -namespace internal { - -enum RTM_type { - RTM_not_in_mutex, - RTM_transacting_reader, - RTM_transacting_writer, - RTM_real_reader, - RTM_real_writer -}; - -static const unsigned long speculation_granularity = 64; - -//! Fast, unfair, spinning speculation-enabled reader-writer lock with backoff and -// writer-preference -/** @ingroup synchronization */ -class x86_rtm_rw_mutex: private spin_rw_mutex { -public: -// bug in gcc 3.x.x causes syntax error in spite of the friend declaration above. -// Make the scoped_lock public in that case. -#if __TBB_USE_X86_RTM_RW_MUTEX || __TBB_GCC_VERSION < 40000 -#else -private: -#endif - friend class padded_mutex; - class scoped_lock; // should be private -private: - //! @cond INTERNAL - - //! Internal acquire write lock. - // only_speculate == true if we're doing a try_lock, else false. - void __TBB_EXPORTED_METHOD internal_acquire_writer(x86_rtm_rw_mutex::scoped_lock&, bool only_speculate=false); - - //! Internal acquire read lock. - // only_speculate == true if we're doing a try_lock, else false. - void __TBB_EXPORTED_METHOD internal_acquire_reader(x86_rtm_rw_mutex::scoped_lock&, bool only_speculate=false); - - //! Internal upgrade reader to become a writer. - bool __TBB_EXPORTED_METHOD internal_upgrade( x86_rtm_rw_mutex::scoped_lock& ); - - //! Out of line code for downgrading a writer to a reader. - void __TBB_EXPORTED_METHOD internal_downgrade( x86_rtm_rw_mutex::scoped_lock& ); - - //! Internal try_acquire write lock. - bool __TBB_EXPORTED_METHOD internal_try_acquire_writer( x86_rtm_rw_mutex::scoped_lock& ); - - //! Internal release read lock. - void internal_release_reader( x86_rtm_rw_mutex::scoped_lock& ); - - //! Out of line code for releasing a write lock. - void internal_release_writer(x86_rtm_rw_mutex::scoped_lock& ); - - //! @endcond -public: - //! Construct unacquired mutex. - x86_rtm_rw_mutex() { - w_flag = false; -#if TBB_USE_THREADING_TOOLS - internal_construct(); -#endif - } - -#if TBB_USE_ASSERT - //! Empty destructor. - ~x86_rtm_rw_mutex() {} -#endif /* TBB_USE_ASSERT */ - - // Mutex traits - static const bool is_rw_mutex = true; - static const bool is_recursive_mutex = false; - static const bool is_fair_mutex = false; - -#if __TBB_USE_X86_RTM_RW_MUTEX || __TBB_GCC_VERSION < 40000 -#else - // by default we will not provide the scoped_lock interface. The user - // should use the padded version of the mutex. scoped_lock is used in - // padded_mutex template. -private: -#endif - //! The scoped locking pattern - /** It helps to avoid the common problem of forgetting to release lock. - It also nicely provides the "node" for queuing locks. */ - // Speculation-enabled scoped lock for spin_rw_mutex - // The idea is to be able to reuse the acquire/release methods of spin_rw_mutex - // and its scoped lock wherever possible. The only way to use a speculative lock is to use - // a scoped_lock. (because transaction_state must be local) - - class scoped_lock { - friend class x86_rtm_rw_mutex; - spin_rw_mutex::scoped_lock my_scoped_lock; - - RTM_type transaction_state; - - public: - //! Construct lock that has not acquired a mutex. - /** Equivalent to zero-initialization of *this. */ - scoped_lock() : my_scoped_lock(), transaction_state(RTM_not_in_mutex) { - } - - //! Acquire lock on given mutex. - scoped_lock( x86_rtm_rw_mutex& m, bool write = true ) : my_scoped_lock(), - transaction_state(RTM_not_in_mutex) { - acquire(m, write); - } - - //! Release lock (if lock is held). - ~scoped_lock() { - if(transaction_state != RTM_not_in_mutex) release(); - } - - //! Acquire lock on given mutex. - void acquire( x86_rtm_rw_mutex& m, bool write = true ) { - if( write ) m.internal_acquire_writer(*this); - else m.internal_acquire_reader(*this); - } - - void __TBB_EXPORTED_METHOD release(); - - //! Upgrade reader to become a writer. - /** Returns whether the upgrade happened without releasing and re-acquiring the lock */ - bool upgrade_to_writer() { - x86_rtm_rw_mutex* mutex = static_cast(my_scoped_lock.__internal_get_mutex()); - __TBB_ASSERT( mutex, "lock is not acquired" ); - return mutex->internal_upgrade(*this); - } - - //! Downgrade writer to become a reader. - bool downgrade_to_reader() { - x86_rtm_rw_mutex* mutex = static_cast(my_scoped_lock.__internal_get_mutex()); - __TBB_ASSERT( mutex, "lock is not acquired" ); - mutex->internal_downgrade(*this); - return true; // real writer -> reader returns true, speculative only changes local state. - } - - //! Attempt to acquire mutex. - /** returns true if successful. */ - bool try_acquire( x86_rtm_rw_mutex& m, bool write = true ) { -#if TBB_USE_DEBUG - x86_rtm_rw_mutex* mutex = static_cast(my_scoped_lock.__internal_get_mutex()); - __TBB_ASSERT( !mutex, "holding mutex already" ); -#endif - // have to assign m to our mutex. - // cannot set the mutex, because try_acquire in spin_rw_mutex depends on it being NULL. - if(write) return m.internal_try_acquire_writer(*this); - // speculatively acquire the lock. If this fails, do try_acquire on the spin_rw_mutex. - m.internal_acquire_reader(*this, /*only_speculate=*/true); - if(transaction_state == RTM_transacting_reader) return true; - if( my_scoped_lock.try_acquire(m, false)) { - transaction_state = RTM_real_reader; - return true; - } - return false; - } - - }; // class x86_rtm_rw_mutex::scoped_lock - - // ISO C++0x compatibility methods not provided because we cannot maintain - // state about whether a thread is in a transaction. - -private: - char pad[speculation_granularity-sizeof(spin_rw_mutex)]; // padding - - // If true, writer holds the spin_rw_mutex. - tbb::atomic w_flag; // want this on a separate cache line - - void __TBB_EXPORTED_METHOD internal_construct(); -}; // x86_rtm_rw_mutex - -} // namespace internal -} // namespace interface7 -} // namespace tbb - -#endif /* ( __TBB_x86_32 || __TBB_x86_64 ) */ -#endif /* TBB_PREVIEW_SPECULATIVE_SPIN_RW_MUTEX */ -#endif /* __TBB__x86_rtm_rw_mutex_impl_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/gcc_armv7.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/gcc_armv7.h deleted file mode 100644 index 82025c6d8..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/gcc_armv7.h +++ /dev/null @@ -1,225 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* - Platform isolation layer for the ARMv7-a architecture. -*/ - -#ifndef __TBB_machine_H -#error Do not include this file directly; include tbb_machine.h instead -#endif - -//TODO: is ARMv7 is the only version ever to support? -#if !(__ARM_ARCH_7A__) -#error compilation requires an ARMv7-a architecture. -#endif - -#include -#include - -#define __TBB_WORDSIZE 4 - -// Traditionally ARM is little-endian. -// Note that, since only the layout of aligned 32-bit words is of interest, -// any apparent PDP-endianness of 32-bit words at half-word alignment or -// any little-endian ordering of big-endian 32-bit words in 64-bit quantities -// may be disregarded for this setting. -#if __BIG_ENDIAN__ || (defined(__BYTE_ORDER__) && __BYTE_ORDER__==__ORDER_BIG_ENDIAN__) - #define __TBB_ENDIANNESS __TBB_ENDIAN_BIG -#elif __LITTLE_ENDIAN__ || (defined(__BYTE_ORDER__) && __BYTE_ORDER__==__ORDER_LITTLE_ENDIAN__) - #define __TBB_ENDIANNESS __TBB_ENDIAN_LITTLE -#elif defined(__BYTE_ORDER__) - #define __TBB_ENDIANNESS __TBB_ENDIAN_UNSUPPORTED -#else - #define __TBB_ENDIANNESS __TBB_ENDIAN_DETECT -#endif - - -#define __TBB_compiler_fence() __asm__ __volatile__("": : :"memory") -#define __TBB_full_memory_fence() __asm__ __volatile__("dmb ish": : :"memory") -#define __TBB_control_consistency_helper() __TBB_full_memory_fence() -#define __TBB_acquire_consistency_helper() __TBB_full_memory_fence() -#define __TBB_release_consistency_helper() __TBB_full_memory_fence() - -//-------------------------------------------------- -// Compare and swap -//-------------------------------------------------- - -/** - * Atomic CAS for 32 bit values, if *ptr==comparand, then *ptr=value, returns *ptr - * @param ptr pointer to value in memory to be swapped with value if *ptr==comparand - * @param value value to assign *ptr to if *ptr==comparand - * @param comparand value to compare with *ptr - * @return value originally in memory at ptr, regardless of success -*/ -static inline int32_t __TBB_machine_cmpswp4(volatile void *ptr, int32_t value, int32_t comparand ) -{ - int32_t oldval, res; - - __TBB_full_memory_fence(); - - do { - __asm__ __volatile__( - "ldrex %1, [%3]\n" - "mov %0, #0\n" - "cmp %1, %4\n" - "it eq\n" - "strexeq %0, %5, [%3]\n" - : "=&r" (res), "=&r" (oldval), "+Qo" (*(volatile int32_t*)ptr) - : "r" ((int32_t *)ptr), "Ir" (comparand), "r" (value) - : "cc"); - } while (res); - - __TBB_full_memory_fence(); - - return oldval; -} - -/** - * Atomic CAS for 64 bit values, if *ptr==comparand, then *ptr=value, returns *ptr - * @param ptr pointer to value in memory to be swapped with value if *ptr==comparand - * @param value value to assign *ptr to if *ptr==comparand - * @param comparand value to compare with *ptr - * @return value originally in memory at ptr, regardless of success - */ -static inline int64_t __TBB_machine_cmpswp8(volatile void *ptr, int64_t value, int64_t comparand ) -{ - int64_t oldval; - int32_t res; - - __TBB_full_memory_fence(); - - do { - __asm__ __volatile__( - "mov %0, #0\n" - "ldrexd %1, %H1, [%3]\n" - "cmp %1, %4\n" - "it eq\n" - "cmpeq %H1, %H4\n" - "it eq\n" - "strexdeq %0, %5, %H5, [%3]" - : "=&r" (res), "=&r" (oldval), "+Qo" (*(volatile int64_t*)ptr) - : "r" ((int64_t *)ptr), "r" (comparand), "r" (value) - : "cc"); - } while (res); - - __TBB_full_memory_fence(); - - return oldval; -} - -static inline int32_t __TBB_machine_fetchadd4(volatile void* ptr, int32_t addend) -{ - unsigned long tmp; - int32_t result, tmp2; - - __TBB_full_memory_fence(); - - __asm__ __volatile__( -"1: ldrex %0, [%4]\n" -" add %3, %0, %5\n" -" strex %1, %3, [%4]\n" -" cmp %1, #0\n" -" bne 1b\n" - : "=&r" (result), "=&r" (tmp), "+Qo" (*(volatile int32_t*)ptr), "=&r"(tmp2) - : "r" ((int32_t *)ptr), "Ir" (addend) - : "cc"); - - __TBB_full_memory_fence(); - - return result; -} - -static inline int64_t __TBB_machine_fetchadd8(volatile void *ptr, int64_t addend) -{ - unsigned long tmp; - int64_t result, tmp2; - - __TBB_full_memory_fence(); - - __asm__ __volatile__( -"1: ldrexd %0, %H0, [%4]\n" -" adds %3, %0, %5\n" -" adc %H3, %H0, %H5\n" -" strexd %1, %3, %H3, [%4]\n" -" cmp %1, #0\n" -" bne 1b" - : "=&r" (result), "=&r" (tmp), "+Qo" (*(volatile int64_t*)ptr), "=&r"(tmp2) - : "r" ((int64_t *)ptr), "r" (addend) - : "cc"); - - - __TBB_full_memory_fence(); - - return result; -} - -inline void __TBB_machine_pause (int32_t delay ) -{ - while(delay>0) - { - __TBB_compiler_fence(); - delay--; - } -} - -namespace tbb { -namespace internal { - template - struct machine_load_store_relaxed { - static inline T load ( const volatile T& location ) { - const T value = location; - - /* - * An extra memory barrier is required for errata #761319 - * Please see http://infocenter.arm.com/help/topic/com.arm.doc.uan0004a - */ - __TBB_acquire_consistency_helper(); - return value; - } - - static inline void store ( volatile T& location, T value ) { - location = value; - } - }; -}} // namespaces internal, tbb - -// Machine specific atomic operations - -#define __TBB_CompareAndSwap4(P,V,C) __TBB_machine_cmpswp4(P,V,C) -#define __TBB_CompareAndSwap8(P,V,C) __TBB_machine_cmpswp8(P,V,C) -#define __TBB_Pause(V) __TBB_machine_pause(V) - -// Use generics for some things -#define __TBB_USE_GENERIC_PART_WORD_CAS 1 -#define __TBB_USE_GENERIC_PART_WORD_FETCH_ADD 1 -#define __TBB_USE_GENERIC_PART_WORD_FETCH_STORE 1 -#define __TBB_USE_GENERIC_FETCH_STORE 1 -#define __TBB_USE_GENERIC_HALF_FENCED_LOAD_STORE 1 -#define __TBB_USE_GENERIC_DWORD_LOAD_STORE 1 -#define __TBB_USE_GENERIC_SEQUENTIAL_CONSISTENCY_LOAD_STORE 1 diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/gcc_generic.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/gcc_generic.h deleted file mode 100644 index b496acab5..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/gcc_generic.h +++ /dev/null @@ -1,139 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#if !defined(__TBB_machine_H) || defined(__TBB_machine_gcc_generic_H) -#error Do not #include this internal file directly; use public TBB headers instead. -#endif - -#define __TBB_machine_gcc_generic_H - -#include -#include - -#define __TBB_WORDSIZE __SIZEOF_POINTER__ - -#if __TBB_GCC_64BIT_ATOMIC_BUILTINS_BROKEN - #define __TBB_64BIT_ATOMICS 0 -#endif - -/** FPU control setting not available for non-Intel architectures on Android **/ -#if __ANDROID__ && __TBB_generic_arch - #define __TBB_CPU_CTL_ENV_PRESENT 0 -#endif - -// __BYTE_ORDER__ is used in accordance with http://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html, -// but __BIG_ENDIAN__ or __LITTLE_ENDIAN__ may be more commonly found instead. -#if __BIG_ENDIAN__ || (defined(__BYTE_ORDER__) && __BYTE_ORDER__==__ORDER_BIG_ENDIAN__) - #define __TBB_ENDIANNESS __TBB_ENDIAN_BIG -#elif __LITTLE_ENDIAN__ || (defined(__BYTE_ORDER__) && __BYTE_ORDER__==__ORDER_LITTLE_ENDIAN__) - #define __TBB_ENDIANNESS __TBB_ENDIAN_LITTLE -#elif defined(__BYTE_ORDER__) - #define __TBB_ENDIANNESS __TBB_ENDIAN_UNSUPPORTED -#else - #define __TBB_ENDIANNESS __TBB_ENDIAN_DETECT -#endif - -/** As this generic implementation has absolutely no information about underlying - hardware, its performance most likely will be sub-optimal because of full memory - fence usages where a more lightweight synchronization means (or none at all) - could suffice. Thus if you use this header to enable TBB on a new platform, - consider forking it and relaxing below helpers as appropriate. **/ -#define __TBB_acquire_consistency_helper() __sync_synchronize() -#define __TBB_release_consistency_helper() __sync_synchronize() -#define __TBB_full_memory_fence() __sync_synchronize() -#define __TBB_control_consistency_helper() __sync_synchronize() - -#define __TBB_MACHINE_DEFINE_ATOMICS(S,T) \ -inline T __TBB_machine_cmpswp##S( volatile void *ptr, T value, T comparand ) { \ - return __sync_val_compare_and_swap(reinterpret_cast(ptr),comparand,value); \ -} \ - \ -inline T __TBB_machine_fetchadd##S( volatile void *ptr, T value ) { \ - return __sync_fetch_and_add(reinterpret_cast(ptr),value); \ -} \ - -__TBB_MACHINE_DEFINE_ATOMICS(1,int8_t) -__TBB_MACHINE_DEFINE_ATOMICS(2,int16_t) -__TBB_MACHINE_DEFINE_ATOMICS(4,int32_t) -__TBB_MACHINE_DEFINE_ATOMICS(8,int64_t) - -#undef __TBB_MACHINE_DEFINE_ATOMICS - -namespace tbb{ namespace internal { namespace gcc_builtins { - inline int clz(unsigned int x){ return __builtin_clz(x);}; - inline int clz(unsigned long int x){ return __builtin_clzl(x);}; - inline int clz(unsigned long long int x){ return __builtin_clzll(x);}; -}}} -//gcc __builtin_clz builtin count _number_ of leading zeroes -static inline intptr_t __TBB_machine_lg( uintptr_t x ) { - return sizeof(x)*8 - tbb::internal::gcc_builtins::clz(x) -1 ; -} - -static inline void __TBB_machine_or( volatile void *ptr, uintptr_t addend ) { - __sync_fetch_and_or(reinterpret_cast(ptr),addend); -} - -static inline void __TBB_machine_and( volatile void *ptr, uintptr_t addend ) { - __sync_fetch_and_and(reinterpret_cast(ptr),addend); -} - - -typedef unsigned char __TBB_Flag; - -typedef __TBB_atomic __TBB_Flag __TBB_atomic_flag; - -inline bool __TBB_machine_try_lock_byte( __TBB_atomic_flag &flag ) { - return __sync_lock_test_and_set(&flag,1)==0; -} - -inline void __TBB_machine_unlock_byte( __TBB_atomic_flag &flag ) { - __sync_lock_release(&flag); -} - -// Machine specific atomic operations -#define __TBB_AtomicOR(P,V) __TBB_machine_or(P,V) -#define __TBB_AtomicAND(P,V) __TBB_machine_and(P,V) - -#define __TBB_TryLockByte __TBB_machine_try_lock_byte -#define __TBB_UnlockByte __TBB_machine_unlock_byte - -// Definition of other functions -#define __TBB_Log2(V) __TBB_machine_lg(V) - -#define __TBB_USE_GENERIC_FETCH_STORE 1 -#define __TBB_USE_GENERIC_HALF_FENCED_LOAD_STORE 1 -#define __TBB_USE_GENERIC_RELAXED_LOAD_STORE 1 -#define __TBB_USE_GENERIC_SEQUENTIAL_CONSISTENCY_LOAD_STORE 1 - -#if __TBB_WORDSIZE==4 - #define __TBB_USE_GENERIC_DWORD_LOAD_STORE 1 -#endif - -#if __TBB_x86_32 || __TBB_x86_64 -#include "gcc_itsx.h" -#endif diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/gcc_ia32_common.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/gcc_ia32_common.h deleted file mode 100644 index d8c362893..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/gcc_ia32_common.h +++ /dev/null @@ -1,99 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_machine_gcc_ia32_common_H -#define __TBB_machine_gcc_ia32_common_H - -//TODO: Add a higher-level function, e.g. tbb::interal::log2(), into tbb_stddef.h, which -//uses __TBB_Log2 and contains the assert and remove the assert from here and all other -//platform-specific headers. -//TODO: Check if use of gcc intrinsic gives a better chance for cross call optimizations -static inline intptr_t __TBB_machine_lg( uintptr_t x ) { - __TBB_ASSERT(x, "__TBB_Log2(0) undefined"); - uintptr_t j; - __asm__ ("bsr %1,%0" : "=r"(j) : "r"(x)); - return j; -} -#define __TBB_Log2(V) __TBB_machine_lg(V) - -#ifndef __TBB_Pause -//TODO: check if raising a ratio of pause instructions to loop control instructions -//(via e.g. loop unrolling) gives any benefit for HT. E.g, the current implementation -//does about 2 CPU-consuming instructions for every pause instruction. Perhaps for -//high pause counts it should use an unrolled loop to raise the ratio, and thus free -//up more integer cycles for the other hyperthread. On the other hand, if the loop is -//unrolled too far, it won't fit in the core's loop cache, and thus take away -//instruction decode slots from the other hyperthread. - -//TODO: check if use of gcc __builtin_ia32_pause intrinsic gives a "some how" better performing code -static inline void __TBB_machine_pause( int32_t delay ) { - for (int32_t i = 0; i < delay; i++) { - __asm__ __volatile__("pause;"); - } - return; -} -#define __TBB_Pause(V) __TBB_machine_pause(V) -#endif /* !__TBB_Pause */ - -// API to retrieve/update FPU control setting -#ifndef __TBB_CPU_CTL_ENV_PRESENT -#define __TBB_CPU_CTL_ENV_PRESENT 1 - -struct __TBB_cpu_ctl_env_t { - int mxcsr; - short x87cw; -}; -inline void __TBB_get_cpu_ctl_env ( __TBB_cpu_ctl_env_t* ctl ) { -#if __TBB_ICC_12_0_INL_ASM_FSTCW_BROKEN - __TBB_cpu_ctl_env_t loc_ctl; - __asm__ __volatile__ ( - "stmxcsr %0\n\t" - "fstcw %1" - : "=m"(loc_ctl.mxcsr), "=m"(loc_ctl.x87cw) - ); - *ctl = loc_ctl; -#else - __asm__ __volatile__ ( - "stmxcsr %0\n\t" - "fstcw %1" - : "=m"(ctl->mxcsr), "=m"(ctl->x87cw) - ); -#endif -} -inline void __TBB_set_cpu_ctl_env ( const __TBB_cpu_ctl_env_t* ctl ) { - __asm__ __volatile__ ( - "ldmxcsr %0\n\t" - "fldcw %1" - : : "m"(ctl->mxcsr), "m"(ctl->x87cw) - ); -} -#endif /* !__TBB_CPU_CTL_ENV_PRESENT */ - -#include "gcc_itsx.h" - -#endif /* __TBB_machine_gcc_ia32_common_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/gcc_itsx.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/gcc_itsx.h deleted file mode 100644 index bd0c5acba..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/gcc_itsx.h +++ /dev/null @@ -1,140 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#if !defined(__TBB_machine_H) || defined(__TBB_machine_gcc_itsx_H) -#error Do not #include this internal file directly; use public TBB headers instead. -#endif - -#define __TBB_machine_gcc_itsx_H - -#define __TBB_OP_XACQUIRE 0xF2 -#define __TBB_OP_XRELEASE 0xF3 -#define __TBB_OP_LOCK 0xF0 - -#define __TBB_STRINGIZE_INTERNAL(arg) #arg -#define __TBB_STRINGIZE(arg) __TBB_STRINGIZE_INTERNAL(arg) - -#ifdef __TBB_x86_64 -#define __TBB_r_out "=r" -#else -#define __TBB_r_out "=q" -#endif - -inline static uint8_t __TBB_machine_try_lock_elided( volatile uint8_t* lk ) -{ - uint8_t value = 1; - __asm__ volatile (".byte " __TBB_STRINGIZE(__TBB_OP_XACQUIRE)"; lock; xchgb %0, %1;" - : __TBB_r_out(value), "=m"(*lk) : "0"(value), "m"(*lk) : "memory" ); - return uint8_t(value^1); -} - -inline static void __TBB_machine_try_lock_elided_cancel() -{ - // 'pause' instruction aborts HLE/RTM transactions - __asm__ volatile ("pause\n" : : : "memory" ); -} - -inline static void __TBB_machine_unlock_elided( volatile uint8_t* lk ) -{ - __asm__ volatile (".byte " __TBB_STRINGIZE(__TBB_OP_XRELEASE)"; movb $0, %0" - : "=m"(*lk) : "m"(*lk) : "memory" ); -} - -#if __TBB_TSX_INTRINSICS_PRESENT -#include - -#define __TBB_machine_is_in_transaction _xtest - -#else - -/*! - * Check if the instruction is executed in a transaction or not - */ -inline static bool __TBB_machine_is_in_transaction() -{ - int8_t res = 0; -#if __TBB_x86_32 - __asm__ volatile (".byte 0x0F; .byte 0x01; .byte 0xD6;\n" - "setz %0" : "=q"(res) : : "memory" ); -#else - __asm__ volatile (".byte 0x0F; .byte 0x01; .byte 0xD6;\n" - "setz %0" : "=r"(res) : : "memory" ); -#endif - return res==0; -} -#endif /* __TBB_TSX_INTRINSICS_PRESENT */ - -#if TBB_PREVIEW_SPECULATIVE_SPIN_RW_MUTEX - -#if __TBB_TSX_INTRINSICS_PRESENT - -#define __TBB_machine_begin_transaction _xbegin -#define __TBB_machine_end_transaction _xend -#define __TBB_machine_transaction_conflict_abort() _xabort(0xff) - -#else - -/*! - * Enter speculative execution mode. - * @return -1 on success - * abort cause ( or 0 ) on abort - */ -inline static uint32_t __TBB_machine_begin_transaction() -{ - uint32_t res = ~uint32_t(0); // success value - __asm__ volatile ("1: .byte 0xC7; .byte 0xF8;\n" // XBEGIN - " .long 2f-1b-6\n" // 2f-1b == difference in addresses of start - // of XBEGIN and the MOVL - // 2f - 1b - 6 == that difference minus the size of the - // XBEGIN instruction. This is the abort offset to - // 2: below. - " jmp 3f\n" // success (leave -1 in res) - "2: movl %%eax,%0\n" // store failure code in res - "3:" - :"=r"(res):"0"(res):"memory","%eax"); - return res; -} - -/*! - * Attempt to commit/end transaction - */ -inline static void __TBB_machine_end_transaction() -{ - __asm__ volatile (".byte 0x0F; .byte 0x01; .byte 0xD5" :::"memory"); // XEND -} - -/* - * aborts with code 0xFF (lock already held) - */ -inline static void __TBB_machine_transaction_conflict_abort() -{ - __asm__ volatile (".byte 0xC6; .byte 0xF8; .byte 0xFF" :::"memory"); -} - -#endif /* __TBB_TSX_INTRINSICS_PRESENT */ -#endif // TBB_PREVIEW_SPECULATIVE_SPIN_RW_MUTEX diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/ibm_aix51.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/ibm_aix51.h deleted file mode 100644 index 6d79511e7..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/ibm_aix51.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -// TODO: revise by comparing with mac_ppc.h - -#if !defined(__TBB_machine_H) || defined(__TBB_machine_ibm_aix51_H) -#error Do not #include this internal file directly; use public TBB headers instead. -#endif - -#define __TBB_machine_ibm_aix51_H - -#define __TBB_WORDSIZE 8 -#define __TBB_ENDIANNESS __TBB_ENDIAN_BIG // assumption based on operating system - -#include -#include -#include - -extern "C" { -int32_t __TBB_machine_cas_32 (volatile void* ptr, int32_t value, int32_t comparand); -int64_t __TBB_machine_cas_64 (volatile void* ptr, int64_t value, int64_t comparand); -void __TBB_machine_flush (); -void __TBB_machine_lwsync (); -void __TBB_machine_isync (); -} - -// Mapping of old entry point names retained for the sake of backward binary compatibility -#define __TBB_machine_cmpswp4 __TBB_machine_cas_32 -#define __TBB_machine_cmpswp8 __TBB_machine_cas_64 - -#define __TBB_Yield() sched_yield() - -#define __TBB_USE_GENERIC_PART_WORD_CAS 1 -#define __TBB_USE_GENERIC_FETCH_ADD 1 -#define __TBB_USE_GENERIC_FETCH_STORE 1 -#define __TBB_USE_GENERIC_HALF_FENCED_LOAD_STORE 1 -#define __TBB_USE_GENERIC_RELAXED_LOAD_STORE 1 -#define __TBB_USE_GENERIC_SEQUENTIAL_CONSISTENCY_LOAD_STORE 1 - -#if __GNUC__ - #define __TBB_control_consistency_helper() __asm__ __volatile__( "isync": : :"memory") - #define __TBB_acquire_consistency_helper() __asm__ __volatile__("lwsync": : :"memory") - #define __TBB_release_consistency_helper() __asm__ __volatile__("lwsync": : :"memory") - #define __TBB_full_memory_fence() __asm__ __volatile__( "sync": : :"memory") -#else - // IBM C++ Compiler does not support inline assembly - // TODO: Since XL 9.0 or earlier GCC syntax is supported. Replace with more - // lightweight implementation (like in mac_ppc.h) - #define __TBB_control_consistency_helper() __TBB_machine_isync () - #define __TBB_acquire_consistency_helper() __TBB_machine_lwsync () - #define __TBB_release_consistency_helper() __TBB_machine_lwsync () - #define __TBB_full_memory_fence() __TBB_machine_flush () -#endif diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/icc_generic.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/icc_generic.h deleted file mode 100644 index c06b6f90e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/icc_generic.h +++ /dev/null @@ -1,259 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#if !defined(__TBB_machine_H) || defined(__TBB_machine_icc_generic_H) -#error Do not #include this internal file directly; use public TBB headers instead. -#endif - -#if ! __TBB_ICC_BUILTIN_ATOMICS_PRESENT - #error "Intel C++ Compiler of at least 12.0 version is needed to use ICC intrinsics port" -#endif - -#define __TBB_machine_icc_generic_H - -//ICC mimics the "native" target compiler -#if _MSC_VER - #include "msvc_ia32_common.h" -#else - #include "gcc_ia32_common.h" -#endif - -//TODO: Make __TBB_WORDSIZE macro optional for ICC intrinsics port. -//As compiler intrinsics are used for all the operations it is possible to do. - -#if __TBB_x86_32 - #define __TBB_WORDSIZE 4 -#else - #define __TBB_WORDSIZE 8 -#endif -#define __TBB_ENDIANNESS __TBB_ENDIAN_LITTLE - -//__TBB_compiler_fence() defined just in case, as it seems not to be used on its own anywhere else -#if _MSC_VER - //TODO: any way to use same intrinsics on windows and linux? - #pragma intrinsic(_ReadWriteBarrier) - #pragma intrinsic(_mm_mfence) - #define __TBB_compiler_fence() _ReadWriteBarrier() - #define __TBB_full_memory_fence() _mm_mfence() -#else - #define __TBB_compiler_fence() __asm__ __volatile__("": : :"memory") - #define __TBB_full_memory_fence() __asm__ __volatile__("mfence": : :"memory") -#endif - -#define __TBB_control_consistency_helper() __TBB_compiler_fence() - -namespace tbb { namespace internal { -//TODO: is there any way to reuse definition of memory_order enum from ICC instead of copy paste. -//however it seems unlikely that ICC will silently change exact enum values, as they are defined -//in the ISO exactly like this. -//TODO: add test that exact values of the enum are same as in the ISO C++11 -typedef enum memory_order { - memory_order_relaxed, memory_order_consume, memory_order_acquire, - memory_order_release, memory_order_acq_rel, memory_order_seq_cst -} memory_order; - -namespace icc_intrinsics_port { - template - T convert_argument(T value){ - return value; - } - //The overload below is needed to have explicit conversion of pointer to void* in argument list. - //compiler bug? - //TODO: add according broken macro and recheck with ICC 13.0 if the overload is still needed - template - void* convert_argument(T* value){ - return (void*)value; - } -} -//TODO: code below is a bit repetitive, consider simplifying it -template -struct machine_load_store { - static T load_with_acquire ( const volatile T& location ) { - return __atomic_load_explicit(&location, memory_order_acquire); - } - static void store_with_release ( volatile T &location, T value ) { - __atomic_store_explicit(&location, icc_intrinsics_port::convert_argument(value), memory_order_release); - } -}; - -template -struct machine_load_store_relaxed { - static inline T load ( const T& location ) { - return __atomic_load_explicit(&location, memory_order_relaxed); - } - static inline void store ( T& location, T value ) { - __atomic_store_explicit(&location, icc_intrinsics_port::convert_argument(value), memory_order_relaxed); - } -}; - -template -struct machine_load_store_seq_cst { - static T load ( const volatile T& location ) { - return __atomic_load_explicit(&location, memory_order_seq_cst); - } - - static void store ( volatile T &location, T value ) { - __atomic_store_explicit(&location, value, memory_order_seq_cst); - } -}; - -}} // namespace tbb::internal - -namespace tbb{ namespace internal { namespace icc_intrinsics_port{ - typedef enum memory_order_map { - relaxed = memory_order_relaxed, - acquire = memory_order_acquire, - release = memory_order_release, - full_fence= memory_order_seq_cst - } memory_order_map; -}}}// namespace tbb::internal - -#define __TBB_MACHINE_DEFINE_ATOMICS(S,T,M) \ -inline T __TBB_machine_cmpswp##S##M( volatile void *ptr, T value, T comparand ) { \ - __atomic_compare_exchange_strong_explicit( \ - (T*)ptr \ - ,&comparand \ - ,value \ - , tbb::internal::icc_intrinsics_port::M \ - , tbb::internal::icc_intrinsics_port::M); \ - return comparand; \ -} \ - \ -inline T __TBB_machine_fetchstore##S##M(volatile void *ptr, T value) { \ - return __atomic_exchange_explicit((T*)ptr, value, tbb::internal::icc_intrinsics_port::M); \ -} \ - \ -inline T __TBB_machine_fetchadd##S##M(volatile void *ptr, T value) { \ - return __atomic_fetch_add_explicit((T*)ptr, value, tbb::internal::icc_intrinsics_port::M); \ -} \ - -__TBB_MACHINE_DEFINE_ATOMICS(1,tbb::internal::int8_t, full_fence) -__TBB_MACHINE_DEFINE_ATOMICS(1,tbb::internal::int8_t, acquire) -__TBB_MACHINE_DEFINE_ATOMICS(1,tbb::internal::int8_t, release) -__TBB_MACHINE_DEFINE_ATOMICS(1,tbb::internal::int8_t, relaxed) - -__TBB_MACHINE_DEFINE_ATOMICS(2,tbb::internal::int16_t, full_fence) -__TBB_MACHINE_DEFINE_ATOMICS(2,tbb::internal::int16_t, acquire) -__TBB_MACHINE_DEFINE_ATOMICS(2,tbb::internal::int16_t, release) -__TBB_MACHINE_DEFINE_ATOMICS(2,tbb::internal::int16_t, relaxed) - -__TBB_MACHINE_DEFINE_ATOMICS(4,tbb::internal::int32_t, full_fence) -__TBB_MACHINE_DEFINE_ATOMICS(4,tbb::internal::int32_t, acquire) -__TBB_MACHINE_DEFINE_ATOMICS(4,tbb::internal::int32_t, release) -__TBB_MACHINE_DEFINE_ATOMICS(4,tbb::internal::int32_t, relaxed) - -__TBB_MACHINE_DEFINE_ATOMICS(8,tbb::internal::int64_t, full_fence) -__TBB_MACHINE_DEFINE_ATOMICS(8,tbb::internal::int64_t, acquire) -__TBB_MACHINE_DEFINE_ATOMICS(8,tbb::internal::int64_t, release) -__TBB_MACHINE_DEFINE_ATOMICS(8,tbb::internal::int64_t, relaxed) - - -#undef __TBB_MACHINE_DEFINE_ATOMICS - -#define __TBB_USE_FENCED_ATOMICS 1 - -namespace tbb { namespace internal { -#if __TBB_FORCE_64BIT_ALIGNMENT_BROKEN -__TBB_MACHINE_DEFINE_LOAD8_GENERIC_FENCED(full_fence) -__TBB_MACHINE_DEFINE_STORE8_GENERIC_FENCED(full_fence) - -__TBB_MACHINE_DEFINE_LOAD8_GENERIC_FENCED(acquire) -__TBB_MACHINE_DEFINE_STORE8_GENERIC_FENCED(release) - -__TBB_MACHINE_DEFINE_LOAD8_GENERIC_FENCED(relaxed) -__TBB_MACHINE_DEFINE_STORE8_GENERIC_FENCED(relaxed) - -template -struct machine_load_store { - static T load_with_acquire ( const volatile T& location ) { - if( tbb::internal::is_aligned(&location,8)) { - return __atomic_load_explicit(&location, memory_order_acquire); - } else { - return __TBB_machine_generic_load8acquire(&location); - } - } - static void store_with_release ( volatile T &location, T value ) { - if( tbb::internal::is_aligned(&location,8)) { - __atomic_store_explicit(&location, icc_intrinsics_port::convert_argument(value), memory_order_release); - } else { - return __TBB_machine_generic_store8release(&location,value); - } - } -}; - -template -struct machine_load_store_relaxed { - static T load( const volatile T& location ) { - if( tbb::internal::is_aligned(&location,8)) { - return __atomic_load_explicit(&location, memory_order_relaxed); - } else { - return __TBB_machine_generic_load8relaxed(&location); - } - } - static void store( volatile T &location, T value ) { - if( tbb::internal::is_aligned(&location,8)) { - __atomic_store_explicit(&location, icc_intrinsics_port::convert_argument(value), memory_order_relaxed); - } else { - return __TBB_machine_generic_store8relaxed(&location,value); - } - } -}; - -template -struct machine_load_store_seq_cst { - static T load ( const volatile T& location ) { - if( tbb::internal::is_aligned(&location,8)) { - return __atomic_load_explicit(&location, memory_order_seq_cst); - } else { - return __TBB_machine_generic_load8full_fence(&location); - } - - } - - static void store ( volatile T &location, T value ) { - if( tbb::internal::is_aligned(&location,8)) { - __atomic_store_explicit(&location, value, memory_order_seq_cst); - } else { - return __TBB_machine_generic_store8full_fence(&location,value); - } - - } -}; - -#endif -}} // namespace tbb::internal -template -inline void __TBB_machine_OR( T *operand, T addend ) { - __atomic_fetch_or_explicit(operand, addend, tbb::internal::memory_order_seq_cst); -} - -template -inline void __TBB_machine_AND( T *operand, T addend ) { - __atomic_fetch_and_explicit(operand, addend, tbb::internal::memory_order_seq_cst); -} - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/linux_common.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/linux_common.h deleted file mode 100644 index 37013b0b5..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/linux_common.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_machine_H -#error Do not #include this internal file directly; use public TBB headers instead. -#endif - -#include -#define __TBB_Yield() sched_yield() - -#include -/* Futex definitions */ -#include - -#if defined(SYS_futex) - -#define __TBB_USE_FUTEX 1 -#include -#include -// Unfortunately, some versions of Linux do not have a header that defines FUTEX_WAIT and FUTEX_WAKE. - -#ifdef FUTEX_WAIT -#define __TBB_FUTEX_WAIT FUTEX_WAIT -#else -#define __TBB_FUTEX_WAIT 0 -#endif - -#ifdef FUTEX_WAKE -#define __TBB_FUTEX_WAKE FUTEX_WAKE -#else -#define __TBB_FUTEX_WAKE 1 -#endif - -#ifndef __TBB_ASSERT -#error machine specific headers must be included after tbb_stddef.h -#endif - -namespace tbb { - -namespace internal { - -inline int futex_wait( void *futex, int comparand ) { - int r = syscall( SYS_futex,futex,__TBB_FUTEX_WAIT,comparand,NULL,NULL,0 ); -#if TBB_USE_ASSERT - int e = errno; - __TBB_ASSERT( r==0||r==EWOULDBLOCK||(r==-1&&(e==EAGAIN||e==EINTR)), "futex_wait failed." ); -#endif /* TBB_USE_ASSERT */ - return r; -} - -inline int futex_wakeup_one( void *futex ) { - int r = ::syscall( SYS_futex,futex,__TBB_FUTEX_WAKE,1,NULL,NULL,0 ); - __TBB_ASSERT( r==0||r==1, "futex_wakeup_one: more than one thread woken up?" ); - return r; -} - -inline int futex_wakeup_all( void *futex ) { - int r = ::syscall( SYS_futex,futex,__TBB_FUTEX_WAKE,INT_MAX,NULL,NULL,0 ); - __TBB_ASSERT( r>=0, "futex_wakeup_all: error in waking up threads" ); - return r; -} - -} /* namespace internal */ - -} /* namespace tbb */ - -#endif /* SYS_futex */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/linux_ia32.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/linux_ia32.h deleted file mode 100644 index 54c41ecf8..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/linux_ia32.h +++ /dev/null @@ -1,240 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#if !defined(__TBB_machine_H) || defined(__TBB_machine_linux_ia32_H) -#error Do not #include this internal file directly; use public TBB headers instead. -#endif - -#define __TBB_machine_linux_ia32_H - -#include -#include "gcc_ia32_common.h" - -#define __TBB_WORDSIZE 4 -#define __TBB_ENDIANNESS __TBB_ENDIAN_LITTLE - -#define __TBB_compiler_fence() __asm__ __volatile__("": : :"memory") -#define __TBB_control_consistency_helper() __TBB_compiler_fence() -#define __TBB_acquire_consistency_helper() __TBB_compiler_fence() -#define __TBB_release_consistency_helper() __TBB_compiler_fence() -#define __TBB_full_memory_fence() __asm__ __volatile__("mfence": : :"memory") - -#if __TBB_ICC_ASM_VOLATILE_BROKEN -#define __TBB_VOLATILE -#else -#define __TBB_VOLATILE volatile -#endif - -#define __TBB_MACHINE_DEFINE_ATOMICS(S,T,X,R) \ -static inline T __TBB_machine_cmpswp##S (volatile void *ptr, T value, T comparand ) \ -{ \ - T result; \ - \ - __asm__ __volatile__("lock\ncmpxchg" X " %2,%1" \ - : "=a"(result), "=m"(*(__TBB_VOLATILE T*)ptr) \ - : "q"(value), "0"(comparand), "m"(*(__TBB_VOLATILE T*)ptr) \ - : "memory"); \ - return result; \ -} \ - \ -static inline T __TBB_machine_fetchadd##S(volatile void *ptr, T addend) \ -{ \ - T result; \ - __asm__ __volatile__("lock\nxadd" X " %0,%1" \ - : R (result), "=m"(*(__TBB_VOLATILE T*)ptr) \ - : "0"(addend), "m"(*(__TBB_VOLATILE T*)ptr) \ - : "memory"); \ - return result; \ -} \ - \ -static inline T __TBB_machine_fetchstore##S(volatile void *ptr, T value) \ -{ \ - T result; \ - __asm__ __volatile__("lock\nxchg" X " %0,%1" \ - : R (result), "=m"(*(__TBB_VOLATILE T*)ptr) \ - : "0"(value), "m"(*(__TBB_VOLATILE T*)ptr) \ - : "memory"); \ - return result; \ -} \ - -__TBB_MACHINE_DEFINE_ATOMICS(1,int8_t,"","=q") -__TBB_MACHINE_DEFINE_ATOMICS(2,int16_t,"","=r") -__TBB_MACHINE_DEFINE_ATOMICS(4,int32_t,"l","=r") - -#if __INTEL_COMPILER -#pragma warning( push ) -// reference to EBX in a function requiring stack alignment -#pragma warning( disable: 998 ) -#endif - -#if __TBB_GCC_CAS8_BUILTIN_INLINING_BROKEN -#define __TBB_IA32_CAS8_NOINLINE __attribute__ ((noinline)) -#else -#define __TBB_IA32_CAS8_NOINLINE -#endif - -static inline __TBB_IA32_CAS8_NOINLINE int64_t __TBB_machine_cmpswp8 (volatile void *ptr, int64_t value, int64_t comparand ) { -//TODO: remove the extra part of condition once __TBB_GCC_BUILTIN_ATOMICS_PRESENT is lowered to gcc version 4.1.2 -#if (__TBB_GCC_BUILTIN_ATOMICS_PRESENT || (__TBB_GCC_VERSION >= 40102)) && !__TBB_GCC_64BIT_ATOMIC_BUILTINS_BROKEN - return __sync_val_compare_and_swap( reinterpret_cast(ptr), comparand, value ); -#else /* !__TBB_GCC_BUILTIN_ATOMICS_PRESENT */ - //TODO: look like ICC 13.0 has some issues with this code, investigate it more deeply - int64_t result; - union { - int64_t i64; - int32_t i32[2]; - }; - i64 = value; -#if __PIC__ - /* compiling position-independent code */ - // EBX register preserved for compliance with position-independent code rules on IA32 - int32_t tmp; - __asm__ __volatile__ ( - "movl %%ebx,%2\n\t" - "movl %5,%%ebx\n\t" -#if __GNUC__==3 - "lock\n\t cmpxchg8b %1\n\t" -#else - "lock\n\t cmpxchg8b (%3)\n\t" -#endif - "movl %2,%%ebx" - : "=A"(result) - , "=m"(*(__TBB_VOLATILE int64_t *)ptr) - , "=m"(tmp) -#if __GNUC__==3 - : "m"(*(__TBB_VOLATILE int64_t *)ptr) -#else - : "SD"(ptr) -#endif - , "0"(comparand) - , "m"(i32[0]), "c"(i32[1]) - : "memory" -#if __INTEL_COMPILER - ,"ebx" -#endif - ); -#else /* !__PIC__ */ - __asm__ __volatile__ ( - "lock\n\t cmpxchg8b %1\n\t" - : "=A"(result), "=m"(*(__TBB_VOLATILE int64_t *)ptr) - : "m"(*(__TBB_VOLATILE int64_t *)ptr) - , "0"(comparand) - , "b"(i32[0]), "c"(i32[1]) - : "memory" - ); -#endif /* __PIC__ */ - return result; -#endif /* !__TBB_GCC_BUILTIN_ATOMICS_PRESENT */ -} - -#undef __TBB_IA32_CAS8_NOINLINE - -#if __INTEL_COMPILER -#pragma warning( pop ) -#endif // warning 998 is back - -static inline void __TBB_machine_or( volatile void *ptr, uint32_t addend ) { - __asm__ __volatile__("lock\norl %1,%0" : "=m"(*(__TBB_VOLATILE uint32_t *)ptr) : "r"(addend), "m"(*(__TBB_VOLATILE uint32_t *)ptr) : "memory"); -} - -static inline void __TBB_machine_and( volatile void *ptr, uint32_t addend ) { - __asm__ __volatile__("lock\nandl %1,%0" : "=m"(*(__TBB_VOLATILE uint32_t *)ptr) : "r"(addend), "m"(*(__TBB_VOLATILE uint32_t *)ptr) : "memory"); -} - -//TODO: Check if it possible and profitable for IA-32 architecture on (Linux* and Windows*) -//to use of 64-bit load/store via floating point registers together with full fence -//for sequentially consistent load/store, instead of CAS. - -#if __clang__ -#define __TBB_fildq "fildll" -#define __TBB_fistpq "fistpll" -#else -#define __TBB_fildq "fildq" -#define __TBB_fistpq "fistpq" -#endif - -static inline int64_t __TBB_machine_aligned_load8 (const volatile void *ptr) { - __TBB_ASSERT(tbb::internal::is_aligned(ptr,8),"__TBB_machine_aligned_load8 should be used with 8 byte aligned locations only \n"); - int64_t result; - __asm__ __volatile__ ( __TBB_fildq " %1\n\t" - __TBB_fistpq " %0" : "=m"(result) : "m"(*(const __TBB_VOLATILE uint64_t*)ptr) : "memory" ); - return result; -} - -static inline void __TBB_machine_aligned_store8 (volatile void *ptr, int64_t value ) { - __TBB_ASSERT(tbb::internal::is_aligned(ptr,8),"__TBB_machine_aligned_store8 should be used with 8 byte aligned locations only \n"); - // Aligned store - __asm__ __volatile__ ( __TBB_fildq " %1\n\t" - __TBB_fistpq " %0" : "=m"(*(__TBB_VOLATILE int64_t*)ptr) : "m"(value) : "memory" ); -} - -static inline int64_t __TBB_machine_load8 (const volatile void *ptr) { -#if __TBB_FORCE_64BIT_ALIGNMENT_BROKEN - if( tbb::internal::is_aligned(ptr,8)) { -#endif - return __TBB_machine_aligned_load8(ptr); -#if __TBB_FORCE_64BIT_ALIGNMENT_BROKEN - } else { - // Unaligned load - return __TBB_machine_cmpswp8(const_cast(ptr),0,0); - } -#endif -} - -//! Handles misaligned 8-byte store -/** Defined in tbb_misc.cpp */ -extern "C" void __TBB_machine_store8_slow( volatile void *ptr, int64_t value ); -extern "C" void __TBB_machine_store8_slow_perf_warning( volatile void *ptr ); - -static inline void __TBB_machine_store8(volatile void *ptr, int64_t value) { -#if __TBB_FORCE_64BIT_ALIGNMENT_BROKEN - if( tbb::internal::is_aligned(ptr,8)) { -#endif - __TBB_machine_aligned_store8(ptr,value); -#if __TBB_FORCE_64BIT_ALIGNMENT_BROKEN - } else { - // Unaligned store -#if TBB_USE_PERFORMANCE_WARNINGS - __TBB_machine_store8_slow_perf_warning(ptr); -#endif /* TBB_USE_PERFORMANCE_WARNINGS */ - __TBB_machine_store8_slow(ptr,value); - } -#endif -} - -// Machine specific atomic operations -#define __TBB_AtomicOR(P,V) __TBB_machine_or(P,V) -#define __TBB_AtomicAND(P,V) __TBB_machine_and(P,V) - -#define __TBB_USE_GENERIC_DWORD_FETCH_ADD 1 -#define __TBB_USE_GENERIC_DWORD_FETCH_STORE 1 -#define __TBB_USE_FETCHSTORE_AS_FULL_FENCED_STORE 1 -#define __TBB_USE_GENERIC_HALF_FENCED_LOAD_STORE 1 -#define __TBB_USE_GENERIC_RELAXED_LOAD_STORE 1 -#define __TBB_USE_GENERIC_SEQUENTIAL_CONSISTENCY_LOAD_STORE 1 - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/linux_ia64.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/linux_ia64.h deleted file mode 100644 index 6f69793ca..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/linux_ia64.h +++ /dev/null @@ -1,189 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#if !defined(__TBB_machine_H) || defined(__TBB_machine_linux_ia64_H) -#error Do not #include this internal file directly; use public TBB headers instead. -#endif - -#define __TBB_machine_linux_ia64_H - -#include -#include - -#define __TBB_WORDSIZE 8 -#define __TBB_ENDIANNESS __TBB_ENDIAN_LITTLE - -#if __INTEL_COMPILER - #define __TBB_compiler_fence() - #define __TBB_control_consistency_helper() __TBB_compiler_fence() - #define __TBB_acquire_consistency_helper() - #define __TBB_release_consistency_helper() - #define __TBB_full_memory_fence() __mf() -#else - #define __TBB_compiler_fence() __asm__ __volatile__("": : :"memory") - #define __TBB_control_consistency_helper() __TBB_compiler_fence() - // Even though GCC imbues volatile loads with acquire semantics, it sometimes moves - // loads over the acquire fence. The following helpers stop such incorrect code motion. - #define __TBB_acquire_consistency_helper() __TBB_compiler_fence() - #define __TBB_release_consistency_helper() __TBB_compiler_fence() - #define __TBB_full_memory_fence() __asm__ __volatile__("mf": : :"memory") -#endif /* !__INTEL_COMPILER */ - -// Most of the functions will be in a .s file -// TODO: revise dynamic_link, memory pools and etc. if the library dependency is removed. - -extern "C" { - int8_t __TBB_machine_fetchadd1__TBB_full_fence (volatile void *ptr, int8_t addend); - int8_t __TBB_machine_fetchadd1acquire(volatile void *ptr, int8_t addend); - int8_t __TBB_machine_fetchadd1release(volatile void *ptr, int8_t addend); - - int16_t __TBB_machine_fetchadd2__TBB_full_fence (volatile void *ptr, int16_t addend); - int16_t __TBB_machine_fetchadd2acquire(volatile void *ptr, int16_t addend); - int16_t __TBB_machine_fetchadd2release(volatile void *ptr, int16_t addend); - - int32_t __TBB_machine_fetchadd4__TBB_full_fence (volatile void *ptr, int32_t value); - int32_t __TBB_machine_fetchadd4acquire(volatile void *ptr, int32_t addend); - int32_t __TBB_machine_fetchadd4release(volatile void *ptr, int32_t addend); - - int64_t __TBB_machine_fetchadd8__TBB_full_fence (volatile void *ptr, int64_t value); - int64_t __TBB_machine_fetchadd8acquire(volatile void *ptr, int64_t addend); - int64_t __TBB_machine_fetchadd8release(volatile void *ptr, int64_t addend); - - int8_t __TBB_machine_fetchstore1__TBB_full_fence (volatile void *ptr, int8_t value); - int8_t __TBB_machine_fetchstore1acquire(volatile void *ptr, int8_t value); - int8_t __TBB_machine_fetchstore1release(volatile void *ptr, int8_t value); - - int16_t __TBB_machine_fetchstore2__TBB_full_fence (volatile void *ptr, int16_t value); - int16_t __TBB_machine_fetchstore2acquire(volatile void *ptr, int16_t value); - int16_t __TBB_machine_fetchstore2release(volatile void *ptr, int16_t value); - - int32_t __TBB_machine_fetchstore4__TBB_full_fence (volatile void *ptr, int32_t value); - int32_t __TBB_machine_fetchstore4acquire(volatile void *ptr, int32_t value); - int32_t __TBB_machine_fetchstore4release(volatile void *ptr, int32_t value); - - int64_t __TBB_machine_fetchstore8__TBB_full_fence (volatile void *ptr, int64_t value); - int64_t __TBB_machine_fetchstore8acquire(volatile void *ptr, int64_t value); - int64_t __TBB_machine_fetchstore8release(volatile void *ptr, int64_t value); - - int8_t __TBB_machine_cmpswp1__TBB_full_fence (volatile void *ptr, int8_t value, int8_t comparand); - int8_t __TBB_machine_cmpswp1acquire(volatile void *ptr, int8_t value, int8_t comparand); - int8_t __TBB_machine_cmpswp1release(volatile void *ptr, int8_t value, int8_t comparand); - - int16_t __TBB_machine_cmpswp2__TBB_full_fence (volatile void *ptr, int16_t value, int16_t comparand); - int16_t __TBB_machine_cmpswp2acquire(volatile void *ptr, int16_t value, int16_t comparand); - int16_t __TBB_machine_cmpswp2release(volatile void *ptr, int16_t value, int16_t comparand); - - int32_t __TBB_machine_cmpswp4__TBB_full_fence (volatile void *ptr, int32_t value, int32_t comparand); - int32_t __TBB_machine_cmpswp4acquire(volatile void *ptr, int32_t value, int32_t comparand); - int32_t __TBB_machine_cmpswp4release(volatile void *ptr, int32_t value, int32_t comparand); - - int64_t __TBB_machine_cmpswp8__TBB_full_fence (volatile void *ptr, int64_t value, int64_t comparand); - int64_t __TBB_machine_cmpswp8acquire(volatile void *ptr, int64_t value, int64_t comparand); - int64_t __TBB_machine_cmpswp8release(volatile void *ptr, int64_t value, int64_t comparand); - - int64_t __TBB_machine_lg(uint64_t value); - void __TBB_machine_pause(int32_t delay); - bool __TBB_machine_trylockbyte( volatile unsigned char &ptr ); - int64_t __TBB_machine_lockbyte( volatile unsigned char &ptr ); - - //! Retrieves the current RSE backing store pointer. IA64 specific. - void* __TBB_get_bsp(); - - int32_t __TBB_machine_load1_relaxed(const void *ptr); - int32_t __TBB_machine_load2_relaxed(const void *ptr); - int32_t __TBB_machine_load4_relaxed(const void *ptr); - int64_t __TBB_machine_load8_relaxed(const void *ptr); - - void __TBB_machine_store1_relaxed(void *ptr, int32_t value); - void __TBB_machine_store2_relaxed(void *ptr, int32_t value); - void __TBB_machine_store4_relaxed(void *ptr, int32_t value); - void __TBB_machine_store8_relaxed(void *ptr, int64_t value); -} // extern "C" - -// Mapping old entry points to the names corresponding to the new full_fence identifier. -#define __TBB_machine_fetchadd1full_fence __TBB_machine_fetchadd1__TBB_full_fence -#define __TBB_machine_fetchadd2full_fence __TBB_machine_fetchadd2__TBB_full_fence -#define __TBB_machine_fetchadd4full_fence __TBB_machine_fetchadd4__TBB_full_fence -#define __TBB_machine_fetchadd8full_fence __TBB_machine_fetchadd8__TBB_full_fence -#define __TBB_machine_fetchstore1full_fence __TBB_machine_fetchstore1__TBB_full_fence -#define __TBB_machine_fetchstore2full_fence __TBB_machine_fetchstore2__TBB_full_fence -#define __TBB_machine_fetchstore4full_fence __TBB_machine_fetchstore4__TBB_full_fence -#define __TBB_machine_fetchstore8full_fence __TBB_machine_fetchstore8__TBB_full_fence -#define __TBB_machine_cmpswp1full_fence __TBB_machine_cmpswp1__TBB_full_fence -#define __TBB_machine_cmpswp2full_fence __TBB_machine_cmpswp2__TBB_full_fence -#define __TBB_machine_cmpswp4full_fence __TBB_machine_cmpswp4__TBB_full_fence -#define __TBB_machine_cmpswp8full_fence __TBB_machine_cmpswp8__TBB_full_fence - -// Mapping relaxed operations to the entry points implementing them. -/** On IA64 RMW operations implicitly have acquire semantics. Thus one cannot - actually have completely relaxed RMW operation here. **/ -#define __TBB_machine_fetchadd1relaxed __TBB_machine_fetchadd1acquire -#define __TBB_machine_fetchadd2relaxed __TBB_machine_fetchadd2acquire -#define __TBB_machine_fetchadd4relaxed __TBB_machine_fetchadd4acquire -#define __TBB_machine_fetchadd8relaxed __TBB_machine_fetchadd8acquire -#define __TBB_machine_fetchstore1relaxed __TBB_machine_fetchstore1acquire -#define __TBB_machine_fetchstore2relaxed __TBB_machine_fetchstore2acquire -#define __TBB_machine_fetchstore4relaxed __TBB_machine_fetchstore4acquire -#define __TBB_machine_fetchstore8relaxed __TBB_machine_fetchstore8acquire -#define __TBB_machine_cmpswp1relaxed __TBB_machine_cmpswp1acquire -#define __TBB_machine_cmpswp2relaxed __TBB_machine_cmpswp2acquire -#define __TBB_machine_cmpswp4relaxed __TBB_machine_cmpswp4acquire -#define __TBB_machine_cmpswp8relaxed __TBB_machine_cmpswp8acquire - -#define __TBB_MACHINE_DEFINE_ATOMICS(S,V) \ - template \ - struct machine_load_store_relaxed { \ - static inline T load ( const T& location ) { \ - return (T)__TBB_machine_load##S##_relaxed(&location); \ - } \ - static inline void store ( T& location, T value ) { \ - __TBB_machine_store##S##_relaxed(&location, (V)value); \ - } \ - } - -namespace tbb { -namespace internal { - __TBB_MACHINE_DEFINE_ATOMICS(1,int8_t); - __TBB_MACHINE_DEFINE_ATOMICS(2,int16_t); - __TBB_MACHINE_DEFINE_ATOMICS(4,int32_t); - __TBB_MACHINE_DEFINE_ATOMICS(8,int64_t); -}} // namespaces internal, tbb - -#undef __TBB_MACHINE_DEFINE_ATOMICS - -#define __TBB_USE_FENCED_ATOMICS 1 -#define __TBB_USE_GENERIC_HALF_FENCED_LOAD_STORE 1 -#define __TBB_USE_GENERIC_SEQUENTIAL_CONSISTENCY_LOAD_STORE 1 - -// Definition of Lock functions -#define __TBB_TryLockByte(P) __TBB_machine_trylockbyte(P) -#define __TBB_LockByte(P) __TBB_machine_lockbyte(P) - -// Definition of other utility functions -#define __TBB_Pause(V) __TBB_machine_pause(V) -#define __TBB_Log2(V) __TBB_machine_lg(V) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/linux_intel64.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/linux_intel64.h deleted file mode 100644 index 7de9037d3..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/linux_intel64.h +++ /dev/null @@ -1,104 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#if !defined(__TBB_machine_H) || defined(__TBB_machine_linux_intel64_H) -#error Do not #include this internal file directly; use public TBB headers instead. -#endif - -#define __TBB_machine_linux_intel64_H - -#include -#include "gcc_ia32_common.h" - -#define __TBB_WORDSIZE 8 -#define __TBB_ENDIANNESS __TBB_ENDIAN_LITTLE - -#define __TBB_compiler_fence() __asm__ __volatile__("": : :"memory") -#define __TBB_control_consistency_helper() __TBB_compiler_fence() -#define __TBB_acquire_consistency_helper() __TBB_compiler_fence() -#define __TBB_release_consistency_helper() __TBB_compiler_fence() - -#ifndef __TBB_full_memory_fence -#define __TBB_full_memory_fence() __asm__ __volatile__("mfence": : :"memory") -#endif - -#define __TBB_MACHINE_DEFINE_ATOMICS(S,T,X) \ -static inline T __TBB_machine_cmpswp##S (volatile void *ptr, T value, T comparand ) \ -{ \ - T result; \ - \ - __asm__ __volatile__("lock\ncmpxchg" X " %2,%1" \ - : "=a"(result), "=m"(*(volatile T*)ptr) \ - : "q"(value), "0"(comparand), "m"(*(volatile T*)ptr) \ - : "memory"); \ - return result; \ -} \ - \ -static inline T __TBB_machine_fetchadd##S(volatile void *ptr, T addend) \ -{ \ - T result; \ - __asm__ __volatile__("lock\nxadd" X " %0,%1" \ - : "=r"(result),"=m"(*(volatile T*)ptr) \ - : "0"(addend), "m"(*(volatile T*)ptr) \ - : "memory"); \ - return result; \ -} \ - \ -static inline T __TBB_machine_fetchstore##S(volatile void *ptr, T value) \ -{ \ - T result; \ - __asm__ __volatile__("lock\nxchg" X " %0,%1" \ - : "=r"(result),"=m"(*(volatile T*)ptr) \ - : "0"(value), "m"(*(volatile T*)ptr) \ - : "memory"); \ - return result; \ -} \ - -__TBB_MACHINE_DEFINE_ATOMICS(1,int8_t,"") -__TBB_MACHINE_DEFINE_ATOMICS(2,int16_t,"") -__TBB_MACHINE_DEFINE_ATOMICS(4,int32_t,"") -__TBB_MACHINE_DEFINE_ATOMICS(8,int64_t,"q") - -#undef __TBB_MACHINE_DEFINE_ATOMICS - -static inline void __TBB_machine_or( volatile void *ptr, uint64_t value ) { - __asm__ __volatile__("lock\norq %1,%0" : "=m"(*(volatile uint64_t*)ptr) : "r"(value), "m"(*(volatile uint64_t*)ptr) : "memory"); -} - -static inline void __TBB_machine_and( volatile void *ptr, uint64_t value ) { - __asm__ __volatile__("lock\nandq %1,%0" : "=m"(*(volatile uint64_t*)ptr) : "r"(value), "m"(*(volatile uint64_t*)ptr) : "memory"); -} - -#define __TBB_AtomicOR(P,V) __TBB_machine_or(P,V) -#define __TBB_AtomicAND(P,V) __TBB_machine_and(P,V) - -#define __TBB_USE_FETCHSTORE_AS_FULL_FENCED_STORE 1 -#define __TBB_USE_GENERIC_HALF_FENCED_LOAD_STORE 1 -#define __TBB_USE_GENERIC_RELAXED_LOAD_STORE 1 -#define __TBB_USE_GENERIC_SEQUENTIAL_CONSISTENCY_LOAD_STORE 1 - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/mac_ppc.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/mac_ppc.h deleted file mode 100644 index 3d37552a9..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/mac_ppc.h +++ /dev/null @@ -1,321 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#if !defined(__TBB_machine_H) || defined(__TBB_machine_gcc_power_H) -#error Do not #include this internal file directly; use public TBB headers instead. -#endif - -#define __TBB_machine_gcc_power_H - -#include -#include - -// TODO: rename to gcc_power.h? -// This file is for Power Architecture with compilers supporting GNU inline-assembler syntax (currently GNU g++ and IBM XL). -// Note that XL V9.0 (sometimes?) has trouble dealing with empty input and/or clobber lists, so they should be avoided. - -#if __powerpc64__ || __ppc64__ - // IBM XL documents __powerpc64__ (and __PPC64__). - // Apple documents __ppc64__ (with __ppc__ only on 32-bit). - #define __TBB_WORDSIZE 8 -#else - #define __TBB_WORDSIZE 4 -#endif - -// Traditionally Power Architecture is big-endian. -// Little-endian could be just an address manipulation (compatibility with TBB not verified), -// or normal little-endian (on more recent systems). Embedded PowerPC systems may support -// page-specific endianness, but then one endianness must be hidden from TBB so that it still sees only one. -#if __BIG_ENDIAN__ || (defined(__BYTE_ORDER__) && __BYTE_ORDER__==__ORDER_BIG_ENDIAN__) - #define __TBB_ENDIANNESS __TBB_ENDIAN_BIG -#elif __LITTLE_ENDIAN__ || (defined(__BYTE_ORDER__) && __BYTE_ORDER__==__ORDER_LITTLE_ENDIAN__) - #define __TBB_ENDIANNESS __TBB_ENDIAN_LITTLE -#elif defined(__BYTE_ORDER__) - #define __TBB_ENDIANNESS __TBB_ENDIAN_UNSUPPORTED -#else - #define __TBB_ENDIANNESS __TBB_ENDIAN_DETECT -#endif - -// On Power Architecture, (lock-free) 64-bit atomics require 64-bit hardware: -#if __TBB_WORDSIZE==8 - // Do not change the following definition, because TBB itself will use 64-bit atomics in 64-bit builds. - #define __TBB_64BIT_ATOMICS 1 -#elif __bgp__ - // Do not change the following definition, because this is known 32-bit hardware. - #define __TBB_64BIT_ATOMICS 0 -#else - // To enable 64-bit atomics in 32-bit builds, set the value below to 1 instead of 0. - // You must make certain that the program will only use them on actual 64-bit hardware - // (which typically means that the entire program is only executed on such hardware), - // because their implementation involves machine instructions that are illegal elsewhere. - // The setting can be chosen independently per compilation unit, - // which also means that TBB itself does not need to be rebuilt. - // Alternatively (but only for the current architecture and TBB version), - // override the default as a predefined macro when invoking the compiler. - #ifndef __TBB_64BIT_ATOMICS - #define __TBB_64BIT_ATOMICS 0 - #endif -#endif - -inline int32_t __TBB_machine_cmpswp4 (volatile void *ptr, int32_t value, int32_t comparand ) -{ - int32_t result; - - __asm__ __volatile__("sync\n" - "0:\n\t" - "lwarx %[res],0,%[ptr]\n\t" /* load w/ reservation */ - "cmpw %[res],%[cmp]\n\t" /* compare against comparand */ - "bne- 1f\n\t" /* exit if not same */ - "stwcx. %[val],0,%[ptr]\n\t" /* store new value */ - "bne- 0b\n" /* retry if reservation lost */ - "1:\n\t" /* the exit */ - "isync" - : [res]"=&r"(result) - , "+m"(* (int32_t*) ptr) /* redundant with "memory" */ - : [ptr]"r"(ptr) - , [val]"r"(value) - , [cmp]"r"(comparand) - : "memory" /* compiler full fence */ - , "cr0" /* clobbered by cmp and/or stwcx. */ - ); - return result; -} - -#if __TBB_WORDSIZE==8 - -inline int64_t __TBB_machine_cmpswp8 (volatile void *ptr, int64_t value, int64_t comparand ) -{ - int64_t result; - __asm__ __volatile__("sync\n" - "0:\n\t" - "ldarx %[res],0,%[ptr]\n\t" /* load w/ reservation */ - "cmpd %[res],%[cmp]\n\t" /* compare against comparand */ - "bne- 1f\n\t" /* exit if not same */ - "stdcx. %[val],0,%[ptr]\n\t" /* store new value */ - "bne- 0b\n" /* retry if reservation lost */ - "1:\n\t" /* the exit */ - "isync" - : [res]"=&r"(result) - , "+m"(* (int64_t*) ptr) /* redundant with "memory" */ - : [ptr]"r"(ptr) - , [val]"r"(value) - , [cmp]"r"(comparand) - : "memory" /* compiler full fence */ - , "cr0" /* clobbered by cmp and/or stdcx. */ - ); - return result; -} - -#elif __TBB_64BIT_ATOMICS /* && __TBB_WORDSIZE==4 */ - -inline int64_t __TBB_machine_cmpswp8 (volatile void *ptr, int64_t value, int64_t comparand ) -{ - int64_t result; - int64_t value_register, comparand_register, result_register; // dummy variables to allocate registers - __asm__ __volatile__("sync\n\t" - "ld %[val],%[valm]\n\t" - "ld %[cmp],%[cmpm]\n" - "0:\n\t" - "ldarx %[res],0,%[ptr]\n\t" /* load w/ reservation */ - "cmpd %[res],%[cmp]\n\t" /* compare against comparand */ - "bne- 1f\n\t" /* exit if not same */ - "stdcx. %[val],0,%[ptr]\n\t" /* store new value */ - "bne- 0b\n" /* retry if reservation lost */ - "1:\n\t" /* the exit */ - "std %[res],%[resm]\n\t" - "isync" - : [resm]"=m"(result) - , [res] "=&r"( result_register) - , [val] "=&r"( value_register) - , [cmp] "=&r"(comparand_register) - , "+m"(* (int64_t*) ptr) /* redundant with "memory" */ - : [ptr] "r"(ptr) - , [valm]"m"(value) - , [cmpm]"m"(comparand) - : "memory" /* compiler full fence */ - , "cr0" /* clobbered by cmpd and/or stdcx. */ - ); - return result; -} - -#endif /* __TBB_WORDSIZE==4 && __TBB_64BIT_ATOMICS */ - -#define __TBB_MACHINE_DEFINE_LOAD_STORE(S,ldx,stx,cmpx) \ - template \ - struct machine_load_store { \ - static inline T load_with_acquire(const volatile T& location) { \ - T result; \ - __asm__ __volatile__(ldx " %[res],0(%[ptr])\n" \ - "0:\n\t" \ - cmpx " %[res],%[res]\n\t" \ - "bne- 0b\n\t" \ - "isync" \ - : [res]"=r"(result) \ - : [ptr]"b"(&location) /* cannot use register 0 here */ \ - , "m"(location) /* redundant with "memory" */ \ - : "memory" /* compiler acquire fence */ \ - , "cr0" /* clobbered by cmpw/cmpd */); \ - return result; \ - } \ - static inline void store_with_release(volatile T &location, T value) { \ - __asm__ __volatile__("lwsync\n\t" \ - stx " %[val],0(%[ptr])" \ - : "=m"(location) /* redundant with "memory" */ \ - : [ptr]"b"(&location) /* cannot use register 0 here */ \ - , [val]"r"(value) \ - : "memory"/*compiler release fence*/ /*(cr0 not affected)*/); \ - } \ - }; \ - \ - template \ - struct machine_load_store_relaxed { \ - static inline T load (const __TBB_atomic T& location) { \ - T result; \ - __asm__ __volatile__(ldx " %[res],0(%[ptr])" \ - : [res]"=r"(result) \ - : [ptr]"b"(&location) /* cannot use register 0 here */ \ - , "m"(location) \ - ); /*(no compiler fence)*/ /*(cr0 not affected)*/ \ - return result; \ - } \ - static inline void store (__TBB_atomic T &location, T value) { \ - __asm__ __volatile__(stx " %[val],0(%[ptr])" \ - : "=m"(location) \ - : [ptr]"b"(&location) /* cannot use register 0 here */ \ - , [val]"r"(value) \ - ); /*(no compiler fence)*/ /*(cr0 not affected)*/ \ - } \ - }; - -namespace tbb { -namespace internal { - __TBB_MACHINE_DEFINE_LOAD_STORE(1,"lbz","stb","cmpw") - __TBB_MACHINE_DEFINE_LOAD_STORE(2,"lhz","sth","cmpw") - __TBB_MACHINE_DEFINE_LOAD_STORE(4,"lwz","stw","cmpw") - -#if __TBB_WORDSIZE==8 - - __TBB_MACHINE_DEFINE_LOAD_STORE(8,"ld" ,"std","cmpd") - -#elif __TBB_64BIT_ATOMICS /* && __TBB_WORDSIZE==4 */ - - template - struct machine_load_store { - static inline T load_with_acquire(const volatile T& location) { - T result; - T result_register; // dummy variable to allocate a register - __asm__ __volatile__("ld %[res],0(%[ptr])\n\t" - "std %[res],%[resm]\n" - "0:\n\t" - "cmpd %[res],%[res]\n\t" - "bne- 0b\n\t" - "isync" - : [resm]"=m"(result) - , [res]"=&r"(result_register) - : [ptr]"b"(&location) /* cannot use register 0 here */ - , "m"(location) /* redundant with "memory" */ - : "memory" /* compiler acquire fence */ - , "cr0" /* clobbered by cmpd */); - return result; - } - - static inline void store_with_release(volatile T &location, T value) { - T value_register; // dummy variable to allocate a register - __asm__ __volatile__("lwsync\n\t" - "ld %[val],%[valm]\n\t" - "std %[val],0(%[ptr])" - : "=m"(location) /* redundant with "memory" */ - , [val]"=&r"(value_register) - : [ptr]"b"(&location) /* cannot use register 0 here */ - , [valm]"m"(value) - : "memory"/*compiler release fence*/ /*(cr0 not affected)*/); - } - }; - - struct machine_load_store_relaxed { - static inline T load (const volatile T& location) { - T result; - T result_register; // dummy variable to allocate a register - __asm__ __volatile__("ld %[res],0(%[ptr])\n\t" - "std %[res],%[resm]" - : [resm]"=m"(result) - , [res]"=&r"(result_register) - : [ptr]"b"(&location) /* cannot use register 0 here */ - , "m"(location) - ); /*(no compiler fence)*/ /*(cr0 not affected)*/ - return result; - } - - static inline void store (volatile T &location, T value) { - T value_register; // dummy variable to allocate a register - __asm__ __volatile__("ld %[val],%[valm]\n\t" - "std %[val],0(%[ptr])" - : "=m"(location) - , [val]"=&r"(value_register) - : [ptr]"b"(&location) /* cannot use register 0 here */ - , [valm]"m"(value) - ); /*(no compiler fence)*/ /*(cr0 not affected)*/ - } - }; - #define __TBB_machine_load_store_relaxed_8 - -#endif /* __TBB_WORDSIZE==4 && __TBB_64BIT_ATOMICS */ - -}} // namespaces internal, tbb - -#undef __TBB_MACHINE_DEFINE_LOAD_STORE - -#define __TBB_USE_GENERIC_PART_WORD_CAS 1 -#define __TBB_USE_GENERIC_FETCH_ADD 1 -#define __TBB_USE_GENERIC_FETCH_STORE 1 -#define __TBB_USE_GENERIC_SEQUENTIAL_CONSISTENCY_LOAD_STORE 1 - -#define __TBB_control_consistency_helper() __asm__ __volatile__("isync": : :"memory") -#define __TBB_full_memory_fence() __asm__ __volatile__( "sync": : :"memory") - -static inline intptr_t __TBB_machine_lg( uintptr_t x ) { - __TBB_ASSERT(x, "__TBB_Log2(0) undefined"); - // cntlzd/cntlzw starts counting at 2^63/2^31 (ignoring any higher-order bits), and does not affect cr0 -#if __TBB_WORDSIZE==8 - __asm__ __volatile__ ("cntlzd %0,%0" : "+r"(x)); - return 63-static_cast(x); -#else - __asm__ __volatile__ ("cntlzw %0,%0" : "+r"(x)); - return 31-static_cast(x); -#endif -} -#define __TBB_Log2(V) __TBB_machine_lg(V) - -// Assumes implicit alignment for any 32-bit value -typedef uint32_t __TBB_Flag; -#define __TBB_Flag __TBB_Flag - -inline bool __TBB_machine_trylockbyte( __TBB_atomic __TBB_Flag &flag ) { - return __TBB_machine_cmpswp4(&flag,1,0)==0; -} -#define __TBB_TryLockByte(P) __TBB_machine_trylockbyte(P) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/macos_common.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/macos_common.h deleted file mode 100644 index c84c32b81..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/macos_common.h +++ /dev/null @@ -1,141 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#if !defined(__TBB_machine_H) || defined(__TBB_machine_macos_common_H) -#error Do not #include this internal file directly; use public TBB headers instead. -#endif - -#define __TBB_machine_macos_common_H - -#include -#define __TBB_Yield() sched_yield() - -// __TBB_HardwareConcurrency - -#include -#include - -static inline int __TBB_macos_available_cpu() { - int name[2] = {CTL_HW, HW_AVAILCPU}; - int ncpu; - size_t size = sizeof(ncpu); - sysctl( name, 2, &ncpu, &size, NULL, 0 ); - return ncpu; -} - -#define __TBB_HardwareConcurrency() __TBB_macos_available_cpu() - -#ifndef __TBB_full_memory_fence - // TBB has not recognized the architecture (none of the architecture abstraction - // headers was included). - #define __TBB_UnknownArchitecture 1 -#endif - -#if __TBB_UnknownArchitecture -// Implementation of atomic operations based on OS provided primitives -#include - -static inline int64_t __TBB_machine_cmpswp8_OsX(volatile void *ptr, int64_t value, int64_t comparand) -{ - __TBB_ASSERT( tbb::internal::is_aligned(ptr,8), "address not properly aligned for OS X* atomics"); - int64_t* address = (int64_t*)ptr; - while( !OSAtomicCompareAndSwap64Barrier(comparand, value, address) ){ -#if __TBB_WORDSIZE==8 - int64_t snapshot = *address; -#else - int64_t snapshot = OSAtomicAdd64( 0, address ); -#endif - if( snapshot!=comparand ) return snapshot; - } - return comparand; -} - -#define __TBB_machine_cmpswp8 __TBB_machine_cmpswp8_OsX - -#endif /* __TBB_UnknownArchitecture */ - -#if __TBB_UnknownArchitecture - -#ifndef __TBB_WORDSIZE -#define __TBB_WORDSIZE 4 -#endif - -#ifdef __TBB_ENDIANNESS - // Already determined based on hardware architecture. -#elif __BIG_ENDIAN__ - #define __TBB_ENDIANNESS __TBB_ENDIAN_BIG -#elif __LITTLE_ENDIAN__ - #define __TBB_ENDIANNESS __TBB_ENDIAN_LITTLE -#else - #define __TBB_ENDIANNESS __TBB_ENDIAN_UNSUPPORTED -#endif - -/** As this generic implementation has absolutely no information about underlying - hardware, its performance most likely will be sub-optimal because of full memory - fence usages where a more lightweight synchronization means (or none at all) - could suffice. Thus if you use this header to enable TBB on a new platform, - consider forking it and relaxing below helpers as appropriate. **/ -#define __TBB_control_consistency_helper() OSMemoryBarrier() -#define __TBB_acquire_consistency_helper() OSMemoryBarrier() -#define __TBB_release_consistency_helper() OSMemoryBarrier() -#define __TBB_full_memory_fence() OSMemoryBarrier() - -static inline int32_t __TBB_machine_cmpswp4(volatile void *ptr, int32_t value, int32_t comparand) -{ - __TBB_ASSERT( tbb::internal::is_aligned(ptr,4), "address not properly aligned for OS X* atomics"); - int32_t* address = (int32_t*)ptr; - while( !OSAtomicCompareAndSwap32Barrier(comparand, value, address) ){ - int32_t snapshot = *address; - if( snapshot!=comparand ) return snapshot; - } - return comparand; -} - -static inline int32_t __TBB_machine_fetchadd4(volatile void *ptr, int32_t addend) -{ - __TBB_ASSERT( tbb::internal::is_aligned(ptr,4), "address not properly aligned for OS X* atomics"); - return OSAtomicAdd32Barrier(addend, (int32_t*)ptr) - addend; -} - -static inline int64_t __TBB_machine_fetchadd8(volatile void *ptr, int64_t addend) -{ - __TBB_ASSERT( tbb::internal::is_aligned(ptr,8), "address not properly aligned for OS X* atomics"); - return OSAtomicAdd64Barrier(addend, (int64_t*)ptr) - addend; -} - -#define __TBB_USE_GENERIC_PART_WORD_CAS 1 -#define __TBB_USE_GENERIC_PART_WORD_FETCH_ADD 1 -#define __TBB_USE_GENERIC_FETCH_STORE 1 -#define __TBB_USE_GENERIC_HALF_FENCED_LOAD_STORE 1 -#define __TBB_USE_GENERIC_RELAXED_LOAD_STORE 1 -#if __TBB_WORDSIZE == 4 - #define __TBB_USE_GENERIC_DWORD_LOAD_STORE 1 -#endif -#define __TBB_USE_GENERIC_SEQUENTIAL_CONSISTENCY_LOAD_STORE 1 - -#endif /* __TBB_UnknownArchitecture */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/mic_common.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/mic_common.h deleted file mode 100644 index 931290526..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/mic_common.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_mic_common_H -#define __TBB_mic_common_H - -#ifndef __TBB_machine_H -#error Do not #include this internal file directly; use public TBB headers instead. -#endif - -#if ! __TBB_DEFINE_MIC - #error mic_common.h should be included only when building for Intel(R) Many Integrated Core Architecture -#endif - -#ifndef __TBB_PREFETCHING -#define __TBB_PREFETCHING 1 -#endif -#if __TBB_PREFETCHING -#include -#define __TBB_cl_prefetch(p) _mm_prefetch((const char*)p, _MM_HINT_T1) -#define __TBB_cl_evict(p) _mm_clevict(p, _MM_HINT_T1) -#endif - -/** Intel(R) Many Integrated Core Architecture does not support mfence and pause instructions **/ -#define __TBB_full_memory_fence() __asm__ __volatile__("lock; addl $0,(%%rsp)":::"memory") -#define __TBB_Pause(x) _mm_delay_32(16*(x)) -#define __TBB_STEALING_PAUSE 1500/16 -#include -#define __TBB_Yield() sched_yield() - -/** FPU control setting **/ -#define __TBB_CPU_CTL_ENV_PRESENT 0 - -/** Specifics **/ -#define __TBB_STEALING_ABORT_ON_CONTENTION 1 -#define __TBB_YIELD2P 1 -#define __TBB_HOARD_NONLOCAL_TASKS 1 - -#if ! ( __FreeBSD__ || __linux__ ) - #error Intel(R) Many Integrated Core Compiler does not define __FreeBSD__ or __linux__ anymore. Check for the __TBB_XXX_BROKEN defined under __FreeBSD__ or __linux__. -#endif /* ! ( __FreeBSD__ || __linux__ ) */ - -#endif /* __TBB_mic_common_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/msvc_armv7.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/msvc_armv7.h deleted file mode 100644 index ae4c872bf..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/msvc_armv7.h +++ /dev/null @@ -1,176 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#if !defined(__TBB_machine_H) || defined(__TBB_msvc_armv7_H) -#error Do not #include this internal file directly; use public TBB headers instead. -#endif - -#define __TBB_msvc_armv7_H - -#include -#include - -#define __TBB_WORDSIZE 4 - -#define __TBB_ENDIANNESS __TBB_ENDIAN_UNSUPPORTED - -#if defined(TBB_WIN32_USE_CL_BUILTINS) -// We can test this on _M_IX86 -#pragma intrinsic(_ReadWriteBarrier) -#pragma intrinsic(_mm_mfence) -#define __TBB_compiler_fence() _ReadWriteBarrier() -#define __TBB_full_memory_fence() _mm_mfence() -#define __TBB_control_consistency_helper() __TBB_compiler_fence() -#define __TBB_acquire_consistency_helper() __TBB_compiler_fence() -#define __TBB_release_consistency_helper() __TBB_compiler_fence() -#else -//Now __dmb(_ARM_BARRIER_SY) is used for both compiler and memory fences -//This might be changed later after testing -#define __TBB_compiler_fence() __dmb(_ARM_BARRIER_SY) -#define __TBB_full_memory_fence() __dmb(_ARM_BARRIER_SY) -#define __TBB_control_consistency_helper() __TBB_compiler_fence() -#define __TBB_acquire_consistency_helper() __TBB_full_memory_fence() -#define __TBB_release_consistency_helper() __TBB_full_memory_fence() -#endif - -//-------------------------------------------------- -// Compare and swap -//-------------------------------------------------- - -/** - * Atomic CAS for 32 bit values, if *ptr==comparand, then *ptr=value, returns *ptr - * @param ptr pointer to value in memory to be swapped with value if *ptr==comparand - * @param value value to assign *ptr to if *ptr==comparand - * @param comparand value to compare with *ptr - * @return value originally in memory at ptr, regardless of success -*/ - -#define __TBB_MACHINE_DEFINE_ATOMICS_CMPSWP(S,T,F) \ -inline T __TBB_machine_cmpswp##S( volatile void *ptr, T value, T comparand ) { \ - return _InterlockedCompareExchange##F(reinterpret_cast(ptr),value,comparand); \ -} \ - -#define __TBB_MACHINE_DEFINE_ATOMICS_FETCHADD(S,T,F) \ -inline T __TBB_machine_fetchadd##S( volatile void *ptr, T value ) { \ - return _InterlockedExchangeAdd##F(reinterpret_cast(ptr),value); \ -} \ - -__TBB_MACHINE_DEFINE_ATOMICS_CMPSWP(1,char,8) -__TBB_MACHINE_DEFINE_ATOMICS_CMPSWP(2,short,16) -__TBB_MACHINE_DEFINE_ATOMICS_CMPSWP(4,long,) -__TBB_MACHINE_DEFINE_ATOMICS_CMPSWP(8,__int64,64) -__TBB_MACHINE_DEFINE_ATOMICS_FETCHADD(4,long,) -#if defined(TBB_WIN32_USE_CL_BUILTINS) -// No _InterlockedExchangeAdd64 intrinsic on _M_IX86 -#define __TBB_64BIT_ATOMICS 0 -#else -__TBB_MACHINE_DEFINE_ATOMICS_FETCHADD(8,__int64,64) -#endif - -inline void __TBB_machine_pause (int32_t delay ) -{ - while(delay>0) - { - __TBB_compiler_fence(); - delay--; - } -} - -namespace tbb { - namespace internal { - template - struct machine_load_store_relaxed { - static inline T load ( const volatile T& location ) { - const T value = location; - - /* - * An extra memory barrier is required for errata #761319 - * Please see http://infocenter.arm.com/help/topic/com.arm.doc.uan0004a - */ - __TBB_acquire_consistency_helper(); - return value; - } - - static inline void store ( volatile T& location, T value ) { - location = value; - } - }; - }} // namespaces internal, tbb - -// Machine specific atomic operations -#define __TBB_CompareAndSwap4(P,V,C) __TBB_machine_cmpswp4(P,V,C) -#define __TBB_CompareAndSwap8(P,V,C) __TBB_machine_cmpswp8(P,V,C) -#define __TBB_Pause(V) __TBB_machine_pause(V) - -// Use generics for some things -#define __TBB_USE_FETCHSTORE_AS_FULL_FENCED_STORE 1 -#define __TBB_USE_GENERIC_HALF_FENCED_LOAD_STORE 1 -#define __TBB_USE_GENERIC_PART_WORD_FETCH_ADD 1 -#define __TBB_USE_GENERIC_PART_WORD_FETCH_STORE 1 -#define __TBB_USE_GENERIC_FETCH_STORE 1 -#define __TBB_USE_GENERIC_DWORD_LOAD_STORE 1 -#define __TBB_USE_GENERIC_SEQUENTIAL_CONSISTENCY_LOAD_STORE 1 - -#if defined(TBB_WIN32_USE_CL_BUILTINS) -#if !__TBB_WIN8UI_SUPPORT -extern "C" __declspec(dllimport) int __stdcall SwitchToThread( void ); -#define __TBB_Yield() SwitchToThread() -#else -#include -#define __TBB_Yield() std::this_thread::yield() -#endif -#else -#define __TBB_Yield() __yield() -#endif - -// API to retrieve/update FPU control setting -#define __TBB_CPU_CTL_ENV_PRESENT 1 - -typedef unsigned int __TBB_cpu_ctl_env_t; - -inline void __TBB_get_cpu_ctl_env ( __TBB_cpu_ctl_env_t* ctl ) { - *ctl = _control87(0, 0); -} -inline void __TBB_set_cpu_ctl_env ( const __TBB_cpu_ctl_env_t* ctl ) { - _control87( *ctl, ~0U ); -} - -// Machine specific atomic operations -#define __TBB_AtomicOR(P,V) __TBB_machine_OR(P,V) -#define __TBB_AtomicAND(P,V) __TBB_machine_AND(P,V) - -template -inline void __TBB_machine_OR( T1 *operand, T2 addend ) { - _InterlockedOr((long volatile *)operand, (long)addend); -} - -template -inline void __TBB_machine_AND( T1 *operand, T2 addend ) { - _InterlockedAnd((long volatile *)operand, (long)addend); -} - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/msvc_ia32_common.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/msvc_ia32_common.h deleted file mode 100644 index 560bfa743..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/msvc_ia32_common.h +++ /dev/null @@ -1,218 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_machine_msvc_ia32_common_H -#define __TBB_machine_msvc_ia32_common_H - -#include - -//TODO: consider moving this macro to tbb_config.h and used there MSVC asm is used -#if !_M_X64 || __INTEL_COMPILER - #define __TBB_X86_MSVC_INLINE_ASM_AVAILABLE 1 - - #if _M_X64 - #define __TBB_r(reg_name) r##reg_name - #else - #define __TBB_r(reg_name) e##reg_name - #endif -#else - //MSVC in x64 mode does not accept inline assembler - #define __TBB_X86_MSVC_INLINE_ASM_AVAILABLE 0 -#endif - -#define __TBB_NO_X86_MSVC_INLINE_ASM_MSG "The compiler being used is not supported (outdated?)" - -#if (_MSC_VER >= 1300) || (__INTEL_COMPILER) //Use compiler intrinsic when available - #define __TBB_PAUSE_USE_INTRINSIC 1 - #pragma intrinsic(_mm_pause) - namespace tbb { namespace internal { namespace intrinsics { namespace msvc { - static inline void __TBB_machine_pause (uintptr_t delay ) { - for (;delay>0; --delay ) - _mm_pause(); - } - }}}} -#else - #if !__TBB_X86_MSVC_INLINE_ASM_AVAILABLE - #error __TBB_NO_X86_MSVC_INLINE_ASM_MSG - #endif - - namespace tbb { namespace internal { namespace inline_asm { namespace msvc { - static inline void __TBB_machine_pause (uintptr_t delay ) { - _asm - { - mov __TBB_r(ax), delay - __TBB_L1: - pause - add __TBB_r(ax), -1 - jne __TBB_L1 - } - return; - } - }}}} -#endif - -static inline void __TBB_machine_pause (uintptr_t delay ){ - #if __TBB_PAUSE_USE_INTRINSIC - tbb::internal::intrinsics::msvc::__TBB_machine_pause(delay); - #else - tbb::internal::inline_asm::msvc::__TBB_machine_pause(delay); - #endif -} - -//TODO: move this function to windows_api.h or to place where it is used -#if (_MSC_VER<1400) && (!_WIN64) && (__TBB_X86_MSVC_INLINE_ASM_AVAILABLE) - static inline void* __TBB_machine_get_current_teb () { - void* pteb; - __asm mov eax, fs:[0x18] - __asm mov pteb, eax - return pteb; - } -#endif - -#if ( _MSC_VER>=1400 && !defined(__INTEL_COMPILER) ) || (__INTEL_COMPILER>=1200) -// MSVC did not have this intrinsic prior to VC8. -// ICL 11.1 fails to compile a TBB example if __TBB_Log2 uses the intrinsic. - #define __TBB_LOG2_USE_BSR_INTRINSIC 1 - #if _M_X64 - #define __TBB_BSR_INTRINSIC _BitScanReverse64 - #else - #define __TBB_BSR_INTRINSIC _BitScanReverse - #endif - #pragma intrinsic(__TBB_BSR_INTRINSIC) - - namespace tbb { namespace internal { namespace intrinsics { namespace msvc { - inline uintptr_t __TBB_machine_lg( uintptr_t i ){ - unsigned long j; - __TBB_BSR_INTRINSIC( &j, i ); - return j; - } - }}}} -#else - #if !__TBB_X86_MSVC_INLINE_ASM_AVAILABLE - #error __TBB_NO_X86_MSVC_INLINE_ASM_MSG - #endif - - namespace tbb { namespace internal { namespace inline_asm { namespace msvc { - inline uintptr_t __TBB_machine_lg( uintptr_t i ){ - uintptr_t j; - __asm - { - bsr __TBB_r(ax), i - mov j, __TBB_r(ax) - } - return j; - } - }}}} -#endif - -static inline intptr_t __TBB_machine_lg( uintptr_t i ) { -#if __TBB_LOG2_USE_BSR_INTRINSIC - return tbb::internal::intrinsics::msvc::__TBB_machine_lg(i); -#else - return tbb::internal::inline_asm::msvc::__TBB_machine_lg(i); -#endif -} - -// API to retrieve/update FPU control setting -#define __TBB_CPU_CTL_ENV_PRESENT 1 -struct __TBB_cpu_ctl_env_t { - int mxcsr; - short x87cw; -}; -#if __TBB_X86_MSVC_INLINE_ASM_AVAILABLE - inline void __TBB_get_cpu_ctl_env ( __TBB_cpu_ctl_env_t* ctl ) { - __asm { - __asm mov __TBB_r(ax), ctl - __asm stmxcsr [__TBB_r(ax)] - __asm fstcw [__TBB_r(ax)+4] - } - } - inline void __TBB_set_cpu_ctl_env ( const __TBB_cpu_ctl_env_t* ctl ) { - __asm { - __asm mov __TBB_r(ax), ctl - __asm ldmxcsr [__TBB_r(ax)] - __asm fldcw [__TBB_r(ax)+4] - } - } -#else - extern "C" { - void __TBB_EXPORTED_FUNC __TBB_get_cpu_ctl_env ( __TBB_cpu_ctl_env_t* ); - void __TBB_EXPORTED_FUNC __TBB_set_cpu_ctl_env ( const __TBB_cpu_ctl_env_t* ); - } -#endif - - -#if !__TBB_WIN8UI_SUPPORT -extern "C" __declspec(dllimport) int __stdcall SwitchToThread( void ); -#define __TBB_Yield() SwitchToThread() -#else -#include -#define __TBB_Yield() std::this_thread::yield() -#endif - -#define __TBB_Pause(V) __TBB_machine_pause(V) -#define __TBB_Log2(V) __TBB_machine_lg(V) - -#undef __TBB_r - -extern "C" { - __int8 __TBB_EXPORTED_FUNC __TBB_machine_try_lock_elided (volatile void* ptr); - void __TBB_EXPORTED_FUNC __TBB_machine_unlock_elided (volatile void* ptr); - - // 'pause' instruction aborts HLE/RTM transactions -#if __TBB_PAUSE_USE_INTRINSIC - inline static void __TBB_machine_try_lock_elided_cancel() { _mm_pause(); } -#else - inline static void __TBB_machine_try_lock_elided_cancel() { _asm pause; } -#endif -#if __TBB_TSX_INTRINSICS_PRESENT -#define __TBB_machine_is_in_transaction _xtest -#else - __int8 __TBB_EXPORTED_FUNC __TBB_machine_is_in_transaction(); -#endif /* __TBB_TSX_INTRINSICS_PRESENT */ - -#if TBB_PREVIEW_SPECULATIVE_SPIN_RW_MUTEX -#if __TBB_TSX_INTRINSICS_PRESENT - -#define __TBB_machine_begin_transaction _xbegin -#define __TBB_machine_end_transaction _xend - // The value (0xFF) below comes from the - // Intel(R) 64 and IA-32 Architectures Optimization Reference Manual 12.4.5 lock not free -#define __TBB_machine_transaction_conflict_abort() _xabort(0xFF) - -#else - - unsigned __int32 __TBB_EXPORTED_FUNC __TBB_machine_begin_transaction(); - void __TBB_EXPORTED_FUNC __TBB_machine_end_transaction(); - void __TBB_EXPORTED_FUNC __TBB_machine_transaction_conflict_abort(); - -#endif /* __TBB_TSX_INTRINSICS_PRESENT */ -#endif /* TBB_PREVIEW_SPECULATIVE_SPIN_RW_MUTEX */ -} - -#endif /* __TBB_machine_msvc_ia32_common_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/sunos_sparc.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/sunos_sparc.h deleted file mode 100644 index aa9c2b2bf..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/sunos_sparc.h +++ /dev/null @@ -1,211 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - - -#if !defined(__TBB_machine_H) || defined(__TBB_machine_sunos_sparc_H) -#error Do not #include this internal file directly; use public TBB headers instead. -#endif - -#define __TBB_machine_sunos_sparc_H - -#include -#include - -#define __TBB_WORDSIZE 8 -// Big endian is assumed for SPARC. -// While hardware may support page-specific bi-endianness, only big endian pages may be exposed to TBB -#define __TBB_ENDIANNESS __TBB_ENDIAN_BIG - -/** To those working on SPARC hardware. Consider relaxing acquire and release - consistency helpers to no-op (as this port covers TSO mode only). **/ -#define __TBB_compiler_fence() __asm__ __volatile__ ("": : :"memory") -#define __TBB_control_consistency_helper() __TBB_compiler_fence() -#define __TBB_acquire_consistency_helper() __TBB_compiler_fence() -#define __TBB_release_consistency_helper() __TBB_compiler_fence() -#define __TBB_full_memory_fence() __asm__ __volatile__("membar #LoadLoad|#LoadStore|#StoreStore|#StoreLoad": : : "memory") - -//-------------------------------------------------- -// Compare and swap -//-------------------------------------------------- - -/** - * Atomic CAS for 32 bit values, if *ptr==comparand, then *ptr=value, returns *ptr - * @param ptr pointer to value in memory to be swapped with value if *ptr==comparand - * @param value value to assign *ptr to if *ptr==comparand - * @param comparand value to compare with *ptr - ( @return value originally in memory at ptr, regardless of success -*/ -static inline int32_t __TBB_machine_cmpswp4(volatile void *ptr, int32_t value, int32_t comparand ){ - int32_t result; - __asm__ __volatile__( - "cas\t[%5],%4,%1" - : "=m"(*(int32_t *)ptr), "=r"(result) - : "m"(*(int32_t *)ptr), "1"(value), "r"(comparand), "r"(ptr) - : "memory"); - return result; -} - -/** - * Atomic CAS for 64 bit values, if *ptr==comparand, then *ptr=value, returns *ptr - * @param ptr pointer to value in memory to be swapped with value if *ptr==comparand - * @param value value to assign *ptr to if *ptr==comparand - * @param comparand value to compare with *ptr - ( @return value originally in memory at ptr, regardless of success - */ -static inline int64_t __TBB_machine_cmpswp8(volatile void *ptr, int64_t value, int64_t comparand ){ - int64_t result; - __asm__ __volatile__( - "casx\t[%5],%4,%1" - : "=m"(*(int64_t *)ptr), "=r"(result) - : "m"(*(int64_t *)ptr), "1"(value), "r"(comparand), "r"(ptr) - : "memory"); - return result; -} - -//--------------------------------------------------- -// Fetch and add -//--------------------------------------------------- - -/** - * Atomic fetch and add for 32 bit values, in this case implemented by continuously checking success of atomicity - * @param ptr pointer to value to add addend to - * @param addened value to add to *ptr - * @return value at ptr before addened was added - */ -static inline int32_t __TBB_machine_fetchadd4(volatile void *ptr, int32_t addend){ - int32_t result; - __asm__ __volatile__ ( - "0:\t add\t %3, %4, %0\n" // do addition - "\t cas\t [%2], %3, %0\n" // cas to store result in memory - "\t cmp\t %3, %0\n" // check if value from memory is original - "\t bne,a,pn\t %%icc, 0b\n" // if not try again - "\t mov %0, %3\n" // use branch delay slot to move new value in memory to be added - : "=&r"(result), "=m"(*(int32_t *)ptr) - : "r"(ptr), "r"(*(int32_t *)ptr), "r"(addend), "m"(*(int32_t *)ptr) - : "ccr", "memory"); - return result; -} - -/** - * Atomic fetch and add for 64 bit values, in this case implemented by continuously checking success of atomicity - * @param ptr pointer to value to add addend to - * @param addened value to add to *ptr - * @return value at ptr before addened was added - */ -static inline int64_t __TBB_machine_fetchadd8(volatile void *ptr, int64_t addend){ - int64_t result; - __asm__ __volatile__ ( - "0:\t add\t %3, %4, %0\n" // do addition - "\t casx\t [%2], %3, %0\n" // cas to store result in memory - "\t cmp\t %3, %0\n" // check if value from memory is original - "\t bne,a,pn\t %%xcc, 0b\n" // if not try again - "\t mov %0, %3\n" // use branch delay slot to move new value in memory to be added - : "=&r"(result), "=m"(*(int64_t *)ptr) - : "r"(ptr), "r"(*(int64_t *)ptr), "r"(addend), "m"(*(int64_t *)ptr) - : "ccr", "memory"); - return result; -} - -//-------------------------------------------------------- -// Logarithm (base two, integer) -//-------------------------------------------------------- - -static inline int64_t __TBB_machine_lg( uint64_t x ) { - __TBB_ASSERT(x, "__TBB_Log2(0) undefined"); - uint64_t count; - // one hot encode - x |= (x >> 1); - x |= (x >> 2); - x |= (x >> 4); - x |= (x >> 8); - x |= (x >> 16); - x |= (x >> 32); - // count 1's - __asm__ ("popc %1, %0" : "=r"(count) : "r"(x) ); - return count-1; -} - -//-------------------------------------------------------- - -static inline void __TBB_machine_or( volatile void *ptr, uint64_t value ) { - __asm__ __volatile__ ( - "0:\t or\t %2, %3, %%g1\n" // do operation - "\t casx\t [%1], %2, %%g1\n" // cas to store result in memory - "\t cmp\t %2, %%g1\n" // check if value from memory is original - "\t bne,a,pn\t %%xcc, 0b\n" // if not try again - "\t mov %%g1, %2\n" // use branch delay slot to move new value in memory to be added - : "=m"(*(int64_t *)ptr) - : "r"(ptr), "r"(*(int64_t *)ptr), "r"(value), "m"(*(int64_t *)ptr) - : "ccr", "g1", "memory"); -} - -static inline void __TBB_machine_and( volatile void *ptr, uint64_t value ) { - __asm__ __volatile__ ( - "0:\t and\t %2, %3, %%g1\n" // do operation - "\t casx\t [%1], %2, %%g1\n" // cas to store result in memory - "\t cmp\t %2, %%g1\n" // check if value from memory is original - "\t bne,a,pn\t %%xcc, 0b\n" // if not try again - "\t mov %%g1, %2\n" // use branch delay slot to move new value in memory to be added - : "=m"(*(int64_t *)ptr) - : "r"(ptr), "r"(*(int64_t *)ptr), "r"(value), "m"(*(int64_t *)ptr) - : "ccr", "g1", "memory"); -} - - -static inline void __TBB_machine_pause( int32_t delay ) { - // do nothing, inlined, doesn't matter -} - -// put 0xff in memory location, return memory value, -// generic trylockbyte puts 0x01, however this is fine -// because all that matters is that 0 is unlocked -static inline bool __TBB_machine_trylockbyte(unsigned char &flag){ - unsigned char result; - __asm__ __volatile__ ( - "ldstub\t [%2], %0\n" - : "=r"(result), "=m"(flag) - : "r"(&flag), "m"(flag) - : "memory"); - return result == 0; -} - -#define __TBB_USE_GENERIC_PART_WORD_CAS 1 -#define __TBB_USE_GENERIC_PART_WORD_FETCH_ADD 1 -#define __TBB_USE_GENERIC_FETCH_STORE 1 -#define __TBB_USE_GENERIC_HALF_FENCED_LOAD_STORE 1 -#define __TBB_USE_GENERIC_RELAXED_LOAD_STORE 1 -#define __TBB_USE_GENERIC_SEQUENTIAL_CONSISTENCY_LOAD_STORE 1 - -#define __TBB_AtomicOR(P,V) __TBB_machine_or(P,V) -#define __TBB_AtomicAND(P,V) __TBB_machine_and(P,V) - -// Definition of other functions -#define __TBB_Pause(V) __TBB_machine_pause(V) -#define __TBB_Log2(V) __TBB_machine_lg(V) - -#define __TBB_TryLockByte(P) __TBB_machine_trylockbyte(P) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/windows_api.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/windows_api.h deleted file mode 100644 index 570a5099b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/windows_api.h +++ /dev/null @@ -1,87 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_machine_windows_api_H -#define __TBB_machine_windows_api_H - -#if _WIN32 || _WIN64 - -#if _XBOX - -#define NONET -#define NOD3D -#include - -#else // Assume "usual" Windows - -#include - -#endif // _XBOX - -#if _WIN32_WINNT < 0x0600 -// The following Windows API function is declared explicitly; -// otherwise it fails to compile by VS2005. -#if !defined(WINBASEAPI) || (_WIN32_WINNT < 0x0501 && _MSC_VER == 1400) -#define __TBB_WINBASEAPI extern "C" -#else -#define __TBB_WINBASEAPI WINBASEAPI -#endif -__TBB_WINBASEAPI BOOL WINAPI TryEnterCriticalSection( LPCRITICAL_SECTION ); -__TBB_WINBASEAPI BOOL WINAPI InitializeCriticalSectionAndSpinCount( LPCRITICAL_SECTION, DWORD ); -// Overloading WINBASEAPI macro and using local functions missing in Windows XP/2003 -#define InitializeCriticalSectionEx inlineInitializeCriticalSectionEx -#define CreateSemaphoreEx inlineCreateSemaphoreEx -#define CreateEventEx inlineCreateEventEx -inline BOOL WINAPI inlineInitializeCriticalSectionEx( LPCRITICAL_SECTION lpCriticalSection, DWORD dwSpinCount, DWORD ) -{ - return InitializeCriticalSectionAndSpinCount( lpCriticalSection, dwSpinCount ); -} -inline HANDLE WINAPI inlineCreateSemaphoreEx( LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, LONG lInitialCount, LONG lMaximumCount, LPCTSTR lpName, DWORD, DWORD ) -{ - return CreateSemaphore( lpSemaphoreAttributes, lInitialCount, lMaximumCount, lpName ); -} -inline HANDLE WINAPI inlineCreateEventEx( LPSECURITY_ATTRIBUTES lpEventAttributes, LPCTSTR lpName, DWORD dwFlags, DWORD ) -{ - BOOL manual_reset = dwFlags&0x00000001 ? TRUE : FALSE; // CREATE_EVENT_MANUAL_RESET - BOOL initial_set = dwFlags&0x00000002 ? TRUE : FALSE; // CREATE_EVENT_INITIAL_SET - return CreateEvent( lpEventAttributes, manual_reset, initial_set, lpName ); -} -#endif - -#if defined(RTL_SRWLOCK_INIT) -#ifndef __TBB_USE_SRWLOCK -// TODO: turn it on when bug 1952 will be fixed -#define __TBB_USE_SRWLOCK 0 -#endif -#endif - -#else -#error tbb/machine/windows_api.h should only be used for Windows based platforms -#endif // _WIN32 || _WIN64 - -#endif // __TBB_machine_windows_api_H diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/windows_ia32.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/windows_ia32.h deleted file mode 100644 index 11649c8c8..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/windows_ia32.h +++ /dev/null @@ -1,152 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#if !defined(__TBB_machine_H) || defined(__TBB_machine_windows_ia32_H) -#error Do not #include this internal file directly; use public TBB headers instead. -#endif - -#define __TBB_machine_windows_ia32_H - -#include "msvc_ia32_common.h" - -#define __TBB_WORDSIZE 4 -#define __TBB_ENDIANNESS __TBB_ENDIAN_LITTLE - -#if __INTEL_COMPILER && (__INTEL_COMPILER < 1100) - #define __TBB_compiler_fence() __asm { __asm nop } - #define __TBB_full_memory_fence() __asm { __asm mfence } -#elif _MSC_VER >= 1300 || __INTEL_COMPILER - #pragma intrinsic(_ReadWriteBarrier) - #pragma intrinsic(_mm_mfence) - #define __TBB_compiler_fence() _ReadWriteBarrier() - #define __TBB_full_memory_fence() _mm_mfence() -#else - #error Unsupported compiler - need to define __TBB_{control,acquire,release}_consistency_helper to support it -#endif - -#define __TBB_control_consistency_helper() __TBB_compiler_fence() -#define __TBB_acquire_consistency_helper() __TBB_compiler_fence() -#define __TBB_release_consistency_helper() __TBB_compiler_fence() - -#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) - // Workaround for overzealous compiler warnings in /Wp64 mode - #pragma warning (push) - #pragma warning (disable: 4244 4267) -#endif - -extern "C" { - __int64 __TBB_EXPORTED_FUNC __TBB_machine_cmpswp8 (volatile void *ptr, __int64 value, __int64 comparand ); - __int64 __TBB_EXPORTED_FUNC __TBB_machine_fetchadd8 (volatile void *ptr, __int64 addend ); - __int64 __TBB_EXPORTED_FUNC __TBB_machine_fetchstore8 (volatile void *ptr, __int64 value ); - void __TBB_EXPORTED_FUNC __TBB_machine_store8 (volatile void *ptr, __int64 value ); - __int64 __TBB_EXPORTED_FUNC __TBB_machine_load8 (const volatile void *ptr); -} - -//TODO: use _InterlockedXXX intrinsics as they available since VC 2005 -#define __TBB_MACHINE_DEFINE_ATOMICS(S,T,U,A,C) \ -static inline T __TBB_machine_cmpswp##S ( volatile void * ptr, U value, U comparand ) { \ - T result; \ - volatile T *p = (T *)ptr; \ - __asm \ - { \ - __asm mov edx, p \ - __asm mov C , value \ - __asm mov A , comparand \ - __asm lock cmpxchg [edx], C \ - __asm mov result, A \ - } \ - return result; \ -} \ -\ -static inline T __TBB_machine_fetchadd##S ( volatile void * ptr, U addend ) { \ - T result; \ - volatile T *p = (T *)ptr; \ - __asm \ - { \ - __asm mov edx, p \ - __asm mov A, addend \ - __asm lock xadd [edx], A \ - __asm mov result, A \ - } \ - return result; \ -}\ -\ -static inline T __TBB_machine_fetchstore##S ( volatile void * ptr, U value ) { \ - T result; \ - volatile T *p = (T *)ptr; \ - __asm \ - { \ - __asm mov edx, p \ - __asm mov A, value \ - __asm lock xchg [edx], A \ - __asm mov result, A \ - } \ - return result; \ -} - - -__TBB_MACHINE_DEFINE_ATOMICS(1, __int8, __int8, al, cl) -__TBB_MACHINE_DEFINE_ATOMICS(2, __int16, __int16, ax, cx) -__TBB_MACHINE_DEFINE_ATOMICS(4, ptrdiff_t, ptrdiff_t, eax, ecx) - -#undef __TBB_MACHINE_DEFINE_ATOMICS - -static inline void __TBB_machine_OR( volatile void *operand, __int32 addend ) { - __asm - { - mov eax, addend - mov edx, [operand] - lock or [edx], eax - } -} - -static inline void __TBB_machine_AND( volatile void *operand, __int32 addend ) { - __asm - { - mov eax, addend - mov edx, [operand] - lock and [edx], eax - } -} - -#define __TBB_AtomicOR(P,V) __TBB_machine_OR(P,V) -#define __TBB_AtomicAND(P,V) __TBB_machine_AND(P,V) - -//TODO: Check if it possible and profitable for IA-32 architecture on (Linux and Windows) -//to use of 64-bit load/store via floating point registers together with full fence -//for sequentially consistent load/store, instead of CAS. -#define __TBB_USE_FETCHSTORE_AS_FULL_FENCED_STORE 1 -#define __TBB_USE_GENERIC_HALF_FENCED_LOAD_STORE 1 -#define __TBB_USE_GENERIC_RELAXED_LOAD_STORE 1 -#define __TBB_USE_GENERIC_SEQUENTIAL_CONSISTENCY_LOAD_STORE 1 - - -#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) - #pragma warning (pop) -#endif // warnings 4244, 4267 are back - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/windows_intel64.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/windows_intel64.h deleted file mode 100644 index c21e516c2..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/windows_intel64.h +++ /dev/null @@ -1,113 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#if !defined(__TBB_machine_H) || defined(__TBB_machine_windows_intel64_H) -#error Do not #include this internal file directly; use public TBB headers instead. -#endif - -#define __TBB_machine_windows_intel64_H - -#define __TBB_WORDSIZE 8 -#define __TBB_ENDIANNESS __TBB_ENDIAN_LITTLE - -#include -#include "msvc_ia32_common.h" - -//TODO: Use _InterlockedXXX16 intrinsics for 2 byte operations -#if !__INTEL_COMPILER - #pragma intrinsic(_InterlockedOr64) - #pragma intrinsic(_InterlockedAnd64) - #pragma intrinsic(_InterlockedCompareExchange) - #pragma intrinsic(_InterlockedCompareExchange64) - #pragma intrinsic(_InterlockedExchangeAdd) - #pragma intrinsic(_InterlockedExchangeAdd64) - #pragma intrinsic(_InterlockedExchange) - #pragma intrinsic(_InterlockedExchange64) -#endif /* !(__INTEL_COMPILER) */ - -#if __INTEL_COMPILER && (__INTEL_COMPILER < 1100) - #define __TBB_compiler_fence() __asm { __asm nop } - #define __TBB_full_memory_fence() __asm { __asm mfence } -#elif _MSC_VER >= 1300 || __INTEL_COMPILER - #pragma intrinsic(_ReadWriteBarrier) - #pragma intrinsic(_mm_mfence) - #define __TBB_compiler_fence() _ReadWriteBarrier() - #define __TBB_full_memory_fence() _mm_mfence() -#endif - -#define __TBB_control_consistency_helper() __TBB_compiler_fence() -#define __TBB_acquire_consistency_helper() __TBB_compiler_fence() -#define __TBB_release_consistency_helper() __TBB_compiler_fence() - -// ATTENTION: if you ever change argument types in machine-specific primitives, -// please take care of atomic_word<> specializations in tbb/atomic.h -extern "C" { - __int8 __TBB_EXPORTED_FUNC __TBB_machine_cmpswp1 (volatile void *ptr, __int8 value, __int8 comparand ); - __int8 __TBB_EXPORTED_FUNC __TBB_machine_fetchadd1 (volatile void *ptr, __int8 addend ); - __int8 __TBB_EXPORTED_FUNC __TBB_machine_fetchstore1 (volatile void *ptr, __int8 value ); - __int16 __TBB_EXPORTED_FUNC __TBB_machine_cmpswp2 (volatile void *ptr, __int16 value, __int16 comparand ); - __int16 __TBB_EXPORTED_FUNC __TBB_machine_fetchadd2 (volatile void *ptr, __int16 addend ); - __int16 __TBB_EXPORTED_FUNC __TBB_machine_fetchstore2 (volatile void *ptr, __int16 value ); -} - -inline long __TBB_machine_cmpswp4 (volatile void *ptr, __int32 value, __int32 comparand ) { - return _InterlockedCompareExchange( (long*)ptr, value, comparand ); -} -inline long __TBB_machine_fetchadd4 (volatile void *ptr, __int32 addend ) { - return _InterlockedExchangeAdd( (long*)ptr, addend ); -} -inline long __TBB_machine_fetchstore4 (volatile void *ptr, __int32 value ) { - return _InterlockedExchange( (long*)ptr, value ); -} - -inline __int64 __TBB_machine_cmpswp8 (volatile void *ptr, __int64 value, __int64 comparand ) { - return _InterlockedCompareExchange64( (__int64*)ptr, value, comparand ); -} -inline __int64 __TBB_machine_fetchadd8 (volatile void *ptr, __int64 addend ) { - return _InterlockedExchangeAdd64( (__int64*)ptr, addend ); -} -inline __int64 __TBB_machine_fetchstore8 (volatile void *ptr, __int64 value ) { - return _InterlockedExchange64( (__int64*)ptr, value ); -} - -#define __TBB_USE_FETCHSTORE_AS_FULL_FENCED_STORE 1 -#define __TBB_USE_GENERIC_HALF_FENCED_LOAD_STORE 1 -#define __TBB_USE_GENERIC_RELAXED_LOAD_STORE 1 -#define __TBB_USE_GENERIC_SEQUENTIAL_CONSISTENCY_LOAD_STORE 1 - -inline void __TBB_machine_OR( volatile void *operand, intptr_t addend ) { - _InterlockedOr64((__int64*)operand, addend); -} - -inline void __TBB_machine_AND( volatile void *operand, intptr_t addend ) { - _InterlockedAnd64((__int64*)operand, addend); -} - -#define __TBB_AtomicOR(P,V) __TBB_machine_OR(P,V) -#define __TBB_AtomicAND(P,V) __TBB_machine_AND(P,V) - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/xbox360_ppc.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/xbox360_ppc.h deleted file mode 100644 index 2cc446859..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/machine/xbox360_ppc.h +++ /dev/null @@ -1,127 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -// TODO: revise by comparing with mac_ppc.h - -#if !defined(__TBB_machine_H) || defined(__TBB_machine_xbox360_ppc_H) -#error Do not #include this internal file directly; use public TBB headers instead. -#endif - -#define __TBB_machine_xbox360_ppc_H - -#define NONET -#define NOD3D -#include "xtl.h" -#include "ppcintrinsics.h" - -#if _MSC_VER >= 1300 -extern "C" void _MemoryBarrier(); -#pragma intrinsic(_MemoryBarrier) -#define __TBB_control_consistency_helper() __isync() -#define __TBB_acquire_consistency_helper() _MemoryBarrier() -#define __TBB_release_consistency_helper() _MemoryBarrier() -#endif - -#define __TBB_full_memory_fence() __sync() - -#define __TBB_WORDSIZE 4 -#define __TBB_ENDIANNESS __TBB_ENDIAN_BIG - -//todo: define __TBB_USE_FENCED_ATOMICS and define acquire/release primitives to maximize performance - -inline __int32 __TBB_machine_cmpswp4(volatile void *ptr, __int32 value, __int32 comparand ) { - __sync(); - __int32 result = InterlockedCompareExchange((volatile LONG*)ptr, value, comparand); - __isync(); - return result; -} - -inline __int64 __TBB_machine_cmpswp8(volatile void *ptr, __int64 value, __int64 comparand ) -{ - __sync(); - __int64 result = InterlockedCompareExchange64((volatile LONG64*)ptr, value, comparand); - __isync(); - return result; -} - -#define __TBB_USE_GENERIC_PART_WORD_CAS 1 -#define __TBB_USE_GENERIC_FETCH_ADD 1 -#define __TBB_USE_GENERIC_FETCH_STORE 1 -#define __TBB_USE_GENERIC_HALF_FENCED_LOAD_STORE 1 -#define __TBB_USE_GENERIC_RELAXED_LOAD_STORE 1 -#define __TBB_USE_GENERIC_DWORD_LOAD_STORE 1 -#define __TBB_USE_GENERIC_SEQUENTIAL_CONSISTENCY_LOAD_STORE 1 - -#pragma optimize( "", off ) -inline void __TBB_machine_pause (__int32 delay ) -{ - for (__int32 i=0; i> 0) & 1) + - ((__TBB_XBOX360_HARDWARE_THREAD_MASK >> 1) & 1) + - ((__TBB_XBOX360_HARDWARE_THREAD_MASK >> 2) & 1) + - ((__TBB_XBOX360_HARDWARE_THREAD_MASK >> 3) & 1) + - ((__TBB_XBOX360_HARDWARE_THREAD_MASK >> 4) & 1) + - ((__TBB_XBOX360_HARDWARE_THREAD_MASK >> 5) & 1) + 1; // +1 accomodates for the master thread -} - -static inline int __TBB_XBOX360_GetHardwareThreadIndex(int workerThreadIndex) -{ - workerThreadIndex %= __TBB_XBOX360_DetectNumberOfWorkers()-1; - int m = __TBB_XBOX360_HARDWARE_THREAD_MASK; - int index = 0; - int skipcount = workerThreadIndex; - while (true) - { - if ((m & 1)!=0) - { - if (skipcount==0) break; - skipcount--; - } - m >>= 1; - index++; - } - return index; -} - -#define __TBB_HardwareConcurrency() __TBB_XBOX360_DetectNumberOfWorkers() diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/memory_pool.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/memory_pool.h deleted file mode 100644 index 430d9aec6..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/memory_pool.h +++ /dev/null @@ -1,281 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_memory_pool_H -#define __TBB_memory_pool_H - -#if !TBB_PREVIEW_MEMORY_POOL -#error Set TBB_PREVIEW_MEMORY_POOL to include memory_pool.h -#endif -/** @file */ - -#include "scalable_allocator.h" -#include "tbb_stddef.h" -#include "tbb_machine.h" // TODO: avoid linkage with libtbb on IA-64 architecture -#include "tbb/atomic.h" // for as_atomic -#include // std::bad_alloc -#if __TBB_CPP11_RVALUE_REF_PRESENT && !__TBB_CPP11_STD_FORWARD_BROKEN -#include // std::forward -#endif - -#if __TBB_EXTRA_DEBUG -#define __TBBMALLOC_ASSERT ASSERT -#else -#define __TBBMALLOC_ASSERT(a,b) ((void)0) -#endif - -namespace tbb { -namespace interface6 { -//! @cond INTERNAL -namespace internal { - -//! Base of thread-safe pool allocator for variable-size requests -class pool_base : tbb::internal::no_copy { - // Pool interface is separate from standard allocator classes because it has - // to maintain internal state, no copy or assignment. Move and swap are possible. -public: - //! Reset pool to reuse its memory (free all objects at once) - void recycle() { rml::pool_reset(my_pool); } - - //! The "malloc" analogue to allocate block of memory of size bytes - void *malloc(size_t size) { return rml::pool_malloc(my_pool, size); } - - //! The "free" analogue to discard a previously allocated piece of memory. - void free(void* ptr) { rml::pool_free(my_pool, ptr); } - - //! The "realloc" analogue complementing pool_malloc. - // Enables some low-level optimization possibilities - void *realloc(void* ptr, size_t size) { - return rml::pool_realloc(my_pool, ptr, size); - } - -protected: - //! destroy pool - must be called in a child class - void destroy() { rml::pool_destroy(my_pool); } - - rml::MemoryPool *my_pool; -}; - -} // namespace internal -//! @endcond - -#if _MSC_VER && !defined(__INTEL_COMPILER) - // Workaround for erroneous "unreferenced parameter" warning in method destroy. - #pragma warning (push) - #pragma warning (disable: 4100) -#endif - -//! Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5 -/** @ingroup memory_allocation */ -template -class memory_pool_allocator { -protected: - typedef P pool_type; - pool_type *my_pool; - template - friend class memory_pool_allocator; - template - friend bool operator==( const memory_pool_allocator& a, const memory_pool_allocator& b); - template - friend bool operator!=( const memory_pool_allocator& a, const memory_pool_allocator& b); -public: - typedef typename tbb::internal::allocator_type::value_type value_type; - typedef value_type* pointer; - typedef const value_type* const_pointer; - typedef value_type& reference; - typedef const value_type& const_reference; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - template struct rebind { - typedef memory_pool_allocator other; - }; - - memory_pool_allocator(pool_type &pool) throw() : my_pool(&pool) {} - memory_pool_allocator(const memory_pool_allocator& src) throw() : my_pool(src.my_pool) {} - template - memory_pool_allocator(const memory_pool_allocator& src) throw() : my_pool(src.my_pool) {} - - pointer address(reference x) const { return &x; } - const_pointer address(const_reference x) const { return &x; } - - //! Allocate space for n objects. - pointer allocate( size_type n, const void* /*hint*/ = 0) { - return static_cast( my_pool->malloc( n*sizeof(value_type) ) ); - } - //! Free previously allocated block of memory. - void deallocate( pointer p, size_type ) { - my_pool->free(p); - } - //! Largest value for which method allocate might succeed. - size_type max_size() const throw() { - size_type max = static_cast(-1) / sizeof (value_type); - return (max > 0 ? max : 1); - } - //! Copy-construct value at location pointed to by p. -#if __TBB_ALLOCATOR_CONSTRUCT_VARIADIC - template - void construct(U *p, Args&&... args) - #if __TBB_CPP11_STD_FORWARD_BROKEN - { ::new((void *)p) U((args)...); } - #else - { ::new((void *)p) U(std::forward(args)...); } - #endif -#else // __TBB_ALLOCATOR_CONSTRUCT_VARIADIC - void construct( pointer p, const value_type& value ) { ::new((void*)(p)) value_type(value); } -#endif // __TBB_ALLOCATOR_CONSTRUCT_VARIADIC - - //! Destroy value at location pointed to by p. - void destroy( pointer p ) { p->~value_type(); } - -}; - -#if _MSC_VER && !defined(__INTEL_COMPILER) - #pragma warning (pop) -#endif // warning 4100 is back - -//! Analogous to std::allocator, as defined in ISO C++ Standard, Section 20.4.1 -/** @ingroup memory_allocation */ -template -class memory_pool_allocator { -public: - typedef P pool_type; - typedef void* pointer; - typedef const void* const_pointer; - typedef void value_type; - template struct rebind { - typedef memory_pool_allocator other; - }; - - memory_pool_allocator( pool_type &pool) throw() : my_pool(&pool) {} - memory_pool_allocator( const memory_pool_allocator& src) throw() : my_pool(src.my_pool) {} - template - memory_pool_allocator(const memory_pool_allocator& src) throw() : my_pool(src.my_pool) {} - -protected: - pool_type *my_pool; - template - friend class memory_pool_allocator; - template - friend bool operator==( const memory_pool_allocator& a, const memory_pool_allocator& b); - template - friend bool operator!=( const memory_pool_allocator& a, const memory_pool_allocator& b); -}; - -template -inline bool operator==( const memory_pool_allocator& a, const memory_pool_allocator& b) {return a.my_pool==b.my_pool;} - -template -inline bool operator!=( const memory_pool_allocator& a, const memory_pool_allocator& b) {return a.my_pool!=b.my_pool;} - - -//! Thread-safe growable pool allocator for variable-size requests -template -class memory_pool : public internal::pool_base { - Alloc my_alloc; // TODO: base-class optimization - static void *allocate_request(intptr_t pool_id, size_t & bytes); - static int deallocate_request(intptr_t pool_id, void*, size_t raw_bytes); - -public: - //! construct pool with underlying allocator - memory_pool(const Alloc &src = Alloc()); - - //! destroy pool - ~memory_pool() { destroy(); } // call the callbacks first and destroy my_alloc latter - -}; - -class fixed_pool : public internal::pool_base { - void *my_buffer; - size_t my_size; - inline static void *allocate_request(intptr_t pool_id, size_t & bytes); - -public: - //! construct pool with underlying allocator - inline fixed_pool(void *buf, size_t size); - //! destroy pool - ~fixed_pool() { destroy(); } -}; - -//////////////// Implementation /////////////// - -template -memory_pool::memory_pool(const Alloc &src) : my_alloc(src) { - rml::MemPoolPolicy args(allocate_request, deallocate_request, - sizeof(typename Alloc::value_type)); - rml::MemPoolError res = rml::pool_create_v1(intptr_t(this), &args, &my_pool); - if( res!=rml::POOL_OK ) __TBB_THROW(std::bad_alloc()); -} -template -void *memory_pool::allocate_request(intptr_t pool_id, size_t & bytes) { - memory_pool &self = *reinterpret_cast*>(pool_id); - const size_t unit_size = sizeof(typename Alloc::value_type); - __TBBMALLOC_ASSERT( 0 == bytes%unit_size, NULL); - void *ptr; - __TBB_TRY { ptr = self.my_alloc.allocate( bytes/unit_size ); } - __TBB_CATCH(...) { return 0; } - return ptr; -} -#if __TBB_MSVC_UNREACHABLE_CODE_IGNORED - // Workaround for erroneous "unreachable code" warning in the template below. - // Specific for VC++ 17-18 compiler - #pragma warning (push) - #pragma warning (disable: 4702) -#endif -template -int memory_pool::deallocate_request(intptr_t pool_id, void* raw_ptr, size_t raw_bytes) { - memory_pool &self = *reinterpret_cast*>(pool_id); - const size_t unit_size = sizeof(typename Alloc::value_type); - __TBBMALLOC_ASSERT( 0 == raw_bytes%unit_size, NULL); - self.my_alloc.deallocate( static_cast(raw_ptr), raw_bytes/unit_size ); - return 0; -} -#if __TBB_MSVC_UNREACHABLE_CODE_IGNORED - #pragma warning (pop) -#endif -inline fixed_pool::fixed_pool(void *buf, size_t size) : my_buffer(buf), my_size(size) { - rml::MemPoolPolicy args(allocate_request, 0, size, /*fixedPool=*/true); - rml::MemPoolError res = rml::pool_create_v1(intptr_t(this), &args, &my_pool); - if( res!=rml::POOL_OK ) __TBB_THROW(std::bad_alloc()); -} -inline void *fixed_pool::allocate_request(intptr_t pool_id, size_t & bytes) { - fixed_pool &self = *reinterpret_cast(pool_id); - // TODO: we can implement "buffer for fixed pools used only once" policy - // on low-level side, thus eliminate atomics here - if( !tbb::internal::as_atomic(self.my_size).compare_and_swap(0, (bytes=self.my_size)) ) - return 0; // all the memory was given already - return self.my_buffer; -} - -} //namespace interface6 -using interface6::memory_pool_allocator; -using interface6::memory_pool; -using interface6::fixed_pool; -} //namespace tbb - -#undef __TBBMALLOC_ASSERT -#endif// __TBB_memory_pool_H diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/mutex.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/mutex.h deleted file mode 100644 index cdfaf0f81..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/mutex.h +++ /dev/null @@ -1,240 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_mutex_H -#define __TBB_mutex_H - -#if _WIN32||_WIN64 -#include "machine/windows_api.h" -#else -#include -#endif /* _WIN32||_WIN64 */ - -#include -#include "aligned_space.h" -#include "tbb_stddef.h" -#include "tbb_profiling.h" - -namespace tbb { - -//! Wrapper around the platform's native reader-writer lock. -/** For testing purposes only. - @ingroup synchronization */ -class mutex { -public: - //! Construct unacquired mutex. - mutex() { -#if TBB_USE_ASSERT || TBB_USE_THREADING_TOOLS - internal_construct(); -#else - #if _WIN32||_WIN64 - InitializeCriticalSectionEx(&impl, 4000, 0); - #else - int error_code = pthread_mutex_init(&impl,NULL); - if( error_code ) - tbb::internal::handle_perror(error_code,"mutex: pthread_mutex_init failed"); - #endif /* _WIN32||_WIN64*/ -#endif /* TBB_USE_ASSERT */ - }; - - ~mutex() { -#if TBB_USE_ASSERT - internal_destroy(); -#else - #if _WIN32||_WIN64 - DeleteCriticalSection(&impl); - #else - pthread_mutex_destroy(&impl); - - #endif /* _WIN32||_WIN64 */ -#endif /* TBB_USE_ASSERT */ - }; - - class scoped_lock; - friend class scoped_lock; - - //! The scoped locking pattern - /** It helps to avoid the common problem of forgetting to release lock. - It also nicely provides the "node" for queuing locks. */ - class scoped_lock : internal::no_copy { - public: - //! Construct lock that has not acquired a mutex. - scoped_lock() : my_mutex(NULL) {}; - - //! Acquire lock on given mutex. - scoped_lock( mutex& mutex ) { - acquire( mutex ); - } - - //! Release lock (if lock is held). - ~scoped_lock() { - if( my_mutex ) - release(); - } - - //! Acquire lock on given mutex. - void acquire( mutex& mutex ) { -#if TBB_USE_ASSERT - internal_acquire(mutex); -#else - mutex.lock(); - my_mutex = &mutex; -#endif /* TBB_USE_ASSERT */ - } - - //! Try acquire lock on given mutex. - bool try_acquire( mutex& mutex ) { -#if TBB_USE_ASSERT - return internal_try_acquire (mutex); -#else - bool result = mutex.try_lock(); - if( result ) - my_mutex = &mutex; - return result; -#endif /* TBB_USE_ASSERT */ - } - - //! Release lock - void release() { -#if TBB_USE_ASSERT - internal_release (); -#else - my_mutex->unlock(); - my_mutex = NULL; -#endif /* TBB_USE_ASSERT */ - } - - private: - //! The pointer to the current mutex to work - mutex* my_mutex; - - //! All checks from acquire using mutex.state were moved here - void __TBB_EXPORTED_METHOD internal_acquire( mutex& m ); - - //! All checks from try_acquire using mutex.state were moved here - bool __TBB_EXPORTED_METHOD internal_try_acquire( mutex& m ); - - //! All checks from release using mutex.state were moved here - void __TBB_EXPORTED_METHOD internal_release(); - - friend class mutex; - }; - - // Mutex traits - static const bool is_rw_mutex = false; - static const bool is_recursive_mutex = false; - static const bool is_fair_mutex = false; - - // ISO C++0x compatibility methods - - //! Acquire lock - void lock() { -#if TBB_USE_ASSERT - aligned_space tmp; - new(tmp.begin()) scoped_lock(*this); -#else - #if _WIN32||_WIN64 - EnterCriticalSection(&impl); - #else - pthread_mutex_lock(&impl); - #endif /* _WIN32||_WIN64 */ -#endif /* TBB_USE_ASSERT */ - } - - //! Try acquiring lock (non-blocking) - /** Return true if lock acquired; false otherwise. */ - bool try_lock() { -#if TBB_USE_ASSERT - aligned_space tmp; - scoped_lock& s = *tmp.begin(); - s.my_mutex = NULL; - return s.internal_try_acquire(*this); -#else - #if _WIN32||_WIN64 - return TryEnterCriticalSection(&impl)!=0; - #else - return pthread_mutex_trylock(&impl)==0; - #endif /* _WIN32||_WIN64 */ -#endif /* TBB_USE_ASSERT */ - } - - //! Release lock - void unlock() { -#if TBB_USE_ASSERT - aligned_space tmp; - scoped_lock& s = *tmp.begin(); - s.my_mutex = this; - s.internal_release(); -#else - #if _WIN32||_WIN64 - LeaveCriticalSection(&impl); - #else - pthread_mutex_unlock(&impl); - #endif /* _WIN32||_WIN64 */ -#endif /* TBB_USE_ASSERT */ - } - - //! Return native_handle - #if _WIN32||_WIN64 - typedef LPCRITICAL_SECTION native_handle_type; - #else - typedef pthread_mutex_t* native_handle_type; - #endif - native_handle_type native_handle() { return (native_handle_type) &impl; } - - enum state_t { - INITIALIZED=0x1234, - DESTROYED=0x789A, - HELD=0x56CD - }; -private: -#if _WIN32||_WIN64 - CRITICAL_SECTION impl; - enum state_t state; -#else - pthread_mutex_t impl; -#endif /* _WIN32||_WIN64 */ - - //! All checks from mutex constructor using mutex.state were moved here - void __TBB_EXPORTED_METHOD internal_construct(); - - //! All checks from mutex destructor using mutex.state were moved here - void __TBB_EXPORTED_METHOD internal_destroy(); - -#if _WIN32||_WIN64 -public: - //! Set the internal state - void set_state( state_t to ) { state = to; } -#endif -}; - -__TBB_DEFINE_PROFILING_SET_NAME(mutex) - -} // namespace tbb - -#endif /* __TBB_mutex_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/null_mutex.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/null_mutex.h deleted file mode 100644 index 720797882..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/null_mutex.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_null_mutex_H -#define __TBB_null_mutex_H - -namespace tbb { - -//! A mutex which does nothing -/** A null_mutex does no operation and simulates success. - @ingroup synchronization */ -class null_mutex { - //! Deny assignment and copy construction - null_mutex( const null_mutex& ); - void operator=( const null_mutex& ); -public: - //! Represents acquisition of a mutex. - class scoped_lock { - public: - scoped_lock() {} - scoped_lock( null_mutex& ) {} - ~scoped_lock() {} - void acquire( null_mutex& ) {} - bool try_acquire( null_mutex& ) { return true; } - void release() {} - }; - - null_mutex() {} - - // Mutex traits - static const bool is_rw_mutex = false; - static const bool is_recursive_mutex = true; - static const bool is_fair_mutex = true; -}; - -} - -#endif /* __TBB_null_mutex_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/null_rw_mutex.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/null_rw_mutex.h deleted file mode 100644 index 49a94bfcc..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/null_rw_mutex.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_null_rw_mutex_H -#define __TBB_null_rw_mutex_H - -namespace tbb { - -//! A rw mutex which does nothing -/** A null_rw_mutex is a rw mutex that does nothing and simulates successful operation. - @ingroup synchronization */ -class null_rw_mutex { - //! Deny assignment and copy construction - null_rw_mutex( const null_rw_mutex& ); - void operator=( const null_rw_mutex& ); -public: - //! Represents acquisition of a mutex. - class scoped_lock { - public: - scoped_lock() {} - scoped_lock( null_rw_mutex& , bool = true ) {} - ~scoped_lock() {} - void acquire( null_rw_mutex& , bool = true ) {} - bool upgrade_to_writer() { return true; } - bool downgrade_to_reader() { return true; } - bool try_acquire( null_rw_mutex& , bool = true ) { return true; } - void release() {} - }; - - null_rw_mutex() {} - - // Mutex traits - static const bool is_rw_mutex = true; - static const bool is_recursive_mutex = true; - static const bool is_fair_mutex = true; -}; - -} - -#endif /* __TBB_null_rw_mutex_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/parallel_do.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/parallel_do.h deleted file mode 100644 index f2e80c34d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/parallel_do.h +++ /dev/null @@ -1,508 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_parallel_do_H -#define __TBB_parallel_do_H - -#include "task.h" -#include "aligned_space.h" -#include - -namespace tbb { - -//! @cond INTERNAL -namespace internal { - template class parallel_do_feeder_impl; - template class do_group_task; - - //! Strips its template type argument from 'cv' and '&' qualifiers - template - struct strip { typedef T type; }; - template - struct strip { typedef T type; }; - template - struct strip { typedef T type; }; - template - struct strip { typedef T type; }; - template - struct strip { typedef T type; }; - // Most of the compilers remove cv-qualifiers from non-reference function argument types. - // But unfortunately there are those that don't. - template - struct strip { typedef T type; }; - template - struct strip { typedef T type; }; - template - struct strip { typedef T type; }; -} // namespace internal -//! @endcond - -//! Class the user supplied algorithm body uses to add new tasks -/** \param Item Work item type **/ -template -class parallel_do_feeder: internal::no_copy -{ - parallel_do_feeder() {} - virtual ~parallel_do_feeder () {} - virtual void internal_add( const Item& item ) = 0; - template friend class internal::parallel_do_feeder_impl; -public: - //! Add a work item to a running parallel_do. - void add( const Item& item ) {internal_add(item);} -}; - -//! @cond INTERNAL -namespace internal { - //! For internal use only. - /** Selects one of the two possible forms of function call member operator. - @ingroup algorithms **/ - template - class parallel_do_operator_selector - { - typedef parallel_do_feeder Feeder; - template - static void internal_call( const Body& obj, A1& arg1, A2&, void (Body::*)(CvItem) const ) { - obj(arg1); - } - template - static void internal_call( const Body& obj, A1& arg1, A2& arg2, void (Body::*)(CvItem, parallel_do_feeder&) const ) { - obj(arg1, arg2); - } - - public: - template - static void call( const Body& obj, A1& arg1, A2& arg2 ) - { - internal_call( obj, arg1, arg2, &Body::operator() ); - } - }; - - //! For internal use only. - /** Executes one iteration of a do. - @ingroup algorithms */ - template - class do_iteration_task: public task - { - typedef parallel_do_feeder_impl feeder_type; - - Item my_value; - feeder_type& my_feeder; - - do_iteration_task( const Item& value, feeder_type& feeder ) : - my_value(value), my_feeder(feeder) - {} - - /*override*/ - task* execute() - { - parallel_do_operator_selector::call(*my_feeder.my_body, my_value, my_feeder); - return NULL; - } - - template friend class parallel_do_feeder_impl; - }; // class do_iteration_task - - template - class do_iteration_task_iter: public task - { - typedef parallel_do_feeder_impl feeder_type; - - Iterator my_iter; - feeder_type& my_feeder; - - do_iteration_task_iter( const Iterator& iter, feeder_type& feeder ) : - my_iter(iter), my_feeder(feeder) - {} - - /*override*/ - task* execute() - { - parallel_do_operator_selector::call(*my_feeder.my_body, *my_iter, my_feeder); - return NULL; - } - - template friend class do_group_task_forward; - template friend class do_group_task_input; - template friend class do_task_iter; - }; // class do_iteration_task_iter - - //! For internal use only. - /** Implements new task adding procedure. - @ingroup algorithms **/ - template - class parallel_do_feeder_impl : public parallel_do_feeder - { - /*override*/ - void internal_add( const Item& item ) - { - typedef do_iteration_task iteration_type; - - iteration_type& t = *new (task::allocate_additional_child_of(*my_barrier)) iteration_type(item, *this); - - t.spawn( t ); - } - public: - const Body* my_body; - empty_task* my_barrier; - - parallel_do_feeder_impl() - { - my_barrier = new( task::allocate_root() ) empty_task(); - __TBB_ASSERT(my_barrier, "root task allocation failed"); - } - -#if __TBB_TASK_GROUP_CONTEXT - parallel_do_feeder_impl(tbb::task_group_context &context) - { - my_barrier = new( task::allocate_root(context) ) empty_task(); - __TBB_ASSERT(my_barrier, "root task allocation failed"); - } -#endif - - ~parallel_do_feeder_impl() - { - my_barrier->destroy(*my_barrier); - } - }; // class parallel_do_feeder_impl - - - //! For internal use only - /** Unpacks a block of iterations. - @ingroup algorithms */ - - template - class do_group_task_forward: public task - { - static const size_t max_arg_size = 4; - - typedef parallel_do_feeder_impl feeder_type; - - feeder_type& my_feeder; - Iterator my_first; - size_t my_size; - - do_group_task_forward( Iterator first, size_t size, feeder_type& feeder ) - : my_feeder(feeder), my_first(first), my_size(size) - {} - - /*override*/ task* execute() - { - typedef do_iteration_task_iter iteration_type; - __TBB_ASSERT( my_size>0, NULL ); - task_list list; - task* t; - size_t k=0; - for(;;) { - t = new( allocate_child() ) iteration_type( my_first, my_feeder ); - ++my_first; - if( ++k==my_size ) break; - list.push_back(*t); - } - set_ref_count(int(k+1)); - spawn(list); - spawn_and_wait_for_all(*t); - return NULL; - } - - template friend class do_task_iter; - }; // class do_group_task_forward - - template - class do_group_task_input: public task - { - static const size_t max_arg_size = 4; - - typedef parallel_do_feeder_impl feeder_type; - - feeder_type& my_feeder; - size_t my_size; - aligned_space my_arg; - - do_group_task_input( feeder_type& feeder ) - : my_feeder(feeder), my_size(0) - {} - - /*override*/ task* execute() - { - typedef do_iteration_task_iter iteration_type; - __TBB_ASSERT( my_size>0, NULL ); - task_list list; - task* t; - size_t k=0; - for(;;) { - t = new( allocate_child() ) iteration_type( my_arg.begin() + k, my_feeder ); - if( ++k==my_size ) break; - list.push_back(*t); - } - set_ref_count(int(k+1)); - spawn(list); - spawn_and_wait_for_all(*t); - return NULL; - } - - ~do_group_task_input(){ - for( size_t k=0; k~Item(); - } - - template friend class do_task_iter; - }; // class do_group_task_input - - //! For internal use only. - /** Gets block of iterations and packages them into a do_group_task. - @ingroup algorithms */ - template - class do_task_iter: public task - { - typedef parallel_do_feeder_impl feeder_type; - - public: - do_task_iter( Iterator first, Iterator last , feeder_type& feeder ) : - my_first(first), my_last(last), my_feeder(feeder) - {} - - private: - Iterator my_first; - Iterator my_last; - feeder_type& my_feeder; - - /* Do not merge run(xxx) and run_xxx() methods. They are separated in order - to make sure that compilers will eliminate unused argument of type xxx - (that is will not put it on stack). The sole purpose of this argument - is overload resolution. - - An alternative could be using template functions, but explicit specialization - of member function templates is not supported for non specialized class - templates. Besides template functions would always fall back to the least - efficient variant (the one for input iterators) in case of iterators having - custom tags derived from basic ones. */ - /*override*/ task* execute() - { - typedef typename std::iterator_traits::iterator_category iterator_tag; - return run( (iterator_tag*)NULL ); - } - - /** This is the most restricted variant that operates on input iterators or - iterators with unknown tags (tags not derived from the standard ones). **/ - inline task* run( void* ) { return run_for_input_iterator(); } - - task* run_for_input_iterator() { - typedef do_group_task_input block_type; - - block_type& t = *new( allocate_additional_child_of(*my_feeder.my_barrier) ) block_type(my_feeder); - size_t k=0; - while( !(my_first == my_last) ) { - new (t.my_arg.begin() + k) Item(*my_first); - ++my_first; - if( ++k==block_type::max_arg_size ) { - if ( !(my_first == my_last) ) - recycle_to_reexecute(); - break; - } - } - if( k==0 ) { - destroy(t); - return NULL; - } else { - t.my_size = k; - return &t; - } - } - - inline task* run( std::forward_iterator_tag* ) { return run_for_forward_iterator(); } - - task* run_for_forward_iterator() { - typedef do_group_task_forward block_type; - - Iterator first = my_first; - size_t k=0; - while( !(my_first==my_last) ) { - ++my_first; - if( ++k==block_type::max_arg_size ) { - if ( !(my_first==my_last) ) - recycle_to_reexecute(); - break; - } - } - return k==0 ? NULL : new( allocate_additional_child_of(*my_feeder.my_barrier) ) block_type(first, k, my_feeder); - } - - inline task* run( std::random_access_iterator_tag* ) { return run_for_random_access_iterator(); } - - task* run_for_random_access_iterator() { - typedef do_group_task_forward block_type; - typedef do_iteration_task_iter iteration_type; - - size_t k = static_cast(my_last-my_first); - if( k > block_type::max_arg_size ) { - Iterator middle = my_first + k/2; - - empty_task& c = *new( allocate_continuation() ) empty_task; - do_task_iter& b = *new( c.allocate_child() ) do_task_iter(middle, my_last, my_feeder); - recycle_as_child_of(c); - - my_last = middle; - c.set_ref_count(2); - c.spawn(b); - return this; - }else if( k != 0 ) { - task_list list; - task* t; - size_t k1=0; - for(;;) { - t = new( allocate_child() ) iteration_type(my_first, my_feeder); - ++my_first; - if( ++k1==k ) break; - list.push_back(*t); - } - set_ref_count(int(k+1)); - spawn(list); - spawn_and_wait_for_all(*t); - } - return NULL; - } - }; // class do_task_iter - - //! For internal use only. - /** Implements parallel iteration over a range. - @ingroup algorithms */ - template - void run_parallel_do( Iterator first, Iterator last, const Body& body -#if __TBB_TASK_GROUP_CONTEXT - , task_group_context& context -#endif - ) - { - typedef do_task_iter root_iteration_task; -#if __TBB_TASK_GROUP_CONTEXT - parallel_do_feeder_impl feeder(context); -#else - parallel_do_feeder_impl feeder; -#endif - feeder.my_body = &body; - - root_iteration_task &t = *new( feeder.my_barrier->allocate_child() ) root_iteration_task(first, last, feeder); - - feeder.my_barrier->set_ref_count(2); - feeder.my_barrier->spawn_and_wait_for_all(t); - } - - //! For internal use only. - /** Detects types of Body's operator function arguments. - @ingroup algorithms **/ - template - void select_parallel_do( Iterator first, Iterator last, const Body& body, void (Body::*)(Item) const -#if __TBB_TASK_GROUP_CONTEXT - , task_group_context& context -#endif // __TBB_TASK_GROUP_CONTEXT - ) - { - run_parallel_do::type>( first, last, body -#if __TBB_TASK_GROUP_CONTEXT - , context -#endif // __TBB_TASK_GROUP_CONTEXT - ); - } - - //! For internal use only. - /** Detects types of Body's operator function arguments. - @ingroup algorithms **/ - template - void select_parallel_do( Iterator first, Iterator last, const Body& body, void (Body::*)(Item, parallel_do_feeder<_Item>&) const -#if __TBB_TASK_GROUP_CONTEXT - , task_group_context& context -#endif // __TBB_TASK_GROUP_CONTEXT - ) - { - run_parallel_do::type>( first, last, body -#if __TBB_TASK_GROUP_CONTEXT - , context -#endif // __TBB_TASK_GROUP_CONTEXT - ); - } - -} // namespace internal -//! @endcond - - -/** \page parallel_do_body_req Requirements on parallel_do body - Class \c Body implementing the concept of parallel_do body must define: - - \code - B::operator()( - cv_item_type item, - parallel_do_feeder& feeder - ) const - - OR - - B::operator()( cv_item_type& item ) const - \endcode Process item. - May be invoked concurrently for the same \c this but different \c item. - - - \code item_type( const item_type& ) \endcode - Copy a work item. - - \code ~item_type() \endcode Destroy a work item -**/ - -/** \name parallel_do - See also requirements on \ref parallel_do_body_req "parallel_do Body". **/ -//@{ -//! Parallel iteration over a range, with optional addition of more work. -/** @ingroup algorithms */ -template -void parallel_do( Iterator first, Iterator last, const Body& body ) -{ - if ( first == last ) - return; -#if __TBB_TASK_GROUP_CONTEXT - task_group_context context; -#endif // __TBB_TASK_GROUP_CONTEXT - internal::select_parallel_do( first, last, body, &Body::operator() -#if __TBB_TASK_GROUP_CONTEXT - , context -#endif // __TBB_TASK_GROUP_CONTEXT - ); -} - -#if __TBB_TASK_GROUP_CONTEXT -//! Parallel iteration over a range, with optional addition of more work and user-supplied context -/** @ingroup algorithms */ -template -void parallel_do( Iterator first, Iterator last, const Body& body, task_group_context& context ) -{ - if ( first == last ) - return; - internal::select_parallel_do( first, last, body, &Body::operator(), context ); -} -#endif // __TBB_TASK_GROUP_CONTEXT - -//@} - -} // namespace - -#endif /* __TBB_parallel_do_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/parallel_for.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/parallel_for.h deleted file mode 100644 index 7193a0339..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/parallel_for.h +++ /dev/null @@ -1,381 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_parallel_for_H -#define __TBB_parallel_for_H - -#include -#include "task.h" -#include "partitioner.h" -#include "blocked_range.h" -#include "tbb_exception.h" - -namespace tbb { - -namespace interface6 { -//! @cond INTERNAL -namespace internal { - - //! allocate right task with new parent - void* allocate_sibling(task* start_for_task, size_t bytes); - - //! Task type used in parallel_for - /** @ingroup algorithms */ - template - class start_for: public task { - Range my_range; - const Body my_body; - typename Partitioner::task_partition_type my_partition; - /*override*/ task* execute(); - - //! Update affinity info, if any. - /*override*/ void note_affinity( affinity_id id ) { - my_partition.note_affinity( id ); - } - - public: - //! Constructor for root task. - start_for( const Range& range, const Body& body, Partitioner& partitioner ) : - my_range(range), - my_body(body), - my_partition(partitioner) - { - } - //! Splitting constructor used to generate children. - /** parent_ becomes left child. Newly constructed object is right child. */ - start_for( start_for& parent_, split ) : - my_range(parent_.my_range, split()), - my_body(parent_.my_body), - my_partition(parent_.my_partition, split()) - { - my_partition.set_affinity(*this); - } - //! Construct right child from the given range as response to the demand. - /** parent_ remains left child. Newly constructed object is right child. */ - start_for( start_for& parent_, const Range& r, depth_t d ) : - my_range(r), - my_body(parent_.my_body), - my_partition(parent_.my_partition,split()) - { - my_partition.set_affinity(*this); - my_partition.align_depth( d ); - } - static void run( const Range& range, const Body& body, Partitioner& partitioner ) { - if( !range.empty() ) { -#if !__TBB_TASK_GROUP_CONTEXT || TBB_JOIN_OUTER_TASK_GROUP - start_for& a = *new(task::allocate_root()) start_for(range,body,partitioner); -#else - // Bound context prevents exceptions from body to affect nesting or sibling algorithms, - // and allows users to handle exceptions safely by wrapping parallel_for in the try-block. - task_group_context context; - start_for& a = *new(task::allocate_root(context)) start_for(range,body,partitioner); -#endif /* __TBB_TASK_GROUP_CONTEXT && !TBB_JOIN_OUTER_TASK_GROUP */ - task::spawn_root_and_wait(a); - } - } -#if __TBB_TASK_GROUP_CONTEXT - static void run( const Range& range, const Body& body, Partitioner& partitioner, task_group_context& context ) { - if( !range.empty() ) { - start_for& a = *new(task::allocate_root(context)) start_for(range,body,partitioner); - task::spawn_root_and_wait(a); - } - } -#endif /* __TBB_TASK_GROUP_CONTEXT */ - //! Run body for range, serves as callback for partitioner - void run_body( Range &r ) { my_body( r ); } - - //! spawn right task, serves as callback for partitioner - void offer_work(split) { - spawn( *new( allocate_sibling(static_cast(this), sizeof(start_for)) ) start_for(*this, split()) ); - } - //! spawn right task, serves as callback for partitioner - void offer_work(const Range& r, depth_t d = 0) { - spawn( *new( allocate_sibling(static_cast(this), sizeof(start_for)) ) start_for(*this, r, d) ); - } - }; - - //! allocate right task with new parent - // TODO: 'inline' here is to avoid multiple definition error but for sake of code size this should not be inlined - inline void* allocate_sibling(task* start_for_task, size_t bytes) { - task* parent_ptr = new( start_for_task->allocate_continuation() ) flag_task(); - start_for_task->set_parent(parent_ptr); - parent_ptr->set_ref_count(2); - return &parent_ptr->allocate_child().allocate(bytes); - } - - //! execute task for parallel_for - template - task* start_for::execute() { - my_partition.check_being_stolen( *this ); - my_partition.execute(*this, my_range); - return NULL; - } -} // namespace internal -//! @endcond -} // namespace interfaceX - -//! @cond INTERNAL -namespace internal { - using interface6::internal::start_for; - - //! Calls the function with values from range [begin, end) with a step provided - template - class parallel_for_body : internal::no_assign { - const Function &my_func; - const Index my_begin; - const Index my_step; - public: - parallel_for_body( const Function& _func, Index& _begin, Index& _step ) - : my_func(_func), my_begin(_begin), my_step(_step) {} - - void operator()( const tbb::blocked_range& r ) const { - // A set of local variables to help the compiler with vectorization of the following loop. - Index b = r.begin(); - Index e = r.end(); - Index ms = my_step; - Index k = my_begin + b*ms; - -#if __INTEL_COMPILER -#pragma ivdep -#if __TBB_ASSERT_ON_VECTORIZATION_FAILURE -#pragma vector always assert -#endif -#endif - for ( Index i = b; i < e; ++i, k += ms ) { - my_func( k ); - } - } - }; -} // namespace internal -//! @endcond - -// Requirements on Range concept are documented in blocked_range.h - -/** \page parallel_for_body_req Requirements on parallel_for body - Class \c Body implementing the concept of parallel_for body must define: - - \code Body::Body( const Body& ); \endcode Copy constructor - - \code Body::~Body(); \endcode Destructor - - \code void Body::operator()( Range& r ) const; \endcode Function call operator applying the body to range \c r. -**/ - -/** \name parallel_for - See also requirements on \ref range_req "Range" and \ref parallel_for_body_req "parallel_for Body". **/ -//@{ - -//! Parallel iteration over range with default partitioner. -/** @ingroup algorithms **/ -template -void parallel_for( const Range& range, const Body& body ) { - internal::start_for::run(range,body,__TBB_DEFAULT_PARTITIONER()); -} - -//! Parallel iteration over range with simple partitioner. -/** @ingroup algorithms **/ -template -void parallel_for( const Range& range, const Body& body, const simple_partitioner& partitioner ) { - internal::start_for::run(range,body,partitioner); -} - -//! Parallel iteration over range with auto_partitioner. -/** @ingroup algorithms **/ -template -void parallel_for( const Range& range, const Body& body, const auto_partitioner& partitioner ) { - internal::start_for::run(range,body,partitioner); -} - -//! Parallel iteration over range with affinity_partitioner. -/** @ingroup algorithms **/ -template -void parallel_for( const Range& range, const Body& body, affinity_partitioner& partitioner ) { - internal::start_for::run(range,body,partitioner); -} - -#if __TBB_TASK_GROUP_CONTEXT -//! Parallel iteration over range with default partitioner and user-supplied context. -/** @ingroup algorithms **/ -template -void parallel_for( const Range& range, const Body& body, task_group_context& context ) { - internal::start_for::run(range, body, __TBB_DEFAULT_PARTITIONER(), context); -} - -//! Parallel iteration over range with simple partitioner and user-supplied context. -/** @ingroup algorithms **/ -template -void parallel_for( const Range& range, const Body& body, const simple_partitioner& partitioner, task_group_context& context ) { - internal::start_for::run(range, body, partitioner, context); -} - -//! Parallel iteration over range with auto_partitioner and user-supplied context. -/** @ingroup algorithms **/ -template -void parallel_for( const Range& range, const Body& body, const auto_partitioner& partitioner, task_group_context& context ) { - internal::start_for::run(range, body, partitioner, context); -} - -//! Parallel iteration over range with affinity_partitioner and user-supplied context. -/** @ingroup algorithms **/ -template -void parallel_for( const Range& range, const Body& body, affinity_partitioner& partitioner, task_group_context& context ) { - internal::start_for::run(range,body,partitioner, context); -} -#endif /* __TBB_TASK_GROUP_CONTEXT */ -//@} - -namespace strict_ppl { - -//@{ -//! Implementation of parallel iteration over stepped range of integers with explicit step and partitioner -template -void parallel_for_impl(Index first, Index last, Index step, const Function& f, Partitioner& partitioner) { - if (step <= 0 ) - internal::throw_exception(internal::eid_nonpositive_step); // throws std::invalid_argument - else if (last > first) { - // Above "else" avoids "potential divide by zero" warning on some platforms - Index end = (last - first - Index(1)) / step + Index(1); - tbb::blocked_range range(static_cast(0), end); - internal::parallel_for_body body(f, first, step); - tbb::parallel_for(range, body, partitioner); - } -} - -//! Parallel iteration over a range of integers with a step provided and default partitioner -template -void parallel_for(Index first, Index last, Index step, const Function& f) { - parallel_for_impl(first, last, step, f, auto_partitioner()); -} -//! Parallel iteration over a range of integers with a step provided and simple partitioner -template -void parallel_for(Index first, Index last, Index step, const Function& f, const simple_partitioner& partitioner) { - parallel_for_impl(first, last, step, f, partitioner); -} -//! Parallel iteration over a range of integers with a step provided and auto partitioner -template -void parallel_for(Index first, Index last, Index step, const Function& f, const auto_partitioner& partitioner) { - parallel_for_impl(first, last, step, f, partitioner); -} -//! Parallel iteration over a range of integers with a step provided and affinity partitioner -template -void parallel_for(Index first, Index last, Index step, const Function& f, affinity_partitioner& partitioner) { - parallel_for_impl(first, last, step, f, partitioner); -} - -//! Parallel iteration over a range of integers with a default step value and default partitioner -template -void parallel_for(Index first, Index last, const Function& f) { - parallel_for_impl(first, last, static_cast(1), f, auto_partitioner()); -} -//! Parallel iteration over a range of integers with a default step value and simple partitioner -template -void parallel_for(Index first, Index last, const Function& f, const simple_partitioner& partitioner) { - parallel_for_impl(first, last, static_cast(1), f, partitioner); -} -//! Parallel iteration over a range of integers with a default step value and auto partitioner -template -void parallel_for(Index first, Index last, const Function& f, const auto_partitioner& partitioner) { - parallel_for_impl(first, last, static_cast(1), f, partitioner); -} -//! Parallel iteration over a range of integers with a default step value and affinity partitioner -template -void parallel_for(Index first, Index last, const Function& f, affinity_partitioner& partitioner) { - parallel_for_impl(first, last, static_cast(1), f, partitioner); -} - -#if __TBB_TASK_GROUP_CONTEXT -//! Implementation of parallel iteration over stepped range of integers with explicit step, task group context, and partitioner -template -void parallel_for_impl(Index first, Index last, Index step, const Function& f, Partitioner& partitioner, tbb::task_group_context &context) { - if (step <= 0 ) - internal::throw_exception(internal::eid_nonpositive_step); // throws std::invalid_argument - else if (last > first) { - // Above "else" avoids "potential divide by zero" warning on some platforms - Index end = (last - first - Index(1)) / step + Index(1); - tbb::blocked_range range(static_cast(0), end); - internal::parallel_for_body body(f, first, step); - tbb::parallel_for(range, body, partitioner, context); - } -} - -//! Parallel iteration over a range of integers with explicit step, task group context, and default partitioner -template -void parallel_for(Index first, Index last, Index step, const Function& f, tbb::task_group_context &context) { - parallel_for_impl(first, last, step, f, auto_partitioner(), context); -} -//! Parallel iteration over a range of integers with explicit step, task group context, and simple partitioner - template -void parallel_for(Index first, Index last, Index step, const Function& f, const simple_partitioner& partitioner, tbb::task_group_context &context) { - parallel_for_impl(first, last, step, f, partitioner, context); -} -//! Parallel iteration over a range of integers with explicit step, task group context, and auto partitioner - template -void parallel_for(Index first, Index last, Index step, const Function& f, const auto_partitioner& partitioner, tbb::task_group_context &context) { - parallel_for_impl(first, last, step, f, partitioner, context); -} -//! Parallel iteration over a range of integers with explicit step, task group context, and affinity partitioner - template -void parallel_for(Index first, Index last, Index step, const Function& f, affinity_partitioner& partitioner, tbb::task_group_context &context) { - parallel_for_impl(first, last, step, f, partitioner, context); -} - - -//! Parallel iteration over a range of integers with a default step value, explicit task group context, and default partitioner -template -void parallel_for(Index first, Index last, const Function& f, tbb::task_group_context &context) { - parallel_for_impl(first, last, static_cast(1), f, auto_partitioner(), context); -} -//! Parallel iteration over a range of integers with a default step value, explicit task group context, and simple partitioner - template -void parallel_for(Index first, Index last, const Function& f, const simple_partitioner& partitioner, tbb::task_group_context &context) { - parallel_for_impl(first, last, static_cast(1), f, partitioner, context); -} -//! Parallel iteration over a range of integers with a default step value, explicit task group context, and auto partitioner - template -void parallel_for(Index first, Index last, const Function& f, const auto_partitioner& partitioner, tbb::task_group_context &context) { - parallel_for_impl(first, last, static_cast(1), f, partitioner, context); -} -//! Parallel iteration over a range of integers with a default step value, explicit task group context, and affinity_partitioner - template -void parallel_for(Index first, Index last, const Function& f, affinity_partitioner& partitioner, tbb::task_group_context &context) { - parallel_for_impl(first, last, static_cast(1), f, partitioner, context); -} - -#endif /* __TBB_TASK_GROUP_CONTEXT */ -//@} - -} // namespace strict_ppl - -using strict_ppl::parallel_for; - -} // namespace tbb - -#if TBB_PREVIEW_SERIAL_SUBSET -#define __TBB_NORMAL_EXECUTION -#include "../serial/tbb/parallel_for.h" -#undef __TBB_NORMAL_EXECUTION -#endif - -#endif /* __TBB_parallel_for_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/parallel_for_each.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/parallel_for_each.h deleted file mode 100644 index a62e3dd5f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/parallel_for_each.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_parallel_for_each_H -#define __TBB_parallel_for_each_H - -#include "parallel_do.h" - -namespace tbb { - -//! @cond INTERNAL -namespace internal { - // The class calls user function in operator() - template - class parallel_for_each_body : internal::no_assign { - const Function &my_func; - public: - parallel_for_each_body(const Function &_func) : my_func(_func) {} - parallel_for_each_body(const parallel_for_each_body &_caller) : my_func(_caller.my_func) {} - - void operator() ( typename std::iterator_traits::reference value ) const { - my_func(value); - } - }; -} // namespace internal -//! @endcond - -/** \name parallel_for_each - **/ -//@{ -//! Calls function f for all items from [first, last) interval using user-supplied context -/** @ingroup algorithms */ -#if __TBB_TASK_GROUP_CONTEXT -template -void parallel_for_each(InputIterator first, InputIterator last, const Function& f, task_group_context &context) { - internal::parallel_for_each_body body(f); - tbb::parallel_do (first, last, body, context); -} -#endif /* __TBB_TASK_GROUP_CONTEXT */ - -//! Uses default context -template -void parallel_for_each(InputIterator first, InputIterator last, const Function& f) { - internal::parallel_for_each_body body(f); - tbb::parallel_do (first, last, body); -} - -//@} - -} // namespace - -#endif /* __TBB_parallel_for_each_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/parallel_invoke.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/parallel_invoke.h deleted file mode 100644 index 1a6c78afe..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/parallel_invoke.h +++ /dev/null @@ -1,371 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_parallel_invoke_H -#define __TBB_parallel_invoke_H - -#include "task.h" - -namespace tbb { - -#if !__TBB_TASK_GROUP_CONTEXT - /** Dummy to avoid cluttering the bulk of the header with enormous amount of ifdefs. **/ - struct task_group_context {}; -#endif /* __TBB_TASK_GROUP_CONTEXT */ - -//! @cond INTERNAL -namespace internal { - // Simple task object, executing user method - template - class function_invoker : public task{ - public: - function_invoker(const function& _function) : my_function(_function) {} - private: - const function &my_function; - /*override*/ - task* execute() - { - my_function(); - return NULL; - } - }; - - // The class spawns two or three child tasks - template - class spawner : public task { - private: - const function1& my_func1; - const function2& my_func2; - const function3& my_func3; - bool is_recycled; - - task* execute (){ - if(is_recycled){ - return NULL; - }else{ - __TBB_ASSERT(N==2 || N==3, "Number of arguments passed to spawner is wrong"); - set_ref_count(N); - recycle_as_safe_continuation(); - internal::function_invoker* invoker2 = new (allocate_child()) internal::function_invoker(my_func2); - __TBB_ASSERT(invoker2, "Child task allocation failed"); - spawn(*invoker2); - size_t n = N; // To prevent compiler warnings - if (n>2) { - internal::function_invoker* invoker3 = new (allocate_child()) internal::function_invoker(my_func3); - __TBB_ASSERT(invoker3, "Child task allocation failed"); - spawn(*invoker3); - } - my_func1(); - is_recycled = true; - return NULL; - } - } // execute - - public: - spawner(const function1& _func1, const function2& _func2, const function3& _func3) : my_func1(_func1), my_func2(_func2), my_func3(_func3), is_recycled(false) {} - }; - - // Creates and spawns child tasks - class parallel_invoke_helper : public empty_task { - public: - // Dummy functor class - class parallel_invoke_noop { - public: - void operator() () const {} - }; - // Creates a helper object with user-defined number of children expected - parallel_invoke_helper(int number_of_children) - { - set_ref_count(number_of_children + 1); - } - // Adds child task and spawns it - template - void add_child (const function &_func) - { - internal::function_invoker* invoker = new (allocate_child()) internal::function_invoker(_func); - __TBB_ASSERT(invoker, "Child task allocation failed"); - spawn(*invoker); - } - - // Adds a task with multiple child tasks and spawns it - // two arguments - template - void add_children (const function1& _func1, const function2& _func2) - { - // The third argument is dummy, it is ignored actually. - parallel_invoke_noop noop; - internal::spawner<2, function1, function2, parallel_invoke_noop>& sub_root = *new(allocate_child())internal::spawner<2, function1, function2, parallel_invoke_noop>(_func1, _func2, noop); - spawn(sub_root); - } - // three arguments - template - void add_children (const function1& _func1, const function2& _func2, const function3& _func3) - { - internal::spawner<3, function1, function2, function3>& sub_root = *new(allocate_child())internal::spawner<3, function1, function2, function3>(_func1, _func2, _func3); - spawn(sub_root); - } - - // Waits for all child tasks - template - void run_and_finish(const F0& f0) - { - internal::function_invoker* invoker = new (allocate_child()) internal::function_invoker(f0); - __TBB_ASSERT(invoker, "Child task allocation failed"); - spawn_and_wait_for_all(*invoker); - } - }; - // The class destroys root if exception occurred as well as in normal case - class parallel_invoke_cleaner: internal::no_copy { - public: -#if __TBB_TASK_GROUP_CONTEXT - parallel_invoke_cleaner(int number_of_children, tbb::task_group_context& context) - : root(*new(task::allocate_root(context)) internal::parallel_invoke_helper(number_of_children)) -#else - parallel_invoke_cleaner(int number_of_children, tbb::task_group_context&) - : root(*new(task::allocate_root()) internal::parallel_invoke_helper(number_of_children)) -#endif /* !__TBB_TASK_GROUP_CONTEXT */ - {} - - ~parallel_invoke_cleaner(){ - root.destroy(root); - } - internal::parallel_invoke_helper& root; - }; -} // namespace internal -//! @endcond - -/** \name parallel_invoke - **/ -//@{ -//! Executes a list of tasks in parallel and waits for all tasks to complete. -/** @ingroup algorithms */ - -// parallel_invoke with user-defined context -// two arguments -template -void parallel_invoke(const F0& f0, const F1& f1, tbb::task_group_context& context) { - internal::parallel_invoke_cleaner cleaner(2, context); - internal::parallel_invoke_helper& root = cleaner.root; - - root.add_child(f1); - - root.run_and_finish(f0); -} - -// three arguments -template -void parallel_invoke(const F0& f0, const F1& f1, const F2& f2, tbb::task_group_context& context) { - internal::parallel_invoke_cleaner cleaner(3, context); - internal::parallel_invoke_helper& root = cleaner.root; - - root.add_child(f2); - root.add_child(f1); - - root.run_and_finish(f0); -} - -// four arguments -template -void parallel_invoke(const F0& f0, const F1& f1, const F2& f2, const F3& f3, - tbb::task_group_context& context) -{ - internal::parallel_invoke_cleaner cleaner(4, context); - internal::parallel_invoke_helper& root = cleaner.root; - - root.add_child(f3); - root.add_child(f2); - root.add_child(f1); - - root.run_and_finish(f0); -} - -// five arguments -template -void parallel_invoke(const F0& f0, const F1& f1, const F2& f2, const F3& f3, const F4& f4, - tbb::task_group_context& context) -{ - internal::parallel_invoke_cleaner cleaner(3, context); - internal::parallel_invoke_helper& root = cleaner.root; - - root.add_children(f4, f3); - root.add_children(f2, f1); - - root.run_and_finish(f0); -} - -// six arguments -template -void parallel_invoke(const F0& f0, const F1& f1, const F2& f2, const F3& f3, const F4& f4, const F5& f5, - tbb::task_group_context& context) -{ - internal::parallel_invoke_cleaner cleaner(3, context); - internal::parallel_invoke_helper& root = cleaner.root; - - root.add_children(f5, f4, f3); - root.add_children(f2, f1); - - root.run_and_finish(f0); -} - -// seven arguments -template -void parallel_invoke(const F0& f0, const F1& f1, const F2& f2, const F3& f3, const F4& f4, - const F5& f5, const F6& f6, - tbb::task_group_context& context) -{ - internal::parallel_invoke_cleaner cleaner(3, context); - internal::parallel_invoke_helper& root = cleaner.root; - - root.add_children(f6, f5, f4); - root.add_children(f3, f2, f1); - - root.run_and_finish(f0); -} - -// eight arguments -template -void parallel_invoke(const F0& f0, const F1& f1, const F2& f2, const F3& f3, const F4& f4, - const F5& f5, const F6& f6, const F7& f7, - tbb::task_group_context& context) -{ - internal::parallel_invoke_cleaner cleaner(4, context); - internal::parallel_invoke_helper& root = cleaner.root; - - root.add_children(f7, f6, f5); - root.add_children(f4, f3); - root.add_children(f2, f1); - - root.run_and_finish(f0); -} - -// nine arguments -template -void parallel_invoke(const F0& f0, const F1& f1, const F2& f2, const F3& f3, const F4& f4, - const F5& f5, const F6& f6, const F7& f7, const F8& f8, - tbb::task_group_context& context) -{ - internal::parallel_invoke_cleaner cleaner(4, context); - internal::parallel_invoke_helper& root = cleaner.root; - - root.add_children(f8, f7, f6); - root.add_children(f5, f4, f3); - root.add_children(f2, f1); - - root.run_and_finish(f0); -} - -// ten arguments -template -void parallel_invoke(const F0& f0, const F1& f1, const F2& f2, const F3& f3, const F4& f4, - const F5& f5, const F6& f6, const F7& f7, const F8& f8, const F9& f9, - tbb::task_group_context& context) -{ - internal::parallel_invoke_cleaner cleaner(4, context); - internal::parallel_invoke_helper& root = cleaner.root; - - root.add_children(f9, f8, f7); - root.add_children(f6, f5, f4); - root.add_children(f3, f2, f1); - - root.run_and_finish(f0); -} - -// two arguments -template -void parallel_invoke(const F0& f0, const F1& f1) { - task_group_context context; - parallel_invoke(f0, f1, context); -} -// three arguments -template -void parallel_invoke(const F0& f0, const F1& f1, const F2& f2) { - task_group_context context; - parallel_invoke(f0, f1, f2, context); -} -// four arguments -template -void parallel_invoke(const F0& f0, const F1& f1, const F2& f2, const F3& f3) { - task_group_context context; - parallel_invoke(f0, f1, f2, f3, context); -} -// five arguments -template -void parallel_invoke(const F0& f0, const F1& f1, const F2& f2, const F3& f3, const F4& f4) { - task_group_context context; - parallel_invoke(f0, f1, f2, f3, f4, context); -} -// six arguments -template -void parallel_invoke(const F0& f0, const F1& f1, const F2& f2, const F3& f3, const F4& f4, const F5& f5) { - task_group_context context; - parallel_invoke(f0, f1, f2, f3, f4, f5, context); -} -// seven arguments -template -void parallel_invoke(const F0& f0, const F1& f1, const F2& f2, const F3& f3, const F4& f4, - const F5& f5, const F6& f6) -{ - task_group_context context; - parallel_invoke(f0, f1, f2, f3, f4, f5, f6, context); -} -// eigth arguments -template -void parallel_invoke(const F0& f0, const F1& f1, const F2& f2, const F3& f3, const F4& f4, - const F5& f5, const F6& f6, const F7& f7) -{ - task_group_context context; - parallel_invoke(f0, f1, f2, f3, f4, f5, f6, f7, context); -} -// nine arguments -template -void parallel_invoke(const F0& f0, const F1& f1, const F2& f2, const F3& f3, const F4& f4, - const F5& f5, const F6& f6, const F7& f7, const F8& f8) -{ - task_group_context context; - parallel_invoke(f0, f1, f2, f3, f4, f5, f6, f7, f8, context); -} -// ten arguments -template -void parallel_invoke(const F0& f0, const F1& f1, const F2& f2, const F3& f3, const F4& f4, - const F5& f5, const F6& f6, const F7& f7, const F8& f8, const F9& f9) -{ - task_group_context context; - parallel_invoke(f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, context); -} - -//@} - -} // namespace - -#endif /* __TBB_parallel_invoke_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/parallel_reduce.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/parallel_reduce.h deleted file mode 100644 index 5abaca721..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/parallel_reduce.h +++ /dev/null @@ -1,541 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_parallel_reduce_H -#define __TBB_parallel_reduce_H - -#include -#include "task.h" -#include "aligned_space.h" -#include "partitioner.h" -#include "tbb_profiling.h" - -namespace tbb { - -namespace interface6 { -//! @cond INTERNAL -namespace internal { - - using namespace tbb::internal; - - /** Values for reduction_context. */ - enum { - root_task, left_child, right_child - }; - - /** Represented as a char, not enum, for compactness. */ - typedef char reduction_context; - - //! Task type used to combine the partial results of parallel_reduce. - /** @ingroup algorithms */ - template - class finish_reduce: public flag_task { - //! Pointer to body, or NULL if the left child has not yet finished. - bool has_right_zombie; - const reduction_context my_context; - Body* my_body; - aligned_space zombie_space; - finish_reduce( reduction_context context_ ) : - has_right_zombie(false), // TODO: substitute by flag_task::child_stolen? - my_context(context_), - my_body(NULL) - { - } - ~finish_reduce() { - if( has_right_zombie ) - zombie_space.begin()->~Body(); - } - task* execute() { - if( has_right_zombie ) { - // Right child was stolen. - Body* s = zombie_space.begin(); - my_body->join( *s ); - // Body::join() won't be called if canceled. Defer destruction to destructor - } - if( my_context==left_child ) - itt_store_word_with_release( static_cast(parent())->my_body, my_body ); - return NULL; - } - template - friend class start_reduce; - }; - - //! allocate right task with new parent - void allocate_sibling(task* start_reduce_task, task *tasks[], size_t start_bytes, size_t finish_bytes); - - //! Task type used to split the work of parallel_reduce. - /** @ingroup algorithms */ - template - class start_reduce: public task { - typedef finish_reduce finish_type; - Body* my_body; - Range my_range; - typename Partitioner::task_partition_type my_partition; - reduction_context my_context; - /*override*/ task* execute(); - //! Update affinity info, if any - /*override*/ void note_affinity( affinity_id id ) { - my_partition.note_affinity( id ); - } - template - friend class finish_reduce; - -public: - //! Constructor used for root task - start_reduce( const Range& range, Body* body, Partitioner& partitioner ) : - my_body(body), - my_range(range), - my_partition(partitioner), - my_context(root_task) - { - } - //! Splitting constructor used to generate children. - /** parent_ becomes left child. Newly constructed object is right child. */ - start_reduce( start_reduce& parent_, split ) : - my_body(parent_.my_body), - my_range(parent_.my_range, split()), - my_partition(parent_.my_partition, split()), - my_context(right_child) - { - my_partition.set_affinity(*this); - parent_.my_context = left_child; - } - //! Construct right child from the given range as response to the demand. - /** parent_ remains left child. Newly constructed object is right child. */ - start_reduce( start_reduce& parent_, const Range& r, depth_t d ) : - my_body(parent_.my_body), - my_range(r), - my_partition(parent_.my_partition, split()), - my_context(right_child) - { - my_partition.set_affinity(*this); - my_partition.align_depth( d ); // TODO: move into constructor of partitioner - parent_.my_context = left_child; - } - static void run( const Range& range, Body& body, Partitioner& partitioner ) { - if( !range.empty() ) { -#if !__TBB_TASK_GROUP_CONTEXT || TBB_JOIN_OUTER_TASK_GROUP - task::spawn_root_and_wait( *new(task::allocate_root()) start_reduce(range,&body,partitioner) ); -#else - // Bound context prevents exceptions from body to affect nesting or sibling algorithms, - // and allows users to handle exceptions safely by wrapping parallel_for in the try-block. - task_group_context context; - task::spawn_root_and_wait( *new(task::allocate_root(context)) start_reduce(range,&body,partitioner) ); -#endif /* __TBB_TASK_GROUP_CONTEXT && !TBB_JOIN_OUTER_TASK_GROUP */ - } - } -#if __TBB_TASK_GROUP_CONTEXT - static void run( const Range& range, Body& body, Partitioner& partitioner, task_group_context& context ) { - if( !range.empty() ) - task::spawn_root_and_wait( *new(task::allocate_root(context)) start_reduce(range,&body,partitioner) ); - } -#endif /* __TBB_TASK_GROUP_CONTEXT */ - //! Run body for range - void run_body( Range &r ) { (*my_body)( r ); } - - //! spawn right task, serves as callback for partitioner - // TODO: remove code duplication from 'offer_work' methods - void offer_work(split) { - task *tasks[2]; - allocate_sibling(static_cast(this), tasks, sizeof(start_reduce), sizeof(finish_type)); - new((void*)tasks[0]) finish_type(my_context); - new((void*)tasks[1]) start_reduce(*this, split()); - spawn(*tasks[1]); - } - //! spawn right task, serves as callback for partitioner - void offer_work(const Range& r, depth_t d = 0) { - task *tasks[2]; - allocate_sibling(static_cast(this), tasks, sizeof(start_reduce), sizeof(finish_type)); - new((void*)tasks[0]) finish_type(my_context); - new((void*)tasks[1]) start_reduce(*this, r, d); - spawn(*tasks[1]); - } - }; - - //! allocate right task with new parent - // TODO: 'inline' here is to avoid multiple definition error but for sake of code size this should not be inlined - inline void allocate_sibling(task* start_reduce_task, task *tasks[], size_t start_bytes, size_t finish_bytes) { - tasks[0] = &start_reduce_task->allocate_continuation().allocate(finish_bytes); - start_reduce_task->set_parent(tasks[0]); - tasks[0]->set_ref_count(2); - tasks[1] = &tasks[0]->allocate_child().allocate(start_bytes); - } - - template - task* start_reduce::execute() { - my_partition.check_being_stolen( *this ); - if( my_context==right_child ) { - finish_type* parent_ptr = static_cast(parent()); - if( !itt_load_word_with_acquire(parent_ptr->my_body) ) { // TODO: replace by is_stolen_task() or by parent_ptr->ref_count() == 2??? - my_body = new( parent_ptr->zombie_space.begin() ) Body(*my_body,split()); - parent_ptr->has_right_zombie = true; - } - } else __TBB_ASSERT(my_context==root_task,NULL);// because left leaf spawns right leafs without recycling - my_partition.execute(*this, my_range); - if( my_context==left_child ) { - finish_type* parent_ptr = static_cast(parent()); - __TBB_ASSERT(my_body!=parent_ptr->zombie_space.begin(),NULL); - itt_store_word_with_release(parent_ptr->my_body, my_body ); - } - return NULL; - } - - //! Task type used to combine the partial results of parallel_deterministic_reduce. - /** @ingroup algorithms */ - template - class finish_deterministic_reduce: public task { - Body &my_left_body; - Body my_right_body; - - finish_deterministic_reduce( Body &body ) : - my_left_body( body ), - my_right_body( body, split() ) - { - } - task* execute() { - my_left_body.join( my_right_body ); - return NULL; - } - template - friend class start_deterministic_reduce; - }; - - //! Task type used to split the work of parallel_deterministic_reduce. - /** @ingroup algorithms */ - template - class start_deterministic_reduce: public task { - typedef finish_deterministic_reduce finish_type; - Body &my_body; - Range my_range; - /*override*/ task* execute(); - - //! Constructor used for root task - start_deterministic_reduce( const Range& range, Body& body ) : - my_body( body ), - my_range( range ) - { - } - //! Splitting constructor used to generate children. - /** parent_ becomes left child. Newly constructed object is right child. */ - start_deterministic_reduce( start_deterministic_reduce& parent_, finish_type& c ) : - my_body( c.my_right_body ), - my_range( parent_.my_range, split() ) - { - } - -public: - static void run( const Range& range, Body& body ) { - if( !range.empty() ) { -#if !__TBB_TASK_GROUP_CONTEXT || TBB_JOIN_OUTER_TASK_GROUP - task::spawn_root_and_wait( *new(task::allocate_root()) start_deterministic_reduce(range,&body) ); -#else - // Bound context prevents exceptions from body to affect nesting or sibling algorithms, - // and allows users to handle exceptions safely by wrapping parallel_for in the try-block. - task_group_context context; - task::spawn_root_and_wait( *new(task::allocate_root(context)) start_deterministic_reduce(range,body) ); -#endif /* __TBB_TASK_GROUP_CONTEXT && !TBB_JOIN_OUTER_TASK_GROUP */ - } - } -#if __TBB_TASK_GROUP_CONTEXT - static void run( const Range& range, Body& body, task_group_context& context ) { - if( !range.empty() ) - task::spawn_root_and_wait( *new(task::allocate_root(context)) start_deterministic_reduce(range,body) ); - } -#endif /* __TBB_TASK_GROUP_CONTEXT */ - }; - - template - task* start_deterministic_reduce::execute() { - if( !my_range.is_divisible() ) { - my_body( my_range ); - return NULL; - } else { - finish_type& c = *new( allocate_continuation() ) finish_type( my_body ); - recycle_as_child_of(c); - c.set_ref_count(2); - start_deterministic_reduce& b = *new( c.allocate_child() ) start_deterministic_reduce( *this, c ); - task::spawn(b); - return this; - } - } -} // namespace internal -//! @endcond -} //namespace interfaceX - -//! @cond INTERNAL -namespace internal { - using interface6::internal::start_reduce; - using interface6::internal::start_deterministic_reduce; - //! Auxiliary class for parallel_reduce; for internal use only. - /** The adaptor class that implements \ref parallel_reduce_body_req "parallel_reduce Body" - using given \ref parallel_reduce_lambda_req "anonymous function objects". - **/ - /** @ingroup algorithms */ - template - class lambda_reduce_body { - -//FIXME: decide if my_real_body, my_reduction, and identity_element should be copied or referenced -// (might require some performance measurements) - - const Value& identity_element; - const RealBody& my_real_body; - const Reduction& my_reduction; - Value my_value; - lambda_reduce_body& operator= ( const lambda_reduce_body& other ); - public: - lambda_reduce_body( const Value& identity, const RealBody& body, const Reduction& reduction ) - : identity_element(identity) - , my_real_body(body) - , my_reduction(reduction) - , my_value(identity) - { } - lambda_reduce_body( const lambda_reduce_body& other ) - : identity_element(other.identity_element) - , my_real_body(other.my_real_body) - , my_reduction(other.my_reduction) - , my_value(other.my_value) - { } - lambda_reduce_body( lambda_reduce_body& other, tbb::split ) - : identity_element(other.identity_element) - , my_real_body(other.my_real_body) - , my_reduction(other.my_reduction) - , my_value(other.identity_element) - { } - void operator()(Range& range) { - my_value = my_real_body(range, const_cast(my_value)); - } - void join( lambda_reduce_body& rhs ) { - my_value = my_reduction(const_cast(my_value), const_cast(rhs.my_value)); - } - Value result() const { - return my_value; - } - }; - -} // namespace internal -//! @endcond - -// Requirements on Range concept are documented in blocked_range.h - -/** \page parallel_reduce_body_req Requirements on parallel_reduce body - Class \c Body implementing the concept of parallel_reduce body must define: - - \code Body::Body( Body&, split ); \endcode Splitting constructor. - Must be able to run concurrently with operator() and method \c join - - \code Body::~Body(); \endcode Destructor - - \code void Body::operator()( Range& r ); \endcode Function call operator applying body to range \c r - and accumulating the result - - \code void Body::join( Body& b ); \endcode Join results. - The result in \c b should be merged into the result of \c this -**/ - -/** \page parallel_reduce_lambda_req Requirements on parallel_reduce anonymous function objects (lambda functions) - TO BE DOCUMENTED -**/ - -/** \name parallel_reduce - See also requirements on \ref range_req "Range" and \ref parallel_reduce_body_req "parallel_reduce Body". **/ -//@{ - -//! Parallel iteration with reduction and default partitioner. -/** @ingroup algorithms **/ -template -void parallel_reduce( const Range& range, Body& body ) { - internal::start_reduce::run( range, body, __TBB_DEFAULT_PARTITIONER() ); -} - -//! Parallel iteration with reduction and simple_partitioner -/** @ingroup algorithms **/ -template -void parallel_reduce( const Range& range, Body& body, const simple_partitioner& partitioner ) { - internal::start_reduce::run( range, body, partitioner ); -} - -//! Parallel iteration with reduction and auto_partitioner -/** @ingroup algorithms **/ -template -void parallel_reduce( const Range& range, Body& body, const auto_partitioner& partitioner ) { - internal::start_reduce::run( range, body, partitioner ); -} - -//! Parallel iteration with reduction and affinity_partitioner -/** @ingroup algorithms **/ -template -void parallel_reduce( const Range& range, Body& body, affinity_partitioner& partitioner ) { - internal::start_reduce::run( range, body, partitioner ); -} - -#if __TBB_TASK_GROUP_CONTEXT -//! Parallel iteration with reduction, simple partitioner and user-supplied context. -/** @ingroup algorithms **/ -template -void parallel_reduce( const Range& range, Body& body, const simple_partitioner& partitioner, task_group_context& context ) { - internal::start_reduce::run( range, body, partitioner, context ); -} - -//! Parallel iteration with reduction, auto_partitioner and user-supplied context -/** @ingroup algorithms **/ -template -void parallel_reduce( const Range& range, Body& body, const auto_partitioner& partitioner, task_group_context& context ) { - internal::start_reduce::run( range, body, partitioner, context ); -} - -//! Parallel iteration with reduction, affinity_partitioner and user-supplied context -/** @ingroup algorithms **/ -template -void parallel_reduce( const Range& range, Body& body, affinity_partitioner& partitioner, task_group_context& context ) { - internal::start_reduce::run( range, body, partitioner, context ); -} -#endif /* __TBB_TASK_GROUP_CONTEXT */ - -/** parallel_reduce overloads that work with anonymous function objects - (see also \ref parallel_reduce_lambda_req "requirements on parallel_reduce anonymous function objects"). **/ - -//! Parallel iteration with reduction and default partitioner. -/** @ingroup algorithms **/ -template -Value parallel_reduce( const Range& range, const Value& identity, const RealBody& real_body, const Reduction& reduction ) { - internal::lambda_reduce_body body(identity, real_body, reduction); - internal::start_reduce,const __TBB_DEFAULT_PARTITIONER> - ::run(range, body, __TBB_DEFAULT_PARTITIONER() ); - return body.result(); -} - -//! Parallel iteration with reduction and simple_partitioner. -/** @ingroup algorithms **/ -template -Value parallel_reduce( const Range& range, const Value& identity, const RealBody& real_body, const Reduction& reduction, - const simple_partitioner& partitioner ) { - internal::lambda_reduce_body body(identity, real_body, reduction); - internal::start_reduce,const simple_partitioner> - ::run(range, body, partitioner ); - return body.result(); -} - -//! Parallel iteration with reduction and auto_partitioner -/** @ingroup algorithms **/ -template -Value parallel_reduce( const Range& range, const Value& identity, const RealBody& real_body, const Reduction& reduction, - const auto_partitioner& partitioner ) { - internal::lambda_reduce_body body(identity, real_body, reduction); - internal::start_reduce,const auto_partitioner> - ::run( range, body, partitioner ); - return body.result(); -} - -//! Parallel iteration with reduction and affinity_partitioner -/** @ingroup algorithms **/ -template -Value parallel_reduce( const Range& range, const Value& identity, const RealBody& real_body, const Reduction& reduction, - affinity_partitioner& partitioner ) { - internal::lambda_reduce_body body(identity, real_body, reduction); - internal::start_reduce,affinity_partitioner> - ::run( range, body, partitioner ); - return body.result(); -} - -#if __TBB_TASK_GROUP_CONTEXT -//! Parallel iteration with reduction, simple partitioner and user-supplied context. -/** @ingroup algorithms **/ -template -Value parallel_reduce( const Range& range, const Value& identity, const RealBody& real_body, const Reduction& reduction, - const simple_partitioner& partitioner, task_group_context& context ) { - internal::lambda_reduce_body body(identity, real_body, reduction); - internal::start_reduce,const simple_partitioner> - ::run( range, body, partitioner, context ); - return body.result(); -} - -//! Parallel iteration with reduction, auto_partitioner and user-supplied context -/** @ingroup algorithms **/ -template -Value parallel_reduce( const Range& range, const Value& identity, const RealBody& real_body, const Reduction& reduction, - const auto_partitioner& partitioner, task_group_context& context ) { - internal::lambda_reduce_body body(identity, real_body, reduction); - internal::start_reduce,const auto_partitioner> - ::run( range, body, partitioner, context ); - return body.result(); -} - -//! Parallel iteration with reduction, affinity_partitioner and user-supplied context -/** @ingroup algorithms **/ -template -Value parallel_reduce( const Range& range, const Value& identity, const RealBody& real_body, const Reduction& reduction, - affinity_partitioner& partitioner, task_group_context& context ) { - internal::lambda_reduce_body body(identity, real_body, reduction); - internal::start_reduce,affinity_partitioner> - ::run( range, body, partitioner, context ); - return body.result(); -} -#endif /* __TBB_TASK_GROUP_CONTEXT */ - -//! Parallel iteration with deterministic reduction and default partitioner. -/** @ingroup algorithms **/ -template -void parallel_deterministic_reduce( const Range& range, Body& body ) { - internal::start_deterministic_reduce::run( range, body ); -} - -#if __TBB_TASK_GROUP_CONTEXT -//! Parallel iteration with deterministic reduction, simple partitioner and user-supplied context. -/** @ingroup algorithms **/ -template -void parallel_deterministic_reduce( const Range& range, Body& body, task_group_context& context ) { - internal::start_deterministic_reduce::run( range, body, context ); -} -#endif /* __TBB_TASK_GROUP_CONTEXT */ - -/** parallel_reduce overloads that work with anonymous function objects - (see also \ref parallel_reduce_lambda_req "requirements on parallel_reduce anonymous function objects"). **/ - -//! Parallel iteration with deterministic reduction and default partitioner. -/** @ingroup algorithms **/ -template -Value parallel_deterministic_reduce( const Range& range, const Value& identity, const RealBody& real_body, const Reduction& reduction ) { - internal::lambda_reduce_body body(identity, real_body, reduction); - internal::start_deterministic_reduce > - ::run(range, body); - return body.result(); -} - -#if __TBB_TASK_GROUP_CONTEXT -//! Parallel iteration with deterministic reduction, simple partitioner and user-supplied context. -/** @ingroup algorithms **/ -template -Value parallel_deterministic_reduce( const Range& range, const Value& identity, const RealBody& real_body, const Reduction& reduction, - task_group_context& context ) { - internal::lambda_reduce_body body(identity, real_body, reduction); - internal::start_deterministic_reduce > - ::run( range, body, context ); - return body.result(); -} -#endif /* __TBB_TASK_GROUP_CONTEXT */ -//@} - -} // namespace tbb - -#endif /* __TBB_parallel_reduce_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/parallel_scan.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/parallel_scan.h deleted file mode 100644 index 987c3a1e5..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/parallel_scan.h +++ /dev/null @@ -1,354 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_parallel_scan_H -#define __TBB_parallel_scan_H - -#include "task.h" -#include "aligned_space.h" -#include -#include "partitioner.h" - -namespace tbb { - -//! Used to indicate that the initial scan is being performed. -/** @ingroup algorithms */ -struct pre_scan_tag { - static bool is_final_scan() {return false;} -}; - -//! Used to indicate that the final scan is being performed. -/** @ingroup algorithms */ -struct final_scan_tag { - static bool is_final_scan() {return true;} -}; - -//! @cond INTERNAL -namespace internal { - - //! Performs final scan for a leaf - /** @ingroup algorithms */ - template - class final_sum: public task { - public: - Body my_body; - private: - aligned_space my_range; - //! Where to put result of last subrange, or NULL if not last subrange. - Body* my_stuff_last; - public: - final_sum( Body& body_ ) : - my_body(body_,split()) - { - poison_pointer(my_stuff_last); - } - ~final_sum() { - my_range.begin()->~Range(); - } - void finish_construction( const Range& range_, Body* stuff_last_ ) { - new( my_range.begin() ) Range(range_); - my_stuff_last = stuff_last_; - } - private: - /*override*/ task* execute() { - my_body( *my_range.begin(), final_scan_tag() ); - if( my_stuff_last ) - my_stuff_last->assign(my_body); - return NULL; - } - }; - - //! Split work to be done in the scan. - /** @ingroup algorithms */ - template - class sum_node: public task { - typedef final_sum final_sum_type; - public: - final_sum_type *my_incoming; - final_sum_type *my_body; - Body *my_stuff_last; - private: - final_sum_type *my_left_sum; - sum_node *my_left; - sum_node *my_right; - bool my_left_is_final; - Range my_range; - sum_node( const Range range_, bool left_is_final_ ) : - my_left_sum(NULL), - my_left(NULL), - my_right(NULL), - my_left_is_final(left_is_final_), - my_range(range_) - { - // Poison fields that will be set by second pass. - poison_pointer(my_body); - poison_pointer(my_incoming); - } - task* create_child( const Range& range_, final_sum_type& f, sum_node* n, final_sum_type* incoming_, Body* stuff_last_ ) { - if( !n ) { - f.recycle_as_child_of( *this ); - f.finish_construction( range_, stuff_last_ ); - return &f; - } else { - n->my_body = &f; - n->my_incoming = incoming_; - n->my_stuff_last = stuff_last_; - return n; - } - } - /*override*/ task* execute() { - if( my_body ) { - if( my_incoming ) - my_left_sum->my_body.reverse_join( my_incoming->my_body ); - recycle_as_continuation(); - sum_node& c = *this; - task* b = c.create_child(Range(my_range,split()),*my_left_sum,my_right,my_left_sum,my_stuff_last); - task* a = my_left_is_final ? NULL : c.create_child(my_range,*my_body,my_left,my_incoming,NULL); - set_ref_count( (a!=NULL)+(b!=NULL) ); - my_body = NULL; - if( a ) spawn(*b); - else a = b; - return a; - } else { - return NULL; - } - } - template - friend class start_scan; - - template - friend class finish_scan; - }; - - //! Combine partial results - /** @ingroup algorithms */ - template - class finish_scan: public task { - typedef sum_node sum_node_type; - typedef final_sum final_sum_type; - final_sum_type** const my_sum; - sum_node_type*& my_return_slot; - public: - final_sum_type* my_right_zombie; - sum_node_type& my_result; - - /*override*/ task* execute() { - __TBB_ASSERT( my_result.ref_count()==(my_result.my_left!=NULL)+(my_result.my_right!=NULL), NULL ); - if( my_result.my_left ) - my_result.my_left_is_final = false; - if( my_right_zombie && my_sum ) - ((*my_sum)->my_body).reverse_join(my_result.my_left_sum->my_body); - __TBB_ASSERT( !my_return_slot, NULL ); - if( my_right_zombie || my_result.my_right ) { - my_return_slot = &my_result; - } else { - destroy( my_result ); - } - if( my_right_zombie && !my_sum && !my_result.my_right ) { - destroy(*my_right_zombie); - my_right_zombie = NULL; - } - return NULL; - } - - finish_scan( sum_node_type*& return_slot_, final_sum_type** sum_, sum_node_type& result_ ) : - my_sum(sum_), - my_return_slot(return_slot_), - my_right_zombie(NULL), - my_result(result_) - { - __TBB_ASSERT( !my_return_slot, NULL ); - } - }; - - //! Initial task to split the work - /** @ingroup algorithms */ - template - class start_scan: public task { - typedef sum_node sum_node_type; - typedef final_sum final_sum_type; - final_sum_type* my_body; - /** Non-null if caller is requesting total. */ - final_sum_type** my_sum; - sum_node_type** my_return_slot; - /** Null if computing root. */ - sum_node_type* my_parent_sum; - bool my_is_final; - bool my_is_right_child; - Range my_range; - typename Partitioner::partition_type my_partition; - /*override*/ task* execute(); - public: - start_scan( sum_node_type*& return_slot_, start_scan& parent_, sum_node_type* parent_sum_ ) : - my_body(parent_.my_body), - my_sum(parent_.my_sum), - my_return_slot(&return_slot_), - my_parent_sum(parent_sum_), - my_is_final(parent_.my_is_final), - my_is_right_child(false), - my_range(parent_.my_range,split()), - my_partition(parent_.my_partition,split()) - { - __TBB_ASSERT( !*my_return_slot, NULL ); - } - - start_scan( sum_node_type*& return_slot_, const Range& range_, final_sum_type& body_, const Partitioner& partitioner_) : - my_body(&body_), - my_sum(NULL), - my_return_slot(&return_slot_), - my_parent_sum(NULL), - my_is_final(true), - my_is_right_child(false), - my_range(range_), - my_partition(partitioner_) - { - __TBB_ASSERT( !*my_return_slot, NULL ); - } - - static void run( const Range& range_, Body& body_, const Partitioner& partitioner_ ) { - if( !range_.empty() ) { - typedef internal::start_scan start_pass1_type; - internal::sum_node* root = NULL; - typedef internal::final_sum final_sum_type; - final_sum_type* temp_body = new(task::allocate_root()) final_sum_type( body_ ); - start_pass1_type& pass1 = *new(task::allocate_root()) start_pass1_type( - /*my_return_slot=*/root, - range_, - *temp_body, - partitioner_ ); - task::spawn_root_and_wait( pass1 ); - if( root ) { - root->my_body = temp_body; - root->my_incoming = NULL; - root->my_stuff_last = &body_; - task::spawn_root_and_wait( *root ); - } else { - body_.assign(temp_body->my_body); - temp_body->finish_construction( range_, NULL ); - temp_body->destroy(*temp_body); - } - } - } - }; - - template - task* start_scan::execute() { - typedef internal::finish_scan finish_pass1_type; - finish_pass1_type* p = my_parent_sum ? static_cast( parent() ) : NULL; - // Inspecting p->result.left_sum would ordinarily be a race condition. - // But we inspect it only if we are not a stolen task, in which case we - // know that task assigning to p->result.left_sum has completed. - bool treat_as_stolen = my_is_right_child && (is_stolen_task() || my_body!=p->my_result.my_left_sum); - if( treat_as_stolen ) { - // Invocation is for right child that has been really stolen or needs to be virtually stolen - p->my_right_zombie = my_body = new( allocate_root() ) final_sum_type(my_body->my_body); - my_is_final = false; - } - task* next_task = NULL; - if( (my_is_right_child && !treat_as_stolen) || !my_range.is_divisible() || my_partition.should_execute_range(*this) ) { - if( my_is_final ) - (my_body->my_body)( my_range, final_scan_tag() ); - else if( my_sum ) - (my_body->my_body)( my_range, pre_scan_tag() ); - if( my_sum ) - *my_sum = my_body; - __TBB_ASSERT( !*my_return_slot, NULL ); - } else { - sum_node_type* result; - if( my_parent_sum ) - result = new(allocate_additional_child_of(*my_parent_sum)) sum_node_type(my_range,/*my_left_is_final=*/my_is_final); - else - result = new(task::allocate_root()) sum_node_type(my_range,/*my_left_is_final=*/my_is_final); - finish_pass1_type& c = *new( allocate_continuation()) finish_pass1_type(*my_return_slot,my_sum,*result); - // Split off right child - start_scan& b = *new( c.allocate_child() ) start_scan( /*my_return_slot=*/result->my_right, *this, result ); - b.my_is_right_child = true; - // Left child is recycling of *this. Must recycle this before spawning b, - // otherwise b might complete and decrement c.ref_count() to zero, which - // would cause c.execute() to run prematurely. - recycle_as_child_of(c); - c.set_ref_count(2); - c.spawn(b); - my_sum = &result->my_left_sum; - my_return_slot = &result->my_left; - my_is_right_child = false; - next_task = this; - my_parent_sum = result; - __TBB_ASSERT( !*my_return_slot, NULL ); - } - return next_task; - } -} // namespace internal -//! @endcond - -// Requirements on Range concept are documented in blocked_range.h - -/** \page parallel_scan_body_req Requirements on parallel_scan body - Class \c Body implementing the concept of parallel_scan body must define: - - \code Body::Body( Body&, split ); \endcode Splitting constructor. - Split \c b so that \c this and \c b can accumulate separately - - \code Body::~Body(); \endcode Destructor - - \code void Body::operator()( const Range& r, pre_scan_tag ); \endcode - Preprocess iterations for range \c r - - \code void Body::operator()( const Range& r, final_scan_tag ); \endcode - Do final processing for iterations of range \c r - - \code void Body::reverse_join( Body& a ); \endcode - Merge preprocessing state of \c a into \c this, where \c a was - created earlier from \c b by b's splitting constructor -**/ - -/** \name parallel_scan - See also requirements on \ref range_req "Range" and \ref parallel_scan_body_req "parallel_scan Body". **/ -//@{ - -//! Parallel prefix with default partitioner -/** @ingroup algorithms **/ -template -void parallel_scan( const Range& range, Body& body ) { - internal::start_scan::run(range,body,__TBB_DEFAULT_PARTITIONER()); -} - -//! Parallel prefix with simple_partitioner -/** @ingroup algorithms **/ -template -void parallel_scan( const Range& range, Body& body, const simple_partitioner& partitioner ) { - internal::start_scan::run(range,body,partitioner); -} - -//! Parallel prefix with auto_partitioner -/** @ingroup algorithms **/ -template -void parallel_scan( const Range& range, Body& body, const auto_partitioner& partitioner ) { - internal::start_scan::run(range,body,partitioner); -} -//@} - -} // namespace tbb - -#endif /* __TBB_parallel_scan_H */ - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/parallel_sort.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/parallel_sort.h deleted file mode 100644 index 445cf109a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/parallel_sort.h +++ /dev/null @@ -1,232 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_parallel_sort_H -#define __TBB_parallel_sort_H - -#include "parallel_for.h" -#include "blocked_range.h" -#include -#include -#include - -namespace tbb { - -//! @cond INTERNAL -namespace internal { - -//! Range used in quicksort to split elements into subranges based on a value. -/** The split operation selects a splitter and places all elements less than or equal - to the value in the first range and the remaining elements in the second range. - @ingroup algorithms */ -template -class quick_sort_range: private no_assign { - - inline size_t median_of_three(const RandomAccessIterator &array, size_t l, size_t m, size_t r) const { - return comp(array[l], array[m]) ? ( comp(array[m], array[r]) ? m : ( comp( array[l], array[r]) ? r : l ) ) - : ( comp(array[r], array[m]) ? m : ( comp( array[r], array[l] ) ? r : l ) ); - } - - inline size_t pseudo_median_of_nine( const RandomAccessIterator &array, const quick_sort_range &range ) const { - size_t offset = range.size/8u; - return median_of_three(array, - median_of_three(array, 0, offset, offset*2), - median_of_three(array, offset*3, offset*4, offset*5), - median_of_three(array, offset*6, offset*7, range.size - 1) ); - - } - -public: - - static const size_t grainsize = 500; - const Compare ∁ - RandomAccessIterator begin; - size_t size; - - quick_sort_range( RandomAccessIterator begin_, size_t size_, const Compare &comp_ ) : - comp(comp_), begin(begin_), size(size_) {} - - bool empty() const {return size==0;} - bool is_divisible() const {return size>=grainsize;} - - quick_sort_range( quick_sort_range& range, split ) : comp(range.comp) { - using std::swap; - RandomAccessIterator array = range.begin; - RandomAccessIterator key0 = range.begin; - size_t m = pseudo_median_of_nine(array, range); - if (m) swap ( array[0], array[m] ); - - size_t i=0; - size_t j=range.size; - // Partition interval [i+1,j-1] with key *key0. - for(;;) { - __TBB_ASSERT( i -class quick_sort_pretest_body : internal::no_assign { - const Compare ∁ - -public: - quick_sort_pretest_body(const Compare &_comp) : comp(_comp) {} - - void operator()( const blocked_range& range ) const { - task &my_task = task::self(); - RandomAccessIterator my_end = range.end(); - - int i = 0; - for (RandomAccessIterator k = range.begin(); k != my_end; ++k, ++i) { - if ( i%64 == 0 && my_task.is_cancelled() ) break; - - // The k-1 is never out-of-range because the first chunk starts at begin+serial_cutoff+1 - if ( comp( *(k), *(k-1) ) ) { - my_task.cancel_group_execution(); - break; - } - } - } - -}; -#endif /* __TBB_TASK_GROUP_CONTEXT */ - -//! Body class used to sort elements in a range that is smaller than the grainsize. -/** @ingroup algorithms */ -template -struct quick_sort_body { - void operator()( const quick_sort_range& range ) const { - //SerialQuickSort( range.begin, range.size, range.comp ); - std::sort( range.begin, range.begin + range.size, range.comp ); - } -}; - -//! Wrapper method to initiate the sort by calling parallel_for. -/** @ingroup algorithms */ -template -void parallel_quick_sort( RandomAccessIterator begin, RandomAccessIterator end, const Compare& comp ) { -#if __TBB_TASK_GROUP_CONTEXT - task_group_context my_context; - const int serial_cutoff = 9; - - __TBB_ASSERT( begin + serial_cutoff < end, "min_parallel_size is smaller than serial cutoff?" ); - RandomAccessIterator k; - for ( k = begin ; k != begin + serial_cutoff; ++k ) { - if ( comp( *(k+1), *k ) ) { - goto do_parallel_quick_sort; - } - } - - parallel_for( blocked_range(k+1, end), - quick_sort_pretest_body(comp), - auto_partitioner(), - my_context); - - if (my_context.is_group_execution_cancelled()) -do_parallel_quick_sort: -#endif /* __TBB_TASK_GROUP_CONTEXT */ - parallel_for( quick_sort_range(begin, end-begin, comp ), - quick_sort_body(), - auto_partitioner() ); -} - -} // namespace internal -//! @endcond - -/** \page parallel_sort_iter_req Requirements on iterators for parallel_sort - Requirements on value type \c T of \c RandomAccessIterator for \c parallel_sort: - - \code void swap( T& x, T& y ) \endcode Swaps \c x and \c y - - \code bool Compare::operator()( const T& x, const T& y ) \endcode - True if x comes before y; -**/ - -/** \name parallel_sort - See also requirements on \ref parallel_sort_iter_req "iterators for parallel_sort". **/ -//@{ - -//! Sorts the data in [begin,end) using the given comparator -/** The compare function object is used for all comparisons between elements during sorting. - The compare object must define a bool operator() function. - @ingroup algorithms **/ -template -void parallel_sort( RandomAccessIterator begin, RandomAccessIterator end, const Compare& comp) { - const int min_parallel_size = 500; - if( end > begin ) { - if (end - begin < min_parallel_size) { - std::sort(begin, end, comp); - } else { - internal::parallel_quick_sort(begin, end, comp); - } - } -} - -//! Sorts the data in [begin,end) with a default comparator \c std::less -/** @ingroup algorithms **/ -template -inline void parallel_sort( RandomAccessIterator begin, RandomAccessIterator end ) { - parallel_sort( begin, end, std::less< typename std::iterator_traits::value_type >() ); -} - -//! Sorts the data in the range \c [begin,end) with a default comparator \c std::less -/** @ingroup algorithms **/ -template -inline void parallel_sort( T * begin, T * end ) { - parallel_sort( begin, end, std::less< T >() ); -} -//@} - - -} // namespace tbb - -#endif - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/parallel_while.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/parallel_while.h deleted file mode 100644 index f0a161781..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/parallel_while.h +++ /dev/null @@ -1,194 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_parallel_while -#define __TBB_parallel_while - -#include "task.h" -#include - -namespace tbb { - -template -class parallel_while; - -//! @cond INTERNAL -namespace internal { - - template class while_task; - - //! For internal use only. - /** Executes one iteration of a while. - @ingroup algorithms */ - template - class while_iteration_task: public task { - const Body& my_body; - typename Body::argument_type my_value; - /*override*/ task* execute() { - my_body(my_value); - return NULL; - } - while_iteration_task( const typename Body::argument_type& value, const Body& body ) : - my_body(body), my_value(value) - {} - template friend class while_group_task; - friend class tbb::parallel_while; - }; - - //! For internal use only - /** Unpacks a block of iterations. - @ingroup algorithms */ - template - class while_group_task: public task { - static const size_t max_arg_size = 4; - const Body& my_body; - size_t size; - typename Body::argument_type my_arg[max_arg_size]; - while_group_task( const Body& body ) : my_body(body), size(0) {} - /*override*/ task* execute() { - typedef while_iteration_task iteration_type; - __TBB_ASSERT( size>0, NULL ); - task_list list; - task* t; - size_t k=0; - for(;;) { - t = new( allocate_child() ) iteration_type(my_arg[k],my_body); - if( ++k==size ) break; - list.push_back(*t); - } - set_ref_count(int(k+1)); - spawn(list); - spawn_and_wait_for_all(*t); - return NULL; - } - template friend class while_task; - }; - - //! For internal use only. - /** Gets block of iterations from a stream and packages them into a while_group_task. - @ingroup algorithms */ - template - class while_task: public task { - Stream& my_stream; - const Body& my_body; - empty_task& my_barrier; - /*override*/ task* execute() { - typedef while_group_task block_type; - block_type& t = *new( allocate_additional_child_of(my_barrier) ) block_type(my_body); - size_t k=0; - while( my_stream.pop_if_present(t.my_arg[k]) ) { - if( ++k==block_type::max_arg_size ) { - // There might be more iterations. - recycle_to_reexecute(); - break; - } - } - if( k==0 ) { - destroy(t); - return NULL; - } else { - t.size = k; - return &t; - } - } - while_task( Stream& stream, const Body& body, empty_task& barrier ) : - my_stream(stream), - my_body(body), - my_barrier(barrier) - {} - friend class tbb::parallel_while; - }; - -} // namespace internal -//! @endcond - -//! Parallel iteration over a stream, with optional addition of more work. -/** The Body b has the requirement: \n - "b(v)" \n - "b.argument_type" \n - where v is an argument_type - @ingroup algorithms */ -template -class parallel_while: internal::no_copy { -public: - //! Construct empty non-running parallel while. - parallel_while() : my_body(NULL), my_barrier(NULL) {} - - //! Destructor cleans up data members before returning. - ~parallel_while() { - if( my_barrier ) { - my_barrier->destroy(*my_barrier); - my_barrier = NULL; - } - } - - //! Type of items - typedef typename Body::argument_type value_type; - - //! Apply body.apply to each item in the stream. - /** A Stream s has the requirements \n - "S::value_type" \n - "s.pop_if_present(value) is convertible to bool */ - template - void run( Stream& stream, const Body& body ); - - //! Add a work item while running. - /** Should be executed only by body.apply or a thread spawned therefrom. */ - void add( const value_type& item ); - -private: - const Body* my_body; - empty_task* my_barrier; -}; - -template -template -void parallel_while::run( Stream& stream, const Body& body ) { - using namespace internal; - empty_task& barrier = *new( task::allocate_root() ) empty_task(); - my_body = &body; - my_barrier = &barrier; - my_barrier->set_ref_count(2); - while_task& w = *new( my_barrier->allocate_child() ) while_task( stream, body, barrier ); - my_barrier->spawn_and_wait_for_all(w); - my_barrier->destroy(*my_barrier); - my_barrier = NULL; - my_body = NULL; -} - -template -void parallel_while::add( const value_type& item ) { - __TBB_ASSERT(my_barrier,"attempt to add to parallel_while that is not running"); - typedef internal::while_iteration_task iteration_type; - iteration_type& i = *new( task::allocate_additional_child_of(*my_barrier) ) iteration_type(item,*my_body); - task::self().spawn( i ); -} - -} // namespace - -#endif /* __TBB_parallel_while */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/partitioner.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/partitioner.h deleted file mode 100644 index 733186aaa..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/partitioner.h +++ /dev/null @@ -1,479 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_partitioner_H -#define __TBB_partitioner_H - -#ifndef __TBB_INITIAL_CHUNKS -#define __TBB_INITIAL_CHUNKS 2 -#endif -#ifndef __TBB_RANGE_POOL_CAPACITY -#define __TBB_RANGE_POOL_CAPACITY 8 -#endif -#ifndef __TBB_INIT_DEPTH -#define __TBB_INIT_DEPTH 5 -#endif - -#include "task.h" -#include "aligned_space.h" -#include "atomic.h" - -#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) - // Workaround for overzealous compiler warnings - #pragma warning (push) - #pragma warning (disable: 4244) -#endif - -namespace tbb { - -class auto_partitioner; -class simple_partitioner; -class affinity_partitioner; -namespace interface6 { - namespace internal { - class affinity_partition_type; - } -} - -namespace internal { //< @cond INTERNAL -size_t __TBB_EXPORTED_FUNC get_initial_auto_partitioner_divisor(); - -//! Defines entry point for affinity partitioner into tbb run-time library. -class affinity_partitioner_base_v3: no_copy { - friend class tbb::affinity_partitioner; - friend class tbb::interface6::internal::affinity_partition_type; - //! Array that remembers affinities of tree positions to affinity_id. - /** NULL if my_size==0. */ - affinity_id* my_array; - //! Number of elements in my_array. - size_t my_size; - //! Zeros the fields. - affinity_partitioner_base_v3() : my_array(NULL), my_size(0) {} - //! Deallocates my_array. - ~affinity_partitioner_base_v3() {resize(0);} - //! Resize my_array. - /** Retains values if resulting size is the same. */ - void __TBB_EXPORTED_METHOD resize( unsigned factor ); -}; - -//! Provides backward-compatible methods for partition objects without affinity. -class partition_type_base { -public: - void set_affinity( task & ) {} - void note_affinity( task::affinity_id ) {} - task* continue_after_execute_range() {return NULL;} - bool decide_whether_to_delay() {return false;} - void spawn_or_delay( bool, task& b ) { - task::spawn(b); - } -}; - -template class start_scan; - -} //< namespace internal @endcond - -namespace serial { -namespace interface6 { -template class start_for; -} -} - -namespace interface6 { -//! @cond INTERNAL -namespace internal { -using namespace tbb::internal; -template class start_for; -template class start_reduce; - -//! Join task node that contains shared flag for stealing feedback -class flag_task: public task { -public: - tbb::atomic my_child_stolen; - flag_task() { my_child_stolen = false; } - task* execute() { return NULL; } - static void mark_task_stolen(task &t) { - tbb::atomic &flag = static_cast(t.parent())->my_child_stolen; -#if TBB_USE_THREADING_TOOLS - // Threading tools respect lock prefix but report false-positive data-race via plain store - flag.fetch_and_store(true); -#else - flag = true; -#endif //TBB_USE_THREADING_TOOLS - } - static bool is_peer_stolen(task &t) { - return static_cast(t.parent())->my_child_stolen; - } -}; - -//! Depth is a relative depth of recursive division inside a range pool. Relative depth allows -//! infinite absolute depth of the recursion for heavily imbalanced workloads with range represented -//! by a number that cannot fit into machine word. -typedef unsigned char depth_t; - -//! Range pool stores ranges of type T in a circular buffer with MaxCapacity -template -class range_vector { - depth_t my_head; - depth_t my_tail; - depth_t my_size; - depth_t my_depth[MaxCapacity]; // relative depths of stored ranges - tbb::aligned_space my_pool; - -public: - //! initialize via first range in pool - range_vector(const T& elem) : my_head(0), my_tail(0), my_size(1) { - my_depth[0] = 0; - new( my_pool.begin() ) T(elem);//TODO: std::move? - } - ~range_vector() { - while( !empty() ) pop_back(); - } - bool empty() const { return my_size == 0; } - depth_t size() const { return my_size; } - //! Populates range pool via ranges up to max depth or while divisible - //! max_depth starts from 0, e.g. value 2 makes 3 ranges in the pool up to two 1/4 pieces - void split_to_fill(depth_t max_depth) { - while( my_size < MaxCapacity && my_depth[my_head] < max_depth - && my_pool.begin()[my_head].is_divisible() ) { - depth_t prev = my_head; - my_head = (my_head + 1) % MaxCapacity; - new(my_pool.begin()+my_head) T(my_pool.begin()[prev]); // copy TODO: std::move? - my_pool.begin()[prev].~T(); // instead of assignment - new(my_pool.begin()+prev) T(my_pool.begin()[my_head], split()); // do 'inverse' split - my_depth[my_head] = ++my_depth[prev]; - my_size++; - } - } - void pop_back() { - __TBB_ASSERT(my_size > 0, "range_vector::pop_back() with empty size"); - my_pool.begin()[my_head].~T(); - my_size--; - my_head = (my_head + MaxCapacity - 1) % MaxCapacity; - } - void pop_front() { - __TBB_ASSERT(my_size > 0, "range_vector::pop_front() with empty size"); - my_pool.begin()[my_tail].~T(); - my_size--; - my_tail = (my_tail + 1) % MaxCapacity; - } - T& back() { - __TBB_ASSERT(my_size > 0, "range_vector::back() with empty size"); - return my_pool.begin()[my_head]; - } - T& front() { - __TBB_ASSERT(my_size > 0, "range_vector::front() with empty size"); - return my_pool.begin()[my_tail]; - } - //! similarly to front(), returns depth of the first range in the pool - depth_t front_depth() { - __TBB_ASSERT(my_size > 0, "range_vector::front_depth() with empty size"); - return my_depth[my_tail]; - } -}; - -//! Provides default methods for partition objects and common algorithm blocks. -template -struct partition_type_base { - // decision makers - void set_affinity( task & ) {} - void note_affinity( task::affinity_id ) {} - bool check_being_stolen(task &) { return false; } // part of old should_execute_range() - bool check_for_demand(task &) { return false; } - bool is_divisible() { return true; } // part of old should_execute_range() - depth_t max_depth() { return 0; } - void align_depth(depth_t) { } - // common function blocks - Partition& self() { return *static_cast(this); } // CRTP helper - template - void execute(StartType &start, Range &range) { - // The algorithm in a few words ([]-denotes calls to decision methods of partitioner): - // [If this task is stolen, adjust depth and divisions if necessary, set flag]. - // If range is divisible { - // Spread the work while [initial divisions left]; - // Create trap task [if necessary]; - // } - // If not divisible or [max depth is reached], execute, else do the range pool part - if ( range.is_divisible() ) { - if ( self().is_divisible() ) - do start.offer_work( split() ); // split until is divisible - while ( range.is_divisible() && self().is_divisible() ); - } - if( !range.is_divisible() || !self().max_depth() ) - start.run_body( range ); // simple partitioner goes always here - else { // do range pool - internal::range_vector range_pool(range); - do { - range_pool.split_to_fill(self().max_depth()); // fill range pool - if( self().check_for_demand( start ) ) { - if( range_pool.size() > 1 ) { - start.offer_work( range_pool.front(), range_pool.front_depth() ); - range_pool.pop_front(); - continue; - } - if( range_pool.back().is_divisible() ) // was not enough depth to fork a task - continue; // note: check_for_demand() should guarantee increasing max_depth() next time - } - start.run_body( range_pool.back() ); - range_pool.pop_back(); - } while( !range_pool.empty() && !start.is_cancelled() ); - } - } -}; - -//! Provides default methods for auto (adaptive) partition objects. -template -struct auto_partition_type_base : partition_type_base { - size_t my_divisor; - depth_t my_max_depth; - auto_partition_type_base() : my_max_depth(__TBB_INIT_DEPTH) { - my_divisor = tbb::internal::get_initial_auto_partitioner_divisor()*__TBB_INITIAL_CHUNKS/4; - __TBB_ASSERT(my_divisor, "initial value of get_initial_auto_partitioner_divisor() is not valid"); - } - auto_partition_type_base(auto_partition_type_base &src, split) { - my_max_depth = src.my_max_depth; -#if __TBB_INITIAL_TASK_IMBALANCE - if( src.my_divisor <= 1 ) my_divisor = 0; - else my_divisor = src.my_divisor = (src.my_divisor+1u) / 2u; -#else - my_divisor = src.my_divisor / 2u; - src.my_divisor = src.my_divisor - my_divisor; // TODO: check the effect separately - if(my_divisor) src.my_max_depth += static_cast(__TBB_Log2(src.my_divisor/my_divisor)); -#endif - } - bool check_being_stolen( task &t) { // part of old should_execute_range() - if( !my_divisor ) { // if not from the top P tasks of binary tree - my_divisor = 1; // TODO: replace by on-stack flag (partition_state's member)? - if( t.is_stolen_task() ) { -#if TBB_USE_EXCEPTIONS - // RTTI is available, check whether the cast is valid - __TBB_ASSERT(dynamic_cast(t.parent()), 0); - // correctness of the cast relies on avoiding the root task for which: - // - initial value of my_divisor != 0 (protected by separate assertion) - // - is_stolen_task() always returns false for the root task. -#endif - flag_task::mark_task_stolen(t); - my_max_depth++; - return true; - } - } - return false; - } - bool is_divisible() { // part of old should_execute_range() - if( my_divisor > 1 ) return true; - if( my_divisor && my_max_depth > 1 ) { // can split the task and once more internally. TODO: on-stack flag instead - // keep same fragmentation while splitting for the local task pool - my_max_depth--; - my_divisor = 0; // decrease max_depth once per task - return true; - } else return false; - } - bool check_for_demand(task &t) { - if( flag_task::is_peer_stolen(t) ) { - my_max_depth++; - return true; - } else return false; - } - void align_depth(depth_t base) { - __TBB_ASSERT(base <= my_max_depth, 0); - my_max_depth -= base; - } - depth_t max_depth() { return my_max_depth; } -}; - -//! Provides default methods for affinity (adaptive) partition objects. -class affinity_partition_type : public auto_partition_type_base { - static const unsigned factor_power = 4; - static const unsigned factor = 1< factor ) - d &= 0u-factor; - map_mid = map_end - d; - } -public: - affinity_partition_type( tbb::internal::affinity_partitioner_base_v3& ap ) { - __TBB_ASSERT( (factor&(factor-1))==0, "factor must be power of two" ); - ap.resize(factor); - my_array = ap.my_array; - map_begin = 0; - map_end = unsigned(ap.my_size); - set_mid(); - my_delay = true; - my_divisor /= __TBB_INITIAL_CHUNKS; // let exactly P tasks to be distributed across workers - my_max_depth = factor_power+1; // the first factor_power ranges will be spawned, and >=1 ranges should be left - __TBB_ASSERT( my_max_depth < __TBB_RANGE_POOL_CAPACITY, 0 ); - } - affinity_partition_type(affinity_partition_type& p, split) - : auto_partition_type_base(p, split()), my_array(p.my_array) { - __TBB_ASSERT( p.map_end-p.map_begin__TBB_Log2(map_end-map_mid), 0); - return true;// do not do my_max_depth++ here, but be sure my_max_depth is big enough - } - if( flag_task::is_peer_stolen(t) ) { - my_max_depth++; - return true; - } - } else my_delay = false; - return false; - } - bool is_divisible() { - return my_divisor > 1; - } - static const unsigned range_pool_size = __TBB_RANGE_POOL_CAPACITY; -}; - -class auto_partition_type: public auto_partition_type_base { -public: - auto_partition_type( const auto_partitioner& ) {} - auto_partition_type( auto_partition_type& src, split) - : auto_partition_type_base(src, split()) {} - static const unsigned range_pool_size = __TBB_RANGE_POOL_CAPACITY; -}; - -class simple_partition_type: public partition_type_base { -public: - simple_partition_type( const simple_partitioner& ) {} - simple_partition_type( const simple_partition_type&, split ) {} - //! simplified algorithm - template - void execute(StartType &start, Range &range) { - while( range.is_divisible() ) - start.offer_work( split() ); - start.run_body( range ); - } - //static const unsigned range_pool_size = 1; - not necessary because execute() is overridden -}; - -//! Backward-compatible partition for auto and affinity partition objects. -class old_auto_partition_type: public tbb::internal::partition_type_base { - size_t num_chunks; - static const size_t VICTIM_CHUNKS = 4; -public: - bool should_execute_range(const task &t) { - if( num_chunks friend class serial::interface6::start_for; - template friend class interface6::internal::start_for; - template friend class interface6::internal::start_reduce; - template friend class internal::start_scan; - // backward compatibility - class partition_type: public internal::partition_type_base { - public: - bool should_execute_range(const task& ) {return false;} - partition_type( const simple_partitioner& ) {} - partition_type( const partition_type&, split ) {} - }; - // new implementation just extends existing interface - typedef interface6::internal::simple_partition_type task_partition_type; -}; - -//! An auto partitioner -/** The range is initial divided into several large chunks. - Chunks are further subdivided into smaller pieces if demand detected and they are divisible. - @ingroup algorithms */ -class auto_partitioner { -public: - auto_partitioner() {} - -private: - template friend class serial::interface6::start_for; - template friend class interface6::internal::start_for; - template friend class interface6::internal::start_reduce; - template friend class internal::start_scan; - // backward compatibility - typedef interface6::internal::old_auto_partition_type partition_type; - // new implementation just extends existing interface - typedef interface6::internal::auto_partition_type task_partition_type; -}; - -//! An affinity partitioner -class affinity_partitioner: internal::affinity_partitioner_base_v3 { -public: - affinity_partitioner() {} - -private: - template friend class serial::interface6::start_for; - template friend class interface6::internal::start_for; - template friend class interface6::internal::start_reduce; - template friend class internal::start_scan; - // backward compatibility - for parallel_scan only - typedef interface6::internal::old_auto_partition_type partition_type; - // new implementation just extends existing interface - typedef interface6::internal::affinity_partition_type task_partition_type; -}; - -} // namespace tbb - -#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) - #pragma warning (pop) -#endif // warning 4244 is back -#undef __TBB_INITIAL_CHUNKS -#undef __TBB_RANGE_POOL_CAPACITY -#undef __TBB_INIT_DEPTH -#endif /* __TBB_partitioner_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/pipeline.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/pipeline.h deleted file mode 100644 index ab58ced36..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/pipeline.h +++ /dev/null @@ -1,673 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_pipeline_H -#define __TBB_pipeline_H - -#include "atomic.h" -#include "task.h" -#include "tbb_allocator.h" -#include - -//TODO: consider more accurate method to check if need to implement ourself -#if !TBB_IMPLEMENT_CPP0X -#include -#endif - -namespace tbb { - -class pipeline; -class filter; - -//! @cond INTERNAL -namespace internal { - -// The argument for PIPELINE_VERSION should be an integer between 2 and 9 -#define __TBB_PIPELINE_VERSION(x) ((unsigned char)(x-2)<<1) - -typedef unsigned long Token; -typedef long tokendiff_t; -class stage_task; -class input_buffer; -class pipeline_root_task; -class pipeline_cleaner; - -} // namespace internal - -namespace interface6 { - template class filter_t; - - namespace internal { - class pipeline_proxy; - } -} - -//! @endcond - -//! A stage in a pipeline. -/** @ingroup algorithms */ -class filter: internal::no_copy { -private: - //! Value used to mark "not in pipeline" - static filter* not_in_pipeline() {return reinterpret_cast(intptr_t(-1));} -protected: - //! The lowest bit 0 is for parallel vs. serial - static const unsigned char filter_is_serial = 0x1; - - //! 4th bit distinguishes ordered vs unordered filters. - /** The bit was not set for parallel filters in TBB 2.1 and earlier, - but is_ordered() function always treats parallel filters as out of order. */ - static const unsigned char filter_is_out_of_order = 0x1<<4; - - //! 5th bit distinguishes thread-bound and regular filters. - static const unsigned char filter_is_bound = 0x1<<5; - - //! 6th bit marks input filters emitting small objects - static const unsigned char filter_may_emit_null = 0x1<<6; - - //! 7th bit defines exception propagation mode expected by the application. - static const unsigned char exact_exception_propagation = -#if TBB_USE_CAPTURED_EXCEPTION - 0x0; -#else - 0x1<<7; -#endif /* TBB_USE_CAPTURED_EXCEPTION */ - - static const unsigned char current_version = __TBB_PIPELINE_VERSION(5); - static const unsigned char version_mask = 0x7<<1; // bits 1-3 are for version -public: - enum mode { - //! processes multiple items in parallel and in no particular order - parallel = current_version | filter_is_out_of_order, - //! processes items one at a time; all such filters process items in the same order - serial_in_order = current_version | filter_is_serial, - //! processes items one at a time and in no particular order - serial_out_of_order = current_version | filter_is_serial | filter_is_out_of_order, - //! @deprecated use serial_in_order instead - serial = serial_in_order - }; -protected: - filter( bool is_serial_ ) : - next_filter_in_pipeline(not_in_pipeline()), - my_input_buffer(NULL), - my_filter_mode(static_cast((is_serial_ ? serial : parallel) | exact_exception_propagation)), - prev_filter_in_pipeline(not_in_pipeline()), - my_pipeline(NULL), - next_segment(NULL) - {} - - filter( mode filter_mode ) : - next_filter_in_pipeline(not_in_pipeline()), - my_input_buffer(NULL), - my_filter_mode(static_cast(filter_mode | exact_exception_propagation)), - prev_filter_in_pipeline(not_in_pipeline()), - my_pipeline(NULL), - next_segment(NULL) - {} - - // signal end-of-input for concrete_filters - void __TBB_EXPORTED_METHOD set_end_of_input(); - -public: - //! True if filter is serial. - bool is_serial() const { - return bool( my_filter_mode & filter_is_serial ); - } - - //! True if filter must receive stream in order. - bool is_ordered() const { - return (my_filter_mode & (filter_is_out_of_order|filter_is_serial))==filter_is_serial; - } - - //! True if filter is thread-bound. - bool is_bound() const { - return ( my_filter_mode & filter_is_bound )==filter_is_bound; - } - - //! true if an input filter can emit null - bool object_may_be_null() { - return ( my_filter_mode & filter_may_emit_null ) == filter_may_emit_null; - } - - //! Operate on an item from the input stream, and return item for output stream. - /** Returns NULL if filter is a sink. */ - virtual void* operator()( void* item ) = 0; - - //! Destroy filter. - /** If the filter was added to a pipeline, the pipeline must be destroyed first. */ - virtual __TBB_EXPORTED_METHOD ~filter(); - -#if __TBB_TASK_GROUP_CONTEXT - //! Destroys item if pipeline was cancelled. - /** Required to prevent memory leaks. - Note it can be called concurrently even for serial filters.*/ - virtual void finalize( void* /*item*/ ) {}; -#endif - -private: - //! Pointer to next filter in the pipeline. - filter* next_filter_in_pipeline; - - //! has the filter not yet processed all the tokens it will ever see? - // (pipeline has not yet reached end_of_input or this filter has not yet - // seen the last token produced by input_filter) - bool has_more_work(); - - //! Buffer for incoming tokens, or NULL if not required. - /** The buffer is required if the filter is serial or follows a thread-bound one. */ - internal::input_buffer* my_input_buffer; - - friend class internal::stage_task; - friend class internal::pipeline_root_task; - friend class pipeline; - friend class thread_bound_filter; - - //! Storage for filter mode and dynamically checked implementation version. - const unsigned char my_filter_mode; - - //! Pointer to previous filter in the pipeline. - filter* prev_filter_in_pipeline; - - //! Pointer to the pipeline. - pipeline* my_pipeline; - - //! Pointer to the next "segment" of filters, or NULL if not required. - /** In each segment, the first filter is not thread-bound but follows a thread-bound one. */ - filter* next_segment; -}; - -//! A stage in a pipeline served by a user thread. -/** @ingroup algorithms */ -class thread_bound_filter: public filter { -public: - enum result_type { - // item was processed - success, - // item is currently not available - item_not_available, - // there are no more items to process - end_of_stream - }; -protected: - thread_bound_filter(mode filter_mode): - filter(static_cast(filter_mode | filter::filter_is_bound)) - {} -public: - //! If a data item is available, invoke operator() on that item. - /** This interface is non-blocking. - Returns 'success' if an item was processed. - Returns 'item_not_available' if no item can be processed now - but more may arrive in the future, or if token limit is reached. - Returns 'end_of_stream' if there are no more items to process. */ - result_type __TBB_EXPORTED_METHOD try_process_item(); - - //! Wait until a data item becomes available, and invoke operator() on that item. - /** This interface is blocking. - Returns 'success' if an item was processed. - Returns 'end_of_stream' if there are no more items to process. - Never returns 'item_not_available', as it blocks until another return condition applies. */ - result_type __TBB_EXPORTED_METHOD process_item(); - -private: - //! Internal routine for item processing - result_type internal_process_item(bool is_blocking); -}; - -//! A processing pipeline that applies filters to items. -/** @ingroup algorithms */ -class pipeline { -public: - //! Construct empty pipeline. - __TBB_EXPORTED_METHOD pipeline(); - - /** Though the current implementation declares the destructor virtual, do not rely on this - detail. The virtualness is deprecated and may disappear in future versions of TBB. */ - virtual __TBB_EXPORTED_METHOD ~pipeline(); - - //! Add filter to end of pipeline. - void __TBB_EXPORTED_METHOD add_filter( filter& filter_ ); - - //! Run the pipeline to completion. - void __TBB_EXPORTED_METHOD run( size_t max_number_of_live_tokens ); - -#if __TBB_TASK_GROUP_CONTEXT - //! Run the pipeline to completion with user-supplied context. - void __TBB_EXPORTED_METHOD run( size_t max_number_of_live_tokens, tbb::task_group_context& context ); -#endif - - //! Remove all filters from the pipeline. - void __TBB_EXPORTED_METHOD clear(); - -private: - friend class internal::stage_task; - friend class internal::pipeline_root_task; - friend class filter; - friend class thread_bound_filter; - friend class internal::pipeline_cleaner; - friend class tbb::interface6::internal::pipeline_proxy; - - //! Pointer to first filter in the pipeline. - filter* filter_list; - - //! Pointer to location where address of next filter to be added should be stored. - filter* filter_end; - - //! task who's reference count is used to determine when all stages are done. - task* end_counter; - - //! Number of idle tokens waiting for input stage. - atomic input_tokens; - - //! Global counter of tokens - atomic token_counter; - - //! False until fetch_input returns NULL. - bool end_of_input; - - //! True if the pipeline contains a thread-bound filter; false otherwise. - bool has_thread_bound_filters; - - //! Remove filter from pipeline. - void remove_filter( filter& filter_ ); - - //! Not used, but retained to satisfy old export files. - void __TBB_EXPORTED_METHOD inject_token( task& self ); - -#if __TBB_TASK_GROUP_CONTEXT - //! Does clean up if pipeline is cancelled or exception occurred - void clear_filters(); -#endif -}; - -//------------------------------------------------------------------------ -// Support for lambda-friendly parallel_pipeline interface -//------------------------------------------------------------------------ - -namespace interface6 { - -namespace internal { - template class concrete_filter; -} - -//! input_filter control to signal end-of-input for parallel_pipeline -class flow_control { - bool is_pipeline_stopped; - flow_control() { is_pipeline_stopped = false; } - template friend class internal::concrete_filter; -public: - void stop() { is_pipeline_stopped = true; } -}; - -//! @cond INTERNAL -namespace internal { - -template struct tbb_large_object {enum { value = sizeof(T) > sizeof(void *) }; }; - -#if TBB_IMPLEMENT_CPP0X -// cannot use SFINAE in current compilers. Explicitly list the types we wish to be -// placed as-is in the pipeline input_buffers. -template struct tbb_trivially_copyable { enum { value = false }; }; -template struct tbb_trivially_copyable { enum { value = true }; }; -template<> struct tbb_trivially_copyable { enum { value = true }; }; -template<> struct tbb_trivially_copyable { enum { value = true }; }; -template<> struct tbb_trivially_copyable { enum { value = !tbb_large_object::value }; }; -template<> struct tbb_trivially_copyable { enum { value = !tbb_large_object::value }; }; -template<> struct tbb_trivially_copyable { enum { value = !tbb_large_object::value }; }; -template<> struct tbb_trivially_copyable { enum { value = !tbb_large_object::value }; }; -template<> struct tbb_trivially_copyable { enum { value = !tbb_large_object::value }; }; -template<> struct tbb_trivially_copyable { enum { value = !tbb_large_object::value }; }; -#else -#if __GNUC__==4 && __GNUC_MINOR__>=4 && __GXX_EXPERIMENTAL_CXX0X__ -template struct tbb_trivially_copyable { enum { value = std::has_trivial_copy_constructor::value }; }; -#else -template struct tbb_trivially_copyable { enum { value = std::is_trivially_copyable::value }; }; -#endif // -#endif // TBB_IMPLEMENT_CPP0X - -template struct is_large_object {enum { value = tbb_large_object::value || !tbb_trivially_copyable::value }; }; - -template class token_helper; - -// large object helper (uses tbb_allocator) -template -class token_helper { - public: - typedef typename tbb::tbb_allocator allocator; - typedef T* pointer; - typedef T value_type; - static pointer create_token(const value_type & source) { - pointer output_t = allocator().allocate(1); - return new (output_t) T(source); - } - static value_type & token(pointer & t) { return *t;} - static void * cast_to_void_ptr(pointer ref) { return (void *) ref; } - static pointer cast_from_void_ptr(void * ref) { return (pointer)ref; } - static void destroy_token(pointer token) { - allocator().destroy(token); - allocator().deallocate(token,1); - } -}; - -// pointer specialization -template -class token_helper { - public: - typedef T* pointer; - typedef T* value_type; - static pointer create_token(const value_type & source) { return source; } - static value_type & token(pointer & t) { return t;} - static void * cast_to_void_ptr(pointer ref) { return (void *)ref; } - static pointer cast_from_void_ptr(void * ref) { return (pointer)ref; } - static void destroy_token( pointer /*token*/) {} -}; - -// small object specialization (converts void* to the correct type, passes objects directly.) -template -class token_helper { - typedef union { - T actual_value; - void * void_overlay; - } type_to_void_ptr_map; - public: - typedef T pointer; // not really a pointer in this case. - typedef T value_type; - static pointer create_token(const value_type & source) { - return source; } - static value_type & token(pointer & t) { return t;} - static void * cast_to_void_ptr(pointer ref) { - type_to_void_ptr_map mymap; - mymap.void_overlay = NULL; - mymap.actual_value = ref; - return mymap.void_overlay; - } - static pointer cast_from_void_ptr(void * ref) { - type_to_void_ptr_map mymap; - mymap.void_overlay = ref; - return mymap.actual_value; - } - static void destroy_token( pointer /*token*/) {} -}; - -template -class concrete_filter: public tbb::filter { - const Body& my_body; - typedef token_helper::value > t_helper; - typedef typename t_helper::pointer t_pointer; - typedef token_helper::value > u_helper; - typedef typename u_helper::pointer u_pointer; - - /*override*/ void* operator()(void* input) { - t_pointer temp_input = t_helper::cast_from_void_ptr(input); - u_pointer output_u = u_helper::create_token(my_body(t_helper::token(temp_input))); - t_helper::destroy_token(temp_input); - return u_helper::cast_to_void_ptr(output_u); - } - - /*override*/ void finalize(void * input) { - t_pointer temp_input = t_helper::cast_from_void_ptr(input); - t_helper::destroy_token(temp_input); - } - -public: - concrete_filter(tbb::filter::mode filter_mode, const Body& body) : filter(filter_mode), my_body(body) {} -}; - -// input -template -class concrete_filter: public filter { - const Body& my_body; - typedef token_helper::value > u_helper; - typedef typename u_helper::pointer u_pointer; - - /*override*/void* operator()(void*) { - flow_control control; - u_pointer output_u = u_helper::create_token(my_body(control)); - if(control.is_pipeline_stopped) { - u_helper::destroy_token(output_u); - set_end_of_input(); - return NULL; - } - return u_helper::cast_to_void_ptr(output_u); - } - -public: - concrete_filter(tbb::filter::mode filter_mode, const Body& body) : - filter(static_cast(filter_mode | filter_may_emit_null)), - my_body(body) - {} -}; - -template -class concrete_filter: public filter { - const Body& my_body; - typedef token_helper::value > t_helper; - typedef typename t_helper::pointer t_pointer; - - /*override*/ void* operator()(void* input) { - t_pointer temp_input = t_helper::cast_from_void_ptr(input); - my_body(t_helper::token(temp_input)); - t_helper::destroy_token(temp_input); - return NULL; - } - /*override*/ void finalize(void* input) { - t_pointer temp_input = t_helper::cast_from_void_ptr(input); - t_helper::destroy_token(temp_input); - } - -public: - concrete_filter(tbb::filter::mode filter_mode, const Body& body) : filter(filter_mode), my_body(body) {} -}; - -template -class concrete_filter: public filter { - const Body& my_body; - - /** Override privately because it is always called virtually */ - /*override*/ void* operator()(void*) { - flow_control control; - my_body(control); - void* output = control.is_pipeline_stopped ? NULL : (void*)(intptr_t)-1; - return output; - } -public: - concrete_filter(filter::mode filter_mode, const Body& body) : filter(filter_mode), my_body(body) {} -}; - -//! The class that represents an object of the pipeline for parallel_pipeline(). -/** It primarily serves as RAII class that deletes heap-allocated filter instances. */ -class pipeline_proxy { - tbb::pipeline my_pipe; -public: - pipeline_proxy( const filter_t& filter_chain ); - ~pipeline_proxy() { - while( filter* f = my_pipe.filter_list ) - delete f; // filter destructor removes it from the pipeline - } - tbb::pipeline* operator->() { return &my_pipe; } -}; - -//! Abstract base class that represents a node in a parse tree underlying a filter_t. -/** These nodes are always heap-allocated and can be shared by filter_t objects. */ -class filter_node: tbb::internal::no_copy { - /** Count must be atomic because it is hidden state for user, but might be shared by threads. */ - tbb::atomic ref_count; -protected: - filter_node() { - ref_count = 0; -#ifdef __TBB_TEST_FILTER_NODE_COUNT - ++(__TBB_TEST_FILTER_NODE_COUNT); -#endif - } -public: - //! Add concrete_filter to pipeline - virtual void add_to( pipeline& ) = 0; - //! Increment reference count - void add_ref() {++ref_count;} - //! Decrement reference count and delete if it becomes zero. - void remove_ref() { - __TBB_ASSERT(ref_count>0,"ref_count underflow"); - if( --ref_count==0 ) - delete this; - } - virtual ~filter_node() { -#ifdef __TBB_TEST_FILTER_NODE_COUNT - --(__TBB_TEST_FILTER_NODE_COUNT); -#endif - } -}; - -//! Node in parse tree representing result of make_filter. -template -class filter_node_leaf: public filter_node { - const tbb::filter::mode mode; - const Body body; - /*override*/void add_to( pipeline& p ) { - concrete_filter* f = new concrete_filter(mode,body); - p.add_filter( *f ); - } -public: - filter_node_leaf( tbb::filter::mode m, const Body& b ) : mode(m), body(b) {} -}; - -//! Node in parse tree representing join of two filters. -class filter_node_join: public filter_node { - friend class filter_node; // to suppress GCC 3.2 warnings - filter_node& left; - filter_node& right; - /*override*/~filter_node_join() { - left.remove_ref(); - right.remove_ref(); - } - /*override*/void add_to( pipeline& p ) { - left.add_to(p); - right.add_to(p); - } -public: - filter_node_join( filter_node& x, filter_node& y ) : left(x), right(y) { - left.add_ref(); - right.add_ref(); - } -}; - -} // namespace internal -//! @endcond - -//! Create a filter to participate in parallel_pipeline -template -filter_t make_filter(tbb::filter::mode mode, const Body& body) { - return new internal::filter_node_leaf(mode, body); -} - -template -filter_t operator& (const filter_t& left, const filter_t& right) { - __TBB_ASSERT(left.root,"cannot use default-constructed filter_t as left argument of '&'"); - __TBB_ASSERT(right.root,"cannot use default-constructed filter_t as right argument of '&'"); - return new internal::filter_node_join(*left.root,*right.root); -} - -//! Class representing a chain of type-safe pipeline filters -template -class filter_t { - typedef internal::filter_node filter_node; - filter_node* root; - filter_t( filter_node* root_ ) : root(root_) { - root->add_ref(); - } - friend class internal::pipeline_proxy; - template - friend filter_t make_filter(tbb::filter::mode, const Body& ); - template - friend filter_t operator& (const filter_t& , const filter_t& ); -public: - filter_t() : root(NULL) {} - filter_t( const filter_t& rhs ) : root(rhs.root) { - if( root ) root->add_ref(); - } - template - filter_t( tbb::filter::mode mode, const Body& body ) : - root( new internal::filter_node_leaf(mode, body) ) { - root->add_ref(); - } - - void operator=( const filter_t& rhs ) { - // Order of operations below carefully chosen so that reference counts remain correct - // in unlikely event that remove_ref throws exception. - filter_node* old = root; - root = rhs.root; - if( root ) root->add_ref(); - if( old ) old->remove_ref(); - } - ~filter_t() { - if( root ) root->remove_ref(); - } - void clear() { - // Like operator= with filter_t() on right side. - if( root ) { - filter_node* old = root; - root = NULL; - old->remove_ref(); - } - } -}; - -inline internal::pipeline_proxy::pipeline_proxy( const filter_t& filter_chain ) : my_pipe() { - __TBB_ASSERT( filter_chain.root, "cannot apply parallel_pipeline to default-constructed filter_t" ); - filter_chain.root->add_to(my_pipe); -} - -inline void parallel_pipeline(size_t max_number_of_live_tokens, const filter_t& filter_chain -#if __TBB_TASK_GROUP_CONTEXT - , tbb::task_group_context& context -#endif - ) { - internal::pipeline_proxy pipe(filter_chain); - // tbb::pipeline::run() is called via the proxy - pipe->run(max_number_of_live_tokens -#if __TBB_TASK_GROUP_CONTEXT - , context -#endif - ); -} - -#if __TBB_TASK_GROUP_CONTEXT -inline void parallel_pipeline(size_t max_number_of_live_tokens, const filter_t& filter_chain) { - tbb::task_group_context context; - parallel_pipeline(max_number_of_live_tokens, filter_chain, context); -} -#endif // __TBB_TASK_GROUP_CONTEXT - -} // interface6 - -using interface6::flow_control; -using interface6::filter_t; -using interface6::make_filter; -using interface6::parallel_pipeline; - -} // tbb - -#endif /* __TBB_pipeline_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/queuing_mutex.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/queuing_mutex.h deleted file mode 100644 index e5ae36603..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/queuing_mutex.h +++ /dev/null @@ -1,131 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_queuing_mutex_H -#define __TBB_queuing_mutex_H - -#include "tbb_config.h" - -#if !TBB_USE_EXCEPTIONS && _MSC_VER - // Suppress "C++ exception handler used, but unwind semantics are not enabled" warning in STL headers - #pragma warning (push) - #pragma warning (disable: 4530) -#endif - -#include - -#if !TBB_USE_EXCEPTIONS && _MSC_VER - #pragma warning (pop) -#endif - -#include "atomic.h" -#include "tbb_profiling.h" - -namespace tbb { - -//! Queuing mutex with local-only spinning. -/** @ingroup synchronization */ -class queuing_mutex { -public: - //! Construct unacquired mutex. - queuing_mutex() { - q_tail = NULL; -#if TBB_USE_THREADING_TOOLS - internal_construct(); -#endif - } - - //! The scoped locking pattern - /** It helps to avoid the common problem of forgetting to release lock. - It also nicely provides the "node" for queuing locks. */ - class scoped_lock: internal::no_copy { - //! Initialize fields to mean "no lock held". - void initialize() { - mutex = NULL; -#if TBB_USE_ASSERT - internal::poison_pointer(next); -#endif /* TBB_USE_ASSERT */ - } - - public: - //! Construct lock that has not acquired a mutex. - /** Equivalent to zero-initialization of *this. */ - scoped_lock() {initialize();} - - //! Acquire lock on given mutex. - scoped_lock( queuing_mutex& m ) { - initialize(); - acquire(m); - } - - //! Release lock (if lock is held). - ~scoped_lock() { - if( mutex ) release(); - } - - //! Acquire lock on given mutex. - void __TBB_EXPORTED_METHOD acquire( queuing_mutex& m ); - - //! Acquire lock on given mutex if free (i.e. non-blocking) - bool __TBB_EXPORTED_METHOD try_acquire( queuing_mutex& m ); - - //! Release lock. - void __TBB_EXPORTED_METHOD release(); - - private: - //! The pointer to the mutex owned, or NULL if not holding a mutex. - queuing_mutex* mutex; - - //! The pointer to the next competitor for a mutex - scoped_lock *next; - - //! The local spin-wait variable - /** Inverted (0 - blocked, 1 - acquired the mutex) for the sake of - zero-initialization. Defining it as an entire word instead of - a byte seems to help performance slightly. */ - uintptr_t going; - }; - - void __TBB_EXPORTED_METHOD internal_construct(); - - // Mutex traits - static const bool is_rw_mutex = false; - static const bool is_recursive_mutex = false; - static const bool is_fair_mutex = true; - -private: - //! The last competitor requesting the lock - atomic q_tail; - -}; - -__TBB_DEFINE_PROFILING_SET_NAME(queuing_mutex) - -} // namespace tbb - -#endif /* __TBB_queuing_mutex_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/queuing_rw_mutex.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/queuing_rw_mutex.h deleted file mode 100644 index abdf0c071..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/queuing_rw_mutex.h +++ /dev/null @@ -1,171 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_queuing_rw_mutex_H -#define __TBB_queuing_rw_mutex_H - -#include "tbb_config.h" - -#if !TBB_USE_EXCEPTIONS && _MSC_VER - // Suppress "C++ exception handler used, but unwind semantics are not enabled" warning in STL headers - #pragma warning (push) - #pragma warning (disable: 4530) -#endif - -#include - -#if !TBB_USE_EXCEPTIONS && _MSC_VER - #pragma warning (pop) -#endif - -#include "atomic.h" -#include "tbb_profiling.h" - -namespace tbb { - -//! Queuing reader-writer mutex with local-only spinning. -/** Adapted from Krieger, Stumm, et al. pseudocode at - http://www.eecg.toronto.edu/parallel/pubs_abs.html#Krieger_etal_ICPP93 - @ingroup synchronization */ -class queuing_rw_mutex { -public: - //! Construct unacquired mutex. - queuing_rw_mutex() { - q_tail = NULL; -#if TBB_USE_THREADING_TOOLS - internal_construct(); -#endif - } - - //! Destructor asserts if the mutex is acquired, i.e. q_tail is non-NULL - ~queuing_rw_mutex() { -#if TBB_USE_ASSERT - __TBB_ASSERT( !q_tail, "destruction of an acquired mutex"); -#endif - } - - //! The scoped locking pattern - /** It helps to avoid the common problem of forgetting to release lock. - It also nicely provides the "node" for queuing locks. */ - class scoped_lock: internal::no_copy { - //! Initialize fields to mean "no lock held". - void initialize() { - my_mutex = NULL; -#if TBB_USE_ASSERT - my_state = 0xFF; // Set to invalid state - internal::poison_pointer(my_next); - internal::poison_pointer(my_prev); -#endif /* TBB_USE_ASSERT */ - } - - public: - //! Construct lock that has not acquired a mutex. - /** Equivalent to zero-initialization of *this. */ - scoped_lock() {initialize();} - - //! Acquire lock on given mutex. - scoped_lock( queuing_rw_mutex& m, bool write=true ) { - initialize(); - acquire(m,write); - } - - //! Release lock (if lock is held). - ~scoped_lock() { - if( my_mutex ) release(); - } - - //! Acquire lock on given mutex. - void acquire( queuing_rw_mutex& m, bool write=true ); - - //! Acquire lock on given mutex if free (i.e. non-blocking) - bool try_acquire( queuing_rw_mutex& m, bool write=true ); - - //! Release lock. - void release(); - - //! Upgrade reader to become a writer. - /** Returns whether the upgrade happened without releasing and re-acquiring the lock */ - bool upgrade_to_writer(); - - //! Downgrade writer to become a reader. - bool downgrade_to_reader(); - - private: - //! The pointer to the mutex owned, or NULL if not holding a mutex. - queuing_rw_mutex* my_mutex; - - //! The pointer to the previous and next competitors for a mutex - scoped_lock *__TBB_atomic my_prev, *__TBB_atomic my_next; - - typedef unsigned char state_t; - - //! State of the request: reader, writer, active reader, other service states - atomic my_state; - - //! The local spin-wait variable - /** Corresponds to "spin" in the pseudocode but inverted for the sake of zero-initialization */ - unsigned char __TBB_atomic my_going; - - //! A tiny internal lock - unsigned char my_internal_lock; - - //! Acquire the internal lock - void acquire_internal_lock(); - - //! Try to acquire the internal lock - /** Returns true if lock was successfully acquired. */ - bool try_acquire_internal_lock(); - - //! Release the internal lock - void release_internal_lock(); - - //! Wait for internal lock to be released - void wait_for_release_of_internal_lock(); - - //! A helper function - void unblock_or_wait_on_internal_lock( uintptr_t ); - }; - - void __TBB_EXPORTED_METHOD internal_construct(); - - // Mutex traits - static const bool is_rw_mutex = true; - static const bool is_recursive_mutex = false; - static const bool is_fair_mutex = true; - -private: - //! The last competitor requesting the lock - atomic q_tail; - -}; - -__TBB_DEFINE_PROFILING_SET_NAME(queuing_rw_mutex) - -} // namespace tbb - -#endif /* __TBB_queuing_rw_mutex_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/reader_writer_lock.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/reader_writer_lock.h deleted file mode 100644 index 94bd753bb..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/reader_writer_lock.h +++ /dev/null @@ -1,240 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_reader_writer_lock_H -#define __TBB_reader_writer_lock_H - -#include "tbb_thread.h" -#include "tbb_allocator.h" -#include "atomic.h" - -namespace tbb { -namespace interface5 { -//! Writer-preference reader-writer lock with local-only spinning on readers. -/** Loosely adapted from Mellor-Crummey and Scott pseudocode at - http://www.cs.rochester.edu/research/synchronization/pseudocode/rw.html#s_wp - @ingroup synchronization */ - class reader_writer_lock : tbb::internal::no_copy { - public: - friend class scoped_lock; - friend class scoped_lock_read; - //! Status type for nodes associated with lock instances - /** waiting_nonblocking: the wait state for nonblocking lock - instances; for writes, these transition straight to active - states; for reads, these are unused. - - waiting: the start and spin state for all lock instances; these will - transition to active state when appropriate. Non-blocking write locks - transition from this state to waiting_nonblocking immediately. - - active: the active state means that the lock instance holds - the lock; it will transition to invalid state during node deletion - - invalid: the end state for all nodes; this is set in the - destructor so if we encounter this state, we are looking at - memory that has already been freed - - The state diagrams below describe the status transitions. - Single arrows indicate that the thread that owns the node is - responsible for the transition; double arrows indicate that - any thread could make the transition. - - State diagram for scoped_lock status: - - waiting ----------> waiting_nonblocking - | _____________/ | - V V V - active -----------------> invalid - - State diagram for scoped_lock_read status: - - waiting - | - V - active ----------------->invalid - - */ - enum status_t { waiting_nonblocking, waiting, active, invalid }; - - //! Constructs a new reader_writer_lock - reader_writer_lock() { - internal_construct(); - } - - //! Destructs a reader_writer_lock object - ~reader_writer_lock() { - internal_destroy(); - } - - //! The scoped lock pattern for write locks - /** Scoped locks help avoid the common problem of forgetting to release the lock. - This type also serves as the node for queuing locks. */ - class scoped_lock : tbb::internal::no_copy { - public: - friend class reader_writer_lock; - - //! Construct with blocking attempt to acquire write lock on the passed-in lock - scoped_lock(reader_writer_lock& lock) { - internal_construct(lock); - } - - //! Destructor, releases the write lock - ~scoped_lock() { - internal_destroy(); - } - - void* operator new(size_t s) { - return tbb::internal::allocate_via_handler_v3(s); - } - void operator delete(void* p) { - tbb::internal::deallocate_via_handler_v3(p); - } - - private: - //! The pointer to the mutex to lock - reader_writer_lock *mutex; - //! The next queued competitor for the mutex - scoped_lock* next; - //! Status flag of the thread associated with this node - atomic status; - - //! Construct scoped_lock that is not holding lock - scoped_lock(); - - void __TBB_EXPORTED_METHOD internal_construct(reader_writer_lock&); - void __TBB_EXPORTED_METHOD internal_destroy(); - }; - - //! The scoped lock pattern for read locks - class scoped_lock_read : tbb::internal::no_copy { - public: - friend class reader_writer_lock; - - //! Construct with blocking attempt to acquire read lock on the passed-in lock - scoped_lock_read(reader_writer_lock& lock) { - internal_construct(lock); - } - - //! Destructor, releases the read lock - ~scoped_lock_read() { - internal_destroy(); - } - - void* operator new(size_t s) { - return tbb::internal::allocate_via_handler_v3(s); - } - void operator delete(void* p) { - tbb::internal::deallocate_via_handler_v3(p); - } - - private: - //! The pointer to the mutex to lock - reader_writer_lock *mutex; - //! The next queued competitor for the mutex - scoped_lock_read *next; - //! Status flag of the thread associated with this node - atomic status; - - //! Construct scoped_lock_read that is not holding lock - scoped_lock_read(); - - void __TBB_EXPORTED_METHOD internal_construct(reader_writer_lock&); - void __TBB_EXPORTED_METHOD internal_destroy(); - }; - - //! Acquires the reader_writer_lock for write. - /** If the lock is currently held in write mode by another - context, the writer will block by spinning on a local - variable. Exceptions thrown: improper_lock The context tries - to acquire a reader_writer_lock that it already has write - ownership of.*/ - void __TBB_EXPORTED_METHOD lock(); - - //! Tries to acquire the reader_writer_lock for write. - /** This function does not block. Return Value: True or false, - depending on whether the lock is acquired or not. If the lock - is already held by this acquiring context, try_lock() returns - false. */ - bool __TBB_EXPORTED_METHOD try_lock(); - - //! Acquires the reader_writer_lock for read. - /** If the lock is currently held by a writer, this reader will - block and wait until the writers are done. Exceptions thrown: - improper_lock The context tries to acquire a - reader_writer_lock that it already has write ownership of. */ - void __TBB_EXPORTED_METHOD lock_read(); - - //! Tries to acquire the reader_writer_lock for read. - /** This function does not block. Return Value: True or false, - depending on whether the lock is acquired or not. */ - bool __TBB_EXPORTED_METHOD try_lock_read(); - - //! Releases the reader_writer_lock - void __TBB_EXPORTED_METHOD unlock(); - - private: - void __TBB_EXPORTED_METHOD internal_construct(); - void __TBB_EXPORTED_METHOD internal_destroy(); - - //! Attempts to acquire write lock - /** If unavailable, spins in blocking case, returns false in non-blocking case. */ - bool start_write(scoped_lock *); - //! Sets writer_head to w and attempts to unblock - void set_next_writer(scoped_lock *w); - //! Relinquishes write lock to next waiting writer or group of readers - void end_write(scoped_lock *); - //! Checks if current thread holds write lock - bool is_current_writer(); - - //! Attempts to acquire read lock - /** If unavailable, spins in blocking case, returns false in non-blocking case. */ - void start_read(scoped_lock_read *); - //! Unblocks pending readers - void unblock_readers(); - //! Relinquishes read lock by decrementing counter; last reader wakes pending writer - void end_read(); - - //! The list of pending readers - atomic reader_head; - //! The list of pending writers - atomic writer_head; - //! The last node in the list of pending writers - atomic writer_tail; - //! Writer that owns the mutex; tbb_thread::id() otherwise. - tbb_thread::id my_current_writer; - //! Status of mutex - atomic rdr_count_and_flags; // used with __TBB_AtomicOR, which assumes uintptr_t -}; - -} // namespace interface5 - -using interface5::reader_writer_lock; - -} // namespace tbb - -#endif /* __TBB_reader_writer_lock_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/recursive_mutex.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/recursive_mutex.h deleted file mode 100644 index ffe0bb29d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/recursive_mutex.h +++ /dev/null @@ -1,240 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_recursive_mutex_H -#define __TBB_recursive_mutex_H - -#if _WIN32||_WIN64 -#include "machine/windows_api.h" -#else -#include -#endif /* _WIN32||_WIN64 */ - -#include -#include "aligned_space.h" -#include "tbb_stddef.h" -#include "tbb_profiling.h" - -namespace tbb { -//! Mutex that allows recursive mutex acquisition. -/** Mutex that allows recursive mutex acquisition. - @ingroup synchronization */ -class recursive_mutex { -public: - //! Construct unacquired recursive_mutex. - recursive_mutex() { -#if TBB_USE_ASSERT || TBB_USE_THREADING_TOOLS - internal_construct(); -#else - #if _WIN32||_WIN64 - InitializeCriticalSectionEx(&impl, 4000, 0); - #else - pthread_mutexattr_t mtx_attr; - int error_code = pthread_mutexattr_init( &mtx_attr ); - if( error_code ) - tbb::internal::handle_perror(error_code,"recursive_mutex: pthread_mutexattr_init failed"); - - pthread_mutexattr_settype( &mtx_attr, PTHREAD_MUTEX_RECURSIVE ); - error_code = pthread_mutex_init( &impl, &mtx_attr ); - if( error_code ) - tbb::internal::handle_perror(error_code,"recursive_mutex: pthread_mutex_init failed"); - - pthread_mutexattr_destroy( &mtx_attr ); - #endif /* _WIN32||_WIN64*/ -#endif /* TBB_USE_ASSERT */ - }; - - ~recursive_mutex() { -#if TBB_USE_ASSERT - internal_destroy(); -#else - #if _WIN32||_WIN64 - DeleteCriticalSection(&impl); - #else - pthread_mutex_destroy(&impl); - - #endif /* _WIN32||_WIN64 */ -#endif /* TBB_USE_ASSERT */ - }; - - class scoped_lock; - friend class scoped_lock; - - //! The scoped locking pattern - /** It helps to avoid the common problem of forgetting to release lock. - It also nicely provides the "node" for queuing locks. */ - class scoped_lock: internal::no_copy { - public: - //! Construct lock that has not acquired a recursive_mutex. - scoped_lock() : my_mutex(NULL) {}; - - //! Acquire lock on given mutex. - scoped_lock( recursive_mutex& mutex ) { -#if TBB_USE_ASSERT - my_mutex = &mutex; -#endif /* TBB_USE_ASSERT */ - acquire( mutex ); - } - - //! Release lock (if lock is held). - ~scoped_lock() { - if( my_mutex ) - release(); - } - - //! Acquire lock on given mutex. - void acquire( recursive_mutex& mutex ) { -#if TBB_USE_ASSERT - internal_acquire( mutex ); -#else - my_mutex = &mutex; - mutex.lock(); -#endif /* TBB_USE_ASSERT */ - } - - //! Try acquire lock on given recursive_mutex. - bool try_acquire( recursive_mutex& mutex ) { -#if TBB_USE_ASSERT - return internal_try_acquire( mutex ); -#else - bool result = mutex.try_lock(); - if( result ) - my_mutex = &mutex; - return result; -#endif /* TBB_USE_ASSERT */ - } - - //! Release lock - void release() { -#if TBB_USE_ASSERT - internal_release(); -#else - my_mutex->unlock(); - my_mutex = NULL; -#endif /* TBB_USE_ASSERT */ - } - - private: - //! The pointer to the current recursive_mutex to work - recursive_mutex* my_mutex; - - //! All checks from acquire using mutex.state were moved here - void __TBB_EXPORTED_METHOD internal_acquire( recursive_mutex& m ); - - //! All checks from try_acquire using mutex.state were moved here - bool __TBB_EXPORTED_METHOD internal_try_acquire( recursive_mutex& m ); - - //! All checks from release using mutex.state were moved here - void __TBB_EXPORTED_METHOD internal_release(); - - friend class recursive_mutex; - }; - - // Mutex traits - static const bool is_rw_mutex = false; - static const bool is_recursive_mutex = true; - static const bool is_fair_mutex = false; - - // C++0x compatibility interface - - //! Acquire lock - void lock() { -#if TBB_USE_ASSERT - aligned_space tmp; - new(tmp.begin()) scoped_lock(*this); -#else - #if _WIN32||_WIN64 - EnterCriticalSection(&impl); - #else - pthread_mutex_lock(&impl); - #endif /* _WIN32||_WIN64 */ -#endif /* TBB_USE_ASSERT */ - } - - //! Try acquiring lock (non-blocking) - /** Return true if lock acquired; false otherwise. */ - bool try_lock() { -#if TBB_USE_ASSERT - aligned_space tmp; - return (new(tmp.begin()) scoped_lock)->internal_try_acquire(*this); -#else - #if _WIN32||_WIN64 - return TryEnterCriticalSection(&impl)!=0; - #else - return pthread_mutex_trylock(&impl)==0; - #endif /* _WIN32||_WIN64 */ -#endif /* TBB_USE_ASSERT */ - } - - //! Release lock - void unlock() { -#if TBB_USE_ASSERT - aligned_space tmp; - scoped_lock& s = *tmp.begin(); - s.my_mutex = this; - s.internal_release(); -#else - #if _WIN32||_WIN64 - LeaveCriticalSection(&impl); - #else - pthread_mutex_unlock(&impl); - #endif /* _WIN32||_WIN64 */ -#endif /* TBB_USE_ASSERT */ - } - - //! Return native_handle - #if _WIN32||_WIN64 - typedef LPCRITICAL_SECTION native_handle_type; - #else - typedef pthread_mutex_t* native_handle_type; - #endif - native_handle_type native_handle() { return (native_handle_type) &impl; } - -private: -#if _WIN32||_WIN64 - CRITICAL_SECTION impl; - enum state_t { - INITIALIZED=0x1234, - DESTROYED=0x789A, - } state; -#else - pthread_mutex_t impl; -#endif /* _WIN32||_WIN64 */ - - //! All checks from mutex constructor using mutex.state were moved here - void __TBB_EXPORTED_METHOD internal_construct(); - - //! All checks from mutex destructor using mutex.state were moved here - void __TBB_EXPORTED_METHOD internal_destroy(); -}; - -__TBB_DEFINE_PROFILING_SET_NAME(recursive_mutex) - -} // namespace tbb - -#endif /* __TBB_recursive_mutex_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/runtime_loader.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/runtime_loader.h deleted file mode 100644 index f491752d4..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/runtime_loader.h +++ /dev/null @@ -1,188 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_runtime_loader_H -#define __TBB_runtime_loader_H - -#if ! TBB_PREVIEW_RUNTIME_LOADER - #error Set TBB_PREVIEW_RUNTIME_LOADER to include runtime_loader.h -#endif - -#include "tbb/tbb_stddef.h" -#include - -#if _MSC_VER - #if ! __TBB_NO_IMPLICIT_LINKAGE - #ifdef _DEBUG - #pragma comment( linker, "/nodefaultlib:tbb_debug.lib" ) - #pragma comment( linker, "/defaultlib:tbbproxy_debug.lib" ) - #else - #pragma comment( linker, "/nodefaultlib:tbb.lib" ) - #pragma comment( linker, "/defaultlib:tbbproxy.lib" ) - #endif - #endif -#endif - -namespace tbb { - -namespace interface6 { - -//! Load TBB at runtime. -/*! - -\b Usage: - -In source code: - -\code -#include "tbb/runtime_loader.h" - -char const * path[] = { "/lib/ia32", NULL }; -tbb::runtime_loader loader( path ); - -// Now use TBB. -\endcode - -Link with \c tbbproxy.lib (or \c libtbbproxy.a) instead of \c tbb.lib (\c libtbb.dylib, -\c libtbb.so). - -TBB library will be loaded at runtime from \c /lib/ia32 directory. - -\b Attention: - -All \c runtime_loader objects (in the same module, i.e. exe or dll) share some global state. -The most noticeable piece of global state is loaded TBB library. -There are some implications: - - - Only one TBB library can be loaded per module. - - - If one object has already loaded TBB library, another object will not load TBB. - If the loaded TBB library is suitable for the second object, both will use TBB - cooperatively, otherwise the second object will report an error. - - - \c runtime_loader objects will not work (correctly) in parallel due to absence of - syncronization. - -*/ - -class runtime_loader : tbb::internal::no_copy { - - public: - - //! Error mode constants. - enum error_mode { - em_status, //!< Save status of operation and continue. - em_throw, //!< Throw an exception of tbb::runtime_loader::error_code type. - em_abort //!< Print message to \c stderr and call \c abort(). - }; // error_mode - - //! Error codes. - enum error_code { - ec_ok, //!< No errors. - ec_bad_call, //!< Invalid function call (e. g. load() called when TBB is already loaded). - ec_bad_arg, //!< Invalid argument passed. - ec_bad_lib, //!< Invalid library found (e. g. \c TBB_runtime_version symbol not found). - ec_bad_ver, //!< TBB found but version is not suitable. - ec_no_lib //!< No suitable TBB library found. - }; // error_code - - //! Initialize object but do not load TBB. - runtime_loader( error_mode mode = em_abort ); - - //! Initialize object and load TBB. - /*! - See load() for details. - - If error mode is \c em_status, call status() to check whether TBB was loaded or not. - */ - runtime_loader( - char const * path[], //!< List of directories to search TBB in. - int min_ver = TBB_INTERFACE_VERSION, //!< Minimal suitable version of TBB. - int max_ver = INT_MAX, //!< Maximal suitable version of TBB. - error_mode mode = em_abort //!< Error mode for this object. - ); - - //! Destroy object. - ~runtime_loader(); - - //! Load TBB. - /*! - The method searches the directories specified in \c path[] array for the TBB library. - When the library is found, it is loaded and its version is checked. If the version is - not suitable, the library is unloaded, and the search continues. - - \b Note: - - For security reasons, avoid using relative directory names. For example, never load - TBB from current (\c "."), parent (\c "..") or any other relative directory (like - \c "lib" ). Use only absolute directory names (e. g. "/usr/local/lib"). - - For the same security reasons, avoid using system default directories (\c "") on - Windows. (See http://www.microsoft.com/technet/security/advisory/2269637.mspx for - details.) - - Neglecting these rules may cause your program to execute 3-rd party malicious code. - - \b Errors: - - \c ec_bad_call - TBB already loaded by this object. - - \c ec_bad_arg - \p min_ver and/or \p max_ver negative or zero, - or \p min_ver > \p max_ver. - - \c ec_bad_ver - TBB of unsuitable version already loaded by another object. - - \c ec_no_lib - No suitable library found. - */ - error_code - load( - char const * path[], //!< List of directories to search TBB in. - int min_ver = TBB_INTERFACE_VERSION, //!< Minimal suitable version of TBB. - int max_ver = INT_MAX //!< Maximal suitable version of TBB. - - ); - - - //! Report status. - /*! - If error mode is \c em_status, the function returns status of the last operation. - */ - error_code status(); - - private: - - error_mode const my_mode; - error_code my_status; - bool my_loaded; - -}; // class runtime_loader - -} // namespace interface6 - -using interface6::runtime_loader; - -} // namespace tbb - -#endif /* __TBB_runtime_loader_H */ - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/scalable_allocator.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/scalable_allocator.h deleted file mode 100644 index 1226d7098..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/scalable_allocator.h +++ /dev/null @@ -1,328 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_scalable_allocator_H -#define __TBB_scalable_allocator_H -/** @file */ - -#include /* Need ptrdiff_t and size_t from here. */ -#if !_MSC_VER -#include /* Need intptr_t from here. */ -#endif - -#if !defined(__cplusplus) && __ICC==1100 - #pragma warning (push) - #pragma warning (disable: 991) -#endif - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -#if _MSC_VER >= 1400 -#define __TBB_EXPORTED_FUNC __cdecl -#else -#define __TBB_EXPORTED_FUNC -#endif - -/** The "malloc" analogue to allocate block of memory of size bytes. - * @ingroup memory_allocation */ -void * __TBB_EXPORTED_FUNC scalable_malloc (size_t size); - -/** The "free" analogue to discard a previously allocated piece of memory. - @ingroup memory_allocation */ -void __TBB_EXPORTED_FUNC scalable_free (void* ptr); - -/** The "realloc" analogue complementing scalable_malloc. - @ingroup memory_allocation */ -void * __TBB_EXPORTED_FUNC scalable_realloc (void* ptr, size_t size); - -/** The "calloc" analogue complementing scalable_malloc. - @ingroup memory_allocation */ -void * __TBB_EXPORTED_FUNC scalable_calloc (size_t nobj, size_t size); - -/** The "posix_memalign" analogue. - @ingroup memory_allocation */ -int __TBB_EXPORTED_FUNC scalable_posix_memalign (void** memptr, size_t alignment, size_t size); - -/** The "_aligned_malloc" analogue. - @ingroup memory_allocation */ -void * __TBB_EXPORTED_FUNC scalable_aligned_malloc (size_t size, size_t alignment); - -/** The "_aligned_realloc" analogue. - @ingroup memory_allocation */ -void * __TBB_EXPORTED_FUNC scalable_aligned_realloc (void* ptr, size_t size, size_t alignment); - -/** The "_aligned_free" analogue. - @ingroup memory_allocation */ -void __TBB_EXPORTED_FUNC scalable_aligned_free (void* ptr); - -/** The analogue of _msize/malloc_size/malloc_usable_size. - Returns the usable size of a memory block previously allocated by scalable_*, - or 0 (zero) if ptr does not point to such a block. - @ingroup memory_allocation */ -size_t __TBB_EXPORTED_FUNC scalable_msize (void* ptr); - -/* Results for scalable_allocation_* functions */ -typedef enum { - TBBMALLOC_OK, - TBBMALLOC_INVALID_PARAM, - TBBMALLOC_UNSUPPORTED, - TBBMALLOC_NO_MEMORY, - TBBMALLOC_NO_EFFECT -} ScalableAllocationResult; - -/* Setting TBB_MALLOC_USE_HUGE_PAGES environment variable to 1 enables huge pages. - scalable_allocation_mode call has priority over environment variable. */ -typedef enum { - TBBMALLOC_USE_HUGE_PAGES, /* value turns using huge pages on and off */ - /* deprecated, kept for backward compatibility only */ - USE_HUGE_PAGES = TBBMALLOC_USE_HUGE_PAGES, - /* try to limit memory consumption value Bytes, clean internal buffers - if limit is exceeded, but not prevents from requesting memory from OS */ - TBBMALLOC_SET_SOFT_HEAP_LIMIT -} AllocationModeParam; - -/** Set TBB allocator-specific allocation modes. - @ingroup memory_allocation */ -int __TBB_EXPORTED_FUNC scalable_allocation_mode(int param, intptr_t value); - -typedef enum { - /* Clean internal allocator buffers for all threads. - Returns TBBMALLOC_NO_EFFECT if no buffers cleaned, - TBBMALLOC_OK if some memory released from buffers. */ - TBBMALLOC_CLEAN_ALL_BUFFERS, - /* Clean internal allocator buffer for current thread only. - Return values same as for TBBMALLOC_CLEAN_ALL_BUFFERS. */ - TBBMALLOC_CLEAN_THREAD_BUFFERS -} ScalableAllocationCmd; - -/** Call TBB allocator-specific commands. - @ingroup memory_allocation */ -int __TBB_EXPORTED_FUNC scalable_allocation_command(int cmd, void *param); - -#ifdef __cplusplus -} /* extern "C" */ -#endif /* __cplusplus */ - -#ifdef __cplusplus - -//! The namespace rml contains components of low-level memory pool interface. -namespace rml { -class MemoryPool; - -typedef void *(*rawAllocType)(intptr_t pool_id, size_t &bytes); -typedef int (*rawFreeType)(intptr_t pool_id, void* raw_ptr, size_t raw_bytes); - -/* -MemPoolPolicy extension must be compatible with such structure fields layout - -struct MemPoolPolicy { - rawAllocType pAlloc; - rawFreeType pFree; - size_t granularity; // granularity of pAlloc allocations -}; -*/ - -struct MemPoolPolicy { - enum { - TBBMALLOC_POOL_VERSION = 1 - }; - - rawAllocType pAlloc; - rawFreeType pFree; - // granularity of pAlloc allocations. 0 means default used. - size_t granularity; - int version; - // all memory consumed at 1st pAlloc call and never returned, - // no more pAlloc calls after 1st - unsigned fixedPool : 1, - // memory consumed but returned only at pool termination - keepAllMemory : 1, - reserved : 30; - - MemPoolPolicy(rawAllocType pAlloc_, rawFreeType pFree_, - size_t granularity_ = 0, bool fixedPool_ = false, - bool keepAllMemory_ = false) : - pAlloc(pAlloc_), pFree(pFree_), granularity(granularity_), version(TBBMALLOC_POOL_VERSION), - fixedPool(fixedPool_), keepAllMemory(keepAllMemory_), - reserved(0) {} -}; - -// enums have same values as appropriate enums from ScalableAllocationResult -// TODO: use ScalableAllocationResult in pool_create directly -enum MemPoolError { - // pool created successfully - POOL_OK = TBBMALLOC_OK, - // invalid policy parameters found - INVALID_POLICY = TBBMALLOC_INVALID_PARAM, - // requested pool policy is not supported by allocator library - UNSUPPORTED_POLICY = TBBMALLOC_UNSUPPORTED, - // lack of memory during pool creation - NO_MEMORY = TBBMALLOC_NO_MEMORY, - // action takes no effect - NO_EFFECT = TBBMALLOC_NO_EFFECT -}; - -MemPoolError pool_create_v1(intptr_t pool_id, const MemPoolPolicy *policy, - rml::MemoryPool **pool); - -bool pool_destroy(MemoryPool* memPool); -void *pool_malloc(MemoryPool* memPool, size_t size); -void *pool_realloc(MemoryPool* memPool, void *object, size_t size); -void *pool_aligned_malloc(MemoryPool* mPool, size_t size, size_t alignment); -void *pool_aligned_realloc(MemoryPool* mPool, void *ptr, size_t size, size_t alignment); -bool pool_reset(MemoryPool* memPool); -bool pool_free(MemoryPool *memPool, void *object); -} - -#include /* To use new with the placement argument */ - -/* Ensure that including this header does not cause implicit linkage with TBB */ -#ifndef __TBB_NO_IMPLICIT_LINKAGE - #define __TBB_NO_IMPLICIT_LINKAGE 1 - #include "tbb_stddef.h" - #undef __TBB_NO_IMPLICIT_LINKAGE -#else - #include "tbb_stddef.h" -#endif - -#if __TBB_CPP11_RVALUE_REF_PRESENT && !__TBB_CPP11_STD_FORWARD_BROKEN - #include // std::forward -#endif - -namespace tbb { - -#if _MSC_VER && !defined(__INTEL_COMPILER) - // Workaround for erroneous "unreferenced parameter" warning in method destroy. - #pragma warning (push) - #pragma warning (disable: 4100) -#endif - -//! Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5 -/** The members are ordered the same way they are in section 20.4.1 - of the ISO C++ standard. - @ingroup memory_allocation */ -template -class scalable_allocator { -public: - typedef typename internal::allocator_type::value_type value_type; - typedef value_type* pointer; - typedef const value_type* const_pointer; - typedef value_type& reference; - typedef const value_type& const_reference; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - template struct rebind { - typedef scalable_allocator other; - }; - - scalable_allocator() throw() {} - scalable_allocator( const scalable_allocator& ) throw() {} - template scalable_allocator(const scalable_allocator&) throw() {} - - pointer address(reference x) const {return &x;} - const_pointer address(const_reference x) const {return &x;} - - //! Allocate space for n objects. - pointer allocate( size_type n, const void* /*hint*/ =0 ) { - return static_cast( scalable_malloc( n * sizeof(value_type) ) ); - } - - //! Free previously allocated block of memory - void deallocate( pointer p, size_type ) { - scalable_free( p ); - } - - //! Largest value for which method allocate might succeed. - size_type max_size() const throw() { - size_type absolutemax = static_cast(-1) / sizeof (value_type); - return (absolutemax > 0 ? absolutemax : 1); - } -#if __TBB_ALLOCATOR_CONSTRUCT_VARIADIC - template - void construct(U *p, Args&&... args) - #if __TBB_CPP11_STD_FORWARD_BROKEN - { ::new((void *)p) U((args)...); } - #else - { ::new((void *)p) U(std::forward(args)...); } - #endif -#else // __TBB_ALLOCATOR_CONSTRUCT_VARIADIC - void construct( pointer p, const value_type& value ) {::new((void*)(p)) value_type(value);} -#endif // __TBB_ALLOCATOR_CONSTRUCT_VARIADIC - void destroy( pointer p ) {p->~value_type();} -}; - -#if _MSC_VER && !defined(__INTEL_COMPILER) - #pragma warning (pop) -#endif // warning 4100 is back - -//! Analogous to std::allocator, as defined in ISO C++ Standard, Section 20.4.1 -/** @ingroup memory_allocation */ -template<> -class scalable_allocator { -public: - typedef void* pointer; - typedef const void* const_pointer; - typedef void value_type; - template struct rebind { - typedef scalable_allocator other; - }; -}; - -template -inline bool operator==( const scalable_allocator&, const scalable_allocator& ) {return true;} - -template -inline bool operator!=( const scalable_allocator&, const scalable_allocator& ) {return false;} - -} // namespace tbb - -#if _MSC_VER - #if (__TBB_BUILD || __TBBMALLOC_BUILD) && !defined(__TBBMALLOC_NO_IMPLICIT_LINKAGE) - #define __TBBMALLOC_NO_IMPLICIT_LINKAGE 1 - #endif - - #if !__TBBMALLOC_NO_IMPLICIT_LINKAGE - #ifdef _DEBUG - #pragma comment(lib, "tbbmalloc_debug.lib") - #else - #pragma comment(lib, "tbbmalloc.lib") - #endif - #endif - - -#endif - -#endif /* __cplusplus */ - -#if !defined(__cplusplus) && __ICC==1100 - #pragma warning (pop) -#endif // ICC 11.0 warning 991 is back - -#endif /* __TBB_scalable_allocator_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/spin_mutex.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/spin_mutex.h deleted file mode 100644 index 2caf1b1be..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/spin_mutex.h +++ /dev/null @@ -1,220 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_spin_mutex_H -#define __TBB_spin_mutex_H - -#include -#include -#include "aligned_space.h" -#include "tbb_stddef.h" -#include "tbb_machine.h" -#include "tbb_profiling.h" -#include "internal/_mutex_padding.h" - -namespace tbb { - -//! A lock that occupies a single byte. -/** A spin_mutex is a spin mutex that fits in a single byte. - It should be used only for locking short critical sections - (typically less than 20 instructions) when fairness is not an issue. - If zero-initialized, the mutex is considered unheld. - @ingroup synchronization */ -class spin_mutex { - //! 0 if lock is released, 1 if lock is acquired. - __TBB_atomic_flag flag; - -public: - //! Construct unacquired lock. - /** Equivalent to zero-initialization of *this. */ - spin_mutex() : flag(0) { -#if TBB_USE_THREADING_TOOLS - internal_construct(); -#endif - } - - //! Represents acquisition of a mutex. - class scoped_lock : internal::no_copy { - private: - //! Points to currently held mutex, or NULL if no lock is held. - spin_mutex* my_mutex; - - //! Value to store into spin_mutex::flag to unlock the mutex. - /** This variable is no longer used. Instead, 0 and 1 are used to - represent that the lock is free and acquired, respectively. - We keep the member variable here to ensure backward compatibility */ - __TBB_Flag my_unlock_value; - - //! Like acquire, but with ITT instrumentation. - void __TBB_EXPORTED_METHOD internal_acquire( spin_mutex& m ); - - //! Like try_acquire, but with ITT instrumentation. - bool __TBB_EXPORTED_METHOD internal_try_acquire( spin_mutex& m ); - - //! Like release, but with ITT instrumentation. - void __TBB_EXPORTED_METHOD internal_release(); - - friend class spin_mutex; - - public: - //! Construct without acquiring a mutex. - scoped_lock() : my_mutex(NULL), my_unlock_value(0) {} - - //! Construct and acquire lock on a mutex. - scoped_lock( spin_mutex& m ) : my_unlock_value(0) { - internal::suppress_unused_warning(my_unlock_value); -#if TBB_USE_THREADING_TOOLS||TBB_USE_ASSERT - my_mutex=NULL; - internal_acquire(m); -#else - my_mutex=&m; - __TBB_LockByte(m.flag); -#endif /* TBB_USE_THREADING_TOOLS||TBB_USE_ASSERT*/ - } - - //! Acquire lock. - void acquire( spin_mutex& m ) { -#if TBB_USE_THREADING_TOOLS||TBB_USE_ASSERT - internal_acquire(m); -#else - my_mutex = &m; - __TBB_LockByte(m.flag); -#endif /* TBB_USE_THREADING_TOOLS||TBB_USE_ASSERT*/ - } - - //! Try acquiring lock (non-blocking) - /** Return true if lock acquired; false otherwise. */ - bool try_acquire( spin_mutex& m ) { -#if TBB_USE_THREADING_TOOLS||TBB_USE_ASSERT - return internal_try_acquire(m); -#else - bool result = __TBB_TryLockByte(m.flag); - if( result ) - my_mutex = &m; - return result; -#endif /* TBB_USE_THREADING_TOOLS||TBB_USE_ASSERT*/ - } - - //! Release lock - void release() { -#if TBB_USE_THREADING_TOOLS||TBB_USE_ASSERT - internal_release(); -#else - __TBB_UnlockByte(my_mutex->flag); - my_mutex = NULL; -#endif /* TBB_USE_THREADING_TOOLS||TBB_USE_ASSERT */ - } - - //! Destroy lock. If holding a lock, releases the lock first. - ~scoped_lock() { - if( my_mutex ) { -#if TBB_USE_THREADING_TOOLS||TBB_USE_ASSERT - internal_release(); -#else - __TBB_UnlockByte(my_mutex->flag); -#endif /* TBB_USE_THREADING_TOOLS||TBB_USE_ASSERT */ - } - } - }; - - //! Internal constructor with ITT instrumentation. - void __TBB_EXPORTED_METHOD internal_construct(); - - // Mutex traits - static const bool is_rw_mutex = false; - static const bool is_recursive_mutex = false; - static const bool is_fair_mutex = false; - - // ISO C++0x compatibility methods - - //! Acquire lock - void lock() { -#if TBB_USE_THREADING_TOOLS - aligned_space tmp; - new(tmp.begin()) scoped_lock(*this); -#else - __TBB_LockByte(flag); -#endif /* TBB_USE_THREADING_TOOLS*/ - } - - //! Try acquiring lock (non-blocking) - /** Return true if lock acquired; false otherwise. */ - bool try_lock() { -#if TBB_USE_THREADING_TOOLS - aligned_space tmp; - return (new(tmp.begin()) scoped_lock)->internal_try_acquire(*this); -#else - return __TBB_TryLockByte(flag); -#endif /* TBB_USE_THREADING_TOOLS*/ - } - - //! Release lock - void unlock() { -#if TBB_USE_THREADING_TOOLS - aligned_space tmp; - scoped_lock& s = *tmp.begin(); - s.my_mutex = this; - s.internal_release(); -#else - __TBB_store_with_release(flag, 0); -#endif /* TBB_USE_THREADING_TOOLS */ - } - - friend class scoped_lock; -}; // end of spin_mutex - -__TBB_DEFINE_PROFILING_SET_NAME(spin_mutex) - -} // namespace tbb - -#if ( __TBB_x86_32 || __TBB_x86_64 ) -#include "internal/_x86_eliding_mutex_impl.h" -#endif - -namespace tbb { -//! A cross-platform spin mutex with speculative lock acquisition. -/** On platforms with proper HW support, this lock may speculatively execute - its critical sections, using HW mechanisms to detect real data races and - ensure atomicity of the critical sections. In particular, it uses - Intel(R) Transactional Synchronization Extensions (Intel(R) TSX). - Without such HW support, it behaves like a spin_mutex. - It should be used for locking short critical sections where the lock is - contended but the data it protects are not. If zero-initialized, the - mutex is considered unheld. - @ingroup synchronization */ - -#if ( __TBB_x86_32 || __TBB_x86_64 ) -typedef interface7::internal::padded_mutex speculative_spin_mutex; -#else -typedef interface7::internal::padded_mutex speculative_spin_mutex; -#endif -__TBB_DEFINE_PROFILING_SET_NAME(speculative_spin_mutex) - -} // namespace tbb - -#endif /* __TBB_spin_mutex_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/spin_rw_mutex.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/spin_rw_mutex.h deleted file mode 100644 index b1c9a3904..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/spin_rw_mutex.h +++ /dev/null @@ -1,270 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_spin_rw_mutex_H -#define __TBB_spin_rw_mutex_H - -#include "tbb_stddef.h" -#include "tbb_machine.h" -#include "tbb_profiling.h" -#include "internal/_mutex_padding.h" -namespace tbb { - -class spin_rw_mutex_v3; -typedef spin_rw_mutex_v3 spin_rw_mutex; - -//! Fast, unfair, spinning reader-writer lock with backoff and writer-preference -/** @ingroup synchronization */ -class spin_rw_mutex_v3 { - //! @cond INTERNAL - - //! Internal acquire write lock. - bool __TBB_EXPORTED_METHOD internal_acquire_writer(); - - //! Out of line code for releasing a write lock. - /** This code has debug checking and instrumentation for Intel(R) Thread Checker and Intel(R) Thread Profiler. */ - void __TBB_EXPORTED_METHOD internal_release_writer(); - - //! Internal acquire read lock. - void __TBB_EXPORTED_METHOD internal_acquire_reader(); - - //! Internal upgrade reader to become a writer. - bool __TBB_EXPORTED_METHOD internal_upgrade(); - - //! Out of line code for downgrading a writer to a reader. - /** This code has debug checking and instrumentation for Intel(R) Thread Checker and Intel(R) Thread Profiler. */ - void __TBB_EXPORTED_METHOD internal_downgrade(); - - //! Internal release read lock. - void __TBB_EXPORTED_METHOD internal_release_reader(); - - //! Internal try_acquire write lock. - bool __TBB_EXPORTED_METHOD internal_try_acquire_writer(); - - //! Internal try_acquire read lock. - bool __TBB_EXPORTED_METHOD internal_try_acquire_reader(); - - //! @endcond -public: - //! Construct unacquired mutex. - spin_rw_mutex_v3() : state(0) { -#if TBB_USE_THREADING_TOOLS - internal_construct(); -#endif - } - -#if TBB_USE_ASSERT - //! Destructor asserts if the mutex is acquired, i.e. state is zero. - ~spin_rw_mutex_v3() { - __TBB_ASSERT( !state, "destruction of an acquired mutex"); - }; -#endif /* TBB_USE_ASSERT */ - - //! The scoped locking pattern - /** It helps to avoid the common problem of forgetting to release lock. - It also nicely provides the "node" for queuing locks. */ - class scoped_lock : internal::no_copy { - public: - //! Construct lock that has not acquired a mutex. - /** Equivalent to zero-initialization of *this. */ - scoped_lock() : mutex(NULL), is_writer(false) {} - - //! Acquire lock on given mutex. - scoped_lock( spin_rw_mutex& m, bool write = true ) : mutex(NULL) { - acquire(m, write); - } - - //! Release lock (if lock is held). - ~scoped_lock() { - if( mutex ) release(); - } - - //! Acquire lock on given mutex. - void acquire( spin_rw_mutex& m, bool write = true ) { - __TBB_ASSERT( !mutex, "holding mutex already" ); - is_writer = write; - mutex = &m; - if( write ) mutex->internal_acquire_writer(); - else mutex->internal_acquire_reader(); - } - - //! Upgrade reader to become a writer. - /** Returns whether the upgrade happened without releasing and re-acquiring the lock */ - bool upgrade_to_writer() { - __TBB_ASSERT( mutex, "lock is not acquired" ); - __TBB_ASSERT( !is_writer, "not a reader" ); - is_writer = true; - return mutex->internal_upgrade(); - } - - //! Release lock. - void release() { - __TBB_ASSERT( mutex, "lock is not acquired" ); - spin_rw_mutex *m = mutex; - mutex = NULL; -#if TBB_USE_THREADING_TOOLS||TBB_USE_ASSERT - if( is_writer ) m->internal_release_writer(); - else m->internal_release_reader(); -#else - if( is_writer ) __TBB_AtomicAND( &m->state, READERS ); - else __TBB_FetchAndAddWrelease( &m->state, -(intptr_t)ONE_READER); -#endif /* TBB_USE_THREADING_TOOLS||TBB_USE_ASSERT */ - } - - //! Downgrade writer to become a reader. - bool downgrade_to_reader() { - __TBB_ASSERT( mutex, "lock is not acquired" ); - __TBB_ASSERT( is_writer, "not a writer" ); -#if TBB_USE_THREADING_TOOLS||TBB_USE_ASSERT - mutex->internal_downgrade(); -#else - __TBB_FetchAndAddW( &mutex->state, ((intptr_t)ONE_READER-WRITER)); -#endif /* TBB_USE_THREADING_TOOLS||TBB_USE_ASSERT */ - is_writer = false; - return true; - } - - //! Try acquire lock on given mutex. - bool try_acquire( spin_rw_mutex& m, bool write = true ) { - __TBB_ASSERT( !mutex, "holding mutex already" ); - bool result; - is_writer = write; - result = write? m.internal_try_acquire_writer() - : m.internal_try_acquire_reader(); - if( result ) - mutex = &m; - return result; - } - -#if TBB_PREVIEW_SPECULATIVE_SPIN_RW_MUTEX - // helper methods for speculation-based spin_rw_mutex - spin_rw_mutex *__internal_get_mutex() { - return mutex; - } - - // have to be able to "NULL"-ify the mutex - void __internal_set_mutex(spin_rw_mutex* m) { - mutex = m; - } - - void __internal_set_writer(bool flag=true) { - is_writer = flag; - } -#endif /* TBB_PREVIEW_SPECULATIVE_SPIN_RW_MUTEX */ - protected: - - //! The pointer to the current mutex that is held, or NULL if no mutex is held. - spin_rw_mutex* mutex; - - //! If mutex!=NULL, then is_writer is true if holding a writer lock, false if holding a reader lock. - /** Not defined if not holding a lock. */ - bool is_writer; - }; - - // Mutex traits - static const bool is_rw_mutex = true; - static const bool is_recursive_mutex = false; - static const bool is_fair_mutex = false; - - // ISO C++0x compatibility methods - - //! Acquire writer lock - void lock() {internal_acquire_writer();} - - //! Try acquiring writer lock (non-blocking) - /** Return true if lock acquired; false otherwise. */ - bool try_lock() {return internal_try_acquire_writer();} - - //! Release lock - void unlock() { -#if TBB_USE_THREADING_TOOLS||TBB_USE_ASSERT - if( state&WRITER ) internal_release_writer(); - else internal_release_reader(); -#else - if( state&WRITER ) __TBB_AtomicAND( &state, READERS ); - else __TBB_FetchAndAddWrelease( &state, -(intptr_t)ONE_READER); -#endif /* TBB_USE_THREADING_TOOLS||TBB_USE_ASSERT */ - } - - // Methods for reader locks that resemble ISO C++0x compatibility methods. - - //! Acquire reader lock - void lock_read() {internal_acquire_reader();} - - //! Try acquiring reader lock (non-blocking) - /** Return true if reader lock acquired; false otherwise. */ - bool try_lock_read() {return internal_try_acquire_reader();} - -protected: - typedef intptr_t state_t; - static const state_t WRITER = 1; - static const state_t WRITER_PENDING = 2; - static const state_t READERS = ~(WRITER | WRITER_PENDING); - static const state_t ONE_READER = 4; - static const state_t BUSY = WRITER | READERS; - //! State of lock - /** Bit 0 = writer is holding lock - Bit 1 = request by a writer to acquire lock (hint to readers to wait) - Bit 2..N = number of readers holding lock */ - state_t state; - -private: - void __TBB_EXPORTED_METHOD internal_construct(); -}; - -__TBB_DEFINE_PROFILING_SET_NAME(spin_rw_mutex) - -} // namespace tbb -#if TBB_PREVIEW_SPECULATIVE_SPIN_RW_MUTEX -#if __TBB_TSX_AVAILABLE -#include "internal/_x86_rtm_rw_mutex_impl.h" -#endif - -namespace tbb { -namespace interface7 { -//! A cross-platform spin reader/writer mutex with speculative lock acquisition. -/** On platforms with proper HW support, this lock may speculatively execute - its critical sections, using HW mechanisms to detect real data races and - ensure atomicity of the critical sections. In particular, it uses - Intel(R) Transactional Synchronization Extensions (Intel(R) TSX). - Without such HW support, it behaves like a spin_rw_mutex. - It should be used for locking short critical sections where the lock is - contended but the data it protects are not. - @ingroup synchronization */ -#if __TBB_TSX_AVAILABLE -typedef interface7::internal::padded_mutex speculative_spin_rw_mutex; -#else -typedef interface7::internal::padded_mutex speculative_spin_rw_mutex; -#endif -} // namespace interface7 - -using interface7::speculative_spin_rw_mutex; -__TBB_DEFINE_PROFILING_SET_NAME(speculative_spin_rw_mutex) -} // namespace tbb -#endif /* TBB_PREVIEW_SPECULATIVE_SPIN_RW_MUTEX */ -#endif /* __TBB_spin_rw_mutex_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/task.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/task.h deleted file mode 100644 index e1f455544..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/task.h +++ /dev/null @@ -1,992 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_task_H -#define __TBB_task_H - -#include "tbb_stddef.h" -#include "tbb_machine.h" -#include - -typedef struct ___itt_caller *__itt_caller; - -namespace tbb { - -class task; -class task_list; - -#if __TBB_TASK_GROUP_CONTEXT -class task_group_context; -#endif /* __TBB_TASK_GROUP_CONTEXT */ - -// MSVC does not allow taking the address of a member that was defined -// privately in task_base and made public in class task via a using declaration. -#if _MSC_VER || (__GNUC__==3 && __GNUC_MINOR__<3) -#define __TBB_TASK_BASE_ACCESS public -#else -#define __TBB_TASK_BASE_ACCESS private -#endif - -namespace internal { //< @cond INTERNAL - - class allocate_additional_child_of_proxy: no_assign { - //! No longer used, but retained for binary layout compatibility. Always NULL. - task* self; - task& parent; - public: - explicit allocate_additional_child_of_proxy( task& parent_ ) : self(NULL), parent(parent_) {} - task& __TBB_EXPORTED_METHOD allocate( size_t size ) const; - void __TBB_EXPORTED_METHOD free( task& ) const; - }; - -} //< namespace internal @endcond - -namespace interface5 { - namespace internal { - //! Base class for methods that became static in TBB 3.0. - /** TBB's evolution caused the "this" argument for several methods to become obsolete. - However, for backwards binary compatibility, the new methods need distinct names, - otherwise the One Definition Rule would be broken. Hence the new methods are - defined in this private base class, and then exposed in class task via - using declarations. */ - class task_base: tbb::internal::no_copy { - __TBB_TASK_BASE_ACCESS: - friend class tbb::task; - - //! Schedule task for execution when a worker becomes available. - static void spawn( task& t ); - - //! Spawn multiple tasks and clear list. - static void spawn( task_list& list ); - - //! Like allocate_child, except that task's parent becomes "t", not this. - /** Typically used in conjunction with schedule_to_reexecute to implement while loops. - Atomically increments the reference count of t.parent() */ - static tbb::internal::allocate_additional_child_of_proxy allocate_additional_child_of( task& t ) { - return tbb::internal::allocate_additional_child_of_proxy(t); - } - - //! Destroy a task. - /** Usually, calling this method is unnecessary, because a task is - implicitly deleted after its execute() method runs. However, - sometimes a task needs to be explicitly deallocated, such as - when a root task is used as the parent in spawn_and_wait_for_all. */ - static void __TBB_EXPORTED_FUNC destroy( task& victim ); - }; - } // internal -} // interface5 - -//! @cond INTERNAL -namespace internal { - - class scheduler: no_copy { - public: - //! For internal use only - virtual void spawn( task& first, task*& next ) = 0; - - //! For internal use only - virtual void wait_for_all( task& parent, task* child ) = 0; - - //! For internal use only - virtual void spawn_root_and_wait( task& first, task*& next ) = 0; - - //! Pure virtual destructor; - // Have to have it just to shut up overzealous compilation warnings - virtual ~scheduler() = 0; - - //! For internal use only - virtual void enqueue( task& t, void* reserved ) = 0; - }; - - //! A reference count - /** Should always be non-negative. A signed type is used so that underflow can be detected. */ - typedef intptr_t reference_count; - - //! An id as used for specifying affinity. - typedef unsigned short affinity_id; - -#if __TBB_TASK_GROUP_CONTEXT - class generic_scheduler; - - struct context_list_node_t { - context_list_node_t *my_prev, - *my_next; - }; - - class allocate_root_with_context_proxy: no_assign { - task_group_context& my_context; - public: - allocate_root_with_context_proxy ( task_group_context& ctx ) : my_context(ctx) {} - task& __TBB_EXPORTED_METHOD allocate( size_t size ) const; - void __TBB_EXPORTED_METHOD free( task& ) const; - }; -#endif /* __TBB_TASK_GROUP_CONTEXT */ - - class allocate_root_proxy: no_assign { - public: - static task& __TBB_EXPORTED_FUNC allocate( size_t size ); - static void __TBB_EXPORTED_FUNC free( task& ); - }; - - class allocate_continuation_proxy: no_assign { - public: - task& __TBB_EXPORTED_METHOD allocate( size_t size ) const; - void __TBB_EXPORTED_METHOD free( task& ) const; - }; - - class allocate_child_proxy: no_assign { - public: - task& __TBB_EXPORTED_METHOD allocate( size_t size ) const; - void __TBB_EXPORTED_METHOD free( task& ) const; - }; - - //! Memory prefix to a task object. - /** This class is internal to the library. - Do not reference it directly, except within the library itself. - Fields are ordered in way that preserves backwards compatibility and yields - good packing on typical 32-bit and 64-bit platforms. - - In case task prefix size exceeds 32 or 64 bytes on IA32 and Intel64 - architectures correspondingly, consider dynamic setting of task_alignment - and task_prefix_reservation_size based on the maximal operand size supported - by the current CPU. - - @ingroup task_scheduling */ - class task_prefix { - private: - friend class tbb::task; - friend class tbb::interface5::internal::task_base; - friend class tbb::task_list; - friend class internal::scheduler; - friend class internal::allocate_root_proxy; - friend class internal::allocate_child_proxy; - friend class internal::allocate_continuation_proxy; - friend class internal::allocate_additional_child_of_proxy; - -#if __TBB_TASK_GROUP_CONTEXT - //! Shared context that is used to communicate asynchronous state changes - /** Currently it is used to broadcast cancellation requests generated both - by users and as the result of unhandled exceptions in the task::execute() - methods. */ - task_group_context *context; -#endif /* __TBB_TASK_GROUP_CONTEXT */ - - //! The scheduler that allocated the task, or NULL if the task is big. - /** Small tasks are pooled by the scheduler that allocated the task. - If a scheduler needs to free a small task allocated by another scheduler, - it returns the task to that other scheduler. This policy avoids - memory space blowup issues for memory allocators that allocate from - thread-specific pools. */ - scheduler* origin; - -#if __TBB_TASK_PRIORITY - union { -#endif /* __TBB_TASK_PRIORITY */ - //! Obsolete. The scheduler that owns the task. - /** Retained only for the sake of backward binary compatibility. - Still used by inline methods in the task.h header. **/ - scheduler* owner; - -#if __TBB_TASK_PRIORITY - //! Pointer to the next offloaded lower priority task. - /** Used to maintain a list of offloaded tasks inside the scheduler. **/ - task* next_offloaded; - }; -#endif /* __TBB_TASK_PRIORITY */ - - //! The task whose reference count includes me. - /** In the "blocking style" of programming, this field points to the parent task. - In the "continuation-passing style" of programming, this field points to the - continuation of the parent. */ - tbb::task* parent; - - //! Reference count used for synchronization. - /** In the "continuation-passing style" of programming, this field is - the difference of the number of allocated children minus the - number of children that have completed. - In the "blocking style" of programming, this field is one more than the difference. */ - __TBB_atomic reference_count ref_count; - - //! Obsolete. Used to be scheduling depth before TBB 2.2 - /** Retained only for the sake of backward binary compatibility. - Not used by TBB anymore. **/ - int depth; - - //! A task::state_type, stored as a byte for compactness. - /** This state is exposed to users via method task::state(). */ - unsigned char state; - - //! Miscellaneous state that is not directly visible to users, stored as a byte for compactness. - /** 0x0 -> version 1.0 task - 0x1 -> version >=2.1 task - 0x10 -> task was enqueued - 0x20 -> task_proxy - 0x40 -> task has live ref_count - 0x80 -> a stolen task */ - unsigned char extra_state; - - affinity_id affinity; - - //! "next" field for list of task - tbb::task* next; - - //! The task corresponding to this task_prefix. - tbb::task& task() {return *reinterpret_cast(this+1);} - }; - -} // namespace internal -//! @endcond - -#if __TBB_TASK_GROUP_CONTEXT - -#if __TBB_TASK_PRIORITY -namespace internal { - static const int priority_stride_v4 = INT_MAX / 4; -} - -enum priority_t { - priority_normal = internal::priority_stride_v4 * 2, - priority_low = priority_normal - internal::priority_stride_v4, - priority_high = priority_normal + internal::priority_stride_v4 -}; - -#endif /* __TBB_TASK_PRIORITY */ - -#if TBB_USE_CAPTURED_EXCEPTION - class tbb_exception; -#else - namespace internal { - class tbb_exception_ptr; - } -#endif /* !TBB_USE_CAPTURED_EXCEPTION */ - -class task_scheduler_init; - -//! Used to form groups of tasks -/** @ingroup task_scheduling - The context services explicit cancellation requests from user code, and unhandled - exceptions intercepted during tasks execution. Intercepting an exception results - in generating internal cancellation requests (which is processed in exactly the - same way as external ones). - - The context is associated with one or more root tasks and defines the cancellation - group that includes all the descendants of the corresponding root task(s). Association - is established when a context object is passed as an argument to the task::allocate_root() - method. See task_group_context::task_group_context for more details. - - The context can be bound to another one, and other contexts can be bound to it, - forming a tree-like structure: parent -> this -> children. Arrows here designate - cancellation propagation direction. If a task in a cancellation group is cancelled - all the other tasks in this group and groups bound to it (as children) get cancelled too. - - IMPLEMENTATION NOTE: - When adding new members to task_group_context or changing types of existing ones, - update the size of both padding buffers (_leading_padding and _trailing_padding) - appropriately. See also VERSIONING NOTE at the constructor definition below. **/ -class task_group_context : internal::no_copy { -private: - friend class internal::generic_scheduler; - friend class task_scheduler_init; - -#if TBB_USE_CAPTURED_EXCEPTION - typedef tbb_exception exception_container_type; -#else - typedef internal::tbb_exception_ptr exception_container_type; -#endif - - enum version_traits_word_layout { - traits_offset = 16, - version_mask = 0xFFFF, - traits_mask = 0xFFFFul << traits_offset - }; - -public: - enum kind_type { - isolated, - bound - }; - - enum traits_type { - exact_exception = 0x0001ul << traits_offset, - concurrent_wait = 0x0004ul << traits_offset, -#if TBB_USE_CAPTURED_EXCEPTION - default_traits = 0 -#else - default_traits = exact_exception -#endif /* !TBB_USE_CAPTURED_EXCEPTION */ - }; - -private: - enum state { - may_have_children = 1 - }; - - union { - //! Flavor of this context: bound or isolated. - // TODO: describe asynchronous use, and whether any memory semantics are needed - __TBB_atomic kind_type my_kind; - uintptr_t _my_kind_aligner; - }; - - //! Pointer to the context of the parent cancellation group. NULL for isolated contexts. - task_group_context *my_parent; - - //! Used to form the thread specific list of contexts without additional memory allocation. - /** A context is included into the list of the current thread when its binding to - its parent happens. Any context can be present in the list of one thread only. **/ - internal::context_list_node_t my_node; - - //! Used to set and maintain stack stitching point for Intel Performance Tools. - __itt_caller itt_caller; - - //! Leading padding protecting accesses to frequently used members from false sharing. - /** Read accesses to the field my_cancellation_requested are on the hot path inside - the scheduler. This padding ensures that this field never shares the same cache - line with a local variable that is frequently written to. **/ - char _leading_padding[internal::NFS_MaxLineSize - - 2 * sizeof(uintptr_t)- sizeof(void*) - sizeof(internal::context_list_node_t) - - sizeof(__itt_caller)]; - - //! Specifies whether cancellation was requested for this task group. - uintptr_t my_cancellation_requested; - - //! Version for run-time checks and behavioral traits of the context. - /** Version occupies low 16 bits, and traits (zero or more ORed enumerators - from the traits_type enumerations) take the next 16 bits. - Original (zeroth) version of the context did not support any traits. **/ - uintptr_t my_version_and_traits; - - //! Pointer to the container storing exception being propagated across this task group. - exception_container_type *my_exception; - - //! Scheduler instance that registered this context in its thread specific list. - internal::generic_scheduler *my_owner; - - //! Internal state (combination of state flags, currently only may_have_children). - uintptr_t my_state; - -#if __TBB_TASK_PRIORITY - //! Priority level of the task group (in normalized representation) - intptr_t my_priority; -#endif /* __TBB_TASK_PRIORITY */ - - //! Trailing padding protecting accesses to frequently used members from false sharing - /** \sa _leading_padding **/ - char _trailing_padding[internal::NFS_MaxLineSize - 2 * sizeof(uintptr_t) - 2 * sizeof(void*) -#if __TBB_TASK_PRIORITY - - sizeof(intptr_t) -#endif /* __TBB_TASK_PRIORITY */ - ]; - -public: - //! Default & binding constructor. - /** By default a bound context is created. That is this context will be bound - (as child) to the context of the task calling task::allocate_root(this_context) - method. Cancellation requests passed to the parent context are propagated - to all the contexts bound to it. Similarly priority change is propagated - from the parent context to its children. - - If task_group_context::isolated is used as the argument, then the tasks associated - with this context will never be affected by events in any other context. - - Creating isolated contexts involve much less overhead, but they have limited - utility. Normally when an exception occurs in an algorithm that has nested - ones running, it is desirably to have all the nested algorithms cancelled - as well. Such a behavior requires nested algorithms to use bound contexts. - - There is one good place where using isolated algorithms is beneficial. It is - a master thread. That is if a particular algorithm is invoked directly from - the master thread (not from a TBB task), supplying it with explicitly - created isolated context will result in a faster algorithm startup. - - VERSIONING NOTE: - Implementation(s) of task_group_context constructor(s) cannot be made - entirely out-of-line because the run-time version must be set by the user - code. This will become critically important for binary compatibility, if - we ever have to change the size of the context object. - - Boosting the runtime version will also be necessary if new data fields are - introduced in the currently unused padding areas and these fields are updated - by inline methods. **/ - task_group_context ( kind_type relation_with_parent = bound, - uintptr_t traits = default_traits ) - : my_kind(relation_with_parent) - , my_version_and_traits(1 | traits) - { - init(); - } - - // Do not introduce standalone unbind method since it will break state propagation assumptions - __TBB_EXPORTED_METHOD ~task_group_context (); - - //! Forcefully reinitializes the context after the task tree it was associated with is completed. - /** Because the method assumes that all the tasks that used to be associated with - this context have already finished, calling it while the context is still - in use somewhere in the task hierarchy leads to undefined behavior. - - IMPORTANT: This method is not thread safe! - - The method does not change the context's parent if it is set. **/ - void __TBB_EXPORTED_METHOD reset (); - - //! Initiates cancellation of all tasks in this cancellation group and its subordinate groups. - /** \return false if cancellation has already been requested, true otherwise. - - Note that canceling never fails. When false is returned, it just means that - another thread (or this one) has already sent cancellation request to this - context or to one of its ancestors (if this context is bound). It is guaranteed - that when this method is concurrently called on the same not yet cancelled - context, true will be returned by one and only one invocation. **/ - bool __TBB_EXPORTED_METHOD cancel_group_execution (); - - //! Returns true if the context received cancellation request. - bool __TBB_EXPORTED_METHOD is_group_execution_cancelled () const; - - //! Records the pending exception, and cancels the task group. - /** May be called only from inside a catch-block. If the context is already - cancelled, does nothing. - The method brings the task group associated with this context exactly into - the state it would be in, if one of its tasks threw the currently pending - exception during its execution. In other words, it emulates the actions - of the scheduler's dispatch loop exception handler. **/ - void __TBB_EXPORTED_METHOD register_pending_exception (); - -#if __TBB_TASK_PRIORITY - //! Changes priority of the task group - void set_priority ( priority_t ); - - //! Retrieves current priority of the current task group - priority_t priority () const; -#endif /* __TBB_TASK_PRIORITY */ - -protected: - //! Out-of-line part of the constructor. - /** Singled out to ensure backward binary compatibility of the future versions. **/ - void __TBB_EXPORTED_METHOD init (); - -private: - friend class task; - friend class internal::allocate_root_with_context_proxy; - - static const kind_type binding_required = bound; - static const kind_type binding_completed = kind_type(bound+1); - static const kind_type detached = kind_type(binding_completed+1); - static const kind_type dying = kind_type(detached+1); - - //! Propagates any state change detected to *this, and as an optimisation possibly also upward along the heritage line. - template - void propagate_task_group_state ( T task_group_context::*mptr_state, task_group_context& src, T new_state ); - - //! Makes sure that the context is registered with a scheduler instance. - inline void finish_initialization ( internal::generic_scheduler *local_sched ); - - //! Registers this context with the local scheduler and binds it to its parent context - void bind_to ( internal::generic_scheduler *local_sched ); - - //! Registers this context with the local scheduler - void register_with ( internal::generic_scheduler *local_sched ); - -}; // class task_group_context - -#endif /* __TBB_TASK_GROUP_CONTEXT */ - -//! Base class for user-defined tasks. -/** @ingroup task_scheduling */ -class task: __TBB_TASK_BASE_ACCESS interface5::internal::task_base { - - //! Set reference count - void __TBB_EXPORTED_METHOD internal_set_ref_count( int count ); - - //! Decrement reference count and return its new value. - internal::reference_count __TBB_EXPORTED_METHOD internal_decrement_ref_count(); - -protected: - //! Default constructor. - task() {prefix().extra_state=1;} - -public: - //! Destructor. - virtual ~task() {} - - //! Should be overridden by derived classes. - virtual task* execute() = 0; - - //! Enumeration of task states that the scheduler considers. - enum state_type { - //! task is running, and will be destroyed after method execute() completes. - executing, - //! task to be rescheduled. - reexecute, - //! task is in ready pool, or is going to be put there, or was just taken off. - ready, - //! task object is freshly allocated or recycled. - allocated, - //! task object is on free list, or is going to be put there, or was just taken off. - freed, - //! task to be recycled as continuation - recycle -#if __TBB_RECYCLE_TO_ENQUEUE - //! task to be scheduled for starvation-resistant execution - ,to_enqueue -#endif - }; - - //------------------------------------------------------------------------ - // Allocating tasks - //------------------------------------------------------------------------ - - //! Returns proxy for overloaded new that allocates a root task. - static internal::allocate_root_proxy allocate_root() { - return internal::allocate_root_proxy(); - } - -#if __TBB_TASK_GROUP_CONTEXT - //! Returns proxy for overloaded new that allocates a root task associated with user supplied context. - static internal::allocate_root_with_context_proxy allocate_root( task_group_context& ctx ) { - return internal::allocate_root_with_context_proxy(ctx); - } -#endif /* __TBB_TASK_GROUP_CONTEXT */ - - //! Returns proxy for overloaded new that allocates a continuation task of *this. - /** The continuation's parent becomes the parent of *this. */ - internal::allocate_continuation_proxy& allocate_continuation() { - return *reinterpret_cast(this); - } - - //! Returns proxy for overloaded new that allocates a child task of *this. - internal::allocate_child_proxy& allocate_child() { - return *reinterpret_cast(this); - } - - //! Define recommended static form via import from base class. - using task_base::allocate_additional_child_of; - -#if __TBB_DEPRECATED_TASK_INTERFACE - //! Destroy a task. - /** Usually, calling this method is unnecessary, because a task is - implicitly deleted after its execute() method runs. However, - sometimes a task needs to be explicitly deallocated, such as - when a root task is used as the parent in spawn_and_wait_for_all. */ - void __TBB_EXPORTED_METHOD destroy( task& t ); -#else /* !__TBB_DEPRECATED_TASK_INTERFACE */ - //! Define recommended static form via import from base class. - using task_base::destroy; -#endif /* !__TBB_DEPRECATED_TASK_INTERFACE */ - - //------------------------------------------------------------------------ - // Recycling of tasks - //------------------------------------------------------------------------ - - //! Change this to be a continuation of its former self. - /** The caller must guarantee that the task's refcount does not become zero until - after the method execute() returns. Typically, this is done by having - method execute() return a pointer to a child of the task. If the guarantee - cannot be made, use method recycle_as_safe_continuation instead. - - Because of the hazard, this method may be deprecated in the future. */ - void recycle_as_continuation() { - __TBB_ASSERT( prefix().state==executing, "execute not running?" ); - prefix().state = allocated; - } - - //! Recommended to use, safe variant of recycle_as_continuation - /** For safety, it requires additional increment of ref_count. - With no descendants and ref_count of 1, it has the semantics of recycle_to_reexecute. */ - void recycle_as_safe_continuation() { - __TBB_ASSERT( prefix().state==executing, "execute not running?" ); - prefix().state = recycle; - } - - //! Change this to be a child of new_parent. - void recycle_as_child_of( task& new_parent ) { - internal::task_prefix& p = prefix(); - __TBB_ASSERT( prefix().state==executing||prefix().state==allocated, "execute not running, or already recycled" ); - __TBB_ASSERT( prefix().ref_count==0, "no child tasks allowed when recycled as a child" ); - __TBB_ASSERT( p.parent==NULL, "parent must be null" ); - __TBB_ASSERT( new_parent.prefix().state<=recycle, "corrupt parent's state" ); - __TBB_ASSERT( new_parent.prefix().state!=freed, "parent already freed" ); - p.state = allocated; - p.parent = &new_parent; -#if __TBB_TASK_GROUP_CONTEXT - p.context = new_parent.prefix().context; -#endif /* __TBB_TASK_GROUP_CONTEXT */ - } - - //! Schedule this for reexecution after current execute() returns. - /** Made obsolete by recycle_as_safe_continuation; may become deprecated. */ - void recycle_to_reexecute() { - __TBB_ASSERT( prefix().state==executing, "execute not running, or already recycled" ); - __TBB_ASSERT( prefix().ref_count==0, "no child tasks allowed when recycled for reexecution" ); - prefix().state = reexecute; - } - -#if __TBB_RECYCLE_TO_ENQUEUE - //! Schedule this to enqueue after descendant tasks complete. - /** Save enqueue/spawn difference, it has the semantics of recycle_as_safe_continuation. */ - void recycle_to_enqueue() { - __TBB_ASSERT( prefix().state==executing, "execute not running, or already recycled" ); - prefix().state = to_enqueue; - } -#endif /* __TBB_RECYCLE_TO_ENQUEUE */ - - // All depth-related methods are obsolete, and are retained for the sake - // of backward source compatibility only - intptr_t depth() const {return 0;} - void set_depth( intptr_t ) {} - void add_to_depth( int ) {} - - - //------------------------------------------------------------------------ - // Spawning and blocking - //------------------------------------------------------------------------ - - //! Set reference count - void set_ref_count( int count ) { -#if TBB_USE_THREADING_TOOLS||TBB_USE_ASSERT - internal_set_ref_count(count); -#else - prefix().ref_count = count; -#endif /* TBB_USE_THREADING_TOOLS||TBB_USE_ASSERT */ - } - - //! Atomically increment reference count and returns its old value. - /** Has acquire semantics */ - void increment_ref_count() { - __TBB_FetchAndIncrementWacquire( &prefix().ref_count ); - } - - //! Atomically decrement reference count and returns its new value. - /** Has release semantics. */ - int decrement_ref_count() { -#if TBB_USE_THREADING_TOOLS||TBB_USE_ASSERT - return int(internal_decrement_ref_count()); -#else - return int(__TBB_FetchAndDecrementWrelease( &prefix().ref_count ))-1; -#endif /* TBB_USE_THREADING_TOOLS||TBB_USE_ASSERT */ - } - - //! Define recommended static forms via import from base class. - using task_base::spawn; - - //! Similar to spawn followed by wait_for_all, but more efficient. - void spawn_and_wait_for_all( task& child ) { - prefix().owner->wait_for_all( *this, &child ); - } - - //! Similar to spawn followed by wait_for_all, but more efficient. - void __TBB_EXPORTED_METHOD spawn_and_wait_for_all( task_list& list ); - - //! Spawn task allocated by allocate_root, wait for it to complete, and deallocate it. - static void spawn_root_and_wait( task& root ) { - root.prefix().owner->spawn_root_and_wait( root, root.prefix().next ); - } - - //! Spawn root tasks on list and wait for all of them to finish. - /** If there are more tasks than worker threads, the tasks are spawned in - order of front to back. */ - static void spawn_root_and_wait( task_list& root_list ); - - //! Wait for reference count to become one, and set reference count to zero. - /** Works on tasks while waiting. */ - void wait_for_all() { - prefix().owner->wait_for_all( *this, NULL ); - } - - //! Enqueue task for starvation-resistant execution. -#if __TBB_TASK_PRIORITY - /** The task will be enqueued on the normal priority level disregarding the - priority of its task group. - - The rationale of such semantics is that priority of an enqueued task is - statically fixed at the moment of its enqueuing, while task group priority - is dynamic. Thus automatic priority inheritance would be generally a subject - to the race, which may result in unexpected behavior. - - Use enqueue() overload with explicit priority value and task::group_priority() - method to implement such priority inheritance when it is really necessary. **/ -#endif /* __TBB_TASK_PRIORITY */ - static void enqueue( task& t ) { - t.prefix().owner->enqueue( t, NULL ); - } - -#if __TBB_TASK_PRIORITY - //! Enqueue task for starvation-resistant execution on the specified priority level. - static void enqueue( task& t, priority_t p ) { - __TBB_ASSERT( p == priority_low || p == priority_normal || p == priority_high, "Invalid priority level value" ); - t.prefix().owner->enqueue( t, (void*)p ); - } -#endif /* __TBB_TASK_PRIORITY */ - - //! The innermost task being executed or destroyed by the current thread at the moment. - static task& __TBB_EXPORTED_FUNC self(); - - //! task on whose behalf this task is working, or NULL if this is a root. - task* parent() const {return prefix().parent;} - - //! sets parent task pointer to specified value - void set_parent(task* p) { -#if __TBB_TASK_GROUP_CONTEXT - __TBB_ASSERT(prefix().context == p->prefix().context, "The tasks must be in the same context"); -#endif - prefix().parent = p; - } - -#if __TBB_TASK_GROUP_CONTEXT - //! This method is deprecated and will be removed in the future. - /** Use method group() instead. **/ - task_group_context* context() {return prefix().context;} - - //! Pointer to the task group descriptor. - task_group_context* group () { return prefix().context; } -#endif /* __TBB_TASK_GROUP_CONTEXT */ - - //! True if task was stolen from the task pool of another thread. - bool is_stolen_task() const { - return (prefix().extra_state & 0x80)!=0; - } - - //------------------------------------------------------------------------ - // Debugging - //------------------------------------------------------------------------ - - //! Current execution state - state_type state() const {return state_type(prefix().state);} - - //! The internal reference count. - int ref_count() const { -#if TBB_USE_ASSERT - internal::reference_count ref_count_ = prefix().ref_count; - __TBB_ASSERT( ref_count_==int(ref_count_), "integer overflow error"); -#endif - return int(prefix().ref_count); - } - - //! Obsolete, and only retained for the sake of backward compatibility. Always returns true. - bool __TBB_EXPORTED_METHOD is_owned_by_current_thread() const; - - //------------------------------------------------------------------------ - // Affinity - //------------------------------------------------------------------------ - - //! An id as used for specifying affinity. - /** Guaranteed to be integral type. Value of 0 means no affinity. */ - typedef internal::affinity_id affinity_id; - - //! Set affinity for this task. - void set_affinity( affinity_id id ) {prefix().affinity = id;} - - //! Current affinity of this task - affinity_id affinity() const {return prefix().affinity;} - - //! Invoked by scheduler to notify task that it ran on unexpected thread. - /** Invoked before method execute() runs, if task is stolen, or task has - affinity but will be executed on another thread. - - The default action does nothing. */ - virtual void __TBB_EXPORTED_METHOD note_affinity( affinity_id id ); - -#if __TBB_TASK_GROUP_CONTEXT - //! Moves this task from its current group into another one. - /** Argument ctx specifies the new group. - - The primary purpose of this method is to associate unique task group context - with a task allocated for subsequent enqueuing. In contrast to spawned tasks - enqueued ones normally outlive the scope where they were created. This makes - traditional usage model where task group context are allocated locally on - the stack inapplicable. Dynamic allocation of context objects is performance - inefficient. Method change_group() allows to make task group context object - a member of the task class, and then associate it with its containing task - object in the latter's constructor. **/ - void __TBB_EXPORTED_METHOD change_group ( task_group_context& ctx ); - - //! Initiates cancellation of all tasks in this cancellation group and its subordinate groups. - /** \return false if cancellation has already been requested, true otherwise. **/ - bool cancel_group_execution () { return prefix().context->cancel_group_execution(); } - - //! Returns true if the context has received cancellation request. - bool is_cancelled () const { return prefix().context->is_group_execution_cancelled(); } -#else - bool is_cancelled () const { return false; } -#endif /* __TBB_TASK_GROUP_CONTEXT */ - -#if __TBB_TASK_PRIORITY - //! Changes priority of the task group this task belongs to. - void set_group_priority ( priority_t p ) { prefix().context->set_priority(p); } - - //! Retrieves current priority of the task group this task belongs to. - priority_t group_priority () const { return prefix().context->priority(); } - -#endif /* __TBB_TASK_PRIORITY */ - -private: - friend class interface5::internal::task_base; - friend class task_list; - friend class internal::scheduler; - friend class internal::allocate_root_proxy; -#if __TBB_TASK_GROUP_CONTEXT - friend class internal::allocate_root_with_context_proxy; -#endif /* __TBB_TASK_GROUP_CONTEXT */ - friend class internal::allocate_continuation_proxy; - friend class internal::allocate_child_proxy; - friend class internal::allocate_additional_child_of_proxy; - - //! Get reference to corresponding task_prefix. - /** Version tag prevents loader on Linux from using the wrong symbol in debug builds. **/ - internal::task_prefix& prefix( internal::version_tag* = NULL ) const { - return reinterpret_cast(const_cast(this))[-1]; - } -}; // class task - -//! task that does nothing. Useful for synchronization. -/** @ingroup task_scheduling */ -class empty_task: public task { - /*override*/ task* execute() { - return NULL; - } -}; - -//! @cond INTERNAL -namespace internal { - template - class function_task : public task { - F my_func; - /*override*/ task* execute() { - my_func(); - return NULL; - } - public: - function_task( const F& f ) : my_func(f) {} - }; -} // namespace internal -//! @endcond - -//! A list of children. -/** Used for method task::spawn_children - @ingroup task_scheduling */ -class task_list: internal::no_copy { -private: - task* first; - task** next_ptr; - friend class task; - friend class interface5::internal::task_base; -public: - //! Construct empty list - task_list() : first(NULL), next_ptr(&first) {} - - //! Destroys the list, but does not destroy the task objects. - ~task_list() {} - - //! True if list if empty; false otherwise. - bool empty() const {return !first;} - - //! Push task onto back of list. - void push_back( task& task ) { - task.prefix().next = NULL; - *next_ptr = &task; - next_ptr = &task.prefix().next; - } - - //! Pop the front task from the list. - task& pop_front() { - __TBB_ASSERT( !empty(), "attempt to pop item from empty task_list" ); - task* result = first; - first = result->prefix().next; - if( !first ) next_ptr = &first; - return *result; - } - - //! Clear the list - void clear() { - first=NULL; - next_ptr=&first; - } -}; - -inline void interface5::internal::task_base::spawn( task& t ) { - t.prefix().owner->spawn( t, t.prefix().next ); -} - -inline void interface5::internal::task_base::spawn( task_list& list ) { - if( task* t = list.first ) { - t->prefix().owner->spawn( *t, *list.next_ptr ); - list.clear(); - } -} - -inline void task::spawn_root_and_wait( task_list& root_list ) { - if( task* t = root_list.first ) { - t->prefix().owner->spawn_root_and_wait( *t, *root_list.next_ptr ); - root_list.clear(); - } -} - -} // namespace tbb - -inline void *operator new( size_t bytes, const tbb::internal::allocate_root_proxy& ) { - return &tbb::internal::allocate_root_proxy::allocate(bytes); -} - -inline void operator delete( void* task, const tbb::internal::allocate_root_proxy& ) { - tbb::internal::allocate_root_proxy::free( *static_cast(task) ); -} - -#if __TBB_TASK_GROUP_CONTEXT -inline void *operator new( size_t bytes, const tbb::internal::allocate_root_with_context_proxy& p ) { - return &p.allocate(bytes); -} - -inline void operator delete( void* task, const tbb::internal::allocate_root_with_context_proxy& p ) { - p.free( *static_cast(task) ); -} -#endif /* __TBB_TASK_GROUP_CONTEXT */ - -inline void *operator new( size_t bytes, const tbb::internal::allocate_continuation_proxy& p ) { - return &p.allocate(bytes); -} - -inline void operator delete( void* task, const tbb::internal::allocate_continuation_proxy& p ) { - p.free( *static_cast(task) ); -} - -inline void *operator new( size_t bytes, const tbb::internal::allocate_child_proxy& p ) { - return &p.allocate(bytes); -} - -inline void operator delete( void* task, const tbb::internal::allocate_child_proxy& p ) { - p.free( *static_cast(task) ); -} - -inline void *operator new( size_t bytes, const tbb::internal::allocate_additional_child_of_proxy& p ) { - return &p.allocate(bytes); -} - -inline void operator delete( void* task, const tbb::internal::allocate_additional_child_of_proxy& p ) { - p.free( *static_cast(task) ); -} - -#endif /* __TBB_task_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/task_arena.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/task_arena.h deleted file mode 100644 index e6761b73e..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/task_arena.h +++ /dev/null @@ -1,256 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_task_arena_H -#define __TBB_task_arena_H - -#include "task.h" -#include "tbb_exception.h" -#if TBB_USE_THREADING_TOOLS -#include "atomic.h" // for as_atomic -#endif - -#if __TBB_TASK_ARENA - -namespace tbb { - -//! @cond INTERNAL -namespace internal { - //! Internal to library. Should not be used by clients. - /** @ingroup task_scheduling */ - class arena; - class task_scheduler_observer_v3; -} // namespace internal -//! @endcond - -namespace interface7 { -//! @cond INTERNAL -namespace internal { -using namespace tbb::internal; //e.g. function_task from task.h - -class delegate_base : no_assign { -public: - virtual void operator()() const = 0; - virtual ~delegate_base() {} -}; - -template -class delegated_function : public delegate_base { - F &my_func; - /*override*/ void operator()() const { - my_func(); - } -public: - delegated_function ( F& f ) : my_func(f) {} -}; - -class task_arena_base { -protected: - //! NULL if not currently initialized. - internal::arena* my_arena; - -#if __TBB_TASK_GROUP_CONTEXT - //! default context of the arena - task_group_context *my_context; -#endif - - //! Concurrency level for deferred initialization - int my_max_concurrency; - - //! Reserved master slots - unsigned my_master_slots; - - //! Reserved for future use - intptr_t my_reserved; - - task_arena_base(int max_concurrency, unsigned reserved_for_masters) - : my_arena(0) -#if __TBB_TASK_GROUP_CONTEXT - , my_context(0) -#endif - , my_max_concurrency(max_concurrency) - , my_master_slots(reserved_for_masters) - , my_reserved(0) - {} - - void __TBB_EXPORTED_METHOD internal_initialize( ); - void __TBB_EXPORTED_METHOD internal_terminate( ); - void __TBB_EXPORTED_METHOD internal_enqueue( task&, intptr_t ) const; - void __TBB_EXPORTED_METHOD internal_execute( delegate_base& ) const; - void __TBB_EXPORTED_METHOD internal_wait() const; - static int __TBB_EXPORTED_FUNC internal_current_slot(); -public: - //! Typedef for number of threads that is automatic. - static const int automatic = -1; // any value < 1 means 'automatic' - -}; - -} // namespace internal -//! @endcond - -/** 1-to-1 proxy representation class of scheduler's arena - * Constructors set up settings only, real construction is deferred till the first method invocation - * Destructor only removes one of the references to the inner arena representation. - * Final destruction happens when all the references (and the work) are gone. - */ -class task_arena : public internal::task_arena_base { - friend class tbb::internal::task_scheduler_observer_v3; - bool my_initialized; - -public: - //! Creates task_arena with certain concurrency limits - /** Sets up settings only, real construction is deferred till the first method invocation - * @arg max_concurrency specifies total number of slots in arena where threads work - * @arg reserved_for_masters specifies number of slots to be used by master threads only. - * Value of 1 is default and reflects behavior of implicit arenas. - **/ - task_arena(int max_concurrency = automatic, unsigned reserved_for_masters = 1) - : task_arena_base(max_concurrency, reserved_for_masters) - , my_initialized(false) - {} - - //! Copies settings from another task_arena - task_arena(const task_arena &s) // copy settings but not the reference or instance - : task_arena_base(s.my_max_concurrency, s.my_master_slots) - , my_initialized(false) - {} - - //! Forces allocation of the resources for the task_arena as specified in constructor arguments - inline void initialize() { - if( !my_initialized ) { - internal_initialize(); -#if TBB_USE_THREADING_TOOLS - // Threading tools respect lock prefix but report false-positive data-race via plain store - internal::as_atomic(my_initialized).fetch_and_store(true); -#else - my_initialized = true; -#endif //TBB_USE_THREADING_TOOLS - } - } - - //! Overrides concurrency level and forces initialization of internal representation - inline void initialize(int max_concurrency, unsigned reserved_for_masters = 1) { - __TBB_ASSERT( !my_arena, "Impossible to modify settings of an already initialized task_arena"); - if( !my_initialized ) { - my_max_concurrency = max_concurrency; - my_master_slots = reserved_for_masters; - initialize(); - } - } - - //! Removes the reference to the internal arena representation. - //! Not thread safe wrt concurrent invocations of other methods. - inline void terminate() { - if( my_initialized ) { - internal_terminate(); - my_initialized = false; - } - } - - //! Removes the reference to the internal arena representation, and destroys the external object. - //! Not thread safe wrt concurrent invocations of other methods. - ~task_arena() { - terminate(); - } - - //! Returns true if the arena is active (initialized); false otherwise. - //! The name was chosen to match a task_scheduler_init method with the same semantics. - bool is_active() const { return my_initialized; } - - //! Enqueues a task into the arena to process a functor, and immediately returns. - //! Does not require the calling thread to join the arena - template - void enqueue( const F& f ) { - initialize(); -#if __TBB_TASK_GROUP_CONTEXT - internal_enqueue( *new( task::allocate_root(*my_context) ) internal::function_task(f), 0 ); -#else - internal_enqueue( *new( task::allocate_root() ) internal::function_task(f), 0 ); -#endif - } - -#if __TBB_TASK_PRIORITY - //! Enqueues a task with priority p into the arena to process a functor f, and immediately returns. - //! Does not require the calling thread to join the arena - template - void enqueue( const F& f, priority_t p ) { - __TBB_ASSERT( p == priority_low || p == priority_normal || p == priority_high, "Invalid priority level value" ); - initialize(); -#if __TBB_TASK_GROUP_CONTEXT - internal_enqueue( *new( task::allocate_root(*my_context) ) internal::function_task(f), (intptr_t)p ); -#else - internal_enqueue( *new( task::allocate_root() ) internal::function_task(f), (intptr_t)p ); -#endif - } -#endif// __TBB_TASK_PRIORITY - - //! Joins the arena and executes a functor, then returns - //! If not possible to join, wraps the functor into a task, enqueues it and waits for task completion - //! Can decrement the arena demand for workers, causing a worker to leave and free a slot to the calling thread - template - void execute(F& f) { - initialize(); - internal::delegated_function d(f); - internal_execute( d ); - } - - //! Joins the arena and executes a functor, then returns - //! If not possible to join, wraps the functor into a task, enqueues it and waits for task completion - //! Can decrement the arena demand for workers, causing a worker to leave and free a slot to the calling thread - template - void execute(const F& f) { - initialize(); - internal::delegated_function d(f); - internal_execute( d ); - } - -#if __TBB_EXTRA_DEBUG - //! Wait for all work in the arena to be completed - //! Even submitted by other application threads - //! Joins arena if/when possible (in the same way as execute()) - void debug_wait_until_empty() { - initialize(); - internal_wait(); - } -#endif //__TBB_EXTRA_DEBUG - - //! Returns the index, aka slot number, of the calling thread in its current arena - inline static int current_slot() { - return internal_current_slot(); - } -}; - -} // namespace interfaceX - -using interface7::task_arena; - -} // namespace tbb - -#endif /* __TBB_TASK_ARENA */ - -#endif /* __TBB_task_arena_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/task_group.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/task_group.h deleted file mode 100644 index aec917765..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/task_group.h +++ /dev/null @@ -1,245 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_task_group_H -#define __TBB_task_group_H - -#include "task.h" -#include "tbb_exception.h" - -#if __TBB_TASK_GROUP_CONTEXT - -namespace tbb { - -namespace internal { - template class task_handle_task; -} - -class task_group; -class structured_task_group; - -template -class task_handle : internal::no_assign { - template friend class internal::task_handle_task; - friend class task_group; - friend class structured_task_group; - - static const intptr_t scheduled = 0x1; - - F my_func; - intptr_t my_state; - - void mark_scheduled () { - // The check here is intentionally lax to avoid the impact of interlocked operation - if ( my_state & scheduled ) - internal::throw_exception( internal::eid_invalid_multiple_scheduling ); - my_state |= scheduled; - } -public: - task_handle( const F& f ) : my_func(f), my_state(0) {} - - void operator() () const { my_func(); } -}; - -enum task_group_status { - not_complete, - complete, - canceled -}; - -namespace internal { - -template -class task_handle_task : public task { - task_handle& my_handle; - /*override*/ task* execute() { - my_handle(); - return NULL; - } -public: - task_handle_task( task_handle& h ) : my_handle(h) { h.mark_scheduled(); } -}; - -class task_group_base : internal::no_copy { -protected: - empty_task* my_root; - task_group_context my_context; - - task& owner () { return *my_root; } - - template - task_group_status internal_run_and_wait( F& f ) { - __TBB_TRY { - if ( !my_context.is_group_execution_cancelled() ) - f(); - } __TBB_CATCH( ... ) { - my_context.register_pending_exception(); - } - return wait(); - } - - template - void internal_run( F& f ) { - owner().spawn( *new( owner().allocate_additional_child_of(*my_root) ) Task(f) ); - } - -public: - task_group_base( uintptr_t traits = 0 ) - : my_context(task_group_context::bound, task_group_context::default_traits | traits) - { - my_root = new( task::allocate_root(my_context) ) empty_task; - my_root->set_ref_count(1); - } - - ~task_group_base() { - if( my_root->ref_count() > 1 ) { - bool stack_unwinding_in_progress = std::uncaught_exception(); - // Always attempt to do proper cleanup to avoid inevitable memory corruption - // in case of missing wait (for the sake of better testability & debuggability) - if ( !is_canceling() ) - cancel(); - __TBB_TRY { - my_root->wait_for_all(); - } __TBB_CATCH (...) { - task::destroy(*my_root); - __TBB_RETHROW(); - } - task::destroy(*my_root); - if ( !stack_unwinding_in_progress ) - internal::throw_exception( internal::eid_missing_wait ); - } - else { - task::destroy(*my_root); - } - } - - template - void run( task_handle& h ) { - internal_run< task_handle, internal::task_handle_task >( h ); - } - - task_group_status wait() { - __TBB_TRY { - my_root->wait_for_all(); - } __TBB_CATCH( ... ) { - my_context.reset(); - __TBB_RETHROW(); - } - if ( my_context.is_group_execution_cancelled() ) { - my_context.reset(); - return canceled; - } - return complete; - } - - bool is_canceling() { - return my_context.is_group_execution_cancelled(); - } - - void cancel() { - my_context.cancel_group_execution(); - } -}; // class task_group_base - -} // namespace internal - -class task_group : public internal::task_group_base { -public: - task_group () : task_group_base( task_group_context::concurrent_wait ) {} - -#if TBB_DEPRECATED - ~task_group() __TBB_TRY { - __TBB_ASSERT( my_root->ref_count() != 0, NULL ); - if( my_root->ref_count() > 1 ) - my_root->wait_for_all(); - } -#if TBB_USE_EXCEPTIONS - catch (...) { - // Have to destroy my_root here as the base class destructor won't be called - task::destroy(*my_root); - throw; - } -#endif /* TBB_USE_EXCEPTIONS */ -#endif /* TBB_DEPRECATED */ - -#if __SUNPRO_CC - template - void run( task_handle& h ) { - internal_run< task_handle, internal::task_handle_task >( h ); - } -#else - using task_group_base::run; -#endif - - template - void run( const F& f ) { - internal_run< const F, internal::function_task >( f ); - } - - template - task_group_status run_and_wait( const F& f ) { - return internal_run_and_wait( f ); - } - - template - task_group_status run_and_wait( task_handle& h ) { - h.mark_scheduled(); - return internal_run_and_wait< task_handle >( h ); - } -}; // class task_group - -class structured_task_group : public internal::task_group_base { -public: - template - task_group_status run_and_wait ( task_handle& h ) { - h.mark_scheduled(); - return internal_run_and_wait< task_handle >( h ); - } - - task_group_status wait() { - task_group_status res = task_group_base::wait(); - my_root->set_ref_count(1); - return res; - } -}; // class structured_task_group - -inline -bool is_current_task_group_canceling() { - return task::self().is_cancelled(); -} - -template -task_handle make_task( const F& f ) { - return task_handle( f ); -} - -} // namespace tbb - -#endif /* __TBB_TASK_GROUP_CONTEXT */ - -#endif /* __TBB_task_group_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/task_scheduler_init.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/task_scheduler_init.h deleted file mode 100644 index c2546f39c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/task_scheduler_init.h +++ /dev/null @@ -1,161 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_task_scheduler_init_H -#define __TBB_task_scheduler_init_H - -#include "tbb_stddef.h" -#include "limits.h" - -namespace tbb { - -typedef std::size_t stack_size_type; - -//! @cond INTERNAL -namespace internal { - //! Internal to library. Should not be used by clients. - /** @ingroup task_scheduling */ - class scheduler; -} // namespace internal -//! @endcond - -//! Class delimiting the scope of task scheduler activity. -/** A thread can construct a task_scheduler_init object and keep it alive - while it uses TBB's tasking subsystem (including parallel algorithms). - - This class allows to customize properties of the TBB task pool to some extent. - For example it can limit concurrency level of parallel work initiated by the - given thread. It also can be used to specify stack size of the TBB worker threads, - though this setting is not effective if the thread pool has already been created. - - If a parallel construct is used without task_scheduler_init object previously - created, the scheduler will be initialized automatically with default settings, - and will persist until this thread exits. Default concurrency level is defined - as described in task_scheduler_init::initialize(). - @ingroup task_scheduling */ -class task_scheduler_init: internal::no_copy { - enum ExceptionPropagationMode { - propagation_mode_exact = 1u, - propagation_mode_captured = 2u, - propagation_mode_mask = propagation_mode_exact | propagation_mode_captured - }; -#if __TBB_SUPPORTS_WORKERS_WAITING_IN_TERMINATE - enum { - wait_workers_in_terminate_flag = 128u - }; -#endif - - /** NULL if not currently initialized. */ - internal::scheduler* my_scheduler; -public: - - //! Typedef for number of threads that is automatic. - static const int automatic = -1; - - //! Argument to initialize() or constructor that causes initialization to be deferred. - static const int deferred = -2; - - //! Ensure that scheduler exists for this thread - /** A value of -1 lets TBB decide on the number of threads, which is usually - maximal hardware concurrency for this process, that is the number of logical - CPUs on the machine (possibly limited by the processor affinity mask of this - process (Windows) or of this thread (Linux, FreeBSD). It is preferable option - for production code because it helps to avoid nasty surprises when several - TBB based components run side-by-side or in a nested fashion inside the same - process. - - The number_of_threads is ignored if any other task_scheduler_inits - currently exist. A thread may construct multiple task_scheduler_inits. - Doing so does no harm because the underlying scheduler is reference counted. */ - void __TBB_EXPORTED_METHOD initialize( int number_of_threads=automatic ); - - //! The overloaded method with stack size parameter - /** Overloading is necessary to preserve ABI compatibility */ - void __TBB_EXPORTED_METHOD initialize( int number_of_threads, stack_size_type thread_stack_size ); - - //! Inverse of method initialize. - void __TBB_EXPORTED_METHOD terminate(); - - //! Shorthand for default constructor followed by call to initialize(number_of_threads). -#if __TBB_SUPPORTS_WORKERS_WAITING_IN_TERMINATE - task_scheduler_init( int number_of_threads=automatic, stack_size_type thread_stack_size=0, bool wait_workers_in_terminate = false ) : my_scheduler(NULL) -#else - task_scheduler_init( int number_of_threads=automatic, stack_size_type thread_stack_size=0 ) : my_scheduler(NULL) -#endif - { - // Two lowest order bits of the stack size argument may be taken to communicate - // default exception propagation mode of the client to be used when the - // client manually creates tasks in the master thread and does not use - // explicit task group context object. This is necessary because newer - // TBB binaries with exact propagation enabled by default may be used - // by older clients that expect tbb::captured_exception wrapper. - // All zeros mean old client - no preference. - __TBB_ASSERT( !(thread_stack_size & propagation_mode_mask), "Requested stack size is not aligned" ); -#if TBB_USE_EXCEPTIONS - thread_stack_size |= TBB_USE_CAPTURED_EXCEPTION ? propagation_mode_captured : propagation_mode_exact; -#endif /* TBB_USE_EXCEPTIONS */ -#if __TBB_SUPPORTS_WORKERS_WAITING_IN_TERMINATE - if (wait_workers_in_terminate) - my_scheduler = (internal::scheduler*)wait_workers_in_terminate_flag; -#endif - initialize( number_of_threads, thread_stack_size ); - } - - //! Destroy scheduler for this thread if thread has no other live task_scheduler_inits. - ~task_scheduler_init() { - if( my_scheduler ) - terminate(); - internal::poison_pointer( my_scheduler ); - } - //! Returns the number of threads TBB scheduler would create if initialized by default. - /** Result returned by this method does not depend on whether the scheduler - has already been initialized. - - Because tbb 2.0 does not support blocking tasks yet, you may use this method - to boost the number of threads in the tbb's internal pool, if your tasks are - doing I/O operations. The optimal number of additional threads depends on how - much time your tasks spend in the blocked state. - - Before TBB 3.0 U4 this method returned the number of logical CPU in the - system. Currently on Windows, Linux and FreeBSD it returns the number of - logical CPUs available to the current process in accordance with its affinity - mask. - - NOTE: The return value of this method never changes after its first invocation. - This means that changes in the process affinity mask that took place after - this method was first invoked will not affect the number of worker threads - in the TBB worker threads pool. */ - static int __TBB_EXPORTED_FUNC default_num_threads (); - - //! Returns true if scheduler is active (initialized); false otherwise - bool is_active() const { return my_scheduler != NULL; } -}; - -} // namespace tbb - -#endif /* __TBB_task_scheduler_init_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/task_scheduler_observer.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/task_scheduler_observer.h deleted file mode 100644 index 2860815b9..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/task_scheduler_observer.h +++ /dev/null @@ -1,164 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_task_scheduler_observer_H -#define __TBB_task_scheduler_observer_H - -#include "atomic.h" -#if __TBB_TASK_ARENA -#include "task_arena.h" -#endif //__TBB_TASK_ARENA - -#if __TBB_SCHEDULER_OBSERVER - -namespace tbb { -namespace interface6 { -class task_scheduler_observer; -} -namespace internal { - -class observer_proxy; -class observer_list; - -class task_scheduler_observer_v3 { - friend class observer_proxy; - friend class observer_list; - friend class interface6::task_scheduler_observer; - - //! Pointer to the proxy holding this observer. - /** Observers are proxied by the scheduler to maintain persistent lists of them. **/ - observer_proxy* my_proxy; - - //! Counter preventing the observer from being destroyed while in use by the scheduler. - /** Valid only when observation is on. **/ - atomic my_busy_count; - -public: - //! Enable or disable observation - /** For local observers the method can be used only when the current thread - has the task scheduler initialized or is attached to an arena. - - Repeated calls with the same state are no-ops. **/ - void __TBB_EXPORTED_METHOD observe( bool state=true ); - - //! Returns true if observation is enabled, false otherwise. - bool is_observing() const {return my_proxy!=NULL;} - - //! Construct observer with observation disabled. - task_scheduler_observer_v3() : my_proxy(NULL) { my_busy_count.store(0); } - - //! Entry notification - /** Invoked from inside observe(true) call and whenever a worker enters the arena - this observer is associated with. If a thread is already in the arena when - the observer is activated, the entry notification is called before it - executes the first stolen task. - - Obsolete semantics. For global observers it is called by a thread before - the first steal since observation became enabled. **/ - virtual void on_scheduler_entry( bool /*is_worker*/ ) {} - - //! Exit notification - /** Invoked from inside observe(false) call and whenever a worker leaves the - arena this observer is associated with. - - Obsolete semantics. For global observers it is called by a thread before - the first steal since observation became enabled. **/ - virtual void on_scheduler_exit( bool /*is_worker*/ ) {} - - //! Destructor automatically switches observation off if it is enabled. - virtual ~task_scheduler_observer_v3() { if(my_proxy) observe(false);} -}; - -} // namespace internal - -#if TBB_PREVIEW_LOCAL_OBSERVER -namespace interface6 { -class task_scheduler_observer : public internal::task_scheduler_observer_v3 { - friend class internal::task_scheduler_observer_v3; - friend class internal::observer_proxy; - friend class internal::observer_list; - - /** Negative numbers with the largest absolute value to minimize probability - of coincidence in case of a bug in busy count usage. **/ - // TODO: take more high bits for version number - static const intptr_t v6_trait = (intptr_t)((~(uintptr_t)0 >> 1) + 1); - - //! contains task_arena pointer or tag indicating local or global semantics of the observer - intptr_t my_context_tag; - enum { global_tag = 0, implicit_tag = 1 }; - -public: - //! Construct local or global observer in inactive state (observation disabled). - /** For a local observer entry/exit notifications are invoked whenever a worker - thread joins/leaves the arena of the observer's owner thread. If a thread is - already in the arena when the observer is activated, the entry notification is - called before it executes the first stolen task. **/ - /** TODO: Obsolete. - Global observer semantics is obsolete as it violates master thread isolation - guarantees and is not composable. Thus the current default behavior of the - constructor is obsolete too and will be changed in one of the future versions - of the library. **/ - task_scheduler_observer( bool local = false ) { - my_busy_count.store(v6_trait); - my_context_tag = local? implicit_tag : global_tag; - } - -#if __TBB_TASK_ARENA - //! Construct local observer for a given arena in inactive state (observation disabled). - /** entry/exit notifications are invoked whenever a thread joins/leaves arena. - If a thread is already in the arena when the observer is activated, the entry notification - is called before it executes the first stolen task. **/ - task_scheduler_observer( task_arena & a) { - my_busy_count.store(v6_trait); - my_context_tag = (intptr_t)&a; - } -#endif //__TBB_TASK_ARENA - - //! Destructor additionally protects concurrent on_scheduler_leaving notification - // It is recommended to disable observation before destructor of a derived class starts, - // otherwise it can lead to concurrent notification callback on partly destroyed object - virtual ~task_scheduler_observer() { if(my_proxy) observe(false); } - - //! The callback can be invoked in a worker thread before it leaves an arena. - /** If it returns false, the thread remains in the arena. Will not be called for masters - or if the worker leaves arena due to rebalancing or priority changes, etc. - NOTE: The preview library must be linked for this method to take effect **/ - virtual bool on_scheduler_leaving() { return true; } -}; - -} //namespace interface6 -using interface6::task_scheduler_observer; -#else /*TBB_PREVIEW_LOCAL_OBSERVER*/ -typedef tbb::internal::task_scheduler_observer_v3 task_scheduler_observer; -#endif /*TBB_PREVIEW_LOCAL_OBSERVER*/ - -} // namespace tbb - -#endif /* __TBB_SCHEDULER_OBSERVER */ - -#endif /* __TBB_task_scheduler_observer_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/tbb.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/tbb.h deleted file mode 100644 index ef57c9f3b..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/tbb.h +++ /dev/null @@ -1,84 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_tbb_H -#define __TBB_tbb_H - -/** - This header bulk-includes declarations or definitions of all the functionality - provided by TBB (save for malloc dependent headers). - - If you use only a few TBB constructs, consider including specific headers only. - Any header listed below can be included independently of others. -**/ - -#if TBB_PREVIEW_AGGREGATOR -#include "aggregator.h" -#endif -#include "aligned_space.h" -#include "atomic.h" -#include "blocked_range.h" -#include "blocked_range2d.h" -#include "blocked_range3d.h" -#include "cache_aligned_allocator.h" -#include "combinable.h" -#include "concurrent_unordered_map.h" -#include "concurrent_hash_map.h" -#include "concurrent_queue.h" -#include "concurrent_vector.h" -#include "critical_section.h" -#include "enumerable_thread_specific.h" -#include "mutex.h" -#include "null_mutex.h" -#include "null_rw_mutex.h" -#include "parallel_do.h" -#include "parallel_for.h" -#include "parallel_for_each.h" -#include "parallel_invoke.h" -#include "parallel_reduce.h" -#include "parallel_scan.h" -#include "parallel_sort.h" -#include "partitioner.h" -#include "pipeline.h" -#include "queuing_mutex.h" -#include "queuing_rw_mutex.h" -#include "reader_writer_lock.h" -#include "concurrent_priority_queue.h" -#include "recursive_mutex.h" -#include "spin_mutex.h" -#include "spin_rw_mutex.h" -#include "task.h" -#include "task_group.h" -#include "task_scheduler_init.h" -#include "task_scheduler_observer.h" -#include "tbb_allocator.h" -#include "tbb_exception.h" -#include "tbb_thread.h" -#include "tick_count.h" - -#endif /* __TBB_tbb_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/tbb_allocator.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/tbb_allocator.h deleted file mode 100644 index c7fcca17d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/tbb_allocator.h +++ /dev/null @@ -1,227 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_tbb_allocator_H -#define __TBB_tbb_allocator_H - -#include "tbb_stddef.h" -#include -#if __TBB_CPP11_RVALUE_REF_PRESENT && !__TBB_CPP11_STD_FORWARD_BROKEN - #include // std::forward -#endif - -#if !TBB_USE_EXCEPTIONS && _MSC_VER - // Suppress "C++ exception handler used, but unwind semantics are not enabled" warning in STL headers - #pragma warning (push) - #pragma warning (disable: 4530) -#endif - -#include - -#if !TBB_USE_EXCEPTIONS && _MSC_VER - #pragma warning (pop) -#endif - -namespace tbb { - -//! @cond INTERNAL -namespace internal { - - //! Deallocates memory using FreeHandler - /** The function uses scalable_free if scalable allocator is available and free if not*/ - void __TBB_EXPORTED_FUNC deallocate_via_handler_v3( void *p ); - - //! Allocates memory using MallocHandler - /** The function uses scalable_malloc if scalable allocator is available and malloc if not*/ - void* __TBB_EXPORTED_FUNC allocate_via_handler_v3( size_t n ); - - //! Returns true if standard malloc/free are used to work with memory. - bool __TBB_EXPORTED_FUNC is_malloc_used_v3(); -} -//! @endcond - -#if _MSC_VER && !defined(__INTEL_COMPILER) - // Workaround for erroneous "unreferenced parameter" warning in method destroy. - #pragma warning (push) - #pragma warning (disable: 4100) -#endif - -//! Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5 -/** The class selects the best memory allocation mechanism available - from scalable_malloc and standard malloc. - The members are ordered the same way they are in section 20.4.1 - of the ISO C++ standard. - @ingroup memory_allocation */ -template -class tbb_allocator { -public: - typedef typename internal::allocator_type::value_type value_type; - typedef value_type* pointer; - typedef const value_type* const_pointer; - typedef value_type& reference; - typedef const value_type& const_reference; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - template struct rebind { - typedef tbb_allocator other; - }; - - //! Specifies current allocator - enum malloc_type { - scalable, - standard - }; - - tbb_allocator() throw() {} - tbb_allocator( const tbb_allocator& ) throw() {} - template tbb_allocator(const tbb_allocator&) throw() {} - - pointer address(reference x) const {return &x;} - const_pointer address(const_reference x) const {return &x;} - - //! Allocate space for n objects. - pointer allocate( size_type n, const void* /*hint*/ = 0) { - return pointer(internal::allocate_via_handler_v3( n * sizeof(value_type) )); - } - - //! Free previously allocated block of memory. - void deallocate( pointer p, size_type ) { - internal::deallocate_via_handler_v3(p); - } - - //! Largest value for which method allocate might succeed. - size_type max_size() const throw() { - size_type max = static_cast(-1) / sizeof (value_type); - return (max > 0 ? max : 1); - } - - //! Copy-construct value at location pointed to by p. -#if __TBB_ALLOCATOR_CONSTRUCT_VARIADIC - template - void construct(U *p, Args&&... args) - #if __TBB_CPP11_STD_FORWARD_BROKEN - { ::new((void *)p) U((args)...); } - #else - { ::new((void *)p) U(std::forward(args)...); } - #endif -#else // __TBB_ALLOCATOR_CONSTRUCT_VARIADIC - void construct( pointer p, const value_type& value ) {::new((void*)(p)) value_type(value);} -#endif // __TBB_ALLOCATOR_CONSTRUCT_VARIADIC - - //! Destroy value at location pointed to by p. - void destroy( pointer p ) {p->~value_type();} - - //! Returns current allocator - static malloc_type allocator_type() { - return internal::is_malloc_used_v3() ? standard : scalable; - } -}; - -#if _MSC_VER && !defined(__INTEL_COMPILER) - #pragma warning (pop) -#endif // warning 4100 is back - -//! Analogous to std::allocator, as defined in ISO C++ Standard, Section 20.4.1 -/** @ingroup memory_allocation */ -template<> -class tbb_allocator { -public: - typedef void* pointer; - typedef const void* const_pointer; - typedef void value_type; - template struct rebind { - typedef tbb_allocator other; - }; -}; - -template -inline bool operator==( const tbb_allocator&, const tbb_allocator& ) {return true;} - -template -inline bool operator!=( const tbb_allocator&, const tbb_allocator& ) {return false;} - -//! Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5 -/** The class is an adapter over an actual allocator that fills the allocation - using memset function with template argument C as the value. - The members are ordered the same way they are in section 20.4.1 - of the ISO C++ standard. - @ingroup memory_allocation */ -template class Allocator = tbb_allocator> -class zero_allocator : public Allocator -{ -public: - typedef Allocator base_allocator_type; - typedef typename base_allocator_type::value_type value_type; - typedef typename base_allocator_type::pointer pointer; - typedef typename base_allocator_type::const_pointer const_pointer; - typedef typename base_allocator_type::reference reference; - typedef typename base_allocator_type::const_reference const_reference; - typedef typename base_allocator_type::size_type size_type; - typedef typename base_allocator_type::difference_type difference_type; - template struct rebind { - typedef zero_allocator other; - }; - - zero_allocator() throw() { } - zero_allocator(const zero_allocator &a) throw() : base_allocator_type( a ) { } - template - zero_allocator(const zero_allocator &a) throw() : base_allocator_type( Allocator( a ) ) { } - - pointer allocate(const size_type n, const void *hint = 0 ) { - pointer ptr = base_allocator_type::allocate( n, hint ); - std::memset( ptr, 0, n * sizeof(value_type) ); - return ptr; - } -}; - -//! Analogous to std::allocator, as defined in ISO C++ Standard, Section 20.4.1 -/** @ingroup memory_allocation */ -template class Allocator> -class zero_allocator : public Allocator { -public: - typedef Allocator base_allocator_type; - typedef typename base_allocator_type::value_type value_type; - typedef typename base_allocator_type::pointer pointer; - typedef typename base_allocator_type::const_pointer const_pointer; - template struct rebind { - typedef zero_allocator other; - }; -}; - -template class B1, typename T2, template class B2> -inline bool operator==( const zero_allocator &a, const zero_allocator &b) { - return static_cast< B1 >(a) == static_cast< B2 >(b); -} -template class B1, typename T2, template class B2> -inline bool operator!=( const zero_allocator &a, const zero_allocator &b) { - return static_cast< B1 >(a) != static_cast< B2 >(b); -} - -} // namespace tbb - -#endif /* __TBB_tbb_allocator_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/tbb_config.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/tbb_config.h deleted file mode 100644 index 3f0aadd96..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/tbb_config.h +++ /dev/null @@ -1,577 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_tbb_config_H -#define __TBB_tbb_config_H - -/** This header is supposed to contain macro definitions and C style comments only. - The macros defined here are intended to control such aspects of TBB build as - - presence of compiler features - - compilation modes - - feature sets - - known compiler/platform issues -**/ - -/*Check which standard library we use on OS X.*/ -/*__TBB_SYMBOL is defined only while processing exported symbols list where C++ is not allowed.*/ -#if !defined(__TBB_SYMBOL) && __APPLE__ - #include -#endif - -#define __TBB_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) - -#if __clang__ - /**according to clang documentation version can be vendor specific **/ - #define __TBB_CLANG_VERSION (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__) -#endif - -/** Presence of compiler features **/ - -#if __INTEL_COMPILER == 9999 && __INTEL_COMPILER_BUILD_DATE == 20110811 -/* Intel(R) Composer XE 2011 Update 6 incorrectly sets __INTEL_COMPILER. Fix it. */ - #undef __INTEL_COMPILER - #define __INTEL_COMPILER 1210 -#endif - -#if __TBB_GCC_VERSION >= 40400 && !defined(__INTEL_COMPILER) - /** warning suppression pragmas available in GCC since 4.4 **/ - #define __TBB_GCC_WARNING_SUPPRESSION_PRESENT 1 -#endif - -/* Select particular features of C++11 based on compiler version. - ICC 12.1 (Linux), GCC 4.3 and higher, clang 2.9 and higher - set __GXX_EXPERIMENTAL_CXX0X__ in c++11 mode. - - Compilers that mimics other compilers (ICC, clang) must be processed before - compilers they mimic (GCC, MSVC). - - TODO: The following conditions should be extended when new compilers/runtimes - support added. - */ - -#if __INTEL_COMPILER - /** C++11 mode detection macros for Intel C++ compiler (enabled by -std=c++0x option): - __INTEL_CXX11_MODE__ for version >=13.0 - __STDC_HOSTED__ for version >=12.0 on Windows, - __GXX_EXPERIMENTAL_CXX0X__ for version >=12.0 on Linux and OS X. **/ - // On Windows, C++11 features supported by Visual Studio 2010 and higher are enabled by default - #ifndef __INTEL_CXX11_MODE__ - #define __INTEL_CXX11_MODE__ ((_MSC_VER && __STDC_HOSTED__) || __GXX_EXPERIMENTAL_CXX0X__) - // TODO: check if more conditions can be simplified with the above macro - #endif - #define __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT (__INTEL_CXX11_MODE__ && __VARIADIC_TEMPLATES) - #define __TBB_CPP11_RVALUE_REF_PRESENT ((__GXX_EXPERIMENTAL_CXX0X__ || _MSC_VER >= 1600) && __INTEL_COMPILER >= 1200) - #if _MSC_VER >= 1600 - #define __TBB_EXCEPTION_PTR_PRESENT ( __INTEL_COMPILER > 1300 \ - /*ICC 12.1 Upd 10 and 13 beta Upd 2 fixed exception_ptr linking issue*/ \ - || (__INTEL_COMPILER == 1300 && __INTEL_COMPILER_BUILD_DATE >= 20120530) \ - || (__INTEL_COMPILER == 1210 && __INTEL_COMPILER_BUILD_DATE >= 20120410) ) - /** libstdc++ that comes with GCC 4.6 use C++11 features not supported by ICC 12.1. - * Because of that ICC 12.1 does not support C++11 mode with with gcc 4.6 (or higher), - * and therefore does not define __GXX_EXPERIMENTAL_CXX0X__ macro **/ - #elif __TBB_GCC_VERSION >= 40404 && __TBB_GCC_VERSION < 40600 - #define __TBB_EXCEPTION_PTR_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __INTEL_COMPILER >= 1200) - #elif __TBB_GCC_VERSION >= 40600 - #define __TBB_EXCEPTION_PTR_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __INTEL_COMPILER >= 1300) - #else - #define __TBB_EXCEPTION_PTR_PRESENT 0 - #endif - #define __TBB_MAKE_EXCEPTION_PTR_PRESENT (_MSC_VER >= 1700 || (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40600)) - #define __TBB_STATIC_ASSERT_PRESENT (__INTEL_CXX11_MODE__ || _MSC_VER >= 1600) - #define __TBB_CPP11_TUPLE_PRESENT (_MSC_VER >= 1600 || (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40300)) - /**Intel C++ compiler 14.0 crashes on using __has_include. When it fixed, condition will need to be updated. **/ - #if (__clang__ && __INTEL_COMPILER > 1400) - #if (__has_feature(__cxx_generalized_initializers__) && __has_include()) - #define __TBB_INITIALIZER_LISTS_PRESENT 1 - #endif - #else - /** TODO: when MSVC2013 is supported by Intel C++ compiler, it will be enabled silently by compiler, so rule will need to be updated.**/ - #define __TBB_INITIALIZER_LISTS_PRESENT __INTEL_CXX11_MODE__ && __INTEL_COMPILER >= 1400 && (_MSC_VER >= 1800 || __TBB_GCC_VERSION >= 40400 || _LIBCPP_VERSION) - #endif - - #define __TBB_CONSTEXPR_PRESENT __INTEL_CXX11_MODE__ && __INTEL_COMPILER >= 1400 - #define __TBB_DEFAULTED_AND_DELETED_FUNC_PRESENT __INTEL_CXX11_MODE__ && __INTEL_COMPILER >= 1200 -#elif __clang__ -//TODO: these options need to be rechecked -/** on OS X* the only way to get C++11 is to use clang. For library features (e.g. exception_ptr) libc++ is also - * required. So there is no need to check GCC version for clang**/ - #define __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT __has_feature(__cxx_variadic_templates__) - #define __TBB_CPP11_RVALUE_REF_PRESENT __has_feature(__cxx_rvalue_references__) -/** TODO: extend exception_ptr related conditions to cover libstdc++ **/ - #define __TBB_EXCEPTION_PTR_PRESENT (__cplusplus >= 201103L && _LIBCPP_VERSION) - #define __TBB_MAKE_EXCEPTION_PTR_PRESENT (__cplusplus >= 201103L && _LIBCPP_VERSION) - #define __TBB_STATIC_ASSERT_PRESENT __has_feature(__cxx_static_assert__) - /**Clang (preprocessor) has problems with dealing with expression having __has_include in #if's - * used inside C++ code. (At least version that comes with OS X 10.8) **/ - #if (__GXX_EXPERIMENTAL_CXX0X__ && __has_include()) - #define __TBB_CPP11_TUPLE_PRESENT 1 - #endif - #if (__has_feature(__cxx_generalized_initializers__) && __has_include()) - #define __TBB_INITIALIZER_LISTS_PRESENT 1 - #endif - #define __TBB_CONSTEXPR_PRESENT __has_feature(__cxx_constexpr__) - #define __TBB_DEFAULTED_AND_DELETED_FUNC_PRESENT (__has_feature(__cxx_defaulted_functions__) && __has_feature(__cxx_deleted_functions__)) -#elif __GNUC__ - #define __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT __GXX_EXPERIMENTAL_CXX0X__ - #define __TBB_CPP11_RVALUE_REF_PRESENT __GXX_EXPERIMENTAL_CXX0X__ - /** __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 here is a substitution for _GLIBCXX_ATOMIC_BUILTINS_4, which is a prerequisite - for exception_ptr but cannot be used in this file because it is defined in a header, not by the compiler. - If the compiler has no atomic intrinsics, the C++ library should not expect those as well. **/ - #define __TBB_EXCEPTION_PTR_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40404 && __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) - #define __TBB_MAKE_EXCEPTION_PTR_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40600) - #define __TBB_STATIC_ASSERT_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40300) - #define __TBB_CPP11_TUPLE_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40300) - #define __TBB_INITIALIZER_LISTS_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40400) - /** gcc seems have to support constexpr from 4.4 but tests in (test_atomic) seeming reasonable fail to compile prior 4.6**/ - #define __TBB_CONSTEXPR_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40400) - #define __TBB_DEFAULTED_AND_DELETED_FUNC_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40400) -#elif _MSC_VER - #define __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT (_MSC_VER >= 1800) - #define __TBB_CPP11_RVALUE_REF_PRESENT (_MSC_VER >= 1600) - #define __TBB_EXCEPTION_PTR_PRESENT (_MSC_VER >= 1600) - #define __TBB_STATIC_ASSERT_PRESENT (_MSC_VER >= 1600) - #define __TBB_MAKE_EXCEPTION_PTR_PRESENT (_MSC_VER >= 1700) - #define __TBB_CPP11_TUPLE_PRESENT (_MSC_VER >= 1600) - #define __TBB_INITIALIZER_LISTS_PRESENT (_MSC_VER >= 1800) - #define __TBB_CONSTEXPR_PRESENT 0 - #define __TBB_DEFAULTED_AND_DELETED_FUNC_PRESENT (_MSC_VER >= 1800) -#else - #define __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT 0 - #define __TBB_CPP11_RVALUE_REF_PRESENT 0 - #define __TBB_EXCEPTION_PTR_PRESENT 0 - #define __TBB_STATIC_ASSERT_PRESENT 0 - #define __TBB_MAKE_EXCEPTION_PTR_PRESENT 0 - #define __TBB_CPP11_TUPLE_PRESENT 0 - #define __TBB_INITIALIZER_LISTS_PRESENT 0 - #define __TBB_CONSTEXPR_PRESENT 0 - #define __TBB_DEFAULTED_AND_DELETED_FUNC_PRESENT 0 -#endif - -//TODO: not clear how exactly this macro affects exception_ptr - investigate -// On linux ICC fails to find existing std::exception_ptr in libstdc++ without this define -#if __INTEL_COMPILER && __GNUC__ && __TBB_EXCEPTION_PTR_PRESENT && !defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) - #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 -#endif - -// Work around a bug in MinGW32 -#if __MINGW32__ && __TBB_EXCEPTION_PTR_PRESENT && !defined(_GLIBCXX_ATOMIC_BUILTINS_4) - #define _GLIBCXX_ATOMIC_BUILTINS_4 -#endif - -#if __GNUC__ || __SUNPRO_CC || __IBMCPP__ - /* ICC defines __GNUC__ and so is covered */ - #define __TBB_ATTRIBUTE_ALIGNED_PRESENT 1 -#elif _MSC_VER && (_MSC_VER >= 1300 || __INTEL_COMPILER) - #define __TBB_DECLSPEC_ALIGN_PRESENT 1 -#endif - -/* Actually ICC supports gcc __sync_* intrinsics starting 11.1, - * but 64 bit support for 32 bit target comes in later ones*/ -/* TODO: change the version back to 4.1.2 once macro __TBB_WORD_SIZE become optional */ -#if __TBB_GCC_VERSION >= 40306 || __INTEL_COMPILER >= 1200 - /** built-in atomics available in GCC since 4.1.2 **/ - #define __TBB_GCC_BUILTIN_ATOMICS_PRESENT 1 -#endif - -#if __INTEL_COMPILER >= 1200 - /** built-in C++11 style atomics available in ICC since 12.0 **/ - #define __TBB_ICC_BUILTIN_ATOMICS_PRESENT 1 -#endif - -#if __MIC__ || __MIC2__ -#define __TBB_DEFINE_MIC 1 -#endif - -#define __TBB_TSX_INTRINSICS_PRESENT ( (__TBB_GCC_VERSION>=40800) || (_MSC_VER>=1700) || (__INTEL_COMPILER>=1300) ) && !__TBB_DEFINE_MIC - -/** User controlled TBB features & modes **/ - -#ifndef TBB_USE_DEBUG -#ifdef TBB_DO_ASSERT -#define TBB_USE_DEBUG TBB_DO_ASSERT -#else -#ifdef _DEBUG -#define TBB_USE_DEBUG _DEBUG -#else -#define TBB_USE_DEBUG 0 -#endif -#endif /* TBB_DO_ASSERT */ -#endif /* TBB_USE_DEBUG */ - -#ifndef TBB_USE_ASSERT -#ifdef TBB_DO_ASSERT -#define TBB_USE_ASSERT TBB_DO_ASSERT -#else -#define TBB_USE_ASSERT TBB_USE_DEBUG -#endif /* TBB_DO_ASSERT */ -#endif /* TBB_USE_ASSERT */ - -#ifndef TBB_USE_THREADING_TOOLS -#ifdef TBB_DO_THREADING_TOOLS -#define TBB_USE_THREADING_TOOLS TBB_DO_THREADING_TOOLS -#else -#define TBB_USE_THREADING_TOOLS TBB_USE_DEBUG -#endif /* TBB_DO_THREADING_TOOLS */ -#endif /* TBB_USE_THREADING_TOOLS */ - -#ifndef TBB_USE_PERFORMANCE_WARNINGS -#ifdef TBB_PERFORMANCE_WARNINGS -#define TBB_USE_PERFORMANCE_WARNINGS TBB_PERFORMANCE_WARNINGS -#else -#define TBB_USE_PERFORMANCE_WARNINGS TBB_USE_DEBUG -#endif /* TBB_PEFORMANCE_WARNINGS */ -#endif /* TBB_USE_PERFORMANCE_WARNINGS */ - -#if !defined(__EXCEPTIONS) && !defined(_CPPUNWIND) && !defined(__SUNPRO_CC) || defined(_XBOX) - #if TBB_USE_EXCEPTIONS - #error Compilation settings do not support exception handling. Please do not set TBB_USE_EXCEPTIONS macro or set it to 0. - #elif !defined(TBB_USE_EXCEPTIONS) - #define TBB_USE_EXCEPTIONS 0 - #endif -#elif !defined(TBB_USE_EXCEPTIONS) - #if __TBB_DEFINE_MIC - #define TBB_USE_EXCEPTIONS 0 - #else - #define TBB_USE_EXCEPTIONS 1 - #endif -#elif TBB_USE_EXCEPTIONS && __TBB_DEFINE_MIC - #error Please do not set TBB_USE_EXCEPTIONS macro or set it to 0. -#endif - -#ifndef TBB_IMPLEMENT_CPP0X - /** By default, use C++0x classes if available **/ - #if __GNUC__==4 && __GNUC_MINOR__>=4 && __GXX_EXPERIMENTAL_CXX0X__ - #define TBB_IMPLEMENT_CPP0X 0 - #elif __clang__ && __cplusplus >= 201103L - //TODO: consider introducing separate macros for each file? - //prevent injection of corresponding tbb names into std:: namespace if native headers are present - #if __has_include() || __has_include() - #define TBB_IMPLEMENT_CPP0X 0 - #else - #define TBB_IMPLEMENT_CPP0X 1 - #endif - #else - #define TBB_IMPLEMENT_CPP0X 1 - #endif -#endif /* TBB_IMPLEMENT_CPP0X */ - -/* TBB_USE_CAPTURED_EXCEPTION should be explicitly set to either 0 or 1, as it is used as C++ const */ -#ifndef TBB_USE_CAPTURED_EXCEPTION - /** IA-64 architecture pre-built TBB binaries do not support exception_ptr. **/ - #if __TBB_EXCEPTION_PTR_PRESENT && !defined(__ia64__) - #define TBB_USE_CAPTURED_EXCEPTION 0 - #else - #define TBB_USE_CAPTURED_EXCEPTION 1 - #endif -#else /* defined TBB_USE_CAPTURED_EXCEPTION */ - #if !TBB_USE_CAPTURED_EXCEPTION && !__TBB_EXCEPTION_PTR_PRESENT - #error Current runtime does not support std::exception_ptr. Set TBB_USE_CAPTURED_EXCEPTION and make sure that your code is ready to catch tbb::captured_exception. - #endif -#endif /* defined TBB_USE_CAPTURED_EXCEPTION */ - -/** Check whether the request to use GCC atomics can be satisfied **/ -#if TBB_USE_GCC_BUILTINS && !__TBB_GCC_BUILTIN_ATOMICS_PRESENT - #error "GCC atomic built-ins are not supported." -#endif - -/** Internal TBB features & modes **/ - -/** __TBB_WEAK_SYMBOLS_PRESENT denotes that the system supports the weak symbol mechanism **/ -#ifndef __TBB_WEAK_SYMBOLS_PRESENT -#define __TBB_WEAK_SYMBOLS_PRESENT ( !_WIN32 && !__APPLE__ && !__sun && (__TBB_GCC_VERSION >= 40000 || __INTEL_COMPILER ) ) -#endif - -/** __TBB_DYNAMIC_LOAD_ENABLED describes the system possibility to load shared libraries at run time **/ -#ifndef __TBB_DYNAMIC_LOAD_ENABLED - #define __TBB_DYNAMIC_LOAD_ENABLED 1 -#endif - -/** __TBB_SOURCE_DIRECTLY_INCLUDED is a mode used in whitebox testing when - it's necessary to test internal functions not exported from TBB DLLs -**/ -#if (_WIN32||_WIN64) && __TBB_SOURCE_DIRECTLY_INCLUDED - #define __TBB_NO_IMPLICIT_LINKAGE 1 - #define __TBBMALLOC_NO_IMPLICIT_LINKAGE 1 -#endif - -#ifndef __TBB_COUNT_TASK_NODES - #define __TBB_COUNT_TASK_NODES TBB_USE_ASSERT -#endif - -#ifndef __TBB_TASK_GROUP_CONTEXT - #define __TBB_TASK_GROUP_CONTEXT 1 -#endif /* __TBB_TASK_GROUP_CONTEXT */ - -#ifndef __TBB_SCHEDULER_OBSERVER - #define __TBB_SCHEDULER_OBSERVER 1 -#endif /* __TBB_SCHEDULER_OBSERVER */ - -#ifndef __TBB_TASK_ARENA - #define __TBB_TASK_ARENA (__TBB_BUILD||TBB_PREVIEW_TASK_ARENA) -#endif /* __TBB_TASK_ARENA */ -#if __TBB_TASK_ARENA - #define __TBB_RECYCLE_TO_ENQUEUE __TBB_BUILD // keep non-official - #if !__TBB_SCHEDULER_OBSERVER - #error TBB_PREVIEW_TASK_ARENA requires __TBB_SCHEDULER_OBSERVER to be enabled - #endif -#endif /* __TBB_TASK_ARENA */ - -#if !defined(TBB_PREVIEW_LOCAL_OBSERVER) && __TBB_BUILD && __TBB_SCHEDULER_OBSERVER - #define TBB_PREVIEW_LOCAL_OBSERVER 1 -#endif /* TBB_PREVIEW_LOCAL_OBSERVER */ - - -#ifndef __TBB_ITT_STRUCTURE_API -#define __TBB_ITT_STRUCTURE_API ( !__TBB_DEFINE_MIC && (__TBB_CPF_BUILD || TBB_PREVIEW_FLOW_GRAPH_TRACE) ) -#endif - -#if TBB_USE_EXCEPTIONS && !__TBB_TASK_GROUP_CONTEXT - #error TBB_USE_EXCEPTIONS requires __TBB_TASK_GROUP_CONTEXT to be enabled -#endif - -#ifndef __TBB_TASK_PRIORITY - #define __TBB_TASK_PRIORITY (!__TBB_CPF_BUILD&&__TBB_TASK_GROUP_CONTEXT) // TODO: it will be enabled for CPF in the next versions -#endif /* __TBB_TASK_PRIORITY */ - -#if __TBB_TASK_PRIORITY && !__TBB_TASK_GROUP_CONTEXT - #error __TBB_TASK_PRIORITY requires __TBB_TASK_GROUP_CONTEXT to be enabled -#endif - -#if TBB_PREVIEW_WAITING_FOR_WORKERS || __TBB_BUILD - #define __TBB_SUPPORTS_WORKERS_WAITING_IN_TERMINATE 1 -#endif - -#if !defined(__TBB_SURVIVE_THREAD_SWITCH) && \ - (_WIN32 || _WIN64 || __APPLE__ || (__linux__ && !__ANDROID__)) - #define __TBB_SURVIVE_THREAD_SWITCH 1 -#endif /* __TBB_SURVIVE_THREAD_SWITCH */ - -#ifndef __TBB_DEFAULT_PARTITIONER -#if TBB_DEPRECATED -/** Default partitioner for parallel loop templates in TBB 1.0-2.1 */ -#define __TBB_DEFAULT_PARTITIONER tbb::simple_partitioner -#else -/** Default partitioner for parallel loop templates since TBB 2.2 */ -#define __TBB_DEFAULT_PARTITIONER tbb::auto_partitioner -#endif /* TBB_DEPRECATED */ -#endif /* !defined(__TBB_DEFAULT_PARTITIONER */ - -#ifdef _VARIADIC_MAX -#define __TBB_VARIADIC_MAX _VARIADIC_MAX -#else -#if _MSC_VER >= 1700 -#define __TBB_VARIADIC_MAX 5 /* current VS11 setting, may change. */ -#else -#define __TBB_VARIADIC_MAX 10 -#endif -#endif - -#if !defined(TBB_PREVIEW_SPECULATIVE_SPIN_RW_MUTEX) - #define TBB_PREVIEW_SPECULATIVE_SPIN_RW_MUTEX __TBB_CPF_BUILD -#endif /* TBB_PREVIEW_SPECULATIVE_SPIN_RW_MUTEX */ - - -/** __TBB_WIN8UI_SUPPORT enables support of New Windows*8 Store Apps and limit a possibility to load - shared libraries at run time only from application container **/ -#if defined(WINAPI_FAMILY) && WINAPI_FAMILY == WINAPI_FAMILY_APP - #define __TBB_WIN8UI_SUPPORT 1 -#else - #define __TBB_WIN8UI_SUPPORT 0 -#endif - -// Define preprocessor symbols used to determine architecture -#if _WIN32||_WIN64 -# if defined(_M_X64)||defined(__x86_64__) // the latter for MinGW support -# define __TBB_x86_64 1 -# elif defined(_M_IA64) -# define __TBB_ipf 1 -# elif defined(_M_IX86)||defined(__i386__) // the latter for MinGW support -# define __TBB_x86_32 1 -# endif -#else /* Assume generic Unix */ -# if !__linux__ && !__APPLE__ -# define __TBB_generic_os 1 -# endif -# if __x86_64__ -# define __TBB_x86_64 1 -# elif __ia64__ -# define __TBB_ipf 1 -# elif __i386__||__i386 // __i386 is for Sun OS -# define __TBB_x86_32 1 -# else -# define __TBB_generic_arch 1 -# endif -#endif - -#define __TBB_TSX_AVAILABLE (__TBB_x86_32 || __TBB_x86_64) && !__TBB_DEFINE_MIC - -/** Macros of the form __TBB_XXX_BROKEN denote known issues that are caused by - the bugs in compilers, standard or OS specific libraries. They should be - removed as soon as the corresponding bugs are fixed or the buggy OS/compiler - versions go out of the support list. -**/ - -#if __ANDROID__ && __TBB_GCC_VERSION <= 40403 && !__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 - /** Necessary because on Android 8-byte CAS and F&A are not available for some processor architectures, - but no mandatory warning message appears from GCC 4.4.3. Instead, only a linkage error occurs when - these atomic operations are used (such as in unit test test_atomic.exe). **/ - #define __TBB_GCC_64BIT_ATOMIC_BUILTINS_BROKEN 1 -#elif __TBB_x86_32 && __TBB_GCC_VERSION == 40102 && ! __GNUC_RH_RELEASE__ - /** GCC 4.1.2 erroneously emit call to external function for 64 bit sync_ intrinsics. - However these functions are not defined anywhere. It seems that this problem was fixed later on - and RHEL got an updated version of gcc 4.1.2. **/ - #define __TBB_GCC_64BIT_ATOMIC_BUILTINS_BROKEN 1 -#endif - -#if __GNUC__ && __TBB_x86_64 && __INTEL_COMPILER == 1200 - #define __TBB_ICC_12_0_INL_ASM_FSTCW_BROKEN 1 -#endif - -#if _MSC_VER && __INTEL_COMPILER && (__INTEL_COMPILER<1110 || __INTEL_COMPILER==1110 && __INTEL_COMPILER_BUILD_DATE < 20091012) - /** Necessary to avoid ICL error (or warning in non-strict mode): - "exception specification for implicitly declared virtual destructor is - incompatible with that of overridden one". **/ - #define __TBB_DEFAULT_DTOR_THROW_SPEC_BROKEN 1 -#endif - -#if defined(_MSC_VER) && _MSC_VER < 1500 && !defined(__INTEL_COMPILER) - /** VS2005 and earlier do not allow declaring template class as a friend - of classes defined in other namespaces. **/ - #define __TBB_TEMPLATE_FRIENDS_BROKEN 1 -#endif - -//TODO: recheck for different clang versions -#if __GLIBC__==2 && __GLIBC_MINOR__==3 || __MINGW32__ || (__APPLE__ && ( __INTEL_COMPILER==1200 && !TBB_USE_DEBUG)) - /** Macro controlling EH usages in TBB tests. - Some older versions of glibc crash when exception handling happens concurrently. **/ - #define __TBB_THROW_ACROSS_MODULE_BOUNDARY_BROKEN 1 -#else - #define __TBB_THROW_ACROSS_MODULE_BOUNDARY_BROKEN 0 -#endif - -#if (_WIN32||_WIN64) && __INTEL_COMPILER == 1110 - /** That's a bug in Intel compiler 11.1.044/IA-32/Windows, that leads to a worker thread crash on the thread's startup. **/ - #define __TBB_ICL_11_1_CODE_GEN_BROKEN 1 -#endif - -#if __clang__ || (__GNUC__==3 && __GNUC_MINOR__==3 && !defined(__INTEL_COMPILER)) - /** Bugs with access to nested classes declared in protected area */ - #define __TBB_PROTECTED_NESTED_CLASS_BROKEN 1 -#endif - -#if __MINGW32__ && __TBB_GCC_VERSION < 40200 - /** MinGW has a bug with stack alignment for routines invoked from MS RTLs. - Since GCC 4.2, the bug can be worked around via a special attribute. **/ - #define __TBB_SSE_STACK_ALIGNMENT_BROKEN 1 -#else - #define __TBB_SSE_STACK_ALIGNMENT_BROKEN 0 -#endif - -#if __GNUC__==4 && __GNUC_MINOR__==3 && __GNUC_PATCHLEVEL__==0 - /* GCC of this version may rashly ignore control dependencies */ - #define __TBB_GCC_OPTIMIZER_ORDERING_BROKEN 1 -#endif - -#if __FreeBSD__ - /** A bug in FreeBSD 8.0 results in kernel panic when there is contention - on a mutex created with this attribute. **/ - #define __TBB_PRIO_INHERIT_BROKEN 1 - - /** A bug in FreeBSD 8.0 results in test hanging when an exception occurs - during (concurrent?) object construction by means of placement new operator. **/ - #define __TBB_PLACEMENT_NEW_EXCEPTION_SAFETY_BROKEN 1 -#endif /* __FreeBSD__ */ - -#if (__linux__ || __APPLE__) && __i386__ && defined(__INTEL_COMPILER) - /** The Intel compiler for IA-32 (Linux|OS X) crashes or generates - incorrect code when __asm__ arguments have a cast to volatile. **/ - #define __TBB_ICC_ASM_VOLATILE_BROKEN 1 -#endif - -#if !__INTEL_COMPILER && (_MSC_VER || __GNUC__==3 && __GNUC_MINOR__<=2) - /** Bug in GCC 3.2 and MSVC compilers that sometimes return 0 for __alignof(T) - when T has not yet been instantiated. **/ - #define __TBB_ALIGNOF_NOT_INSTANTIATED_TYPES_BROKEN 1 -#endif - -/* Actually for Clang it should be name __TBB_CPP11_STD_FORWARD_PRESENT. - * But in order to check for presence of std:: library feature we need to recognize - * is standard library actually used stdlibc++ (GNU one) or libc++ (clang one). - * Unfortunately it is not possible at the moment. So postponing it to later moment.*/ -/*TODO: for clang rename it to __TBB_CPP11_STD_FORWARD_PRESENT and re-implement it.*/ -#if (__INTEL_COMPILER) || (__clang__ && __TBB_GCC_VERSION <= 40300) - #define __TBB_CPP11_STD_FORWARD_BROKEN 1 -#else - #define __TBB_CPP11_STD_FORWARD_BROKEN 0 -#endif - -#if __TBB_DEFINE_MIC - /** Main thread and user's thread have different default thread affinity masks. **/ - #define __TBB_MAIN_THREAD_AFFINITY_BROKEN 1 -#endif - -#if __GXX_EXPERIMENTAL_CXX0X__ && !defined(__EXCEPTIONS) && \ - __GNUC__==4 && (__GNUC_MINOR__==4 ||__GNUC_MINOR__==5 || (__INTEL_COMPILER==1300 && (__GNUC_MINOR__==6 ||__GNUC_MINOR__==7))) -/* There is an issue for specific GCC toolchain when C++11 is enabled - and exceptions are disabled: - exceprion_ptr.h/nested_exception.h use throw unconditionally. - */ - #define __TBB_LIBSTDCPP_EXCEPTION_HEADERS_BROKEN 1 -#else - #define __TBB_LIBSTDCPP_EXCEPTION_HEADERS_BROKEN 0 -#endif - -/*In a PIC mode some versions of GCC 4.1.2 generate incorrect inlined code for 8 byte __sync_val_compare_and_swap intrinisc */ -#if __TBB_GCC_VERSION == 40102 && __PIC__ && !defined(__INTEL_COMPILER) && !defined(__clang__) - #define __TBB_GCC_CAS8_BUILTIN_INLINING_BROKEN 1 -#endif - -#if __TBB_x86_32 && (__linux__ || __APPLE__ || _WIN32 || __sun) && ((defined(__INTEL_COMPILER) && __INTEL_COMPILER <= 1400) || (__GNUC__==3 && __GNUC_MINOR__==3 ) || defined(__SUNPRO_CC)) - // Some compilers for IA-32 fail to provide 8-byte alignment of objects on the stack, - // even if the object specifies 8-byte alignment. On such platforms, the IA-32 implementation - // of 64 bit atomics (e.g. atomic) use different tactics depending upon - // whether the object is properly aligned or not. - #define __TBB_FORCE_64BIT_ALIGNMENT_BROKEN 1 -#else - #define __TBB_FORCE_64BIT_ALIGNMENT_BROKEN 0 -#endif - -#if __TBB_DEFAULTED_AND_DELETED_FUNC_PRESENT && __TBB_GCC_VERSION < 40700 && !defined(__INTEL_COMPILER) && !defined (__clang__) - #define __TBB_ZERO_INIT_WITH_DEFAULTED_CTOR_BROKEN 1 -#endif -/** End of __TBB_XXX_BROKEN macro section **/ - -#if defined(_MSC_VER) && _MSC_VER>=1500 && !defined(__INTEL_COMPILER) - // A macro to suppress erroneous or benign "unreachable code" MSVC warning (4702) - #define __TBB_MSVC_UNREACHABLE_CODE_IGNORED 1 -#endif - -#define __TBB_ATOMIC_CTORS (__TBB_CONSTEXPR_PRESENT && __TBB_DEFAULTED_AND_DELETED_FUNC_PRESENT && (!__TBB_ZERO_INIT_WITH_DEFAULTED_CTOR_BROKEN)) - -#define __TBB_ALLOCATOR_CONSTRUCT_VARIADIC (__TBB_CPP11_VARIADIC_TEMPLATES_PRESENT && __TBB_CPP11_RVALUE_REF_PRESENT) -#endif /* __TBB_tbb_config_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/tbb_exception.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/tbb_exception.h deleted file mode 100644 index e8993c199..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/tbb_exception.h +++ /dev/null @@ -1,386 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_exception_H -#define __TBB_exception_H - -#include "tbb_stddef.h" - -#if !TBB_USE_EXCEPTIONS && _MSC_VER - // Suppress "C++ exception handler used, but unwind semantics are not enabled" warning in STL headers - #pragma warning (push) - #pragma warning (disable: 4530) -#endif - -#include -#include //required for bad_alloc definition, operators new -#include // required to construct std exception classes - -#if !TBB_USE_EXCEPTIONS && _MSC_VER - #pragma warning (pop) -#endif - -namespace tbb { - -//! Exception for concurrent containers -class bad_last_alloc : public std::bad_alloc { -public: - /*override*/ const char* what() const throw(); -#if __TBB_DEFAULT_DTOR_THROW_SPEC_BROKEN - /*override*/ ~bad_last_alloc() throw() {} -#endif -}; - -//! Exception for PPL locks -class improper_lock : public std::exception { -public: - /*override*/ const char* what() const throw(); -}; - -//! Exception for user-initiated abort -class user_abort : public std::exception { -public: - /*override*/ const char* what() const throw(); -}; - -//! Exception for missing wait on structured_task_group -class missing_wait : public std::exception { -public: - /*override*/ const char* what() const throw(); -}; - -//! Exception for repeated scheduling of the same task_handle -class invalid_multiple_scheduling : public std::exception { -public: - /*override*/ const char* what() const throw(); -}; - -namespace internal { -//! Obsolete -void __TBB_EXPORTED_FUNC throw_bad_last_alloc_exception_v4(); - -enum exception_id { - eid_bad_alloc = 1, - eid_bad_last_alloc, - eid_nonpositive_step, - eid_out_of_range, - eid_segment_range_error, - eid_index_range_error, - eid_missing_wait, - eid_invalid_multiple_scheduling, - eid_improper_lock, - eid_possible_deadlock, - eid_operation_not_permitted, - eid_condvar_wait_failed, - eid_invalid_load_factor, - eid_reserved, // free slot for backward compatibility, can be reused. - eid_invalid_swap, - eid_reservation_length_error, - eid_invalid_key, - eid_user_abort, - eid_reserved1, -#if __TBB_SUPPORTS_WORKERS_WAITING_IN_TERMINATE - // This id is used only inside library and only for support of CPF functionality. - // So, if we drop the functionality, eid_reserved1 can be safely renamed and reused. - eid_blocking_sch_init = eid_reserved1, -#endif - //! The last enumerator tracks the number of defined IDs. It must remain the last one. - /** When adding new IDs, place them immediately _before_ this comment (that is - _after_ all the existing IDs. NEVER insert new IDs between the existing ones. **/ - eid_max -}; - -//! Gathers all throw operators in one place. -/** Its purpose is to minimize code bloat that can be caused by throw operators - scattered in multiple places, especially in templates. **/ -void __TBB_EXPORTED_FUNC throw_exception_v4 ( exception_id ); - -//! Versionless convenience wrapper for throw_exception_v4() -inline void throw_exception ( exception_id eid ) { throw_exception_v4(eid); } - -} // namespace internal -} // namespace tbb - -#if __TBB_TASK_GROUP_CONTEXT -#include "tbb_allocator.h" -#include //for typeid - -namespace tbb { - -//! Interface to be implemented by all exceptions TBB recognizes and propagates across the threads. -/** If an unhandled exception of the type derived from tbb::tbb_exception is intercepted - by the TBB scheduler in one of the worker threads, it is delivered to and re-thrown in - the root thread. The root thread is the thread that has started the outermost algorithm - or root task sharing the same task_group_context with the guilty algorithm/task (the one - that threw the exception first). - - Note: when documentation mentions workers with respect to exception handling, - masters are implied as well, because they are completely equivalent in this context. - Consequently a root thread can be master or worker thread. - - NOTE: In case of nested algorithms or complex task hierarchies when the nested - levels share (explicitly or by means of implicit inheritance) the task group - context of the outermost level, the exception may be (re-)thrown multiple times - (ultimately - in each worker on each nesting level) before reaching the root - thread at the outermost level. IMPORTANT: if you intercept an exception derived - from this class on a nested level, you must re-throw it in the catch block by means - of the "throw;" operator. - - TBB provides two implementations of this interface: tbb::captured_exception and - template class tbb::movable_exception. See their declarations for more info. **/ -class tbb_exception : public std::exception -{ - /** No operator new is provided because the TBB usage model assumes dynamic - creation of the TBB exception objects only by means of applying move() - operation on an exception thrown out of TBB scheduler. **/ - void* operator new ( size_t ); - -public: -#if __clang__ - // At -O3 or even -O2 optimization level, Clang may fully throw away an empty destructor - // of tbb_exception from destructors of derived classes. As a result, it does not create - // vtable for tbb_exception, which is a required part of TBB binary interface. - // Making the destructor non-empty (with just a semicolon) prevents that optimization. - ~tbb_exception() throw() { /* keep the semicolon! */ ; } -#endif - - //! Creates and returns pointer to the deep copy of this exception object. - /** Move semantics is allowed. **/ - virtual tbb_exception* move () throw() = 0; - - //! Destroys objects created by the move() method. - /** Frees memory and calls destructor for this exception object. - Can and must be used only on objects created by the move method. **/ - virtual void destroy () throw() = 0; - - //! Throws this exception object. - /** Make sure that if you have several levels of derivation from this interface - you implement or override this method on the most derived level. The implementation - is as simple as "throw *this;". Failure to do this will result in exception - of a base class type being thrown. **/ - virtual void throw_self () = 0; - - //! Returns RTTI name of the originally intercepted exception - virtual const char* name() const throw() = 0; - - //! Returns the result of originally intercepted exception's what() method. - virtual const char* what() const throw() = 0; - - /** Operator delete is provided only to allow using existing smart pointers - with TBB exception objects obtained as the result of applying move() - operation on an exception thrown out of TBB scheduler. - - When overriding method move() make sure to override operator delete as well - if memory is allocated not by TBB's scalable allocator. **/ - void operator delete ( void* p ) { - internal::deallocate_via_handler_v3(p); - } -}; - -//! This class is used by TBB to propagate information about unhandled exceptions into the root thread. -/** Exception of this type is thrown by TBB in the root thread (thread that started a parallel - algorithm ) if an unhandled exception was intercepted during the algorithm execution in one - of the workers. - \sa tbb::tbb_exception **/ -class captured_exception : public tbb_exception -{ -public: - captured_exception ( const captured_exception& src ) - : tbb_exception(src), my_dynamic(false) - { - set(src.my_exception_name, src.my_exception_info); - } - - captured_exception ( const char* name_, const char* info ) - : my_dynamic(false) - { - set(name_, info); - } - - __TBB_EXPORTED_METHOD ~captured_exception () throw(); - - captured_exception& operator= ( const captured_exception& src ) { - if ( this != &src ) { - clear(); - set(src.my_exception_name, src.my_exception_info); - } - return *this; - } - - /*override*/ - captured_exception* __TBB_EXPORTED_METHOD move () throw(); - - /*override*/ - void __TBB_EXPORTED_METHOD destroy () throw(); - - /*override*/ - void throw_self () { __TBB_THROW(*this); } - - /*override*/ - const char* __TBB_EXPORTED_METHOD name() const throw(); - - /*override*/ - const char* __TBB_EXPORTED_METHOD what() const throw(); - - void __TBB_EXPORTED_METHOD set ( const char* name, const char* info ) throw(); - void __TBB_EXPORTED_METHOD clear () throw(); - -private: - //! Used only by method clone(). - captured_exception() {} - - //! Functionally equivalent to {captured_exception e(name,info); return e.clone();} - static captured_exception* allocate ( const char* name, const char* info ); - - bool my_dynamic; - const char* my_exception_name; - const char* my_exception_info; -}; - -//! Template that can be used to implement exception that transfers arbitrary ExceptionData to the root thread -/** Code using TBB can instantiate this template with an arbitrary ExceptionData type - and throw this exception object. Such exceptions are intercepted by the TBB scheduler - and delivered to the root thread (). - \sa tbb::tbb_exception **/ -template -class movable_exception : public tbb_exception -{ - typedef movable_exception self_type; - -public: - movable_exception ( const ExceptionData& data_ ) - : my_exception_data(data_) - , my_dynamic(false) - , my_exception_name( -#if TBB_USE_EXCEPTIONS - typeid(self_type).name() -#else /* !TBB_USE_EXCEPTIONS */ - "movable_exception" -#endif /* !TBB_USE_EXCEPTIONS */ - ) - {} - - movable_exception ( const movable_exception& src ) throw () - : tbb_exception(src) - , my_exception_data(src.my_exception_data) - , my_dynamic(false) - , my_exception_name(src.my_exception_name) - {} - - ~movable_exception () throw() {} - - const movable_exception& operator= ( const movable_exception& src ) { - if ( this != &src ) { - my_exception_data = src.my_exception_data; - my_exception_name = src.my_exception_name; - } - return *this; - } - - ExceptionData& data () throw() { return my_exception_data; } - - const ExceptionData& data () const throw() { return my_exception_data; } - - /*override*/ const char* name () const throw() { return my_exception_name; } - - /*override*/ const char* what () const throw() { return "tbb::movable_exception"; } - - /*override*/ - movable_exception* move () throw() { - void* e = internal::allocate_via_handler_v3(sizeof(movable_exception)); - if ( e ) { - ::new (e) movable_exception(*this); - ((movable_exception*)e)->my_dynamic = true; - } - return (movable_exception*)e; - } - /*override*/ - void destroy () throw() { - __TBB_ASSERT ( my_dynamic, "Method destroy can be called only on dynamically allocated movable_exceptions" ); - if ( my_dynamic ) { - this->~movable_exception(); - internal::deallocate_via_handler_v3(this); - } - } - /*override*/ - void throw_self () { __TBB_THROW( *this ); } - -protected: - //! User data - ExceptionData my_exception_data; - -private: - //! Flag specifying whether this object has been dynamically allocated (by the move method) - bool my_dynamic; - - //! RTTI name of this class - /** We rely on the fact that RTTI names are static string constants. **/ - const char* my_exception_name; -}; - -#if !TBB_USE_CAPTURED_EXCEPTION -namespace internal { - -//! Exception container that preserves the exact copy of the original exception -/** This class can be used only when the appropriate runtime support (mandated - by C++0x) is present **/ -class tbb_exception_ptr { - std::exception_ptr my_ptr; - -public: - static tbb_exception_ptr* allocate (); - static tbb_exception_ptr* allocate ( const tbb_exception& tag ); - //! This overload uses move semantics (i.e. it empties src) - static tbb_exception_ptr* allocate ( captured_exception& src ); - - //! Destroys this objects - /** Note that objects of this type can be created only by the allocate() method. **/ - void destroy () throw(); - - //! Throws the contained exception . - void throw_self () { std::rethrow_exception(my_ptr); } - -private: - tbb_exception_ptr ( const std::exception_ptr& src ) : my_ptr(src) {} - tbb_exception_ptr ( const captured_exception& src ) : - #if __TBB_MAKE_EXCEPTION_PTR_PRESENT - my_ptr(std::make_exception_ptr(src)) // the final function name in C++11 - #else - my_ptr(std::copy_exception(src)) // early C++0x drafts name - #endif - {} -}; // class tbb::internal::tbb_exception_ptr - -} // namespace internal -#endif /* !TBB_USE_CAPTURED_EXCEPTION */ - -} // namespace tbb - -#endif /* __TBB_TASK_GROUP_CONTEXT */ - -#endif /* __TBB_exception_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/tbb_machine.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/tbb_machine.h deleted file mode 100644 index 28e87fb4f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/tbb_machine.h +++ /dev/null @@ -1,967 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_machine_H -#define __TBB_machine_H - -/** This header provides basic platform abstraction layer by hooking up appropriate - architecture/OS/compiler specific headers from the /include/tbb/machine directory. - If a plug-in header does not implement all the required APIs, it must specify - the missing ones by setting one or more of the following macros: - - __TBB_USE_GENERIC_PART_WORD_CAS - __TBB_USE_GENERIC_PART_WORD_FETCH_ADD - __TBB_USE_GENERIC_PART_WORD_FETCH_STORE - __TBB_USE_GENERIC_FETCH_ADD - __TBB_USE_GENERIC_FETCH_STORE - __TBB_USE_GENERIC_DWORD_FETCH_ADD - __TBB_USE_GENERIC_DWORD_FETCH_STORE - __TBB_USE_GENERIC_HALF_FENCED_LOAD_STORE - __TBB_USE_GENERIC_FULL_FENCED_LOAD_STORE - __TBB_USE_GENERIC_RELAXED_LOAD_STORE - __TBB_USE_FETCHSTORE_AS_FULL_FENCED_STORE - - In this case tbb_machine.h will add missing functionality based on a minimal set - of APIs that are required to be implemented by all plug-n headers as described - further. - Note that these generic implementations may be sub-optimal for a particular - architecture, and thus should be relied upon only after careful evaluation - or as the last resort. - - Additionally __TBB_64BIT_ATOMICS can be set to 0 on a 32-bit architecture to - indicate that the port is not going to support double word atomics. It may also - be set to 1 explicitly, though normally this is not necessary as tbb_machine.h - will set it automatically. - - __TBB_ENDIANNESS macro can be defined by the implementation as well. - It is used only if __TBB_USE_GENERIC_PART_WORD_CAS is set (or for testing), - and must specify the layout of aligned 16-bit and 32-bit data anywhere within a process - (while the details of unaligned 16-bit or 32-bit data or of 64-bit data are irrelevant). - The layout must be the same at all relevant memory locations within the current process; - in case of page-specific endianness, one endianness must be kept "out of sight". - Possible settings, reflecting hardware and possibly O.S. convention, are: - - __TBB_ENDIAN_BIG for big-endian data, - - __TBB_ENDIAN_LITTLE for little-endian data, - - __TBB_ENDIAN_DETECT for run-time detection iff exactly one of the above, - - __TBB_ENDIAN_UNSUPPORTED to prevent undefined behavior if none of the above. - - Prerequisites for each architecture port - ---------------------------------------- - The following functions and macros have no generic implementation. Therefore they must be - implemented in each machine architecture specific header either as a conventional - function or as a functional macro. - - __TBB_WORDSIZE - This is the size of machine word in bytes, i.e. for 32 bit systems it - should be defined to 4. - - __TBB_Yield() - Signals OS that the current thread is willing to relinquish the remainder - of its time quantum. - - __TBB_full_memory_fence() - Must prevent all memory operations from being reordered across it (both - by hardware and compiler). All such fences must be totally ordered (or - sequentially consistent). - - __TBB_machine_cmpswp4( volatile void *ptr, int32_t value, int32_t comparand ) - Must be provided if __TBB_USE_FENCED_ATOMICS is not set. - - __TBB_machine_cmpswp8( volatile void *ptr, int32_t value, int64_t comparand ) - Must be provided for 64-bit architectures if __TBB_USE_FENCED_ATOMICS is not set, - and for 32-bit architectures if __TBB_64BIT_ATOMICS is set - - __TBB_machine_(...), where - = {cmpswp, fetchadd, fetchstore} - = {1, 2, 4, 8} - = {full_fence, acquire, release, relaxed} - Must be provided if __TBB_USE_FENCED_ATOMICS is set. - - __TBB_control_consistency_helper() - Bridges the memory-semantics gap between architectures providing only - implicit C++0x "consume" semantics (like Power Architecture) and those - also implicitly obeying control dependencies (like IA-64 architecture). - It must be used only in conditional code where the condition is itself - data-dependent, and will then make subsequent code behave as if the - original data dependency were acquired. - It needs only a compiler fence where implied by the architecture - either specifically (like IA-64 architecture) or because generally stronger - "acquire" semantics are enforced (like x86). - It is always valid, though potentially suboptimal, to replace - control with acquire on the load and then remove the helper. - - __TBB_acquire_consistency_helper(), __TBB_release_consistency_helper() - Must be provided if __TBB_USE_GENERIC_HALF_FENCED_LOAD_STORE is set. - Enforce acquire and release semantics in generic implementations of fenced - store and load operations. Depending on the particular architecture/compiler - combination they may be a hardware fence, a compiler fence, both or nothing. - **/ - -#include "tbb_stddef.h" - -namespace tbb { -namespace internal { //< @cond INTERNAL - -//////////////////////////////////////////////////////////////////////////////// -// Overridable helpers declarations -// -// A machine/*.h file may choose to define these templates, otherwise it must -// request default implementation by setting appropriate __TBB_USE_GENERIC_XXX macro(s). -// -template -struct machine_load_store; - -template -struct machine_load_store_relaxed; - -template -struct machine_load_store_seq_cst; -// -// End of overridable helpers declarations -//////////////////////////////////////////////////////////////////////////////// - -template struct atomic_selector; - -template<> struct atomic_selector<1> { - typedef int8_t word; - inline static word fetch_store ( volatile void* location, word value ); -}; - -template<> struct atomic_selector<2> { - typedef int16_t word; - inline static word fetch_store ( volatile void* location, word value ); -}; - -template<> struct atomic_selector<4> { -#if _MSC_VER && !_WIN64 - // Work-around that avoids spurious /Wp64 warnings - typedef intptr_t word; -#else - typedef int32_t word; -#endif - inline static word fetch_store ( volatile void* location, word value ); -}; - -template<> struct atomic_selector<8> { - typedef int64_t word; - inline static word fetch_store ( volatile void* location, word value ); -}; - -}} //< namespaces internal @endcond, tbb - -#define __TBB_MACHINE_DEFINE_STORE8_GENERIC_FENCED(M) \ - inline void __TBB_machine_generic_store8##M(volatile void *ptr, int64_t value) { \ - for(;;) { \ - int64_t result = *(int64_t *)ptr; \ - if( __TBB_machine_cmpswp8##M(ptr,value,result)==result ) break; \ - } \ - } \ - -#define __TBB_MACHINE_DEFINE_LOAD8_GENERIC_FENCED(M) \ - inline int64_t __TBB_machine_generic_load8##M(const volatile void *ptr) { \ - /* Comparand and new value may be anything, they only must be equal, and */ \ - /* the value should have a low probability to be actually found in 'location'.*/ \ - const int64_t anyvalue = 2305843009213693951LL; \ - return __TBB_machine_cmpswp8##M(const_cast(ptr),anyvalue,anyvalue); \ - } \ - -// The set of allowed values for __TBB_ENDIANNESS (see above for details) -#define __TBB_ENDIAN_UNSUPPORTED -1 -#define __TBB_ENDIAN_LITTLE 0 -#define __TBB_ENDIAN_BIG 1 -#define __TBB_ENDIAN_DETECT 2 - -#if _WIN32||_WIN64 - -#ifdef _MANAGED -#pragma managed(push, off) -#endif - - #if __MINGW64__ || __MINGW32__ - extern "C" __declspec(dllimport) int __stdcall SwitchToThread( void ); - #define __TBB_Yield() SwitchToThread() - #if (TBB_USE_GCC_BUILTINS && __TBB_GCC_BUILTIN_ATOMICS_PRESENT) - #include "machine/gcc_generic.h" - #elif __MINGW64__ - #include "machine/linux_intel64.h" - #elif __MINGW32__ - #include "machine/linux_ia32.h" - #endif - #elif (TBB_USE_ICC_BUILTINS && __TBB_ICC_BUILTIN_ATOMICS_PRESENT) - #include "machine/icc_generic.h" - #elif defined(_M_IX86) && !defined(__TBB_WIN32_USE_CL_BUILTINS) - #include "machine/windows_ia32.h" - #elif defined(_M_X64) - #include "machine/windows_intel64.h" - #elif defined(_XBOX) - #include "machine/xbox360_ppc.h" - #elif defined(_M_ARM) || defined(__TBB_WIN32_USE_CL_BUILTINS) - #include "machine/msvc_armv7.h" - #endif - -#ifdef _MANAGED -#pragma managed(pop) -#endif - -#elif __TBB_DEFINE_MIC - - #include "machine/mic_common.h" - //TODO: check if ICC atomic intrinsics are available for MIC - #include "machine/linux_intel64.h" - -#elif __linux__ || __FreeBSD__ || __NetBSD__ - - #if (TBB_USE_GCC_BUILTINS && __TBB_GCC_BUILTIN_ATOMICS_PRESENT) - #include "machine/gcc_generic.h" - #elif (TBB_USE_ICC_BUILTINS && __TBB_ICC_BUILTIN_ATOMICS_PRESENT) - #include "machine/icc_generic.h" - #elif __i386__ - #include "machine/linux_ia32.h" - #elif __x86_64__ - #include "machine/linux_intel64.h" - #elif __ia64__ - #include "machine/linux_ia64.h" - #elif __powerpc__ - #include "machine/mac_ppc.h" - #elif __arm__ - #include "machine/gcc_armv7.h" - #elif __TBB_GCC_BUILTIN_ATOMICS_PRESENT - #include "machine/gcc_generic.h" - #endif - #include "machine/linux_common.h" - -#elif __APPLE__ - //TODO: TBB_USE_GCC_BUILTINS is not used for Mac, Sun, Aix - #if (TBB_USE_ICC_BUILTINS && __TBB_ICC_BUILTIN_ATOMICS_PRESENT) - #include "machine/icc_generic.h" - #elif __i386__ - #include "machine/linux_ia32.h" - #elif __x86_64__ - #include "machine/linux_intel64.h" - #elif __POWERPC__ - #include "machine/mac_ppc.h" - #endif - #include "machine/macos_common.h" - -#elif _AIX - - #include "machine/ibm_aix51.h" - -#elif __sun || __SUNPRO_CC - - #define __asm__ asm - #define __volatile__ volatile - - #if __i386 || __i386__ - #include "machine/linux_ia32.h" - #elif __x86_64__ - #include "machine/linux_intel64.h" - #elif __sparc - #include "machine/sunos_sparc.h" - #endif - #include - - #define __TBB_Yield() sched_yield() - -#endif /* OS selection */ - -#ifndef __TBB_64BIT_ATOMICS - #define __TBB_64BIT_ATOMICS 1 -#endif - -//TODO: replace usage of these functions with usage of tbb::atomic, and then remove them -//TODO: map functions with W suffix to use cast to tbb::atomic and according op, i.e. as_atomic().op() -// Special atomic functions -#if __TBB_USE_FENCED_ATOMICS - #define __TBB_machine_cmpswp1 __TBB_machine_cmpswp1full_fence - #define __TBB_machine_cmpswp2 __TBB_machine_cmpswp2full_fence - #define __TBB_machine_cmpswp4 __TBB_machine_cmpswp4full_fence - #define __TBB_machine_cmpswp8 __TBB_machine_cmpswp8full_fence - - #if __TBB_WORDSIZE==8 - #define __TBB_machine_fetchadd8 __TBB_machine_fetchadd8full_fence - #define __TBB_machine_fetchstore8 __TBB_machine_fetchstore8full_fence - #define __TBB_FetchAndAddWrelease(P,V) __TBB_machine_fetchadd8release(P,V) - #define __TBB_FetchAndIncrementWacquire(P) __TBB_machine_fetchadd8acquire(P,1) - #define __TBB_FetchAndDecrementWrelease(P) __TBB_machine_fetchadd8release(P,(-1)) - #else - #define __TBB_machine_fetchadd4 __TBB_machine_fetchadd4full_fence - #define __TBB_machine_fetchstore4 __TBB_machine_fetchstore4full_fence - #define __TBB_FetchAndAddWrelease(P,V) __TBB_machine_fetchadd4release(P,V) - #define __TBB_FetchAndIncrementWacquire(P) __TBB_machine_fetchadd4acquire(P,1) - #define __TBB_FetchAndDecrementWrelease(P) __TBB_machine_fetchadd4release(P,(-1)) - #endif /* __TBB_WORDSIZE==4 */ -#else /* !__TBB_USE_FENCED_ATOMICS */ - #define __TBB_FetchAndAddWrelease(P,V) __TBB_FetchAndAddW(P,V) - #define __TBB_FetchAndIncrementWacquire(P) __TBB_FetchAndAddW(P,1) - #define __TBB_FetchAndDecrementWrelease(P) __TBB_FetchAndAddW(P,(-1)) -#endif /* !__TBB_USE_FENCED_ATOMICS */ - -#if __TBB_WORDSIZE==4 - #define __TBB_CompareAndSwapW(P,V,C) __TBB_machine_cmpswp4(P,V,C) - #define __TBB_FetchAndAddW(P,V) __TBB_machine_fetchadd4(P,V) - #define __TBB_FetchAndStoreW(P,V) __TBB_machine_fetchstore4(P,V) -#elif __TBB_WORDSIZE==8 - #if __TBB_USE_GENERIC_DWORD_LOAD_STORE || __TBB_USE_GENERIC_DWORD_FETCH_ADD || __TBB_USE_GENERIC_DWORD_FETCH_STORE - #error These macros should only be used on 32-bit platforms. - #endif - - #define __TBB_CompareAndSwapW(P,V,C) __TBB_machine_cmpswp8(P,V,C) - #define __TBB_FetchAndAddW(P,V) __TBB_machine_fetchadd8(P,V) - #define __TBB_FetchAndStoreW(P,V) __TBB_machine_fetchstore8(P,V) -#else /* __TBB_WORDSIZE != 8 */ - #error Unsupported machine word size. -#endif /* __TBB_WORDSIZE */ - -#ifndef __TBB_Pause - inline void __TBB_Pause(int32_t) { - __TBB_Yield(); - } -#endif - -namespace tbb { - -//! Sequentially consistent full memory fence. -inline void atomic_fence () { __TBB_full_memory_fence(); } - -namespace internal { //< @cond INTERNAL - -//! Class that implements exponential backoff. -/** See implementation of spin_wait_while_eq for an example. */ -class atomic_backoff : no_copy { - //! Time delay, in units of "pause" instructions. - /** Should be equal to approximately the number of "pause" instructions - that take the same time as an context switch. */ - static const int32_t LOOPS_BEFORE_YIELD = 16; - int32_t count; -public: - // In many cases, an object of this type is initialized eagerly on hot path, - // as in for(atomic_backoff b; ; b.pause()) { /*loop body*/ } - // For this reason, the construction cost must be very small! - atomic_backoff() : count(1) {} - // This constructor pauses immediately; do not use on hot paths! - atomic_backoff( bool ) : count(1) { pause(); } - - //! Pause for a while. - void pause() { - if( count<=LOOPS_BEFORE_YIELD ) { - __TBB_Pause(count); - // Pause twice as long the next time. - count*=2; - } else { - // Pause is so long that we might as well yield CPU to scheduler. - __TBB_Yield(); - } - } - - // pause for a few times and then return false immediately. - bool bounded_pause() { - if( count<=LOOPS_BEFORE_YIELD ) { - __TBB_Pause(count); - // Pause twice as long the next time. - count*=2; - return true; - } else { - return false; - } - } - - void reset() { - count = 1; - } -}; - -//! Spin WHILE the value of the variable is equal to a given value -/** T and U should be comparable types. */ -template -void spin_wait_while_eq( const volatile T& location, U value ) { - atomic_backoff backoff; - while( location==value ) backoff.pause(); -} - -//! Spin UNTIL the value of the variable is equal to a given value -/** T and U should be comparable types. */ -template -void spin_wait_until_eq( const volatile T& location, const U value ) { - atomic_backoff backoff; - while( location!=value ) backoff.pause(); -} - - -//////////////////////////////////////////////////////////////////////////////// -// Generic compare-and-swap applied to only a part of a machine word. -// -#ifndef __TBB_ENDIANNESS -#define __TBB_ENDIANNESS __TBB_ENDIAN_DETECT -#endif - -#if __TBB_USE_GENERIC_PART_WORD_CAS && __TBB_ENDIANNESS==__TBB_ENDIAN_UNSUPPORTED -#error Generic implementation of part-word CAS may not be used with __TBB_ENDIAN_UNSUPPORTED -#endif - -#if __TBB_ENDIANNESS!=__TBB_ENDIAN_UNSUPPORTED -// -// This function is the only use of __TBB_ENDIANNESS. -// The following restrictions/limitations apply for this operation: -// - T must be an integer type of at most 4 bytes for the casts and calculations to work -// - T must also be less than 4 bytes to avoid compiler warnings when computing mask -// (and for the operation to be useful at all, so no workaround is applied) -// - the architecture must consistently use either little-endian or big-endian (same for all locations) -// -// TODO: static_assert for the type requirements stated above -template -inline T __TBB_MaskedCompareAndSwap (volatile T * const ptr, const T value, const T comparand ) { - struct endianness{ static bool is_big_endian(){ - #if __TBB_ENDIANNESS==__TBB_ENDIAN_DETECT - const uint32_t probe = 0x03020100; - return (((const char*)(&probe))[0]==0x03); - #elif __TBB_ENDIANNESS==__TBB_ENDIAN_BIG || __TBB_ENDIANNESS==__TBB_ENDIAN_LITTLE - return __TBB_ENDIANNESS==__TBB_ENDIAN_BIG; - #else - #error Unexpected value of __TBB_ENDIANNESS - #endif - }}; - - const uint32_t byte_offset = (uint32_t) ((uintptr_t)ptr & 0x3); - volatile uint32_t * const aligned_ptr = (uint32_t*)((uintptr_t)ptr - byte_offset ); - - // location of T within uint32_t for a C++ shift operation - const uint32_t bits_to_shift = 8*(endianness::is_big_endian() ? (4 - sizeof(T) - (byte_offset)) : byte_offset); - const uint32_t mask = (((uint32_t)1<<(sizeof(T)*8)) - 1 )<> bits_to_shift); - } - else continue; // CAS failed but the bits of interest were not changed - } -} -#endif // __TBB_ENDIANNESS!=__TBB_ENDIAN_UNSUPPORTED -//////////////////////////////////////////////////////////////////////////////// - -template -inline T __TBB_CompareAndSwapGeneric (volatile void *ptr, T value, T comparand ); - -template<> -inline uint8_t __TBB_CompareAndSwapGeneric <1,uint8_t> (volatile void *ptr, uint8_t value, uint8_t comparand ) { -#if __TBB_USE_GENERIC_PART_WORD_CAS - return __TBB_MaskedCompareAndSwap((volatile uint8_t *)ptr,value,comparand); -#else - return __TBB_machine_cmpswp1(ptr,value,comparand); -#endif -} - -template<> -inline uint16_t __TBB_CompareAndSwapGeneric <2,uint16_t> (volatile void *ptr, uint16_t value, uint16_t comparand ) { -#if __TBB_USE_GENERIC_PART_WORD_CAS - return __TBB_MaskedCompareAndSwap((volatile uint16_t *)ptr,value,comparand); -#else - return __TBB_machine_cmpswp2(ptr,value,comparand); -#endif -} - -template<> -inline uint32_t __TBB_CompareAndSwapGeneric <4,uint32_t> (volatile void *ptr, uint32_t value, uint32_t comparand ) { - // Cast shuts up /Wp64 warning - return (uint32_t)__TBB_machine_cmpswp4(ptr,value,comparand); -} - -#if __TBB_64BIT_ATOMICS -template<> -inline uint64_t __TBB_CompareAndSwapGeneric <8,uint64_t> (volatile void *ptr, uint64_t value, uint64_t comparand ) { - return __TBB_machine_cmpswp8(ptr,value,comparand); -} -#endif - -template -inline T __TBB_FetchAndAddGeneric (volatile void *ptr, T addend) { - T result; - for( atomic_backoff b;;b.pause() ) { - result = *reinterpret_cast(ptr); - // __TBB_CompareAndSwapGeneric presumed to have full fence. - if( __TBB_CompareAndSwapGeneric ( ptr, result+addend, result )==result ) - break; - } - return result; -} - -template -inline T __TBB_FetchAndStoreGeneric (volatile void *ptr, T value) { - T result; - for( atomic_backoff b;;b.pause() ) { - result = *reinterpret_cast(ptr); - // __TBB_CompareAndSwapGeneric presumed to have full fence. - if( __TBB_CompareAndSwapGeneric ( ptr, value, result )==result ) - break; - } - return result; -} - -#if __TBB_USE_GENERIC_PART_WORD_CAS -#define __TBB_machine_cmpswp1 tbb::internal::__TBB_CompareAndSwapGeneric<1,uint8_t> -#define __TBB_machine_cmpswp2 tbb::internal::__TBB_CompareAndSwapGeneric<2,uint16_t> -#endif - -#if __TBB_USE_GENERIC_FETCH_ADD || __TBB_USE_GENERIC_PART_WORD_FETCH_ADD -#define __TBB_machine_fetchadd1 tbb::internal::__TBB_FetchAndAddGeneric<1,uint8_t> -#define __TBB_machine_fetchadd2 tbb::internal::__TBB_FetchAndAddGeneric<2,uint16_t> -#endif - -#if __TBB_USE_GENERIC_FETCH_ADD -#define __TBB_machine_fetchadd4 tbb::internal::__TBB_FetchAndAddGeneric<4,uint32_t> -#endif - -#if __TBB_USE_GENERIC_FETCH_ADD || __TBB_USE_GENERIC_DWORD_FETCH_ADD -#define __TBB_machine_fetchadd8 tbb::internal::__TBB_FetchAndAddGeneric<8,uint64_t> -#endif - -#if __TBB_USE_GENERIC_FETCH_STORE || __TBB_USE_GENERIC_PART_WORD_FETCH_STORE -#define __TBB_machine_fetchstore1 tbb::internal::__TBB_FetchAndStoreGeneric<1,uint8_t> -#define __TBB_machine_fetchstore2 tbb::internal::__TBB_FetchAndStoreGeneric<2,uint16_t> -#endif - -#if __TBB_USE_GENERIC_FETCH_STORE -#define __TBB_machine_fetchstore4 tbb::internal::__TBB_FetchAndStoreGeneric<4,uint32_t> -#endif - -#if __TBB_USE_GENERIC_FETCH_STORE || __TBB_USE_GENERIC_DWORD_FETCH_STORE -#define __TBB_machine_fetchstore8 tbb::internal::__TBB_FetchAndStoreGeneric<8,uint64_t> -#endif - -#if __TBB_USE_FETCHSTORE_AS_FULL_FENCED_STORE -#define __TBB_MACHINE_DEFINE_ATOMIC_SELECTOR_FETCH_STORE(S) \ - atomic_selector::word atomic_selector::fetch_store ( volatile void* location, word value ) { \ - return __TBB_machine_fetchstore##S( location, value ); \ - } - -__TBB_MACHINE_DEFINE_ATOMIC_SELECTOR_FETCH_STORE(1) -__TBB_MACHINE_DEFINE_ATOMIC_SELECTOR_FETCH_STORE(2) -__TBB_MACHINE_DEFINE_ATOMIC_SELECTOR_FETCH_STORE(4) -__TBB_MACHINE_DEFINE_ATOMIC_SELECTOR_FETCH_STORE(8) - -#undef __TBB_MACHINE_DEFINE_ATOMIC_SELECTOR_FETCH_STORE -#endif /* __TBB_USE_FETCHSTORE_AS_FULL_FENCED_STORE */ - -#if __TBB_USE_GENERIC_DWORD_LOAD_STORE -/*TODO: find a more elegant way to handle function names difference*/ -#if ! __TBB_USE_FENCED_ATOMICS - /* This name forwarding is needed for generic implementation of - * load8/store8 defined below (via macro) to pick the right CAS function*/ - #define __TBB_machine_cmpswp8full_fence __TBB_machine_cmpswp8 -#endif -__TBB_MACHINE_DEFINE_LOAD8_GENERIC_FENCED(full_fence) -__TBB_MACHINE_DEFINE_STORE8_GENERIC_FENCED(full_fence) - -#if ! __TBB_USE_FENCED_ATOMICS - #undef __TBB_machine_cmpswp8full_fence -#endif - -#define __TBB_machine_store8 tbb::internal::__TBB_machine_generic_store8full_fence -#define __TBB_machine_load8 tbb::internal::__TBB_machine_generic_load8full_fence -#endif /* __TBB_USE_GENERIC_DWORD_LOAD_STORE */ - -#if __TBB_USE_GENERIC_HALF_FENCED_LOAD_STORE -/** Fenced operations use volatile qualifier to prevent compiler from optimizing - them out, and on architectures with weak memory ordering to induce compiler - to generate code with appropriate acquire/release semantics. - On architectures like IA32, Intel64 (and likely Sparc TSO) volatile has - no effect on code gen, and consistency helpers serve as a compiler fence (the - latter being true for IA64/gcc as well to fix a bug in some gcc versions). - This code assumes that the generated instructions will operate atomically, - which typically requires a type that can be moved in a single instruction, - cooperation from the compiler for effective use of such an instruction, - and appropriate alignment of the data. **/ -template -struct machine_load_store { - static T load_with_acquire ( const volatile T& location ) { - T to_return = location; - __TBB_acquire_consistency_helper(); - return to_return; - } - static void store_with_release ( volatile T &location, T value ) { - __TBB_release_consistency_helper(); - location = value; - } -}; - -//in general, plain load and store of 32bit compiler is not atomic for 64bit types -#if __TBB_WORDSIZE==4 && __TBB_64BIT_ATOMICS -template -struct machine_load_store { - static T load_with_acquire ( const volatile T& location ) { - return (T)__TBB_machine_load8( (const volatile void*)&location ); - } - static void store_with_release ( volatile T& location, T value ) { - __TBB_machine_store8( (volatile void*)&location, (int64_t)value ); - } -}; -#endif /* __TBB_WORDSIZE==4 && __TBB_64BIT_ATOMICS */ -#endif /* __TBB_USE_GENERIC_HALF_FENCED_LOAD_STORE */ - -#if __TBB_USE_GENERIC_SEQUENTIAL_CONSISTENCY_LOAD_STORE -template -struct machine_load_store_seq_cst { - static T load ( const volatile T& location ) { - __TBB_full_memory_fence(); - return machine_load_store::load_with_acquire( location ); - } -#if __TBB_USE_FETCHSTORE_AS_FULL_FENCED_STORE - static void store ( volatile T &location, T value ) { - atomic_selector::fetch_store( (volatile void*)&location, (typename atomic_selector::word)value ); - } -#else /* !__TBB_USE_FETCHSTORE_AS_FULL_FENCED_STORE */ - static void store ( volatile T &location, T value ) { - machine_load_store::store_with_release( location, value ); - __TBB_full_memory_fence(); - } -#endif /* !__TBB_USE_FETCHSTORE_AS_FULL_FENCED_STORE */ -}; - -#if __TBB_WORDSIZE==4 && __TBB_64BIT_ATOMICS -/** The implementation does not use functions __TBB_machine_load8/store8 as they - are not required to be sequentially consistent. **/ -template -struct machine_load_store_seq_cst { - static T load ( const volatile T& location ) { - // Comparand and new value may be anything, they only must be equal, and - // the value should have a low probability to be actually found in 'location'. - const int64_t anyvalue = 2305843009213693951LL; - return __TBB_machine_cmpswp8( (volatile void*)const_cast(&location), anyvalue, anyvalue ); - } - static void store ( volatile T &location, T value ) { - int64_t result = (volatile int64_t&)location; - while ( __TBB_machine_cmpswp8((volatile void*)&location, (int64_t)value, result) != result ) - result = (volatile int64_t&)location; - } -}; -#endif /* __TBB_WORDSIZE==4 && __TBB_64BIT_ATOMICS */ -#endif /*__TBB_USE_GENERIC_SEQUENTIAL_CONSISTENCY_LOAD_STORE */ - -#if __TBB_USE_GENERIC_RELAXED_LOAD_STORE -// Relaxed operations add volatile qualifier to prevent compiler from optimizing them out. -/** Volatile should not incur any additional cost on IA32, Intel64, and Sparc TSO - architectures. However on architectures with weak memory ordering compiler may - generate code with acquire/release semantics for operations on volatile data. **/ -template -struct machine_load_store_relaxed { - static inline T load ( const volatile T& location ) { - return location; - } - static inline void store ( volatile T& location, T value ) { - location = value; - } -}; - -#if __TBB_WORDSIZE==4 && __TBB_64BIT_ATOMICS -template -struct machine_load_store_relaxed { - static inline T load ( const volatile T& location ) { - return (T)__TBB_machine_load8( (const volatile void*)&location ); - } - static inline void store ( volatile T& location, T value ) { - __TBB_machine_store8( (volatile void*)&location, (int64_t)value ); - } -}; -#endif /* __TBB_WORDSIZE==4 && __TBB_64BIT_ATOMICS */ -#endif /* __TBB_USE_GENERIC_RELAXED_LOAD_STORE */ - -#undef __TBB_WORDSIZE //this macro is forbidden to use outside of atomic machinery - -template -inline T __TBB_load_with_acquire(const volatile T &location) { - return machine_load_store::load_with_acquire( location ); -} -template -inline void __TBB_store_with_release(volatile T& location, V value) { - machine_load_store::store_with_release( location, T(value) ); -} -//! Overload that exists solely to avoid /Wp64 warnings. -inline void __TBB_store_with_release(volatile size_t& location, size_t value) { - machine_load_store::store_with_release( location, value ); -} - -template -inline T __TBB_load_full_fence(const volatile T &location) { - return machine_load_store_seq_cst::load( location ); -} -template -inline void __TBB_store_full_fence(volatile T& location, V value) { - machine_load_store_seq_cst::store( location, T(value) ); -} -//! Overload that exists solely to avoid /Wp64 warnings. -inline void __TBB_store_full_fence(volatile size_t& location, size_t value) { - machine_load_store_seq_cst::store( location, value ); -} - -template -inline T __TBB_load_relaxed (const volatile T& location) { - return machine_load_store_relaxed::load( const_cast(location) ); -} -template -inline void __TBB_store_relaxed ( volatile T& location, V value ) { - machine_load_store_relaxed::store( const_cast(location), T(value) ); -} -//! Overload that exists solely to avoid /Wp64 warnings. -inline void __TBB_store_relaxed ( volatile size_t& location, size_t value ) { - machine_load_store_relaxed::store( const_cast(location), value ); -} - -// Macro __TBB_TypeWithAlignmentAtLeastAsStrict(T) should be a type with alignment at least as -// strict as type T. The type should have a trivial default constructor and destructor, so that -// arrays of that type can be declared without initializers. -// It is correct (but perhaps a waste of space) if __TBB_TypeWithAlignmentAtLeastAsStrict(T) expands -// to a type bigger than T. -// The default definition here works on machines where integers are naturally aligned and the -// strictest alignment is 64. -#ifndef __TBB_TypeWithAlignmentAtLeastAsStrict - -#if __TBB_ATTRIBUTE_ALIGNED_PRESENT - -#define __TBB_DefineTypeWithAlignment(PowerOf2) \ -struct __TBB_machine_type_with_alignment_##PowerOf2 { \ - uint32_t member[PowerOf2/sizeof(uint32_t)]; \ -} __attribute__((aligned(PowerOf2))); -#define __TBB_alignof(T) __alignof__(T) - -#elif __TBB_DECLSPEC_ALIGN_PRESENT - -#define __TBB_DefineTypeWithAlignment(PowerOf2) \ -__declspec(align(PowerOf2)) \ -struct __TBB_machine_type_with_alignment_##PowerOf2 { \ - uint32_t member[PowerOf2/sizeof(uint32_t)]; \ -}; -#define __TBB_alignof(T) __alignof(T) - -#else /* A compiler with unknown syntax for data alignment */ -#error Must define __TBB_TypeWithAlignmentAtLeastAsStrict(T) -#endif - -/* Now declare types aligned to useful powers of two */ -// TODO: Is __TBB_DefineTypeWithAlignment(8) needed on 32 bit platforms? -__TBB_DefineTypeWithAlignment(16) -__TBB_DefineTypeWithAlignment(32) -__TBB_DefineTypeWithAlignment(64) - -typedef __TBB_machine_type_with_alignment_64 __TBB_machine_type_with_strictest_alignment; - -// Primary template is a declaration of incomplete type so that it fails with unknown alignments -template struct type_with_alignment; - -// Specializations for allowed alignments -template<> struct type_with_alignment<1> { char member; }; -template<> struct type_with_alignment<2> { uint16_t member; }; -template<> struct type_with_alignment<4> { uint32_t member; }; -template<> struct type_with_alignment<8> { uint64_t member; }; -template<> struct type_with_alignment<16> {__TBB_machine_type_with_alignment_16 member; }; -template<> struct type_with_alignment<32> {__TBB_machine_type_with_alignment_32 member; }; -template<> struct type_with_alignment<64> {__TBB_machine_type_with_alignment_64 member; }; - -#if __TBB_ALIGNOF_NOT_INSTANTIATED_TYPES_BROKEN -//! Work around for bug in GNU 3.2 and MSVC compilers. -/** Bug is that compiler sometimes returns 0 for __alignof(T) when T has not yet been instantiated. - The work-around forces instantiation by forcing computation of sizeof(T) before __alignof(T). */ -template -struct work_around_alignment_bug { - static const size_t alignment = __TBB_alignof(T); -}; -#define __TBB_TypeWithAlignmentAtLeastAsStrict(T) tbb::internal::type_with_alignment::alignment> -#else -#define __TBB_TypeWithAlignmentAtLeastAsStrict(T) tbb::internal::type_with_alignment<__TBB_alignof(T)> -#endif /* __TBB_ALIGNOF_NOT_INSTANTIATED_TYPES_BROKEN */ - -#endif /* __TBB_TypeWithAlignmentAtLeastAsStrict */ - -// Template class here is to avoid instantiation of the static data for modules that don't use it -template -struct reverse { - static const T byte_table[256]; -}; -// An efficient implementation of the reverse function utilizes a 2^8 lookup table holding the bit-reversed -// values of [0..2^8 - 1]. Those values can also be computed on the fly at a slightly higher cost. -template -const T reverse::byte_table[256] = { - 0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0, 0x10, 0x90, 0x50, 0xD0, 0x30, 0xB0, 0x70, 0xF0, - 0x08, 0x88, 0x48, 0xC8, 0x28, 0xA8, 0x68, 0xE8, 0x18, 0x98, 0x58, 0xD8, 0x38, 0xB8, 0x78, 0xF8, - 0x04, 0x84, 0x44, 0xC4, 0x24, 0xA4, 0x64, 0xE4, 0x14, 0x94, 0x54, 0xD4, 0x34, 0xB4, 0x74, 0xF4, - 0x0C, 0x8C, 0x4C, 0xCC, 0x2C, 0xAC, 0x6C, 0xEC, 0x1C, 0x9C, 0x5C, 0xDC, 0x3C, 0xBC, 0x7C, 0xFC, - 0x02, 0x82, 0x42, 0xC2, 0x22, 0xA2, 0x62, 0xE2, 0x12, 0x92, 0x52, 0xD2, 0x32, 0xB2, 0x72, 0xF2, - 0x0A, 0x8A, 0x4A, 0xCA, 0x2A, 0xAA, 0x6A, 0xEA, 0x1A, 0x9A, 0x5A, 0xDA, 0x3A, 0xBA, 0x7A, 0xFA, - 0x06, 0x86, 0x46, 0xC6, 0x26, 0xA6, 0x66, 0xE6, 0x16, 0x96, 0x56, 0xD6, 0x36, 0xB6, 0x76, 0xF6, - 0x0E, 0x8E, 0x4E, 0xCE, 0x2E, 0xAE, 0x6E, 0xEE, 0x1E, 0x9E, 0x5E, 0xDE, 0x3E, 0xBE, 0x7E, 0xFE, - 0x01, 0x81, 0x41, 0xC1, 0x21, 0xA1, 0x61, 0xE1, 0x11, 0x91, 0x51, 0xD1, 0x31, 0xB1, 0x71, 0xF1, - 0x09, 0x89, 0x49, 0xC9, 0x29, 0xA9, 0x69, 0xE9, 0x19, 0x99, 0x59, 0xD9, 0x39, 0xB9, 0x79, 0xF9, - 0x05, 0x85, 0x45, 0xC5, 0x25, 0xA5, 0x65, 0xE5, 0x15, 0x95, 0x55, 0xD5, 0x35, 0xB5, 0x75, 0xF5, - 0x0D, 0x8D, 0x4D, 0xCD, 0x2D, 0xAD, 0x6D, 0xED, 0x1D, 0x9D, 0x5D, 0xDD, 0x3D, 0xBD, 0x7D, 0xFD, - 0x03, 0x83, 0x43, 0xC3, 0x23, 0xA3, 0x63, 0xE3, 0x13, 0x93, 0x53, 0xD3, 0x33, 0xB3, 0x73, 0xF3, - 0x0B, 0x8B, 0x4B, 0xCB, 0x2B, 0xAB, 0x6B, 0xEB, 0x1B, 0x9B, 0x5B, 0xDB, 0x3B, 0xBB, 0x7B, 0xFB, - 0x07, 0x87, 0x47, 0xC7, 0x27, 0xA7, 0x67, 0xE7, 0x17, 0x97, 0x57, 0xD7, 0x37, 0xB7, 0x77, 0xF7, - 0x0F, 0x8F, 0x4F, 0xCF, 0x2F, 0xAF, 0x6F, 0xEF, 0x1F, 0x9F, 0x5F, 0xDF, 0x3F, 0xBF, 0x7F, 0xFF -}; - -} // namespace internal @endcond -} // namespace tbb - -// Preserving access to legacy APIs -using tbb::internal::__TBB_load_with_acquire; -using tbb::internal::__TBB_store_with_release; - -// Mapping historically used names to the ones expected by atomic_load_store_traits -#define __TBB_load_acquire __TBB_load_with_acquire -#define __TBB_store_release __TBB_store_with_release - -#ifndef __TBB_Log2 -inline intptr_t __TBB_Log2( uintptr_t x ) { - if( x==0 ) return -1; - intptr_t result = 0; - -#if !defined(_M_ARM) - uintptr_t tmp; - if( sizeof(x)>4 && (tmp = ((uint64_t)x)>>32) ) { x=tmp; result += 32; } -#endif - if( uintptr_t tmp = x>>16 ) { x=tmp; result += 16; } - if( uintptr_t tmp = x>>8 ) { x=tmp; result += 8; } - if( uintptr_t tmp = x>>4 ) { x=tmp; result += 4; } - if( uintptr_t tmp = x>>2 ) { x=tmp; result += 2; } - - return (x&2)? result+1: result; -} -#endif - -#ifndef __TBB_AtomicOR -inline void __TBB_AtomicOR( volatile void *operand, uintptr_t addend ) { - for( tbb::internal::atomic_backoff b;;b.pause() ) { - uintptr_t tmp = *(volatile uintptr_t *)operand; - uintptr_t result = __TBB_CompareAndSwapW(operand, tmp|addend, tmp); - if( result==tmp ) break; - } -} -#endif - -#ifndef __TBB_AtomicAND -inline void __TBB_AtomicAND( volatile void *operand, uintptr_t addend ) { - for( tbb::internal::atomic_backoff b;;b.pause() ) { - uintptr_t tmp = *(volatile uintptr_t *)operand; - uintptr_t result = __TBB_CompareAndSwapW(operand, tmp&addend, tmp); - if( result==tmp ) break; - } -} -#endif - -#if __TBB_PREFETCHING -#ifndef __TBB_cl_prefetch -#error This platform does not define cache management primitives required for __TBB_PREFETCHING -#endif - -#ifndef __TBB_cl_evict -#define __TBB_cl_evict(p) -#endif -#endif - -#ifndef __TBB_Flag -typedef unsigned char __TBB_Flag; -#endif -typedef __TBB_atomic __TBB_Flag __TBB_atomic_flag; - -#ifndef __TBB_TryLockByte -inline bool __TBB_TryLockByte( __TBB_atomic_flag &flag ) { - return __TBB_machine_cmpswp1(&flag,1,0)==0; -} -#endif - -#ifndef __TBB_LockByte -inline __TBB_Flag __TBB_LockByte( __TBB_atomic_flag& flag ) { - tbb::internal::atomic_backoff backoff; - while( !__TBB_TryLockByte(flag) ) backoff.pause(); - return 0; -} -#endif - -#ifndef __TBB_UnlockByte -#define __TBB_UnlockByte(addr) __TBB_store_with_release((addr),0) -#endif - -// lock primitives with TSX -#if ( __TBB_x86_32 || __TBB_x86_64 ) /* only on ia32/intel64 */ -inline void __TBB_TryLockByteElidedCancel() { __TBB_machine_try_lock_elided_cancel(); } - -inline bool __TBB_TryLockByteElided( __TBB_atomic_flag& flag ) { - bool res = __TBB_machine_try_lock_elided( &flag )!=0; - // to avoid the "lemming" effect, we need to abort the transaction - // if __TBB_machine_try_lock_elided returns false (i.e., someone else - // has acquired the mutex non-speculatively). - if( !res ) __TBB_TryLockByteElidedCancel(); - return res; -} - -inline void __TBB_LockByteElided( __TBB_atomic_flag& flag ) -{ - for(;;) { - tbb::internal::spin_wait_while_eq( flag, 1 ); - if( __TBB_machine_try_lock_elided( &flag ) ) - return; - // Another thread acquired the lock "for real". - // To avoid the "lemming" effect, we abort the transaction. - __TBB_TryLockByteElidedCancel(); - } -} - -inline void __TBB_UnlockByteElided( __TBB_atomic_flag& flag ) { - __TBB_machine_unlock_elided( &flag ); -} -#endif - -#ifndef __TBB_ReverseByte -inline unsigned char __TBB_ReverseByte(unsigned char src) { - return tbb::internal::reverse::byte_table[src]; -} -#endif - -template -T __TBB_ReverseBits(T src) { - T dst; - unsigned char *original = (unsigned char *) &src; - unsigned char *reversed = (unsigned char *) &dst; - - for( int i = sizeof(T)-1; i >= 0; i-- ) - reversed[i] = __TBB_ReverseByte( original[sizeof(T)-i-1] ); - - return dst; -} - -#endif /* __TBB_machine_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/tbb_profiling.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/tbb_profiling.h deleted file mode 100644 index 804df3da2..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/tbb_profiling.h +++ /dev/null @@ -1,278 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_profiling_H -#define __TBB_profiling_H - -namespace tbb { - namespace internal { - - // - // This is not under __TBB_ITT_STRUCTURE_API because these values are used directly in flow_graph.h. - // - - // include list of index names - #define TBB_STRING_RESOURCE(index_name,str) index_name, - enum string_index { - #include "internal/_tbb_strings.h" - NUM_STRINGS - }; - #undef TBB_STRING_RESOURCE - - enum itt_relation - { - __itt_relation_is_unknown = 0, - __itt_relation_is_dependent_on, /**< "A is dependent on B" means that A cannot start until B completes */ - __itt_relation_is_sibling_of, /**< "A is sibling of B" means that A and B were created as a group */ - __itt_relation_is_parent_of, /**< "A is parent of B" means that A created B */ - __itt_relation_is_continuation_of, /**< "A is continuation of B" means that A assumes the dependencies of B */ - __itt_relation_is_child_of, /**< "A is child of B" means that A was created by B (inverse of is_parent_of) */ - __itt_relation_is_continued_by, /**< "A is continued by B" means that B assumes the dependencies of A (inverse of is_continuation_of) */ - __itt_relation_is_predecessor_to /**< "A is predecessor to B" means that B cannot start until A completes (inverse of is_dependent_on) */ - }; - - } -} - -// Check if the tools support is enabled -#if (_WIN32||_WIN64||__linux__) && !__MINGW32__ && TBB_USE_THREADING_TOOLS - -#if _WIN32||_WIN64 -#include /* mbstowcs_s */ -#endif -#include "tbb_stddef.h" - -namespace tbb { - namespace internal { - -#if _WIN32||_WIN64 - void __TBB_EXPORTED_FUNC itt_set_sync_name_v3( void *obj, const wchar_t* name ); - inline size_t multibyte_to_widechar( wchar_t* wcs, const char* mbs, size_t bufsize) { -#if _MSC_VER>=1400 - size_t len; - mbstowcs_s( &len, wcs, bufsize, mbs, _TRUNCATE ); - return len; // mbstowcs_s counts null terminator -#else - size_t len = mbstowcs( wcs, mbs, bufsize ); - if(wcs && len!=size_t(-1) ) - wcs[len - inline void itt_store_word_with_release(tbb::atomic& dst, U src) { -#if TBB_USE_THREADING_TOOLS - // This assertion should be replaced with static_assert - __TBB_ASSERT(sizeof(T) == sizeof(void *), "Type must be word-sized."); - itt_store_pointer_with_release_v3(&dst, (void *)uintptr_t(src)); -#else - dst = src; -#endif // TBB_USE_THREADING_TOOLS - } - - template - inline T itt_load_word_with_acquire(const tbb::atomic& src) { -#if TBB_USE_THREADING_TOOLS - // This assertion should be replaced with static_assert - __TBB_ASSERT(sizeof(T) == sizeof(void *), "Type must be word-sized."); -#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) - // Workaround for overzealous compiler warnings - #pragma warning (push) - #pragma warning (disable: 4311) -#endif - T result = (T)itt_load_pointer_with_acquire_v3(&src); -#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) - #pragma warning (pop) -#endif - return result; -#else - return src; -#endif // TBB_USE_THREADING_TOOLS - } - - template - inline void itt_store_word_with_release(T& dst, T src) { -#if TBB_USE_THREADING_TOOLS - // This assertion should be replaced with static_assert - __TBB_ASSERT(sizeof(T) == sizeof(void *), "Type must be word-sized."); - itt_store_pointer_with_release_v3(&dst, (void *)src); -#else - __TBB_store_with_release(dst, src); -#endif // TBB_USE_THREADING_TOOLS - } - - template - inline T itt_load_word_with_acquire(const T& src) { -#if TBB_USE_THREADING_TOOLS - // This assertion should be replaced with static_assert - __TBB_ASSERT(sizeof(T) == sizeof(void *), "Type must be word-sized"); - return (T)itt_load_pointer_with_acquire_v3(&src); -#else - return __TBB_load_with_acquire(src); -#endif // TBB_USE_THREADING_TOOLS - } - - template - inline void itt_hide_store_word(T& dst, T src) { -#if TBB_USE_THREADING_TOOLS - // This assertion should be replaced with static_assert - __TBB_ASSERT(sizeof(T) == sizeof(void *), "Type must be word-sized"); - itt_store_pointer_with_release_v3(&dst, (void *)src); -#else - dst = src; -#endif - } - - template - inline T itt_hide_load_word(const T& src) { -#if TBB_USE_THREADING_TOOLS - // This assertion should be replaced with static_assert - __TBB_ASSERT(sizeof(T) == sizeof(void *), "Type must be word-sized."); - return (T)itt_load_pointer_v3(&src); -#else - return src; -#endif - } - -#if TBB_USE_THREADING_TOOLS - inline void call_itt_notify(notify_type t, void *ptr) { - call_itt_notify_v5((int)t, ptr); - } - -#else - inline void call_itt_notify(notify_type /*t*/, void * /*ptr*/) {} - -#endif // TBB_USE_THREADING_TOOLS - -#if __TBB_ITT_STRUCTURE_API - inline void itt_make_task_group( itt_domain_enum domain, void *group, unsigned long long group_extra, - void *parent, unsigned long long parent_extra, string_index name_index ) { - itt_make_task_group_v7( domain, group, group_extra, parent, parent_extra, name_index ); - } - - inline void itt_metadata_str_add( itt_domain_enum domain, void *addr, unsigned long long addr_extra, - string_index key, const char *value ) { - itt_metadata_str_add_v7( domain, addr, addr_extra, key, value ); - } - - inline void itt_relation_add( itt_domain_enum domain, void *addr0, unsigned long long addr0_extra, - itt_relation relation, void *addr1, unsigned long long addr1_extra ) { - itt_relation_add_v7( domain, addr0, addr0_extra, relation, addr1, addr1_extra ); - } - - inline void itt_task_begin( itt_domain_enum domain, void *task, unsigned long long task_extra, - void *parent, unsigned long long parent_extra, string_index name_index ) { - itt_task_begin_v7( domain, task, task_extra, parent, parent_extra, name_index ); - } - - inline void itt_task_end( itt_domain_enum domain ) { - itt_task_end_v7( domain ); - } -#endif // __TBB_ITT_STRUCTURE_API - - } // namespace internal -} // namespace tbb - -#endif /* __TBB_profiling_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/tbb_stddef.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/tbb_stddef.h deleted file mode 100644 index 24cbd0e7c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/tbb_stddef.h +++ /dev/null @@ -1,432 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_tbb_stddef_H -#define __TBB_tbb_stddef_H - -// Marketing-driven product version -#define TBB_VERSION_MAJOR 4 -#define TBB_VERSION_MINOR 2 - -// Engineering-focused interface version -#define TBB_INTERFACE_VERSION 7003 -#define TBB_INTERFACE_VERSION_MAJOR TBB_INTERFACE_VERSION/1000 - -// The oldest major interface version still supported -// To be used in SONAME, manifests, etc. -#define TBB_COMPATIBLE_INTERFACE_VERSION 2 - -#define __TBB_STRING_AUX(x) #x -#define __TBB_STRING(x) __TBB_STRING_AUX(x) - -// We do not need defines below for resource processing on windows -#if !defined RC_INVOKED - -// Define groups for Doxygen documentation -/** - * @defgroup algorithms Algorithms - * @defgroup containers Containers - * @defgroup memory_allocation Memory Allocation - * @defgroup synchronization Synchronization - * @defgroup timing Timing - * @defgroup task_scheduling Task Scheduling - */ - -// Simple text that is displayed on the main page of Doxygen documentation. -/** - * \mainpage Main Page - * - * Click the tabs above for information about the - * - Modules (groups of functionality) implemented by the library - * - Classes provided by the library - * - Files constituting the library. - * . - * Please note that significant part of TBB functionality is implemented in the form of - * template functions, descriptions of which are not accessible on the Classes - * tab. Use Modules or Namespace/Namespace Members - * tabs to find them. - * - * Additional pieces of information can be found here - * - \subpage concepts - * . - */ - -/** \page concepts TBB concepts - - A concept is a set of requirements to a type, which are necessary and sufficient - for the type to model a particular behavior or a set of behaviors. Some concepts - are specific to a particular algorithm (e.g. algorithm body), while other ones - are common to several algorithms (e.g. range concept). - - All TBB algorithms make use of different classes implementing various concepts. - Implementation classes are supplied by the user as type arguments of template - parameters and/or as objects passed as function call arguments. The library - provides predefined implementations of some concepts (e.g. several kinds of - \ref range_req "ranges"), while other ones must always be implemented by the user. - - TBB defines a set of minimal requirements each concept must conform to. Here is - the list of different concepts hyperlinked to the corresponding requirements specifications: - - \subpage range_req - - \subpage parallel_do_body_req - - \subpage parallel_for_body_req - - \subpage parallel_reduce_body_req - - \subpage parallel_scan_body_req - - \subpage parallel_sort_iter_req -**/ - -// tbb_config.h should be included the first since it contains macro definitions used in other headers -#include "tbb_config.h" - -#if _MSC_VER >=1400 - #define __TBB_EXPORTED_FUNC __cdecl - #define __TBB_EXPORTED_METHOD __thiscall -#else - #define __TBB_EXPORTED_FUNC - #define __TBB_EXPORTED_METHOD -#endif - -#if __INTEL_COMPILER || _MSC_VER -#define __TBB_NOINLINE(decl) __declspec(noinline) decl -#elif __GNUC__ -#define __TBB_NOINLINE(decl) decl __attribute__ ((noinline)) -#else -#define __TBB_NOINLINE(decl) decl -#endif - -#include /* Need size_t and ptrdiff_t */ - -#if _MSC_VER - #define __TBB_tbb_windef_H - #include "internal/_tbb_windef.h" - #undef __TBB_tbb_windef_H -#endif -#if !defined(_MSC_VER) || _MSC_VER>=1600 - #include -#endif - -//! Type for an assertion handler -typedef void(*assertion_handler_type)( const char* filename, int line, const char* expression, const char * comment ); - -#if TBB_USE_ASSERT - - #define __TBB_ASSERT_NS(predicate,message,ns) ((predicate)?((void)0) : ns::assertion_failure(__FILE__,__LINE__,#predicate,message)) - //! Assert that x is true. - /** If x is false, print assertion failure message. - If the comment argument is not NULL, it is printed as part of the failure message. - The comment argument has no other effect. */ -#if __TBBMALLOC_BUILD -namespace rml { namespace internal { - #define __TBB_ASSERT(predicate,message) __TBB_ASSERT_NS(predicate,message,rml::internal) -#else -namespace tbb { - #define __TBB_ASSERT(predicate,message) __TBB_ASSERT_NS(predicate,message,tbb) -#endif - - #define __TBB_ASSERT_EX __TBB_ASSERT - - //! Set assertion handler and return previous value of it. - assertion_handler_type __TBB_EXPORTED_FUNC set_assertion_handler( assertion_handler_type new_handler ); - - //! Process an assertion failure. - /** Normally called from __TBB_ASSERT macro. - If assertion handler is null, print message for assertion failure and abort. - Otherwise call the assertion handler. */ - void __TBB_EXPORTED_FUNC assertion_failure( const char* filename, int line, const char* expression, const char* comment ); - -#if __TBBMALLOC_BUILD -}} // namespace rml::internal -#else -} // namespace tbb -#endif -#else /* !TBB_USE_ASSERT */ - - //! No-op version of __TBB_ASSERT. - #define __TBB_ASSERT(predicate,comment) ((void)0) - //! "Extended" version is useful to suppress warnings if a variable is only used with an assert - #define __TBB_ASSERT_EX(predicate,comment) ((void)(1 && (predicate))) - -#endif /* !TBB_USE_ASSERT */ - -//! The namespace tbb contains all components of the library. -namespace tbb { - -#if _MSC_VER && _MSC_VER<1600 - namespace internal { - typedef __int8 int8_t; - typedef __int16 int16_t; - typedef __int32 int32_t; - typedef __int64 int64_t; - typedef unsigned __int8 uint8_t; - typedef unsigned __int16 uint16_t; - typedef unsigned __int32 uint32_t; - typedef unsigned __int64 uint64_t; - } // namespace internal -#else /* Posix */ - namespace internal { - using ::int8_t; - using ::int16_t; - using ::int32_t; - using ::int64_t; - using ::uint8_t; - using ::uint16_t; - using ::uint32_t; - using ::uint64_t; - } // namespace internal -#endif /* Posix */ - - using std::size_t; - using std::ptrdiff_t; - -//! The function returns the interface version of the TBB shared library being used. -/** - * The version it returns is determined at runtime, not at compile/link time. - * So it can be different than the value of TBB_INTERFACE_VERSION obtained at compile time. - */ -extern "C" int __TBB_EXPORTED_FUNC TBB_runtime_interface_version(); - -//! Dummy type that distinguishes splitting constructor from copy constructor. -/** - * See description of parallel_for and parallel_reduce for example usages. - * @ingroup algorithms - */ -class split { -}; - -/** - * @cond INTERNAL - * @brief Identifiers declared inside namespace internal should never be used directly by client code. - */ -namespace internal { - -//! Compile-time constant that is upper bound on cache line/sector size. -/** It should be used only in situations where having a compile-time upper - bound is more useful than a run-time exact answer. - @ingroup memory_allocation */ -const size_t NFS_MaxLineSize = 128; - -/** Label for data that may be accessed from different threads, and that may eventually become wrapped - in a formal atomic type. - - Note that no problems have yet been observed relating to the definition currently being empty, - even if at least "volatile" would seem to be in order to avoid data sometimes temporarily hiding - in a register (although "volatile" as a "poor man's atomic" lacks several other features of a proper - atomic, some of which are now provided instead through specialized functions). - - Note that usage is intentionally compatible with a definition as qualifier "volatile", - both as a way to have the compiler help enforce use of the label and to quickly rule out - one potential issue. - - Note however that, with some architecture/compiler combinations, e.g. on IA-64 architecture, "volatile" - also has non-portable memory semantics that are needlessly expensive for "relaxed" operations. - - Note that this must only be applied to data that will not change bit patterns when cast to/from - an integral type of the same length; tbb::atomic must be used instead for, e.g., floating-point types. - - TODO: apply wherever relevant **/ -#define __TBB_atomic // intentionally empty, see above - -template -struct padded_base : T { - char pad[NFS_MaxLineSize - sizeof(T) % NFS_MaxLineSize]; -}; -template struct padded_base : T {}; - -//! Pads type T to fill out to a multiple of cache line size. -template -struct padded : padded_base {}; - -//! Extended variant of the standard offsetof macro -/** The standard offsetof macro is not sufficient for TBB as it can be used for - POD-types only. The constant 0x1000 (not NULL) is necessary to appease GCC. **/ -#define __TBB_offsetof(class_name, member_name) \ - ((ptrdiff_t)&(reinterpret_cast(0x1000)->member_name) - 0x1000) - -//! Returns address of the object containing a member with the given name and address -#define __TBB_get_object_ref(class_name, member_name, member_addr) \ - (*reinterpret_cast((char*)member_addr - __TBB_offsetof(class_name, member_name))) - -//! Throws std::runtime_error with what() returning error_code description prefixed with aux_info -void __TBB_EXPORTED_FUNC handle_perror( int error_code, const char* aux_info ); - -#if TBB_USE_EXCEPTIONS - #define __TBB_TRY try - #define __TBB_CATCH(e) catch(e) - #define __TBB_THROW(e) throw e - #define __TBB_RETHROW() throw -#else /* !TBB_USE_EXCEPTIONS */ - inline bool __TBB_false() { return false; } - #define __TBB_TRY - #define __TBB_CATCH(e) if ( tbb::internal::__TBB_false() ) - #define __TBB_THROW(e) ((void)0) - #define __TBB_RETHROW() ((void)0) -#endif /* !TBB_USE_EXCEPTIONS */ - -//! Report a runtime warning. -void __TBB_EXPORTED_FUNC runtime_warning( const char* format, ... ); - -#if TBB_USE_ASSERT -static void* const poisoned_ptr = reinterpret_cast(-1); - -//! Set p to invalid pointer value. -// Also works for regular (non-__TBB_atomic) pointers. -template -inline void poison_pointer( T* __TBB_atomic & p ) { p = reinterpret_cast(poisoned_ptr); } - -/** Expected to be used in assertions only, thus no empty form is defined. **/ -template -inline bool is_poisoned( T* p ) { return p == reinterpret_cast(poisoned_ptr); } -#else -template -inline void poison_pointer( T* __TBB_atomic & ) {/*do nothing*/} -#endif /* !TBB_USE_ASSERT */ - -//! Cast between unrelated pointer types. -/** This method should be used sparingly as a last resort for dealing with - situations that inherently break strict ISO C++ aliasing rules. */ -// T is a pointer type because it will be explicitly provided by the programmer as a template argument; -// U is a referent type to enable the compiler to check that "ptr" is a pointer, deducing U in the process. -template -inline T punned_cast( U* ptr ) { - uintptr_t x = reinterpret_cast(ptr); - return reinterpret_cast(x); -} - -//! Base class for types that should not be assigned. -class no_assign { - // Deny assignment - void operator=( const no_assign& ); -public: -#if __GNUC__ - //! Explicitly define default construction, because otherwise gcc issues gratuitous warning. - no_assign() {} -#endif /* __GNUC__ */ -}; - -//! Base class for types that should not be copied or assigned. -class no_copy: no_assign { - //! Deny copy construction - no_copy( const no_copy& ); -public: - //! Allow default construction - no_copy() {} -}; - -//! Class for determining type of std::allocator::value_type. -template -struct allocator_type { - typedef T value_type; -}; - -#if _MSC_VER -//! Microsoft std::allocator has non-standard extension that strips const from a type. -template -struct allocator_type { - typedef T value_type; -}; -#endif - -//! A template to select either 32-bit or 64-bit constant as compile time, depending on machine word size. -template -struct select_size_t_constant { - //Explicit cast is needed to avoid compiler warnings about possible truncation. - //The value of the right size, which is selected by ?:, is anyway not truncated or promoted. - static const size_t value = (size_t)((sizeof(size_t)==sizeof(u)) ? u : ull); -}; - -//! A function to check if passed in pointer is aligned on a specific border -template -inline bool is_aligned(T* pointer, uintptr_t alignment) { - return 0==((uintptr_t)pointer & (alignment-1)); -} - -//! A function to check if passed integer is a power of 2 -template -inline bool is_power_of_two(integer_type arg) { - return arg && (0 == (arg & (arg - 1))); -} - -//! A function to compute arg modulo divisor where divisor is a power of 2. -template -inline argument_integer_type modulo_power_of_two(argument_integer_type arg, divisor_integer_type divisor) { - // Divisor is assumed to be a power of two (which is valid for current uses). - __TBB_ASSERT( is_power_of_two(divisor), "Divisor should be a power of two" ); - return (arg & (divisor - 1)); -} - - -//! A function to determine if "arg is a multiplication of a number and a power of 2". -// i.e. for strictly positive i and j, with j a power of 2, -// determines whether i==j< -inline bool is_power_of_two_factor(argument_integer_type arg, divisor_integer_type divisor) { - // Divisor is assumed to be a power of two (which is valid for current uses). - __TBB_ASSERT( is_power_of_two(divisor), "Divisor should be a power of two" ); - return 0 == (arg & (arg - divisor)); -} - -//! Utility template function to prevent "unused" warnings by various compilers. -template -void suppress_unused_warning( const T& ) {} - -// Struct to be used as a version tag for inline functions. -/** Version tag can be necessary to prevent loader on Linux from using the wrong - symbol in debug builds (when inline functions are compiled as out-of-line). **/ -struct version_tag_v3 {}; - -typedef version_tag_v3 version_tag; - -} // internal -//! @endcond - -} // tbb - -namespace tbb { namespace internal { -template -struct STATIC_ASSERTION_FAILED; - -template <> -struct STATIC_ASSERTION_FAILED { enum {value=1};}; - -template<> -struct STATIC_ASSERTION_FAILED; //intentionally left undefined to cause compile time error -}} // namespace tbb { namespace internal { - -#if __TBB_STATIC_ASSERT_PRESENT -#define __TBB_STATIC_ASSERT(condition,msg) static_assert(condition,msg) -#else -//please note condition is intentionally inverted to get a bit more understandable error msg -#define __TBB_STATIC_ASSERT_IMPL1(condition,msg,line) \ - enum {static_assert_on_line_##line = tbb::internal::STATIC_ASSERTION_FAILED::value} - -#define __TBB_STATIC_ASSERT_IMPL(condition,msg,line) __TBB_STATIC_ASSERT_IMPL1(condition,msg,line) -//! Verify at compile time that passed in condition is hold -#define __TBB_STATIC_ASSERT(condition,msg) __TBB_STATIC_ASSERT_IMPL(condition,msg,__LINE__) -#endif - -#endif /* RC_INVOKED */ -#endif /* __TBB_tbb_stddef_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/tbb_thread.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/tbb_thread.h deleted file mode 100644 index b36f99dbc..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/tbb_thread.h +++ /dev/null @@ -1,304 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_tbb_thread_H -#define __TBB_tbb_thread_H - -#include "tbb_stddef.h" -#if _WIN32||_WIN64 -#include "machine/windows_api.h" -#define __TBB_NATIVE_THREAD_ROUTINE unsigned WINAPI -#define __TBB_NATIVE_THREAD_ROUTINE_PTR(r) unsigned (WINAPI* r)( void* ) -#if __TBB_WIN8UI_SUPPORT -typedef size_t thread_id_type; -#else // __TBB_WIN8UI_SUPPORT -typedef DWORD thread_id_type; -#endif // __TBB_WIN8UI_SUPPORT -#else -#define __TBB_NATIVE_THREAD_ROUTINE void* -#define __TBB_NATIVE_THREAD_ROUTINE_PTR(r) void* (*r)( void* ) -#include -#endif // _WIN32||_WIN64 - -#include "tick_count.h" - -#if !TBB_USE_EXCEPTIONS && _MSC_VER - // Suppress "C++ exception handler used, but unwind semantics are not enabled" warning in STL headers - #pragma warning (push) - #pragma warning (disable: 4530) -#endif - -#include - -#if !TBB_USE_EXCEPTIONS && _MSC_VER - #pragma warning (pop) -#endif - -namespace tbb { - -namespace internal { - class tbb_thread_v3; -} - -inline void swap( internal::tbb_thread_v3& t1, internal::tbb_thread_v3& t2 ); - -namespace internal { - - //! Allocate a closure - void* __TBB_EXPORTED_FUNC allocate_closure_v3( size_t size ); - //! Free a closure allocated by allocate_closure_v3 - void __TBB_EXPORTED_FUNC free_closure_v3( void* ); - - struct thread_closure_base { - void* operator new( size_t size ) {return allocate_closure_v3(size);} - void operator delete( void* ptr ) {free_closure_v3(ptr);} - }; - - template struct thread_closure_0: thread_closure_base { - F function; - - static __TBB_NATIVE_THREAD_ROUTINE start_routine( void* c ) { - thread_closure_0 *self = static_cast(c); - self->function(); - delete self; - return 0; - } - thread_closure_0( const F& f ) : function(f) {} - }; - //! Structure used to pass user function with 1 argument to thread. - template struct thread_closure_1: thread_closure_base { - F function; - X arg1; - //! Routine passed to Windows's _beginthreadex by thread::internal_start() inside tbb.dll - static __TBB_NATIVE_THREAD_ROUTINE start_routine( void* c ) { - thread_closure_1 *self = static_cast(c); - self->function(self->arg1); - delete self; - return 0; - } - thread_closure_1( const F& f, const X& x ) : function(f), arg1(x) {} - }; - template struct thread_closure_2: thread_closure_base { - F function; - X arg1; - Y arg2; - //! Routine passed to Windows's _beginthreadex by thread::internal_start() inside tbb.dll - static __TBB_NATIVE_THREAD_ROUTINE start_routine( void* c ) { - thread_closure_2 *self = static_cast(c); - self->function(self->arg1, self->arg2); - delete self; - return 0; - } - thread_closure_2( const F& f, const X& x, const Y& y ) : function(f), arg1(x), arg2(y) {} - }; - - //! Versioned thread class. - class tbb_thread_v3 { - tbb_thread_v3(const tbb_thread_v3&); // = delete; // Deny access - public: -#if _WIN32||_WIN64 - typedef HANDLE native_handle_type; -#else - typedef pthread_t native_handle_type; -#endif // _WIN32||_WIN64 - - class id; - //! Constructs a thread object that does not represent a thread of execution. - tbb_thread_v3() : my_handle(0) -#if _WIN32||_WIN64 - , my_thread_id(0) -#endif // _WIN32||_WIN64 - {} - - //! Constructs an object and executes f() in a new thread - template explicit tbb_thread_v3(F f) { - typedef internal::thread_closure_0 closure_type; - internal_start(closure_type::start_routine, new closure_type(f)); - } - //! Constructs an object and executes f(x) in a new thread - template tbb_thread_v3(F f, X x) { - typedef internal::thread_closure_1 closure_type; - internal_start(closure_type::start_routine, new closure_type(f,x)); - } - //! Constructs an object and executes f(x,y) in a new thread - template tbb_thread_v3(F f, X x, Y y) { - typedef internal::thread_closure_2 closure_type; - internal_start(closure_type::start_routine, new closure_type(f,x,y)); - } - - tbb_thread_v3& operator=(tbb_thread_v3& x) { - if (joinable()) detach(); - my_handle = x.my_handle; - x.my_handle = 0; -#if _WIN32||_WIN64 - my_thread_id = x.my_thread_id; - x.my_thread_id = 0; -#endif // _WIN32||_WIN64 - return *this; - } - void swap( tbb_thread_v3& t ) {tbb::swap( *this, t );} - bool joinable() const {return my_handle!=0; } - //! The completion of the thread represented by *this happens before join() returns. - void __TBB_EXPORTED_METHOD join(); - //! When detach() returns, *this no longer represents the possibly continuing thread of execution. - void __TBB_EXPORTED_METHOD detach(); - ~tbb_thread_v3() {if( joinable() ) detach();} - inline id get_id() const; - native_handle_type native_handle() { return my_handle; } - - //! The number of hardware thread contexts. - /** Before TBB 3.0 U4 this methods returned the number of logical CPU in - the system. Currently on Windows, Linux and FreeBSD it returns the - number of logical CPUs available to the current process in accordance - with its affinity mask. - - NOTE: The return value of this method never changes after its first - invocation. This means that changes in the process affinity mask that - took place after this method was first invoked will not affect the - number of worker threads in the TBB worker threads pool. **/ - static unsigned __TBB_EXPORTED_FUNC hardware_concurrency(); - private: - native_handle_type my_handle; -#if _WIN32||_WIN64 - thread_id_type my_thread_id; -#endif // _WIN32||_WIN64 - - /** Runs start_routine(closure) on another thread and sets my_handle to the handle of the created thread. */ - void __TBB_EXPORTED_METHOD internal_start( __TBB_NATIVE_THREAD_ROUTINE_PTR(start_routine), - void* closure ); - friend void __TBB_EXPORTED_FUNC move_v3( tbb_thread_v3& t1, tbb_thread_v3& t2 ); - friend void tbb::swap( tbb_thread_v3& t1, tbb_thread_v3& t2 ); - }; - - class tbb_thread_v3::id { -#if _WIN32||_WIN64 - thread_id_type my_id; - id( thread_id_type id_ ) : my_id(id_) {} -#else - pthread_t my_id; - id( pthread_t id_ ) : my_id(id_) {} -#endif // _WIN32||_WIN64 - friend class tbb_thread_v3; - public: - id() : my_id(0) {} - - friend bool operator==( tbb_thread_v3::id x, tbb_thread_v3::id y ); - friend bool operator!=( tbb_thread_v3::id x, tbb_thread_v3::id y ); - friend bool operator<( tbb_thread_v3::id x, tbb_thread_v3::id y ); - friend bool operator<=( tbb_thread_v3::id x, tbb_thread_v3::id y ); - friend bool operator>( tbb_thread_v3::id x, tbb_thread_v3::id y ); - friend bool operator>=( tbb_thread_v3::id x, tbb_thread_v3::id y ); - - template - friend std::basic_ostream& - operator<< (std::basic_ostream &out, - tbb_thread_v3::id id) - { - out << id.my_id; - return out; - } - friend tbb_thread_v3::id __TBB_EXPORTED_FUNC thread_get_id_v3(); - }; // tbb_thread_v3::id - - tbb_thread_v3::id tbb_thread_v3::get_id() const { -#if _WIN32||_WIN64 - return id(my_thread_id); -#else - return id(my_handle); -#endif // _WIN32||_WIN64 - } - void __TBB_EXPORTED_FUNC move_v3( tbb_thread_v3& t1, tbb_thread_v3& t2 ); - tbb_thread_v3::id __TBB_EXPORTED_FUNC thread_get_id_v3(); - void __TBB_EXPORTED_FUNC thread_yield_v3(); - void __TBB_EXPORTED_FUNC thread_sleep_v3(const tick_count::interval_t &i); - - inline bool operator==(tbb_thread_v3::id x, tbb_thread_v3::id y) - { - return x.my_id == y.my_id; - } - inline bool operator!=(tbb_thread_v3::id x, tbb_thread_v3::id y) - { - return x.my_id != y.my_id; - } - inline bool operator<(tbb_thread_v3::id x, tbb_thread_v3::id y) - { - return x.my_id < y.my_id; - } - inline bool operator<=(tbb_thread_v3::id x, tbb_thread_v3::id y) - { - return x.my_id <= y.my_id; - } - inline bool operator>(tbb_thread_v3::id x, tbb_thread_v3::id y) - { - return x.my_id > y.my_id; - } - inline bool operator>=(tbb_thread_v3::id x, tbb_thread_v3::id y) - { - return x.my_id >= y.my_id; - } - -} // namespace internal; - -//! Users reference thread class by name tbb_thread -typedef internal::tbb_thread_v3 tbb_thread; - -using internal::operator==; -using internal::operator!=; -using internal::operator<; -using internal::operator>; -using internal::operator<=; -using internal::operator>=; - -inline void move( tbb_thread& t1, tbb_thread& t2 ) { - internal::move_v3(t1, t2); -} - -inline void swap( internal::tbb_thread_v3& t1, internal::tbb_thread_v3& t2 ) { - tbb::tbb_thread::native_handle_type h = t1.my_handle; - t1.my_handle = t2.my_handle; - t2.my_handle = h; -#if _WIN32||_WIN64 - thread_id_type i = t1.my_thread_id; - t1.my_thread_id = t2.my_thread_id; - t2.my_thread_id = i; -#endif /* _WIN32||_WIN64 */ -} - -namespace this_tbb_thread { - inline tbb_thread::id get_id() { return internal::thread_get_id_v3(); } - //! Offers the operating system the opportunity to schedule another thread. - inline void yield() { internal::thread_yield_v3(); } - //! The current thread blocks at least until the time specified. - inline void sleep(const tick_count::interval_t &i) { - internal::thread_sleep_v3(i); - } -} // namespace this_tbb_thread - -} // namespace tbb - -#endif /* __TBB_tbb_thread_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/tbbmalloc_proxy.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/tbbmalloc_proxy.h deleted file mode 100644 index 8b01137c1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/tbbmalloc_proxy.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -/* -Replacing the standard memory allocation routines in Microsoft* C/C++ RTL -(malloc/free, global new/delete, etc.) with the TBB memory allocator. - -Include the following header to a source of any binary which is loaded during -application startup - -#include "tbb/tbbmalloc_proxy.h" - -or add following parameters to the linker options for the binary which is -loaded during application startup. It can be either exe-file or dll. - -For win32 -tbbmalloc_proxy.lib /INCLUDE:"___TBB_malloc_proxy" -win64 -tbbmalloc_proxy.lib /INCLUDE:"__TBB_malloc_proxy" -*/ - -#ifndef __TBB_tbbmalloc_proxy_H -#define __TBB_tbbmalloc_proxy_H - -#if _MSC_VER - -#ifdef _DEBUG - #pragma comment(lib, "tbbmalloc_proxy_debug.lib") -#else - #pragma comment(lib, "tbbmalloc_proxy.lib") -#endif - -#if defined(_WIN64) - #pragma comment(linker, "/include:__TBB_malloc_proxy") -#else - #pragma comment(linker, "/include:___TBB_malloc_proxy") -#endif - -#else -/* Primarily to support MinGW */ - -extern "C" void __TBB_malloc_proxy(); -struct __TBB_malloc_proxy_caller { - __TBB_malloc_proxy_caller() { __TBB_malloc_proxy(); } -} volatile __TBB_malloc_proxy_helper_object; - -#endif // _MSC_VER - -#endif //__TBB_tbbmalloc_proxy_H diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/tick_count.h b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/tick_count.h deleted file mode 100644 index e736a320c..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/include/tbb/tick_count.h +++ /dev/null @@ -1,148 +0,0 @@ -/* - Copyright 2005-2014 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. - - Threading Building Blocks is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. - - Threading Building Blocks is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Threading Building Blocks; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. -*/ - -#ifndef __TBB_tick_count_H -#define __TBB_tick_count_H - -#include "tbb_stddef.h" - -#if _WIN32||_WIN64 -#include "machine/windows_api.h" -#elif __linux__ -#include -#else /* generic Unix */ -#include -#endif /* (choice of OS) */ - -namespace tbb { - -//! Absolute timestamp -/** @ingroup timing */ -class tick_count { -public: - //! Relative time interval. - class interval_t { - long long value; - explicit interval_t( long long value_ ) : value(value_) {} - public: - //! Construct a time interval representing zero time duration - interval_t() : value(0) {}; - - //! Construct a time interval representing sec seconds time duration - explicit interval_t( double sec ); - - //! Return the length of a time interval in seconds - double seconds() const; - - friend class tbb::tick_count; - - //! Extract the intervals from the tick_counts and subtract them. - friend interval_t operator-( const tick_count& t1, const tick_count& t0 ); - - //! Add two intervals. - friend interval_t operator+( const interval_t& i, const interval_t& j ) { - return interval_t(i.value+j.value); - } - - //! Subtract two intervals. - friend interval_t operator-( const interval_t& i, const interval_t& j ) { - return interval_t(i.value-j.value); - } - - //! Accumulation operator - interval_t& operator+=( const interval_t& i ) {value += i.value; return *this;} - - //! Subtraction operator - interval_t& operator-=( const interval_t& i ) {value -= i.value; return *this;} - private: - static long long ticks_per_second(){ -#if _WIN32||_WIN64 - LARGE_INTEGER qpfreq; - int rval = QueryPerformanceFrequency(&qpfreq); - __TBB_ASSERT_EX(rval, "QueryPerformanceFrequency returned zero"); - return static_cast(qpfreq.QuadPart); -#elif __linux__ - return static_cast(1E9); -#else /* generic Unix */ - return static_cast(1E6); -#endif /* (choice of OS) */ - } - }; - - //! Construct an absolute timestamp initialized to zero. - tick_count() : my_count(0) {}; - - //! Return current time. - static tick_count now(); - - //! Subtract two timestamps to get the time interval between - friend interval_t operator-( const tick_count& t1, const tick_count& t0 ); - - //! Return the resolution of the clock in seconds per tick. - static double resolution() { return 1.0 / interval_t::ticks_per_second(); } - -private: - long long my_count; -}; - -inline tick_count tick_count::now() { - tick_count result; -#if _WIN32||_WIN64 - LARGE_INTEGER qpcnt; - int rval = QueryPerformanceCounter(&qpcnt); - __TBB_ASSERT_EX(rval, "QueryPerformanceCounter failed"); - result.my_count = qpcnt.QuadPart; -#elif __linux__ - struct timespec ts; - int status = clock_gettime( CLOCK_REALTIME, &ts ); - __TBB_ASSERT_EX( status==0, "CLOCK_REALTIME not supported" ); - result.my_count = static_cast(1000000000UL)*static_cast(ts.tv_sec) + static_cast(ts.tv_nsec); -#else /* generic Unix */ - struct timeval tv; - int status = gettimeofday(&tv, NULL); - __TBB_ASSERT_EX( status==0, "gettimeofday failed" ); - result.my_count = static_cast(1000000)*static_cast(tv.tv_sec) + static_cast(tv.tv_usec); -#endif /*(choice of OS) */ - return result; -} - -inline tick_count::interval_t::interval_t( double sec ) { - value = static_cast(sec*interval_t::ticks_per_second()); -} - -inline tick_count::interval_t operator-( const tick_count& t1, const tick_count& t0 ) { - return tick_count::interval_t( t1.my_count-t0.my_count ); -} - -inline double tick_count::interval_t::seconds() const { - return value*tick_count::resolution(); -} - -} // namespace tbb - -#endif /* __TBB_tick_count_H */ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/index.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/index.html deleted file mode 100644 index 4b9d78488..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/index.html +++ /dev/null @@ -1,31 +0,0 @@ - - - -

    Overview

    -Top level directory for Intel® Threading Building Blocks. - -

    Directories

    -
    -
    doc -
    Documentation for the library. -
    bin -
    Start-up scripts for sourcing library. -
    include -
    Include files required for compiling code that uses the library. -
    examples -
    Examples of how to use the library. -
    lib -
    Platform-specific binary files for the library. -
    - -
    -

    -Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

    -Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

    -* Other names and brands may be claimed as the property of others. - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/android/index.html b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/android/index.html deleted file mode 100644 index 6b7d9e027..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/android/index.html +++ /dev/null @@ -1,418 +0,0 @@ - - -

    Overview

    -

    -This directory contains the Intel® Threading Building Blocks (Intel® TBB) library files for Android* applications. -Make sure that you load libgnustl_shared.so library before loading Intel TBB libraries. -

    - -
    -

    -Copyright © 2005-2014 Intel Corporation. All Rights Reserved. -

    -Intel is a registered trademark or trademark of Intel Corporation -or its subsidiaries in the United States and other countries. -

    -* Other names and brands may be claimed as the property of others. - -

    -

    Third Party and Open Source Licenses

    -

    -

    -Copyright (C) 2008 The Android Open Source Project -All rights reserved. -

    - -

    -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -

    - -

    -

      -
    • Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. -
    • 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. -

    - -

    -Copyright (C) 2012 The Android Open Source Project -

    - -

    -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at -

    - -

    -http://www.apache.org/licenses/LICENSE-2.0 -

    - -

    -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -

    - -

    -Copyright (c) 2002 Marc Espie. -

    - -

    -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 OPENBSD PROJECT 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 OPENBSD -PROJECT 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. -

    - -

    -Copyright (c) 1990, 1993 -The Regents of the University of California. 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. -
    3. Neither the name of the University nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. -
    -

    - -

    -THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. -

    - -

    -Copyright (c) 1998 The NetBSD Foundation, Inc. -All rights reserved. -

    - -

    -This code is derived from software contributed to The NetBSD Foundation -by Klaus Klein. -

    - -

    -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. -
    3. All advertising materials mentioning features or use of this software - must display the following acknowledgement: - This product includes software developed by the NetBSD - Foundation, Inc. and its contributors. -
    4. Neither the name of The NetBSD Foundation nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. -
    -

    - -

    -THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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. -

    - -

    -Copyright (c) 1991, 1993 -The Regents of the University of California. All rights reserved. -

    - -

    -This code is derived from software contributed to Berkeley by -Berkeley Software Design, Inc. -

    - -

    -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. -
    3. Neither the name of the University nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. -
    -

    - -

    -THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. -

    - -

    -Copyright (c) 1995, 1996 Carnegie-Mellon University. -All rights reserved. -

    - -

    -Author: Chris G. Demetriou -

    - -

    -Permission to use, copy, modify and distribute this software and -its documentation is hereby granted, provided that both the copyright -notice and this permission notice appear in all copies of the -software, derivative works or modified versions, and any portions -thereof, and that both notices appear in supporting documentation. -

    - -

    -CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" -CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND -FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. -

    - -

    -Carnegie Mellon requests users of this software to return to -

    - -

    -
    Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU -
    School of Computer Science -
    Carnegie Mellon University -
    Pittsburgh PA 15213-3890 -

    - -

    -any improvements or extensions that they make and grant Carnegie the -rights to redistribute these changes. -

    - -

    -Copyright (c) 1992, 1993 -
    The Regents of the University of California. All rights reserved. -
    (c) UNIX System Laboratories, Inc. -
    All or some portions of this file are derived from material licensed -to the University of California by American Telephone and Telegraph -Co. or Unix System Laboratories, Inc. and are reproduced herein with -the permission of UNIX System Laboratories, Inc. -

    - -

    -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. -
    3. Neither the name of the University nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. -
    -

    - -

    -THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. -

    - -

    -Copyright (c) 1988 The Regents of the University of California. -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. -
    3. Neither the name of the University nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. -
    -

    - -

    -THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. -

    - -

    -Copyright (c) 1990 The Regents of the University of California. -All rights reserved. -

    - -

    -This code is derived from software contributed to Berkeley by -Chris Torek. -

    - -

    -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. -
    3. Neither the name of the University nor the names of its contributors -may be used to endorse or promote products derived from this software -without specific prior written permission. -
    -

    - -

    -THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. -

    - -

    -Copyright (c) 2004-2005 David Schultz -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 AUTHOR 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 AUTHOR 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. -

    - -
    - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/android/libtbb.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/android/libtbb.so deleted file mode 100644 index b85d3ec09..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/android/libtbb.so and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/android/libtbb_debug.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/android/libtbb_debug.so deleted file mode 100644 index 30633318b..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/android/libtbb_debug.so and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/android/libtbb_preview.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/android/libtbb_preview.so deleted file mode 100644 index 3c69ffdc5..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/android/libtbb_preview.so and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/android/libtbb_preview_debug.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/android/libtbb_preview_debug.so deleted file mode 100644 index 4ea3baf05..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/android/libtbb_preview_debug.so and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/android/libtbbmalloc.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/android/libtbbmalloc.so deleted file mode 100644 index 68121093c..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/android/libtbbmalloc.so and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/android/libtbbmalloc_debug.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/android/libtbbmalloc_debug.so deleted file mode 100644 index 354f90ccf..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/android/libtbbmalloc_debug.so and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/irml/libirml.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/irml/libirml.so deleted file mode 100644 index 1c79cafc4..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/irml/libirml.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libirml.so.1) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/irml/libirml.so.1 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/irml/libirml.so.1 deleted file mode 100644 index 584619fca..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/irml/libirml.so.1 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/irml/libirml_debug.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/irml/libirml_debug.so deleted file mode 100644 index c421a2364..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/irml/libirml_debug.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libirml_debug.so.1) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/irml/libirml_debug.so.1 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/irml/libirml_debug.so.1 deleted file mode 100644 index 5890cc335..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/irml/libirml_debug.so.1 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbb.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbb.so deleted file mode 100644 index 43e23674d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbb.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbb.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbb.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbb.so.2 deleted file mode 100644 index 7760db8fd..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbb.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbb_debug.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbb_debug.so deleted file mode 100644 index 960bbb41a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbb_debug.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbb_debug.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbb_debug.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbb_debug.so.2 deleted file mode 100644 index fc871ed25..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbb_debug.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbb_preview.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbb_preview.so deleted file mode 100644 index 8b10ff482..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbb_preview.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbb_preview.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbb_preview.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbb_preview.so.2 deleted file mode 100644 index 913a6d4fc..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbb_preview.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbb_preview_debug.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbb_preview_debug.so deleted file mode 100644 index 3824af996..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbb_preview_debug.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbb_preview_debug.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbb_preview_debug.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbb_preview_debug.so.2 deleted file mode 100644 index 54573fbc0..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbb_preview_debug.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbbmalloc.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbbmalloc.so deleted file mode 100644 index 2ee0cac01..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbbmalloc.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbbmalloc.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbbmalloc.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbbmalloc.so.2 deleted file mode 100644 index df5526d3c..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbbmalloc.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbbmalloc_debug.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbbmalloc_debug.so deleted file mode 100644 index 977deb107..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbbmalloc_debug.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbbmalloc_debug.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbbmalloc_debug.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbbmalloc_debug.so.2 deleted file mode 100644 index dac93abc8..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbbmalloc_debug.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbbmalloc_proxy.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbbmalloc_proxy.so deleted file mode 100644 index aa866c28f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbbmalloc_proxy.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbbmalloc_proxy.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbbmalloc_proxy.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbbmalloc_proxy.so.2 deleted file mode 100644 index 316eece70..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbbmalloc_proxy.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbbmalloc_proxy_debug.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbbmalloc_proxy_debug.so deleted file mode 100644 index 41e38a567..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbbmalloc_proxy_debug.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbbmalloc_proxy_debug.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbbmalloc_proxy_debug.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbbmalloc_proxy_debug.so.2 deleted file mode 100644 index 9ab5e41e1..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.1/libtbbmalloc_proxy_debug.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/irml/libirml.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/irml/libirml.so deleted file mode 100644 index 1c79cafc4..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/irml/libirml.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libirml.so.1) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/irml/libirml.so.1 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/irml/libirml.so.1 deleted file mode 100644 index 1d27b3fa4..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/irml/libirml.so.1 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/irml/libirml_debug.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/irml/libirml_debug.so deleted file mode 100644 index c421a2364..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/irml/libirml_debug.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libirml_debug.so.1) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/irml/libirml_debug.so.1 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/irml/libirml_debug.so.1 deleted file mode 100644 index 6f9df21b4..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/irml/libirml_debug.so.1 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbb.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbb.so deleted file mode 100644 index 43e23674d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbb.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbb.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbb.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbb.so.2 deleted file mode 100644 index 2cefbab08..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbb.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbb_debug.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbb_debug.so deleted file mode 100644 index 960bbb41a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbb_debug.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbb_debug.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbb_debug.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbb_debug.so.2 deleted file mode 100644 index 8ec461d45..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbb_debug.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbb_preview.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbb_preview.so deleted file mode 100644 index 8b10ff482..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbb_preview.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbb_preview.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbb_preview.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbb_preview.so.2 deleted file mode 100644 index 97b3a80bc..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbb_preview.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbb_preview_debug.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbb_preview_debug.so deleted file mode 100644 index 3824af996..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbb_preview_debug.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbb_preview_debug.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbb_preview_debug.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbb_preview_debug.so.2 deleted file mode 100644 index 81a8136a2..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbb_preview_debug.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbbmalloc.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbbmalloc.so deleted file mode 100644 index 2ee0cac01..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbbmalloc.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbbmalloc.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbbmalloc.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbbmalloc.so.2 deleted file mode 100644 index 34bc0dfed..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbbmalloc.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbbmalloc_debug.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbbmalloc_debug.so deleted file mode 100644 index 977deb107..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbbmalloc_debug.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbbmalloc_debug.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbbmalloc_debug.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbbmalloc_debug.so.2 deleted file mode 100644 index 82b4f9d0e..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbbmalloc_debug.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbbmalloc_proxy.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbbmalloc_proxy.so deleted file mode 100644 index aa866c28f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbbmalloc_proxy.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbbmalloc_proxy.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbbmalloc_proxy.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbbmalloc_proxy.so.2 deleted file mode 100644 index bc79a45f1..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbbmalloc_proxy.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbbmalloc_proxy_debug.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbbmalloc_proxy_debug.so deleted file mode 100644 index 41e38a567..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbbmalloc_proxy_debug.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbbmalloc_proxy_debug.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbbmalloc_proxy_debug.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbbmalloc_proxy_debug.so.2 deleted file mode 100644 index c921bb2bf..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/gcc4.4/libtbbmalloc_proxy_debug.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/irml/irml.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/irml/irml.lib deleted file mode 100644 index 192be7b9e..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/irml/irml.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/irml/irml_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/irml/irml_debug.lib deleted file mode 100644 index d178f0176..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/irml/irml_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/irml_c/irml.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/irml_c/irml.lib deleted file mode 100644 index 6d01d5dba..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/irml_c/irml.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/irml_c/irml_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/irml_c/irml_debug.lib deleted file mode 100644 index 2458b746f..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/irml_c/irml_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbb.def b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbb.def deleted file mode 100644 index d88da5c50..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbb.def +++ /dev/null @@ -1,478 +0,0 @@ -; Copyright 2005-2014 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. - -EXPORTS - -; Copyright 2005-2014 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -__TBB_machine_cmpswp8 - - - -__TBB_machine_fetchadd8 - - - -__TBB_machine_fetchstore8 -__TBB_machine_store8 -__TBB_machine_load8 -__TBB_machine_trylockbyte -__TBB_machine_try_lock_elided -__TBB_machine_unlock_elided -__TBB_machine_is_in_transaction - - -?NFS_Allocate@internal@tbb@@YAPAXIIPAX@Z -?NFS_GetLineSize@internal@tbb@@YAIXZ -?NFS_Free@internal@tbb@@YAXPAX@Z -?allocate_via_handler_v3@internal@tbb@@YAPAXI@Z -?deallocate_via_handler_v3@internal@tbb@@YAXPAX@Z -?is_malloc_used_v3@internal@tbb@@YA_NXZ - - -?allocate@allocate_additional_child_of_proxy@internal@tbb@@QBEAAVtask@3@I@Z -?allocate@allocate_child_proxy@internal@tbb@@QBEAAVtask@3@I@Z -?allocate@allocate_continuation_proxy@internal@tbb@@QBEAAVtask@3@I@Z -?allocate@allocate_root_proxy@internal@tbb@@SAAAVtask@3@I@Z -?destroy@task_base@internal@interface5@tbb@@SAXAAVtask@4@@Z -?free@allocate_additional_child_of_proxy@internal@tbb@@QBEXAAVtask@3@@Z -?free@allocate_child_proxy@internal@tbb@@QBEXAAVtask@3@@Z -?free@allocate_continuation_proxy@internal@tbb@@QBEXAAVtask@3@@Z -?free@allocate_root_proxy@internal@tbb@@SAXAAVtask@3@@Z -?internal_set_ref_count@task@tbb@@AAEXH@Z -?internal_decrement_ref_count@task@tbb@@AAEHXZ -?is_owned_by_current_thread@task@tbb@@QBE_NXZ -?note_affinity@task@tbb@@UAEXG@Z -?resize@affinity_partitioner_base_v3@internal@tbb@@AAEXI@Z -?self@task@tbb@@SAAAV12@XZ -?spawn_and_wait_for_all@task@tbb@@QAEXAAVtask_list@2@@Z -?default_num_threads@task_scheduler_init@tbb@@SAHXZ -?initialize@task_scheduler_init@tbb@@QAEXHI@Z -?initialize@task_scheduler_init@tbb@@QAEXH@Z -?terminate@task_scheduler_init@tbb@@QAEXXZ -?observe@task_scheduler_observer_v3@internal@tbb@@QAEX_N@Z - - -?internal_current_slot@task_arena_base@internal@interface7@tbb@@KAHXZ -?internal_initialize@task_arena_base@internal@interface7@tbb@@IAEXXZ -?internal_terminate@task_arena_base@internal@interface7@tbb@@IAEXXZ -?internal_enqueue@task_arena_base@internal@interface7@tbb@@IBEXAAVtask@4@H@Z -?internal_execute@task_arena_base@internal@interface7@tbb@@IBEXAAVdelegate_base@234@@Z -?internal_wait@task_arena_base@internal@interface7@tbb@@IBEXXZ - - -?destroy@task@tbb@@QAEXAAV12@@Z - - -?allocate@allocate_root_with_context_proxy@internal@tbb@@QBEAAVtask@3@I@Z -?free@allocate_root_with_context_proxy@internal@tbb@@QBEXAAVtask@3@@Z -?change_group@task@tbb@@QAEXAAVtask_group_context@2@@Z -?is_group_execution_cancelled@task_group_context@tbb@@QBE_NXZ -?cancel_group_execution@task_group_context@tbb@@QAE_NXZ -?reset@task_group_context@tbb@@QAEXXZ -?init@task_group_context@tbb@@IAEXXZ -?register_pending_exception@task_group_context@tbb@@QAEXXZ -??1task_group_context@tbb@@QAE@XZ -?set_priority@task_group_context@tbb@@QAEXW4priority_t@2@@Z -?priority@task_group_context@tbb@@QBE?AW4priority_t@2@XZ -?name@captured_exception@tbb@@UBEPBDXZ -?what@captured_exception@tbb@@UBEPBDXZ -??1captured_exception@tbb@@UAE@XZ -?move@captured_exception@tbb@@UAEPAV12@XZ -?destroy@captured_exception@tbb@@UAEXXZ -?set@captured_exception@tbb@@QAEXPBD0@Z -?clear@captured_exception@tbb@@QAEXXZ - - -?throw_bad_last_alloc_exception_v4@internal@tbb@@YAXXZ -?throw_exception_v4@internal@tbb@@YAXW4exception_id@12@@Z -?what@bad_last_alloc@tbb@@UBEPBDXZ -?what@missing_wait@tbb@@UBEPBDXZ -?what@invalid_multiple_scheduling@tbb@@UBEPBDXZ -?what@improper_lock@tbb@@UBEPBDXZ -?what@user_abort@tbb@@UBEPBDXZ - - -?assertion_failure@tbb@@YAXPBDH00@Z -?get_initial_auto_partitioner_divisor@internal@tbb@@YAIXZ -?handle_perror@internal@tbb@@YAXHPBD@Z -?set_assertion_handler@tbb@@YAP6AXPBDH00@ZP6AX0H00@Z@Z -?runtime_warning@internal@tbb@@YAXPBDZZ -TBB_runtime_interface_version - - -?itt_load_pointer_with_acquire_v3@internal@tbb@@YAPAXPBX@Z -?itt_store_pointer_with_release_v3@internal@tbb@@YAXPAX0@Z -?call_itt_notify_v5@internal@tbb@@YAXHPAX@Z -?itt_set_sync_name_v3@internal@tbb@@YAXPAXPB_W@Z -?itt_load_pointer_v3@internal@tbb@@YAPAXPBX@Z - - -??0pipeline@tbb@@QAE@XZ -??1filter@tbb@@UAE@XZ -??1pipeline@tbb@@UAE@XZ -??_7pipeline@tbb@@6B@ -?add_filter@pipeline@tbb@@QAEXAAVfilter@2@@Z -?clear@pipeline@tbb@@QAEXXZ -?inject_token@pipeline@tbb@@AAEXAAVtask@2@@Z -?run@pipeline@tbb@@QAEXI@Z -?run@pipeline@tbb@@QAEXIAAVtask_group_context@2@@Z -?process_item@thread_bound_filter@tbb@@QAE?AW4result_type@12@XZ -?try_process_item@thread_bound_filter@tbb@@QAE?AW4result_type@12@XZ -?set_end_of_input@filter@tbb@@IAEXXZ - - -?internal_construct@queuing_rw_mutex@tbb@@QAEXXZ -?acquire@scoped_lock@queuing_rw_mutex@tbb@@QAEXAAV23@_N@Z -?downgrade_to_reader@scoped_lock@queuing_rw_mutex@tbb@@QAE_NXZ -?release@scoped_lock@queuing_rw_mutex@tbb@@QAEXXZ -?upgrade_to_writer@scoped_lock@queuing_rw_mutex@tbb@@QAE_NXZ -?try_acquire@scoped_lock@queuing_rw_mutex@tbb@@QAE_NAAV23@_N@Z - - -?try_lock_read@reader_writer_lock@interface5@tbb@@QAE_NXZ -?try_lock@reader_writer_lock@interface5@tbb@@QAE_NXZ -?unlock@reader_writer_lock@interface5@tbb@@QAEXXZ -?lock_read@reader_writer_lock@interface5@tbb@@QAEXXZ -?lock@reader_writer_lock@interface5@tbb@@QAEXXZ -?internal_construct@reader_writer_lock@interface5@tbb@@AAEXXZ -?internal_destroy@reader_writer_lock@interface5@tbb@@AAEXXZ -?internal_construct@scoped_lock@reader_writer_lock@interface5@tbb@@AAEXAAV234@@Z -?internal_destroy@scoped_lock@reader_writer_lock@interface5@tbb@@AAEXXZ -?internal_construct@scoped_lock_read@reader_writer_lock@interface5@tbb@@AAEXAAV234@@Z -?internal_destroy@scoped_lock_read@reader_writer_lock@interface5@tbb@@AAEXXZ - - -?internal_acquire_reader@spin_rw_mutex@tbb@@CAXPAV12@@Z -?internal_acquire_writer@spin_rw_mutex@tbb@@CA_NPAV12@@Z -?internal_downgrade@spin_rw_mutex@tbb@@CAXPAV12@@Z -?internal_itt_releasing@spin_rw_mutex@tbb@@CAXPAV12@@Z -?internal_release_reader@spin_rw_mutex@tbb@@CAXPAV12@@Z -?internal_release_writer@spin_rw_mutex@tbb@@CAXPAV12@@Z -?internal_upgrade@spin_rw_mutex@tbb@@CA_NPAV12@@Z -?internal_try_acquire_writer@spin_rw_mutex@tbb@@CA_NPAV12@@Z -?internal_try_acquire_reader@spin_rw_mutex@tbb@@CA_NPAV12@@Z - - -?internal_construct@spin_rw_mutex_v3@tbb@@AAEXXZ -?internal_upgrade@spin_rw_mutex_v3@tbb@@AAE_NXZ -?internal_downgrade@spin_rw_mutex_v3@tbb@@AAEXXZ -?internal_acquire_reader@spin_rw_mutex_v3@tbb@@AAEXXZ -?internal_acquire_writer@spin_rw_mutex_v3@tbb@@AAE_NXZ -?internal_release_reader@spin_rw_mutex_v3@tbb@@AAEXXZ -?internal_release_writer@spin_rw_mutex_v3@tbb@@AAEXXZ -?internal_try_acquire_reader@spin_rw_mutex_v3@tbb@@AAE_NXZ -?internal_try_acquire_writer@spin_rw_mutex_v3@tbb@@AAE_NXZ - - - -?internal_construct@spin_mutex@tbb@@QAEXXZ -?internal_acquire@scoped_lock@spin_mutex@tbb@@AAEXAAV23@@Z -?internal_release@scoped_lock@spin_mutex@tbb@@AAEXXZ -?internal_try_acquire@scoped_lock@spin_mutex@tbb@@AAE_NAAV23@@Z - - -?internal_acquire@scoped_lock@mutex@tbb@@AAEXAAV23@@Z -?internal_release@scoped_lock@mutex@tbb@@AAEXXZ -?internal_try_acquire@scoped_lock@mutex@tbb@@AAE_NAAV23@@Z -?internal_construct@mutex@tbb@@AAEXXZ -?internal_destroy@mutex@tbb@@AAEXXZ - - -?internal_acquire@scoped_lock@recursive_mutex@tbb@@AAEXAAV23@@Z -?internal_release@scoped_lock@recursive_mutex@tbb@@AAEXXZ -?internal_try_acquire@scoped_lock@recursive_mutex@tbb@@AAE_NAAV23@@Z -?internal_construct@recursive_mutex@tbb@@AAEXXZ -?internal_destroy@recursive_mutex@tbb@@AAEXXZ - - -?internal_construct@queuing_mutex@tbb@@QAEXXZ -?acquire@scoped_lock@queuing_mutex@tbb@@QAEXAAV23@@Z -?release@scoped_lock@queuing_mutex@tbb@@QAEXXZ -?try_acquire@scoped_lock@queuing_mutex@tbb@@QAE_NAAV23@@Z - - -?internal_construct@critical_section_v4@internal@tbb@@QAEXXZ - - -?internal_grow_predicate@hash_map_segment_base@internal@tbb@@QBE_NXZ - - -?advance@concurrent_queue_iterator_base@internal@tbb@@IAEXXZ -?assign@concurrent_queue_iterator_base@internal@tbb@@IAEXABV123@@Z -?internal_size@concurrent_queue_base@internal@tbb@@IBEHXZ -??0concurrent_queue_base@internal@tbb@@IAE@I@Z -??0concurrent_queue_iterator_base@internal@tbb@@IAE@ABVconcurrent_queue_base@12@@Z -??1concurrent_queue_base@internal@tbb@@MAE@XZ -??1concurrent_queue_iterator_base@internal@tbb@@IAE@XZ -?internal_pop@concurrent_queue_base@internal@tbb@@IAEXPAX@Z -?internal_pop_if_present@concurrent_queue_base@internal@tbb@@IAE_NPAX@Z -?internal_push@concurrent_queue_base@internal@tbb@@IAEXPBX@Z -?internal_push_if_not_full@concurrent_queue_base@internal@tbb@@IAE_NPBX@Z -?internal_set_capacity@concurrent_queue_base@internal@tbb@@IAEXHI@Z - - -??1concurrent_queue_iterator_base_v3@internal@tbb@@IAE@XZ -??0concurrent_queue_iterator_base_v3@internal@tbb@@IAE@ABVconcurrent_queue_base_v3@12@@Z -??0concurrent_queue_iterator_base_v3@internal@tbb@@IAE@ABVconcurrent_queue_base_v3@12@I@Z -?advance@concurrent_queue_iterator_base_v3@internal@tbb@@IAEXXZ -?assign@concurrent_queue_iterator_base_v3@internal@tbb@@IAEXABV123@@Z -??0concurrent_queue_base_v3@internal@tbb@@IAE@I@Z -??1concurrent_queue_base_v3@internal@tbb@@MAE@XZ -?internal_pop@concurrent_queue_base_v3@internal@tbb@@IAEXPAX@Z -?internal_pop_if_present@concurrent_queue_base_v3@internal@tbb@@IAE_NPAX@Z -?internal_abort@concurrent_queue_base_v3@internal@tbb@@IAEXXZ -?internal_push@concurrent_queue_base_v3@internal@tbb@@IAEXPBX@Z -?internal_push_if_not_full@concurrent_queue_base_v3@internal@tbb@@IAE_NPBX@Z -?internal_size@concurrent_queue_base_v3@internal@tbb@@IBEHXZ -?internal_empty@concurrent_queue_base_v3@internal@tbb@@IBE_NXZ -?internal_set_capacity@concurrent_queue_base_v3@internal@tbb@@IAEXHI@Z -?internal_finish_clear@concurrent_queue_base_v3@internal@tbb@@IAEXXZ -?internal_throw_exception@concurrent_queue_base_v3@internal@tbb@@IBEXXZ -?assign@concurrent_queue_base_v3@internal@tbb@@IAEXABV123@@Z - - -?internal_assign@concurrent_vector_base@internal@tbb@@IAEXABV123@IP6AXPAXI@ZP6AX1PBXI@Z4@Z -?internal_capacity@concurrent_vector_base@internal@tbb@@IBEIXZ -?internal_clear@concurrent_vector_base@internal@tbb@@IAEXP6AXPAXI@Z_N@Z -?internal_copy@concurrent_vector_base@internal@tbb@@IAEXABV123@IP6AXPAXPBXI@Z@Z -?internal_grow_by@concurrent_vector_base@internal@tbb@@IAEIIIP6AXPAXI@Z@Z -?internal_grow_to_at_least@concurrent_vector_base@internal@tbb@@IAEXIIP6AXPAXI@Z@Z -?internal_push_back@concurrent_vector_base@internal@tbb@@IAEPAXIAAI@Z -?internal_reserve@concurrent_vector_base@internal@tbb@@IAEXIII@Z - - -??1concurrent_vector_base_v3@internal@tbb@@IAE@XZ -?internal_assign@concurrent_vector_base_v3@internal@tbb@@IAEXABV123@IP6AXPAXI@ZP6AX1PBXI@Z4@Z -?internal_capacity@concurrent_vector_base_v3@internal@tbb@@IBEIXZ -?internal_clear@concurrent_vector_base_v3@internal@tbb@@IAEIP6AXPAXI@Z@Z -?internal_copy@concurrent_vector_base_v3@internal@tbb@@IAEXABV123@IP6AXPAXPBXI@Z@Z -?internal_grow_by@concurrent_vector_base_v3@internal@tbb@@IAEIIIP6AXPAXPBXI@Z1@Z -?internal_grow_to_at_least@concurrent_vector_base_v3@internal@tbb@@IAEXIIP6AXPAXPBXI@Z1@Z -?internal_push_back@concurrent_vector_base_v3@internal@tbb@@IAEPAXIAAI@Z -?internal_reserve@concurrent_vector_base_v3@internal@tbb@@IAEXIII@Z -?internal_compact@concurrent_vector_base_v3@internal@tbb@@IAEPAXIPAXP6AX0I@ZP6AX0PBXI@Z@Z -?internal_swap@concurrent_vector_base_v3@internal@tbb@@IAEXAAV123@@Z -?internal_throw_exception@concurrent_vector_base_v3@internal@tbb@@IBEXI@Z -?internal_resize@concurrent_vector_base_v3@internal@tbb@@IAEXIIIPBXP6AXPAXI@ZP6AX10I@Z@Z -?internal_grow_to_at_least_with_result@concurrent_vector_base_v3@internal@tbb@@IAEIIIP6AXPAXPBXI@Z1@Z - - -?join@tbb_thread_v3@internal@tbb@@QAEXXZ -?detach@tbb_thread_v3@internal@tbb@@QAEXXZ -?internal_start@tbb_thread_v3@internal@tbb@@AAEXP6GIPAX@Z0@Z -?allocate_closure_v3@internal@tbb@@YAPAXI@Z -?free_closure_v3@internal@tbb@@YAXPAX@Z -?hardware_concurrency@tbb_thread_v3@internal@tbb@@SAIXZ -?thread_yield_v3@internal@tbb@@YAXXZ -?thread_sleep_v3@internal@tbb@@YAXABVinterval_t@tick_count@2@@Z -?move_v3@internal@tbb@@YAXAAVtbb_thread_v3@12@0@Z -?thread_get_id_v3@internal@tbb@@YA?AVid@tbb_thread_v3@12@XZ - - -?internal_initialize_condition_variable@internal@interface5@tbb@@YAXAATcondvar_impl_t@123@@Z -?internal_condition_variable_wait@internal@interface5@tbb@@YA_NAATcondvar_impl_t@123@PAVmutex@3@PBVinterval_t@tick_count@3@@Z -?internal_condition_variable_notify_one@internal@interface5@tbb@@YAXAATcondvar_impl_t@123@@Z -?internal_condition_variable_notify_all@internal@interface5@tbb@@YAXAATcondvar_impl_t@123@@Z -?internal_destroy_condition_variable@internal@interface5@tbb@@YAXAATcondvar_impl_t@123@@Z - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbb.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbb.lib deleted file mode 100644 index e7f770b2e..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbb.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbb_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbb_debug.lib deleted file mode 100644 index 4c905d4df..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbb_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbb_preview.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbb_preview.lib deleted file mode 100644 index db098c667..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbb_preview.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbb_preview_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbb_preview_debug.lib deleted file mode 100644 index 0095f1df1..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbb_preview_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbbmalloc.def b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbbmalloc.def deleted file mode 100644 index 0ef9816d5..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbbmalloc.def +++ /dev/null @@ -1,46 +0,0 @@ -; Copyright 2005-2014 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. - -EXPORTS - -; frontend.cpp -scalable_calloc -scalable_free -scalable_malloc -scalable_realloc -scalable_posix_memalign -scalable_aligned_malloc -scalable_aligned_realloc -scalable_aligned_free -safer_scalable_free -safer_scalable_realloc -scalable_msize -scalable_allocation_mode -scalable_allocation_command -safer_scalable_msize -safer_scalable_aligned_msize -safer_scalable_aligned_realloc -?pool_create@rml@@YAPAVMemoryPool@1@HPBUMemPoolPolicy@1@@Z -?pool_create_v1@rml@@YA?AW4MemPoolError@1@HPBUMemPoolPolicy@1@PAPAVMemoryPool@1@@Z -?pool_destroy@rml@@YA_NPAVMemoryPool@1@@Z -?pool_malloc@rml@@YAPAXPAVMemoryPool@1@I@Z -?pool_free@rml@@YA_NPAVMemoryPool@1@PAX@Z -?pool_reset@rml@@YA_NPAVMemoryPool@1@@Z -?pool_realloc@rml@@YAPAXPAVMemoryPool@1@PAXI@Z -?pool_aligned_realloc@rml@@YAPAXPAVMemoryPool@1@PAXII@Z -?pool_aligned_malloc@rml@@YAPAXPAVMemoryPool@1@II@Z diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbbmalloc.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbbmalloc.lib deleted file mode 100644 index 05d94e903..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbbmalloc.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbbmalloc_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbbmalloc_debug.lib deleted file mode 100644 index 7cdbdad1e..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbbmalloc_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbbmalloc_proxy.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbbmalloc_proxy.lib deleted file mode 100644 index 54bf36fca..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbbmalloc_proxy.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbbmalloc_proxy_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbbmalloc_proxy_debug.lib deleted file mode 100644 index c9095b67a..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbbmalloc_proxy_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbbproxy.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbbproxy.lib deleted file mode 100644 index f08907f17..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbbproxy.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbbproxy.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbbproxy.pdb deleted file mode 100644 index 45bb90ff1..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbbproxy.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbbproxy_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbbproxy_debug.lib deleted file mode 100644 index efba64e6b..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbbproxy_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbbproxy_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbbproxy_debug.pdb deleted file mode 100644 index 7d294d76a..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc10/tbbproxy_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/irml/irml.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/irml/irml.lib deleted file mode 100644 index e090df38f..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/irml/irml.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/irml/irml_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/irml/irml_debug.lib deleted file mode 100644 index e29ae506f..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/irml/irml_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbb.def b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbb.def deleted file mode 100644 index 1ef8310bd..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbb.def +++ /dev/null @@ -1,929 +0,0 @@ - -; Copyright 2005-2014 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. - -EXPORTS - - - - - - -; Copyright 2005-2014 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -__TBB_machine_cmpswp8 - - - -__TBB_machine_fetchadd8 - - - -__TBB_machine_fetchstore8 -__TBB_machine_store8 -__TBB_machine_load8 -__TBB_machine_trylockbyte -__TBB_machine_try_lock_elided -__TBB_machine_unlock_elided -__TBB_machine_is_in_transaction - - -?NFS_Allocate@internal@tbb@@YAPAXIIPAX@Z -?NFS_GetLineSize@internal@tbb@@YAIXZ -?NFS_Free@internal@tbb@@YAXPAX@Z -?allocate_via_handler_v3@internal@tbb@@YAPAXI@Z -?deallocate_via_handler_v3@internal@tbb@@YAXPAX@Z -?is_malloc_used_v3@internal@tbb@@YA_NXZ - - -?allocate@allocate_additional_child_of_proxy@internal@tbb@@QBEAAVtask@3@I@Z -?allocate@allocate_child_proxy@internal@tbb@@QBEAAVtask@3@I@Z -?allocate@allocate_continuation_proxy@internal@tbb@@QBEAAVtask@3@I@Z -?allocate@allocate_root_proxy@internal@tbb@@SAAAVtask@3@I@Z -?destroy@task_base@internal@interface5@tbb@@SAXAAVtask@4@@Z -?free@allocate_additional_child_of_proxy@internal@tbb@@QBEXAAVtask@3@@Z -?free@allocate_child_proxy@internal@tbb@@QBEXAAVtask@3@@Z -?free@allocate_continuation_proxy@internal@tbb@@QBEXAAVtask@3@@Z -?free@allocate_root_proxy@internal@tbb@@SAXAAVtask@3@@Z -?internal_set_ref_count@task@tbb@@AAEXH@Z -?internal_decrement_ref_count@task@tbb@@AAEHXZ -?is_owned_by_current_thread@task@tbb@@QBE_NXZ -?note_affinity@task@tbb@@UAEXG@Z -?resize@affinity_partitioner_base_v3@internal@tbb@@AAEXI@Z -?self@task@tbb@@SAAAV12@XZ -?spawn_and_wait_for_all@task@tbb@@QAEXAAVtask_list@2@@Z -?default_num_threads@task_scheduler_init@tbb@@SAHXZ -?initialize@task_scheduler_init@tbb@@QAEXHI@Z -?initialize@task_scheduler_init@tbb@@QAEXH@Z -?terminate@task_scheduler_init@tbb@@QAEXXZ - -?observe@task_scheduler_observer_v3@internal@tbb@@QAEX_N@Z - - - - -?internal_current_slot@task_arena_base@internal@interface7@tbb@@KAHXZ -?internal_initialize@task_arena_base@internal@interface7@tbb@@IAEXXZ -?internal_terminate@task_arena_base@internal@interface7@tbb@@IAEXXZ -?internal_enqueue@task_arena_base@internal@interface7@tbb@@IBEXAAVtask@4@H@Z -?internal_execute@task_arena_base@internal@interface7@tbb@@IBEXAAVdelegate_base@234@@Z -?internal_wait@task_arena_base@internal@interface7@tbb@@IBEXXZ - - - - -?destroy@task@tbb@@QAEXAAV12@@Z - - - - -?allocate@allocate_root_with_context_proxy@internal@tbb@@QBEAAVtask@3@I@Z -?free@allocate_root_with_context_proxy@internal@tbb@@QBEXAAVtask@3@@Z -?change_group@task@tbb@@QAEXAAVtask_group_context@2@@Z -?is_group_execution_cancelled@task_group_context@tbb@@QBE_NXZ -?cancel_group_execution@task_group_context@tbb@@QAE_NXZ -?reset@task_group_context@tbb@@QAEXXZ -?init@task_group_context@tbb@@IAEXXZ -?register_pending_exception@task_group_context@tbb@@QAEXXZ -??1task_group_context@tbb@@QAE@XZ - -?set_priority@task_group_context@tbb@@QAEXW4priority_t@2@@Z -?priority@task_group_context@tbb@@QBE?AW4priority_t@2@XZ - -?name@captured_exception@tbb@@UBEPBDXZ -?what@captured_exception@tbb@@UBEPBDXZ -??1captured_exception@tbb@@UAE@XZ -?move@captured_exception@tbb@@UAEPAV12@XZ -?destroy@captured_exception@tbb@@UAEXXZ -?set@captured_exception@tbb@@QAEXPBD0@Z -?clear@captured_exception@tbb@@QAEXXZ - - - -?throw_bad_last_alloc_exception_v4@internal@tbb@@YAXXZ -?throw_exception_v4@internal@tbb@@YAXW4exception_id@12@@Z -?what@bad_last_alloc@tbb@@UBEPBDXZ -?what@missing_wait@tbb@@UBEPBDXZ -?what@invalid_multiple_scheduling@tbb@@UBEPBDXZ -?what@improper_lock@tbb@@UBEPBDXZ -?what@user_abort@tbb@@UBEPBDXZ - - -?assertion_failure@tbb@@YAXPBDH00@Z -?get_initial_auto_partitioner_divisor@internal@tbb@@YAIXZ -?handle_perror@internal@tbb@@YAXHPBD@Z -?set_assertion_handler@tbb@@YAP6AXPBDH00@ZP6AX0H00@Z@Z -?runtime_warning@internal@tbb@@YAXPBDZZ -TBB_runtime_interface_version - - -?itt_load_pointer_with_acquire_v3@internal@tbb@@YAPAXPBX@Z -?itt_store_pointer_with_release_v3@internal@tbb@@YAXPAX0@Z -?call_itt_notify_v5@internal@tbb@@YAXHPAX@Z -?itt_set_sync_name_v3@internal@tbb@@YAXPAXPB_W@Z -?itt_load_pointer_v3@internal@tbb@@YAPAXPBX@Z - - - - - - - - - -??0pipeline@tbb@@QAE@XZ -??1filter@tbb@@UAE@XZ -??1pipeline@tbb@@UAE@XZ -??_7pipeline@tbb@@6B@ -?add_filter@pipeline@tbb@@QAEXAAVfilter@2@@Z -?clear@pipeline@tbb@@QAEXXZ -?inject_token@pipeline@tbb@@AAEXAAVtask@2@@Z -?run@pipeline@tbb@@QAEXI@Z - -?run@pipeline@tbb@@QAEXIAAVtask_group_context@2@@Z - -?process_item@thread_bound_filter@tbb@@QAE?AW4result_type@12@XZ -?try_process_item@thread_bound_filter@tbb@@QAE?AW4result_type@12@XZ -?set_end_of_input@filter@tbb@@IAEXXZ - - -?internal_construct@queuing_rw_mutex@tbb@@QAEXXZ -?acquire@scoped_lock@queuing_rw_mutex@tbb@@QAEXAAV23@_N@Z -?downgrade_to_reader@scoped_lock@queuing_rw_mutex@tbb@@QAE_NXZ -?release@scoped_lock@queuing_rw_mutex@tbb@@QAEXXZ -?upgrade_to_writer@scoped_lock@queuing_rw_mutex@tbb@@QAE_NXZ -?try_acquire@scoped_lock@queuing_rw_mutex@tbb@@QAE_NAAV23@_N@Z - - -?try_lock_read@reader_writer_lock@interface5@tbb@@QAE_NXZ -?try_lock@reader_writer_lock@interface5@tbb@@QAE_NXZ -?unlock@reader_writer_lock@interface5@tbb@@QAEXXZ -?lock_read@reader_writer_lock@interface5@tbb@@QAEXXZ -?lock@reader_writer_lock@interface5@tbb@@QAEXXZ -?internal_construct@reader_writer_lock@interface5@tbb@@AAEXXZ -?internal_destroy@reader_writer_lock@interface5@tbb@@AAEXXZ -?internal_construct@scoped_lock@reader_writer_lock@interface5@tbb@@AAEXAAV234@@Z -?internal_destroy@scoped_lock@reader_writer_lock@interface5@tbb@@AAEXXZ -?internal_construct@scoped_lock_read@reader_writer_lock@interface5@tbb@@AAEXAAV234@@Z -?internal_destroy@scoped_lock_read@reader_writer_lock@interface5@tbb@@AAEXXZ - - - -?internal_acquire_reader@spin_rw_mutex@tbb@@CAXPAV12@@Z -?internal_acquire_writer@spin_rw_mutex@tbb@@CA_NPAV12@@Z -?internal_downgrade@spin_rw_mutex@tbb@@CAXPAV12@@Z -?internal_itt_releasing@spin_rw_mutex@tbb@@CAXPAV12@@Z -?internal_release_reader@spin_rw_mutex@tbb@@CAXPAV12@@Z -?internal_release_writer@spin_rw_mutex@tbb@@CAXPAV12@@Z -?internal_upgrade@spin_rw_mutex@tbb@@CA_NPAV12@@Z -?internal_try_acquire_writer@spin_rw_mutex@tbb@@CA_NPAV12@@Z -?internal_try_acquire_reader@spin_rw_mutex@tbb@@CA_NPAV12@@Z - - - -?internal_construct@spin_rw_mutex_v3@tbb@@AAEXXZ -?internal_upgrade@spin_rw_mutex_v3@tbb@@AAE_NXZ -?internal_downgrade@spin_rw_mutex_v3@tbb@@AAEXXZ -?internal_acquire_reader@spin_rw_mutex_v3@tbb@@AAEXXZ -?internal_acquire_writer@spin_rw_mutex_v3@tbb@@AAE_NXZ -?internal_release_reader@spin_rw_mutex_v3@tbb@@AAEXXZ -?internal_release_writer@spin_rw_mutex_v3@tbb@@AAEXXZ -?internal_try_acquire_reader@spin_rw_mutex_v3@tbb@@AAE_NXZ -?internal_try_acquire_writer@spin_rw_mutex_v3@tbb@@AAE_NXZ - - - - - - - - - - - - - -?internal_construct@spin_mutex@tbb@@QAEXXZ -?internal_acquire@scoped_lock@spin_mutex@tbb@@AAEXAAV23@@Z -?internal_release@scoped_lock@spin_mutex@tbb@@AAEXXZ -?internal_try_acquire@scoped_lock@spin_mutex@tbb@@AAE_NAAV23@@Z - - -?internal_acquire@scoped_lock@mutex@tbb@@AAEXAAV23@@Z -?internal_release@scoped_lock@mutex@tbb@@AAEXXZ -?internal_try_acquire@scoped_lock@mutex@tbb@@AAE_NAAV23@@Z -?internal_construct@mutex@tbb@@AAEXXZ -?internal_destroy@mutex@tbb@@AAEXXZ - - -?internal_acquire@scoped_lock@recursive_mutex@tbb@@AAEXAAV23@@Z -?internal_release@scoped_lock@recursive_mutex@tbb@@AAEXXZ -?internal_try_acquire@scoped_lock@recursive_mutex@tbb@@AAE_NAAV23@@Z -?internal_construct@recursive_mutex@tbb@@AAEXXZ -?internal_destroy@recursive_mutex@tbb@@AAEXXZ - - -?internal_construct@queuing_mutex@tbb@@QAEXXZ -?acquire@scoped_lock@queuing_mutex@tbb@@QAEXAAV23@@Z -?release@scoped_lock@queuing_mutex@tbb@@QAEXXZ -?try_acquire@scoped_lock@queuing_mutex@tbb@@QAE_NAAV23@@Z - - -?internal_construct@critical_section_v4@internal@tbb@@QAEXXZ - - - -?internal_grow_predicate@hash_map_segment_base@internal@tbb@@QBE_NXZ - - -?advance@concurrent_queue_iterator_base@internal@tbb@@IAEXXZ -?assign@concurrent_queue_iterator_base@internal@tbb@@IAEXABV123@@Z -?internal_size@concurrent_queue_base@internal@tbb@@IBEHXZ -??0concurrent_queue_base@internal@tbb@@IAE@I@Z -??0concurrent_queue_iterator_base@internal@tbb@@IAE@ABVconcurrent_queue_base@12@@Z -??1concurrent_queue_base@internal@tbb@@MAE@XZ -??1concurrent_queue_iterator_base@internal@tbb@@IAE@XZ -?internal_pop@concurrent_queue_base@internal@tbb@@IAEXPAX@Z -?internal_pop_if_present@concurrent_queue_base@internal@tbb@@IAE_NPAX@Z -?internal_push@concurrent_queue_base@internal@tbb@@IAEXPBX@Z -?internal_push_if_not_full@concurrent_queue_base@internal@tbb@@IAE_NPBX@Z -?internal_set_capacity@concurrent_queue_base@internal@tbb@@IAEXHI@Z - - - -??1concurrent_queue_iterator_base_v3@internal@tbb@@IAE@XZ -??0concurrent_queue_iterator_base_v3@internal@tbb@@IAE@ABVconcurrent_queue_base_v3@12@@Z -??0concurrent_queue_iterator_base_v3@internal@tbb@@IAE@ABVconcurrent_queue_base_v3@12@I@Z -?advance@concurrent_queue_iterator_base_v3@internal@tbb@@IAEXXZ -?assign@concurrent_queue_iterator_base_v3@internal@tbb@@IAEXABV123@@Z -??0concurrent_queue_base_v3@internal@tbb@@IAE@I@Z -??1concurrent_queue_base_v3@internal@tbb@@MAE@XZ -?internal_pop@concurrent_queue_base_v3@internal@tbb@@IAEXPAX@Z -?internal_pop_if_present@concurrent_queue_base_v3@internal@tbb@@IAE_NPAX@Z -?internal_abort@concurrent_queue_base_v3@internal@tbb@@IAEXXZ -?internal_push@concurrent_queue_base_v3@internal@tbb@@IAEXPBX@Z -?internal_push_if_not_full@concurrent_queue_base_v3@internal@tbb@@IAE_NPBX@Z -?internal_size@concurrent_queue_base_v3@internal@tbb@@IBEHXZ -?internal_empty@concurrent_queue_base_v3@internal@tbb@@IBE_NXZ -?internal_set_capacity@concurrent_queue_base_v3@internal@tbb@@IAEXHI@Z -?internal_finish_clear@concurrent_queue_base_v3@internal@tbb@@IAEXXZ -?internal_throw_exception@concurrent_queue_base_v3@internal@tbb@@IBEXXZ -?assign@concurrent_queue_base_v3@internal@tbb@@IAEXABV123@@Z - - - -?internal_assign@concurrent_vector_base@internal@tbb@@IAEXABV123@IP6AXPAXI@ZP6AX1PBXI@Z4@Z -?internal_capacity@concurrent_vector_base@internal@tbb@@IBEIXZ -?internal_clear@concurrent_vector_base@internal@tbb@@IAEXP6AXPAXI@Z_N@Z -?internal_copy@concurrent_vector_base@internal@tbb@@IAEXABV123@IP6AXPAXPBXI@Z@Z -?internal_grow_by@concurrent_vector_base@internal@tbb@@IAEIIIP6AXPAXI@Z@Z -?internal_grow_to_at_least@concurrent_vector_base@internal@tbb@@IAEXIIP6AXPAXI@Z@Z -?internal_push_back@concurrent_vector_base@internal@tbb@@IAEPAXIAAI@Z -?internal_reserve@concurrent_vector_base@internal@tbb@@IAEXIII@Z - - - -??1concurrent_vector_base_v3@internal@tbb@@IAE@XZ -?internal_assign@concurrent_vector_base_v3@internal@tbb@@IAEXABV123@IP6AXPAXI@ZP6AX1PBXI@Z4@Z -?internal_capacity@concurrent_vector_base_v3@internal@tbb@@IBEIXZ -?internal_clear@concurrent_vector_base_v3@internal@tbb@@IAEIP6AXPAXI@Z@Z -?internal_copy@concurrent_vector_base_v3@internal@tbb@@IAEXABV123@IP6AXPAXPBXI@Z@Z -?internal_grow_by@concurrent_vector_base_v3@internal@tbb@@IAEIIIP6AXPAXPBXI@Z1@Z -?internal_grow_to_at_least@concurrent_vector_base_v3@internal@tbb@@IAEXIIP6AXPAXPBXI@Z1@Z -?internal_push_back@concurrent_vector_base_v3@internal@tbb@@IAEPAXIAAI@Z -?internal_reserve@concurrent_vector_base_v3@internal@tbb@@IAEXIII@Z -?internal_compact@concurrent_vector_base_v3@internal@tbb@@IAEPAXIPAXP6AX0I@ZP6AX0PBXI@Z@Z -?internal_swap@concurrent_vector_base_v3@internal@tbb@@IAEXAAV123@@Z -?internal_throw_exception@concurrent_vector_base_v3@internal@tbb@@IBEXI@Z -?internal_resize@concurrent_vector_base_v3@internal@tbb@@IAEXIIIPBXP6AXPAXI@ZP6AX10I@Z@Z -?internal_grow_to_at_least_with_result@concurrent_vector_base_v3@internal@tbb@@IAEIIIP6AXPAXPBXI@Z1@Z - - -?join@tbb_thread_v3@internal@tbb@@QAEXXZ -?detach@tbb_thread_v3@internal@tbb@@QAEXXZ -?internal_start@tbb_thread_v3@internal@tbb@@AAEXP6GIPAX@Z0@Z -?allocate_closure_v3@internal@tbb@@YAPAXI@Z -?free_closure_v3@internal@tbb@@YAXPAX@Z -?hardware_concurrency@tbb_thread_v3@internal@tbb@@SAIXZ -?thread_yield_v3@internal@tbb@@YAXXZ -?thread_sleep_v3@internal@tbb@@YAXABVinterval_t@tick_count@2@@Z -?move_v3@internal@tbb@@YAXAAVtbb_thread_v3@12@0@Z -?thread_get_id_v3@internal@tbb@@YA?AVid@tbb_thread_v3@12@XZ - - -?internal_initialize_condition_variable@internal@interface5@tbb@@YAXAATcondvar_impl_t@123@@Z -?internal_condition_variable_wait@internal@interface5@tbb@@YA_NAATcondvar_impl_t@123@PAVmutex@3@PBVinterval_t@tick_count@3@@Z -?internal_condition_variable_notify_one@internal@interface5@tbb@@YAXAATcondvar_impl_t@123@@Z -?internal_condition_variable_notify_all@internal@interface5@tbb@@YAXAATcondvar_impl_t@123@@Z -?internal_destroy_condition_variable@internal@interface5@tbb@@YAXAATcondvar_impl_t@123@@Z - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbb.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbb.lib deleted file mode 100644 index ed3c281a0..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbb.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbb_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbb_debug.lib deleted file mode 100644 index 7eeec76ae..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbb_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbb_preview.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbb_preview.lib deleted file mode 100644 index 023fd1ea1..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbb_preview.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbb_preview_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbb_preview_debug.lib deleted file mode 100644 index 219e55013..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbb_preview_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbbmalloc.def b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbbmalloc.def deleted file mode 100644 index 61a66e5db..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbbmalloc.def +++ /dev/null @@ -1,47 +0,0 @@ - -; Copyright 2005-2014 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. - -EXPORTS - -; frontend.cpp -scalable_calloc -scalable_free -scalable_malloc -scalable_realloc -scalable_posix_memalign -scalable_aligned_malloc -scalable_aligned_realloc -scalable_aligned_free -safer_scalable_free -safer_scalable_realloc -scalable_msize -scalable_allocation_mode -scalable_allocation_command -safer_scalable_msize -safer_scalable_aligned_msize -safer_scalable_aligned_realloc -?pool_create@rml@@YAPAVMemoryPool@1@HPBUMemPoolPolicy@1@@Z -?pool_create_v1@rml@@YA?AW4MemPoolError@1@HPBUMemPoolPolicy@1@PAPAVMemoryPool@1@@Z -?pool_destroy@rml@@YA_NPAVMemoryPool@1@@Z -?pool_malloc@rml@@YAPAXPAVMemoryPool@1@I@Z -?pool_free@rml@@YA_NPAVMemoryPool@1@PAX@Z -?pool_reset@rml@@YA_NPAVMemoryPool@1@@Z -?pool_realloc@rml@@YAPAXPAVMemoryPool@1@PAXI@Z -?pool_aligned_realloc@rml@@YAPAXPAVMemoryPool@1@PAXII@Z -?pool_aligned_malloc@rml@@YAPAXPAVMemoryPool@1@II@Z diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbbmalloc.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbbmalloc.lib deleted file mode 100644 index 827123215..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbbmalloc.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbbmalloc_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbbmalloc_debug.lib deleted file mode 100644 index b26be37cd..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbbmalloc_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbbmalloc_proxy.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbbmalloc_proxy.lib deleted file mode 100644 index 6b32ee9ba..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbbmalloc_proxy.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbbmalloc_proxy_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbbmalloc_proxy_debug.lib deleted file mode 100644 index e0606c3a2..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbbmalloc_proxy_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbbproxy.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbbproxy.lib deleted file mode 100644 index 7d7e5f2a8..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbbproxy.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbbproxy.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbbproxy.pdb deleted file mode 100644 index d98d64300..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbbproxy.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbbproxy_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbbproxy_debug.lib deleted file mode 100644 index bdb5ec773..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbbproxy_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbbproxy_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbbproxy_debug.pdb deleted file mode 100644 index 3a7c7fe4f..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11/tbbproxy_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/irml/irml.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/irml/irml.lib deleted file mode 100644 index f4641531f..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/irml/irml.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/irml/irml_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/irml/irml_debug.lib deleted file mode 100644 index d3f17eab6..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/irml/irml_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbb.def b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbb.def deleted file mode 100644 index ad5dc52f2..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbb.def +++ /dev/null @@ -1,929 +0,0 @@ - -; Copyright 2005-2014 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. - -EXPORTS - - - - - - -; Copyright 2005-2014 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -__TBB_machine_cmpswp8 - - - -__TBB_machine_fetchadd8 - - - -__TBB_machine_fetchstore8 -__TBB_machine_store8 -__TBB_machine_load8 -__TBB_machine_trylockbyte -__TBB_machine_try_lock_elided -__TBB_machine_unlock_elided -__TBB_machine_is_in_transaction - - -?NFS_Allocate@internal@tbb@@YAPAXIIPAX@Z -?NFS_GetLineSize@internal@tbb@@YAIXZ -?NFS_Free@internal@tbb@@YAXPAX@Z -?allocate_via_handler_v3@internal@tbb@@YAPAXI@Z -?deallocate_via_handler_v3@internal@tbb@@YAXPAX@Z -?is_malloc_used_v3@internal@tbb@@YA_NXZ - - -?allocate@allocate_additional_child_of_proxy@internal@tbb@@QBEAAVtask@3@I@Z -?allocate@allocate_child_proxy@internal@tbb@@QBEAAVtask@3@I@Z -?allocate@allocate_continuation_proxy@internal@tbb@@QBEAAVtask@3@I@Z -?allocate@allocate_root_proxy@internal@tbb@@SAAAVtask@3@I@Z -?destroy@task_base@internal@interface5@tbb@@SAXAAVtask@4@@Z -?free@allocate_additional_child_of_proxy@internal@tbb@@QBEXAAVtask@3@@Z -?free@allocate_child_proxy@internal@tbb@@QBEXAAVtask@3@@Z -?free@allocate_continuation_proxy@internal@tbb@@QBEXAAVtask@3@@Z -?free@allocate_root_proxy@internal@tbb@@SAXAAVtask@3@@Z -?internal_set_ref_count@task@tbb@@AAEXH@Z -?internal_decrement_ref_count@task@tbb@@AAEHXZ -?is_owned_by_current_thread@task@tbb@@QBE_NXZ -?note_affinity@task@tbb@@UAEXG@Z -?resize@affinity_partitioner_base_v3@internal@tbb@@AAEXI@Z -?self@task@tbb@@SAAAV12@XZ -?spawn_and_wait_for_all@task@tbb@@QAEXAAVtask_list@2@@Z -?default_num_threads@task_scheduler_init@tbb@@SAHXZ -?initialize@task_scheduler_init@tbb@@QAEXHI@Z -?initialize@task_scheduler_init@tbb@@QAEXH@Z -?terminate@task_scheduler_init@tbb@@QAEXXZ - -?observe@task_scheduler_observer_v3@internal@tbb@@QAEX_N@Z - - - - -?internal_current_slot@task_arena_base@internal@interface7@tbb@@KAHXZ -?internal_initialize@task_arena_base@internal@interface7@tbb@@IAEXXZ -?internal_terminate@task_arena_base@internal@interface7@tbb@@IAEXXZ -?internal_enqueue@task_arena_base@internal@interface7@tbb@@IBEXAAVtask@4@H@Z -?internal_execute@task_arena_base@internal@interface7@tbb@@IBEXAAVdelegate_base@234@@Z -?internal_wait@task_arena_base@internal@interface7@tbb@@IBEXXZ - - - - -?destroy@task@tbb@@QAEXAAV12@@Z - - - - -?allocate@allocate_root_with_context_proxy@internal@tbb@@QBEAAVtask@3@I@Z -?free@allocate_root_with_context_proxy@internal@tbb@@QBEXAAVtask@3@@Z -?change_group@task@tbb@@QAEXAAVtask_group_context@2@@Z -?is_group_execution_cancelled@task_group_context@tbb@@QBE_NXZ -?cancel_group_execution@task_group_context@tbb@@QAE_NXZ -?reset@task_group_context@tbb@@QAEXXZ -?init@task_group_context@tbb@@IAEXXZ -?register_pending_exception@task_group_context@tbb@@QAEXXZ -??1task_group_context@tbb@@QAE@XZ - -?set_priority@task_group_context@tbb@@QAEXW4priority_t@2@@Z -?priority@task_group_context@tbb@@QBE?AW4priority_t@2@XZ - -?name@captured_exception@tbb@@UBEPBDXZ -?what@captured_exception@tbb@@UBEPBDXZ -??1captured_exception@tbb@@UAE@XZ -?move@captured_exception@tbb@@UAEPAV12@XZ -?destroy@captured_exception@tbb@@UAEXXZ -?set@captured_exception@tbb@@QAEXPBD0@Z -?clear@captured_exception@tbb@@QAEXXZ - - - -?throw_bad_last_alloc_exception_v4@internal@tbb@@YAXXZ -?throw_exception_v4@internal@tbb@@YAXW4exception_id@12@@Z -?what@bad_last_alloc@tbb@@UBEPBDXZ -?what@missing_wait@tbb@@UBEPBDXZ -?what@invalid_multiple_scheduling@tbb@@UBEPBDXZ -?what@improper_lock@tbb@@UBEPBDXZ -?what@user_abort@tbb@@UBEPBDXZ - - -?assertion_failure@tbb@@YAXPBDH00@Z -?get_initial_auto_partitioner_divisor@internal@tbb@@YAIXZ -?handle_perror@internal@tbb@@YAXHPBD@Z -?set_assertion_handler@tbb@@YAP6AXPBDH00@ZP6AX0H00@Z@Z -?runtime_warning@internal@tbb@@YAXPBDZZ -TBB_runtime_interface_version - - -?itt_load_pointer_with_acquire_v3@internal@tbb@@YAPAXPBX@Z -?itt_store_pointer_with_release_v3@internal@tbb@@YAXPAX0@Z -?call_itt_notify_v5@internal@tbb@@YAXHPAX@Z -?itt_set_sync_name_v3@internal@tbb@@YAXPAXPB_W@Z -?itt_load_pointer_v3@internal@tbb@@YAPAXPBX@Z - - - - - - - - - -??0pipeline@tbb@@QAE@XZ -??1filter@tbb@@UAE@XZ -??1pipeline@tbb@@UAE@XZ -??_7pipeline@tbb@@6B@ -?add_filter@pipeline@tbb@@QAEXAAVfilter@2@@Z -?clear@pipeline@tbb@@QAEXXZ -?inject_token@pipeline@tbb@@AAEXAAVtask@2@@Z -?run@pipeline@tbb@@QAEXI@Z - -?run@pipeline@tbb@@QAEXIAAVtask_group_context@2@@Z - -?process_item@thread_bound_filter@tbb@@QAE?AW4result_type@12@XZ -?try_process_item@thread_bound_filter@tbb@@QAE?AW4result_type@12@XZ -?set_end_of_input@filter@tbb@@IAEXXZ - - -?internal_construct@queuing_rw_mutex@tbb@@QAEXXZ -?acquire@scoped_lock@queuing_rw_mutex@tbb@@QAEXAAV23@_N@Z -?downgrade_to_reader@scoped_lock@queuing_rw_mutex@tbb@@QAE_NXZ -?release@scoped_lock@queuing_rw_mutex@tbb@@QAEXXZ -?upgrade_to_writer@scoped_lock@queuing_rw_mutex@tbb@@QAE_NXZ -?try_acquire@scoped_lock@queuing_rw_mutex@tbb@@QAE_NAAV23@_N@Z - - -?try_lock_read@reader_writer_lock@interface5@tbb@@QAE_NXZ -?try_lock@reader_writer_lock@interface5@tbb@@QAE_NXZ -?unlock@reader_writer_lock@interface5@tbb@@QAEXXZ -?lock_read@reader_writer_lock@interface5@tbb@@QAEXXZ -?lock@reader_writer_lock@interface5@tbb@@QAEXXZ -?internal_construct@reader_writer_lock@interface5@tbb@@AAEXXZ -?internal_destroy@reader_writer_lock@interface5@tbb@@AAEXXZ -?internal_construct@scoped_lock@reader_writer_lock@interface5@tbb@@AAEXAAV234@@Z -?internal_destroy@scoped_lock@reader_writer_lock@interface5@tbb@@AAEXXZ -?internal_construct@scoped_lock_read@reader_writer_lock@interface5@tbb@@AAEXAAV234@@Z -?internal_destroy@scoped_lock_read@reader_writer_lock@interface5@tbb@@AAEXXZ - - - -?internal_acquire_reader@spin_rw_mutex@tbb@@CAXPAV12@@Z -?internal_acquire_writer@spin_rw_mutex@tbb@@CA_NPAV12@@Z -?internal_downgrade@spin_rw_mutex@tbb@@CAXPAV12@@Z -?internal_itt_releasing@spin_rw_mutex@tbb@@CAXPAV12@@Z -?internal_release_reader@spin_rw_mutex@tbb@@CAXPAV12@@Z -?internal_release_writer@spin_rw_mutex@tbb@@CAXPAV12@@Z -?internal_upgrade@spin_rw_mutex@tbb@@CA_NPAV12@@Z -?internal_try_acquire_writer@spin_rw_mutex@tbb@@CA_NPAV12@@Z -?internal_try_acquire_reader@spin_rw_mutex@tbb@@CA_NPAV12@@Z - - - -?internal_construct@spin_rw_mutex_v3@tbb@@AAEXXZ -?internal_upgrade@spin_rw_mutex_v3@tbb@@AAE_NXZ -?internal_downgrade@spin_rw_mutex_v3@tbb@@AAEXXZ -?internal_acquire_reader@spin_rw_mutex_v3@tbb@@AAEXXZ -?internal_acquire_writer@spin_rw_mutex_v3@tbb@@AAE_NXZ -?internal_release_reader@spin_rw_mutex_v3@tbb@@AAEXXZ -?internal_release_writer@spin_rw_mutex_v3@tbb@@AAEXXZ -?internal_try_acquire_reader@spin_rw_mutex_v3@tbb@@AAE_NXZ -?internal_try_acquire_writer@spin_rw_mutex_v3@tbb@@AAE_NXZ - - - - - - - - - - - - - -?internal_construct@spin_mutex@tbb@@QAEXXZ -?internal_acquire@scoped_lock@spin_mutex@tbb@@AAEXAAV23@@Z -?internal_release@scoped_lock@spin_mutex@tbb@@AAEXXZ -?internal_try_acquire@scoped_lock@spin_mutex@tbb@@AAE_NAAV23@@Z - - -?internal_acquire@scoped_lock@mutex@tbb@@AAEXAAV23@@Z -?internal_release@scoped_lock@mutex@tbb@@AAEXXZ -?internal_try_acquire@scoped_lock@mutex@tbb@@AAE_NAAV23@@Z -?internal_construct@mutex@tbb@@AAEXXZ -?internal_destroy@mutex@tbb@@AAEXXZ - - -?internal_acquire@scoped_lock@recursive_mutex@tbb@@AAEXAAV23@@Z -?internal_release@scoped_lock@recursive_mutex@tbb@@AAEXXZ -?internal_try_acquire@scoped_lock@recursive_mutex@tbb@@AAE_NAAV23@@Z -?internal_construct@recursive_mutex@tbb@@AAEXXZ -?internal_destroy@recursive_mutex@tbb@@AAEXXZ - - -?internal_construct@queuing_mutex@tbb@@QAEXXZ -?acquire@scoped_lock@queuing_mutex@tbb@@QAEXAAV23@@Z -?release@scoped_lock@queuing_mutex@tbb@@QAEXXZ -?try_acquire@scoped_lock@queuing_mutex@tbb@@QAE_NAAV23@@Z - - -?internal_construct@critical_section_v4@internal@tbb@@QAEXXZ - - - -?internal_grow_predicate@hash_map_segment_base@internal@tbb@@QBE_NXZ - - -?advance@concurrent_queue_iterator_base@internal@tbb@@IAEXXZ -?assign@concurrent_queue_iterator_base@internal@tbb@@IAEXABV123@@Z -?internal_size@concurrent_queue_base@internal@tbb@@IBEHXZ -??0concurrent_queue_base@internal@tbb@@IAE@I@Z -??0concurrent_queue_iterator_base@internal@tbb@@IAE@ABVconcurrent_queue_base@12@@Z -??1concurrent_queue_base@internal@tbb@@MAE@XZ -??1concurrent_queue_iterator_base@internal@tbb@@IAE@XZ -?internal_pop@concurrent_queue_base@internal@tbb@@IAEXPAX@Z -?internal_pop_if_present@concurrent_queue_base@internal@tbb@@IAE_NPAX@Z -?internal_push@concurrent_queue_base@internal@tbb@@IAEXPBX@Z -?internal_push_if_not_full@concurrent_queue_base@internal@tbb@@IAE_NPBX@Z -?internal_set_capacity@concurrent_queue_base@internal@tbb@@IAEXHI@Z - - - -??1concurrent_queue_iterator_base_v3@internal@tbb@@IAE@XZ -??0concurrent_queue_iterator_base_v3@internal@tbb@@IAE@ABVconcurrent_queue_base_v3@12@@Z -??0concurrent_queue_iterator_base_v3@internal@tbb@@IAE@ABVconcurrent_queue_base_v3@12@I@Z -?advance@concurrent_queue_iterator_base_v3@internal@tbb@@IAEXXZ -?assign@concurrent_queue_iterator_base_v3@internal@tbb@@IAEXABV123@@Z -??0concurrent_queue_base_v3@internal@tbb@@IAE@I@Z -??1concurrent_queue_base_v3@internal@tbb@@MAE@XZ -?internal_pop@concurrent_queue_base_v3@internal@tbb@@IAEXPAX@Z -?internal_pop_if_present@concurrent_queue_base_v3@internal@tbb@@IAE_NPAX@Z -?internal_abort@concurrent_queue_base_v3@internal@tbb@@IAEXXZ -?internal_push@concurrent_queue_base_v3@internal@tbb@@IAEXPBX@Z -?internal_push_if_not_full@concurrent_queue_base_v3@internal@tbb@@IAE_NPBX@Z -?internal_size@concurrent_queue_base_v3@internal@tbb@@IBEHXZ -?internal_empty@concurrent_queue_base_v3@internal@tbb@@IBE_NXZ -?internal_set_capacity@concurrent_queue_base_v3@internal@tbb@@IAEXHI@Z -?internal_finish_clear@concurrent_queue_base_v3@internal@tbb@@IAEXXZ -?internal_throw_exception@concurrent_queue_base_v3@internal@tbb@@IBEXXZ -?assign@concurrent_queue_base_v3@internal@tbb@@IAEXABV123@@Z - - - -?internal_assign@concurrent_vector_base@internal@tbb@@IAEXABV123@IP6AXPAXI@ZP6AX1PBXI@Z4@Z -?internal_capacity@concurrent_vector_base@internal@tbb@@IBEIXZ -?internal_clear@concurrent_vector_base@internal@tbb@@IAEXP6AXPAXI@Z_N@Z -?internal_copy@concurrent_vector_base@internal@tbb@@IAEXABV123@IP6AXPAXPBXI@Z@Z -?internal_grow_by@concurrent_vector_base@internal@tbb@@IAEIIIP6AXPAXI@Z@Z -?internal_grow_to_at_least@concurrent_vector_base@internal@tbb@@IAEXIIP6AXPAXI@Z@Z -?internal_push_back@concurrent_vector_base@internal@tbb@@IAEPAXIAAI@Z -?internal_reserve@concurrent_vector_base@internal@tbb@@IAEXIII@Z - - - -??1concurrent_vector_base_v3@internal@tbb@@IAE@XZ -?internal_assign@concurrent_vector_base_v3@internal@tbb@@IAEXABV123@IP6AXPAXI@ZP6AX1PBXI@Z4@Z -?internal_capacity@concurrent_vector_base_v3@internal@tbb@@IBEIXZ -?internal_clear@concurrent_vector_base_v3@internal@tbb@@IAEIP6AXPAXI@Z@Z -?internal_copy@concurrent_vector_base_v3@internal@tbb@@IAEXABV123@IP6AXPAXPBXI@Z@Z -?internal_grow_by@concurrent_vector_base_v3@internal@tbb@@IAEIIIP6AXPAXPBXI@Z1@Z -?internal_grow_to_at_least@concurrent_vector_base_v3@internal@tbb@@IAEXIIP6AXPAXPBXI@Z1@Z -?internal_push_back@concurrent_vector_base_v3@internal@tbb@@IAEPAXIAAI@Z -?internal_reserve@concurrent_vector_base_v3@internal@tbb@@IAEXIII@Z -?internal_compact@concurrent_vector_base_v3@internal@tbb@@IAEPAXIPAXP6AX0I@ZP6AX0PBXI@Z@Z -?internal_swap@concurrent_vector_base_v3@internal@tbb@@IAEXAAV123@@Z -?internal_throw_exception@concurrent_vector_base_v3@internal@tbb@@IBEXI@Z -?internal_resize@concurrent_vector_base_v3@internal@tbb@@IAEXIIIPBXP6AXPAXI@ZP6AX10I@Z@Z -?internal_grow_to_at_least_with_result@concurrent_vector_base_v3@internal@tbb@@IAEIIIP6AXPAXPBXI@Z1@Z - - -?join@tbb_thread_v3@internal@tbb@@QAEXXZ -?detach@tbb_thread_v3@internal@tbb@@QAEXXZ -?internal_start@tbb_thread_v3@internal@tbb@@AAEXP6GIPAX@Z0@Z -?allocate_closure_v3@internal@tbb@@YAPAXI@Z -?free_closure_v3@internal@tbb@@YAXPAX@Z -?hardware_concurrency@tbb_thread_v3@internal@tbb@@SAIXZ -?thread_yield_v3@internal@tbb@@YAXXZ -?thread_sleep_v3@internal@tbb@@YAXABVinterval_t@tick_count@2@@Z -?move_v3@internal@tbb@@YAXAAVtbb_thread_v3@12@0@Z -?thread_get_id_v3@internal@tbb@@YA?AVid@tbb_thread_v3@12@XZ - - -?internal_initialize_condition_variable@internal@interface5@tbb@@YAXAATcondvar_impl_t@123@@Z -?internal_condition_variable_wait@internal@interface5@tbb@@YA_NAATcondvar_impl_t@123@PAVmutex@3@PBVinterval_t@tick_count@3@@Z -?internal_condition_variable_notify_one@internal@interface5@tbb@@YAXAATcondvar_impl_t@123@@Z -?internal_condition_variable_notify_all@internal@interface5@tbb@@YAXAATcondvar_impl_t@123@@Z -?internal_destroy_condition_variable@internal@interface5@tbb@@YAXAATcondvar_impl_t@123@@Z - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbb.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbb.lib deleted file mode 100644 index ad9223f1a..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbb.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbb_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbb_debug.lib deleted file mode 100644 index 7db36c6c2..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbb_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbb_preview.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbb_preview.lib deleted file mode 100644 index 9c4229d06..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbb_preview.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbb_preview_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbb_preview_debug.lib deleted file mode 100644 index 15bf0855c..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbb_preview_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbbmalloc.def b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbbmalloc.def deleted file mode 100644 index 61a66e5db..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbbmalloc.def +++ /dev/null @@ -1,47 +0,0 @@ - -; Copyright 2005-2014 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. - -EXPORTS - -; frontend.cpp -scalable_calloc -scalable_free -scalable_malloc -scalable_realloc -scalable_posix_memalign -scalable_aligned_malloc -scalable_aligned_realloc -scalable_aligned_free -safer_scalable_free -safer_scalable_realloc -scalable_msize -scalable_allocation_mode -scalable_allocation_command -safer_scalable_msize -safer_scalable_aligned_msize -safer_scalable_aligned_realloc -?pool_create@rml@@YAPAVMemoryPool@1@HPBUMemPoolPolicy@1@@Z -?pool_create_v1@rml@@YA?AW4MemPoolError@1@HPBUMemPoolPolicy@1@PAPAVMemoryPool@1@@Z -?pool_destroy@rml@@YA_NPAVMemoryPool@1@@Z -?pool_malloc@rml@@YAPAXPAVMemoryPool@1@I@Z -?pool_free@rml@@YA_NPAVMemoryPool@1@PAX@Z -?pool_reset@rml@@YA_NPAVMemoryPool@1@@Z -?pool_realloc@rml@@YAPAXPAVMemoryPool@1@PAXI@Z -?pool_aligned_realloc@rml@@YAPAXPAVMemoryPool@1@PAXII@Z -?pool_aligned_malloc@rml@@YAPAXPAVMemoryPool@1@II@Z diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbbmalloc.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbbmalloc.lib deleted file mode 100644 index 4b5fe069d..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbbmalloc.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbbmalloc_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbbmalloc_debug.lib deleted file mode 100644 index edcf9c525..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbbmalloc_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbbmalloc_proxy.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbbmalloc_proxy.lib deleted file mode 100644 index d890e6d05..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbbmalloc_proxy.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbbmalloc_proxy_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbbmalloc_proxy_debug.lib deleted file mode 100644 index ef144fb89..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbbmalloc_proxy_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbbproxy.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbbproxy.lib deleted file mode 100644 index 9c159e103..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbbproxy.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbbproxy.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbbproxy.pdb deleted file mode 100644 index a4974152b..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbbproxy.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbbproxy_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbbproxy_debug.lib deleted file mode 100644 index a3cb7700d..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbbproxy_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbbproxy_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbbproxy_debug.pdb deleted file mode 100644 index 02b28d01c..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc11_ui/tbbproxy_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/irml/irml.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/irml/irml.lib deleted file mode 100644 index 05d537de9..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/irml/irml.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/irml/irml_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/irml/irml_debug.lib deleted file mode 100644 index 05e52a96c..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/irml/irml_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbb.def b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbb.def deleted file mode 100644 index c0ecb82c9..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbb.def +++ /dev/null @@ -1,929 +0,0 @@ - -; Copyright 2005-2014 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. - -EXPORTS - - - - - - -; Copyright 2005-2014 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -__TBB_machine_cmpswp8 - - - -__TBB_machine_fetchadd8 - - - -__TBB_machine_fetchstore8 -__TBB_machine_store8 -__TBB_machine_load8 -__TBB_machine_trylockbyte -__TBB_machine_try_lock_elided -__TBB_machine_unlock_elided -__TBB_machine_is_in_transaction - - -?NFS_Allocate@internal@tbb@@YAPAXIIPAX@Z -?NFS_GetLineSize@internal@tbb@@YAIXZ -?NFS_Free@internal@tbb@@YAXPAX@Z -?allocate_via_handler_v3@internal@tbb@@YAPAXI@Z -?deallocate_via_handler_v3@internal@tbb@@YAXPAX@Z -?is_malloc_used_v3@internal@tbb@@YA_NXZ - - -?allocate@allocate_additional_child_of_proxy@internal@tbb@@QBEAAVtask@3@I@Z -?allocate@allocate_child_proxy@internal@tbb@@QBEAAVtask@3@I@Z -?allocate@allocate_continuation_proxy@internal@tbb@@QBEAAVtask@3@I@Z -?allocate@allocate_root_proxy@internal@tbb@@SAAAVtask@3@I@Z -?destroy@task_base@internal@interface5@tbb@@SAXAAVtask@4@@Z -?free@allocate_additional_child_of_proxy@internal@tbb@@QBEXAAVtask@3@@Z -?free@allocate_child_proxy@internal@tbb@@QBEXAAVtask@3@@Z -?free@allocate_continuation_proxy@internal@tbb@@QBEXAAVtask@3@@Z -?free@allocate_root_proxy@internal@tbb@@SAXAAVtask@3@@Z -?internal_set_ref_count@task@tbb@@AAEXH@Z -?internal_decrement_ref_count@task@tbb@@AAEHXZ -?is_owned_by_current_thread@task@tbb@@QBE_NXZ -?note_affinity@task@tbb@@UAEXG@Z -?resize@affinity_partitioner_base_v3@internal@tbb@@AAEXI@Z -?self@task@tbb@@SAAAV12@XZ -?spawn_and_wait_for_all@task@tbb@@QAEXAAVtask_list@2@@Z -?default_num_threads@task_scheduler_init@tbb@@SAHXZ -?initialize@task_scheduler_init@tbb@@QAEXHI@Z -?initialize@task_scheduler_init@tbb@@QAEXH@Z -?terminate@task_scheduler_init@tbb@@QAEXXZ - -?observe@task_scheduler_observer_v3@internal@tbb@@QAEX_N@Z - - - - -?internal_current_slot@task_arena_base@internal@interface7@tbb@@KAHXZ -?internal_initialize@task_arena_base@internal@interface7@tbb@@IAEXXZ -?internal_terminate@task_arena_base@internal@interface7@tbb@@IAEXXZ -?internal_enqueue@task_arena_base@internal@interface7@tbb@@IBEXAAVtask@4@H@Z -?internal_execute@task_arena_base@internal@interface7@tbb@@IBEXAAVdelegate_base@234@@Z -?internal_wait@task_arena_base@internal@interface7@tbb@@IBEXXZ - - - - -?destroy@task@tbb@@QAEXAAV12@@Z - - - - -?allocate@allocate_root_with_context_proxy@internal@tbb@@QBEAAVtask@3@I@Z -?free@allocate_root_with_context_proxy@internal@tbb@@QBEXAAVtask@3@@Z -?change_group@task@tbb@@QAEXAAVtask_group_context@2@@Z -?is_group_execution_cancelled@task_group_context@tbb@@QBE_NXZ -?cancel_group_execution@task_group_context@tbb@@QAE_NXZ -?reset@task_group_context@tbb@@QAEXXZ -?init@task_group_context@tbb@@IAEXXZ -?register_pending_exception@task_group_context@tbb@@QAEXXZ -??1task_group_context@tbb@@QAE@XZ - -?set_priority@task_group_context@tbb@@QAEXW4priority_t@2@@Z -?priority@task_group_context@tbb@@QBE?AW4priority_t@2@XZ - -?name@captured_exception@tbb@@UBEPBDXZ -?what@captured_exception@tbb@@UBEPBDXZ -??1captured_exception@tbb@@UAE@XZ -?move@captured_exception@tbb@@UAEPAV12@XZ -?destroy@captured_exception@tbb@@UAEXXZ -?set@captured_exception@tbb@@QAEXPBD0@Z -?clear@captured_exception@tbb@@QAEXXZ - - - -?throw_bad_last_alloc_exception_v4@internal@tbb@@YAXXZ -?throw_exception_v4@internal@tbb@@YAXW4exception_id@12@@Z -?what@bad_last_alloc@tbb@@UBEPBDXZ -?what@missing_wait@tbb@@UBEPBDXZ -?what@invalid_multiple_scheduling@tbb@@UBEPBDXZ -?what@improper_lock@tbb@@UBEPBDXZ -?what@user_abort@tbb@@UBEPBDXZ - - -?assertion_failure@tbb@@YAXPBDH00@Z -?get_initial_auto_partitioner_divisor@internal@tbb@@YAIXZ -?handle_perror@internal@tbb@@YAXHPBD@Z -?set_assertion_handler@tbb@@YAP6AXPBDH00@ZP6AX0H00@Z@Z -?runtime_warning@internal@tbb@@YAXPBDZZ -TBB_runtime_interface_version - - -?itt_load_pointer_with_acquire_v3@internal@tbb@@YAPAXPBX@Z -?itt_store_pointer_with_release_v3@internal@tbb@@YAXPAX0@Z -?call_itt_notify_v5@internal@tbb@@YAXHPAX@Z -?itt_set_sync_name_v3@internal@tbb@@YAXPAXPB_W@Z -?itt_load_pointer_v3@internal@tbb@@YAPAXPBX@Z - - - - - - - - - -??0pipeline@tbb@@QAE@XZ -??1filter@tbb@@UAE@XZ -??1pipeline@tbb@@UAE@XZ -??_7pipeline@tbb@@6B@ -?add_filter@pipeline@tbb@@QAEXAAVfilter@2@@Z -?clear@pipeline@tbb@@QAEXXZ -?inject_token@pipeline@tbb@@AAEXAAVtask@2@@Z -?run@pipeline@tbb@@QAEXI@Z - -?run@pipeline@tbb@@QAEXIAAVtask_group_context@2@@Z - -?process_item@thread_bound_filter@tbb@@QAE?AW4result_type@12@XZ -?try_process_item@thread_bound_filter@tbb@@QAE?AW4result_type@12@XZ -?set_end_of_input@filter@tbb@@IAEXXZ - - -?internal_construct@queuing_rw_mutex@tbb@@QAEXXZ -?acquire@scoped_lock@queuing_rw_mutex@tbb@@QAEXAAV23@_N@Z -?downgrade_to_reader@scoped_lock@queuing_rw_mutex@tbb@@QAE_NXZ -?release@scoped_lock@queuing_rw_mutex@tbb@@QAEXXZ -?upgrade_to_writer@scoped_lock@queuing_rw_mutex@tbb@@QAE_NXZ -?try_acquire@scoped_lock@queuing_rw_mutex@tbb@@QAE_NAAV23@_N@Z - - -?try_lock_read@reader_writer_lock@interface5@tbb@@QAE_NXZ -?try_lock@reader_writer_lock@interface5@tbb@@QAE_NXZ -?unlock@reader_writer_lock@interface5@tbb@@QAEXXZ -?lock_read@reader_writer_lock@interface5@tbb@@QAEXXZ -?lock@reader_writer_lock@interface5@tbb@@QAEXXZ -?internal_construct@reader_writer_lock@interface5@tbb@@AAEXXZ -?internal_destroy@reader_writer_lock@interface5@tbb@@AAEXXZ -?internal_construct@scoped_lock@reader_writer_lock@interface5@tbb@@AAEXAAV234@@Z -?internal_destroy@scoped_lock@reader_writer_lock@interface5@tbb@@AAEXXZ -?internal_construct@scoped_lock_read@reader_writer_lock@interface5@tbb@@AAEXAAV234@@Z -?internal_destroy@scoped_lock_read@reader_writer_lock@interface5@tbb@@AAEXXZ - - - -?internal_acquire_reader@spin_rw_mutex@tbb@@CAXPAV12@@Z -?internal_acquire_writer@spin_rw_mutex@tbb@@CA_NPAV12@@Z -?internal_downgrade@spin_rw_mutex@tbb@@CAXPAV12@@Z -?internal_itt_releasing@spin_rw_mutex@tbb@@CAXPAV12@@Z -?internal_release_reader@spin_rw_mutex@tbb@@CAXPAV12@@Z -?internal_release_writer@spin_rw_mutex@tbb@@CAXPAV12@@Z -?internal_upgrade@spin_rw_mutex@tbb@@CA_NPAV12@@Z -?internal_try_acquire_writer@spin_rw_mutex@tbb@@CA_NPAV12@@Z -?internal_try_acquire_reader@spin_rw_mutex@tbb@@CA_NPAV12@@Z - - - -?internal_construct@spin_rw_mutex_v3@tbb@@AAEXXZ -?internal_upgrade@spin_rw_mutex_v3@tbb@@AAE_NXZ -?internal_downgrade@spin_rw_mutex_v3@tbb@@AAEXXZ -?internal_acquire_reader@spin_rw_mutex_v3@tbb@@AAEXXZ -?internal_acquire_writer@spin_rw_mutex_v3@tbb@@AAE_NXZ -?internal_release_reader@spin_rw_mutex_v3@tbb@@AAEXXZ -?internal_release_writer@spin_rw_mutex_v3@tbb@@AAEXXZ -?internal_try_acquire_reader@spin_rw_mutex_v3@tbb@@AAE_NXZ -?internal_try_acquire_writer@spin_rw_mutex_v3@tbb@@AAE_NXZ - - - - - - - - - - - - - -?internal_construct@spin_mutex@tbb@@QAEXXZ -?internal_acquire@scoped_lock@spin_mutex@tbb@@AAEXAAV23@@Z -?internal_release@scoped_lock@spin_mutex@tbb@@AAEXXZ -?internal_try_acquire@scoped_lock@spin_mutex@tbb@@AAE_NAAV23@@Z - - -?internal_acquire@scoped_lock@mutex@tbb@@AAEXAAV23@@Z -?internal_release@scoped_lock@mutex@tbb@@AAEXXZ -?internal_try_acquire@scoped_lock@mutex@tbb@@AAE_NAAV23@@Z -?internal_construct@mutex@tbb@@AAEXXZ -?internal_destroy@mutex@tbb@@AAEXXZ - - -?internal_acquire@scoped_lock@recursive_mutex@tbb@@AAEXAAV23@@Z -?internal_release@scoped_lock@recursive_mutex@tbb@@AAEXXZ -?internal_try_acquire@scoped_lock@recursive_mutex@tbb@@AAE_NAAV23@@Z -?internal_construct@recursive_mutex@tbb@@AAEXXZ -?internal_destroy@recursive_mutex@tbb@@AAEXXZ - - -?internal_construct@queuing_mutex@tbb@@QAEXXZ -?acquire@scoped_lock@queuing_mutex@tbb@@QAEXAAV23@@Z -?release@scoped_lock@queuing_mutex@tbb@@QAEXXZ -?try_acquire@scoped_lock@queuing_mutex@tbb@@QAE_NAAV23@@Z - - -?internal_construct@critical_section_v4@internal@tbb@@QAEXXZ - - - -?internal_grow_predicate@hash_map_segment_base@internal@tbb@@QBE_NXZ - - -?advance@concurrent_queue_iterator_base@internal@tbb@@IAEXXZ -?assign@concurrent_queue_iterator_base@internal@tbb@@IAEXABV123@@Z -?internal_size@concurrent_queue_base@internal@tbb@@IBEHXZ -??0concurrent_queue_base@internal@tbb@@IAE@I@Z -??0concurrent_queue_iterator_base@internal@tbb@@IAE@ABVconcurrent_queue_base@12@@Z -??1concurrent_queue_base@internal@tbb@@MAE@XZ -??1concurrent_queue_iterator_base@internal@tbb@@IAE@XZ -?internal_pop@concurrent_queue_base@internal@tbb@@IAEXPAX@Z -?internal_pop_if_present@concurrent_queue_base@internal@tbb@@IAE_NPAX@Z -?internal_push@concurrent_queue_base@internal@tbb@@IAEXPBX@Z -?internal_push_if_not_full@concurrent_queue_base@internal@tbb@@IAE_NPBX@Z -?internal_set_capacity@concurrent_queue_base@internal@tbb@@IAEXHI@Z - - - -??1concurrent_queue_iterator_base_v3@internal@tbb@@IAE@XZ -??0concurrent_queue_iterator_base_v3@internal@tbb@@IAE@ABVconcurrent_queue_base_v3@12@@Z -??0concurrent_queue_iterator_base_v3@internal@tbb@@IAE@ABVconcurrent_queue_base_v3@12@I@Z -?advance@concurrent_queue_iterator_base_v3@internal@tbb@@IAEXXZ -?assign@concurrent_queue_iterator_base_v3@internal@tbb@@IAEXABV123@@Z -??0concurrent_queue_base_v3@internal@tbb@@IAE@I@Z -??1concurrent_queue_base_v3@internal@tbb@@MAE@XZ -?internal_pop@concurrent_queue_base_v3@internal@tbb@@IAEXPAX@Z -?internal_pop_if_present@concurrent_queue_base_v3@internal@tbb@@IAE_NPAX@Z -?internal_abort@concurrent_queue_base_v3@internal@tbb@@IAEXXZ -?internal_push@concurrent_queue_base_v3@internal@tbb@@IAEXPBX@Z -?internal_push_if_not_full@concurrent_queue_base_v3@internal@tbb@@IAE_NPBX@Z -?internal_size@concurrent_queue_base_v3@internal@tbb@@IBEHXZ -?internal_empty@concurrent_queue_base_v3@internal@tbb@@IBE_NXZ -?internal_set_capacity@concurrent_queue_base_v3@internal@tbb@@IAEXHI@Z -?internal_finish_clear@concurrent_queue_base_v3@internal@tbb@@IAEXXZ -?internal_throw_exception@concurrent_queue_base_v3@internal@tbb@@IBEXXZ -?assign@concurrent_queue_base_v3@internal@tbb@@IAEXABV123@@Z - - - -?internal_assign@concurrent_vector_base@internal@tbb@@IAEXABV123@IP6AXPAXI@ZP6AX1PBXI@Z4@Z -?internal_capacity@concurrent_vector_base@internal@tbb@@IBEIXZ -?internal_clear@concurrent_vector_base@internal@tbb@@IAEXP6AXPAXI@Z_N@Z -?internal_copy@concurrent_vector_base@internal@tbb@@IAEXABV123@IP6AXPAXPBXI@Z@Z -?internal_grow_by@concurrent_vector_base@internal@tbb@@IAEIIIP6AXPAXI@Z@Z -?internal_grow_to_at_least@concurrent_vector_base@internal@tbb@@IAEXIIP6AXPAXI@Z@Z -?internal_push_back@concurrent_vector_base@internal@tbb@@IAEPAXIAAI@Z -?internal_reserve@concurrent_vector_base@internal@tbb@@IAEXIII@Z - - - -??1concurrent_vector_base_v3@internal@tbb@@IAE@XZ -?internal_assign@concurrent_vector_base_v3@internal@tbb@@IAEXABV123@IP6AXPAXI@ZP6AX1PBXI@Z4@Z -?internal_capacity@concurrent_vector_base_v3@internal@tbb@@IBEIXZ -?internal_clear@concurrent_vector_base_v3@internal@tbb@@IAEIP6AXPAXI@Z@Z -?internal_copy@concurrent_vector_base_v3@internal@tbb@@IAEXABV123@IP6AXPAXPBXI@Z@Z -?internal_grow_by@concurrent_vector_base_v3@internal@tbb@@IAEIIIP6AXPAXPBXI@Z1@Z -?internal_grow_to_at_least@concurrent_vector_base_v3@internal@tbb@@IAEXIIP6AXPAXPBXI@Z1@Z -?internal_push_back@concurrent_vector_base_v3@internal@tbb@@IAEPAXIAAI@Z -?internal_reserve@concurrent_vector_base_v3@internal@tbb@@IAEXIII@Z -?internal_compact@concurrent_vector_base_v3@internal@tbb@@IAEPAXIPAXP6AX0I@ZP6AX0PBXI@Z@Z -?internal_swap@concurrent_vector_base_v3@internal@tbb@@IAEXAAV123@@Z -?internal_throw_exception@concurrent_vector_base_v3@internal@tbb@@IBEXI@Z -?internal_resize@concurrent_vector_base_v3@internal@tbb@@IAEXIIIPBXP6AXPAXI@ZP6AX10I@Z@Z -?internal_grow_to_at_least_with_result@concurrent_vector_base_v3@internal@tbb@@IAEIIIP6AXPAXPBXI@Z1@Z - - -?join@tbb_thread_v3@internal@tbb@@QAEXXZ -?detach@tbb_thread_v3@internal@tbb@@QAEXXZ -?internal_start@tbb_thread_v3@internal@tbb@@AAEXP6GIPAX@Z0@Z -?allocate_closure_v3@internal@tbb@@YAPAXI@Z -?free_closure_v3@internal@tbb@@YAXPAX@Z -?hardware_concurrency@tbb_thread_v3@internal@tbb@@SAIXZ -?thread_yield_v3@internal@tbb@@YAXXZ -?thread_sleep_v3@internal@tbb@@YAXABVinterval_t@tick_count@2@@Z -?move_v3@internal@tbb@@YAXAAVtbb_thread_v3@12@0@Z -?thread_get_id_v3@internal@tbb@@YA?AVid@tbb_thread_v3@12@XZ - - -?internal_initialize_condition_variable@internal@interface5@tbb@@YAXAATcondvar_impl_t@123@@Z -?internal_condition_variable_wait@internal@interface5@tbb@@YA_NAATcondvar_impl_t@123@PAVmutex@3@PBVinterval_t@tick_count@3@@Z -?internal_condition_variable_notify_one@internal@interface5@tbb@@YAXAATcondvar_impl_t@123@@Z -?internal_condition_variable_notify_all@internal@interface5@tbb@@YAXAATcondvar_impl_t@123@@Z -?internal_destroy_condition_variable@internal@interface5@tbb@@YAXAATcondvar_impl_t@123@@Z - - - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbb.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbb.lib deleted file mode 100644 index 260028051..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbb.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbb_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbb_debug.lib deleted file mode 100644 index cb051615f..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbb_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbb_preview.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbb_preview.lib deleted file mode 100644 index 721ed1946..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbb_preview.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbb_preview_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbb_preview_debug.lib deleted file mode 100644 index 249c403e0..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbb_preview_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbbmalloc.def b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbbmalloc.def deleted file mode 100644 index 61a66e5db..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbbmalloc.def +++ /dev/null @@ -1,47 +0,0 @@ - -; Copyright 2005-2014 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. - -EXPORTS - -; frontend.cpp -scalable_calloc -scalable_free -scalable_malloc -scalable_realloc -scalable_posix_memalign -scalable_aligned_malloc -scalable_aligned_realloc -scalable_aligned_free -safer_scalable_free -safer_scalable_realloc -scalable_msize -scalable_allocation_mode -scalable_allocation_command -safer_scalable_msize -safer_scalable_aligned_msize -safer_scalable_aligned_realloc -?pool_create@rml@@YAPAVMemoryPool@1@HPBUMemPoolPolicy@1@@Z -?pool_create_v1@rml@@YA?AW4MemPoolError@1@HPBUMemPoolPolicy@1@PAPAVMemoryPool@1@@Z -?pool_destroy@rml@@YA_NPAVMemoryPool@1@@Z -?pool_malloc@rml@@YAPAXPAVMemoryPool@1@I@Z -?pool_free@rml@@YA_NPAVMemoryPool@1@PAX@Z -?pool_reset@rml@@YA_NPAVMemoryPool@1@@Z -?pool_realloc@rml@@YAPAXPAVMemoryPool@1@PAXI@Z -?pool_aligned_realloc@rml@@YAPAXPAVMemoryPool@1@PAXII@Z -?pool_aligned_malloc@rml@@YAPAXPAVMemoryPool@1@II@Z diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbbmalloc.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbbmalloc.lib deleted file mode 100644 index b79595294..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbbmalloc.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbbmalloc_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbbmalloc_debug.lib deleted file mode 100644 index 85c9d453b..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbbmalloc_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbbmalloc_proxy.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbbmalloc_proxy.lib deleted file mode 100644 index 564b44631..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbbmalloc_proxy.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbbmalloc_proxy_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbbmalloc_proxy_debug.lib deleted file mode 100644 index 21434ab8b..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbbmalloc_proxy_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbbproxy.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbbproxy.lib deleted file mode 100644 index a41d9d66a..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbbproxy.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbbproxy.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbbproxy.pdb deleted file mode 100644 index 54ed9e2c3..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbbproxy.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbbproxy_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbbproxy_debug.lib deleted file mode 100644 index aeefd7878..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbbproxy_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbbproxy_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbbproxy_debug.pdb deleted file mode 100644 index 21d7840de..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc12/tbbproxy_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/irml/irml.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/irml/irml.lib deleted file mode 100644 index 3135f2063..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/irml/irml.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/irml/irml_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/irml/irml_debug.lib deleted file mode 100644 index b89b7279c..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/irml/irml_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbb.def b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbb.def deleted file mode 100644 index 20873bdd7..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbb.def +++ /dev/null @@ -1,475 +0,0 @@ -; Copyright 2005-2014 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. - -EXPORTS - -; Copyright 2005-2014 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -__TBB_machine_cmpswp8 - - - -__TBB_machine_fetchadd8 - - - -__TBB_machine_fetchstore8 -__TBB_machine_store8 -__TBB_machine_load8 -__TBB_machine_trylockbyte -__TBB_machine_try_lock_elided -__TBB_machine_unlock_elided -__TBB_machine_is_in_transaction - - -?NFS_Allocate@internal@tbb@@YAPAXIIPAX@Z -?NFS_GetLineSize@internal@tbb@@YAIXZ -?NFS_Free@internal@tbb@@YAXPAX@Z -?allocate_via_handler_v3@internal@tbb@@YAPAXI@Z -?deallocate_via_handler_v3@internal@tbb@@YAXPAX@Z -?is_malloc_used_v3@internal@tbb@@YA_NXZ - - -?allocate@allocate_additional_child_of_proxy@internal@tbb@@QBEAAVtask@3@I@Z -?allocate@allocate_child_proxy@internal@tbb@@QBEAAVtask@3@I@Z -?allocate@allocate_continuation_proxy@internal@tbb@@QBEAAVtask@3@I@Z -?allocate@allocate_root_proxy@internal@tbb@@SAAAVtask@3@I@Z -?destroy@task_base@internal@interface5@tbb@@SAXAAVtask@4@@Z -?free@allocate_additional_child_of_proxy@internal@tbb@@QBEXAAVtask@3@@Z -?free@allocate_child_proxy@internal@tbb@@QBEXAAVtask@3@@Z -?free@allocate_continuation_proxy@internal@tbb@@QBEXAAVtask@3@@Z -?free@allocate_root_proxy@internal@tbb@@SAXAAVtask@3@@Z -?internal_set_ref_count@task@tbb@@AAEXH@Z -?internal_decrement_ref_count@task@tbb@@AAEHXZ -?is_owned_by_current_thread@task@tbb@@QBE_NXZ -?note_affinity@task@tbb@@UAEXG@Z -?resize@affinity_partitioner_base_v3@internal@tbb@@AAEXI@Z -?self@task@tbb@@SAAAV12@XZ -?spawn_and_wait_for_all@task@tbb@@QAEXAAVtask_list@2@@Z -?default_num_threads@task_scheduler_init@tbb@@SAHXZ -?initialize@task_scheduler_init@tbb@@QAEXHI@Z -?initialize@task_scheduler_init@tbb@@QAEXH@Z -?terminate@task_scheduler_init@tbb@@QAEXXZ -?observe@task_scheduler_observer_v3@internal@tbb@@QAEX_N@Z - - -?internal_current_slot@task_arena_base@internal@interface7@tbb@@KAHXZ -?internal_initialize@task_arena_base@internal@interface7@tbb@@IAEXXZ -?internal_terminate@task_arena_base@internal@interface7@tbb@@IAEXXZ -?internal_enqueue@task_arena_base@internal@interface7@tbb@@IBEXAAVtask@4@H@Z -?internal_execute@task_arena_base@internal@interface7@tbb@@IBEXAAVdelegate_base@234@@Z -?internal_wait@task_arena_base@internal@interface7@tbb@@IBEXXZ - - -?destroy@task@tbb@@QAEXAAV12@@Z - - -?allocate@allocate_root_with_context_proxy@internal@tbb@@QBEAAVtask@3@I@Z -?free@allocate_root_with_context_proxy@internal@tbb@@QBEXAAVtask@3@@Z -?change_group@task@tbb@@QAEXAAVtask_group_context@2@@Z -?is_group_execution_cancelled@task_group_context@tbb@@QBE_NXZ -?cancel_group_execution@task_group_context@tbb@@QAE_NXZ -?reset@task_group_context@tbb@@QAEXXZ -?init@task_group_context@tbb@@IAEXXZ -?register_pending_exception@task_group_context@tbb@@QAEXXZ -??1task_group_context@tbb@@QAE@XZ -?set_priority@task_group_context@tbb@@QAEXW4priority_t@2@@Z -?priority@task_group_context@tbb@@QBE?AW4priority_t@2@XZ -?name@captured_exception@tbb@@UBEPBDXZ -?what@captured_exception@tbb@@UBEPBDXZ -??1captured_exception@tbb@@UAE@XZ -?move@captured_exception@tbb@@UAEPAV12@XZ -?destroy@captured_exception@tbb@@UAEXXZ -?set@captured_exception@tbb@@QAEXPBD0@Z -?clear@captured_exception@tbb@@QAEXXZ - - -?throw_bad_last_alloc_exception_v4@internal@tbb@@YAXXZ -?throw_exception_v4@internal@tbb@@YAXW4exception_id@12@@Z -?what@bad_last_alloc@tbb@@UBEPBDXZ -?what@missing_wait@tbb@@UBEPBDXZ -?what@invalid_multiple_scheduling@tbb@@UBEPBDXZ -?what@improper_lock@tbb@@UBEPBDXZ -?what@user_abort@tbb@@UBEPBDXZ - - -?assertion_failure@tbb@@YAXPBDH00@Z -?get_initial_auto_partitioner_divisor@internal@tbb@@YAIXZ -?handle_perror@internal@tbb@@YAXHPBD@Z -?set_assertion_handler@tbb@@YAP6AXPBDH00@ZP6AX0H00@Z@Z -?runtime_warning@internal@tbb@@YAXPBDZZ -TBB_runtime_interface_version - - -?itt_load_pointer_with_acquire_v3@internal@tbb@@YAPAXPBX@Z -?itt_store_pointer_with_release_v3@internal@tbb@@YAXPAX0@Z -?call_itt_notify_v5@internal@tbb@@YAXHPAX@Z -?itt_set_sync_name_v3@internal@tbb@@YAXPAXPB_W@Z -?itt_load_pointer_v3@internal@tbb@@YAPAXPBX@Z - - -??0pipeline@tbb@@QAE@XZ -??1filter@tbb@@UAE@XZ -??1pipeline@tbb@@UAE@XZ -??_7pipeline@tbb@@6B@ -?add_filter@pipeline@tbb@@QAEXAAVfilter@2@@Z -?clear@pipeline@tbb@@QAEXXZ -?inject_token@pipeline@tbb@@AAEXAAVtask@2@@Z -?run@pipeline@tbb@@QAEXI@Z -?run@pipeline@tbb@@QAEXIAAVtask_group_context@2@@Z -?process_item@thread_bound_filter@tbb@@QAE?AW4result_type@12@XZ -?try_process_item@thread_bound_filter@tbb@@QAE?AW4result_type@12@XZ -?set_end_of_input@filter@tbb@@IAEXXZ - - -?internal_construct@queuing_rw_mutex@tbb@@QAEXXZ -?acquire@scoped_lock@queuing_rw_mutex@tbb@@QAEXAAV23@_N@Z -?downgrade_to_reader@scoped_lock@queuing_rw_mutex@tbb@@QAE_NXZ -?release@scoped_lock@queuing_rw_mutex@tbb@@QAEXXZ -?upgrade_to_writer@scoped_lock@queuing_rw_mutex@tbb@@QAE_NXZ -?try_acquire@scoped_lock@queuing_rw_mutex@tbb@@QAE_NAAV23@_N@Z - - -?try_lock_read@reader_writer_lock@interface5@tbb@@QAE_NXZ -?try_lock@reader_writer_lock@interface5@tbb@@QAE_NXZ -?unlock@reader_writer_lock@interface5@tbb@@QAEXXZ -?lock_read@reader_writer_lock@interface5@tbb@@QAEXXZ -?lock@reader_writer_lock@interface5@tbb@@QAEXXZ -?internal_construct@reader_writer_lock@interface5@tbb@@AAEXXZ -?internal_destroy@reader_writer_lock@interface5@tbb@@AAEXXZ -?internal_construct@scoped_lock@reader_writer_lock@interface5@tbb@@AAEXAAV234@@Z -?internal_destroy@scoped_lock@reader_writer_lock@interface5@tbb@@AAEXXZ -?internal_construct@scoped_lock_read@reader_writer_lock@interface5@tbb@@AAEXAAV234@@Z -?internal_destroy@scoped_lock_read@reader_writer_lock@interface5@tbb@@AAEXXZ - - -?internal_acquire_reader@spin_rw_mutex@tbb@@CAXPAV12@@Z -?internal_acquire_writer@spin_rw_mutex@tbb@@CA_NPAV12@@Z -?internal_downgrade@spin_rw_mutex@tbb@@CAXPAV12@@Z -?internal_itt_releasing@spin_rw_mutex@tbb@@CAXPAV12@@Z -?internal_release_reader@spin_rw_mutex@tbb@@CAXPAV12@@Z -?internal_release_writer@spin_rw_mutex@tbb@@CAXPAV12@@Z -?internal_upgrade@spin_rw_mutex@tbb@@CA_NPAV12@@Z -?internal_try_acquire_writer@spin_rw_mutex@tbb@@CA_NPAV12@@Z -?internal_try_acquire_reader@spin_rw_mutex@tbb@@CA_NPAV12@@Z - - -?internal_construct@spin_rw_mutex_v3@tbb@@AAEXXZ -?internal_upgrade@spin_rw_mutex_v3@tbb@@AAE_NXZ -?internal_downgrade@spin_rw_mutex_v3@tbb@@AAEXXZ -?internal_acquire_reader@spin_rw_mutex_v3@tbb@@AAEXXZ -?internal_acquire_writer@spin_rw_mutex_v3@tbb@@AAE_NXZ -?internal_release_reader@spin_rw_mutex_v3@tbb@@AAEXXZ -?internal_release_writer@spin_rw_mutex_v3@tbb@@AAEXXZ -?internal_try_acquire_reader@spin_rw_mutex_v3@tbb@@AAE_NXZ -?internal_try_acquire_writer@spin_rw_mutex_v3@tbb@@AAE_NXZ - - - -?internal_construct@spin_mutex@tbb@@QAEXXZ -?internal_acquire@scoped_lock@spin_mutex@tbb@@AAEXAAV23@@Z -?internal_release@scoped_lock@spin_mutex@tbb@@AAEXXZ -?internal_try_acquire@scoped_lock@spin_mutex@tbb@@AAE_NAAV23@@Z - - -?internal_acquire@scoped_lock@mutex@tbb@@AAEXAAV23@@Z -?internal_release@scoped_lock@mutex@tbb@@AAEXXZ -?internal_try_acquire@scoped_lock@mutex@tbb@@AAE_NAAV23@@Z -?internal_construct@mutex@tbb@@AAEXXZ -?internal_destroy@mutex@tbb@@AAEXXZ - - -?internal_acquire@scoped_lock@recursive_mutex@tbb@@AAEXAAV23@@Z -?internal_release@scoped_lock@recursive_mutex@tbb@@AAEXXZ -?internal_try_acquire@scoped_lock@recursive_mutex@tbb@@AAE_NAAV23@@Z -?internal_construct@recursive_mutex@tbb@@AAEXXZ -?internal_destroy@recursive_mutex@tbb@@AAEXXZ - - -?internal_construct@queuing_mutex@tbb@@QAEXXZ -?acquire@scoped_lock@queuing_mutex@tbb@@QAEXAAV23@@Z -?release@scoped_lock@queuing_mutex@tbb@@QAEXXZ -?try_acquire@scoped_lock@queuing_mutex@tbb@@QAE_NAAV23@@Z - - -?internal_construct@critical_section_v4@internal@tbb@@QAEXXZ - - -?internal_grow_predicate@hash_map_segment_base@internal@tbb@@QBE_NXZ - - -?advance@concurrent_queue_iterator_base@internal@tbb@@IAEXXZ -?assign@concurrent_queue_iterator_base@internal@tbb@@IAEXABV123@@Z -?internal_size@concurrent_queue_base@internal@tbb@@IBEHXZ -??0concurrent_queue_base@internal@tbb@@IAE@I@Z -??0concurrent_queue_iterator_base@internal@tbb@@IAE@ABVconcurrent_queue_base@12@@Z -??1concurrent_queue_base@internal@tbb@@MAE@XZ -??1concurrent_queue_iterator_base@internal@tbb@@IAE@XZ -?internal_pop@concurrent_queue_base@internal@tbb@@IAEXPAX@Z -?internal_pop_if_present@concurrent_queue_base@internal@tbb@@IAE_NPAX@Z -?internal_push@concurrent_queue_base@internal@tbb@@IAEXPBX@Z -?internal_push_if_not_full@concurrent_queue_base@internal@tbb@@IAE_NPBX@Z -?internal_set_capacity@concurrent_queue_base@internal@tbb@@IAEXHI@Z - - -??1concurrent_queue_iterator_base_v3@internal@tbb@@IAE@XZ -??0concurrent_queue_iterator_base_v3@internal@tbb@@IAE@ABVconcurrent_queue_base_v3@12@@Z -??0concurrent_queue_iterator_base_v3@internal@tbb@@IAE@ABVconcurrent_queue_base_v3@12@I@Z -?advance@concurrent_queue_iterator_base_v3@internal@tbb@@IAEXXZ -?assign@concurrent_queue_iterator_base_v3@internal@tbb@@IAEXABV123@@Z -??0concurrent_queue_base_v3@internal@tbb@@IAE@I@Z -??1concurrent_queue_base_v3@internal@tbb@@MAE@XZ -?internal_pop@concurrent_queue_base_v3@internal@tbb@@IAEXPAX@Z -?internal_pop_if_present@concurrent_queue_base_v3@internal@tbb@@IAE_NPAX@Z -?internal_abort@concurrent_queue_base_v3@internal@tbb@@IAEXXZ -?internal_push@concurrent_queue_base_v3@internal@tbb@@IAEXPBX@Z -?internal_push_if_not_full@concurrent_queue_base_v3@internal@tbb@@IAE_NPBX@Z -?internal_size@concurrent_queue_base_v3@internal@tbb@@IBEHXZ -?internal_empty@concurrent_queue_base_v3@internal@tbb@@IBE_NXZ -?internal_set_capacity@concurrent_queue_base_v3@internal@tbb@@IAEXHI@Z -?internal_finish_clear@concurrent_queue_base_v3@internal@tbb@@IAEXXZ -?internal_throw_exception@concurrent_queue_base_v3@internal@tbb@@IBEXXZ -?assign@concurrent_queue_base_v3@internal@tbb@@IAEXABV123@@Z - - -?internal_assign@concurrent_vector_base@internal@tbb@@IAEXABV123@IP6AXPAXI@ZP6AX1PBXI@Z4@Z -?internal_capacity@concurrent_vector_base@internal@tbb@@IBEIXZ -?internal_clear@concurrent_vector_base@internal@tbb@@IAEXP6AXPAXI@Z_N@Z -?internal_copy@concurrent_vector_base@internal@tbb@@IAEXABV123@IP6AXPAXPBXI@Z@Z -?internal_grow_by@concurrent_vector_base@internal@tbb@@IAEIIIP6AXPAXI@Z@Z -?internal_grow_to_at_least@concurrent_vector_base@internal@tbb@@IAEXIIP6AXPAXI@Z@Z -?internal_push_back@concurrent_vector_base@internal@tbb@@IAEPAXIAAI@Z -?internal_reserve@concurrent_vector_base@internal@tbb@@IAEXIII@Z - - -??1concurrent_vector_base_v3@internal@tbb@@IAE@XZ -?internal_assign@concurrent_vector_base_v3@internal@tbb@@IAEXABV123@IP6AXPAXI@ZP6AX1PBXI@Z4@Z -?internal_capacity@concurrent_vector_base_v3@internal@tbb@@IBEIXZ -?internal_clear@concurrent_vector_base_v3@internal@tbb@@IAEIP6AXPAXI@Z@Z -?internal_copy@concurrent_vector_base_v3@internal@tbb@@IAEXABV123@IP6AXPAXPBXI@Z@Z -?internal_grow_by@concurrent_vector_base_v3@internal@tbb@@IAEIIIP6AXPAXPBXI@Z1@Z -?internal_grow_to_at_least@concurrent_vector_base_v3@internal@tbb@@IAEXIIP6AXPAXPBXI@Z1@Z -?internal_push_back@concurrent_vector_base_v3@internal@tbb@@IAEPAXIAAI@Z -?internal_reserve@concurrent_vector_base_v3@internal@tbb@@IAEXIII@Z -?internal_compact@concurrent_vector_base_v3@internal@tbb@@IAEPAXIPAXP6AX0I@ZP6AX0PBXI@Z@Z -?internal_swap@concurrent_vector_base_v3@internal@tbb@@IAEXAAV123@@Z -?internal_throw_exception@concurrent_vector_base_v3@internal@tbb@@IBEXI@Z -?internal_resize@concurrent_vector_base_v3@internal@tbb@@IAEXIIIPBXP6AXPAXI@ZP6AX10I@Z@Z -?internal_grow_to_at_least_with_result@concurrent_vector_base_v3@internal@tbb@@IAEIIIP6AXPAXPBXI@Z1@Z - - -?join@tbb_thread_v3@internal@tbb@@QAEXXZ -?detach@tbb_thread_v3@internal@tbb@@QAEXXZ -?internal_start@tbb_thread_v3@internal@tbb@@AAEXP6GIPAX@Z0@Z -?allocate_closure_v3@internal@tbb@@YAPAXI@Z -?free_closure_v3@internal@tbb@@YAXPAX@Z -?hardware_concurrency@tbb_thread_v3@internal@tbb@@SAIXZ -?thread_yield_v3@internal@tbb@@YAXXZ -?thread_sleep_v3@internal@tbb@@YAXABVinterval_t@tick_count@2@@Z -?move_v3@internal@tbb@@YAXAAVtbb_thread_v3@12@0@Z -?thread_get_id_v3@internal@tbb@@YA?AVid@tbb_thread_v3@12@XZ - - -?internal_initialize_condition_variable@internal@interface5@tbb@@YAXAATcondvar_impl_t@123@@Z -?internal_condition_variable_wait@internal@interface5@tbb@@YA_NAATcondvar_impl_t@123@PAVmutex@3@PBVinterval_t@tick_count@3@@Z -?internal_condition_variable_notify_one@internal@interface5@tbb@@YAXAATcondvar_impl_t@123@@Z -?internal_condition_variable_notify_all@internal@interface5@tbb@@YAXAATcondvar_impl_t@123@@Z -?internal_destroy_condition_variable@internal@interface5@tbb@@YAXAATcondvar_impl_t@123@@Z - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbb.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbb.lib deleted file mode 100644 index 50c573d42..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbb.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbb_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbb_debug.lib deleted file mode 100644 index 79fcaeac3..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbb_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbb_preview.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbb_preview.lib deleted file mode 100644 index 0ec83246a..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbb_preview.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbb_preview_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbb_preview_debug.lib deleted file mode 100644 index f38674450..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbb_preview_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbbmalloc.def b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbbmalloc.def deleted file mode 100644 index 0ef9816d5..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbbmalloc.def +++ /dev/null @@ -1,46 +0,0 @@ -; Copyright 2005-2014 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. - -EXPORTS - -; frontend.cpp -scalable_calloc -scalable_free -scalable_malloc -scalable_realloc -scalable_posix_memalign -scalable_aligned_malloc -scalable_aligned_realloc -scalable_aligned_free -safer_scalable_free -safer_scalable_realloc -scalable_msize -scalable_allocation_mode -scalable_allocation_command -safer_scalable_msize -safer_scalable_aligned_msize -safer_scalable_aligned_realloc -?pool_create@rml@@YAPAVMemoryPool@1@HPBUMemPoolPolicy@1@@Z -?pool_create_v1@rml@@YA?AW4MemPoolError@1@HPBUMemPoolPolicy@1@PAPAVMemoryPool@1@@Z -?pool_destroy@rml@@YA_NPAVMemoryPool@1@@Z -?pool_malloc@rml@@YAPAXPAVMemoryPool@1@I@Z -?pool_free@rml@@YA_NPAVMemoryPool@1@PAX@Z -?pool_reset@rml@@YA_NPAVMemoryPool@1@@Z -?pool_realloc@rml@@YAPAXPAVMemoryPool@1@PAXI@Z -?pool_aligned_realloc@rml@@YAPAXPAVMemoryPool@1@PAXII@Z -?pool_aligned_malloc@rml@@YAPAXPAVMemoryPool@1@II@Z diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbbmalloc.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbbmalloc.lib deleted file mode 100644 index e05e0288f..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbbmalloc.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbbmalloc_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbbmalloc_debug.lib deleted file mode 100644 index af0559b83..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbbmalloc_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbbmalloc_proxy.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbbmalloc_proxy.lib deleted file mode 100644 index 4c7f7db17..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbbmalloc_proxy.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbbmalloc_proxy_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbbmalloc_proxy_debug.lib deleted file mode 100644 index c50b5db74..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbbmalloc_proxy_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbbproxy.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbbproxy.lib deleted file mode 100644 index 2ba442224..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbbproxy.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbbproxy.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbbproxy.pdb deleted file mode 100644 index 2bf0361a7..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbbproxy.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbbproxy_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbbproxy_debug.lib deleted file mode 100644 index 09ddddd53..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbbproxy_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbbproxy_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbbproxy_debug.pdb deleted file mode 100644 index d7b431393..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/ia32/vc9/tbbproxy_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/irml/libirml.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/irml/libirml.so deleted file mode 100644 index 1c79cafc4..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/irml/libirml.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libirml.so.1) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/irml/libirml.so.1 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/irml/libirml.so.1 deleted file mode 100644 index 3e8eaab46..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/irml/libirml.so.1 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/irml/libirml_debug.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/irml/libirml_debug.so deleted file mode 100644 index c421a2364..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/irml/libirml_debug.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libirml_debug.so.1) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/irml/libirml_debug.so.1 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/irml/libirml_debug.so.1 deleted file mode 100644 index 54eee45b1..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/irml/libirml_debug.so.1 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbb.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbb.so deleted file mode 100644 index 43e23674d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbb.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbb.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbb.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbb.so.2 deleted file mode 100644 index 17b76cd59..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbb.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbb_debug.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbb_debug.so deleted file mode 100644 index 960bbb41a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbb_debug.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbb_debug.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbb_debug.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbb_debug.so.2 deleted file mode 100644 index 8d2f2aa10..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbb_debug.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbb_preview.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbb_preview.so deleted file mode 100644 index 8b10ff482..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbb_preview.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbb_preview.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbb_preview.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbb_preview.so.2 deleted file mode 100644 index 058647a70..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbb_preview.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbb_preview_debug.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbb_preview_debug.so deleted file mode 100644 index 3824af996..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbb_preview_debug.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbb_preview_debug.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbb_preview_debug.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbb_preview_debug.so.2 deleted file mode 100644 index 015f8be8b..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbb_preview_debug.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbbmalloc.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbbmalloc.so deleted file mode 100644 index 2ee0cac01..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbbmalloc.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbbmalloc.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbbmalloc.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbbmalloc.so.2 deleted file mode 100644 index d157099a0..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbbmalloc.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbbmalloc_debug.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbbmalloc_debug.so deleted file mode 100644 index 977deb107..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbbmalloc_debug.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbbmalloc_debug.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbbmalloc_debug.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbbmalloc_debug.so.2 deleted file mode 100644 index 0b15a6bc2..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbbmalloc_debug.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbbmalloc_proxy.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbbmalloc_proxy.so deleted file mode 100644 index aa866c28f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbbmalloc_proxy.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbbmalloc_proxy.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbbmalloc_proxy.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbbmalloc_proxy.so.2 deleted file mode 100644 index 77eca2462..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbbmalloc_proxy.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbbmalloc_proxy_debug.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbbmalloc_proxy_debug.so deleted file mode 100644 index 41e38a567..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbbmalloc_proxy_debug.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbbmalloc_proxy_debug.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbbmalloc_proxy_debug.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbbmalloc_proxy_debug.so.2 deleted file mode 100644 index 45967d87a..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.1/libtbbmalloc_proxy_debug.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/irml/libirml.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/irml/libirml.so deleted file mode 100644 index 1c79cafc4..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/irml/libirml.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libirml.so.1) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/irml/libirml.so.1 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/irml/libirml.so.1 deleted file mode 100644 index bc3f3d4a7..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/irml/libirml.so.1 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/irml/libirml_debug.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/irml/libirml_debug.so deleted file mode 100644 index c421a2364..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/irml/libirml_debug.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libirml_debug.so.1) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/irml/libirml_debug.so.1 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/irml/libirml_debug.so.1 deleted file mode 100644 index 149e3968e..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/irml/libirml_debug.so.1 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbb.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbb.so deleted file mode 100644 index 43e23674d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbb.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbb.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbb.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbb.so.2 deleted file mode 100644 index aab6fbb2a..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbb.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbb_debug.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbb_debug.so deleted file mode 100644 index 960bbb41a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbb_debug.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbb_debug.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbb_debug.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbb_debug.so.2 deleted file mode 100644 index cfa1ca47d..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbb_debug.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbb_preview.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbb_preview.so deleted file mode 100644 index 8b10ff482..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbb_preview.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbb_preview.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbb_preview.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbb_preview.so.2 deleted file mode 100644 index 3af6c0260..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbb_preview.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbb_preview_debug.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbb_preview_debug.so deleted file mode 100644 index 3824af996..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbb_preview_debug.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbb_preview_debug.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbb_preview_debug.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbb_preview_debug.so.2 deleted file mode 100644 index d862adc5d..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbb_preview_debug.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbbmalloc.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbbmalloc.so deleted file mode 100644 index 2ee0cac01..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbbmalloc.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbbmalloc.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbbmalloc.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbbmalloc.so.2 deleted file mode 100644 index 1d206c50e..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbbmalloc.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbbmalloc_debug.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbbmalloc_debug.so deleted file mode 100644 index 977deb107..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbbmalloc_debug.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbbmalloc_debug.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbbmalloc_debug.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbbmalloc_debug.so.2 deleted file mode 100644 index 2d8ac8399..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbbmalloc_debug.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbbmalloc_proxy.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbbmalloc_proxy.so deleted file mode 100644 index aa866c28f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbbmalloc_proxy.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbbmalloc_proxy.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbbmalloc_proxy.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbbmalloc_proxy.so.2 deleted file mode 100644 index 7dfddc4d2..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbbmalloc_proxy.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbbmalloc_proxy_debug.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbbmalloc_proxy_debug.so deleted file mode 100644 index 41e38a567..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbbmalloc_proxy_debug.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbbmalloc_proxy_debug.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbbmalloc_proxy_debug.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbbmalloc_proxy_debug.so.2 deleted file mode 100644 index 6d0230671..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/gcc4.4/libtbbmalloc_proxy_debug.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/irml/irml.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/irml/irml.lib deleted file mode 100644 index 45a45197a..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/irml/irml.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/irml/irml_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/irml/irml_debug.lib deleted file mode 100644 index 9bcf270da..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/irml/irml_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/irml_c/irml.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/irml_c/irml.lib deleted file mode 100644 index ee60f6ed3..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/irml_c/irml.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/irml_c/irml_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/irml_c/irml_debug.lib deleted file mode 100644 index 9f21b8f2f..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/irml_c/irml_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbb.def b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbb.def deleted file mode 100644 index dd8970ebe..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbb.def +++ /dev/null @@ -1,472 +0,0 @@ -; Copyright 2005-2014 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. - -; This file is organized with a section for each .cpp file. -; Each of these sections is in alphabetical order. - -EXPORTS - -; Copyright 2005-2014 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -__TBB_machine_cmpswp1 -__TBB_machine_fetchadd1 -__TBB_machine_fetchstore1 -__TBB_machine_cmpswp2 -__TBB_machine_fetchadd2 -__TBB_machine_fetchstore2 -__TBB_machine_pause -__TBB_machine_try_lock_elided -__TBB_machine_unlock_elided -__TBB_machine_is_in_transaction - - -?NFS_Allocate@internal@tbb@@YAPEAX_K0PEAX@Z -?NFS_GetLineSize@internal@tbb@@YA_KXZ -?NFS_Free@internal@tbb@@YAXPEAX@Z -?allocate_via_handler_v3@internal@tbb@@YAPEAX_K@Z -?deallocate_via_handler_v3@internal@tbb@@YAXPEAX@Z -?is_malloc_used_v3@internal@tbb@@YA_NXZ - - - -?resize@affinity_partitioner_base_v3@internal@tbb@@AEAAXI@Z -?allocate@allocate_additional_child_of_proxy@internal@tbb@@QEBAAEAVtask@3@_K@Z -?allocate@allocate_child_proxy@internal@tbb@@QEBAAEAVtask@3@_K@Z -?allocate@allocate_continuation_proxy@internal@tbb@@QEBAAEAVtask@3@_K@Z -?allocate@allocate_root_proxy@internal@tbb@@SAAEAVtask@3@_K@Z -?destroy@task_base@internal@interface5@tbb@@SAXAEAVtask@4@@Z -?free@allocate_additional_child_of_proxy@internal@tbb@@QEBAXAEAVtask@3@@Z -?free@allocate_child_proxy@internal@tbb@@QEBAXAEAVtask@3@@Z -?free@allocate_continuation_proxy@internal@tbb@@QEBAXAEAVtask@3@@Z -?free@allocate_root_proxy@internal@tbb@@SAXAEAVtask@3@@Z -?internal_set_ref_count@task@tbb@@AEAAXH@Z -?internal_decrement_ref_count@task@tbb@@AEAA_JXZ -?is_owned_by_current_thread@task@tbb@@QEBA_NXZ -?note_affinity@task@tbb@@UEAAXG@Z -?self@task@tbb@@SAAEAV12@XZ -?spawn_and_wait_for_all@task@tbb@@QEAAXAEAVtask_list@2@@Z -?default_num_threads@task_scheduler_init@tbb@@SAHXZ -?initialize@task_scheduler_init@tbb@@QEAAXH_K@Z -?initialize@task_scheduler_init@tbb@@QEAAXH@Z -?terminate@task_scheduler_init@tbb@@QEAAXXZ -?observe@task_scheduler_observer_v3@internal@tbb@@QEAAX_N@Z - - -?internal_current_slot@task_arena_base@internal@interface7@tbb@@KAHXZ -?internal_initialize@task_arena_base@internal@interface7@tbb@@IEAAXXZ -?internal_terminate@task_arena_base@internal@interface7@tbb@@IEAAXXZ -?internal_enqueue@task_arena_base@internal@interface7@tbb@@IEBAXAEAVtask@4@_J@Z -?internal_execute@task_arena_base@internal@interface7@tbb@@IEBAXAEAVdelegate_base@234@@Z -?internal_wait@task_arena_base@internal@interface7@tbb@@IEBAXXZ - - -?destroy@task@tbb@@QEAAXAEAV12@@Z - - -?allocate@allocate_root_with_context_proxy@internal@tbb@@QEBAAEAVtask@3@_K@Z -?free@allocate_root_with_context_proxy@internal@tbb@@QEBAXAEAVtask@3@@Z -?change_group@task@tbb@@QEAAXAEAVtask_group_context@2@@Z -?is_group_execution_cancelled@task_group_context@tbb@@QEBA_NXZ -?cancel_group_execution@task_group_context@tbb@@QEAA_NXZ -?reset@task_group_context@tbb@@QEAAXXZ -?init@task_group_context@tbb@@IEAAXXZ -?register_pending_exception@task_group_context@tbb@@QEAAXXZ -??1task_group_context@tbb@@QEAA@XZ -?set_priority@task_group_context@tbb@@QEAAXW4priority_t@2@@Z -?priority@task_group_context@tbb@@QEBA?AW4priority_t@2@XZ -?name@captured_exception@tbb@@UEBAPEBDXZ -?what@captured_exception@tbb@@UEBAPEBDXZ -??1captured_exception@tbb@@UEAA@XZ -?move@captured_exception@tbb@@UEAAPEAV12@XZ -?destroy@captured_exception@tbb@@UEAAXXZ -?set@captured_exception@tbb@@QEAAXPEBD0@Z -?clear@captured_exception@tbb@@QEAAXXZ - - -?throw_bad_last_alloc_exception_v4@internal@tbb@@YAXXZ -?throw_exception_v4@internal@tbb@@YAXW4exception_id@12@@Z -?what@bad_last_alloc@tbb@@UEBAPEBDXZ -?what@missing_wait@tbb@@UEBAPEBDXZ -?what@invalid_multiple_scheduling@tbb@@UEBAPEBDXZ -?what@improper_lock@tbb@@UEBAPEBDXZ -?what@user_abort@tbb@@UEBAPEBDXZ - - -?assertion_failure@tbb@@YAXPEBDH00@Z -?get_initial_auto_partitioner_divisor@internal@tbb@@YA_KXZ -?handle_perror@internal@tbb@@YAXHPEBD@Z -?set_assertion_handler@tbb@@YAP6AXPEBDH00@ZP6AX0H00@Z@Z -?runtime_warning@internal@tbb@@YAXPEBDZZ -TBB_runtime_interface_version - - -?itt_load_pointer_with_acquire_v3@internal@tbb@@YAPEAXPEBX@Z -?itt_store_pointer_with_release_v3@internal@tbb@@YAXPEAX0@Z -?call_itt_notify_v5@internal@tbb@@YAXHPEAX@Z -?itt_load_pointer_v3@internal@tbb@@YAPEAXPEBX@Z -?itt_set_sync_name_v3@internal@tbb@@YAXPEAXPEB_W@Z - - -??_7pipeline@tbb@@6B@ -??0pipeline@tbb@@QEAA@XZ -??1filter@tbb@@UEAA@XZ -??1pipeline@tbb@@UEAA@XZ -?add_filter@pipeline@tbb@@QEAAXAEAVfilter@2@@Z -?clear@pipeline@tbb@@QEAAXXZ -?inject_token@pipeline@tbb@@AEAAXAEAVtask@2@@Z -?run@pipeline@tbb@@QEAAX_K@Z -?run@pipeline@tbb@@QEAAX_KAEAVtask_group_context@2@@Z -?process_item@thread_bound_filter@tbb@@QEAA?AW4result_type@12@XZ -?try_process_item@thread_bound_filter@tbb@@QEAA?AW4result_type@12@XZ -?set_end_of_input@filter@tbb@@IEAAXXZ - - -?internal_construct@queuing_rw_mutex@tbb@@QEAAXXZ -?acquire@scoped_lock@queuing_rw_mutex@tbb@@QEAAXAEAV23@_N@Z -?downgrade_to_reader@scoped_lock@queuing_rw_mutex@tbb@@QEAA_NXZ -?release@scoped_lock@queuing_rw_mutex@tbb@@QEAAXXZ -?upgrade_to_writer@scoped_lock@queuing_rw_mutex@tbb@@QEAA_NXZ -?try_acquire@scoped_lock@queuing_rw_mutex@tbb@@QEAA_NAEAV23@_N@Z - - -?try_lock_read@reader_writer_lock@interface5@tbb@@QEAA_NXZ -?try_lock@reader_writer_lock@interface5@tbb@@QEAA_NXZ -?unlock@reader_writer_lock@interface5@tbb@@QEAAXXZ -?lock_read@reader_writer_lock@interface5@tbb@@QEAAXXZ -?lock@reader_writer_lock@interface5@tbb@@QEAAXXZ -?internal_construct@reader_writer_lock@interface5@tbb@@AEAAXXZ -?internal_destroy@reader_writer_lock@interface5@tbb@@AEAAXXZ -?internal_construct@scoped_lock@reader_writer_lock@interface5@tbb@@AEAAXAEAV234@@Z -?internal_destroy@scoped_lock@reader_writer_lock@interface5@tbb@@AEAAXXZ -?internal_construct@scoped_lock_read@reader_writer_lock@interface5@tbb@@AEAAXAEAV234@@Z -?internal_destroy@scoped_lock_read@reader_writer_lock@interface5@tbb@@AEAAXXZ - - -?internal_itt_releasing@spin_rw_mutex@tbb@@CAXPEAV12@@Z -?internal_acquire_writer@spin_rw_mutex@tbb@@CA_NPEAV12@@Z -?internal_acquire_reader@spin_rw_mutex@tbb@@CAXPEAV12@@Z -?internal_downgrade@spin_rw_mutex@tbb@@CAXPEAV12@@Z -?internal_upgrade@spin_rw_mutex@tbb@@CA_NPEAV12@@Z -?internal_release_reader@spin_rw_mutex@tbb@@CAXPEAV12@@Z -?internal_release_writer@spin_rw_mutex@tbb@@CAXPEAV12@@Z -?internal_try_acquire_writer@spin_rw_mutex@tbb@@CA_NPEAV12@@Z -?internal_try_acquire_reader@spin_rw_mutex@tbb@@CA_NPEAV12@@Z - - -?internal_construct@spin_rw_mutex_v3@tbb@@AEAAXXZ -?internal_upgrade@spin_rw_mutex_v3@tbb@@AEAA_NXZ -?internal_downgrade@spin_rw_mutex_v3@tbb@@AEAAXXZ -?internal_acquire_reader@spin_rw_mutex_v3@tbb@@AEAAXXZ -?internal_acquire_writer@spin_rw_mutex_v3@tbb@@AEAA_NXZ -?internal_release_reader@spin_rw_mutex_v3@tbb@@AEAAXXZ -?internal_release_writer@spin_rw_mutex_v3@tbb@@AEAAXXZ -?internal_try_acquire_reader@spin_rw_mutex_v3@tbb@@AEAA_NXZ -?internal_try_acquire_writer@spin_rw_mutex_v3@tbb@@AEAA_NXZ - - - -?internal_construct@spin_mutex@tbb@@QEAAXXZ -?internal_acquire@scoped_lock@spin_mutex@tbb@@AEAAXAEAV23@@Z -?internal_release@scoped_lock@spin_mutex@tbb@@AEAAXXZ -?internal_try_acquire@scoped_lock@spin_mutex@tbb@@AEAA_NAEAV23@@Z - - -?internal_acquire@scoped_lock@mutex@tbb@@AEAAXAEAV23@@Z -?internal_release@scoped_lock@mutex@tbb@@AEAAXXZ -?internal_try_acquire@scoped_lock@mutex@tbb@@AEAA_NAEAV23@@Z -?internal_construct@mutex@tbb@@AEAAXXZ -?internal_destroy@mutex@tbb@@AEAAXXZ - - -?internal_construct@recursive_mutex@tbb@@AEAAXXZ -?internal_destroy@recursive_mutex@tbb@@AEAAXXZ -?internal_acquire@scoped_lock@recursive_mutex@tbb@@AEAAXAEAV23@@Z -?internal_try_acquire@scoped_lock@recursive_mutex@tbb@@AEAA_NAEAV23@@Z -?internal_release@scoped_lock@recursive_mutex@tbb@@AEAAXXZ - - -?internal_construct@queuing_mutex@tbb@@QEAAXXZ -?acquire@scoped_lock@queuing_mutex@tbb@@QEAAXAEAV23@@Z -?release@scoped_lock@queuing_mutex@tbb@@QEAAXXZ -?try_acquire@scoped_lock@queuing_mutex@tbb@@QEAA_NAEAV23@@Z - - -?internal_construct@critical_section_v4@internal@tbb@@QEAAXXZ - - -?internal_grow_predicate@hash_map_segment_base@internal@tbb@@QEBA_NXZ - - -??0concurrent_queue_base@internal@tbb@@IEAA@_K@Z -??0concurrent_queue_iterator_base@internal@tbb@@IEAA@AEBVconcurrent_queue_base@12@@Z -??1concurrent_queue_base@internal@tbb@@MEAA@XZ -??1concurrent_queue_iterator_base@internal@tbb@@IEAA@XZ -?advance@concurrent_queue_iterator_base@internal@tbb@@IEAAXXZ -?assign@concurrent_queue_iterator_base@internal@tbb@@IEAAXAEBV123@@Z -?internal_pop@concurrent_queue_base@internal@tbb@@IEAAXPEAX@Z -?internal_pop_if_present@concurrent_queue_base@internal@tbb@@IEAA_NPEAX@Z -?internal_push@concurrent_queue_base@internal@tbb@@IEAAXPEBX@Z -?internal_push_if_not_full@concurrent_queue_base@internal@tbb@@IEAA_NPEBX@Z -?internal_set_capacity@concurrent_queue_base@internal@tbb@@IEAAX_J_K@Z -?internal_size@concurrent_queue_base@internal@tbb@@IEBA_JXZ - - -??0concurrent_queue_iterator_base_v3@internal@tbb@@IEAA@AEBVconcurrent_queue_base_v3@12@@Z -??0concurrent_queue_iterator_base_v3@internal@tbb@@IEAA@AEBVconcurrent_queue_base_v3@12@_K@Z -??1concurrent_queue_iterator_base_v3@internal@tbb@@IEAA@XZ -?assign@concurrent_queue_iterator_base_v3@internal@tbb@@IEAAXAEBV123@@Z -?advance@concurrent_queue_iterator_base_v3@internal@tbb@@IEAAXXZ -??0concurrent_queue_base_v3@internal@tbb@@IEAA@_K@Z -??1concurrent_queue_base_v3@internal@tbb@@MEAA@XZ -?internal_push@concurrent_queue_base_v3@internal@tbb@@IEAAXPEBX@Z -?internal_push_if_not_full@concurrent_queue_base_v3@internal@tbb@@IEAA_NPEBX@Z -?internal_pop@concurrent_queue_base_v3@internal@tbb@@IEAAXPEAX@Z -?internal_pop_if_present@concurrent_queue_base_v3@internal@tbb@@IEAA_NPEAX@Z -?internal_abort@concurrent_queue_base_v3@internal@tbb@@IEAAXXZ -?internal_size@concurrent_queue_base_v3@internal@tbb@@IEBA_JXZ -?internal_empty@concurrent_queue_base_v3@internal@tbb@@IEBA_NXZ -?internal_finish_clear@concurrent_queue_base_v3@internal@tbb@@IEAAXXZ -?internal_set_capacity@concurrent_queue_base_v3@internal@tbb@@IEAAX_J_K@Z -?internal_throw_exception@concurrent_queue_base_v3@internal@tbb@@IEBAXXZ -?assign@concurrent_queue_base_v3@internal@tbb@@IEAAXAEBV123@@Z - - -?internal_assign@concurrent_vector_base@internal@tbb@@IEAAXAEBV123@_KP6AXPEAX1@ZP6AX2PEBX1@Z5@Z -?internal_capacity@concurrent_vector_base@internal@tbb@@IEBA_KXZ -?internal_clear@concurrent_vector_base@internal@tbb@@IEAAXP6AXPEAX_K@Z_N@Z -?internal_copy@concurrent_vector_base@internal@tbb@@IEAAXAEBV123@_KP6AXPEAXPEBX1@Z@Z -?internal_grow_by@concurrent_vector_base@internal@tbb@@IEAA_K_K0P6AXPEAX0@Z@Z -?internal_grow_to_at_least@concurrent_vector_base@internal@tbb@@IEAAX_K0P6AXPEAX0@Z@Z -?internal_push_back@concurrent_vector_base@internal@tbb@@IEAAPEAX_KAEA_K@Z -?internal_reserve@concurrent_vector_base@internal@tbb@@IEAAX_K00@Z - - -??1concurrent_vector_base_v3@internal@tbb@@IEAA@XZ -?internal_assign@concurrent_vector_base_v3@internal@tbb@@IEAAXAEBV123@_KP6AXPEAX1@ZP6AX2PEBX1@Z5@Z -?internal_capacity@concurrent_vector_base_v3@internal@tbb@@IEBA_KXZ -?internal_clear@concurrent_vector_base_v3@internal@tbb@@IEAA_KP6AXPEAX_K@Z@Z -?internal_copy@concurrent_vector_base_v3@internal@tbb@@IEAAXAEBV123@_KP6AXPEAXPEBX1@Z@Z -?internal_grow_by@concurrent_vector_base_v3@internal@tbb@@IEAA_K_K0P6AXPEAXPEBX0@Z2@Z -?internal_grow_to_at_least@concurrent_vector_base_v3@internal@tbb@@IEAAX_K0P6AXPEAXPEBX0@Z2@Z -?internal_push_back@concurrent_vector_base_v3@internal@tbb@@IEAAPEAX_KAEA_K@Z -?internal_reserve@concurrent_vector_base_v3@internal@tbb@@IEAAX_K00@Z -?internal_compact@concurrent_vector_base_v3@internal@tbb@@IEAAPEAX_KPEAXP6AX10@ZP6AX1PEBX0@Z@Z -?internal_swap@concurrent_vector_base_v3@internal@tbb@@IEAAXAEAV123@@Z -?internal_throw_exception@concurrent_vector_base_v3@internal@tbb@@IEBAX_K@Z -?internal_resize@concurrent_vector_base_v3@internal@tbb@@IEAAX_K00PEBXP6AXPEAX0@ZP6AX210@Z@Z -?internal_grow_to_at_least_with_result@concurrent_vector_base_v3@internal@tbb@@IEAA_K_K0P6AXPEAXPEBX0@Z2@Z - - -?allocate_closure_v3@internal@tbb@@YAPEAX_K@Z -?detach@tbb_thread_v3@internal@tbb@@QEAAXXZ -?free_closure_v3@internal@tbb@@YAXPEAX@Z -?hardware_concurrency@tbb_thread_v3@internal@tbb@@SAIXZ -?internal_start@tbb_thread_v3@internal@tbb@@AEAAXP6AIPEAX@Z0@Z -?join@tbb_thread_v3@internal@tbb@@QEAAXXZ -?move_v3@internal@tbb@@YAXAEAVtbb_thread_v3@12@0@Z -?thread_get_id_v3@internal@tbb@@YA?AVid@tbb_thread_v3@12@XZ -?thread_sleep_v3@internal@tbb@@YAXAEBVinterval_t@tick_count@2@@Z -?thread_yield_v3@internal@tbb@@YAXXZ - - -?internal_initialize_condition_variable@internal@interface5@tbb@@YAXAEATcondvar_impl_t@123@@Z -?internal_condition_variable_wait@internal@interface5@tbb@@YA_NAEATcondvar_impl_t@123@PEAVmutex@3@PEBVinterval_t@tick_count@3@@Z -?internal_condition_variable_notify_one@internal@interface5@tbb@@YAXAEATcondvar_impl_t@123@@Z -?internal_condition_variable_notify_all@internal@interface5@tbb@@YAXAEATcondvar_impl_t@123@@Z -?internal_destroy_condition_variable@internal@interface5@tbb@@YAXAEATcondvar_impl_t@123@@Z - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbb.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbb.lib deleted file mode 100644 index 9c7a07064..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbb.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbb_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbb_debug.lib deleted file mode 100644 index 065645632..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbb_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbb_preview.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbb_preview.lib deleted file mode 100644 index 0b4cc786b..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbb_preview.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbb_preview_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbb_preview_debug.lib deleted file mode 100644 index c58c5dd01..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbb_preview_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbbmalloc.def b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbbmalloc.def deleted file mode 100644 index c5c82bcd1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbbmalloc.def +++ /dev/null @@ -1,47 +0,0 @@ -; Copyright 2005-2014 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. - -EXPORTS - -; frontend.cpp -scalable_calloc -scalable_free -scalable_malloc -scalable_realloc -scalable_posix_memalign -scalable_aligned_malloc -scalable_aligned_realloc -scalable_aligned_free -safer_scalable_free -safer_scalable_realloc -scalable_msize -scalable_allocation_mode -scalable_allocation_command -safer_scalable_msize -safer_scalable_aligned_msize -safer_scalable_aligned_realloc -; memory pool stuff -?pool_create@rml@@YAPEAVMemoryPool@1@_JPEBUMemPoolPolicy@1@@Z -?pool_create_v1@rml@@YA?AW4MemPoolError@1@_JPEBUMemPoolPolicy@1@PEAPEAVMemoryPool@1@@Z -?pool_destroy@rml@@YA_NPEAVMemoryPool@1@@Z -?pool_malloc@rml@@YAPEAXPEAVMemoryPool@1@_K@Z -?pool_free@rml@@YA_NPEAVMemoryPool@1@PEAX@Z -?pool_reset@rml@@YA_NPEAVMemoryPool@1@@Z -?pool_realloc@rml@@YAPEAXPEAVMemoryPool@1@PEAX_K@Z -?pool_aligned_realloc@rml@@YAPEAXPEAVMemoryPool@1@PEAX_K2@Z -?pool_aligned_malloc@rml@@YAPEAXPEAVMemoryPool@1@_K1@Z diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbbmalloc.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbbmalloc.lib deleted file mode 100644 index 32753a2c0..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbbmalloc.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbbmalloc_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbbmalloc_debug.lib deleted file mode 100644 index f8f78ae90..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbbmalloc_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbbmalloc_proxy.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbbmalloc_proxy.lib deleted file mode 100644 index 14db42427..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbbmalloc_proxy.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbbmalloc_proxy_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbbmalloc_proxy_debug.lib deleted file mode 100644 index 709027716..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbbmalloc_proxy_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbbproxy.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbbproxy.lib deleted file mode 100644 index 5aa6827ae..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbbproxy.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbbproxy.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbbproxy.pdb deleted file mode 100644 index fec7f5ef2..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbbproxy.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbbproxy_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbbproxy_debug.lib deleted file mode 100644 index 4834ab5f8..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbbproxy_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbbproxy_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbbproxy_debug.pdb deleted file mode 100644 index 33cf8016b..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc10/tbbproxy_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/irml/irml.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/irml/irml.lib deleted file mode 100644 index e35c91871..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/irml/irml.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/irml/irml_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/irml/irml_debug.lib deleted file mode 100644 index ffe347811..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/irml/irml_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbb.def b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbb.def deleted file mode 100644 index 91fe15908..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbb.def +++ /dev/null @@ -1,923 +0,0 @@ - -; Copyright 2005-2014 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. - -; This file is organized with a section for each .cpp file. -; Each of these sections is in alphabetical order. - -EXPORTS - - - -; Copyright 2005-2014 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -__TBB_machine_cmpswp1 -__TBB_machine_fetchadd1 -__TBB_machine_fetchstore1 -__TBB_machine_cmpswp2 -__TBB_machine_fetchadd2 -__TBB_machine_fetchstore2 -__TBB_machine_pause -__TBB_machine_try_lock_elided -__TBB_machine_unlock_elided -__TBB_machine_is_in_transaction - - -?NFS_Allocate@internal@tbb@@YAPEAX_K0PEAX@Z -?NFS_GetLineSize@internal@tbb@@YA_KXZ -?NFS_Free@internal@tbb@@YAXPEAX@Z -?allocate_via_handler_v3@internal@tbb@@YAPEAX_K@Z -?deallocate_via_handler_v3@internal@tbb@@YAXPEAX@Z -?is_malloc_used_v3@internal@tbb@@YA_NXZ - - - -?resize@affinity_partitioner_base_v3@internal@tbb@@AEAAXI@Z -?allocate@allocate_additional_child_of_proxy@internal@tbb@@QEBAAEAVtask@3@_K@Z -?allocate@allocate_child_proxy@internal@tbb@@QEBAAEAVtask@3@_K@Z -?allocate@allocate_continuation_proxy@internal@tbb@@QEBAAEAVtask@3@_K@Z -?allocate@allocate_root_proxy@internal@tbb@@SAAEAVtask@3@_K@Z -?destroy@task_base@internal@interface5@tbb@@SAXAEAVtask@4@@Z -?free@allocate_additional_child_of_proxy@internal@tbb@@QEBAXAEAVtask@3@@Z -?free@allocate_child_proxy@internal@tbb@@QEBAXAEAVtask@3@@Z -?free@allocate_continuation_proxy@internal@tbb@@QEBAXAEAVtask@3@@Z -?free@allocate_root_proxy@internal@tbb@@SAXAEAVtask@3@@Z -?internal_set_ref_count@task@tbb@@AEAAXH@Z -?internal_decrement_ref_count@task@tbb@@AEAA_JXZ -?is_owned_by_current_thread@task@tbb@@QEBA_NXZ -?note_affinity@task@tbb@@UEAAXG@Z -?self@task@tbb@@SAAEAV12@XZ -?spawn_and_wait_for_all@task@tbb@@QEAAXAEAVtask_list@2@@Z -?default_num_threads@task_scheduler_init@tbb@@SAHXZ -?initialize@task_scheduler_init@tbb@@QEAAXH_K@Z -?initialize@task_scheduler_init@tbb@@QEAAXH@Z -?terminate@task_scheduler_init@tbb@@QEAAXXZ - -?observe@task_scheduler_observer_v3@internal@tbb@@QEAAX_N@Z - - - - -?internal_current_slot@task_arena_base@internal@interface7@tbb@@KAHXZ -?internal_initialize@task_arena_base@internal@interface7@tbb@@IEAAXXZ -?internal_terminate@task_arena_base@internal@interface7@tbb@@IEAAXXZ -?internal_enqueue@task_arena_base@internal@interface7@tbb@@IEBAXAEAVtask@4@_J@Z -?internal_execute@task_arena_base@internal@interface7@tbb@@IEBAXAEAVdelegate_base@234@@Z -?internal_wait@task_arena_base@internal@interface7@tbb@@IEBAXXZ - - - - -?destroy@task@tbb@@QEAAXAEAV12@@Z - - - - -?allocate@allocate_root_with_context_proxy@internal@tbb@@QEBAAEAVtask@3@_K@Z -?free@allocate_root_with_context_proxy@internal@tbb@@QEBAXAEAVtask@3@@Z -?change_group@task@tbb@@QEAAXAEAVtask_group_context@2@@Z -?is_group_execution_cancelled@task_group_context@tbb@@QEBA_NXZ -?cancel_group_execution@task_group_context@tbb@@QEAA_NXZ -?reset@task_group_context@tbb@@QEAAXXZ -?init@task_group_context@tbb@@IEAAXXZ -?register_pending_exception@task_group_context@tbb@@QEAAXXZ -??1task_group_context@tbb@@QEAA@XZ - -?set_priority@task_group_context@tbb@@QEAAXW4priority_t@2@@Z -?priority@task_group_context@tbb@@QEBA?AW4priority_t@2@XZ - -?name@captured_exception@tbb@@UEBAPEBDXZ -?what@captured_exception@tbb@@UEBAPEBDXZ -??1captured_exception@tbb@@UEAA@XZ -?move@captured_exception@tbb@@UEAAPEAV12@XZ -?destroy@captured_exception@tbb@@UEAAXXZ -?set@captured_exception@tbb@@QEAAXPEBD0@Z -?clear@captured_exception@tbb@@QEAAXXZ - - - -?throw_bad_last_alloc_exception_v4@internal@tbb@@YAXXZ -?throw_exception_v4@internal@tbb@@YAXW4exception_id@12@@Z -?what@bad_last_alloc@tbb@@UEBAPEBDXZ -?what@missing_wait@tbb@@UEBAPEBDXZ -?what@invalid_multiple_scheduling@tbb@@UEBAPEBDXZ -?what@improper_lock@tbb@@UEBAPEBDXZ -?what@user_abort@tbb@@UEBAPEBDXZ - - -?assertion_failure@tbb@@YAXPEBDH00@Z -?get_initial_auto_partitioner_divisor@internal@tbb@@YA_KXZ -?handle_perror@internal@tbb@@YAXHPEBD@Z -?set_assertion_handler@tbb@@YAP6AXPEBDH00@ZP6AX0H00@Z@Z -?runtime_warning@internal@tbb@@YAXPEBDZZ -TBB_runtime_interface_version - - -?itt_load_pointer_with_acquire_v3@internal@tbb@@YAPEAXPEBX@Z -?itt_store_pointer_with_release_v3@internal@tbb@@YAXPEAX0@Z -?call_itt_notify_v5@internal@tbb@@YAXHPEAX@Z -?itt_load_pointer_v3@internal@tbb@@YAPEAXPEBX@Z -?itt_set_sync_name_v3@internal@tbb@@YAXPEAXPEB_W@Z - - - - - - - - - -??_7pipeline@tbb@@6B@ -??0pipeline@tbb@@QEAA@XZ -??1filter@tbb@@UEAA@XZ -??1pipeline@tbb@@UEAA@XZ -?add_filter@pipeline@tbb@@QEAAXAEAVfilter@2@@Z -?clear@pipeline@tbb@@QEAAXXZ -?inject_token@pipeline@tbb@@AEAAXAEAVtask@2@@Z -?run@pipeline@tbb@@QEAAX_K@Z - -?run@pipeline@tbb@@QEAAX_KAEAVtask_group_context@2@@Z - -?process_item@thread_bound_filter@tbb@@QEAA?AW4result_type@12@XZ -?try_process_item@thread_bound_filter@tbb@@QEAA?AW4result_type@12@XZ -?set_end_of_input@filter@tbb@@IEAAXXZ - - -?internal_construct@queuing_rw_mutex@tbb@@QEAAXXZ -?acquire@scoped_lock@queuing_rw_mutex@tbb@@QEAAXAEAV23@_N@Z -?downgrade_to_reader@scoped_lock@queuing_rw_mutex@tbb@@QEAA_NXZ -?release@scoped_lock@queuing_rw_mutex@tbb@@QEAAXXZ -?upgrade_to_writer@scoped_lock@queuing_rw_mutex@tbb@@QEAA_NXZ -?try_acquire@scoped_lock@queuing_rw_mutex@tbb@@QEAA_NAEAV23@_N@Z - - -?try_lock_read@reader_writer_lock@interface5@tbb@@QEAA_NXZ -?try_lock@reader_writer_lock@interface5@tbb@@QEAA_NXZ -?unlock@reader_writer_lock@interface5@tbb@@QEAAXXZ -?lock_read@reader_writer_lock@interface5@tbb@@QEAAXXZ -?lock@reader_writer_lock@interface5@tbb@@QEAAXXZ -?internal_construct@reader_writer_lock@interface5@tbb@@AEAAXXZ -?internal_destroy@reader_writer_lock@interface5@tbb@@AEAAXXZ -?internal_construct@scoped_lock@reader_writer_lock@interface5@tbb@@AEAAXAEAV234@@Z -?internal_destroy@scoped_lock@reader_writer_lock@interface5@tbb@@AEAAXXZ -?internal_construct@scoped_lock_read@reader_writer_lock@interface5@tbb@@AEAAXAEAV234@@Z -?internal_destroy@scoped_lock_read@reader_writer_lock@interface5@tbb@@AEAAXXZ - - - -?internal_itt_releasing@spin_rw_mutex@tbb@@CAXPEAV12@@Z -?internal_acquire_writer@spin_rw_mutex@tbb@@CA_NPEAV12@@Z -?internal_acquire_reader@spin_rw_mutex@tbb@@CAXPEAV12@@Z -?internal_downgrade@spin_rw_mutex@tbb@@CAXPEAV12@@Z -?internal_upgrade@spin_rw_mutex@tbb@@CA_NPEAV12@@Z -?internal_release_reader@spin_rw_mutex@tbb@@CAXPEAV12@@Z -?internal_release_writer@spin_rw_mutex@tbb@@CAXPEAV12@@Z -?internal_try_acquire_writer@spin_rw_mutex@tbb@@CA_NPEAV12@@Z -?internal_try_acquire_reader@spin_rw_mutex@tbb@@CA_NPEAV12@@Z - - - -?internal_construct@spin_rw_mutex_v3@tbb@@AEAAXXZ -?internal_upgrade@spin_rw_mutex_v3@tbb@@AEAA_NXZ -?internal_downgrade@spin_rw_mutex_v3@tbb@@AEAAXXZ -?internal_acquire_reader@spin_rw_mutex_v3@tbb@@AEAAXXZ -?internal_acquire_writer@spin_rw_mutex_v3@tbb@@AEAA_NXZ -?internal_release_reader@spin_rw_mutex_v3@tbb@@AEAAXXZ -?internal_release_writer@spin_rw_mutex_v3@tbb@@AEAAXXZ -?internal_try_acquire_reader@spin_rw_mutex_v3@tbb@@AEAA_NXZ -?internal_try_acquire_writer@spin_rw_mutex_v3@tbb@@AEAA_NXZ - - - - - - - - - - - - - -?internal_construct@spin_mutex@tbb@@QEAAXXZ -?internal_acquire@scoped_lock@spin_mutex@tbb@@AEAAXAEAV23@@Z -?internal_release@scoped_lock@spin_mutex@tbb@@AEAAXXZ -?internal_try_acquire@scoped_lock@spin_mutex@tbb@@AEAA_NAEAV23@@Z - - -?internal_acquire@scoped_lock@mutex@tbb@@AEAAXAEAV23@@Z -?internal_release@scoped_lock@mutex@tbb@@AEAAXXZ -?internal_try_acquire@scoped_lock@mutex@tbb@@AEAA_NAEAV23@@Z -?internal_construct@mutex@tbb@@AEAAXXZ -?internal_destroy@mutex@tbb@@AEAAXXZ - - -?internal_construct@recursive_mutex@tbb@@AEAAXXZ -?internal_destroy@recursive_mutex@tbb@@AEAAXXZ -?internal_acquire@scoped_lock@recursive_mutex@tbb@@AEAAXAEAV23@@Z -?internal_try_acquire@scoped_lock@recursive_mutex@tbb@@AEAA_NAEAV23@@Z -?internal_release@scoped_lock@recursive_mutex@tbb@@AEAAXXZ - - -?internal_construct@queuing_mutex@tbb@@QEAAXXZ -?acquire@scoped_lock@queuing_mutex@tbb@@QEAAXAEAV23@@Z -?release@scoped_lock@queuing_mutex@tbb@@QEAAXXZ -?try_acquire@scoped_lock@queuing_mutex@tbb@@QEAA_NAEAV23@@Z - - -?internal_construct@critical_section_v4@internal@tbb@@QEAAXXZ - - - -?internal_grow_predicate@hash_map_segment_base@internal@tbb@@QEBA_NXZ - - -??0concurrent_queue_base@internal@tbb@@IEAA@_K@Z -??0concurrent_queue_iterator_base@internal@tbb@@IEAA@AEBVconcurrent_queue_base@12@@Z -??1concurrent_queue_base@internal@tbb@@MEAA@XZ -??1concurrent_queue_iterator_base@internal@tbb@@IEAA@XZ -?advance@concurrent_queue_iterator_base@internal@tbb@@IEAAXXZ -?assign@concurrent_queue_iterator_base@internal@tbb@@IEAAXAEBV123@@Z -?internal_pop@concurrent_queue_base@internal@tbb@@IEAAXPEAX@Z -?internal_pop_if_present@concurrent_queue_base@internal@tbb@@IEAA_NPEAX@Z -?internal_push@concurrent_queue_base@internal@tbb@@IEAAXPEBX@Z -?internal_push_if_not_full@concurrent_queue_base@internal@tbb@@IEAA_NPEBX@Z -?internal_set_capacity@concurrent_queue_base@internal@tbb@@IEAAX_J_K@Z -?internal_size@concurrent_queue_base@internal@tbb@@IEBA_JXZ - - - -??0concurrent_queue_iterator_base_v3@internal@tbb@@IEAA@AEBVconcurrent_queue_base_v3@12@@Z -??0concurrent_queue_iterator_base_v3@internal@tbb@@IEAA@AEBVconcurrent_queue_base_v3@12@_K@Z -??1concurrent_queue_iterator_base_v3@internal@tbb@@IEAA@XZ -?assign@concurrent_queue_iterator_base_v3@internal@tbb@@IEAAXAEBV123@@Z -?advance@concurrent_queue_iterator_base_v3@internal@tbb@@IEAAXXZ -??0concurrent_queue_base_v3@internal@tbb@@IEAA@_K@Z -??1concurrent_queue_base_v3@internal@tbb@@MEAA@XZ -?internal_push@concurrent_queue_base_v3@internal@tbb@@IEAAXPEBX@Z -?internal_push_if_not_full@concurrent_queue_base_v3@internal@tbb@@IEAA_NPEBX@Z -?internal_pop@concurrent_queue_base_v3@internal@tbb@@IEAAXPEAX@Z -?internal_pop_if_present@concurrent_queue_base_v3@internal@tbb@@IEAA_NPEAX@Z -?internal_abort@concurrent_queue_base_v3@internal@tbb@@IEAAXXZ -?internal_size@concurrent_queue_base_v3@internal@tbb@@IEBA_JXZ -?internal_empty@concurrent_queue_base_v3@internal@tbb@@IEBA_NXZ -?internal_finish_clear@concurrent_queue_base_v3@internal@tbb@@IEAAXXZ -?internal_set_capacity@concurrent_queue_base_v3@internal@tbb@@IEAAX_J_K@Z -?internal_throw_exception@concurrent_queue_base_v3@internal@tbb@@IEBAXXZ -?assign@concurrent_queue_base_v3@internal@tbb@@IEAAXAEBV123@@Z - - - -?internal_assign@concurrent_vector_base@internal@tbb@@IEAAXAEBV123@_KP6AXPEAX1@ZP6AX2PEBX1@Z5@Z -?internal_capacity@concurrent_vector_base@internal@tbb@@IEBA_KXZ -?internal_clear@concurrent_vector_base@internal@tbb@@IEAAXP6AXPEAX_K@Z_N@Z -?internal_copy@concurrent_vector_base@internal@tbb@@IEAAXAEBV123@_KP6AXPEAXPEBX1@Z@Z -?internal_grow_by@concurrent_vector_base@internal@tbb@@IEAA_K_K0P6AXPEAX0@Z@Z -?internal_grow_to_at_least@concurrent_vector_base@internal@tbb@@IEAAX_K0P6AXPEAX0@Z@Z -?internal_push_back@concurrent_vector_base@internal@tbb@@IEAAPEAX_KAEA_K@Z -?internal_reserve@concurrent_vector_base@internal@tbb@@IEAAX_K00@Z - - - -??1concurrent_vector_base_v3@internal@tbb@@IEAA@XZ -?internal_assign@concurrent_vector_base_v3@internal@tbb@@IEAAXAEBV123@_KP6AXPEAX1@ZP6AX2PEBX1@Z5@Z -?internal_capacity@concurrent_vector_base_v3@internal@tbb@@IEBA_KXZ -?internal_clear@concurrent_vector_base_v3@internal@tbb@@IEAA_KP6AXPEAX_K@Z@Z -?internal_copy@concurrent_vector_base_v3@internal@tbb@@IEAAXAEBV123@_KP6AXPEAXPEBX1@Z@Z -?internal_grow_by@concurrent_vector_base_v3@internal@tbb@@IEAA_K_K0P6AXPEAXPEBX0@Z2@Z -?internal_grow_to_at_least@concurrent_vector_base_v3@internal@tbb@@IEAAX_K0P6AXPEAXPEBX0@Z2@Z -?internal_push_back@concurrent_vector_base_v3@internal@tbb@@IEAAPEAX_KAEA_K@Z -?internal_reserve@concurrent_vector_base_v3@internal@tbb@@IEAAX_K00@Z -?internal_compact@concurrent_vector_base_v3@internal@tbb@@IEAAPEAX_KPEAXP6AX10@ZP6AX1PEBX0@Z@Z -?internal_swap@concurrent_vector_base_v3@internal@tbb@@IEAAXAEAV123@@Z -?internal_throw_exception@concurrent_vector_base_v3@internal@tbb@@IEBAX_K@Z -?internal_resize@concurrent_vector_base_v3@internal@tbb@@IEAAX_K00PEBXP6AXPEAX0@ZP6AX210@Z@Z -?internal_grow_to_at_least_with_result@concurrent_vector_base_v3@internal@tbb@@IEAA_K_K0P6AXPEAXPEBX0@Z2@Z - - -?allocate_closure_v3@internal@tbb@@YAPEAX_K@Z -?detach@tbb_thread_v3@internal@tbb@@QEAAXXZ -?free_closure_v3@internal@tbb@@YAXPEAX@Z -?hardware_concurrency@tbb_thread_v3@internal@tbb@@SAIXZ -?internal_start@tbb_thread_v3@internal@tbb@@AEAAXP6AIPEAX@Z0@Z -?join@tbb_thread_v3@internal@tbb@@QEAAXXZ -?move_v3@internal@tbb@@YAXAEAVtbb_thread_v3@12@0@Z -?thread_get_id_v3@internal@tbb@@YA?AVid@tbb_thread_v3@12@XZ -?thread_sleep_v3@internal@tbb@@YAXAEBVinterval_t@tick_count@2@@Z -?thread_yield_v3@internal@tbb@@YAXXZ - - -?internal_initialize_condition_variable@internal@interface5@tbb@@YAXAEATcondvar_impl_t@123@@Z -?internal_condition_variable_wait@internal@interface5@tbb@@YA_NAEATcondvar_impl_t@123@PEAVmutex@3@PEBVinterval_t@tick_count@3@@Z -?internal_condition_variable_notify_one@internal@interface5@tbb@@YAXAEATcondvar_impl_t@123@@Z -?internal_condition_variable_notify_all@internal@interface5@tbb@@YAXAEATcondvar_impl_t@123@@Z -?internal_destroy_condition_variable@internal@interface5@tbb@@YAXAEATcondvar_impl_t@123@@Z - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbb.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbb.lib deleted file mode 100644 index a35b410ba..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbb.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbb_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbb_debug.lib deleted file mode 100644 index f2120eeb3..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbb_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbb_preview.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbb_preview.lib deleted file mode 100644 index b6c8f45bc..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbb_preview.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbb_preview_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbb_preview_debug.lib deleted file mode 100644 index ac577a0c7..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbb_preview_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbbmalloc.def b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbbmalloc.def deleted file mode 100644 index fc9b88154..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbbmalloc.def +++ /dev/null @@ -1,48 +0,0 @@ - -; Copyright 2005-2014 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. - -EXPORTS - -; frontend.cpp -scalable_calloc -scalable_free -scalable_malloc -scalable_realloc -scalable_posix_memalign -scalable_aligned_malloc -scalable_aligned_realloc -scalable_aligned_free -safer_scalable_free -safer_scalable_realloc -scalable_msize -scalable_allocation_mode -scalable_allocation_command -safer_scalable_msize -safer_scalable_aligned_msize -safer_scalable_aligned_realloc -; memory pool stuff -?pool_create@rml@@YAPEAVMemoryPool@1@_JPEBUMemPoolPolicy@1@@Z -?pool_create_v1@rml@@YA?AW4MemPoolError@1@_JPEBUMemPoolPolicy@1@PEAPEAVMemoryPool@1@@Z -?pool_destroy@rml@@YA_NPEAVMemoryPool@1@@Z -?pool_malloc@rml@@YAPEAXPEAVMemoryPool@1@_K@Z -?pool_free@rml@@YA_NPEAVMemoryPool@1@PEAX@Z -?pool_reset@rml@@YA_NPEAVMemoryPool@1@@Z -?pool_realloc@rml@@YAPEAXPEAVMemoryPool@1@PEAX_K@Z -?pool_aligned_realloc@rml@@YAPEAXPEAVMemoryPool@1@PEAX_K2@Z -?pool_aligned_malloc@rml@@YAPEAXPEAVMemoryPool@1@_K1@Z diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbbmalloc.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbbmalloc.lib deleted file mode 100644 index b27c16750..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbbmalloc.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbbmalloc_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbbmalloc_debug.lib deleted file mode 100644 index 9e2d54d16..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbbmalloc_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbbmalloc_proxy.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbbmalloc_proxy.lib deleted file mode 100644 index e2bffdaad..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbbmalloc_proxy.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbbmalloc_proxy_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbbmalloc_proxy_debug.lib deleted file mode 100644 index 15fcf7015..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbbmalloc_proxy_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbbproxy.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbbproxy.lib deleted file mode 100644 index 27e2df2a2..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbbproxy.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbbproxy.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbbproxy.pdb deleted file mode 100644 index f9eb6cb90..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbbproxy.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbbproxy_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbbproxy_debug.lib deleted file mode 100644 index 9bb22198c..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbbproxy_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbbproxy_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbbproxy_debug.pdb deleted file mode 100644 index 59d844720..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11/tbbproxy_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/irml/irml.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/irml/irml.lib deleted file mode 100644 index 01b2ff826..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/irml/irml.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/irml/irml_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/irml/irml_debug.lib deleted file mode 100644 index a3dc2f772..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/irml/irml_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbb.def b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbb.def deleted file mode 100644 index 955fbd7af..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbb.def +++ /dev/null @@ -1,923 +0,0 @@ - -; Copyright 2005-2014 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. - -; This file is organized with a section for each .cpp file. -; Each of these sections is in alphabetical order. - -EXPORTS - - - -; Copyright 2005-2014 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -__TBB_machine_cmpswp1 -__TBB_machine_fetchadd1 -__TBB_machine_fetchstore1 -__TBB_machine_cmpswp2 -__TBB_machine_fetchadd2 -__TBB_machine_fetchstore2 -__TBB_machine_pause -__TBB_machine_try_lock_elided -__TBB_machine_unlock_elided -__TBB_machine_is_in_transaction - - -?NFS_Allocate@internal@tbb@@YAPEAX_K0PEAX@Z -?NFS_GetLineSize@internal@tbb@@YA_KXZ -?NFS_Free@internal@tbb@@YAXPEAX@Z -?allocate_via_handler_v3@internal@tbb@@YAPEAX_K@Z -?deallocate_via_handler_v3@internal@tbb@@YAXPEAX@Z -?is_malloc_used_v3@internal@tbb@@YA_NXZ - - - -?resize@affinity_partitioner_base_v3@internal@tbb@@AEAAXI@Z -?allocate@allocate_additional_child_of_proxy@internal@tbb@@QEBAAEAVtask@3@_K@Z -?allocate@allocate_child_proxy@internal@tbb@@QEBAAEAVtask@3@_K@Z -?allocate@allocate_continuation_proxy@internal@tbb@@QEBAAEAVtask@3@_K@Z -?allocate@allocate_root_proxy@internal@tbb@@SAAEAVtask@3@_K@Z -?destroy@task_base@internal@interface5@tbb@@SAXAEAVtask@4@@Z -?free@allocate_additional_child_of_proxy@internal@tbb@@QEBAXAEAVtask@3@@Z -?free@allocate_child_proxy@internal@tbb@@QEBAXAEAVtask@3@@Z -?free@allocate_continuation_proxy@internal@tbb@@QEBAXAEAVtask@3@@Z -?free@allocate_root_proxy@internal@tbb@@SAXAEAVtask@3@@Z -?internal_set_ref_count@task@tbb@@AEAAXH@Z -?internal_decrement_ref_count@task@tbb@@AEAA_JXZ -?is_owned_by_current_thread@task@tbb@@QEBA_NXZ -?note_affinity@task@tbb@@UEAAXG@Z -?self@task@tbb@@SAAEAV12@XZ -?spawn_and_wait_for_all@task@tbb@@QEAAXAEAVtask_list@2@@Z -?default_num_threads@task_scheduler_init@tbb@@SAHXZ -?initialize@task_scheduler_init@tbb@@QEAAXH_K@Z -?initialize@task_scheduler_init@tbb@@QEAAXH@Z -?terminate@task_scheduler_init@tbb@@QEAAXXZ - -?observe@task_scheduler_observer_v3@internal@tbb@@QEAAX_N@Z - - - - -?internal_current_slot@task_arena_base@internal@interface7@tbb@@KAHXZ -?internal_initialize@task_arena_base@internal@interface7@tbb@@IEAAXXZ -?internal_terminate@task_arena_base@internal@interface7@tbb@@IEAAXXZ -?internal_enqueue@task_arena_base@internal@interface7@tbb@@IEBAXAEAVtask@4@_J@Z -?internal_execute@task_arena_base@internal@interface7@tbb@@IEBAXAEAVdelegate_base@234@@Z -?internal_wait@task_arena_base@internal@interface7@tbb@@IEBAXXZ - - - - -?destroy@task@tbb@@QEAAXAEAV12@@Z - - - - -?allocate@allocate_root_with_context_proxy@internal@tbb@@QEBAAEAVtask@3@_K@Z -?free@allocate_root_with_context_proxy@internal@tbb@@QEBAXAEAVtask@3@@Z -?change_group@task@tbb@@QEAAXAEAVtask_group_context@2@@Z -?is_group_execution_cancelled@task_group_context@tbb@@QEBA_NXZ -?cancel_group_execution@task_group_context@tbb@@QEAA_NXZ -?reset@task_group_context@tbb@@QEAAXXZ -?init@task_group_context@tbb@@IEAAXXZ -?register_pending_exception@task_group_context@tbb@@QEAAXXZ -??1task_group_context@tbb@@QEAA@XZ - -?set_priority@task_group_context@tbb@@QEAAXW4priority_t@2@@Z -?priority@task_group_context@tbb@@QEBA?AW4priority_t@2@XZ - -?name@captured_exception@tbb@@UEBAPEBDXZ -?what@captured_exception@tbb@@UEBAPEBDXZ -??1captured_exception@tbb@@UEAA@XZ -?move@captured_exception@tbb@@UEAAPEAV12@XZ -?destroy@captured_exception@tbb@@UEAAXXZ -?set@captured_exception@tbb@@QEAAXPEBD0@Z -?clear@captured_exception@tbb@@QEAAXXZ - - - -?throw_bad_last_alloc_exception_v4@internal@tbb@@YAXXZ -?throw_exception_v4@internal@tbb@@YAXW4exception_id@12@@Z -?what@bad_last_alloc@tbb@@UEBAPEBDXZ -?what@missing_wait@tbb@@UEBAPEBDXZ -?what@invalid_multiple_scheduling@tbb@@UEBAPEBDXZ -?what@improper_lock@tbb@@UEBAPEBDXZ -?what@user_abort@tbb@@UEBAPEBDXZ - - -?assertion_failure@tbb@@YAXPEBDH00@Z -?get_initial_auto_partitioner_divisor@internal@tbb@@YA_KXZ -?handle_perror@internal@tbb@@YAXHPEBD@Z -?set_assertion_handler@tbb@@YAP6AXPEBDH00@ZP6AX0H00@Z@Z -?runtime_warning@internal@tbb@@YAXPEBDZZ -TBB_runtime_interface_version - - -?itt_load_pointer_with_acquire_v3@internal@tbb@@YAPEAXPEBX@Z -?itt_store_pointer_with_release_v3@internal@tbb@@YAXPEAX0@Z -?call_itt_notify_v5@internal@tbb@@YAXHPEAX@Z -?itt_load_pointer_v3@internal@tbb@@YAPEAXPEBX@Z -?itt_set_sync_name_v3@internal@tbb@@YAXPEAXPEB_W@Z - - - - - - - - - -??_7pipeline@tbb@@6B@ -??0pipeline@tbb@@QEAA@XZ -??1filter@tbb@@UEAA@XZ -??1pipeline@tbb@@UEAA@XZ -?add_filter@pipeline@tbb@@QEAAXAEAVfilter@2@@Z -?clear@pipeline@tbb@@QEAAXXZ -?inject_token@pipeline@tbb@@AEAAXAEAVtask@2@@Z -?run@pipeline@tbb@@QEAAX_K@Z - -?run@pipeline@tbb@@QEAAX_KAEAVtask_group_context@2@@Z - -?process_item@thread_bound_filter@tbb@@QEAA?AW4result_type@12@XZ -?try_process_item@thread_bound_filter@tbb@@QEAA?AW4result_type@12@XZ -?set_end_of_input@filter@tbb@@IEAAXXZ - - -?internal_construct@queuing_rw_mutex@tbb@@QEAAXXZ -?acquire@scoped_lock@queuing_rw_mutex@tbb@@QEAAXAEAV23@_N@Z -?downgrade_to_reader@scoped_lock@queuing_rw_mutex@tbb@@QEAA_NXZ -?release@scoped_lock@queuing_rw_mutex@tbb@@QEAAXXZ -?upgrade_to_writer@scoped_lock@queuing_rw_mutex@tbb@@QEAA_NXZ -?try_acquire@scoped_lock@queuing_rw_mutex@tbb@@QEAA_NAEAV23@_N@Z - - -?try_lock_read@reader_writer_lock@interface5@tbb@@QEAA_NXZ -?try_lock@reader_writer_lock@interface5@tbb@@QEAA_NXZ -?unlock@reader_writer_lock@interface5@tbb@@QEAAXXZ -?lock_read@reader_writer_lock@interface5@tbb@@QEAAXXZ -?lock@reader_writer_lock@interface5@tbb@@QEAAXXZ -?internal_construct@reader_writer_lock@interface5@tbb@@AEAAXXZ -?internal_destroy@reader_writer_lock@interface5@tbb@@AEAAXXZ -?internal_construct@scoped_lock@reader_writer_lock@interface5@tbb@@AEAAXAEAV234@@Z -?internal_destroy@scoped_lock@reader_writer_lock@interface5@tbb@@AEAAXXZ -?internal_construct@scoped_lock_read@reader_writer_lock@interface5@tbb@@AEAAXAEAV234@@Z -?internal_destroy@scoped_lock_read@reader_writer_lock@interface5@tbb@@AEAAXXZ - - - -?internal_itt_releasing@spin_rw_mutex@tbb@@CAXPEAV12@@Z -?internal_acquire_writer@spin_rw_mutex@tbb@@CA_NPEAV12@@Z -?internal_acquire_reader@spin_rw_mutex@tbb@@CAXPEAV12@@Z -?internal_downgrade@spin_rw_mutex@tbb@@CAXPEAV12@@Z -?internal_upgrade@spin_rw_mutex@tbb@@CA_NPEAV12@@Z -?internal_release_reader@spin_rw_mutex@tbb@@CAXPEAV12@@Z -?internal_release_writer@spin_rw_mutex@tbb@@CAXPEAV12@@Z -?internal_try_acquire_writer@spin_rw_mutex@tbb@@CA_NPEAV12@@Z -?internal_try_acquire_reader@spin_rw_mutex@tbb@@CA_NPEAV12@@Z - - - -?internal_construct@spin_rw_mutex_v3@tbb@@AEAAXXZ -?internal_upgrade@spin_rw_mutex_v3@tbb@@AEAA_NXZ -?internal_downgrade@spin_rw_mutex_v3@tbb@@AEAAXXZ -?internal_acquire_reader@spin_rw_mutex_v3@tbb@@AEAAXXZ -?internal_acquire_writer@spin_rw_mutex_v3@tbb@@AEAA_NXZ -?internal_release_reader@spin_rw_mutex_v3@tbb@@AEAAXXZ -?internal_release_writer@spin_rw_mutex_v3@tbb@@AEAAXXZ -?internal_try_acquire_reader@spin_rw_mutex_v3@tbb@@AEAA_NXZ -?internal_try_acquire_writer@spin_rw_mutex_v3@tbb@@AEAA_NXZ - - - - - - - - - - - - - -?internal_construct@spin_mutex@tbb@@QEAAXXZ -?internal_acquire@scoped_lock@spin_mutex@tbb@@AEAAXAEAV23@@Z -?internal_release@scoped_lock@spin_mutex@tbb@@AEAAXXZ -?internal_try_acquire@scoped_lock@spin_mutex@tbb@@AEAA_NAEAV23@@Z - - -?internal_acquire@scoped_lock@mutex@tbb@@AEAAXAEAV23@@Z -?internal_release@scoped_lock@mutex@tbb@@AEAAXXZ -?internal_try_acquire@scoped_lock@mutex@tbb@@AEAA_NAEAV23@@Z -?internal_construct@mutex@tbb@@AEAAXXZ -?internal_destroy@mutex@tbb@@AEAAXXZ - - -?internal_construct@recursive_mutex@tbb@@AEAAXXZ -?internal_destroy@recursive_mutex@tbb@@AEAAXXZ -?internal_acquire@scoped_lock@recursive_mutex@tbb@@AEAAXAEAV23@@Z -?internal_try_acquire@scoped_lock@recursive_mutex@tbb@@AEAA_NAEAV23@@Z -?internal_release@scoped_lock@recursive_mutex@tbb@@AEAAXXZ - - -?internal_construct@queuing_mutex@tbb@@QEAAXXZ -?acquire@scoped_lock@queuing_mutex@tbb@@QEAAXAEAV23@@Z -?release@scoped_lock@queuing_mutex@tbb@@QEAAXXZ -?try_acquire@scoped_lock@queuing_mutex@tbb@@QEAA_NAEAV23@@Z - - -?internal_construct@critical_section_v4@internal@tbb@@QEAAXXZ - - - -?internal_grow_predicate@hash_map_segment_base@internal@tbb@@QEBA_NXZ - - -??0concurrent_queue_base@internal@tbb@@IEAA@_K@Z -??0concurrent_queue_iterator_base@internal@tbb@@IEAA@AEBVconcurrent_queue_base@12@@Z -??1concurrent_queue_base@internal@tbb@@MEAA@XZ -??1concurrent_queue_iterator_base@internal@tbb@@IEAA@XZ -?advance@concurrent_queue_iterator_base@internal@tbb@@IEAAXXZ -?assign@concurrent_queue_iterator_base@internal@tbb@@IEAAXAEBV123@@Z -?internal_pop@concurrent_queue_base@internal@tbb@@IEAAXPEAX@Z -?internal_pop_if_present@concurrent_queue_base@internal@tbb@@IEAA_NPEAX@Z -?internal_push@concurrent_queue_base@internal@tbb@@IEAAXPEBX@Z -?internal_push_if_not_full@concurrent_queue_base@internal@tbb@@IEAA_NPEBX@Z -?internal_set_capacity@concurrent_queue_base@internal@tbb@@IEAAX_J_K@Z -?internal_size@concurrent_queue_base@internal@tbb@@IEBA_JXZ - - - -??0concurrent_queue_iterator_base_v3@internal@tbb@@IEAA@AEBVconcurrent_queue_base_v3@12@@Z -??0concurrent_queue_iterator_base_v3@internal@tbb@@IEAA@AEBVconcurrent_queue_base_v3@12@_K@Z -??1concurrent_queue_iterator_base_v3@internal@tbb@@IEAA@XZ -?assign@concurrent_queue_iterator_base_v3@internal@tbb@@IEAAXAEBV123@@Z -?advance@concurrent_queue_iterator_base_v3@internal@tbb@@IEAAXXZ -??0concurrent_queue_base_v3@internal@tbb@@IEAA@_K@Z -??1concurrent_queue_base_v3@internal@tbb@@MEAA@XZ -?internal_push@concurrent_queue_base_v3@internal@tbb@@IEAAXPEBX@Z -?internal_push_if_not_full@concurrent_queue_base_v3@internal@tbb@@IEAA_NPEBX@Z -?internal_pop@concurrent_queue_base_v3@internal@tbb@@IEAAXPEAX@Z -?internal_pop_if_present@concurrent_queue_base_v3@internal@tbb@@IEAA_NPEAX@Z -?internal_abort@concurrent_queue_base_v3@internal@tbb@@IEAAXXZ -?internal_size@concurrent_queue_base_v3@internal@tbb@@IEBA_JXZ -?internal_empty@concurrent_queue_base_v3@internal@tbb@@IEBA_NXZ -?internal_finish_clear@concurrent_queue_base_v3@internal@tbb@@IEAAXXZ -?internal_set_capacity@concurrent_queue_base_v3@internal@tbb@@IEAAX_J_K@Z -?internal_throw_exception@concurrent_queue_base_v3@internal@tbb@@IEBAXXZ -?assign@concurrent_queue_base_v3@internal@tbb@@IEAAXAEBV123@@Z - - - -?internal_assign@concurrent_vector_base@internal@tbb@@IEAAXAEBV123@_KP6AXPEAX1@ZP6AX2PEBX1@Z5@Z -?internal_capacity@concurrent_vector_base@internal@tbb@@IEBA_KXZ -?internal_clear@concurrent_vector_base@internal@tbb@@IEAAXP6AXPEAX_K@Z_N@Z -?internal_copy@concurrent_vector_base@internal@tbb@@IEAAXAEBV123@_KP6AXPEAXPEBX1@Z@Z -?internal_grow_by@concurrent_vector_base@internal@tbb@@IEAA_K_K0P6AXPEAX0@Z@Z -?internal_grow_to_at_least@concurrent_vector_base@internal@tbb@@IEAAX_K0P6AXPEAX0@Z@Z -?internal_push_back@concurrent_vector_base@internal@tbb@@IEAAPEAX_KAEA_K@Z -?internal_reserve@concurrent_vector_base@internal@tbb@@IEAAX_K00@Z - - - -??1concurrent_vector_base_v3@internal@tbb@@IEAA@XZ -?internal_assign@concurrent_vector_base_v3@internal@tbb@@IEAAXAEBV123@_KP6AXPEAX1@ZP6AX2PEBX1@Z5@Z -?internal_capacity@concurrent_vector_base_v3@internal@tbb@@IEBA_KXZ -?internal_clear@concurrent_vector_base_v3@internal@tbb@@IEAA_KP6AXPEAX_K@Z@Z -?internal_copy@concurrent_vector_base_v3@internal@tbb@@IEAAXAEBV123@_KP6AXPEAXPEBX1@Z@Z -?internal_grow_by@concurrent_vector_base_v3@internal@tbb@@IEAA_K_K0P6AXPEAXPEBX0@Z2@Z -?internal_grow_to_at_least@concurrent_vector_base_v3@internal@tbb@@IEAAX_K0P6AXPEAXPEBX0@Z2@Z -?internal_push_back@concurrent_vector_base_v3@internal@tbb@@IEAAPEAX_KAEA_K@Z -?internal_reserve@concurrent_vector_base_v3@internal@tbb@@IEAAX_K00@Z -?internal_compact@concurrent_vector_base_v3@internal@tbb@@IEAAPEAX_KPEAXP6AX10@ZP6AX1PEBX0@Z@Z -?internal_swap@concurrent_vector_base_v3@internal@tbb@@IEAAXAEAV123@@Z -?internal_throw_exception@concurrent_vector_base_v3@internal@tbb@@IEBAX_K@Z -?internal_resize@concurrent_vector_base_v3@internal@tbb@@IEAAX_K00PEBXP6AXPEAX0@ZP6AX210@Z@Z -?internal_grow_to_at_least_with_result@concurrent_vector_base_v3@internal@tbb@@IEAA_K_K0P6AXPEAXPEBX0@Z2@Z - - -?allocate_closure_v3@internal@tbb@@YAPEAX_K@Z -?detach@tbb_thread_v3@internal@tbb@@QEAAXXZ -?free_closure_v3@internal@tbb@@YAXPEAX@Z -?hardware_concurrency@tbb_thread_v3@internal@tbb@@SAIXZ -?internal_start@tbb_thread_v3@internal@tbb@@AEAAXP6AIPEAX@Z0@Z -?join@tbb_thread_v3@internal@tbb@@QEAAXXZ -?move_v3@internal@tbb@@YAXAEAVtbb_thread_v3@12@0@Z -?thread_get_id_v3@internal@tbb@@YA?AVid@tbb_thread_v3@12@XZ -?thread_sleep_v3@internal@tbb@@YAXAEBVinterval_t@tick_count@2@@Z -?thread_yield_v3@internal@tbb@@YAXXZ - - -?internal_initialize_condition_variable@internal@interface5@tbb@@YAXAEATcondvar_impl_t@123@@Z -?internal_condition_variable_wait@internal@interface5@tbb@@YA_NAEATcondvar_impl_t@123@PEAVmutex@3@PEBVinterval_t@tick_count@3@@Z -?internal_condition_variable_notify_one@internal@interface5@tbb@@YAXAEATcondvar_impl_t@123@@Z -?internal_condition_variable_notify_all@internal@interface5@tbb@@YAXAEATcondvar_impl_t@123@@Z -?internal_destroy_condition_variable@internal@interface5@tbb@@YAXAEATcondvar_impl_t@123@@Z - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbb.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbb.lib deleted file mode 100644 index c9d5be1ee..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbb.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbb_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbb_debug.lib deleted file mode 100644 index 7bc612730..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbb_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbb_preview.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbb_preview.lib deleted file mode 100644 index 3a5d071f4..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbb_preview.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbb_preview_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbb_preview_debug.lib deleted file mode 100644 index d50a078ef..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbb_preview_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbbmalloc.def b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbbmalloc.def deleted file mode 100644 index fc9b88154..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbbmalloc.def +++ /dev/null @@ -1,48 +0,0 @@ - -; Copyright 2005-2014 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. - -EXPORTS - -; frontend.cpp -scalable_calloc -scalable_free -scalable_malloc -scalable_realloc -scalable_posix_memalign -scalable_aligned_malloc -scalable_aligned_realloc -scalable_aligned_free -safer_scalable_free -safer_scalable_realloc -scalable_msize -scalable_allocation_mode -scalable_allocation_command -safer_scalable_msize -safer_scalable_aligned_msize -safer_scalable_aligned_realloc -; memory pool stuff -?pool_create@rml@@YAPEAVMemoryPool@1@_JPEBUMemPoolPolicy@1@@Z -?pool_create_v1@rml@@YA?AW4MemPoolError@1@_JPEBUMemPoolPolicy@1@PEAPEAVMemoryPool@1@@Z -?pool_destroy@rml@@YA_NPEAVMemoryPool@1@@Z -?pool_malloc@rml@@YAPEAXPEAVMemoryPool@1@_K@Z -?pool_free@rml@@YA_NPEAVMemoryPool@1@PEAX@Z -?pool_reset@rml@@YA_NPEAVMemoryPool@1@@Z -?pool_realloc@rml@@YAPEAXPEAVMemoryPool@1@PEAX_K@Z -?pool_aligned_realloc@rml@@YAPEAXPEAVMemoryPool@1@PEAX_K2@Z -?pool_aligned_malloc@rml@@YAPEAXPEAVMemoryPool@1@_K1@Z diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbbmalloc.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbbmalloc.lib deleted file mode 100644 index 34b3bc313..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbbmalloc.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbbmalloc_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbbmalloc_debug.lib deleted file mode 100644 index b7bc0056a..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbbmalloc_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbbmalloc_proxy.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbbmalloc_proxy.lib deleted file mode 100644 index 53a877f78..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbbmalloc_proxy.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbbmalloc_proxy_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbbmalloc_proxy_debug.lib deleted file mode 100644 index 59887b4ce..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbbmalloc_proxy_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbbproxy.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbbproxy.lib deleted file mode 100644 index 8dbade73a..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbbproxy.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbbproxy.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbbproxy.pdb deleted file mode 100644 index 242bc221c..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbbproxy.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbbproxy_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbbproxy_debug.lib deleted file mode 100644 index a958b41b8..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbbproxy_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbbproxy_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbbproxy_debug.pdb deleted file mode 100644 index 5f07b9451..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc11_ui/tbbproxy_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/irml/irml.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/irml/irml.lib deleted file mode 100644 index 0ff831e81..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/irml/irml.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/irml/irml_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/irml/irml_debug.lib deleted file mode 100644 index babb70ec0..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/irml/irml_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbb.def b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbb.def deleted file mode 100644 index 8e4bab40a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbb.def +++ /dev/null @@ -1,923 +0,0 @@ - -; Copyright 2005-2014 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. - -; This file is organized with a section for each .cpp file. -; Each of these sections is in alphabetical order. - -EXPORTS - - - -; Copyright 2005-2014 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -__TBB_machine_cmpswp1 -__TBB_machine_fetchadd1 -__TBB_machine_fetchstore1 -__TBB_machine_cmpswp2 -__TBB_machine_fetchadd2 -__TBB_machine_fetchstore2 -__TBB_machine_pause -__TBB_machine_try_lock_elided -__TBB_machine_unlock_elided -__TBB_machine_is_in_transaction - - -?NFS_Allocate@internal@tbb@@YAPEAX_K0PEAX@Z -?NFS_GetLineSize@internal@tbb@@YA_KXZ -?NFS_Free@internal@tbb@@YAXPEAX@Z -?allocate_via_handler_v3@internal@tbb@@YAPEAX_K@Z -?deallocate_via_handler_v3@internal@tbb@@YAXPEAX@Z -?is_malloc_used_v3@internal@tbb@@YA_NXZ - - - -?resize@affinity_partitioner_base_v3@internal@tbb@@AEAAXI@Z -?allocate@allocate_additional_child_of_proxy@internal@tbb@@QEBAAEAVtask@3@_K@Z -?allocate@allocate_child_proxy@internal@tbb@@QEBAAEAVtask@3@_K@Z -?allocate@allocate_continuation_proxy@internal@tbb@@QEBAAEAVtask@3@_K@Z -?allocate@allocate_root_proxy@internal@tbb@@SAAEAVtask@3@_K@Z -?destroy@task_base@internal@interface5@tbb@@SAXAEAVtask@4@@Z -?free@allocate_additional_child_of_proxy@internal@tbb@@QEBAXAEAVtask@3@@Z -?free@allocate_child_proxy@internal@tbb@@QEBAXAEAVtask@3@@Z -?free@allocate_continuation_proxy@internal@tbb@@QEBAXAEAVtask@3@@Z -?free@allocate_root_proxy@internal@tbb@@SAXAEAVtask@3@@Z -?internal_set_ref_count@task@tbb@@AEAAXH@Z -?internal_decrement_ref_count@task@tbb@@AEAA_JXZ -?is_owned_by_current_thread@task@tbb@@QEBA_NXZ -?note_affinity@task@tbb@@UEAAXG@Z -?self@task@tbb@@SAAEAV12@XZ -?spawn_and_wait_for_all@task@tbb@@QEAAXAEAVtask_list@2@@Z -?default_num_threads@task_scheduler_init@tbb@@SAHXZ -?initialize@task_scheduler_init@tbb@@QEAAXH_K@Z -?initialize@task_scheduler_init@tbb@@QEAAXH@Z -?terminate@task_scheduler_init@tbb@@QEAAXXZ - -?observe@task_scheduler_observer_v3@internal@tbb@@QEAAX_N@Z - - - - -?internal_current_slot@task_arena_base@internal@interface7@tbb@@KAHXZ -?internal_initialize@task_arena_base@internal@interface7@tbb@@IEAAXXZ -?internal_terminate@task_arena_base@internal@interface7@tbb@@IEAAXXZ -?internal_enqueue@task_arena_base@internal@interface7@tbb@@IEBAXAEAVtask@4@_J@Z -?internal_execute@task_arena_base@internal@interface7@tbb@@IEBAXAEAVdelegate_base@234@@Z -?internal_wait@task_arena_base@internal@interface7@tbb@@IEBAXXZ - - - - -?destroy@task@tbb@@QEAAXAEAV12@@Z - - - - -?allocate@allocate_root_with_context_proxy@internal@tbb@@QEBAAEAVtask@3@_K@Z -?free@allocate_root_with_context_proxy@internal@tbb@@QEBAXAEAVtask@3@@Z -?change_group@task@tbb@@QEAAXAEAVtask_group_context@2@@Z -?is_group_execution_cancelled@task_group_context@tbb@@QEBA_NXZ -?cancel_group_execution@task_group_context@tbb@@QEAA_NXZ -?reset@task_group_context@tbb@@QEAAXXZ -?init@task_group_context@tbb@@IEAAXXZ -?register_pending_exception@task_group_context@tbb@@QEAAXXZ -??1task_group_context@tbb@@QEAA@XZ - -?set_priority@task_group_context@tbb@@QEAAXW4priority_t@2@@Z -?priority@task_group_context@tbb@@QEBA?AW4priority_t@2@XZ - -?name@captured_exception@tbb@@UEBAPEBDXZ -?what@captured_exception@tbb@@UEBAPEBDXZ -??1captured_exception@tbb@@UEAA@XZ -?move@captured_exception@tbb@@UEAAPEAV12@XZ -?destroy@captured_exception@tbb@@UEAAXXZ -?set@captured_exception@tbb@@QEAAXPEBD0@Z -?clear@captured_exception@tbb@@QEAAXXZ - - - -?throw_bad_last_alloc_exception_v4@internal@tbb@@YAXXZ -?throw_exception_v4@internal@tbb@@YAXW4exception_id@12@@Z -?what@bad_last_alloc@tbb@@UEBAPEBDXZ -?what@missing_wait@tbb@@UEBAPEBDXZ -?what@invalid_multiple_scheduling@tbb@@UEBAPEBDXZ -?what@improper_lock@tbb@@UEBAPEBDXZ -?what@user_abort@tbb@@UEBAPEBDXZ - - -?assertion_failure@tbb@@YAXPEBDH00@Z -?get_initial_auto_partitioner_divisor@internal@tbb@@YA_KXZ -?handle_perror@internal@tbb@@YAXHPEBD@Z -?set_assertion_handler@tbb@@YAP6AXPEBDH00@ZP6AX0H00@Z@Z -?runtime_warning@internal@tbb@@YAXPEBDZZ -TBB_runtime_interface_version - - -?itt_load_pointer_with_acquire_v3@internal@tbb@@YAPEAXPEBX@Z -?itt_store_pointer_with_release_v3@internal@tbb@@YAXPEAX0@Z -?call_itt_notify_v5@internal@tbb@@YAXHPEAX@Z -?itt_load_pointer_v3@internal@tbb@@YAPEAXPEBX@Z -?itt_set_sync_name_v3@internal@tbb@@YAXPEAXPEB_W@Z - - - - - - - - - -??_7pipeline@tbb@@6B@ -??0pipeline@tbb@@QEAA@XZ -??1filter@tbb@@UEAA@XZ -??1pipeline@tbb@@UEAA@XZ -?add_filter@pipeline@tbb@@QEAAXAEAVfilter@2@@Z -?clear@pipeline@tbb@@QEAAXXZ -?inject_token@pipeline@tbb@@AEAAXAEAVtask@2@@Z -?run@pipeline@tbb@@QEAAX_K@Z - -?run@pipeline@tbb@@QEAAX_KAEAVtask_group_context@2@@Z - -?process_item@thread_bound_filter@tbb@@QEAA?AW4result_type@12@XZ -?try_process_item@thread_bound_filter@tbb@@QEAA?AW4result_type@12@XZ -?set_end_of_input@filter@tbb@@IEAAXXZ - - -?internal_construct@queuing_rw_mutex@tbb@@QEAAXXZ -?acquire@scoped_lock@queuing_rw_mutex@tbb@@QEAAXAEAV23@_N@Z -?downgrade_to_reader@scoped_lock@queuing_rw_mutex@tbb@@QEAA_NXZ -?release@scoped_lock@queuing_rw_mutex@tbb@@QEAAXXZ -?upgrade_to_writer@scoped_lock@queuing_rw_mutex@tbb@@QEAA_NXZ -?try_acquire@scoped_lock@queuing_rw_mutex@tbb@@QEAA_NAEAV23@_N@Z - - -?try_lock_read@reader_writer_lock@interface5@tbb@@QEAA_NXZ -?try_lock@reader_writer_lock@interface5@tbb@@QEAA_NXZ -?unlock@reader_writer_lock@interface5@tbb@@QEAAXXZ -?lock_read@reader_writer_lock@interface5@tbb@@QEAAXXZ -?lock@reader_writer_lock@interface5@tbb@@QEAAXXZ -?internal_construct@reader_writer_lock@interface5@tbb@@AEAAXXZ -?internal_destroy@reader_writer_lock@interface5@tbb@@AEAAXXZ -?internal_construct@scoped_lock@reader_writer_lock@interface5@tbb@@AEAAXAEAV234@@Z -?internal_destroy@scoped_lock@reader_writer_lock@interface5@tbb@@AEAAXXZ -?internal_construct@scoped_lock_read@reader_writer_lock@interface5@tbb@@AEAAXAEAV234@@Z -?internal_destroy@scoped_lock_read@reader_writer_lock@interface5@tbb@@AEAAXXZ - - - -?internal_itt_releasing@spin_rw_mutex@tbb@@CAXPEAV12@@Z -?internal_acquire_writer@spin_rw_mutex@tbb@@CA_NPEAV12@@Z -?internal_acquire_reader@spin_rw_mutex@tbb@@CAXPEAV12@@Z -?internal_downgrade@spin_rw_mutex@tbb@@CAXPEAV12@@Z -?internal_upgrade@spin_rw_mutex@tbb@@CA_NPEAV12@@Z -?internal_release_reader@spin_rw_mutex@tbb@@CAXPEAV12@@Z -?internal_release_writer@spin_rw_mutex@tbb@@CAXPEAV12@@Z -?internal_try_acquire_writer@spin_rw_mutex@tbb@@CA_NPEAV12@@Z -?internal_try_acquire_reader@spin_rw_mutex@tbb@@CA_NPEAV12@@Z - - - -?internal_construct@spin_rw_mutex_v3@tbb@@AEAAXXZ -?internal_upgrade@spin_rw_mutex_v3@tbb@@AEAA_NXZ -?internal_downgrade@spin_rw_mutex_v3@tbb@@AEAAXXZ -?internal_acquire_reader@spin_rw_mutex_v3@tbb@@AEAAXXZ -?internal_acquire_writer@spin_rw_mutex_v3@tbb@@AEAA_NXZ -?internal_release_reader@spin_rw_mutex_v3@tbb@@AEAAXXZ -?internal_release_writer@spin_rw_mutex_v3@tbb@@AEAAXXZ -?internal_try_acquire_reader@spin_rw_mutex_v3@tbb@@AEAA_NXZ -?internal_try_acquire_writer@spin_rw_mutex_v3@tbb@@AEAA_NXZ - - - - - - - - - - - - - -?internal_construct@spin_mutex@tbb@@QEAAXXZ -?internal_acquire@scoped_lock@spin_mutex@tbb@@AEAAXAEAV23@@Z -?internal_release@scoped_lock@spin_mutex@tbb@@AEAAXXZ -?internal_try_acquire@scoped_lock@spin_mutex@tbb@@AEAA_NAEAV23@@Z - - -?internal_acquire@scoped_lock@mutex@tbb@@AEAAXAEAV23@@Z -?internal_release@scoped_lock@mutex@tbb@@AEAAXXZ -?internal_try_acquire@scoped_lock@mutex@tbb@@AEAA_NAEAV23@@Z -?internal_construct@mutex@tbb@@AEAAXXZ -?internal_destroy@mutex@tbb@@AEAAXXZ - - -?internal_construct@recursive_mutex@tbb@@AEAAXXZ -?internal_destroy@recursive_mutex@tbb@@AEAAXXZ -?internal_acquire@scoped_lock@recursive_mutex@tbb@@AEAAXAEAV23@@Z -?internal_try_acquire@scoped_lock@recursive_mutex@tbb@@AEAA_NAEAV23@@Z -?internal_release@scoped_lock@recursive_mutex@tbb@@AEAAXXZ - - -?internal_construct@queuing_mutex@tbb@@QEAAXXZ -?acquire@scoped_lock@queuing_mutex@tbb@@QEAAXAEAV23@@Z -?release@scoped_lock@queuing_mutex@tbb@@QEAAXXZ -?try_acquire@scoped_lock@queuing_mutex@tbb@@QEAA_NAEAV23@@Z - - -?internal_construct@critical_section_v4@internal@tbb@@QEAAXXZ - - - -?internal_grow_predicate@hash_map_segment_base@internal@tbb@@QEBA_NXZ - - -??0concurrent_queue_base@internal@tbb@@IEAA@_K@Z -??0concurrent_queue_iterator_base@internal@tbb@@IEAA@AEBVconcurrent_queue_base@12@@Z -??1concurrent_queue_base@internal@tbb@@MEAA@XZ -??1concurrent_queue_iterator_base@internal@tbb@@IEAA@XZ -?advance@concurrent_queue_iterator_base@internal@tbb@@IEAAXXZ -?assign@concurrent_queue_iterator_base@internal@tbb@@IEAAXAEBV123@@Z -?internal_pop@concurrent_queue_base@internal@tbb@@IEAAXPEAX@Z -?internal_pop_if_present@concurrent_queue_base@internal@tbb@@IEAA_NPEAX@Z -?internal_push@concurrent_queue_base@internal@tbb@@IEAAXPEBX@Z -?internal_push_if_not_full@concurrent_queue_base@internal@tbb@@IEAA_NPEBX@Z -?internal_set_capacity@concurrent_queue_base@internal@tbb@@IEAAX_J_K@Z -?internal_size@concurrent_queue_base@internal@tbb@@IEBA_JXZ - - - -??0concurrent_queue_iterator_base_v3@internal@tbb@@IEAA@AEBVconcurrent_queue_base_v3@12@@Z -??0concurrent_queue_iterator_base_v3@internal@tbb@@IEAA@AEBVconcurrent_queue_base_v3@12@_K@Z -??1concurrent_queue_iterator_base_v3@internal@tbb@@IEAA@XZ -?assign@concurrent_queue_iterator_base_v3@internal@tbb@@IEAAXAEBV123@@Z -?advance@concurrent_queue_iterator_base_v3@internal@tbb@@IEAAXXZ -??0concurrent_queue_base_v3@internal@tbb@@IEAA@_K@Z -??1concurrent_queue_base_v3@internal@tbb@@MEAA@XZ -?internal_push@concurrent_queue_base_v3@internal@tbb@@IEAAXPEBX@Z -?internal_push_if_not_full@concurrent_queue_base_v3@internal@tbb@@IEAA_NPEBX@Z -?internal_pop@concurrent_queue_base_v3@internal@tbb@@IEAAXPEAX@Z -?internal_pop_if_present@concurrent_queue_base_v3@internal@tbb@@IEAA_NPEAX@Z -?internal_abort@concurrent_queue_base_v3@internal@tbb@@IEAAXXZ -?internal_size@concurrent_queue_base_v3@internal@tbb@@IEBA_JXZ -?internal_empty@concurrent_queue_base_v3@internal@tbb@@IEBA_NXZ -?internal_finish_clear@concurrent_queue_base_v3@internal@tbb@@IEAAXXZ -?internal_set_capacity@concurrent_queue_base_v3@internal@tbb@@IEAAX_J_K@Z -?internal_throw_exception@concurrent_queue_base_v3@internal@tbb@@IEBAXXZ -?assign@concurrent_queue_base_v3@internal@tbb@@IEAAXAEBV123@@Z - - - -?internal_assign@concurrent_vector_base@internal@tbb@@IEAAXAEBV123@_KP6AXPEAX1@ZP6AX2PEBX1@Z5@Z -?internal_capacity@concurrent_vector_base@internal@tbb@@IEBA_KXZ -?internal_clear@concurrent_vector_base@internal@tbb@@IEAAXP6AXPEAX_K@Z_N@Z -?internal_copy@concurrent_vector_base@internal@tbb@@IEAAXAEBV123@_KP6AXPEAXPEBX1@Z@Z -?internal_grow_by@concurrent_vector_base@internal@tbb@@IEAA_K_K0P6AXPEAX0@Z@Z -?internal_grow_to_at_least@concurrent_vector_base@internal@tbb@@IEAAX_K0P6AXPEAX0@Z@Z -?internal_push_back@concurrent_vector_base@internal@tbb@@IEAAPEAX_KAEA_K@Z -?internal_reserve@concurrent_vector_base@internal@tbb@@IEAAX_K00@Z - - - -??1concurrent_vector_base_v3@internal@tbb@@IEAA@XZ -?internal_assign@concurrent_vector_base_v3@internal@tbb@@IEAAXAEBV123@_KP6AXPEAX1@ZP6AX2PEBX1@Z5@Z -?internal_capacity@concurrent_vector_base_v3@internal@tbb@@IEBA_KXZ -?internal_clear@concurrent_vector_base_v3@internal@tbb@@IEAA_KP6AXPEAX_K@Z@Z -?internal_copy@concurrent_vector_base_v3@internal@tbb@@IEAAXAEBV123@_KP6AXPEAXPEBX1@Z@Z -?internal_grow_by@concurrent_vector_base_v3@internal@tbb@@IEAA_K_K0P6AXPEAXPEBX0@Z2@Z -?internal_grow_to_at_least@concurrent_vector_base_v3@internal@tbb@@IEAAX_K0P6AXPEAXPEBX0@Z2@Z -?internal_push_back@concurrent_vector_base_v3@internal@tbb@@IEAAPEAX_KAEA_K@Z -?internal_reserve@concurrent_vector_base_v3@internal@tbb@@IEAAX_K00@Z -?internal_compact@concurrent_vector_base_v3@internal@tbb@@IEAAPEAX_KPEAXP6AX10@ZP6AX1PEBX0@Z@Z -?internal_swap@concurrent_vector_base_v3@internal@tbb@@IEAAXAEAV123@@Z -?internal_throw_exception@concurrent_vector_base_v3@internal@tbb@@IEBAX_K@Z -?internal_resize@concurrent_vector_base_v3@internal@tbb@@IEAAX_K00PEBXP6AXPEAX0@ZP6AX210@Z@Z -?internal_grow_to_at_least_with_result@concurrent_vector_base_v3@internal@tbb@@IEAA_K_K0P6AXPEAXPEBX0@Z2@Z - - -?allocate_closure_v3@internal@tbb@@YAPEAX_K@Z -?detach@tbb_thread_v3@internal@tbb@@QEAAXXZ -?free_closure_v3@internal@tbb@@YAXPEAX@Z -?hardware_concurrency@tbb_thread_v3@internal@tbb@@SAIXZ -?internal_start@tbb_thread_v3@internal@tbb@@AEAAXP6AIPEAX@Z0@Z -?join@tbb_thread_v3@internal@tbb@@QEAAXXZ -?move_v3@internal@tbb@@YAXAEAVtbb_thread_v3@12@0@Z -?thread_get_id_v3@internal@tbb@@YA?AVid@tbb_thread_v3@12@XZ -?thread_sleep_v3@internal@tbb@@YAXAEBVinterval_t@tick_count@2@@Z -?thread_yield_v3@internal@tbb@@YAXXZ - - -?internal_initialize_condition_variable@internal@interface5@tbb@@YAXAEATcondvar_impl_t@123@@Z -?internal_condition_variable_wait@internal@interface5@tbb@@YA_NAEATcondvar_impl_t@123@PEAVmutex@3@PEBVinterval_t@tick_count@3@@Z -?internal_condition_variable_notify_one@internal@interface5@tbb@@YAXAEATcondvar_impl_t@123@@Z -?internal_condition_variable_notify_all@internal@interface5@tbb@@YAXAEATcondvar_impl_t@123@@Z -?internal_destroy_condition_variable@internal@interface5@tbb@@YAXAEATcondvar_impl_t@123@@Z - - - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbb.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbb.lib deleted file mode 100644 index 36f738f5a..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbb.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbb_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbb_debug.lib deleted file mode 100644 index c37b4bc55..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbb_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbb_preview.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbb_preview.lib deleted file mode 100644 index 95a8214a9..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbb_preview.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbb_preview_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbb_preview_debug.lib deleted file mode 100644 index 3d9bae60c..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbb_preview_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbbmalloc.def b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbbmalloc.def deleted file mode 100644 index fc9b88154..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbbmalloc.def +++ /dev/null @@ -1,48 +0,0 @@ - -; Copyright 2005-2014 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. - -EXPORTS - -; frontend.cpp -scalable_calloc -scalable_free -scalable_malloc -scalable_realloc -scalable_posix_memalign -scalable_aligned_malloc -scalable_aligned_realloc -scalable_aligned_free -safer_scalable_free -safer_scalable_realloc -scalable_msize -scalable_allocation_mode -scalable_allocation_command -safer_scalable_msize -safer_scalable_aligned_msize -safer_scalable_aligned_realloc -; memory pool stuff -?pool_create@rml@@YAPEAVMemoryPool@1@_JPEBUMemPoolPolicy@1@@Z -?pool_create_v1@rml@@YA?AW4MemPoolError@1@_JPEBUMemPoolPolicy@1@PEAPEAVMemoryPool@1@@Z -?pool_destroy@rml@@YA_NPEAVMemoryPool@1@@Z -?pool_malloc@rml@@YAPEAXPEAVMemoryPool@1@_K@Z -?pool_free@rml@@YA_NPEAVMemoryPool@1@PEAX@Z -?pool_reset@rml@@YA_NPEAVMemoryPool@1@@Z -?pool_realloc@rml@@YAPEAXPEAVMemoryPool@1@PEAX_K@Z -?pool_aligned_realloc@rml@@YAPEAXPEAVMemoryPool@1@PEAX_K2@Z -?pool_aligned_malloc@rml@@YAPEAXPEAVMemoryPool@1@_K1@Z diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbbmalloc.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbbmalloc.lib deleted file mode 100644 index 9a256a2ff..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbbmalloc.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbbmalloc_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbbmalloc_debug.lib deleted file mode 100644 index 5a4f7b4e7..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbbmalloc_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbbmalloc_proxy.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbbmalloc_proxy.lib deleted file mode 100644 index aca5f52a7..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbbmalloc_proxy.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbbmalloc_proxy_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbbmalloc_proxy_debug.lib deleted file mode 100644 index f1e802c22..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbbmalloc_proxy_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbbproxy.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbbproxy.lib deleted file mode 100644 index ca031147f..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbbproxy.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbbproxy.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbbproxy.pdb deleted file mode 100644 index 63b00ff44..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbbproxy.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbbproxy_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbbproxy_debug.lib deleted file mode 100644 index 44f040df8..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbbproxy_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbbproxy_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbbproxy_debug.pdb deleted file mode 100644 index b0517ef81..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc12/tbbproxy_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/irml/irml.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/irml/irml.lib deleted file mode 100644 index c7e46b97f..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/irml/irml.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/irml/irml_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/irml/irml_debug.lib deleted file mode 100644 index 54a01a228..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/irml/irml_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbb.def b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbb.def deleted file mode 100644 index b12f44105..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbb.def +++ /dev/null @@ -1,469 +0,0 @@ -; Copyright 2005-2014 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. - -; This file is organized with a section for each .cpp file. -; Each of these sections is in alphabetical order. - -EXPORTS - -; Copyright 2005-2014 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -__TBB_machine_cmpswp1 -__TBB_machine_fetchadd1 -__TBB_machine_fetchstore1 -__TBB_machine_cmpswp2 -__TBB_machine_fetchadd2 -__TBB_machine_fetchstore2 -__TBB_machine_pause -__TBB_machine_try_lock_elided -__TBB_machine_unlock_elided -__TBB_machine_is_in_transaction - - -?NFS_Allocate@internal@tbb@@YAPEAX_K0PEAX@Z -?NFS_GetLineSize@internal@tbb@@YA_KXZ -?NFS_Free@internal@tbb@@YAXPEAX@Z -?allocate_via_handler_v3@internal@tbb@@YAPEAX_K@Z -?deallocate_via_handler_v3@internal@tbb@@YAXPEAX@Z -?is_malloc_used_v3@internal@tbb@@YA_NXZ - - - -?resize@affinity_partitioner_base_v3@internal@tbb@@AEAAXI@Z -?allocate@allocate_additional_child_of_proxy@internal@tbb@@QEBAAEAVtask@3@_K@Z -?allocate@allocate_child_proxy@internal@tbb@@QEBAAEAVtask@3@_K@Z -?allocate@allocate_continuation_proxy@internal@tbb@@QEBAAEAVtask@3@_K@Z -?allocate@allocate_root_proxy@internal@tbb@@SAAEAVtask@3@_K@Z -?destroy@task_base@internal@interface5@tbb@@SAXAEAVtask@4@@Z -?free@allocate_additional_child_of_proxy@internal@tbb@@QEBAXAEAVtask@3@@Z -?free@allocate_child_proxy@internal@tbb@@QEBAXAEAVtask@3@@Z -?free@allocate_continuation_proxy@internal@tbb@@QEBAXAEAVtask@3@@Z -?free@allocate_root_proxy@internal@tbb@@SAXAEAVtask@3@@Z -?internal_set_ref_count@task@tbb@@AEAAXH@Z -?internal_decrement_ref_count@task@tbb@@AEAA_JXZ -?is_owned_by_current_thread@task@tbb@@QEBA_NXZ -?note_affinity@task@tbb@@UEAAXG@Z -?self@task@tbb@@SAAEAV12@XZ -?spawn_and_wait_for_all@task@tbb@@QEAAXAEAVtask_list@2@@Z -?default_num_threads@task_scheduler_init@tbb@@SAHXZ -?initialize@task_scheduler_init@tbb@@QEAAXH_K@Z -?initialize@task_scheduler_init@tbb@@QEAAXH@Z -?terminate@task_scheduler_init@tbb@@QEAAXXZ -?observe@task_scheduler_observer_v3@internal@tbb@@QEAAX_N@Z - - -?internal_current_slot@task_arena_base@internal@interface7@tbb@@KAHXZ -?internal_initialize@task_arena_base@internal@interface7@tbb@@IEAAXXZ -?internal_terminate@task_arena_base@internal@interface7@tbb@@IEAAXXZ -?internal_enqueue@task_arena_base@internal@interface7@tbb@@IEBAXAEAVtask@4@_J@Z -?internal_execute@task_arena_base@internal@interface7@tbb@@IEBAXAEAVdelegate_base@234@@Z -?internal_wait@task_arena_base@internal@interface7@tbb@@IEBAXXZ - - -?destroy@task@tbb@@QEAAXAEAV12@@Z - - -?allocate@allocate_root_with_context_proxy@internal@tbb@@QEBAAEAVtask@3@_K@Z -?free@allocate_root_with_context_proxy@internal@tbb@@QEBAXAEAVtask@3@@Z -?change_group@task@tbb@@QEAAXAEAVtask_group_context@2@@Z -?is_group_execution_cancelled@task_group_context@tbb@@QEBA_NXZ -?cancel_group_execution@task_group_context@tbb@@QEAA_NXZ -?reset@task_group_context@tbb@@QEAAXXZ -?init@task_group_context@tbb@@IEAAXXZ -?register_pending_exception@task_group_context@tbb@@QEAAXXZ -??1task_group_context@tbb@@QEAA@XZ -?set_priority@task_group_context@tbb@@QEAAXW4priority_t@2@@Z -?priority@task_group_context@tbb@@QEBA?AW4priority_t@2@XZ -?name@captured_exception@tbb@@UEBAPEBDXZ -?what@captured_exception@tbb@@UEBAPEBDXZ -??1captured_exception@tbb@@UEAA@XZ -?move@captured_exception@tbb@@UEAAPEAV12@XZ -?destroy@captured_exception@tbb@@UEAAXXZ -?set@captured_exception@tbb@@QEAAXPEBD0@Z -?clear@captured_exception@tbb@@QEAAXXZ - - -?throw_bad_last_alloc_exception_v4@internal@tbb@@YAXXZ -?throw_exception_v4@internal@tbb@@YAXW4exception_id@12@@Z -?what@bad_last_alloc@tbb@@UEBAPEBDXZ -?what@missing_wait@tbb@@UEBAPEBDXZ -?what@invalid_multiple_scheduling@tbb@@UEBAPEBDXZ -?what@improper_lock@tbb@@UEBAPEBDXZ -?what@user_abort@tbb@@UEBAPEBDXZ - - -?assertion_failure@tbb@@YAXPEBDH00@Z -?get_initial_auto_partitioner_divisor@internal@tbb@@YA_KXZ -?handle_perror@internal@tbb@@YAXHPEBD@Z -?set_assertion_handler@tbb@@YAP6AXPEBDH00@ZP6AX0H00@Z@Z -?runtime_warning@internal@tbb@@YAXPEBDZZ -TBB_runtime_interface_version - - -?itt_load_pointer_with_acquire_v3@internal@tbb@@YAPEAXPEBX@Z -?itt_store_pointer_with_release_v3@internal@tbb@@YAXPEAX0@Z -?call_itt_notify_v5@internal@tbb@@YAXHPEAX@Z -?itt_load_pointer_v3@internal@tbb@@YAPEAXPEBX@Z -?itt_set_sync_name_v3@internal@tbb@@YAXPEAXPEB_W@Z - - -??_7pipeline@tbb@@6B@ -??0pipeline@tbb@@QEAA@XZ -??1filter@tbb@@UEAA@XZ -??1pipeline@tbb@@UEAA@XZ -?add_filter@pipeline@tbb@@QEAAXAEAVfilter@2@@Z -?clear@pipeline@tbb@@QEAAXXZ -?inject_token@pipeline@tbb@@AEAAXAEAVtask@2@@Z -?run@pipeline@tbb@@QEAAX_K@Z -?run@pipeline@tbb@@QEAAX_KAEAVtask_group_context@2@@Z -?process_item@thread_bound_filter@tbb@@QEAA?AW4result_type@12@XZ -?try_process_item@thread_bound_filter@tbb@@QEAA?AW4result_type@12@XZ -?set_end_of_input@filter@tbb@@IEAAXXZ - - -?internal_construct@queuing_rw_mutex@tbb@@QEAAXXZ -?acquire@scoped_lock@queuing_rw_mutex@tbb@@QEAAXAEAV23@_N@Z -?downgrade_to_reader@scoped_lock@queuing_rw_mutex@tbb@@QEAA_NXZ -?release@scoped_lock@queuing_rw_mutex@tbb@@QEAAXXZ -?upgrade_to_writer@scoped_lock@queuing_rw_mutex@tbb@@QEAA_NXZ -?try_acquire@scoped_lock@queuing_rw_mutex@tbb@@QEAA_NAEAV23@_N@Z - - -?try_lock_read@reader_writer_lock@interface5@tbb@@QEAA_NXZ -?try_lock@reader_writer_lock@interface5@tbb@@QEAA_NXZ -?unlock@reader_writer_lock@interface5@tbb@@QEAAXXZ -?lock_read@reader_writer_lock@interface5@tbb@@QEAAXXZ -?lock@reader_writer_lock@interface5@tbb@@QEAAXXZ -?internal_construct@reader_writer_lock@interface5@tbb@@AEAAXXZ -?internal_destroy@reader_writer_lock@interface5@tbb@@AEAAXXZ -?internal_construct@scoped_lock@reader_writer_lock@interface5@tbb@@AEAAXAEAV234@@Z -?internal_destroy@scoped_lock@reader_writer_lock@interface5@tbb@@AEAAXXZ -?internal_construct@scoped_lock_read@reader_writer_lock@interface5@tbb@@AEAAXAEAV234@@Z -?internal_destroy@scoped_lock_read@reader_writer_lock@interface5@tbb@@AEAAXXZ - - -?internal_itt_releasing@spin_rw_mutex@tbb@@CAXPEAV12@@Z -?internal_acquire_writer@spin_rw_mutex@tbb@@CA_NPEAV12@@Z -?internal_acquire_reader@spin_rw_mutex@tbb@@CAXPEAV12@@Z -?internal_downgrade@spin_rw_mutex@tbb@@CAXPEAV12@@Z -?internal_upgrade@spin_rw_mutex@tbb@@CA_NPEAV12@@Z -?internal_release_reader@spin_rw_mutex@tbb@@CAXPEAV12@@Z -?internal_release_writer@spin_rw_mutex@tbb@@CAXPEAV12@@Z -?internal_try_acquire_writer@spin_rw_mutex@tbb@@CA_NPEAV12@@Z -?internal_try_acquire_reader@spin_rw_mutex@tbb@@CA_NPEAV12@@Z - - -?internal_construct@spin_rw_mutex_v3@tbb@@AEAAXXZ -?internal_upgrade@spin_rw_mutex_v3@tbb@@AEAA_NXZ -?internal_downgrade@spin_rw_mutex_v3@tbb@@AEAAXXZ -?internal_acquire_reader@spin_rw_mutex_v3@tbb@@AEAAXXZ -?internal_acquire_writer@spin_rw_mutex_v3@tbb@@AEAA_NXZ -?internal_release_reader@spin_rw_mutex_v3@tbb@@AEAAXXZ -?internal_release_writer@spin_rw_mutex_v3@tbb@@AEAAXXZ -?internal_try_acquire_reader@spin_rw_mutex_v3@tbb@@AEAA_NXZ -?internal_try_acquire_writer@spin_rw_mutex_v3@tbb@@AEAA_NXZ - - - -?internal_construct@spin_mutex@tbb@@QEAAXXZ -?internal_acquire@scoped_lock@spin_mutex@tbb@@AEAAXAEAV23@@Z -?internal_release@scoped_lock@spin_mutex@tbb@@AEAAXXZ -?internal_try_acquire@scoped_lock@spin_mutex@tbb@@AEAA_NAEAV23@@Z - - -?internal_acquire@scoped_lock@mutex@tbb@@AEAAXAEAV23@@Z -?internal_release@scoped_lock@mutex@tbb@@AEAAXXZ -?internal_try_acquire@scoped_lock@mutex@tbb@@AEAA_NAEAV23@@Z -?internal_construct@mutex@tbb@@AEAAXXZ -?internal_destroy@mutex@tbb@@AEAAXXZ - - -?internal_construct@recursive_mutex@tbb@@AEAAXXZ -?internal_destroy@recursive_mutex@tbb@@AEAAXXZ -?internal_acquire@scoped_lock@recursive_mutex@tbb@@AEAAXAEAV23@@Z -?internal_try_acquire@scoped_lock@recursive_mutex@tbb@@AEAA_NAEAV23@@Z -?internal_release@scoped_lock@recursive_mutex@tbb@@AEAAXXZ - - -?internal_construct@queuing_mutex@tbb@@QEAAXXZ -?acquire@scoped_lock@queuing_mutex@tbb@@QEAAXAEAV23@@Z -?release@scoped_lock@queuing_mutex@tbb@@QEAAXXZ -?try_acquire@scoped_lock@queuing_mutex@tbb@@QEAA_NAEAV23@@Z - - -?internal_construct@critical_section_v4@internal@tbb@@QEAAXXZ - - -?internal_grow_predicate@hash_map_segment_base@internal@tbb@@QEBA_NXZ - - -??0concurrent_queue_base@internal@tbb@@IEAA@_K@Z -??0concurrent_queue_iterator_base@internal@tbb@@IEAA@AEBVconcurrent_queue_base@12@@Z -??1concurrent_queue_base@internal@tbb@@MEAA@XZ -??1concurrent_queue_iterator_base@internal@tbb@@IEAA@XZ -?advance@concurrent_queue_iterator_base@internal@tbb@@IEAAXXZ -?assign@concurrent_queue_iterator_base@internal@tbb@@IEAAXAEBV123@@Z -?internal_pop@concurrent_queue_base@internal@tbb@@IEAAXPEAX@Z -?internal_pop_if_present@concurrent_queue_base@internal@tbb@@IEAA_NPEAX@Z -?internal_push@concurrent_queue_base@internal@tbb@@IEAAXPEBX@Z -?internal_push_if_not_full@concurrent_queue_base@internal@tbb@@IEAA_NPEBX@Z -?internal_set_capacity@concurrent_queue_base@internal@tbb@@IEAAX_J_K@Z -?internal_size@concurrent_queue_base@internal@tbb@@IEBA_JXZ - - -??0concurrent_queue_iterator_base_v3@internal@tbb@@IEAA@AEBVconcurrent_queue_base_v3@12@@Z -??0concurrent_queue_iterator_base_v3@internal@tbb@@IEAA@AEBVconcurrent_queue_base_v3@12@_K@Z -??1concurrent_queue_iterator_base_v3@internal@tbb@@IEAA@XZ -?assign@concurrent_queue_iterator_base_v3@internal@tbb@@IEAAXAEBV123@@Z -?advance@concurrent_queue_iterator_base_v3@internal@tbb@@IEAAXXZ -??0concurrent_queue_base_v3@internal@tbb@@IEAA@_K@Z -??1concurrent_queue_base_v3@internal@tbb@@MEAA@XZ -?internal_push@concurrent_queue_base_v3@internal@tbb@@IEAAXPEBX@Z -?internal_push_if_not_full@concurrent_queue_base_v3@internal@tbb@@IEAA_NPEBX@Z -?internal_pop@concurrent_queue_base_v3@internal@tbb@@IEAAXPEAX@Z -?internal_pop_if_present@concurrent_queue_base_v3@internal@tbb@@IEAA_NPEAX@Z -?internal_abort@concurrent_queue_base_v3@internal@tbb@@IEAAXXZ -?internal_size@concurrent_queue_base_v3@internal@tbb@@IEBA_JXZ -?internal_empty@concurrent_queue_base_v3@internal@tbb@@IEBA_NXZ -?internal_finish_clear@concurrent_queue_base_v3@internal@tbb@@IEAAXXZ -?internal_set_capacity@concurrent_queue_base_v3@internal@tbb@@IEAAX_J_K@Z -?internal_throw_exception@concurrent_queue_base_v3@internal@tbb@@IEBAXXZ -?assign@concurrent_queue_base_v3@internal@tbb@@IEAAXAEBV123@@Z - - -?internal_assign@concurrent_vector_base@internal@tbb@@IEAAXAEBV123@_KP6AXPEAX1@ZP6AX2PEBX1@Z5@Z -?internal_capacity@concurrent_vector_base@internal@tbb@@IEBA_KXZ -?internal_clear@concurrent_vector_base@internal@tbb@@IEAAXP6AXPEAX_K@Z_N@Z -?internal_copy@concurrent_vector_base@internal@tbb@@IEAAXAEBV123@_KP6AXPEAXPEBX1@Z@Z -?internal_grow_by@concurrent_vector_base@internal@tbb@@IEAA_K_K0P6AXPEAX0@Z@Z -?internal_grow_to_at_least@concurrent_vector_base@internal@tbb@@IEAAX_K0P6AXPEAX0@Z@Z -?internal_push_back@concurrent_vector_base@internal@tbb@@IEAAPEAX_KAEA_K@Z -?internal_reserve@concurrent_vector_base@internal@tbb@@IEAAX_K00@Z - - -??1concurrent_vector_base_v3@internal@tbb@@IEAA@XZ -?internal_assign@concurrent_vector_base_v3@internal@tbb@@IEAAXAEBV123@_KP6AXPEAX1@ZP6AX2PEBX1@Z5@Z -?internal_capacity@concurrent_vector_base_v3@internal@tbb@@IEBA_KXZ -?internal_clear@concurrent_vector_base_v3@internal@tbb@@IEAA_KP6AXPEAX_K@Z@Z -?internal_copy@concurrent_vector_base_v3@internal@tbb@@IEAAXAEBV123@_KP6AXPEAXPEBX1@Z@Z -?internal_grow_by@concurrent_vector_base_v3@internal@tbb@@IEAA_K_K0P6AXPEAXPEBX0@Z2@Z -?internal_grow_to_at_least@concurrent_vector_base_v3@internal@tbb@@IEAAX_K0P6AXPEAXPEBX0@Z2@Z -?internal_push_back@concurrent_vector_base_v3@internal@tbb@@IEAAPEAX_KAEA_K@Z -?internal_reserve@concurrent_vector_base_v3@internal@tbb@@IEAAX_K00@Z -?internal_compact@concurrent_vector_base_v3@internal@tbb@@IEAAPEAX_KPEAXP6AX10@ZP6AX1PEBX0@Z@Z -?internal_swap@concurrent_vector_base_v3@internal@tbb@@IEAAXAEAV123@@Z -?internal_throw_exception@concurrent_vector_base_v3@internal@tbb@@IEBAX_K@Z -?internal_resize@concurrent_vector_base_v3@internal@tbb@@IEAAX_K00PEBXP6AXPEAX0@ZP6AX210@Z@Z -?internal_grow_to_at_least_with_result@concurrent_vector_base_v3@internal@tbb@@IEAA_K_K0P6AXPEAXPEBX0@Z2@Z - - -?allocate_closure_v3@internal@tbb@@YAPEAX_K@Z -?detach@tbb_thread_v3@internal@tbb@@QEAAXXZ -?free_closure_v3@internal@tbb@@YAXPEAX@Z -?hardware_concurrency@tbb_thread_v3@internal@tbb@@SAIXZ -?internal_start@tbb_thread_v3@internal@tbb@@AEAAXP6AIPEAX@Z0@Z -?join@tbb_thread_v3@internal@tbb@@QEAAXXZ -?move_v3@internal@tbb@@YAXAEAVtbb_thread_v3@12@0@Z -?thread_get_id_v3@internal@tbb@@YA?AVid@tbb_thread_v3@12@XZ -?thread_sleep_v3@internal@tbb@@YAXAEBVinterval_t@tick_count@2@@Z -?thread_yield_v3@internal@tbb@@YAXXZ - - -?internal_initialize_condition_variable@internal@interface5@tbb@@YAXAEATcondvar_impl_t@123@@Z -?internal_condition_variable_wait@internal@interface5@tbb@@YA_NAEATcondvar_impl_t@123@PEAVmutex@3@PEBVinterval_t@tick_count@3@@Z -?internal_condition_variable_notify_one@internal@interface5@tbb@@YAXAEATcondvar_impl_t@123@@Z -?internal_condition_variable_notify_all@internal@interface5@tbb@@YAXAEATcondvar_impl_t@123@@Z -?internal_destroy_condition_variable@internal@interface5@tbb@@YAXAEATcondvar_impl_t@123@@Z - - diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbb.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbb.lib deleted file mode 100644 index d23086363..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbb.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbb_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbb_debug.lib deleted file mode 100644 index 33c8d55c9..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbb_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbb_preview.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbb_preview.lib deleted file mode 100644 index 032ba5778..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbb_preview.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbb_preview_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbb_preview_debug.lib deleted file mode 100644 index f31191aea..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbb_preview_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbbmalloc.def b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbbmalloc.def deleted file mode 100644 index c5c82bcd1..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbbmalloc.def +++ /dev/null @@ -1,47 +0,0 @@ -; Copyright 2005-2014 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. - -EXPORTS - -; frontend.cpp -scalable_calloc -scalable_free -scalable_malloc -scalable_realloc -scalable_posix_memalign -scalable_aligned_malloc -scalable_aligned_realloc -scalable_aligned_free -safer_scalable_free -safer_scalable_realloc -scalable_msize -scalable_allocation_mode -scalable_allocation_command -safer_scalable_msize -safer_scalable_aligned_msize -safer_scalable_aligned_realloc -; memory pool stuff -?pool_create@rml@@YAPEAVMemoryPool@1@_JPEBUMemPoolPolicy@1@@Z -?pool_create_v1@rml@@YA?AW4MemPoolError@1@_JPEBUMemPoolPolicy@1@PEAPEAVMemoryPool@1@@Z -?pool_destroy@rml@@YA_NPEAVMemoryPool@1@@Z -?pool_malloc@rml@@YAPEAXPEAVMemoryPool@1@_K@Z -?pool_free@rml@@YA_NPEAVMemoryPool@1@PEAX@Z -?pool_reset@rml@@YA_NPEAVMemoryPool@1@@Z -?pool_realloc@rml@@YAPEAXPEAVMemoryPool@1@PEAX_K@Z -?pool_aligned_realloc@rml@@YAPEAXPEAVMemoryPool@1@PEAX_K2@Z -?pool_aligned_malloc@rml@@YAPEAXPEAVMemoryPool@1@_K1@Z diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbbmalloc.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbbmalloc.lib deleted file mode 100644 index 5ae4abfe1..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbbmalloc.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbbmalloc_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbbmalloc_debug.lib deleted file mode 100644 index 4dc53447f..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbbmalloc_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbbmalloc_proxy.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbbmalloc_proxy.lib deleted file mode 100644 index 21338fd8e..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbbmalloc_proxy.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbbmalloc_proxy_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbbmalloc_proxy_debug.lib deleted file mode 100644 index 233fa4731..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbbmalloc_proxy_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbbproxy.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbbproxy.lib deleted file mode 100644 index 58b45d3d9..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbbproxy.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbbproxy.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbbproxy.pdb deleted file mode 100644 index 668355604..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbbproxy.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbbproxy_debug.lib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbbproxy_debug.lib deleted file mode 100644 index 219847850..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbbproxy_debug.lib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbbproxy_debug.pdb b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbbproxy_debug.pdb deleted file mode 100644 index bbda79424..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/intel64/vc9/tbbproxy_debug.pdb and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libc++/libtbb.dylib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libc++/libtbb.dylib deleted file mode 100644 index f0154dd4b..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libc++/libtbb.dylib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libc++/libtbb_debug.dylib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libc++/libtbb_debug.dylib deleted file mode 100644 index 9a44c6252..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libc++/libtbb_debug.dylib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libc++/libtbb_preview.dylib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libc++/libtbb_preview.dylib deleted file mode 100644 index 618a05fe1..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libc++/libtbb_preview.dylib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libc++/libtbb_preview_debug.dylib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libc++/libtbb_preview_debug.dylib deleted file mode 100644 index 6f37d8c82..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libc++/libtbb_preview_debug.dylib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libc++/libtbbmalloc.dylib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libc++/libtbbmalloc.dylib deleted file mode 100644 index e09e6bb67..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libc++/libtbbmalloc.dylib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libc++/libtbbmalloc_debug.dylib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libc++/libtbbmalloc_debug.dylib deleted file mode 100644 index 844d3203d..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libc++/libtbbmalloc_debug.dylib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libtbb.dylib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libtbb.dylib deleted file mode 100644 index 39ad790de..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libtbb.dylib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libtbb_debug.dylib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libtbb_debug.dylib deleted file mode 100644 index 9303e49c8..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libtbb_debug.dylib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libtbb_preview.dylib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libtbb_preview.dylib deleted file mode 100644 index 9f73b6a54..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libtbb_preview.dylib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libtbb_preview_debug.dylib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libtbb_preview_debug.dylib deleted file mode 100644 index 93c35c1bb..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libtbb_preview_debug.dylib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libtbbmalloc.dylib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libtbbmalloc.dylib deleted file mode 100644 index 39fa6b8e8..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libtbbmalloc.dylib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libtbbmalloc_debug.dylib b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libtbbmalloc_debug.dylib deleted file mode 100644 index 94b6ed3db..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/libtbbmalloc_debug.dylib and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/irml/libirml.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/irml/libirml.so deleted file mode 100644 index 1c79cafc4..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/irml/libirml.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libirml.so.1) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/irml/libirml.so.1 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/irml/libirml.so.1 deleted file mode 100644 index 8be98e0a3..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/irml/libirml.so.1 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/irml/libirml_debug.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/irml/libirml_debug.so deleted file mode 100644 index c421a2364..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/irml/libirml_debug.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libirml_debug.so.1) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/irml/libirml_debug.so.1 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/irml/libirml_debug.so.1 deleted file mode 100644 index c152bd73c..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/irml/libirml_debug.so.1 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbb.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbb.so deleted file mode 100644 index 43e23674d..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbb.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbb.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbb.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbb.so.2 deleted file mode 100644 index 081dafe9a..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbb.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbb_debug.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbb_debug.so deleted file mode 100644 index 960bbb41a..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbb_debug.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbb_debug.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbb_debug.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbb_debug.so.2 deleted file mode 100644 index 33b2892b8..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbb_debug.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbb_preview.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbb_preview.so deleted file mode 100644 index 8b10ff482..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbb_preview.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbb_preview.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbb_preview.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbb_preview.so.2 deleted file mode 100644 index a096f3d8d..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbb_preview.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbb_preview_debug.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbb_preview_debug.so deleted file mode 100644 index 3824af996..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbb_preview_debug.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbb_preview_debug.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbb_preview_debug.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbb_preview_debug.so.2 deleted file mode 100644 index a670c17e6..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbb_preview_debug.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbbmalloc.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbbmalloc.so deleted file mode 100644 index 2ee0cac01..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbbmalloc.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbbmalloc.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbbmalloc.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbbmalloc.so.2 deleted file mode 100644 index 1c5474b63..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbbmalloc.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbbmalloc_debug.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbbmalloc_debug.so deleted file mode 100644 index 977deb107..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbbmalloc_debug.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbbmalloc_debug.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbbmalloc_debug.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbbmalloc_debug.so.2 deleted file mode 100644 index 42aa70593..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbbmalloc_debug.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbbmalloc_proxy.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbbmalloc_proxy.so deleted file mode 100644 index aa866c28f..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbbmalloc_proxy.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbbmalloc_proxy.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbbmalloc_proxy.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbbmalloc_proxy.so.2 deleted file mode 100644 index 5e31eccc8..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbbmalloc_proxy.so.2 and /dev/null differ diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbbmalloc_proxy_debug.so b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbbmalloc_proxy_debug.so deleted file mode 100644 index 41e38a567..000000000 --- a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbbmalloc_proxy_debug.so +++ /dev/null @@ -1 +0,0 @@ -INPUT (libtbbmalloc_proxy_debug.so.2) diff --git a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbbmalloc_proxy_debug.so.2 b/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbbmalloc_proxy_debug.so.2 deleted file mode 100644 index ad369ac8c..000000000 Binary files a/resources/3rdparty/tbb42_20140122_merged-win-lin-mac/lib/mic/libtbbmalloc_proxy_debug.so.2 and /dev/null differ diff --git a/resources/GUIDELINES-Doxygen.example.h b/resources/GUIDELINES-Doxygen.example.h deleted file mode 100644 index 12908fc01..000000000 --- a/resources/GUIDELINES-Doxygen.example.h +++ /dev/null @@ -1,56 +0,0 @@ -//! A test class. -/*! -A more elaborate class description. -*/ -class Test -{ -public: -//! An enum. -/*! More detailed enum description. */ -enum TEnum { -TVal1, /*!< Enum value TVal1. */ -TVal2, /*!< Enum value TVal2. */ -TVal3 /*!< Enum value TVal3. */ -} -//! Enum pointer. -/*! Details. */ -*enumPtr, -//! Enum variable. -/*! Details. */ -enumVar; -//! A constructor. -/*! -A more elaborate description of the constructor. -*/ -Test(); -//! A destructor. -/*! -A more elaborate description of the destructor. -*/ -~Test(); -//! A normal member taking two arguments and returning an integer value. -/*! -\param a an integer argument. -\param s a constant character pointer. -\return The test results -\sa Test(), ~Test(), testMeToo() and publicVar() -*/ -int testMe(int a,const char *s); -//! A pure virtual member. -/*! -\sa testMe() -\param c1 the first argument. -\param c2 the second argument. -*/ -virtual void testMeToo(char c1,char c2) = 0; -//! A public variable. -/*! -Details. -*/ -int publicVar; -//! A function variable. -/*! -Details. -*/ -int (*handler)(int a,int b); -}; \ No newline at end of file diff --git a/resources/GUIDELINES.txt b/resources/GUIDELINES.txt deleted file mode 100644 index 201c51c68..000000000 --- a/resources/GUIDELINES.txt +++ /dev/null @@ -1,24 +0,0 @@ -/* ---------------------------------- GUIDELINES FOR STORM DEVELOPMENT ---------------------------------- */ - -In general, we adhere to the Google Styleguide for C++, found under http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml - - - C++ file names are .h and .cpp - - all Source Code is to reside in the src/ Directory or an appropriate subdirectory, apart from Third-Party Librarys and modules stored under resources/ - - all Source Code is to be documented using DoxyGen Syntax: - - /*! \brief A chess piece - * The abstract parent of all chess pieces. */ - - class ChessPiece { - /*! Whether we've moved */ - bool bMoved; - - /*! Move to P(x, y) - * \param x The x coordinate - * \param y The y coordinate - * \return Whether the move was legal */ - bool bMove(int x, int y); - } - - opening brackets on the same line: if (true) { - - always use brackets for "if", "while", "for" and the like, even if it is a one-liner - - use Common Sense \ No newline at end of file diff --git a/resources/Google C++ Style Guide.pdf b/resources/Google C++ Style Guide.pdf deleted file mode 100644 index 46e744e79..000000000 Binary files a/resources/Google C++ Style Guide.pdf and /dev/null differ diff --git a/resources/Google C++ Testing Framework.pdf b/resources/Google C++ Testing Framework.pdf deleted file mode 100644 index 77b2042e7..000000000 Binary files a/resources/Google C++ Testing Framework.pdf and /dev/null differ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 7ca492152..f2f89d24b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,4 +1,3 @@ - ############################################################# ## ## Source file aggregation and clustering @@ -28,6 +27,7 @@ set(STORM_MAIN_HEADERS ${STORM_HEADERS_CLI}) file(GLOB_RECURSE ALL_FILES ${PROJECT_SOURCE_DIR}/src/*.h ${PROJECT_SOURCE_DIR}/src/*.cpp) register_source_groups_from_filestructure("${ALL_FILES}") + # Add custom additional include or link directories if (ADDITIONAL_INCLUDE_DIRS) message(STATUS "StoRM - Using additional include directories ${ADDITIONAL_INCLUDE_DIRS}") @@ -39,30 +39,33 @@ if (ADDITIONAL_LINK_DIRS) endif(ADDITIONAL_LINK_DIRS) ############################################################################### -## # -## Executable Creation # -## # -## All link_directories() calls MUST be made before this point # -## # +## +## Binary creation (All link_directories() calls must be made before this point.) +## ############################################################################### -add_library(storm SHARED ${STORM_LIB_SOURCES} ${STORM_LIB_HEADERS}) # Adding headers for xcode + +# Create libstorm. +add_library(storm SHARED ${STORM_LIB_SOURCES} ${STORM_LIB_HEADERS}) +# Remove define symbol for shared libstorm. +set_target_properties(storm PROPERTIES DEFINE_SYMBOL "") add_dependencies(storm resources) +target_link_libraries(storm ${STORM_LINK_LIBRARIES}) + +# Create storm. add_executable(storm-main ${STORM_MAIN_SOURCES} ${STORM_MAIN_HEADERS}) -target_link_libraries(storm-main storm) # Adding headers for xcode +target_link_libraries(storm-main storm) set_target_properties(storm-main PROPERTIES OUTPUT_NAME "storm") +# Create storm-dft. add_executable(storm-dft-main ${STORM_DFT_MAIN_SOURCES} ${STORM_MAIN_HEADERS}) target_link_libraries(storm-dft-main storm) # Adding headers for xcode set_target_properties(storm-dft-main PROPERTIES OUTPUT_NAME "storm-dft") +# Create storm-pgcl. add_executable(storm-pgcl-main ${STORM_PGCL_MAIN_SOURCES} ${STORM_MAIN_HEADERS}) target_link_libraries(storm-pgcl-main storm) set_target_properties(storm-pgcl-main PROPERTIES OUTPUT_NAME "storm-pgcl") -target_link_libraries(storm ${STORM_LINK_LIBRARIES}) - - - INSTALL(TARGETS storm-main RUNTIME DESTINATION bin LIBRARY DESTINATION lib diff --git a/src/builder/jit/ExplicitJitJaniModelBuilder.cpp b/src/builder/jit/ExplicitJitJaniModelBuilder.cpp index 19bf14d90..6a7aaaa83 100644 --- a/src/builder/jit/ExplicitJitJaniModelBuilder.cpp +++ b/src/builder/jit/ExplicitJitJaniModelBuilder.cpp @@ -56,10 +56,10 @@ namespace storm { compilerFlags = settings.getCompilerFlags(); } else { #ifdef LINUX - compilerFlags = "-std=c++14 -fPIC -O3 -shared"; + compilerFlags = "-std=c++14 -fPIC -O3 -march=native -shared"; #endif #ifdef MACOSX - compilerFlags = "-std=c++14 -stdlib=libc++ -fPIC -O3 -shared -undefined dynamic_lookup"; + compilerFlags = "-std=c++14 -stdlib=libc++ -fPIC -march=native -O3 -shared -undefined dynamic_lookup "; #endif } if (settings.isBoostIncludeDirectorySet()) { @@ -73,9 +73,14 @@ namespace storm { stormRoot = STORM_CPP_BASE_PATH; } if (settings.isCarlIncludeDirectorySet()) { - carlIncludeDir = settings.getCarlIncludeDirectory(); + carlIncludeDirectory = settings.getCarlIncludeDirectory(); } else { - carlIncludeDir = STORM_CARL_INCLUDE_DIR; + carlIncludeDirectory = STORM_CARL_INCLUDE_DIR; + } + if (settings.isStormConfigDirectorySet()) { + stormConfigurationDirectory = settings.getStormConfigDirectory(); + } else { + stormConfigurationDirectory = STORM_BUILD_DIR "/include"; } // Register all transient variables as transient. @@ -351,10 +356,43 @@ namespace storm { return result; } + template + bool ExplicitJitJaniModelBuilder::checkStormConfigurationAvailable() const { + bool result = true; + std::string problem = "Unable to compile program using Storm configuration. Is Storm's configuration directory '" + stormConfigurationDirectory + "' set correctly? Does the directory contain the file storm-config.h?"; + try { + std::string program = R"( +#include "storm-config.h" + + int main() { + return 0; + } + )"; + boost::filesystem::path temporaryFile = writeToTemporaryFile(program); + std::string temporaryFilename = boost::filesystem::absolute(temporaryFile).string(); + boost::filesystem::path outputFile = temporaryFile; + outputFile += ".out"; + std::string outputFilename = boost::filesystem::absolute(outputFile).string(); + boost::optional error = execute(compiler + " " + compilerFlags + " " + temporaryFilename + " -I" + stormRoot + " -o " + outputFilename); + + if (error) { + result = false; + STORM_LOG_ERROR(problem); + STORM_LOG_TRACE(error.get()); + } else { + boost::filesystem::remove(outputFile); + } + } catch(std::exception const& e) { + result = false; + STORM_LOG_ERROR(problem); + } + return result; + } + template bool ExplicitJitJaniModelBuilder::checkCarlAvailable() const { bool result = true; - std::string problem = "Unable to compile program using Carl data structures. Is Carls's include directory '" + carlIncludeDir + "' set correctly?"; + std::string problem = "Unable to compile program using Carl data structures. Is Carls's include directory '" + carlIncludeDirectory + "' set correctly?"; try { std::string program = R"( #include "src/adapters/NumberAdapter.h" @@ -368,8 +406,7 @@ namespace storm { boost::filesystem::path outputFile = temporaryFile; outputFile += ".out"; std::string outputFilename = boost::filesystem::absolute(outputFile).string(); - // FIXME: get right of build_xcode - boost::optional error = execute(compiler + " " + compilerFlags + " " + temporaryFilename + " -I" + stormRoot + " -I" + stormRoot + "/build_xcode/include -I" + carlIncludeDir + " -o " + outputFilename); + boost::optional error = execute(compiler + " " + compilerFlags + " " + temporaryFilename + " -I" + stormRoot + " -I" + stormConfigurationDirectory + " -I" + carlIncludeDirectory + " -o " + outputFilename); if (error) { result = false; @@ -430,6 +467,14 @@ namespace storm { return result; } STORM_LOG_DEBUG("Success."); + + STORM_LOG_DEBUG("Checking whether Storm's configuration is available."); + result = checkStormConfigurationAvailable(); + if (!result) { + return result; + } + STORM_LOG_DEBUG("Success."); + if (std::is_same::value) { STORM_LOG_DEBUG("Checking whether Carl's headers are available."); @@ -2334,7 +2379,9 @@ namespace storm { }; BOOST_DLL_ALIAS(storm::builder::jit::JitBuilder::create, create_builder) + {% if parametric %} BOOST_DLL_ALIAS(storm::builder::jit::initialize_parameters, initialize_parameters) + {% endif %} } } } @@ -2350,8 +2397,7 @@ namespace storm { dynamicLibraryPath += DYLIB_EXTENSION; std::string dynamicLibraryFilename = boost::filesystem::absolute(dynamicLibraryPath).string(); - // FIXME: get right of build_xcode/include - std::string command = compiler + " " + sourceFilename + " " + compilerFlags + " -I" + stormRoot + " -I" + stormRoot + "/build_xcode/include -I" + boostIncludeDirectory + " -I" + carlIncludeDir + " -o " + dynamicLibraryFilename; + std::string command = compiler + " " + sourceFilename + " " + compilerFlags + " -I" + stormRoot + " -I" + stormConfigurationDirectory + " -I" + boostIncludeDirectory + " -I" + carlIncludeDirectory + " -o " + dynamicLibraryFilename; boost::optional error = execute(command); if (error) { diff --git a/src/builder/jit/ExplicitJitJaniModelBuilder.h b/src/builder/jit/ExplicitJitJaniModelBuilder.h index e8b8a5ee5..3123715db 100644 --- a/src/builder/jit/ExplicitJitJaniModelBuilder.h +++ b/src/builder/jit/ExplicitJitJaniModelBuilder.h @@ -65,6 +65,7 @@ namespace storm { bool checkBoostAvailable() const; bool checkBoostDllAvailable() const; bool checkStormAvailable() const; + bool checkStormConfigurationAvailable() const; bool checkCarlAvailable() const; /*! @@ -182,8 +183,11 @@ namespace storm { /// The root directory of storm. std::string stormRoot; + /// The configuration directory of storm. + std::string stormConfigurationDirectory; + /// The include directory of carl. - std::string carlIncludeDir; + std::string carlIncludeDirectory; /// A cache that is used by carl. std::shared_ptr>> cache; diff --git a/src/modelchecker/region/SparseRegionModelChecker.cpp b/src/modelchecker/region/SparseRegionModelChecker.cpp index c4a4979bf..9a3586f17 100644 --- a/src/modelchecker/region/SparseRegionModelChecker.cpp +++ b/src/modelchecker/region/SparseRegionModelChecker.cpp @@ -93,7 +93,7 @@ namespace storm { } template - bool const SparseRegionModelChecker::isResultConstant() const { + bool SparseRegionModelChecker::isResultConstant() const { return this->constantResult.operator bool(); } diff --git a/src/modelchecker/region/SparseRegionModelChecker.h b/src/modelchecker/region/SparseRegionModelChecker.h index d73fd49b6..7829f5e48 100644 --- a/src/modelchecker/region/SparseRegionModelChecker.h +++ b/src/modelchecker/region/SparseRegionModelChecker.h @@ -163,7 +163,7 @@ namespace storm { ConstantType getSpecifiedFormulaBound() const; bool specifiedFormulaHasLowerBound() const; bool const& isComputeRewards() const; - bool const isResultConstant() const; + bool isResultConstant() const; std::shared_ptr const& getSimpleModel() const; std::shared_ptr const& getSimpleFormula() const; diff --git a/src/settings/modules/JitBuilderSettings.cpp b/src/settings/modules/JitBuilderSettings.cpp index 4aa53d925..56227c043 100644 --- a/src/settings/modules/JitBuilderSettings.cpp +++ b/src/settings/modules/JitBuilderSettings.cpp @@ -17,6 +17,7 @@ namespace storm { const std::string JitBuilderSettings::doctorOptionName = "doctor"; const std::string JitBuilderSettings::compilerOptionName = "compiler"; const std::string JitBuilderSettings::stormRootOptionName = "storm"; + const std::string JitBuilderSettings::stormConfigDirectoryOptionName = "stormconf"; const std::string JitBuilderSettings::boostIncludeDirectoryOptionName = "boost"; const std::string JitBuilderSettings::carlIncludeDirectoryOptionName = "carl"; const std::string JitBuilderSettings::compilerFlagsOptionName = "cxxflags"; @@ -27,6 +28,8 @@ namespace storm { .addArgument(storm::settings::ArgumentBuilder::createStringArgument("name", "The name of the executable. Defaults to c++.").setDefaultValueString("c++").build()).build()); this->addOption(storm::settings::OptionBuilder(moduleName, stormRootOptionName, false, "The root directory of Storm.") .addArgument(storm::settings::ArgumentBuilder::createStringArgument("dir", "The directory that contains the src/ subtree of Storm.").build()).build()); + this->addOption(storm::settings::OptionBuilder(moduleName, stormConfigDirectoryOptionName, false, "The directory containing Storm's configuration (storm-config.h).") + .addArgument(storm::settings::ArgumentBuilder::createStringArgument("dir", "The directory that contains storm-config.h.").build()).build()); this->addOption(storm::settings::OptionBuilder(moduleName, boostIncludeDirectoryOptionName, false, "The include directory of boost.") .addArgument(storm::settings::ArgumentBuilder::createStringArgument("dir", "The directory containing the boost headers version >= 1.61.").build()).build()); this->addOption(storm::settings::OptionBuilder(moduleName, carlIncludeDirectoryOptionName, false, "The include directory of carl.") @@ -51,6 +54,14 @@ namespace storm { return this->getOption(stormRootOptionName).getArgumentByName("dir").getValueAsString(); } + bool JitBuilderSettings::isStormConfigDirectorySet() const { + return this->getOption(stormConfigDirectoryOptionName).getHasOptionBeenSet(); + } + + std::string JitBuilderSettings::getStormConfigDirectory() const { + return this->getOption(stormConfigDirectoryOptionName).getArgumentByName("dir").getValueAsString(); + } + bool JitBuilderSettings::isBoostIncludeDirectorySet() const { return this->getOption(boostIncludeDirectoryOptionName).getHasOptionBeenSet(); } diff --git a/src/settings/modules/JitBuilderSettings.h b/src/settings/modules/JitBuilderSettings.h index 948620900..52c2c66f0 100644 --- a/src/settings/modules/JitBuilderSettings.h +++ b/src/settings/modules/JitBuilderSettings.h @@ -20,6 +20,9 @@ namespace storm { bool isStormRootSet() const; std::string getStormRoot() const; + + bool isStormConfigDirectorySet() const; + std::string getStormConfigDirectory() const; bool isBoostIncludeDirectorySet() const; std::string getBoostIncludeDirectory() const; @@ -38,6 +41,7 @@ namespace storm { private: static const std::string compilerOptionName; static const std::string stormRootOptionName; + static const std::string stormConfigDirectoryOptionName; static const std::string boostIncludeDirectoryOptionName; static const std::string carlIncludeDirectoryOptionName; static const std::string compilerFlagsOptionName; diff --git a/src/utility/storm-version.h b/src/utility/storm-version.h index 12a92f142..025b680cd 100644 --- a/src/utility/storm-version.h +++ b/src/utility/storm-version.h @@ -1,66 +1,69 @@ -/** - * @file: storm-version.h - * @author: Sebastian Junges - * - * @since October 7, 2014 - */ - #pragma once + #include #include -namespace storm +namespace storm { - namespace utility { - struct StormVersion - { - /// The major version of StoRM - const static unsigned versionMajor; - /// The minor version of StoRM - const static unsigned versionMinor; - /// The patch version of StoRM - const static unsigned versionPatch; - /// The short hash of the git commit this build is bases on - const static std::string gitRevisionHash; - /// How many commits passed since the tag was last set - const static unsigned commitsAhead; - /// 0 iff there no files were modified in the checkout, 1 else - const static unsigned dirty; - /// The system which has compiled storm - const static std::string systemName; - /// The system version which has compiled storm - const static std::string systemVersion; - /// The build type that was used to build storm - const static std::string buildType; - /// The compiler version that was used to build storm - const static std::string cxxCompiler; - - static std::string shortVersionString() { - std::stringstream sstream; - sstream << "StoRM " << versionMajor << "." << versionMinor << "." << versionPatch; - return sstream.str(); - } - - static std::string longVersionString() { - std::stringstream sstream; - sstream << "Version: " << versionMajor << "." << versionMinor << "." << versionPatch; - if (commitsAhead != 0) { - sstream << " (+" << commitsAhead << " commits)"; - } - sstream << " build from revision " << gitRevisionHash; - if (dirty == 1) { - sstream << " (DIRTY)"; - } - sstream << "." << std::endl; - return sstream.str(); - } - - static std::string buildInfo() { - std::stringstream sstream; - sstream << "Compiled on " << systemName << " " << systemVersion << ","; - sstream << "using " << cxxCompiler << " with " << buildType << " flags."; - return sstream.str(); - } - }; - } + namespace utility { + + struct StormVersion { + /// The major version of Storm. + const static unsigned versionMajor; + + /// The minor version of Storm. + const static unsigned versionMinor; + + /// The patch version of Storm. + const static unsigned versionPatch; + + /// The short hash of the git commit this build is based on + const static std::string gitRevisionHash; + + /// How many commits passed since the tag was last set. + const static unsigned commitsAhead; + + /// 0 iff there no files were modified in the checkout, 1 otherwise. + const static unsigned dirty; + + /// The system which has compiled Storm. + const static std::string systemName; + + /// The system version which has compiled Storm. + const static std::string systemVersion; + + /// The build type that was used to build Storm. + const static std::string buildType; + + /// The compiler version that was used to build Storm. + const static std::string cxxCompiler; + + static std::string shortVersionString() { + std::stringstream sstream; + sstream << "Storm " << versionMajor << "." << versionMinor << "." << versionPatch; + return sstream.str(); + } + + static std::string longVersionString() { + std::stringstream sstream; + sstream << "Version: " << versionMajor << "." << versionMinor << "." << versionPatch; + if (commitsAhead != 0) { + sstream << " (+" << commitsAhead << " commits)"; + } + sstream << " build from revision " << gitRevisionHash; + if (dirty == 1) { + sstream << " (DIRTY)"; + } + sstream << "." << std::endl; + return sstream.str(); + } + + static std::string buildInfo() { + std::stringstream sstream; + sstream << "Compiled on " << systemName << " " << systemVersion << ","; + sstream << "using " << cxxCompiler << " with " << buildType << " flags."; + return sstream.str(); + } + }; + } } diff --git a/storm-config.h.in b/storm-config.h.in index a3887b691..23ac9f89a 100644 --- a/storm-config.h.in +++ b/storm-config.h.in @@ -8,12 +8,15 @@ #ifndef STORM_GENERATED_STORMCONFIG_H_ #define STORM_GENERATED_STORMCONFIG_H_ -// The path of the sources from which StoRM will be/was build +// The directory of the sources from which Storm was built. #define STORM_CPP_BASE_PATH "@PROJECT_SOURCE_DIR@" -// The path used in the functional and performance tests to load the supplied example files +// The directory of the sources from which the functional tests were built. #define STORM_CPP_TESTS_BASE_PATH "@STORM_CPP_TESTS_BASE_PATH@" +// The directory in which Storm was built. +#define STORM_BUILD_DIR "@CMAKE_BINARY_DIR@" + // Boost include directory used during compilation. #define STORM_BOOST_INCLUDE_DIR "@STORM_BOOST_INCLUDE_DIR@" diff --git a/storm-version.cpp.in b/storm-version.cpp.in index 662f3395e..de10b4ec8 100644 --- a/storm-version.cpp.in +++ b/storm-version.cpp.in @@ -4,34 +4,17 @@ namespace storm { namespace utility { - // The major version of StoRM - const unsigned StormVersion::versionMajor = @STORM_CPP_VERSION_MAJOR@; - // The minor version of StoRM + const unsigned StormVersion::versionMajor = @STORM_CPP_VERSION_MAJOR@; const unsigned StormVersion::versionMinor = @STORM_CPP_VERSION_MINOR@; - - // The patch version of StoRM const unsigned StormVersion::versionPatch = @STORM_CPP_VERSION_PATCH@; - - // The short hash of the git commit this build is bases on const std::string StormVersion::gitRevisionHash = "@STORM_CPP_VERSION_HASH@"; - - // How many commits passed since the tag was last set const unsigned StormVersion::commitsAhead = @STORM_CPP_VERSION_COMMITS_AHEAD@; - - // 0 iff there no files were modified in the checkout, 1 else const unsigned StormVersion::dirty = @STORM_CPP_VERSION_DIRTY@; - - // The system which has compiled storm const std::string StormVersion::systemName = "@CMAKE_SYSTEM_NAME@"; - - // The system version which has compiled storm const std::string StormVersion::systemVersion = "@CMAKE_SYSTEM_VERSION@"; - - // The build type that was used to build storm const std::string StormVersion::buildType = "@CMAKE_BUILD_TYPE@"; - - // The compiler version that was used to build storm const std::string StormVersion::cxxCompiler = "@STORM_COMPILED_BY@ @CMAKE_CXX_COMPILER_VERSION@"; + } }